From 4886f69734ca41732cb8bb1a466c2becfee85cb0 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Wed, 29 Jun 2016 10:58:58 -0600 Subject: [PATCH 001/217] HLSL: Sampler/texture declarations, method syntax, partial Sample method --- .gitignore | 1 + .../hlsl.sample.basicdx10.frag.out | 768 ++++++++++++++++++ Test/hlsl.sample.basicdx10.frag | 90 ++ glslang/Include/Types.h | 10 + glslang/Include/intermediate.h | 2 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 339 +++++++- hlsl/hlslGrammar.h | 7 +- hlsl/hlslParseHelper.cpp | 74 +- hlsl/hlslParseHelper.h | 1 + hlsl/hlslParseables.cpp | 155 ++-- hlsl/hlslScanContext.cpp | 7 + hlsl/hlslTokens.h | 6 +- 13 files changed, 1387 insertions(+), 74 deletions(-) create mode 100644 Test/baseResults/hlsl.sample.basicdx10.frag.out create mode 100644 Test/hlsl.sample.basicdx10.frag diff --git a/.gitignore b/.gitignore index 66cbff97..0faf59c0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.so *.exe tags +TAGS build/ Test/localResults/ Test/multiThread.out diff --git a/Test/baseResults/hlsl.sample.basicdx10.frag.out b/Test/baseResults/hlsl.sample.basicdx10.frag.out new file mode 100644 index 00000000..9c64bdf6 --- /dev/null +++ b/Test/baseResults/hlsl.sample.basicdx10.frag.out @@ -0,0 +1,768 @@ +hlsl.sample.basicdx10.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child (temp int) +0:57 CalculateLevelOfDetail: direct index for structure (temp int) +0:57 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1 (const int) +0:58 move second child to first child (temp int) +0:58 CalculateLevelOfDetailUnclamped: direct index for structure (temp int) +0:58 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:58 Constant: +0:58 2 (const int) +0:58 Constant: +0:58 1 (const int) +0:59 move second child to first child (temp int) +0:59 Gather: direct index for structure (temp int) +0:59 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:59 Constant: +0:59 3 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child (temp int) +0:60 GetDimensions: direct index for structure (temp int) +0:60 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:60 Constant: +0:60 4 (const int) +0:60 Constant: +0:60 1 (const int) +0:61 move second child to first child (temp int) +0:61 GetSamplePosition: direct index for structure (temp int) +0:61 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:61 Constant: +0:61 5 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child (temp int) +0:62 Load: direct index for structure (temp int) +0:62 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:62 Constant: +0:62 6 (const int) +0:62 Constant: +0:62 1 (const int) +0:63 move second child to first child (temp int) +0:63 Sample: direct index for structure (temp int) +0:63 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:64 move second child to first child (temp int) +0:64 SampleBias: direct index for structure (temp int) +0:64 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:64 Constant: +0:64 7 (const int) +0:64 Constant: +0:64 1 (const int) +0:65 move second child to first child (temp int) +0:65 SampleCmp: direct index for structure (temp int) +0:65 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:65 Constant: +0:65 8 (const int) +0:65 Constant: +0:65 1 (const int) +0:66 move second child to first child (temp int) +0:66 SampleCmpLevelZero: direct index for structure (temp int) +0:66 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:66 Constant: +0:66 9 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child (temp int) +0:67 SampleGrad: direct index for structure (temp int) +0:67 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:67 Constant: +0:67 10 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 move second child to first child (temp int) +0:68 SampleLevel: direct index for structure (temp int) +0:68 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:68 Constant: +0:68 11 (const int) +0:68 Constant: +0:68 1 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:70 'txval10' (temp 4-component vector of float) +0:70 texture (global 4-component vector of float) +0:70 Construct combined texture-sampler (temp sampler1D) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 'g_sSamp' (uniform sampler) +0:70 Constant: +0:70 0.100000 +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of int) +0:71 'txval11' (temp 4-component vector of int) +0:71 texture (global 4-component vector of int) +0:71 Construct combined texture-sampler (temp isampler1D) +0:71 'g_tTex1di4' (uniform itexture1D) +0:71 'g_sSamp' (uniform sampler) +0:71 Constant: +0:71 0.200000 +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of uint) +0:72 'txval12' (temp 4-component vector of uint) +0:72 texture (global 4-component vector of uint) +0:72 Construct combined texture-sampler (temp usampler1D) +0:72 'g_tTex1du4' (uniform utexture1D) +0:72 'g_sSamp' (uniform sampler) +0:72 Constant: +0:72 0.300000 +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of float) +0:74 'txval20' (temp 4-component vector of float) +0:74 texture (global 4-component vector of float) +0:74 Construct combined texture-sampler (temp sampler2D) +0:74 'g_tTex2df4' (uniform texture2D) +0:74 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of int) +0:75 'txval21' (temp 4-component vector of int) +0:75 texture (global 4-component vector of int) +0:75 Construct combined texture-sampler (temp isampler2D) +0:75 'g_tTex2di4' (uniform itexture2D) +0:75 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of uint) +0:76 'txval22' (temp 4-component vector of uint) +0:76 texture (global 4-component vector of uint) +0:76 Construct combined texture-sampler (temp usampler2D) +0:76 'g_tTex2du4' (uniform utexture2D) +0:76 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval30' (temp 4-component vector of float) +0:78 texture (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler3D) +0:78 'g_tTex3df4' (uniform texture3D) +0:78 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval31' (temp 4-component vector of int) +0:79 texture (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler3D) +0:79 'g_tTex3di4' (uniform itexture3D) +0:79 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval32' (temp 4-component vector of uint) +0:80 texture (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler3D) +0:80 'g_tTex3du4' (uniform utexture3D) +0:80 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval40' (temp 4-component vector of float) +0:82 texture (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp samplerCube) +0:82 'g_tTexcdf4' (uniform textureCube) +0:82 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval41' (temp 4-component vector of int) +0:83 texture (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isamplerCube) +0:83 'g_tTexcdi4' (uniform itextureCube) +0:83 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval42' (temp 4-component vector of uint) +0:84 texture (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usamplerCube) +0:84 'g_tTexcdu4' (uniform utextureCube) +0:84 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:87 move second child to first child (temp float) +0:87 Depth: direct index for structure (temp float FragDepth) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 1.000000 +0:89 Branch: Return with expression +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_sSamp2D_b' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Parameters: +0:? Sequence +0:57 move second child to first child (temp int) +0:57 CalculateLevelOfDetail: direct index for structure (temp int) +0:57 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1 (const int) +0:58 move second child to first child (temp int) +0:58 CalculateLevelOfDetailUnclamped: direct index for structure (temp int) +0:58 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:58 Constant: +0:58 2 (const int) +0:58 Constant: +0:58 1 (const int) +0:59 move second child to first child (temp int) +0:59 Gather: direct index for structure (temp int) +0:59 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:59 Constant: +0:59 3 (const int) +0:59 Constant: +0:59 1 (const int) +0:60 move second child to first child (temp int) +0:60 GetDimensions: direct index for structure (temp int) +0:60 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:60 Constant: +0:60 4 (const int) +0:60 Constant: +0:60 1 (const int) +0:61 move second child to first child (temp int) +0:61 GetSamplePosition: direct index for structure (temp int) +0:61 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:61 Constant: +0:61 5 (const int) +0:61 Constant: +0:61 1 (const int) +0:62 move second child to first child (temp int) +0:62 Load: direct index for structure (temp int) +0:62 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:62 Constant: +0:62 6 (const int) +0:62 Constant: +0:62 1 (const int) +0:63 move second child to first child (temp int) +0:63 Sample: direct index for structure (temp int) +0:63 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:64 move second child to first child (temp int) +0:64 SampleBias: direct index for structure (temp int) +0:64 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:64 Constant: +0:64 7 (const int) +0:64 Constant: +0:64 1 (const int) +0:65 move second child to first child (temp int) +0:65 SampleCmp: direct index for structure (temp int) +0:65 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:65 Constant: +0:65 8 (const int) +0:65 Constant: +0:65 1 (const int) +0:66 move second child to first child (temp int) +0:66 SampleCmpLevelZero: direct index for structure (temp int) +0:66 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:66 Constant: +0:66 9 (const int) +0:66 Constant: +0:66 1 (const int) +0:67 move second child to first child (temp int) +0:67 SampleGrad: direct index for structure (temp int) +0:67 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:67 Constant: +0:67 10 (const int) +0:67 Constant: +0:67 1 (const int) +0:68 move second child to first child (temp int) +0:68 SampleLevel: direct index for structure (temp int) +0:68 'mtest' (temp structure{temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) +0:68 Constant: +0:68 11 (const int) +0:68 Constant: +0:68 1 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:70 'txval10' (temp 4-component vector of float) +0:70 texture (global 4-component vector of float) +0:70 Construct combined texture-sampler (temp sampler1D) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 'g_sSamp' (uniform sampler) +0:70 Constant: +0:70 0.100000 +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of int) +0:71 'txval11' (temp 4-component vector of int) +0:71 texture (global 4-component vector of int) +0:71 Construct combined texture-sampler (temp isampler1D) +0:71 'g_tTex1di4' (uniform itexture1D) +0:71 'g_sSamp' (uniform sampler) +0:71 Constant: +0:71 0.200000 +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of uint) +0:72 'txval12' (temp 4-component vector of uint) +0:72 texture (global 4-component vector of uint) +0:72 Construct combined texture-sampler (temp usampler1D) +0:72 'g_tTex1du4' (uniform utexture1D) +0:72 'g_sSamp' (uniform sampler) +0:72 Constant: +0:72 0.300000 +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of float) +0:74 'txval20' (temp 4-component vector of float) +0:74 texture (global 4-component vector of float) +0:74 Construct combined texture-sampler (temp sampler2D) +0:74 'g_tTex2df4' (uniform texture2D) +0:74 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:75 Sequence +0:75 move second child to first child (temp 4-component vector of int) +0:75 'txval21' (temp 4-component vector of int) +0:75 texture (global 4-component vector of int) +0:75 Construct combined texture-sampler (temp isampler2D) +0:75 'g_tTex2di4' (uniform itexture2D) +0:75 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of uint) +0:76 'txval22' (temp 4-component vector of uint) +0:76 texture (global 4-component vector of uint) +0:76 Construct combined texture-sampler (temp usampler2D) +0:76 'g_tTex2du4' (uniform utexture2D) +0:76 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval30' (temp 4-component vector of float) +0:78 texture (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler3D) +0:78 'g_tTex3df4' (uniform texture3D) +0:78 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval31' (temp 4-component vector of int) +0:79 texture (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler3D) +0:79 'g_tTex3di4' (uniform itexture3D) +0:79 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval32' (temp 4-component vector of uint) +0:80 texture (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler3D) +0:80 'g_tTex3du4' (uniform utexture3D) +0:80 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval40' (temp 4-component vector of float) +0:82 texture (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp samplerCube) +0:82 'g_tTexcdf4' (uniform textureCube) +0:82 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval41' (temp 4-component vector of int) +0:83 texture (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isamplerCube) +0:83 'g_tTexcdi4' (uniform itextureCube) +0:83 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval42' (temp 4-component vector of uint) +0:84 texture (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usamplerCube) +0:84 'g_tTexcdu4' (uniform utextureCube) +0:84 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:87 move second child to first child (temp float) +0:87 Depth: direct index for structure (temp float FragDepth) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 Constant: +0:87 1 (const int) +0:87 Constant: +0:87 1.000000 +0:89 Branch: Return with expression +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_sSamp2D_b' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 182 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 7 "MemberTest" + MemberName 7(MemberTest) 0 "Sample" + MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 7(MemberTest) 3 "Gather" + MemberName 7(MemberTest) 4 "GetDimensions" + MemberName 7(MemberTest) 5 "GetSamplePosition" + MemberName 7(MemberTest) 6 "Load" + MemberName 7(MemberTest) 7 "SampleBias" + MemberName 7(MemberTest) 8 "SampleCmp" + MemberName 7(MemberTest) 9 "SampleCmpLevelZero" + MemberName 7(MemberTest) 10 "SampleGrad" + MemberName 7(MemberTest) 11 "SampleLevel" + Name 9 "mtest" + Name 38 "txval10" + Name 41 "g_tTex1df4" + Name 45 "g_sSamp" + Name 53 "txval11" + Name 56 "g_tTex1di4" + Name 66 "txval12" + Name 69 "g_tTex1du4" + Name 76 "txval20" + Name 79 "g_tTex2df4" + Name 87 "txval21" + Name 90 "g_tTex2di4" + Name 98 "txval22" + Name 101 "g_tTex2du4" + Name 110 "txval30" + Name 113 "g_tTex3df4" + Name 121 "txval31" + Name 124 "g_tTex3di4" + Name 131 "txval32" + Name 134 "g_tTex3du4" + Name 144 "txval40" + Name 147 "g_tTexcdf4" + Name 153 "txval41" + Name 156 "g_tTexcdi4" + Name 162 "txval42" + Name 165 "g_tTexcdu4" + Name 171 "PS_OUTPUT" + MemberName 171(PS_OUTPUT) 0 "Color" + MemberName 171(PS_OUTPUT) 1 "Depth" + Name 173 "psout" + Name 179 "g_sSamp2d" + Name 180 "g_sSamp2D_b" + Name 181 "g_tTex1df4a" + Decorate 41(g_tTex1df4) DescriptorSet 0 + Decorate 45(g_sSamp) DescriptorSet 0 + Decorate 56(g_tTex1di4) DescriptorSet 0 + Decorate 69(g_tTex1du4) DescriptorSet 0 + Decorate 79(g_tTex2df4) DescriptorSet 0 + Decorate 90(g_tTex2di4) DescriptorSet 0 + Decorate 101(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 134(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 156(g_tTexcdi4) DescriptorSet 0 + Decorate 165(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 179(g_sSamp2d) DescriptorSet 0 + Decorate 180(g_sSamp2D_b) DescriptorSet 0 + Decorate 181(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(MemberTest) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1df4): 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45(g_sSamp): 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex1di4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex1du4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2df4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2di4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex2du4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3du4): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTexcdi4): 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdu4): 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(PS_OUTPUT) + 174: 35(float) Constant 1065353216 + 175: TypePointer Function 35(float) + 179(g_sSamp2d): 44(ptr) Variable UniformConstant +180(g_sSamp2D_b): 44(ptr) Variable UniformConstant +181(g_tTex1df4a): 40(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(mtest): 8(ptr) Variable Function + 38(txval10): 37(ptr) Variable Function + 53(txval11): 52(ptr) Variable Function + 66(txval12): 65(ptr) Variable Function + 76(txval20): 37(ptr) Variable Function + 87(txval21): 52(ptr) Variable Function + 98(txval22): 65(ptr) Variable Function + 110(txval30): 37(ptr) Variable Function + 121(txval31): 52(ptr) Variable Function + 131(txval32): 65(ptr) Variable Function + 144(txval40): 37(ptr) Variable Function + 153(txval41): 52(ptr) Variable Function + 162(txval42): 65(ptr) Variable Function + 173(psout): 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9(mtest) 10 + Store 12 10 + 14: 11(ptr) AccessChain 9(mtest) 13 + Store 14 10 + 16: 11(ptr) AccessChain 9(mtest) 15 + Store 16 10 + 18: 11(ptr) AccessChain 9(mtest) 17 + Store 18 10 + 20: 11(ptr) AccessChain 9(mtest) 19 + Store 20 10 + 22: 11(ptr) AccessChain 9(mtest) 21 + Store 22 10 + 24: 11(ptr) AccessChain 9(mtest) 23 + Store 24 10 + 26: 11(ptr) AccessChain 9(mtest) 25 + Store 26 10 + 28: 11(ptr) AccessChain 9(mtest) 27 + Store 28 10 + 30: 11(ptr) AccessChain 9(mtest) 29 + Store 30 10 + 32: 11(ptr) AccessChain 9(mtest) 31 + Store 32 10 + 34: 11(ptr) AccessChain 9(mtest) 33 + Store 34 10 + 42: 39 Load 41(g_tTex1df4) + 46: 43 Load 45(g_sSamp) + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38(txval10) 50 + 57: 54 Load 56(g_tTex1di4) + 58: 43 Load 45(g_sSamp) + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53(txval11) 62 + 70: 67 Load 69(g_tTex1du4) + 71: 43 Load 45(g_sSamp) + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66(txval12) 75 + 80: 77 Load 79(g_tTex2df4) + 81: 43 Load 45(g_sSamp) + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76(txval20) 86 + 91: 88 Load 90(g_tTex2di4) + 92: 43 Load 45(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87(txval21) 97 + 102: 99 Load 101(g_tTex2du4) + 103: 43 Load 45(g_sSamp) + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98(txval22) 109 + 114: 111 Load 113(g_tTex3df4) + 115: 43 Load 45(g_sSamp) + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110(txval30) 120 + 125: 122 Load 124(g_tTex3di4) + 126: 43 Load 45(g_sSamp) + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121(txval31) 130 + 135: 132 Load 134(g_tTex3du4) + 136: 43 Load 45(g_sSamp) + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131(txval32) 143 + 148: 145 Load 147(g_tTexcdf4) + 149: 43 Load 45(g_sSamp) + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144(txval40) 152 + 157: 154 Load 156(g_tTexcdi4) + 158: 43 Load 45(g_sSamp) + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153(txval41) 161 + 166: 163 Load 165(g_tTexcdu4) + 167: 43 Load 45(g_sSamp) + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162(txval42) 170 + 176: 175(ptr) AccessChain 173(psout) 10 + Store 176 174 + 177:171(PS_OUTPUT) Load 173(psout) + ReturnValue 177 + FunctionEnd diff --git a/Test/hlsl.sample.basicdx10.frag b/Test/hlsl.sample.basicdx10.frag new file mode 100644 index 00000000..03e83ef9 --- /dev/null +++ b/Test/hlsl.sample.basicdx10.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index cdf82007..59bbe9f5 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -84,6 +84,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool isCombined() const { return combined; } bool isPureSampler() const { return sampler; } bool isTexture() const { return !sampler && !image; } + bool isShadow() const { return shadow; } void clear() { @@ -1080,6 +1081,15 @@ public: typeName = NewPoolTString(p.userDef->getTypeName().c_str()); } } + // for construction of sampler types + TType(const TSampler& sampler, TStorageQualifier q = EvqUniform, TArraySizes* as = nullptr) : + basicType(EbtSampler), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), + arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr), + sampler(sampler) + { + qualifier.clear(); + qualifier.storage = q; + } // to efficiently make a dereferenced type // without ever duplicating the outer structure that will be thrown away // and using only shallow copy diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index d9982a3a..29006aa4 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -525,6 +525,8 @@ enum TOperator { EOpLit, // HLSL lighting coefficient vector EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture EOpAsDouble, // slightly different from EOpUint64BitsToDouble + + EOpMethodSample, }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index a0044190..2acbfc40 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -93,6 +93,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.sample.basicdx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index ee8ebf3f..1d08e158 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -69,6 +69,11 @@ void HlslGrammar::expected(const char* syntax) parseContext.error(token.loc, "Expected", syntax, ""); } +void HlslGrammar::unimplemented(const char* error) +{ + parseContext.error(token.loc, "Unimplemented", error, ""); +} + // Only process the next token if it is an identifier. // Return true if it was an identifier. bool HlslGrammar::acceptIdentifier(HlslToken& idToken) @@ -105,9 +110,136 @@ bool HlslGrammar::acceptCompilationUnit() return true; } +// sampler_state +// : LEFT_BRACE [sampler_state_assignment ... ] RIGHT_BRACE +// +// sampler_state_assignment +// : sampler_state_identifier EQUAL value SEMICOLON +// +// sampler_state_identifier +// : ADDRESSU +// | ADDRESSV +// | ADDRESSW +// | BORDERCOLOR +// | FILTER +// | MAXANISOTROPY +// | MAXLOD +// | MINLOD +// | MIPLODBIAS +// +bool HlslGrammar::acceptSamplerState() +{ + // TODO: this should be genericized to accept a list of valid tokens and + // return token/value pairs. Presently it is specific to texture values. + + if (! acceptTokenClass(EHTokLeftBrace)) + return true; + + parseContext.warn(token.loc, "unimplemented", "immediate sampler state", ""); + + do { + // read state name + HlslToken state; + if (! acceptIdentifier(state)) + break; // end of list + + // FXC accepts any case + TString stateName = *state.string; + std::transform(stateName.begin(), stateName.end(), stateName.begin(), ::tolower); + + if (! acceptTokenClass(EHTokAssign)) { + expected("assign"); + return false; + } + + if (stateName == "minlod" || stateName == "maxlod") { + if (! peekTokenClass(EHTokIntConstant)) { + expected("integer"); + return false; + } + + TIntermTyped* lod = nullptr; + if (! acceptLiteral(lod)) // should never fail, since we just looked for an integer + return false; + } else if (stateName == "maxanisotropy") { + if (! peekTokenClass(EHTokIntConstant)) { + expected("integer"); + return false; + } + + TIntermTyped* maxAnisotropy = nullptr; + if (! acceptLiteral(maxAnisotropy)) // should never fail, since we just looked for an integer + return false; + } else if (stateName == "filter") { + HlslToken filterMode; + if (! acceptIdentifier(filterMode)) { + expected("filter mode"); + return false; + } + } else if (stateName == "addressu" || stateName == "addressv" || stateName == "addressw") { + HlslToken addrMode; + if (! acceptIdentifier(addrMode)) { + expected("texture address mode"); + return false; + } + } else if (stateName == "miplodbias") { + TIntermTyped* lodBias = nullptr; + if (! acceptLiteral(lodBias)) { + expected("lod bias"); + return false; + } + } else if (stateName == "bordercolor") { + return false; + } else { + expected("texture state"); + return false; + } + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) { + expected("semicolon"); + return false; + } + } while (true); + + if (! acceptTokenClass(EHTokRightBrace)) + return false; + + return true; +} + +// sampler_declaration_dx9 +// : SAMPLER identifier EQUAL sampler_type sampler_state +// +bool HlslGrammar::acceptSamplerDeclarationDX9(TType& type) +{ + if (! acceptTokenClass(EHTokSampler)) + return false; + + // TODO: remove this when DX9 style declarations are implemented. + unimplemented("Direct3D 9 sampler declaration"); + + // read sampler name + HlslToken name; + if (! acceptIdentifier(name)) { + expected("sampler name"); + return false; + } + + if (! acceptTokenClass(EHTokAssign)) { + expected("="); + return false; + } + + return false; +} + + // declaration -// : fully_specified_type declarator_list SEMICOLON +// : sampler_declaration_dx9 post_decls SEMICOLON +// | fully_specified_type declarator_list SEMICOLON // | fully_specified_type identifier function_parameters post_decls compound_statement // function definition +// | fully_specified_type identifier sampler_state post_decls compound_statement // sampler definition // | typedef declaration // // declarator_list @@ -134,12 +266,26 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); - // fully_specified_type TType type; + + // DX9 sampler declaration use a different syntax + if (acceptSamplerDeclarationDX9(type)) + return true; + + // fully_specified_type if (! acceptFullySpecifiedType(type)) return false; - if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) - type.getQualifier().storage = EvqGlobal; + + if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) { + if (type.getBasicType() == EbtSampler) { + // Sampler/textures are uniform by default (if no explicit qualifier is present) in + // HLSL. This line silently converts samplers *explicitly* declared static to uniform, + // which is incorrect but harmless. + type.getQualifier().storage = EvqUniform; + } else { + type.getQualifier().storage = EvqGlobal; + } + } // identifier HlslToken idToken; @@ -169,6 +315,12 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); + // samplers accept immediate sampler state + if (type.getBasicType() == EbtSampler) { + if (! acceptSamplerState()) + return false; + } + // post_decls acceptPostDecls(type); @@ -487,6 +639,143 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) } +// sampler_type +// : SAMPLER +// | SAMPLER1D +// | SAMPLER2D +// | SAMPLER3D +// | SAMPLERCUBE +// | SAMPLERSTATE +// | SAMPLERCOMPARISONSTATE +bool HlslGrammar::acceptSamplerType(TType& type) +{ + // read sampler type + const EHlslTokenClass samplerType = peek(); + + TSamplerDim dim = EsdNone; + + switch (samplerType) { + case EHTokSampler: break; + case EHTokSampler1d: dim = Esd1D; break; + case EHTokSampler2d: dim = Esd2D; break; + case EHTokSampler3d: dim = Esd3D; break; + case EHTokSamplerCube: dim = EsdCube; break; + case EHTokSamplerState: break; + case EHTokSamplerComparisonState: break; + default: + return false; // not a sampler declaration + } + + advanceToken(); // consume the sampler type keyword + + TArraySizes* arraySizes = nullptr; // TODO: array + bool shadow = false; // TODO: shadow + + TSampler sampler; + sampler.setPureSampler(shadow); + + type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + + return true; +} + +// texture_type +// | BUFFER +// | TEXTURE1D +// | TEXTURE1DARRAY +// | TEXTURE2D +// | TEXTURE2DARRAY +// | TEXTURE3D +// | TEXTURECUBE +// | TEXTURECUBEARRAY +// | TEXTURE2DMS +// | TEXTURE2DMSARRAY +bool HlslGrammar::acceptTextureType(TType& type) +{ + const EHlslTokenClass textureType = peek(); + + TSamplerDim dim = EsdNone; + bool array = false; + bool ms = false; + + switch (textureType) { + case EHTokBuffer: dim = EsdBuffer; break; + case EHTokTexture1d: dim = Esd1D; break; + case EHTokTexture1darray: dim = Esd1D; array = true; break; + case EHTokTexture2d: dim = Esd2D; break; + case EHTokTexture2darray: dim = Esd2D; array = true; break; + case EHTokTexture3d: dim = Esd3D; break; + case EHTokTextureCube: dim = EsdCube; break; + case EHTokTextureCubearray: dim = EsdCube; array = true; break; + case EHTokTexture2DMS: dim = Esd2D; ms = true; break; + case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; + default: + return false; // not a texture declaration + } + + advanceToken(); // consume the texture object keyword + + TType txType(EbtFloat, EvqUniform, 4); // default type is float4 + + TIntermTyped* msCount = nullptr; + + // texture type: required for multisample types! + if (acceptTokenClass(EHTokLeftAngle)) { + if (! acceptType(txType)) { + expected("scalar or vector type"); + return false; + } + + const TBasicType basicRetType = txType.getBasicType() ; + + if (basicRetType != EbtFloat && basicRetType != EbtUint && basicRetType != EbtInt) { + unimplemented("basic type in texture"); + return false; + } + + if (!txType.isScalar() && !txType.isVector()) { + expected("scalar or vector type"); + return false; + } + + if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4) { + // TODO: handle vec2/3 types + expected("vector size not yet supported in texture type"); + return false; + } + + if (ms && acceptTokenClass(EHTokComma)) { + // read sample count for multisample types, if given + if (! peekTokenClass(EHTokIntConstant)) { + expected("multisample count"); + return false; + } + + if (! acceptLiteral(msCount)) // should never fail, since we just found an integer + return false; + } + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + } else if (ms) { + expected("texture type for multisample"); + return false; + } + + TArraySizes* arraySizes = nullptr; + const bool shadow = txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1); + + TSampler sampler; + sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + + type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + + return true; +} + + // If token is for a type, update 'type' with the type information, // and return true and advance. // Otherwise, return false, and don't advance @@ -501,6 +790,29 @@ bool HlslGrammar::acceptType(TType& type) return acceptMatrixTemplateType(type); break; + case EHTokSampler: // fall through + case EHTokSampler1d: // ... + case EHTokSampler2d: // ... + case EHTokSampler3d: // ... + case EHTokSamplerCube: // ... + case EHTokSamplerState: // ... + case EHTokSamplerComparisonState: // ... + return acceptSamplerType(type); + break; + + case EHTokBuffer: // fall through + case EHTokTexture1d: // ... + case EHTokTexture1darray: // ... + case EHTokTexture2d: // ... + case EHTokTexture2darray: // ... + case EHTokTexture3d: // ... + case EHTokTextureCube: // ... + case EHTokTextureCubearray: // ... + case EHTokTexture2DMS: // ... + case EHTokTexture2DMSarray: // ... + return acceptTextureType(type); + break; + case EHTokStruct: return acceptStruct(type); break; @@ -1420,13 +1732,23 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) { // DOT IDENTIFIER // includes swizzles and struct members - // TODO: possibly includes "method" syntax HlslToken field; if (! acceptIdentifier(field)) { expected("swizzle or member"); return false; } + + TIntermTyped* base = node; // preserve for method function calls node = parseContext.handleDotDereference(field.loc, node, *field.string); + + // In the event of a method node, we look for an open paren and accept the function call. + if (node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) { + if (! acceptFunctionCall(field, node, base)) { + expected("function parameters"); + return false; + } + } + break; } case EOpIndexIndirect: @@ -1489,11 +1811,16 @@ bool HlslGrammar::acceptConstructor(TIntermTyped*& node) // function_call // : [idToken] arguments // -bool HlslGrammar::acceptFunctionCall(HlslToken idToken, TIntermTyped*& node) +bool HlslGrammar::acceptFunctionCall(HlslToken idToken, TIntermTyped*& node, TIntermTyped* base) { // arguments TFunction* function = new TFunction(idToken.string, TType(EbtVoid)); TIntermTyped* arguments = nullptr; + + // methods have an implicit first argument of the calling object. + if (base != nullptr) + parseContext.handleFunctionArgument(function, arguments, base); + if (! acceptArguments(function, arguments)) return false; diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 437c316b..9f224fef 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -59,16 +59,21 @@ namespace glslang { HlslGrammar& operator=(const HlslGrammar&); void expected(const char*); + void unimplemented(const char*); bool acceptIdentifier(HlslToken&); bool acceptCompilationUnit(); bool acceptDeclaration(TIntermNode*& node); bool acceptControlDeclaration(TIntermNode*& node); + bool acceptSamplerDeclarationDX9(TType&); + bool acceptSamplerState(); bool acceptFullySpecifiedType(TType&); void acceptQualifier(TQualifier&); bool acceptType(TType&); bool acceptTemplateType(TBasicType&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); + bool acceptSamplerType(TType&); + bool acceptTextureType(TType&); bool acceptStruct(TType&); bool acceptStructDeclarationList(TTypeList*&); bool acceptFunctionParameters(TFunction&); @@ -82,7 +87,7 @@ namespace glslang { bool acceptUnaryExpression(TIntermTyped*&); bool acceptPostfixExpression(TIntermTyped*&); bool acceptConstructor(TIntermTyped*&); - bool acceptFunctionCall(HlslToken, TIntermTyped*&); + bool acceptFunctionCall(HlslToken, TIntermTyped*&, TIntermTyped* base = nullptr); bool acceptArguments(TFunction*, TIntermTyped*&); bool acceptLiteral(TIntermTyped*&); bool acceptCompoundStatement(TIntermNode*&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 02c9c586..dc0f2dbd 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -564,12 +564,32 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt variableCheck(base); // - // .length() can't be resolved until we later see the function-calling syntax. + // methods can't be resolved until we later see the function-calling syntax. // Save away the name in the AST for now. Processing is completed in - // handleLengthMethod(). + // handleLengthMethod(), etc. // if (field == "length") { return intermediate.addMethod(base, TType(EbtInt), &field, loc); + } else if (field == "CalculateLevelOfDetail" || + field == "CalculateLevelOfDetailUnclamped" || + field == "Gather" || + field == "GetDimensions" || + field == "GetSamplePosition" || + field == "Load" || + field == "Sample" || + field == "SampleBias" || + field == "SampleCmp" || + field == "SampleCmpLevelZero" || + field == "SampleGrad" || + field == "SampleLevel") { + // If it's not a method on a sampler object, we fall through in case it is a struct member. + if (base->getType().getBasicType() == EbtSampler) { + const TSampler& texType = base->getType().getSampler(); + if (! texType.isPureSampler()) { + const int vecSize = texType.isShadow() ? 1 : 4; + return intermediate.addMethod(base, TType(texType.type, EvqTemporary, vecSize), &field, loc); + } + } } // It's not .length() if we get to here. @@ -1006,9 +1026,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); - TBasicType type0 = arg0->getBasicType(); - TIntermTyped* x = intermediate.addConstantUnion(0, loc, true); TIntermTyped* y = intermediate.addConstantUnion(1, loc, true); TIntermTyped* z = intermediate.addConstantUnion(2, loc, true); TIntermTyped* w = intermediate.addConstantUnion(3, loc, true); @@ -1204,6 +1222,49 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& } } +// +// Decompose sample methods into AST +// +void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (!node || !node->getAsOperator()) + return; + + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + const TOperator op = node->getAsOperator()->getOp(); + + switch (op) { + case EOpMethodSample: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); + + txcombine->getSequence().push_back(argTex); + txcombine->getSequence().push_back(argSamp); + TSampler samplerType = argTex->getType().getSampler(); + samplerType.combined = true; + txcombine->setType(TType(samplerType, EvqTemporary)); + txcombine->setLoc(loc); + + TIntermAggregate* txsample = new TIntermAggregate(EOpTexture); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + + default: + break; // most pass through unchanged + } +} + + // // Handle seeing function call syntax in the grammar, which could be any of // - .length() method @@ -1307,8 +1368,9 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); } - decomposeIntrinsic(loc, result, arguments); - textureParameters(loc, result, arguments); + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + textureParameters(loc, result, arguments); // HLSL->AST texture intrinsics } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index ed1955eb..fdb2afe8 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -87,6 +87,7 @@ public: void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void textureParameters(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index b454d4bd..4085800f 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -65,6 +65,12 @@ const char* BaseTypeName(const char* argOrder, const char* scalarName, const cha default: return "UNKNOWN_TYPE"; } } + +bool IsTextureType(const char argType) +{ + return argType == 'T' || argType == 'i' || argType == 'u'; +} + // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. @@ -95,6 +101,9 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case 'U': s += "uint"; break; case 'B': s += "bool"; break; case 'S': s += "sampler"; break; + case 'T': s += "Texture"; break; + case 'i': assert(0); // TODO: ... + case 'u': assert(0); // TODO: ... default: s += "UNKNOWN_TYPE"; break; } } else { @@ -105,7 +114,10 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case 'I': s += BaseTypeName(argOrder, "int", "ivec", "imat"); break; case 'U': s += BaseTypeName(argOrder, "uint", "uvec", "umat"); break; case 'B': s += BaseTypeName(argOrder, "bool", "bvec", "bmat"); break; - case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; // TODO: + case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; + case 'T': s += BaseTypeName(argOrder, "texture", "texture", "texture"); break; + case 'i': s += BaseTypeName(argOrder, "itexture", "itexture", "itexture"); break; + case 'u': s += BaseTypeName(argOrder, "utexture", "utexture", "utexture"); break; default: s += "UNKNOWN_TYPE"; break; } } @@ -116,35 +128,38 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons dim0 = dim1 = fixedVecSize; // Add sampler dimensions - if (*argType == 'S') { - switch (dim0) { - case 1: s += "1D"; break; - case 2: s += "2D"; break; - case 3: s += "3D"; break; - case 4: s += "Cube"; break; - default: s += "UNKNOWN_SAMPLER"; break; + if (*argType == 'S' || IsTextureType(*argType)) { + if (*argOrder == 'V') { + switch (dim0) { + case 1: s += "1D"; break; + case 2: s += "2D"; break; + case 3: s += "3D"; break; + case 4: s += "Cube"; break; + default: s += "UNKNOWN_SAMPLER"; break; + } + } + } else { + // Non-sampler type: + // verify dimensions + if (((*argOrder == 'V' || *argOrder == 'M') && (dim0 < 1 || dim0 > 4)) || + (*argOrder == 'M' && (dim1 < 1 || dim1 > 4))) { + s += "UNKNOWN_DIMENSION"; + return s; } - } - // verify dimensions - if ((*argOrder == 'V' || *argOrder == 'M') && (dim0 < 1 || dim0 > 4) || - (*argOrder == 'M' && (dim1 < 1 || dim1 > 4))) { - s += "UNKNOWN_DIMENSION"; - return s; - } - - switch (*argOrder) { - case '-': break; // no dimensions for voids - case 'S': break; // no dimensions on scalars - case 'V': s += ('0' + (char)dim0); break; - case 'M': - { - if (!UseHlslTypes) // GLSL has column first for mat types - std::swap(dim0, dim1); - s += ('0' + (char)dim0); - s += 'x'; - s += ('0' + (char)dim1); - break; + switch (*argOrder) { + case '-': break; // no dimensions for voids + case 'S': break; // no dimensions on scalars + case 'V': s += ('0' + (char)dim0); break; + case 'M': + { + if (!UseHlslTypes) // GLSL has column first for mat types + std::swap(dim0, dim1); + s += ('0' + (char)dim0); + s += 'x'; + s += ('0' + (char)dim1); + break; + } } } @@ -160,17 +175,18 @@ inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char /*a const bool isVec = dim0Max > 1 || argType == 'V'; const bool isMat = dim1Max > 1 || argType == 'M'; - if ((isVec && dim0 == 1) || // avoid vec1 - (isMat && dim0 == 1 && dim1 == 1)) // avoid mat1x1 + if (!IsTextureType(argType) && + ((isVec && dim0 == 1) || // avoid vec1 + (isMat && dim0 == 1 && dim1 == 1))) // avoid mat1x1 return false; const std::string name(cname); // for ease of comparison. slow, but temporary, until HLSL parser is online. - + if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile return false; - if (isMat && (argType == 'I' || argType == 'U' || argType == 'B') || - retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B')) + if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) || + (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))) return false; if (name == "GetRenderTargetSamplePosition" || @@ -284,7 +300,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // orderKey can be: // S = scalar, V = vector, M = matrix, - = void // typekey can be: - // D = double, F = float, U = uint, I = int, B = bool, S = sampler, - = void + // D = double, F = float, U = uint, I = int, B = bool, + // S = sampler, T = texture, i = itexture, u = utexture, - = void // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter @@ -429,33 +446,39 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tex1D", "V4", "F", "S1,S", "S,F", EShLangFragmentMask }, - { "tex1D", "V4", "F", "S1,S,V1,V1", "S,F,F,F",EShLangFragmentMask }, - { "tex1Dbias", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dgrad", "V4", "F", "S1,V1,V1,V1","S,F,F,F",EShLangFragmentMask }, - { "tex1Dlod", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dproj", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "S2,V2", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, - { "tex2Dbias", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dgrad", "V4", "F", "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, - { "tex2Dlod", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dproj", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "S3,V3", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "tex3Dbias", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dgrad", "V4", "F", "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "tex3Dlod", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dproj", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "S4,V3", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "texCUBEbias", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, - { "texCUBEgrad", "V4", "F", "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "texCUBElod", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, - { "texCUBEproj", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, + { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask }, + { "tex1D", "V4", "F", "V1,S,V1,V1", "S,F,F,F",EShLangFragmentMask }, + { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dgrad", "V4", "F", "V1,V1,V1,V1","S,F,F,F",EShLangFragmentMask }, + { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "V2,V2", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, + { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dgrad", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, + { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "V3,V3", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dgrad", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "texCUBEbias", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, + { "texCUBEgrad", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "texCUBElod", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, + { "texCUBEproj", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, { "transpose", "^M", nullptr, "M", "F", EShLangAll }, { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, + // Texture object methods. Return type can be overridden by shader declaration. + { "Sample", "V4", "F", "V,S,V", "T,S,F", EShLangFragmentMask }, + { "Sample", "V4", "I", "V,S,V", "i,S,F", EShLangFragmentMask }, + { "Sample", "V4", "U", "V,S,V", "u,S,F", EShLangFragmentMask }, + // TODO: forms with texel-space offset parameter + // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; @@ -501,6 +524,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c s.append(intrinsic.name); // intrinsic name s.append("("); // open paren + const bool isTexture = IsTextureType(*argType); + // Append argument types, if any. for (int arg = 0; ; ++arg) { const char* nthArgOrder(NthArg(argOrder, arg)); @@ -509,6 +534,13 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c if (nthArgOrder == nullptr || nthArgType == nullptr) break; + // For textures, the 1D case isn't a 1-vector, but a scalar. + if (isTexture && dim0 == 1 && arg > 0 && *nthArgOrder == 'V') + nthArgOrder = "S"; + + // cube textures use vec3 coordinates + const int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; + s.append(arg > 0 ? ", ": ""); // comma separator if needed if (*nthArgOrder == '>') { // output params @@ -523,7 +555,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder; if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType; - AppendTypeName(s, nthArgOrder, nthArgType, dim0, dim1); // Add arguments + AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments } s.append(");\n"); // close paren and trailing semicolon @@ -606,7 +638,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); symbolTable.relateToOperator("degrees", EOpDegrees); symbolTable.relateToOperator("determinant", EOpDeterminant); - symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); // == ScopeDevice+CrossWorkGroup + symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpGroupMemoryBarrierWithGroupSync); // ... symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); @@ -710,6 +742,9 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); symbolTable.relateToOperator("transpose", EOpTranspose); symbolTable.relateToOperator("trunc", EOpTrunc); + + // Texture methods + symbolTable.relateToOperator("Sample", EOpMethodSample); } // diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 69e582f6..4bb0e99a 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -249,6 +250,9 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["Texture2DArray"] = EHTokTexture2darray; (*KeywordMap)["Texture3D"] = EHTokTexture3d; (*KeywordMap)["TextureCube"] = EHTokTextureCube; + (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; + (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; + (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; (*KeywordMap)["struct"] = EHTokStruct; (*KeywordMap)["typedef"] = EHTokTypedef; @@ -556,6 +560,9 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokTexture2darray: case EHTokTexture3d: case EHTokTextureCube: + case EHTokTextureCubearray: + case EHTokTexture2DMS: + case EHTokTexture2DMSarray: return keyword; // variable, user type, ... diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index b3c1227d..ebd9b63e 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -200,6 +201,9 @@ enum EHlslTokenClass { EHTokTexture2darray, EHTokTexture3d, EHTokTextureCube, + EHTokTextureCubearray, + EHTokTexture2DMS, + EHTokTexture2DMSarray, // variable, user type, ... EHTokIdentifier, @@ -278,4 +282,4 @@ enum EHlslTokenClass { } // end namespace glslang -#endif // EHLSLTOKENS_H_ \ No newline at end of file +#endif // EHLSLTOKENS_H_ From 9249c709b0d694bac399ad953775a33e4ca0cb1e Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Tue, 12 Jul 2016 20:44:32 -0600 Subject: [PATCH 002/217] HLSL: add in/out/inout qualifiers. --- Test/baseResults/hlsl.inoutquals.frag.out | 220 ++++++++++++++++++++++ Test/hlsl.inoutquals.frag | 25 +++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 9 + hlsl/hlslScanContext.cpp | 6 + hlsl/hlslTokens.h | 3 + 6 files changed, 264 insertions(+) create mode 100644 Test/baseResults/hlsl.inoutquals.frag.out create mode 100644 Test/hlsl.inoutquals.frag diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out new file mode 100644 index 00000000..3fb207b3 --- /dev/null +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -0,0 +1,220 @@ +hlsl.inoutquals.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Parameters: +0:8 'x' (in float) +0:8 'y' (out float) +0:8 'z' (inout float) +0:? Sequence +0:9 move second child to first child (temp float) +0:9 'y' (out float) +0:9 'x' (in float) +0:10 move second child to first child (temp float) +0:10 'z' (inout float) +0:10 'y' (out float) +0:11 move second child to first child (temp float) +0:11 'x' (in float) +0:11 Constant: +0:11 -1.000000 +0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Parameters: +0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? Sequence +0:18 Sequence +0:18 move second child to first child (temp float) +0:18 'x' (temp float) +0:18 Constant: +0:18 7.000000 +0:18 move second child to first child (temp float) +0:18 'z' (temp float) +0:18 Constant: +0:18 3.000000 +0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 'x' (temp float) +0:19 'y' (temp float) +0:19 'z' (temp float) +0:21 move second child to first child (temp 4-component vector of float) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Constant: +0:21 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:21 'x' (temp float) +0:21 'y' (temp float) +0:21 'z' (temp float) +0:21 Constant: +0:21 1.000000 +0:22 move second child to first child (temp float) +0:22 Depth: direct index for structure (temp float FragDepth) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index (temp float) +0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +0:22 Constant: +0:22 3 (const int) +0:24 Branch: Return with expression +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Parameters: +0:8 'x' (in float) +0:8 'y' (out float) +0:8 'z' (inout float) +0:? Sequence +0:9 move second child to first child (temp float) +0:9 'y' (out float) +0:9 'x' (in float) +0:10 move second child to first child (temp float) +0:10 'z' (inout float) +0:10 'y' (out float) +0:11 move second child to first child (temp float) +0:11 'x' (in float) +0:11 Constant: +0:11 -1.000000 +0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Parameters: +0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? Sequence +0:18 Sequence +0:18 move second child to first child (temp float) +0:18 'x' (temp float) +0:18 Constant: +0:18 7.000000 +0:18 move second child to first child (temp float) +0:18 'z' (temp float) +0:18 Constant: +0:18 3.000000 +0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 'x' (temp float) +0:19 'y' (temp float) +0:19 'z' (temp float) +0:21 move second child to first child (temp 4-component vector of float) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Constant: +0:21 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:21 'x' (temp float) +0:21 'y' (temp float) +0:21 'z' (temp float) +0:21 Constant: +0:21 1.000000 +0:22 move second child to first child (temp float) +0:22 Depth: direct index for structure (temp float FragDepth) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 1 (const int) +0:22 direct index (temp float) +0:22 'inpos' (noperspective in 4-component vector of float FragCoord) +0:22 Constant: +0:22 3 (const int) +0:24 Branch: Return with expression +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 54 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 45 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 12 "MyFunc(f1;f1;f1;" + Name 9 "x" + Name 10 "y" + Name 11 "z" + Name 17 "x" + Name 19 "z" + Name 21 "y" + Name 22 "param" + Name 24 "param" + Name 25 "param" + Name 31 "PS_OUTPUT" + MemberName 31(PS_OUTPUT) 0 "Color" + MemberName 31(PS_OUTPUT) 1 "Depth" + Name 33 "psout" + Name 45 "inpos" + MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 45(inpos) NoPerspective + Decorate 45(inpos) BuiltIn FragCoord + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) 7(ptr) 7(ptr) + 16: 6(float) Constant 3212836864 + 18: 6(float) Constant 1088421888 + 20: 6(float) Constant 1077936128 + 30: TypeVector 6(float) 4 + 31(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 32: TypePointer Function 31(PS_OUTPUT) + 34: TypeInt 32 1 + 35: 34(int) Constant 0 + 39: 6(float) Constant 1065353216 + 41: TypePointer Function 30(fvec4) + 43: 34(int) Constant 1 + 44: TypePointer Input 30(fvec4) + 45(inpos): 44(ptr) Variable Input + 46: TypeInt 32 0 + 47: 46(int) Constant 3 + 48: TypePointer Input 6(float) + 4(main): 2 Function None 3 + 5: Label + 17(x): 7(ptr) Variable Function + 19(z): 7(ptr) Variable Function + 21(y): 7(ptr) Variable Function + 22(param): 7(ptr) Variable Function + 24(param): 7(ptr) Variable Function + 25(param): 7(ptr) Variable Function + 33(psout): 32(ptr) Variable Function + Store 17(x) 18 + Store 19(z) 20 + 23: 6(float) Load 17(x) + Store 22(param) 23 + 26: 6(float) Load 19(z) + Store 25(param) 26 + 27: 2 FunctionCall 12(MyFunc(f1;f1;f1;) 22(param) 24(param) 25(param) + 28: 6(float) Load 24(param) + Store 21(y) 28 + 29: 6(float) Load 25(param) + Store 19(z) 29 + 36: 6(float) Load 17(x) + 37: 6(float) Load 21(y) + 38: 6(float) Load 19(z) + 40: 30(fvec4) CompositeConstruct 36 37 38 39 + 42: 41(ptr) AccessChain 33(psout) 35 + Store 42 40 + 49: 48(ptr) AccessChain 45(inpos) 47 + 50: 6(float) Load 49 + 51: 7(ptr) AccessChain 33(psout) 43 + Store 51 50 + 52:31(PS_OUTPUT) Load 33(psout) + ReturnValue 52 + FunctionEnd +12(MyFunc(f1;f1;f1;): 2 Function None 8 + 9(x): 7(ptr) FunctionParameter + 10(y): 7(ptr) FunctionParameter + 11(z): 7(ptr) FunctionParameter + 13: Label + 14: 6(float) Load 9(x) + Store 10(y) 14 + 15: 6(float) Load 10(y) + Store 11(z) 15 + Store 9(x) 16 + Return + FunctionEnd diff --git a/Test/hlsl.inoutquals.frag b/Test/hlsl.inoutquals.frag new file mode 100644 index 00000000..91798d57 --- /dev/null +++ b/Test/hlsl.inoutquals.frag @@ -0,0 +1,25 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +void MyFunc(in float x, out float y, inout float z) +{ + y = x; + z = y; + x = -1; // no effect since x = in param +} + +PS_OUTPUT main(noperspective in float4 inpos : SV_Position) +{ + PS_OUTPUT psout; + + float x = 7, y, z = 3; + MyFunc(x, y, z); + + psout.Color = float4(x, y, z, 1); + psout.Depth = inpos.w; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2acbfc40..c3523399 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -82,6 +82,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 1d08e158..53818851 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -478,6 +478,15 @@ void HlslGrammar::acceptQualifier(TQualifier& qualifier) case EHTokPrecise: qualifier.noContraction = true; break; + case EHTokIn: + qualifier.storage = EvqIn; + break; + case EHTokOut: + qualifier.storage = EvqOut; + break; + case EHTokInOut: + qualifier.storage = EvqInOut; + break; default: return; } diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 4bb0e99a..8a4eb736 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -114,6 +114,9 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["row_major"] = EHTokRowMajor; (*KeywordMap)["column_major"] = EHTokColumnMajor; (*KeywordMap)["packoffset"] = EHTokPackOffset; + (*KeywordMap)["in"] = EHTokIn; + (*KeywordMap)["out"] = EHTokOut; + (*KeywordMap)["inout"] = EHTokInOut; (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; @@ -449,6 +452,9 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokRowMajor: case EHTokColumnMajor: case EHTokPackOffset: + case EHTokIn: + case EHTokOut: + case EHTokInOut: return keyword; // template types diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index ebd9b63e..5a5266ae 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -61,6 +61,9 @@ enum EHlslTokenClass { EHTokRowMajor, EHTokColumnMajor, EHTokPackOffset, + EHTokIn, + EHTokOut, + EHTokInOut, // template types EHTokBuffer, From 92aff546329c768d5b7287eb634e48bade25e86b Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Tue, 12 Jul 2016 14:45:05 -0600 Subject: [PATCH 003/217] HLSL: add offset Sample() form and arrayed texture support --- .../hlsl.sample.basicarraydx10.frag.out | 446 +++++++++++++++ .../hlsl.sample.offsetarraydx10.frag.out | 358 ++++++++++++ .../hlsl.sample.offsetdx10.frag.out | 509 ++++++++++++++++++ Test/hlsl.sample.basicarraydx10.frag | 43 ++ Test/hlsl.sample.offsetarraydx10.frag | 37 ++ Test/hlsl.sample.offsetdx10.frag | 49 ++ gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslParseHelper.cpp | 18 +- hlsl/hlslParseables.cpp | 163 ++++-- 9 files changed, 1566 insertions(+), 60 deletions(-) create mode 100644 Test/baseResults/hlsl.sample.basicarraydx10.frag.out create mode 100644 Test/baseResults/hlsl.sample.offsetarraydx10.frag.out create mode 100644 Test/baseResults/hlsl.sample.offsetdx10.frag.out create mode 100644 Test/hlsl.sample.basicarraydx10.frag create mode 100644 Test/hlsl.sample.offsetarraydx10.frag create mode 100644 Test/hlsl.sample.offsetdx10.frag diff --git a/Test/baseResults/hlsl.sample.basicarraydx10.frag.out b/Test/baseResults/hlsl.sample.basicarraydx10.frag.out new file mode 100644 index 00000000..de92747a --- /dev/null +++ b/Test/baseResults/hlsl.sample.basicarraydx10.frag.out @@ -0,0 +1,446 @@ +hlsl.sample.basicarraydx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 129 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 28 "txval11" + Name 31 "g_tTex1di4" + Name 42 "txval12" + Name 45 "g_tTex1du4" + Name 53 "txval20" + Name 56 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval40" + Name 90 "g_tTexcdf4" + Name 97 "txval41" + Name 100 "g_tTexcdi4" + Name 107 "txval42" + Name 110 "g_tTexcdu4" + Name 120 "PS_OUTPUT" + MemberName 120(PS_OUTPUT) 0 "Color" + MemberName 120(PS_OUTPUT) 1 "Depth" + Name 122 "psout" + Name 128 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 110(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 128(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 25: TypeInt 32 1 + 26: TypeVector 25(int) 4 + 27: TypePointer Function 26(ivec4) + 29: TypeImage 25(int) 1D array sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeSampledImage 29 + 36: 6(float) Constant 1050253722 + 37: 20(fvec2) ConstantComposite 22 36 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 50: 6(float) Constant 1053609165 + 51: 20(fvec2) ConstantComposite 36 50 + 54: TypeImage 6(float) 2D array sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: TypeVector 6(float) 3 + 62: 61(fvec3) ConstantComposite 21 22 36 + 65: TypeImage 25(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1056964608 + 73: 61(fvec3) ConstantComposite 36 50 72 + 76: TypeImage 39(int) 2D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 6(float) Constant 1060320051 + 85: 61(fvec3) ConstantComposite 72 83 84 + 88: TypeImage 6(float) Cube array sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 7(fvec4) ConstantComposite 21 22 36 50 + 98: TypeImage 25(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 7(fvec4) ConstantComposite 50 72 83 84 + 108: TypeImage 39(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdu4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1061997773 + 116: 6(float) Constant 1063675494 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 84 115 116 117 + 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 121: TypePointer Function 120(PS_OUTPUT) + 123: 25(int) Constant 1 + 124: TypePointer Function 6(float) +128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 28(txval11): 27(ptr) Variable Function + 42(txval12): 41(ptr) Variable Function + 53(txval20): 8(ptr) Variable Function + 64(txval21): 27(ptr) Variable Function + 75(txval22): 41(ptr) Variable Function + 87(txval40): 8(ptr) Variable Function + 97(txval41): 27(ptr) Variable Function + 107(txval42): 41(ptr) Variable Function + 122(psout): 121(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 23 + Store 9(txval10) 24 + 32: 29 Load 31(g_tTex1di4) + 33: 14 Load 16(g_sSamp) + 35: 34 SampledImage 32 33 + 38: 26(ivec4) ImageSampleImplicitLod 35 37 + Store 28(txval11) 38 + 46: 43 Load 45(g_tTex1du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 52: 40(ivec4) ImageSampleImplicitLod 49 51 + Store 42(txval12) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 14 Load 16(g_sSamp) + 60: 59 SampledImage 57 58 + 63: 7(fvec4) ImageSampleImplicitLod 60 62 + Store 53(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 74: 26(ivec4) ImageSampleImplicitLod 71 73 + Store 64(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 40(ivec4) ImageSampleImplicitLod 82 85 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 14 Load 16(g_sSamp) + 94: 93 SampledImage 91 92 + 96: 7(fvec4) ImageSampleImplicitLod 94 95 + Store 87(txval40) 96 + 101: 98 Load 100(g_tTexcdi4) + 102: 14 Load 16(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 26(ivec4) ImageSampleImplicitLod 104 105 + Store 97(txval41) 106 + 111: 108 Load 110(g_tTexcdu4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 40(ivec4) ImageSampleImplicitLod 114 118 + Store 107(txval42) 119 + 125: 124(ptr) AccessChain 122(psout) 123 + Store 125 117 + 126:120(PS_OUTPUT) Load 122(psout) + ReturnValue 126 + FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out b/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out new file mode 100644 index 00000000..40e3ecd9 --- /dev/null +++ b/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out @@ -0,0 +1,358 @@ +hlsl.sample.offsetarraydx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 102 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 44 "txval12" + Name 47 "g_tTex1du4" + Name 56 "txval20" + Name 59 "g_tTex2df4" + Name 69 "txval21" + Name 72 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 101 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 47(g_tTex1du4) DescriptorSet 0 + Decorate 59(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 101(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 39: 24(int) Constant 1 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1053609165 + 53: 20(fvec2) ConstantComposite 37 52 + 54: 24(int) Constant 2 + 57: TypeImage 6(float) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2df4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 64(fvec3) ConstantComposite 21 22 37 + 66: TypeVector 24(int) 2 + 67: 66(ivec2) ConstantComposite 25 25 + 70: TypeImage 24(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeSampledImage 70 + 77: 6(float) Constant 1056964608 + 78: 64(fvec3) ConstantComposite 37 52 77 + 81: TypeImage 41(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 64(fvec3) ConstantComposite 77 88 89 + 91: 66(ivec2) ConstantComposite 25 39 + 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: TypePointer Function 6(float) +101(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 44(txval12): 43(ptr) Variable Function + 56(txval20): 8(ptr) Variable Function + 69(txval21): 28(ptr) Variable Function + 80(txval22): 43(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageSampleImplicitLod 19 23 ConstOffset 25 + Store 9(txval10) 26 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageSampleImplicitLod 36 38 ConstOffset 39 + Store 29(txval11) 40 + 48: 45 Load 47(g_tTex1du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageSampleImplicitLod 51 53 ConstOffset 54 + Store 44(txval12) 55 + 60: 57 Load 59(g_tTex2df4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 68: 7(fvec4) ImageSampleImplicitLod 63 65 ConstOffset 67 + Store 56(txval20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 14 Load 16(g_sSamp) + 76: 75 SampledImage 73 74 + 79: 27(ivec4) ImageSampleImplicitLod 76 78 ConstOffset 67 + Store 69(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 14 Load 16(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 42(ivec4) ImageSampleImplicitLod 87 90 ConstOffset 91 + Store 80(txval22) 92 + 98: 97(ptr) AccessChain 95(psout) 39 + Store 98 96 + 99:93(PS_OUTPUT) Load 95(psout) + ReturnValue 99 + FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetdx10.frag.out b/Test/baseResults/hlsl.sample.offsetdx10.frag.out new file mode 100644 index 00000000..d75de25b --- /dev/null +++ b/Test/baseResults/hlsl.sample.offsetdx10.frag.out @@ -0,0 +1,509 @@ +hlsl.sample.offsetdx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 63 "txval21" + Name 66 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 113 "txval32" + Name 116 "g_tTex3du4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 135 "g_tTex1df4a" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 66(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: TypeInt 32 1 + 22: 21(int) Constant 1 + 24: TypeVector 21(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 21(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 59: TypeVector 21(int) 2 + 60: 21(int) Constant 0 + 61: 59(ivec2) ConstantComposite 22 60 + 64: TypeImage 21(int) 2D sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4): 65(ptr) Variable UniformConstant + 69: TypeSampledImage 64 + 71: 6(float) Constant 1053609165 + 72: 57(fvec2) ConstantComposite 47 71 + 73: 59(ivec2) ConstantComposite 22 22 + 76: TypeImage 36(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1056964608 + 84: 6(float) Constant 1058642330 + 85: 57(fvec2) ConstantComposite 83 84 + 86: 21(int) Constant 4294967295 + 87: 59(ivec2) ConstantComposite 22 86 + 90: TypeImage 6(float) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3df4): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 20 34 47 + 99: TypeVector 21(int) 3 + 100: 99(ivec3) ConstantComposite 22 60 22 + 103: TypeImage 21(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 71 83 84 + 111: 99(ivec3) ConstantComposite 22 22 22 + 114: TypeImage 36(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 121: 6(float) Constant 1060320051 + 122: 6(float) Constant 1061997773 + 123: 6(float) Constant 1063675494 + 124: 97(fvec3) ConstantComposite 121 122 123 + 125: 99(ivec3) ConstantComposite 22 60 86 + 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 6(float) Constant 1065353216 + 131: TypePointer Function 6(float) +135(g_tTex1df4a): 11(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 21(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 36(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 63(txval21): 25(ptr) Variable Function + 75(txval22): 38(ptr) Variable Function + 89(txval30): 8(ptr) Variable Function + 102(txval31): 25(ptr) Variable Function + 113(txval32): 38(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleImplicitLod 19 20 ConstOffset 22 + Store 9(txval10) 23 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleImplicitLod 33 34 ConstOffset 22 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleImplicitLod 46 47 ConstOffset 22 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 62: 7(fvec4) ImageSampleImplicitLod 56 58 ConstOffset 61 + Store 49(txval20) 62 + 67: 64 Load 66(g_tTex2di4) + 68: 14 Load 16(g_sSamp) + 70: 69 SampledImage 67 68 + 74: 24(ivec4) ImageSampleImplicitLod 70 72 ConstOffset 73 + Store 63(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 88: 37(ivec4) ImageSampleImplicitLod 82 85 ConstOffset 87 + Store 75(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 14 Load 16(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleImplicitLod 96 98 ConstOffset 100 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 14 Load 16(g_sSamp) + 109: 108 SampledImage 106 107 + 112: 24(ivec4) ImageSampleImplicitLod 109 110 ConstOffset 111 + Store 102(txval31) 112 + 117: 114 Load 116(g_tTex3du4) + 118: 14 Load 16(g_sSamp) + 120: 119 SampledImage 117 118 + 126: 37(ivec4) ImageSampleImplicitLod 120 124 ConstOffset 125 + Store 113(txval32) 126 + 132: 131(ptr) AccessChain 129(psout) 22 + Store 132 130 + 133:127(PS_OUTPUT) Load 129(psout) + ReturnValue 133 + FunctionEnd diff --git a/Test/hlsl.sample.basicarraydx10.frag b/Test/hlsl.sample.basicarraydx10.frag new file mode 100644 index 00000000..2c680045 --- /dev/null +++ b/Test/hlsl.sample.basicarraydx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3)); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4)); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.sample.offsetarraydx10.frag b/Test/hlsl.sample.offsetarraydx10.frag new file mode 100644 index 00000000..616c8ddd --- /dev/null +++ b/Test/hlsl.sample.offsetarraydx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, float2(0.1, 0.2), 0); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, float2(0.2, 0.3), 1); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, float2(0.3, 0.4), 2); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int2(0,0)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float3(0.3, 0.4, 0.5), int2(0,0)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float3(0.5, 0.6, 0.7), int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.sample.offsetdx10.frag b/Test/hlsl.sample.offsetdx10.frag new file mode 100644 index 00000000..65ce7e48 --- /dev/null +++ b/Test/hlsl.sample.offsetdx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1, 1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2, 1); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3, 1); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6), int2(1,-1)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3), int3(1,0,1)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6), int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9), int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2acbfc40..8b364aa0 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -93,7 +93,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.sample.basicarraydx10.frag", "main"}, {"hlsl.sample.basicdx10.frag", "main"}, + {"hlsl.sample.offsetdx10.frag", "main"}, + {"hlsl.sample.offsetarraydx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index dc0f2dbd..b3566da6 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1236,9 +1236,17 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType switch (op) { case EOpMethodSample: { - TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); - TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + TOperator textureOp = EOpTexture; + + if (argAggregate->getSequence().size() == 4) { // 4th parameter is offset form + textureOp = EOpTextureOffset; + argOffset = argAggregate->getSequence()[3]->getAsTyped(); + } TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); @@ -1249,9 +1257,11 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txcombine->setType(TType(samplerType, EvqTemporary)); txcombine->setLoc(loc); - TIntermAggregate* txsample = new TIntermAggregate(EOpTexture); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); txsample->getSequence().push_back(txcombine); txsample->getSequence().push_back(argCoord); + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); txsample->setType(node->getType()); txsample->setLoc(loc); node = txsample; diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 4085800f..2bb3d8d7 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -51,14 +51,15 @@ #include "hlslParseables.h" #include #include +#include namespace { // anonymous namespace functions const bool UseHlslTypes = false; -const char* BaseTypeName(const char* argOrder, const char* scalarName, const char* vecName, const char* matName) +const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName) { - switch (*argOrder) { + switch (argOrder) { case 'S': return scalarName; case 'V': return vecName; case 'M': return matName; @@ -66,11 +67,28 @@ const char* BaseTypeName(const char* argOrder, const char* scalarName, const cha } } -bool IsTextureType(const char argType) -{ - return argType == 'T' || argType == 'i' || argType == 'u'; -} +bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } +bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } +// Reject certain combinations that are illegal sample methods. For example, +// 3D arrays. +bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) +{ + const bool isArrayed = IsTextureArrayed(*argOrder); + + if (isArrayed && dim0 == 3) // there are no 3D arrayed textures. + return true; + + const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; + + // Reject invalid offset arrayed forms. + if (isArrayed && dim0 == 4) { + if (name == "Sample" && numArgs == 4) + return true; + } + + return false; +} // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. @@ -81,43 +99,62 @@ bool IsTextureType(const char argType) // dim1 = matrix 2nd dimension glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) { - const bool transpose = (argOrder[0] == '^'); - const bool matMul = (argOrder[0] == '#'); + const bool isTranspose = (argOrder[0] == '^'); + const bool isMatMul = (argOrder[0] == '#'); + const bool isTexture = IsTextureType(argOrder[0]); + const bool isArrayed = IsTextureArrayed(argOrder[0]); - if (transpose) { // Take transpose of matrix dimensions + char order = *argOrder; + char type = *argType; + + if (isTranspose) { // Take transpose of matrix dimensions + order = *++argOrder; std::swap(dim0, dim1); - ++argOrder; - } else if (matMul) { - dim0 = dim1; // set vector dimension to mat col - ++argOrder; + } else if (isMatMul) { + order = *++argOrder; + dim0 = dim1; // set vector dimension to mat col + } else if (isTexture) { + order = *++argOrder; + if (type == 'F') // map base type to texture of that type. + type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. + else if (type == 'I') + type = 'i'; + else if (type == 'U') + type = 'u'; } if (UseHlslTypes) { - switch (*argType) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 'T': s += "Texture"; break; - case 'i': assert(0); // TODO: ... - case 'u': assert(0); // TODO: ... - default: s += "UNKNOWN_TYPE"; break; + switch (type) { + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 'T': s += "Texture"; break; + case 'i': s += "Texture "; break; + case 'u': s += "Texture "; break; + default: s += "UNKNOWN_TYPE"; break; } } else { - switch (*argType) { + switch (type) { case '-': s += "void"; break; - case 'F': s += BaseTypeName(argOrder, "float", "vec", "mat"); break; - case 'D': s += BaseTypeName(argOrder, "double", "dvec", "dmat"); break; - case 'I': s += BaseTypeName(argOrder, "int", "ivec", "imat"); break; - case 'U': s += BaseTypeName(argOrder, "uint", "uvec", "umat"); break; - case 'B': s += BaseTypeName(argOrder, "bool", "bvec", "bmat"); break; - case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; - case 'T': s += BaseTypeName(argOrder, "texture", "texture", "texture"); break; - case 'i': s += BaseTypeName(argOrder, "itexture", "itexture", "itexture"); break; - case 'u': s += BaseTypeName(argOrder, "utexture", "utexture", "utexture"); break; + case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break; + case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break; + case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break; + case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; + case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; + case 'S': s += "sampler"; break; + case 'T': // fall through + case 'i': // ... + case 'u': // ... + if (type != 'T') + s += type; + + s += "texture"; + break; + default: s += "UNKNOWN_TYPE"; break; } } @@ -128,8 +165,8 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons dim0 = dim1 = fixedVecSize; // Add sampler dimensions - if (*argType == 'S' || IsTextureType(*argType)) { - if (*argOrder == 'V') { + if (type == 'S' || isTexture) { + if (order == 'V') { switch (dim0) { case 1: s += "1D"; break; case 2: s += "2D"; break; @@ -141,13 +178,13 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons } else { // Non-sampler type: // verify dimensions - if (((*argOrder == 'V' || *argOrder == 'M') && (dim0 < 1 || dim0 > 4)) || - (*argOrder == 'M' && (dim1 < 1 || dim1 > 4))) { + if (((order == 'V' || order == 'M') && (dim0 < 1 || dim0 > 4)) || + (order == 'M' && (dim1 < 1 || dim1 > 4))) { s += "UNKNOWN_DIMENSION"; return s; } - switch (*argOrder) { + switch (order) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars case 'V': s += ('0' + (char)dim0); break; @@ -163,19 +200,23 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons } } + // handle arrayed textures + if (isArrayed) + s += "Array"; + return s; } // TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes // are not valid GLSL prototypes. This rejects the invalid ones. Thus, there is a single switch below // to enable creation of the entire HLSL space. -inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char /*argOrder*/, char argType, +inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1, int dim0Max, int dim1Max) { const bool isVec = dim0Max > 1 || argType == 'V'; const bool isMat = dim1Max > 1 || argType == 'M'; - if (!IsTextureType(argType) && + if (!IsTextureType(argOrder) && ((isVec && dim0 == 1) || // avoid vec1 (isMat && dim0 == 1 && dim1 == 1))) // avoid mat1x1 return false; @@ -300,13 +341,14 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // orderKey can be: // S = scalar, V = vector, M = matrix, - = void // typekey can be: - // D = double, F = float, U = uint, I = int, B = bool, - // S = sampler, T = texture, i = itexture, u = utexture, - = void + // D = double, F = float, U = uint, I = int, B = bool, S = sampler // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter // '^' as first letter of order takes transpose dimensions // '#' as first letter of order sets rows=cols for mats + // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) + // '@' as first letter of order creates arrayed texture of given type static const struct { const char* name; // intrinsic name @@ -474,10 +516,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // Texture object methods. Return type can be overridden by shader declaration. - { "Sample", "V4", "F", "V,S,V", "T,S,F", EShLangFragmentMask }, - { "Sample", "V4", "I", "V,S,V", "i,S,F", EShLangFragmentMask }, - { "Sample", "V4", "U", "V,S,V", "u,S,F", EShLangFragmentMask }, - // TODO: forms with texel-space offset parameter + // !O = no offset, O = offset, !A = no array, A = array + { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, @@ -499,6 +542,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c TString& s = (intrinsic.stage == EShLangAll) ? commonBuiltins : stageBuiltins[stage]; for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... + const bool isTexture = IsTextureType(*argOrder); + const bool isArrayed = IsTextureArrayed(*argOrder); const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0; // calculate min and max vector and matrix dimensions @@ -519,13 +564,15 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c dim0, dim1, dim0Max, dim1Max)) continue; + // Reject some forms of sample methods that don't exist. + if (isTexture && IsIllegalSample(s, argOrder, dim0)) + continue; + AppendTypeName(s, retOrder, retType, dim0, dim1); // add return type s.append(" "); // space between type and name s.append(intrinsic.name); // intrinsic name s.append("("); // open paren - const bool isTexture = IsTextureType(*argType); - // Append argument types, if any. for (int arg = 0; ; ++arg) { const char* nthArgOrder(NthArg(argOrder, arg)); @@ -534,12 +581,16 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c if (nthArgOrder == nullptr || nthArgType == nullptr) break; - // For textures, the 1D case isn't a 1-vector, but a scalar. - if (isTexture && dim0 == 1 && arg > 0 && *nthArgOrder == 'V') - nthArgOrder = "S"; - // cube textures use vec3 coordinates - const int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; + int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; + + // arrayed textures have one extra coordinate dimension + if (isArrayed && arg == 2) + argDim0++; + + // For textures, the 1D case isn't a 1-vector, but a scalar. + if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V') + nthArgOrder = "S"; s.append(arg > 0 ? ", ": ""); // comma separator if needed @@ -563,7 +614,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c } } - if (fixedVecSize > 0) // skip over number for fixed size vectors + if (fixedVecSize > 0 || isTexture) // skip over special characters ++argOrder; } From b1165f49d5b420d3e45efc320dbb4f5c43a6da74 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 15 Jul 2016 11:25:28 -0400 Subject: [PATCH 004/217] Reorder fields to avoid compiler initialization order error. --- glslang/Include/Types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 59bbe9f5..f3ea8950 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1717,13 +1717,13 @@ protected: // functionality is added. // HLSL does have a 1-component vectors, so this will be true to disambiguate // from a scalar. - TSampler sampler; TQualifier qualifier; TArraySizes* arraySizes; // nullptr unless an array; can be shared across types TTypeList* structure; // nullptr unless this is a struct; can be shared across types TString *fieldName; // for structure field names TString *typeName; // for structure type name + TSampler sampler; }; } // end namespace glslang From a2b799149796a3de28e0807903c8df0f959962f5 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Thu, 14 Jul 2016 14:45:14 -0600 Subject: [PATCH 005/217] HLSL: Add SampleBias and SampleGrad, and associated tests --- ...ag.out => hlsl.sample.array.dx10.frag.out} | 2 +- ...ag.out => hlsl.sample.basic.dx10.frag.out} | 2 +- ...g.out => hlsl.sample.offset.dx10.frag.out} | 2 +- ... => hlsl.sample.offsetarray.dx10.frag.out} | 2 +- .../hlsl.samplebias.array.dx10.frag.out | 482 ++++++++++++ .../hlsl.samplebias.basic.dx10.frag.out | 583 +++++++++++++++ .../hlsl.samplebias.offset.dx10.frag.out | 545 ++++++++++++++ .../hlsl.samplebias.offsetarray.dx10.frag.out | 382 ++++++++++ .../hlsl.samplegrad.array.dx10.frag.out | 548 ++++++++++++++ .../hlsl.samplegrad.basic.dx10.frag.out | 696 +++++++++++++++++ .../hlsl.samplegrad.basic.dx10.vert.out | 698 ++++++++++++++++++ .../hlsl.samplegrad.offset.dx10.frag.out | 622 ++++++++++++++++ .../hlsl.samplegrad.offsetarray.dx10.frag.out | 433 +++++++++++ ...ydx10.frag => hlsl.sample.array.dx10.frag} | 0 ...cdx10.frag => hlsl.sample.basic.dx10.frag} | 0 ...dx10.frag => hlsl.sample.offset.dx10.frag} | 0 ...frag => hlsl.sample.offsetarray.dx10.frag} | 0 Test/hlsl.samplebias.array.dx10.frag | 43 ++ Test/hlsl.samplebias.basic.dx10.frag | 51 ++ Test/hlsl.samplebias.offset.dx10.frag | 49 ++ Test/hlsl.samplebias.offsetarray.dx10.frag | 37 + Test/hlsl.samplegrad.array.dx10.frag | 43 ++ Test/hlsl.samplegrad.basic.dx10.frag | 51 ++ Test/hlsl.samplegrad.basic.dx10.vert | 49 ++ Test/hlsl.samplegrad.offset.dx10.frag | 49 ++ Test/hlsl.samplegrad.offsetarray.dx10.frag | 39 + glslang/Include/intermediate.h | 13 +- gtests/Hlsl.FromFile.cpp | 17 +- hlsl/hlslParseHelper.cpp | 155 ++-- hlsl/hlslParseHelper.h | 3 +- hlsl/hlslParseables.cpp | 81 +- 31 files changed, 5597 insertions(+), 80 deletions(-) rename Test/baseResults/{hlsl.sample.basicarraydx10.frag.out => hlsl.sample.array.dx10.frag.out} (99%) rename Test/baseResults/{hlsl.sample.basicdx10.frag.out => hlsl.sample.basic.dx10.frag.out} (99%) rename Test/baseResults/{hlsl.sample.offsetdx10.frag.out => hlsl.sample.offset.dx10.frag.out} (99%) rename Test/baseResults/{hlsl.sample.offsetarraydx10.frag.out => hlsl.sample.offsetarray.dx10.frag.out} (99%) create mode 100644 Test/baseResults/hlsl.samplebias.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplebias.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplebias.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplegrad.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out create mode 100644 Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out rename Test/{hlsl.sample.basicarraydx10.frag => hlsl.sample.array.dx10.frag} (100%) rename Test/{hlsl.sample.basicdx10.frag => hlsl.sample.basic.dx10.frag} (100%) rename Test/{hlsl.sample.offsetdx10.frag => hlsl.sample.offset.dx10.frag} (100%) rename Test/{hlsl.sample.offsetarraydx10.frag => hlsl.sample.offsetarray.dx10.frag} (100%) create mode 100644 Test/hlsl.samplebias.array.dx10.frag create mode 100644 Test/hlsl.samplebias.basic.dx10.frag create mode 100644 Test/hlsl.samplebias.offset.dx10.frag create mode 100644 Test/hlsl.samplebias.offsetarray.dx10.frag create mode 100644 Test/hlsl.samplegrad.array.dx10.frag create mode 100644 Test/hlsl.samplegrad.basic.dx10.frag create mode 100644 Test/hlsl.samplegrad.basic.dx10.vert create mode 100644 Test/hlsl.samplegrad.offset.dx10.frag create mode 100644 Test/hlsl.samplegrad.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.sample.basicarraydx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.basicarraydx10.frag.out rename to Test/baseResults/hlsl.sample.array.dx10.frag.out index de92747a..99784de3 100644 --- a/Test/baseResults/hlsl.sample.basicarraydx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.basicarraydx10.frag +hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.sample.basicdx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.basicdx10.frag.out rename to Test/baseResults/hlsl.sample.basic.dx10.frag.out index 9c64bdf6..234e3888 100644 --- a/Test/baseResults/hlsl.sample.basicdx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.basicdx10.frag +hlsl.sample.basic.dx10.frag WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 diff --git a/Test/baseResults/hlsl.sample.offsetdx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.offsetdx10.frag.out rename to Test/baseResults/hlsl.sample.offset.dx10.frag.out index d75de25b..09e94a7a 100644 --- a/Test/baseResults/hlsl.sample.offsetdx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.offsetdx10.frag +hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out similarity index 99% rename from Test/baseResults/hlsl.sample.offsetarraydx10.frag.out rename to Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 40e3ecd9..38119f76 100644 --- a/Test/baseResults/hlsl.sample.offsetarraydx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -1,4 +1,4 @@ -hlsl.sample.offsetarraydx10.frag +hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out new file mode 100644 index 00000000..96d9be7c --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -0,0 +1,482 @@ +hlsl.samplebias.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 texture (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.500000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 texture (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.500000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 texture (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.500000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 129 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 65 "txval21" + Name 68 "g_tTex2di4" + Name 75 "txval22" + Name 78 "g_tTex2du4" + Name 87 "txval40" + Name 90 "g_tTexcdf4" + Name 97 "txval41" + Name 100 "g_tTexcdi4" + Name 107 "txval42" + Name 110 "g_tTexcdu4" + Name 120 "PS_OUTPUT" + MemberName 120(PS_OUTPUT) 0 "Color" + MemberName 120(PS_OUTPUT) 1 "Depth" + Name 122 "psout" + Name 128 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 68(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 110(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 128(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 62(fvec3) ConstantComposite 37 51 24 + 76: TypeImage 40(int) 2D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeSampledImage 76 + 83: 6(float) Constant 1058642330 + 84: 6(float) Constant 1060320051 + 85: 62(fvec3) ConstantComposite 24 83 84 + 88: TypeImage 6(float) Cube array sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 7(fvec4) ConstantComposite 21 22 37 51 + 98: TypeImage 26(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 103: TypeSampledImage 98 + 105: 7(fvec4) ConstantComposite 51 24 83 84 + 108: TypeImage 40(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTexcdu4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1061997773 + 116: 6(float) Constant 1063675494 + 117: 6(float) Constant 1065353216 + 118: 7(fvec4) ConstantComposite 84 115 116 117 + 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 121: TypePointer Function 120(PS_OUTPUT) + 123: 26(int) Constant 1 + 124: TypePointer Function 6(float) +128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 75(txval22): 42(ptr) Variable Function + 87(txval40): 8(ptr) Variable Function + 97(txval41): 28(ptr) Variable Function + 107(txval42): 42(ptr) Variable Function + 122(psout): 121(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleImplicitLod 19 23 Bias 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleImplicitLod 36 38 Bias 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleImplicitLod 50 52 Bias 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleImplicitLod 61 63 Bias 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 74: 27(ivec4) ImageSampleImplicitLod 72 73 Bias 24 + Store 65(txval21) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 14 Load 16(g_sSamp) + 82: 81 SampledImage 79 80 + 86: 41(ivec4) ImageSampleImplicitLod 82 85 Bias 24 + Store 75(txval22) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 14 Load 16(g_sSamp) + 94: 93 SampledImage 91 92 + 96: 7(fvec4) ImageSampleImplicitLod 94 95 Bias 24 + Store 87(txval40) 96 + 101: 98 Load 100(g_tTexcdi4) + 102: 14 Load 16(g_sSamp) + 104: 103 SampledImage 101 102 + 106: 27(ivec4) ImageSampleImplicitLod 104 105 Bias 24 + Store 97(txval41) 106 + 111: 108 Load 110(g_tTexcdu4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24 + Store 107(txval42) 119 + 125: 124(ptr) AccessChain 122(psout) 123 + Store 125 117 + 126:120(PS_OUTPUT) Load 122(psout) + ReturnValue 126 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out new file mode 100644 index 00000000..3fb36ee5 --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -0,0 +1,583 @@ +hlsl.samplebias.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 texture (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 texture (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 texture (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 texture (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 texture (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 texture (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 texture (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 texture (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 texture (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 texture (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 texture (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 texture (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 texture (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 texture (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 texture (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 texture (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:43 Constant: +0:43 0.500000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 texture (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:44 Constant: +0:44 0.500000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 texture (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 Constant: +0:45 0.500000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 153 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 82 "txval30" + Name 85 "g_tTex3df4" + Name 93 "txval31" + Name 96 "g_tTex3di4" + Name 103 "txval32" + Name 106 "g_tTex3du4" + Name 116 "txval40" + Name 119 "g_tTexcdf4" + Name 125 "txval41" + Name 128 "g_tTexcdi4" + Name 134 "txval42" + Name 137 "g_tTexcdu4" + Name 143 "PS_OUTPUT" + MemberName 143(PS_OUTPUT) 0 "Color" + MemberName 143(PS_OUTPUT) 1 "Depth" + Name 145 "psout" + Name 152 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 119(g_tTexcdf4) DescriptorSet 0 + Decorate 128(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 152(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1058642330 + 80: 57(fvec2) ConstantComposite 21 79 + 83: TypeImage 6(float) 3D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex3df4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: TypeVector 6(float) 3 + 91: 90(fvec3) ConstantComposite 20 34 47 + 94: TypeImage 23(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 99: TypeSampledImage 94 + 101: 90(fvec3) ConstantComposite 68 21 79 + 104: TypeImage 36(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 6(float) Constant 1060320051 + 112: 6(float) Constant 1061997773 + 113: 6(float) Constant 1063675494 + 114: 90(fvec3) ConstantComposite 111 112 113 + 117: TypeImage 6(float) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdf4): 118(ptr) Variable UniformConstant + 122: TypeSampledImage 117 + 126: TypeImage 23(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdi4): 127(ptr) Variable UniformConstant + 131: TypeSampledImage 126 + 135: TypeImage 36(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 140: TypeSampledImage 135 + 143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 144: TypePointer Function 143(PS_OUTPUT) + 146: 23(int) Constant 1 + 147: 6(float) Constant 1065353216 + 148: TypePointer Function 6(float) +152(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 82(txval30): 8(ptr) Variable Function + 93(txval31): 25(ptr) Variable Function + 103(txval32): 38(ptr) Variable Function + 116(txval40): 8(ptr) Variable Function + 125(txval41): 25(ptr) Variable Function + 134(txval42): 38(ptr) Variable Function + 145(psout): 144(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleImplicitLod 19 20 Bias 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleImplicitLod 33 34 Bias 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleImplicitLod 46 47 Bias 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleImplicitLod 56 58 Bias 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleImplicitLod 67 69 Bias 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 81: 37(ivec4) ImageSampleImplicitLod 78 80 Bias 21 + Store 71(txval22) 81 + 86: 83 Load 85(g_tTex3df4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 92: 7(fvec4) ImageSampleImplicitLod 89 91 Bias 21 + Store 82(txval30) 92 + 97: 94 Load 96(g_tTex3di4) + 98: 14 Load 16(g_sSamp) + 100: 99 SampledImage 97 98 + 102: 24(ivec4) ImageSampleImplicitLod 100 101 Bias 21 + Store 93(txval31) 102 + 107: 104 Load 106(g_tTex3du4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 115: 37(ivec4) ImageSampleImplicitLod 110 114 Bias 21 + Store 103(txval32) 115 + 120: 117 Load 119(g_tTexcdf4) + 121: 14 Load 16(g_sSamp) + 123: 122 SampledImage 120 121 + 124: 7(fvec4) ImageSampleImplicitLod 123 91 Bias 21 + Store 116(txval40) 124 + 129: 126 Load 128(g_tTexcdi4) + 130: 14 Load 16(g_sSamp) + 132: 131 SampledImage 129 130 + 133: 24(ivec4) ImageSampleImplicitLod 132 101 Bias 21 + Store 125(txval41) 133 + 138: 135 Load 137(g_tTexcdu4) + 139: 14 Load 16(g_sSamp) + 141: 140 SampledImage 138 139 + 142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21 + Store 134(txval42) 142 + 149: 148(ptr) AccessChain 145(psout) 146 + Store 149 147 + 150:143(PS_OUTPUT) Load 145(psout) + ReturnValue 150 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out new file mode 100644 index 00000000..8faab19d --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -0,0 +1,545 @@ +hlsl.samplebias.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.500000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.500000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.500000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.500000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.500000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 89 "txval30" + Name 92 "g_tTex3df4" + Name 102 "txval31" + Name 105 "g_tTex3di4" + Name 113 "txval32" + Name 116 "g_tTex3du4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 135 "g_tTex1df4a" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 92(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1056964608 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 58(fvec2) ConstantComposite 21 84 + 86: 22(int) Constant 4294967295 + 87: 60(ivec2) ConstantComposite 23 86 + 90: TypeImage 6(float) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3df4): 91(ptr) Variable UniformConstant + 95: TypeSampledImage 90 + 97: TypeVector 6(float) 3 + 98: 97(fvec3) ConstantComposite 20 35 48 + 99: TypeVector 22(int) 3 + 100: 99(ivec3) ConstantComposite 23 61 23 + 103: TypeImage 22(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 108: TypeSampledImage 103 + 110: 97(fvec3) ConstantComposite 72 21 84 + 111: 99(ivec3) ConstantComposite 23 23 23 + 114: TypeImage 37(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 119: TypeSampledImage 114 + 121: 6(float) Constant 1060320051 + 122: 6(float) Constant 1061997773 + 123: 6(float) Constant 1063675494 + 124: 97(fvec3) ConstantComposite 121 122 123 + 125: 99(ivec3) ConstantComposite 23 61 86 + 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 6(float) Constant 1065353216 + 131: TypePointer Function 6(float) +135(g_tTex1df4a): 11(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 22(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 37(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 89(txval30): 8(ptr) Variable Function + 102(txval31): 26(ptr) Variable Function + 113(txval32): 39(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 20 Bias ConstOffset 23 21 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleImplicitLod 34 35 Bias ConstOffset 23 21 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleImplicitLod 47 48 Bias ConstOffset 23 21 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleImplicitLod 57 59 Bias ConstOffset 62 21 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleImplicitLod 71 73 Bias ConstOffset 74 21 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 88: 38(ivec4) ImageSampleImplicitLod 83 85 Bias ConstOffset 87 21 + Store 76(txval22) 88 + 93: 90 Load 92(g_tTex3df4) + 94: 14 Load 16(g_sSamp) + 96: 95 SampledImage 93 94 + 101: 7(fvec4) ImageSampleImplicitLod 96 98 Bias ConstOffset 100 21 + Store 89(txval30) 101 + 106: 103 Load 105(g_tTex3di4) + 107: 14 Load 16(g_sSamp) + 109: 108 SampledImage 106 107 + 112: 25(ivec4) ImageSampleImplicitLod 109 110 Bias ConstOffset 111 21 + Store 102(txval31) 112 + 117: 114 Load 116(g_tTex3du4) + 118: 14 Load 16(g_sSamp) + 120: 119 SampledImage 117 118 + 126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21 + Store 113(txval32) 126 + 132: 131(ptr) AccessChain 129(psout) 23 + Store 132 130 + 133:127(PS_OUTPUT) Load 129(psout) + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out new file mode 100644 index 00000000..51f61235 --- /dev/null +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -0,0 +1,382 @@ +hlsl.samplebias.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.500000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.500000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.500000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.500000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 102 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 80 "txval22" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 101 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 101(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1056964608 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: TypeVector 6(float) 3 + 66: 65(fvec3) ConstantComposite 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 65(fvec3) ConstantComposite 38 53 24 + 81: TypeImage 42(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeSampledImage 81 + 88: 6(float) Constant 1058642330 + 89: 6(float) Constant 1060320051 + 90: 65(fvec3) ConstantComposite 24 88 89 + 91: 67(ivec2) ConstantComposite 26 40 + 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 6(float) Constant 1065353216 + 97: TypePointer Function 6(float) +101(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 80(txval22): 44(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleImplicitLod 19 23 Bias ConstOffset 26 24 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleImplicitLod 37 39 Bias ConstOffset 40 24 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleImplicitLod 52 54 Bias ConstOffset 55 24 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleImplicitLod 64 66 Bias ConstOffset 68 24 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 79: 28(ivec4) ImageSampleImplicitLod 77 78 Bias ConstOffset 68 24 + Store 70(txval21) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 14 Load 16(g_sSamp) + 87: 86 SampledImage 84 85 + 92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24 + Store 80(txval22) 92 + 98: 97(ptr) AccessChain 95(psout) 40 + Store 98 96 + 99:93(PS_OUTPUT) Load 95(psout) + ReturnValue 99 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out new file mode 100644 index 00000000..4d3a096b --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -0,0 +1,548 @@ +hlsl.samplegrad.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGrad (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGrad (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGrad (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGrad (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGrad (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGrad (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 123 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 42 "txval12" + Name 45 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 82 "txval40" + Name 85 "g_tTexcdf4" + Name 95 "txval41" + Name 98 "g_tTexcdi4" + Name 104 "txval42" + Name 107 "g_tTexcdu4" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 122 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 85(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 122(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 27: TypeInt 32 1 + 28: TypeVector 27(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 27(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 52: TypeImage 6(float) 2D array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 3 + 60: 6(float) Constant 1050253722 + 61: 59(fvec3) ConstantComposite 21 22 60 + 62: 20(fvec2) ConstantComposite 24 25 + 65: TypeImage 27(int) 2D array sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 74: TypeImage 39(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 83: TypeImage 6(float) Cube array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTexcdf4): 84(ptr) Variable UniformConstant + 88: TypeSampledImage 83 + 90: 6(float) Constant 1053609165 + 91: 7(fvec4) ConstantComposite 21 22 60 90 + 92: 6(float) Constant 1067869798 + 93: 59(fvec3) ConstantComposite 24 25 92 + 96: TypeImage 27(int) Cube array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 101: TypeSampledImage 96 + 105: TypeImage 39(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 27(int) Constant 1 + 117: 6(float) Constant 1065353216 + 118: TypePointer Function 6(float) +122(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 42(txval12): 41(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 64(txval21): 29(ptr) Variable Function + 73(txval22): 41(ptr) Variable Function + 82(txval40): 8(ptr) Variable Function + 95(txval41): 29(ptr) Variable Function + 104(txval42): 41(ptr) Variable Function + 115(psout): 114(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageSampleExplicitLod 19 23 Grad 24 25 + Store 9(txval10) 26 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 38: 28(ivec4) ImageSampleExplicitLod 37 23 Grad 24 25 + Store 30(txval11) 38 + 46: 43 Load 45(g_tTex1du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 50: 40(ivec4) ImageSampleExplicitLod 49 23 Grad 24 25 + Store 42(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 63: 7(fvec4) ImageSampleExplicitLod 58 61 Grad 62 62 + Store 51(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 72: 28(ivec4) ImageSampleExplicitLod 71 61 Grad 62 62 + Store 64(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 81: 40(ivec4) ImageSampleExplicitLod 80 61 Grad 62 62 + Store 73(txval22) 81 + 86: 83 Load 85(g_tTexcdf4) + 87: 14 Load 16(g_sSamp) + 89: 88 SampledImage 86 87 + 94: 7(fvec4) ImageSampleExplicitLod 89 91 Grad 93 93 + Store 82(txval40) 94 + 99: 96 Load 98(g_tTexcdi4) + 100: 14 Load 16(g_sSamp) + 102: 101 SampledImage 99 100 + 103: 28(ivec4) ImageSampleExplicitLod 102 91 Grad 93 93 + Store 95(txval41) 103 + 108: 105 Load 107(g_tTexcdu4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93 + Store 104(txval42) 112 + 119: 118(ptr) AccessChain 115(psout) 116 + Store 119 117 + 120:113(PS_OUTPUT) Load 115(psout) + ReturnValue 120 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out new file mode 100644 index 00000000..ac5442e6 --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -0,0 +1,696 @@ +hlsl.samplegrad.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGrad (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGrad (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGrad (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 textureGrad (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 textureGrad (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 textureGrad (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGrad (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGrad (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGrad (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGrad (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGrad (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGrad (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGrad (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGrad (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGrad (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval40' (temp 4-component vector of float) +0:43 textureGrad (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp samplerCube) +0:43 'g_tTexcdf4' (uniform textureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval41' (temp 4-component vector of int) +0:44 textureGrad (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isamplerCube) +0:44 'g_tTexcdi4' (uniform itextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval42' (temp 4-component vector of uint) +0:45 textureGrad (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usamplerCube) +0:45 'g_tTexcdu4' (uniform utextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:48 move second child to first child (temp float) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) +0:48 Constant: +0:48 1.000000 +0:50 Branch: Return with expression +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 158 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 148 "PS_OUTPUT" + MemberName 148(PS_OUTPUT) 0 "Color" + MemberName 148(PS_OUTPUT) 1 "Depth" + Name 150 "psout" + Name 157 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 157(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 93(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 149: TypePointer Function 148(PS_OUTPUT) + 151: 24(int) Constant 1 + 152: 6(float) Constant 1065353216 + 153: TypePointer Function 6(float) +157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(psout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 153(ptr) AccessChain 150(psout) 151 + Store 154 152 + 155:148(PS_OUTPUT) Load 150(psout) + ReturnValue 155 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out new file mode 100644 index 00000000..7b4cbde9 --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -0,0 +1,698 @@ +hlsl.samplegrad.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureGrad (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureGrad (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureGrad (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGrad (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGrad (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGrad (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureGrad (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureGrad (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureGrad (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureGrad (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureGrad (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureGrad (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureGrad (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 1.100000 +0:30 Constant: +0:30 1.200000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureGrad (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureGrad (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGrad (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGrad (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGrad (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureGrad (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureGrad (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureGrad (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureGrad (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureGrad (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureGrad (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 158 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 62 "txval21" + Name 65 "g_tTex2di4" + Name 73 "txval22" + Name 76 "g_tTex2du4" + Name 85 "txval30" + Name 88 "g_tTex3df4" + Name 98 "txval31" + Name 101 "g_tTex3di4" + Name 108 "txval32" + Name 111 "g_tTex3du4" + Name 121 "txval40" + Name 124 "g_tTexcdf4" + Name 130 "txval41" + Name 133 "g_tTexcdi4" + Name 139 "txval42" + Name 142 "g_tTexcdu4" + Name 148 "VS_OUTPUT" + MemberName 148(VS_OUTPUT) 0 "Pos" + Name 150 "vsout" + Name 157 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 65(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 88(g_tTex3df4) DescriptorSet 0 + Decorate 101(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 133(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 157(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 24(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: 58(fvec2) ConstantComposite 21 22 + 63: TypeImage 24(int) 2D sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2di4): 64(ptr) Variable UniformConstant + 68: TypeSampledImage 63 + 70: 6(float) Constant 1053609165 + 71: 58(fvec2) ConstantComposite 48 70 + 74: TypeImage 37(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 79: TypeSampledImage 74 + 81: 6(float) Constant 1056964608 + 82: 6(float) Constant 1058642330 + 83: 58(fvec2) ConstantComposite 81 82 + 86: TypeImage 6(float) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3df4): 87(ptr) Variable UniformConstant + 91: TypeSampledImage 86 + 93: TypeVector 6(float) 3 + 94: 93(fvec3) ConstantComposite 20 35 48 + 95: 6(float) Constant 1067869798 + 96: 93(fvec3) ConstantComposite 21 22 95 + 99: TypeImage 24(int) 3D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex3di4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 93(fvec3) ConstantComposite 70 81 82 + 109: TypeImage 37(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1060320051 + 117: 6(float) Constant 1061997773 + 118: 6(float) Constant 1063675494 + 119: 93(fvec3) ConstantComposite 116 117 118 + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 131: TypeImage 24(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdi4): 132(ptr) Variable UniformConstant + 136: TypeSampledImage 131 + 140: TypeImage 37(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 145: TypeSampledImage 140 + 148(VS_OUTPUT): TypeStruct 7(fvec4) + 149: TypePointer Function 148(VS_OUTPUT) + 151: 24(int) Constant 0 + 152: 6(float) Constant 0 + 153: 7(fvec4) ConstantComposite 152 152 152 152 +157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 62(txval21): 26(ptr) Variable Function + 73(txval22): 39(ptr) Variable Function + 85(txval30): 8(ptr) Variable Function + 98(txval31): 26(ptr) Variable Function + 108(txval32): 39(ptr) Variable Function + 121(txval40): 8(ptr) Variable Function + 130(txval41): 26(ptr) Variable Function + 139(txval42): 39(ptr) Variable Function + 150(vsout): 149(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleExplicitLod 19 20 Grad 21 22 + Store 9(txval10) 23 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Grad 21 22 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Grad 21 22 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 61: 7(fvec4) ImageSampleExplicitLod 57 59 Grad 60 60 + Store 50(txval20) 61 + 66: 63 Load 65(g_tTex2di4) + 67: 14 Load 16(g_sSamp) + 69: 68 SampledImage 66 67 + 72: 25(ivec4) ImageSampleExplicitLod 69 71 Grad 60 60 + Store 62(txval21) 72 + 77: 74 Load 76(g_tTex2du4) + 78: 14 Load 16(g_sSamp) + 80: 79 SampledImage 77 78 + 84: 38(ivec4) ImageSampleExplicitLod 80 83 Grad 60 60 + Store 73(txval22) 84 + 89: 86 Load 88(g_tTex3df4) + 90: 14 Load 16(g_sSamp) + 92: 91 SampledImage 89 90 + 97: 7(fvec4) ImageSampleExplicitLod 92 94 Grad 96 96 + Store 85(txval30) 97 + 102: 99 Load 101(g_tTex3di4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 25(ivec4) ImageSampleExplicitLod 105 106 Grad 96 96 + Store 98(txval31) 107 + 112: 109 Load 111(g_tTex3du4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 38(ivec4) ImageSampleExplicitLod 115 119 Grad 96 96 + Store 108(txval32) 120 + 125: 122 Load 124(g_tTexcdf4) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) ImageSampleExplicitLod 128 94 Grad 96 96 + Store 121(txval40) 129 + 134: 131 Load 133(g_tTexcdi4) + 135: 14 Load 16(g_sSamp) + 137: 136 SampledImage 134 135 + 138: 25(ivec4) ImageSampleExplicitLod 137 106 Grad 96 96 + Store 130(txval41) 138 + 143: 140 Load 142(g_tTexcdu4) + 144: 14 Load 16(g_sSamp) + 146: 145 SampledImage 143 144 + 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 + Store 139(txval42) 147 + 154: 8(ptr) AccessChain 150(vsout) 151 + Store 154 153 + 155:148(VS_OUTPUT) Load 150(vsout) + ReturnValue 155 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out new file mode 100644 index 00000000..30f5d06d --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -0,0 +1,622 @@ +hlsl.samplegrad.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGradOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGradOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGradOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGradOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGradOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGradOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 1.100000 +0:31 Constant: +0:31 1.200000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 1.100000 +0:32 Constant: +0:32 1.200000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 1.100000 +0:33 Constant: +0:33 1.200000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureGradOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureGradOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureGradOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureGradOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureGradOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureGradOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? 1.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 28 "txval11" + Name 31 "g_tTex1di4" + Name 41 "txval12" + Name 44 "g_tTex1du4" + Name 51 "txval20" + Name 54 "g_tTex2df4" + Name 66 "txval21" + Name 69 "g_tTex2di4" + Name 78 "txval22" + Name 81 "g_tTex2du4" + Name 92 "txval30" + Name 95 "g_tTex3df4" + Name 107 "txval31" + Name 110 "g_tTex3di4" + Name 118 "txval32" + Name 121 "g_tTex3du4" + Name 132 "PS_OUTPUT" + MemberName 132(PS_OUTPUT) 0 "Color" + MemberName 132(PS_OUTPUT) 1 "Depth" + Name 134 "psout" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 54(g_tTex2df4) DescriptorSet 0 + Decorate 69(g_tTex2di4) DescriptorSet 0 + Decorate 81(g_tTex2du4) DescriptorSet 0 + Decorate 95(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 121(g_tTex3du4) DescriptorSet 0 + MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1066192077 + 22: 6(float) Constant 1067030938 + 23: TypeInt 32 1 + 24: 23(int) Constant 1 + 26: TypeVector 23(int) 4 + 27: TypePointer Function 26(ivec4) + 29: TypeImage 23(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeSampledImage 29 + 36: 6(float) Constant 1045220557 + 38: TypeInt 32 0 + 39: TypeVector 38(int) 4 + 40: TypePointer Function 39(ivec4) + 42: TypeImage 38(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeSampledImage 42 + 49: 6(float) Constant 1050253722 + 52: TypeImage 6(float) 2D sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: TypeVector 6(float) 2 + 60: 59(fvec2) ConstantComposite 20 36 + 61: 59(fvec2) ConstantComposite 21 22 + 62: TypeVector 23(int) 2 + 63: 23(int) Constant 0 + 64: 62(ivec2) ConstantComposite 24 63 + 67: TypeImage 23(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2di4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 6(float) Constant 1053609165 + 75: 59(fvec2) ConstantComposite 49 74 + 76: 62(ivec2) ConstantComposite 24 24 + 79: TypeImage 38(int) 2D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex2du4): 80(ptr) Variable UniformConstant + 84: TypeSampledImage 79 + 86: 6(float) Constant 1056964608 + 87: 6(float) Constant 1058642330 + 88: 59(fvec2) ConstantComposite 86 87 + 89: 23(int) Constant 4294967295 + 90: 62(ivec2) ConstantComposite 24 89 + 93: TypeImage 6(float) 3D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex3df4): 94(ptr) Variable UniformConstant + 98: TypeSampledImage 93 + 100: TypeVector 6(float) 3 + 101: 100(fvec3) ConstantComposite 20 36 49 + 102: 6(float) Constant 1067869798 + 103: 100(fvec3) ConstantComposite 21 22 102 + 104: TypeVector 23(int) 3 + 105: 104(ivec3) ConstantComposite 24 63 24 + 108: TypeImage 23(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 100(fvec3) ConstantComposite 74 86 87 + 116: 104(ivec3) ConstantComposite 24 24 24 + 119: TypeImage 38(int) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3du4): 120(ptr) Variable UniformConstant + 124: TypeSampledImage 119 + 126: 6(float) Constant 1060320051 + 127: 6(float) Constant 1061997773 + 128: 6(float) Constant 1063675494 + 129: 100(fvec3) ConstantComposite 126 127 128 + 130: 104(ivec3) ConstantComposite 24 63 89 + 132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 133: TypePointer Function 132(PS_OUTPUT) + 135: 6(float) Constant 1065353216 + 136: TypePointer Function 6(float) +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 23(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 38(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 28(txval11): 27(ptr) Variable Function + 41(txval12): 40(ptr) Variable Function + 51(txval20): 8(ptr) Variable Function + 66(txval21): 27(ptr) Variable Function + 78(txval22): 40(ptr) Variable Function + 92(txval30): 8(ptr) Variable Function + 107(txval31): 27(ptr) Variable Function + 118(txval32): 40(ptr) Variable Function + 134(psout): 133(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 20 Grad ConstOffset 21 22 24 + Store 9(txval10) 25 + 32: 29 Load 31(g_tTex1di4) + 33: 14 Load 16(g_sSamp) + 35: 34 SampledImage 32 33 + 37: 26(ivec4) ImageSampleExplicitLod 35 36 Grad ConstOffset 21 22 24 + Store 28(txval11) 37 + 45: 42 Load 44(g_tTex1du4) + 46: 14 Load 16(g_sSamp) + 48: 47 SampledImage 45 46 + 50: 39(ivec4) ImageSampleExplicitLod 48 49 Grad ConstOffset 21 22 24 + Store 41(txval12) 50 + 55: 52 Load 54(g_tTex2df4) + 56: 14 Load 16(g_sSamp) + 58: 57 SampledImage 55 56 + 65: 7(fvec4) ImageSampleExplicitLod 58 60 Grad ConstOffset 60 61 64 + Store 51(txval20) 65 + 70: 67 Load 69(g_tTex2di4) + 71: 14 Load 16(g_sSamp) + 73: 72 SampledImage 70 71 + 77: 26(ivec4) ImageSampleExplicitLod 73 75 Grad ConstOffset 60 61 76 + Store 66(txval21) 77 + 82: 79 Load 81(g_tTex2du4) + 83: 14 Load 16(g_sSamp) + 85: 84 SampledImage 82 83 + 91: 39(ivec4) ImageSampleExplicitLod 85 88 Grad ConstOffset 60 61 90 + Store 78(txval22) 91 + 96: 93 Load 95(g_tTex3df4) + 97: 14 Load 16(g_sSamp) + 99: 98 SampledImage 96 97 + 106: 7(fvec4) ImageSampleExplicitLod 99 101 Grad ConstOffset 103 103 105 + Store 92(txval30) 106 + 111: 108 Load 110(g_tTex3di4) + 112: 14 Load 16(g_sSamp) + 114: 113 SampledImage 111 112 + 117: 26(ivec4) ImageSampleExplicitLod 114 115 Grad ConstOffset 103 103 116 + Store 107(txval31) 117 + 122: 119 Load 121(g_tTex3du4) + 123: 14 Load 16(g_sSamp) + 125: 124 SampledImage 122 123 + 131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130 + Store 118(txval32) 131 + 137: 136(ptr) AccessChain 134(psout) 24 + Store 137 135 + 138:132(PS_OUTPUT) Load 134(psout) + ReturnValue 138 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out new file mode 100644 index 00000000..e568f44b --- /dev/null +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -0,0 +1,433 @@ +hlsl.samplegrad.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGradOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGradOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGradOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 move second child to first child (temp float) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureGradOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 1.100000 +0:27 Constant: +0:27 1.200000 +0:27 Constant: +0:27 1 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureGradOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:28 Constant: +0:28 1.100000 +0:28 Constant: +0:28 1.200000 +0:28 Constant: +0:28 1 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureGradOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:29 Constant: +0:29 1.100000 +0:29 Constant: +0:29 1.200000 +0:29 Constant: +0:29 1 (const int) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureGradOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureGradOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureGradOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1.100000 +0:? 1.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 move second child to first child (temp float) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.000000 +0:38 Branch: Return with expression +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 104 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 31 "txval11" + Name 34 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 52 "txval20" + Name 55 "g_tTex2df4" + Name 68 "txval21" + Name 71 "g_tTex2di4" + Name 77 "txval22" + Name 80 "g_tTex2du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 94 "g_tTex1df4a" + Name 97 "g_tTexcdf4" + Name 100 "g_tTexcdi4" + Name 103 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 80(g_tTex2du4) DescriptorSet 0 + MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 94(g_tTex1df4a) DescriptorSet 0 + Decorate 97(g_tTexcdf4) DescriptorSet 0 + Decorate 100(g_tTexcdi4) DescriptorSet 0 + Decorate 103(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1066192077 + 25: 6(float) Constant 1067030938 + 26: TypeInt 32 1 + 27: 26(int) Constant 1 + 29: TypeVector 26(int) 4 + 30: TypePointer Function 29(ivec4) + 32: TypeImage 26(int) 1D array sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 37: TypeSampledImage 32 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 53: TypeImage 6(float) 2D array sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeSampledImage 53 + 60: TypeVector 6(float) 3 + 61: 6(float) Constant 1050253722 + 62: 60(fvec3) ConstantComposite 21 22 61 + 63: 20(fvec2) ConstantComposite 24 25 + 64: TypeVector 26(int) 2 + 65: 26(int) Constant 0 + 66: 64(ivec2) ConstantComposite 27 65 + 69: TypeImage 26(int) 2D array sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeSampledImage 69 + 78: TypeImage 40(int) 2D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex2du4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: TypePointer Function 6(float) + 94(g_tTex1df4a): 11(ptr) Variable UniformConstant + 95: TypeImage 6(float) Cube array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTexcdf4): 96(ptr) Variable UniformConstant + 98: TypeImage 26(int) Cube array sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdi4): 99(ptr) Variable UniformConstant + 101: TypeImage 40(int) Cube array sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTexcdu4): 102(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 31(txval11): 30(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 52(txval20): 8(ptr) Variable Function + 68(txval21): 30(ptr) Variable Function + 77(txval22): 42(ptr) Variable Function + 88(psout): 87(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 28: 7(fvec4) ImageSampleExplicitLod 19 23 Grad ConstOffset 24 25 27 + Store 9(txval10) 28 + 35: 32 Load 34(g_tTex1di4) + 36: 14 Load 16(g_sSamp) + 38: 37 SampledImage 35 36 + 39: 29(ivec4) ImageSampleExplicitLod 38 23 Grad ConstOffset 24 25 27 + Store 31(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 51: 41(ivec4) ImageSampleExplicitLod 50 23 Grad ConstOffset 24 25 27 + Store 43(txval12) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 14 Load 16(g_sSamp) + 59: 58 SampledImage 56 57 + 67: 7(fvec4) ImageSampleExplicitLod 59 62 Grad ConstOffset 63 63 66 + Store 52(txval20) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 14 Load 16(g_sSamp) + 75: 74 SampledImage 72 73 + 76: 29(ivec4) ImageSampleExplicitLod 75 62 Grad ConstOffset 63 63 66 + Store 68(txval21) 76 + 81: 78 Load 80(g_tTex2du4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66 + Store 77(txval22) 85 + 91: 90(ptr) AccessChain 88(psout) 27 + Store 91 89 + 92:86(PS_OUTPUT) Load 88(psout) + ReturnValue 92 + FunctionEnd diff --git a/Test/hlsl.sample.basicarraydx10.frag b/Test/hlsl.sample.array.dx10.frag similarity index 100% rename from Test/hlsl.sample.basicarraydx10.frag rename to Test/hlsl.sample.array.dx10.frag diff --git a/Test/hlsl.sample.basicdx10.frag b/Test/hlsl.sample.basic.dx10.frag similarity index 100% rename from Test/hlsl.sample.basicdx10.frag rename to Test/hlsl.sample.basic.dx10.frag diff --git a/Test/hlsl.sample.offsetdx10.frag b/Test/hlsl.sample.offset.dx10.frag similarity index 100% rename from Test/hlsl.sample.offsetdx10.frag rename to Test/hlsl.sample.offset.dx10.frag diff --git a/Test/hlsl.sample.offsetarraydx10.frag b/Test/hlsl.sample.offsetarray.dx10.frag similarity index 100% rename from Test/hlsl.sample.offsetarraydx10.frag rename to Test/hlsl.sample.offsetarray.dx10.frag diff --git a/Test/hlsl.samplebias.array.dx10.frag b/Test/hlsl.samplebias.array.dx10.frag new file mode 100644 index 00000000..ba4e197f --- /dev/null +++ b/Test/hlsl.samplebias.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.basic.dx10.frag b/Test/hlsl.samplebias.basic.dx10.frag new file mode 100644 index 00000000..09138616 --- /dev/null +++ b/Test/hlsl.samplebias.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + float4 txval40 = g_tTexcdf4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5); + int4 txval41 = g_tTexcdi4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5); + uint4 txval42 = g_tTexcdu4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.offset.dx10.frag b/Test/hlsl.samplebias.offset.dx10.frag new file mode 100644 index 00000000..6f2f94c8 --- /dev/null +++ b/Test/hlsl.samplebias.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, 0.1, 0.5, 1); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, 0.2, 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, 0.3, 0.5, 1); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float2(0.5, 0.6), 0.5, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleBias(g_sSamp, float3(0.4, 0.5, 0.6), 0.5, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleBias(g_sSamp, float3(0.7, 0.8, 0.9), 0.5, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplebias.offsetarray.dx10.frag b/Test/hlsl.samplebias.offsetarray.dx10.frag new file mode 100644 index 00000000..b5f62968 --- /dev/null +++ b/Test/hlsl.samplebias.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleBias(g_sSamp, float2(0.1, 0.2), 0.5, 0); + int4 txval11 = g_tTex1di4 . SampleBias(g_sSamp, float2(0.2, 0.3), 0.5, 1); + uint4 txval12 = g_tTex1du4 . SampleBias(g_sSamp, float2(0.3, 0.4), 0.5, 2); + + float4 txval20 = g_tTex2df4 . SampleBias(g_sSamp, float3(0.1, 0.2, 0.3), 0.5, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleBias(g_sSamp, float3(0.3, 0.4, 0.5), 0.5, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleBias(g_sSamp, float3(0.5, 0.6, 0.7), 0.5, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.array.dx10.frag b/Test/hlsl.samplegrad.array.dx10.frag new file mode 100644 index 00000000..c442b7f8 --- /dev/null +++ b/Test/hlsl.samplegrad.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.basic.dx10.frag b/Test/hlsl.samplegrad.basic.dx10.frag new file mode 100644 index 00000000..84236f2a --- /dev/null +++ b/Test/hlsl.samplegrad.basic.dx10.frag @@ -0,0 +1,51 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.basic.dx10.vert b/Test/hlsl.samplegrad.basic.dx10.vert new file mode 100644 index 00000000..43ec6213 --- /dev/null +++ b/Test/hlsl.samplegrad.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(1.1, 1.2), float2(1.1, 1.2)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(1.1, 1.2), float2(1.1, 1.2)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(1.1, 1.2), float2(1.1, 1.2)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + float4 txval40 = g_tTexcdf4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + int4 txval41 = g_tTexcdi4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + uint4 txval42 = g_tTexcdu4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3)); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/Test/hlsl.samplegrad.offset.dx10.frag b/Test/hlsl.samplegrad.offset.dx10.frag new file mode 100644 index 00000000..c643be25 --- /dev/null +++ b/Test/hlsl.samplegrad.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, 0.1, 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, 0.2, 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, 0.3, 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float2(0.3, 0.4), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float2(0.5, 0.6), float2(0.1, 0.2), float2(1.1, 1.2), int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleGrad(g_sSamp, float3(0.4, 0.5, 0.6), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleGrad(g_sSamp, float3(0.7, 0.8, 0.9), float3(1.1, 1.2, 1.3), float3(1.1, 1.2, 1.3), int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplegrad.offsetarray.dx10.frag b/Test/hlsl.samplegrad.offsetarray.dx10.frag new file mode 100644 index 00000000..3adcd184 --- /dev/null +++ b/Test/hlsl.samplegrad.offsetarray.dx10.frag @@ -0,0 +1,39 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + int4 txval11 = g_tTex1di4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + uint4 txval12 = g_tTex1du4 . SampleGrad(g_sSamp, float2(0.1, 0.2), 1.1, 1.2, 1); + + float4 txval20 = g_tTex2df4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + uint4 txval22 = g_tTex2du4 . SampleGrad(g_sSamp, float3(0.1, 0.2, 0.3), float2(1.1, 1.2), float2(1.1, 1.2), int2(1,0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 29006aa4..a74b96e9 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -526,7 +526,18 @@ enum TOperator { EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture EOpAsDouble, // slightly different from EOpUint64BitsToDouble - EOpMethodSample, + EOpMethodSample, // Texture object methods. These are translated to existing + EOpMethodSampleBias, // AST methods, and exist to represent HLSL semantics until that + EOpMethodSampleCmp, // translation is performed. See HlslParseContext::decomposeSampleMethods(). + EOpMethodSampleCmpLevelZero, // ... + EOpMethodSampleGrad, // ... + EOpMethodSampleLevel, // ... + EOpMethodLoad, // ... + EOpMethodGetDimensions, // ... + EOpMethodGetSamplePosition, // ... + EOpMethodGather, // ... + EOpMethodCalculateLevelOfDetail, // ... + EOpMethodCalculateLevelOfDetailUnclamped, // ... }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 59685c87..5a6be40d 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -94,10 +94,19 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, - {"hlsl.sample.basicarraydx10.frag", "main"}, - {"hlsl.sample.basicdx10.frag", "main"}, - {"hlsl.sample.offsetdx10.frag", "main"}, - {"hlsl.sample.offsetarraydx10.frag", "main"}, + {"hlsl.sample.array.dx10.frag", "main"}, + {"hlsl.sample.basic.dx10.frag", "main"}, + {"hlsl.sample.offset.dx10.frag", "main"}, + {"hlsl.sample.offsetarray.dx10.frag", "main"}, + {"hlsl.samplebias.array.dx10.frag", "main"}, + {"hlsl.samplebias.basic.dx10.frag", "main"}, + {"hlsl.samplebias.offset.dx10.frag", "main"}, + {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, + {"hlsl.samplegrad.array.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.frag", "main"}, + {"hlsl.samplegrad.basic.dx10.vert", "main"}, + {"hlsl.samplegrad.offset.dx10.frag", "main"}, + {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b3566da6..753fbfe6 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -814,9 +814,28 @@ TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, boo } // -// Change texture parameters to match AST & SPIR-V semantics +// Create a combined sampler/texture from separate sampler and texture. // -void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler) +{ + TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); + + txcombine->getSequence().push_back(argTex); + txcombine->getSequence().push_back(argSampler); + + TSampler samplerType = argTex->getType().getSampler(); + samplerType.combined = true; + + txcombine->setType(TType(samplerType, EvqTemporary)); + txcombine->setLoc(loc); + + return txcombine; +} + +// +// Decompose DX9 and DX10 sample intrinsics & object methods into AST +// +void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { if (!node || !node->getAsOperator()) return; @@ -825,9 +844,10 @@ void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& n const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; switch (op) { + // **** DX9 intrinsics: **** case EOpTexture: { - // Texture with ddx & ddy is really gradient form + // Texture with ddx & ddy is really gradient form in HLSL if (argAggregate->getSequence().size() == 4) { node->getAsAggregate()->setOperator(EOpTextureGrad); break; @@ -869,6 +889,81 @@ void HlslParseContext::textureParameters(const TSourceLoc& loc, TIntermTyped*& n break; } + // **** DX10 methods: **** + case EOpMethodSample: // fall through + case EOpMethodSampleBias: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argBias = nullptr; + TIntermTyped* argOffset = nullptr; + + int nextArg = 3; + + if (op == EOpMethodSampleBias) // SampleBias has a bias arg + argBias = argAggregate->getSequence()[nextArg++]->getAsTyped(); + + TOperator textureOp = EOpTexture; + + if (argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form + textureOp = EOpTextureOffset; + argOffset = argAggregate->getSequence()[nextArg++]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + + if (argBias != nullptr) + txsample->getSequence().push_back(argBias); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + + case EOpMethodSampleGrad: // ... + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + TOperator textureOp = EOpTextureGrad; + + if (argAggregate->getSequence().size() == 6) { // last parameter is offset form + textureOp = EOpTextureGradOffset; + argOffset = argAggregate->getSequence()[5]->getAsTyped(); + } + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argDDX); + txsample->getSequence().push_back(argDDY); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + default: break; // most pass through unchanged } @@ -1222,59 +1317,6 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& } } -// -// Decompose sample methods into AST -// -void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) -{ - if (!node || !node->getAsOperator()) - return; - - const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; - const TOperator op = node->getAsOperator()->getOp(); - - switch (op) { - case EOpMethodSample: - { - TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); - TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); - TIntermTyped* argOffset = nullptr; - - TOperator textureOp = EOpTexture; - - if (argAggregate->getSequence().size() == 4) { // 4th parameter is offset form - textureOp = EOpTextureOffset; - argOffset = argAggregate->getSequence()[3]->getAsTyped(); - } - - TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); - - txcombine->getSequence().push_back(argTex); - txcombine->getSequence().push_back(argSamp); - TSampler samplerType = argTex->getType().getSampler(); - samplerType.combined = true; - txcombine->setType(TType(samplerType, EvqTemporary)); - txcombine->setLoc(loc); - - TIntermAggregate* txsample = new TIntermAggregate(textureOp); - txsample->getSequence().push_back(txcombine); - txsample->getSequence().push_back(argCoord); - if (argOffset != nullptr) - txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; - - break; - } - - default: - break; // most pass through unchanged - } -} - - // // Handle seeing function call syntax in the grammar, which could be any of // - .length() method @@ -1380,7 +1422,6 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions - textureParameters(loc, result, arguments); // HLSL->AST texture intrinsics } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index fdb2afe8..f1281319 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -88,7 +88,6 @@ public: TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); - void textureParameters(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; @@ -96,6 +95,8 @@ public: TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TType& type, const TString& semantic); + TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); + bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); void assignError(const TSourceLoc&, const char* op, TString left, TString right); void unaryOpError(const TSourceLoc&, const char* op, TString operand); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 2bb3d8d7..f6b85390 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -67,23 +67,38 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } -bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } +bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } +bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } +bool IsTextureMS(const char argOrder) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isMS = IsTextureMS(*argOrder); - if (isArrayed && dim0 == 3) // there are no 3D arrayed textures. + // there are no 3D arrayed textures, or 3D SampleCmp + if (dim0 == 3 && (isArrayed || name == "SampleCmp")) return true; const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; - // Reject invalid offset arrayed forms. + // Reject invalid offset arrayed forms with cubemaps if (isArrayed && dim0 == 4) { - if (name == "Sample" && numArgs == 4) + if ((name == "Sample" && numArgs >= 4) || + (name == "SampleBias" && numArgs >= 5) || + (name == "SampleCmp" && numArgs >= 5) || + (name == "SampleCmpLevelZero" && numArgs >= 4) || + (name == "SampleGrad" && numArgs >= 6) || + (name == "SampleLevel" && numArgs >= 5)) + return true; + } + + // Reject invalid Loads + if (name == "Load") { + if ((numArgs >= 3 && !isMS) || // Load with sampleindex requires multisample + (dim0 == 4)) // Load does not support any cubemaps, arrayed or not. return true; } @@ -103,6 +118,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isMatMul = (argOrder[0] == '#'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); + const bool isMS = IsTextureMS(argOrder[0]); char order = *argOrder; char type = *argType; @@ -187,14 +203,14 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons switch (order) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars - case 'V': s += ('0' + (char)dim0); break; + case 'V': s += ('0' + char(dim0)); break; case 'M': { if (!UseHlslTypes) // GLSL has column first for mat types std::swap(dim0, dim1); - s += ('0' + (char)dim0); + s += ('0' + char(dim0)); s += 'x'; - s += ('0' + (char)dim1); + s += ('0' + char(dim1)); break; } } @@ -517,10 +533,43 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // Texture object methods. Return type can be overridden by shader declaration. // !O = no offset, O = offset, !A = no array, A = array - { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, - { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + + { "SampleBias", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + { "SampleBias", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + { "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + { "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // { "SampleCmp", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleCmp", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // { "SampleCmp", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleCmp", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // { "SampleCmpLevelZero", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, + // { "SampleCmpLevelZero", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + + { "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, + { "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, + { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, + { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, + + // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, + // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + + // TODO: ... + // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangFragmentMask }, + // { "Load", /* +sampleidex*/ "V4", nullptr, "%V,V,S", "FIU,I,I", EShLangFragmentMask }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "%V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, + // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangFragmentMask }, + // { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, @@ -565,7 +614,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c continue; // Reject some forms of sample methods that don't exist. - if (isTexture && IsIllegalSample(s, argOrder, dim0)) + if (isTexture && IsIllegalSample(intrinsic.name, argOrder, dim0)) continue; AppendTypeName(s, retOrder, retType, dim0, dim1); // add return type @@ -796,6 +845,12 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil // Texture methods symbolTable.relateToOperator("Sample", EOpMethodSample); + symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias); + // symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); + // symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); + symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); + // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); + // symbolTable.relateToOperator("Load", EOpMethodLoad); } // From 4016e38bea1e3f230713ef85d4b9da9c7906f470 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 15 Jul 2016 11:53:56 -0600 Subject: [PATCH 006/217] Build: Switch to Rev. 6 of headers, removing "BadValue" enum stuff. Note: Technically, this is glslang's modified private copy of official headers. Official headers will appear in other places, like https://github.com/KhronosGroup/SPIRV-Headers. --- SPIRV/GlslangToSpv.cpp | 70 +- SPIRV/SpvBuilder.cpp | 2 +- SPIRV/spirv.hpp | 1793 ++++++++++++++++++++-------------------- SPIRV/spvIR.h | 3 +- 4 files changed, 950 insertions(+), 918 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 61c9ae7d..dd11304f 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -301,7 +301,7 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type) } } - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } // Translate glslang type to SPIR-V memory decorations. @@ -330,12 +330,12 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T return spv::DecorationColMajor; default: // opaque layouts don't need a majorness - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } } else { switch (type.getBasicType()) { default: - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; break; case glslang::EbtBlock: switch (type.getQualifier().storage) { @@ -345,38 +345,38 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T case glslang::ElpShared: return spv::DecorationGLSLShared; case glslang::ElpPacked: return spv::DecorationGLSLPacked; default: - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } case glslang::EvqVaryingIn: case glslang::EvqVaryingOut: assert(type.getQualifier().layoutPacking == glslang::ElpNone); - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; default: assert(0); - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } } } } // Translate glslang type to SPIR-V interpolation decorations. -// Returns spv::Decoration(spv::BadValue) when no decoration +// Returns spv::DecorationMax when no decoration // should be applied. spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) { if (qualifier.smooth) // Smooth decoration doesn't exist in SPIR-V 1.0 - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; else if (qualifier.nopersp) return spv::DecorationNoPerspective; else if (qualifier.flat) return spv::DecorationFlat; else - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } // Translate glslang type to SPIR-V auxiliary storage decorations. -// Returns spv::Decoration(spv::BadValue) when no decoration +// Returns spv::DecorationMax when no decoration // should be applied. spv::Decoration TGlslangToSpvTraverser::TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier) { @@ -388,7 +388,7 @@ spv::Decoration TGlslangToSpvTraverser::TranslateAuxiliaryStorageDecoration(cons builder.addCapability(spv::CapabilitySampleRateShading); return spv::DecorationSample; } else - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } // If glslang type is invariant, return SPIR-V invariant decoration. @@ -397,7 +397,7 @@ spv::Decoration TranslateInvariantDecoration(const glslang::TQualifier& qualifie if (qualifier.invariant) return spv::DecorationInvariant; else - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } // If glslang type is noContraction, return SPIR-V NoContraction decoration. @@ -406,7 +406,7 @@ spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qual if (qualifier.noContraction) return spv::DecorationNoContraction; else - return (spv::Decoration)spv::BadValue; + return spv::DecorationMax; } // Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate @@ -480,7 +480,7 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvDrawId: // TODO: Add SPIR-V builtin ID. logger->missingFunctionality("shader draw parameters"); - return (spv::BuiltIn)spv::BadValue; + return spv::BuiltInMax; case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId; case glslang::EbvInvocationId: return spv::BuiltInInvocationId; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; @@ -507,8 +507,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvSubGroupLtMask: // TODO: Add SPIR-V builtin ID. logger->missingFunctionality("shader ballot"); - return (spv::BuiltIn)spv::BadValue; - default: return (spv::BuiltIn)spv::BadValue; + return spv::BuiltInMax; + default: return spv::BuiltInMax; } } @@ -596,7 +596,7 @@ spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TTy case glslang::ElfRg8ui: return spv::ImageFormatRg8ui; case glslang::ElfR16ui: return spv::ImageFormatR16ui; case glslang::ElfR8ui: return spv::ImageFormatR8ui; - default: return (spv::ImageFormat)spv::BadValue; + default: return spv::ImageFormatMax; } } @@ -705,26 +705,26 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls case glslang::ElgTriangles: mode = spv::ExecutionModeTriangles; break; case glslang::ElgQuads: mode = spv::ExecutionModeQuads; break; case glslang::ElgIsolines: mode = spv::ExecutionModeIsolines; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); switch (glslangIntermediate->getVertexSpacing()) { case glslang::EvsEqual: mode = spv::ExecutionModeSpacingEqual; break; case glslang::EvsFractionalEven: mode = spv::ExecutionModeSpacingFractionalEven; break; case glslang::EvsFractionalOdd: mode = spv::ExecutionModeSpacingFractionalOdd; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); switch (glslangIntermediate->getVertexOrder()) { case glslang::EvoCw: mode = spv::ExecutionModeVertexOrderCw; break; case glslang::EvoCcw: mode = spv::ExecutionModeVertexOrderCcw; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); if (glslangIntermediate->getPointMode()) @@ -739,9 +739,9 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls case glslang::ElgLinesAdjacency: mode = spv::ExecutionModeInputLinesAdjacency; break; case glslang::ElgTriangles: mode = spv::ExecutionModeTriangles; break; case glslang::ElgTrianglesAdjacency: mode = spv::ExecutionModeInputTrianglesAdjacency; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); builder.addExecutionMode(shaderEntry, spv::ExecutionModeInvocations, glslangIntermediate->getInvocations()); @@ -750,9 +750,9 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls case glslang::ElgPoints: mode = spv::ExecutionModeOutputPoints; break; case glslang::ElgLineStrip: mode = spv::ExecutionModeOutputLineStrip; break; case glslang::ElgTriangleStrip: mode = spv::ExecutionModeOutputTriangleStrip; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices()); break; @@ -773,9 +773,9 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls switch(glslangIntermediate->getDepth()) { case glslang::EldGreater: mode = spv::ExecutionModeDepthGreater; break; case glslang::EldLess: mode = spv::ExecutionModeDepthLess; break; - default: mode = spv::BadValue; break; + default: mode = spv::ExecutionModeMax; break; } - if (mode != spv::BadValue) + if (mode != spv::ExecutionModeMax) builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode); if (glslangIntermediate->getDepth() != glslang::EldUnchanged && glslangIntermediate->isDepthReplacing()) @@ -2070,7 +2070,7 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, // built-in variable decorations spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); - if (builtIn != spv::BadValue) + if (builtIn != spv::BuiltInMax) addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); } } @@ -4122,7 +4122,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol // built-in variable decorations spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn, false); - if (builtIn != spv::BadValue) + if (builtIn != spv::BuiltInMax) addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); return id; @@ -4131,28 +4131,28 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol // If 'dec' is valid, add no-operand decoration to an object void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec) { - if (dec != spv::BadValue) + if (dec != spv::DecorationMax) builder.addDecoration(id, dec); } // If 'dec' is valid, add a one-operand decoration to an object void TGlslangToSpvTraverser::addDecoration(spv::Id id, spv::Decoration dec, unsigned value) { - if (dec != spv::BadValue) + if (dec != spv::DecorationMax) builder.addDecoration(id, dec, value); } // If 'dec' is valid, add a no-operand decoration to a struct member void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec) { - if (dec != spv::BadValue) + if (dec != spv::DecorationMax) builder.addMemberDecoration(id, (unsigned)member, dec); } // If 'dec' is valid, add a one-operand decoration to a struct member void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::Decoration dec, unsigned value) { - if (dec != spv::BadValue) + if (dec != spv::DecorationMax) builder.addMemberDecoration(id, (unsigned)member, dec, value); } diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index f71b9350..e5317ab7 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -907,7 +907,7 @@ void Builder::addLine(Id target, Id fileName, int lineNum, int column) void Builder::addDecoration(Id id, Decoration decoration, int num) { - if (decoration == (spv::Decoration)spv::BadValue) + if (decoration == spv::DecorationMax) return; Instruction* dec = new Instruction(OpDecorate); dec->addIdOperand(id); diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp index 7447fcf7..e3d13425 100755 --- a/SPIRV/spirv.hpp +++ b/SPIRV/spirv.hpp @@ -1,880 +1,913 @@ -// Copyright (c) 2014-2016 The Khronos Group Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and/or associated documentation files (the "Materials"), -// to deal in the Materials without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Materials, and to permit persons to whom the -// Materials are furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Materials. -// -// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -// -// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -// IN THE MATERIALS. - -// This header is automatically generated by the same tool that creates -// the Binary Section of the SPIR-V specification. - -// Enumeration tokens for SPIR-V, in various styles: -// C, C++, C++11, JSON, Lua, Python -// -// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -// -// Some tokens act like mask values, which can be OR'd together, -// while others are mutually exclusive. The mask-like ones have -// "Mask" in their name, and a parallel enum that has the shift -// amount (1 << x) for each corresponding enumerant. - -#ifndef spirv_HPP -#define spirv_HPP - -namespace spv { - -typedef unsigned int Id; - -#define SPV_VERSION 0x10000 -#define SPV_REVISION 3 - -static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010000; -static const unsigned int Revision = 3; -static const unsigned int OpCodeMask = 0xffff; -static const unsigned int WordCountShift = 16; - -enum SourceLanguage { - SourceLanguageUnknown = 0, - SourceLanguageESSL = 1, - SourceLanguageGLSL = 2, - SourceLanguageOpenCL_C = 3, - SourceLanguageOpenCL_CPP = 4, - SourceLanguageHLSL = 5, -}; - -enum ExecutionModel { - ExecutionModelVertex = 0, - ExecutionModelTessellationControl = 1, - ExecutionModelTessellationEvaluation = 2, - ExecutionModelGeometry = 3, - ExecutionModelFragment = 4, - ExecutionModelGLCompute = 5, - ExecutionModelKernel = 6, -}; - -enum AddressingModel { - AddressingModelLogical = 0, - AddressingModelPhysical32 = 1, - AddressingModelPhysical64 = 2, -}; - -enum MemoryModel { - MemoryModelSimple = 0, - MemoryModelGLSL450 = 1, - MemoryModelOpenCL = 2, -}; - -enum ExecutionMode { - ExecutionModeInvocations = 0, - ExecutionModeSpacingEqual = 1, - ExecutionModeSpacingFractionalEven = 2, - ExecutionModeSpacingFractionalOdd = 3, - ExecutionModeVertexOrderCw = 4, - ExecutionModeVertexOrderCcw = 5, - ExecutionModePixelCenterInteger = 6, - ExecutionModeOriginUpperLeft = 7, - ExecutionModeOriginLowerLeft = 8, - ExecutionModeEarlyFragmentTests = 9, - ExecutionModePointMode = 10, - ExecutionModeXfb = 11, - ExecutionModeDepthReplacing = 12, - ExecutionModeDepthGreater = 14, - ExecutionModeDepthLess = 15, - ExecutionModeDepthUnchanged = 16, - ExecutionModeLocalSize = 17, - ExecutionModeLocalSizeHint = 18, - ExecutionModeInputPoints = 19, - ExecutionModeInputLines = 20, - ExecutionModeInputLinesAdjacency = 21, - ExecutionModeTriangles = 22, - ExecutionModeInputTrianglesAdjacency = 23, - ExecutionModeQuads = 24, - ExecutionModeIsolines = 25, - ExecutionModeOutputVertices = 26, - ExecutionModeOutputPoints = 27, - ExecutionModeOutputLineStrip = 28, - ExecutionModeOutputTriangleStrip = 29, - ExecutionModeVecTypeHint = 30, - ExecutionModeContractionOff = 31, -}; - -enum StorageClass { - StorageClassUniformConstant = 0, - StorageClassInput = 1, - StorageClassUniform = 2, - StorageClassOutput = 3, - StorageClassWorkgroup = 4, - StorageClassCrossWorkgroup = 5, - StorageClassPrivate = 6, - StorageClassFunction = 7, - StorageClassGeneric = 8, - StorageClassPushConstant = 9, - StorageClassAtomicCounter = 10, - StorageClassImage = 11, -}; - -enum Dim { - Dim1D = 0, - Dim2D = 1, - Dim3D = 2, - DimCube = 3, - DimRect = 4, - DimBuffer = 5, - DimSubpassData = 6, -}; - -enum SamplerAddressingMode { - SamplerAddressingModeNone = 0, - SamplerAddressingModeClampToEdge = 1, - SamplerAddressingModeClamp = 2, - SamplerAddressingModeRepeat = 3, - SamplerAddressingModeRepeatMirrored = 4, -}; - -enum SamplerFilterMode { - SamplerFilterModeNearest = 0, - SamplerFilterModeLinear = 1, -}; - -enum ImageFormat { - ImageFormatUnknown = 0, - ImageFormatRgba32f = 1, - ImageFormatRgba16f = 2, - ImageFormatR32f = 3, - ImageFormatRgba8 = 4, - ImageFormatRgba8Snorm = 5, - ImageFormatRg32f = 6, - ImageFormatRg16f = 7, - ImageFormatR11fG11fB10f = 8, - ImageFormatR16f = 9, - ImageFormatRgba16 = 10, - ImageFormatRgb10A2 = 11, - ImageFormatRg16 = 12, - ImageFormatRg8 = 13, - ImageFormatR16 = 14, - ImageFormatR8 = 15, - ImageFormatRgba16Snorm = 16, - ImageFormatRg16Snorm = 17, - ImageFormatRg8Snorm = 18, - ImageFormatR16Snorm = 19, - ImageFormatR8Snorm = 20, - ImageFormatRgba32i = 21, - ImageFormatRgba16i = 22, - ImageFormatRgba8i = 23, - ImageFormatR32i = 24, - ImageFormatRg32i = 25, - ImageFormatRg16i = 26, - ImageFormatRg8i = 27, - ImageFormatR16i = 28, - ImageFormatR8i = 29, - ImageFormatRgba32ui = 30, - ImageFormatRgba16ui = 31, - ImageFormatRgba8ui = 32, - ImageFormatR32ui = 33, - ImageFormatRgb10a2ui = 34, - ImageFormatRg32ui = 35, - ImageFormatRg16ui = 36, - ImageFormatRg8ui = 37, - ImageFormatR16ui = 38, - ImageFormatR8ui = 39, -}; - -enum ImageChannelOrder { - ImageChannelOrderR = 0, - ImageChannelOrderA = 1, - ImageChannelOrderRG = 2, - ImageChannelOrderRA = 3, - ImageChannelOrderRGB = 4, - ImageChannelOrderRGBA = 5, - ImageChannelOrderBGRA = 6, - ImageChannelOrderARGB = 7, - ImageChannelOrderIntensity = 8, - ImageChannelOrderLuminance = 9, - ImageChannelOrderRx = 10, - ImageChannelOrderRGx = 11, - ImageChannelOrderRGBx = 12, - ImageChannelOrderDepth = 13, - ImageChannelOrderDepthStencil = 14, - ImageChannelOrdersRGB = 15, - ImageChannelOrdersRGBx = 16, - ImageChannelOrdersRGBA = 17, - ImageChannelOrdersBGRA = 18, -}; - -enum ImageChannelDataType { - ImageChannelDataTypeSnormInt8 = 0, - ImageChannelDataTypeSnormInt16 = 1, - ImageChannelDataTypeUnormInt8 = 2, - ImageChannelDataTypeUnormInt16 = 3, - ImageChannelDataTypeUnormShort565 = 4, - ImageChannelDataTypeUnormShort555 = 5, - ImageChannelDataTypeUnormInt101010 = 6, - ImageChannelDataTypeSignedInt8 = 7, - ImageChannelDataTypeSignedInt16 = 8, - ImageChannelDataTypeSignedInt32 = 9, - ImageChannelDataTypeUnsignedInt8 = 10, - ImageChannelDataTypeUnsignedInt16 = 11, - ImageChannelDataTypeUnsignedInt32 = 12, - ImageChannelDataTypeHalfFloat = 13, - ImageChannelDataTypeFloat = 14, - ImageChannelDataTypeUnormInt24 = 15, - ImageChannelDataTypeUnormInt101010_2 = 16, -}; - -enum ImageOperandsShift { - ImageOperandsBiasShift = 0, - ImageOperandsLodShift = 1, - ImageOperandsGradShift = 2, - ImageOperandsConstOffsetShift = 3, - ImageOperandsOffsetShift = 4, - ImageOperandsConstOffsetsShift = 5, - ImageOperandsSampleShift = 6, - ImageOperandsMinLodShift = 7, -}; - -enum ImageOperandsMask { - ImageOperandsMaskNone = 0, - ImageOperandsBiasMask = 0x00000001, - ImageOperandsLodMask = 0x00000002, - ImageOperandsGradMask = 0x00000004, - ImageOperandsConstOffsetMask = 0x00000008, - ImageOperandsOffsetMask = 0x00000010, - ImageOperandsConstOffsetsMask = 0x00000020, - ImageOperandsSampleMask = 0x00000040, - ImageOperandsMinLodMask = 0x00000080, -}; - -enum FPFastMathModeShift { - FPFastMathModeNotNaNShift = 0, - FPFastMathModeNotInfShift = 1, - FPFastMathModeNSZShift = 2, - FPFastMathModeAllowRecipShift = 3, - FPFastMathModeFastShift = 4, -}; - -enum FPFastMathModeMask { - FPFastMathModeMaskNone = 0, - FPFastMathModeNotNaNMask = 0x00000001, - FPFastMathModeNotInfMask = 0x00000002, - FPFastMathModeNSZMask = 0x00000004, - FPFastMathModeAllowRecipMask = 0x00000008, - FPFastMathModeFastMask = 0x00000010, -}; - -enum FPRoundingMode { - FPRoundingModeRTE = 0, - FPRoundingModeRTZ = 1, - FPRoundingModeRTP = 2, - FPRoundingModeRTN = 3, -}; - -enum LinkageType { - LinkageTypeExport = 0, - LinkageTypeImport = 1, -}; - -enum AccessQualifier { - AccessQualifierReadOnly = 0, - AccessQualifierWriteOnly = 1, - AccessQualifierReadWrite = 2, -}; - -enum FunctionParameterAttribute { - FunctionParameterAttributeZext = 0, - FunctionParameterAttributeSext = 1, - FunctionParameterAttributeByVal = 2, - FunctionParameterAttributeSret = 3, - FunctionParameterAttributeNoAlias = 4, - FunctionParameterAttributeNoCapture = 5, - FunctionParameterAttributeNoWrite = 6, - FunctionParameterAttributeNoReadWrite = 7, -}; - -enum Decoration { - DecorationRelaxedPrecision = 0, - DecorationSpecId = 1, - DecorationBlock = 2, - DecorationBufferBlock = 3, - DecorationRowMajor = 4, - DecorationColMajor = 5, - DecorationArrayStride = 6, - DecorationMatrixStride = 7, - DecorationGLSLShared = 8, - DecorationGLSLPacked = 9, - DecorationCPacked = 10, - DecorationBuiltIn = 11, - DecorationNoPerspective = 13, - DecorationFlat = 14, - DecorationPatch = 15, - DecorationCentroid = 16, - DecorationSample = 17, - DecorationInvariant = 18, - DecorationRestrict = 19, - DecorationAliased = 20, - DecorationVolatile = 21, - DecorationConstant = 22, - DecorationCoherent = 23, - DecorationNonWritable = 24, - DecorationNonReadable = 25, - DecorationUniform = 26, - DecorationSaturatedConversion = 28, - DecorationStream = 29, - DecorationLocation = 30, - DecorationComponent = 31, - DecorationIndex = 32, - DecorationBinding = 33, - DecorationDescriptorSet = 34, - DecorationOffset = 35, - DecorationXfbBuffer = 36, - DecorationXfbStride = 37, - DecorationFuncParamAttr = 38, - DecorationFPRoundingMode = 39, - DecorationFPFastMathMode = 40, - DecorationLinkageAttributes = 41, - DecorationNoContraction = 42, - DecorationInputAttachmentIndex = 43, - DecorationAlignment = 44, -}; - -enum BuiltIn { - BuiltInPosition = 0, - BuiltInPointSize = 1, - BuiltInClipDistance = 3, - BuiltInCullDistance = 4, - BuiltInVertexId = 5, - BuiltInInstanceId = 6, - BuiltInPrimitiveId = 7, - BuiltInInvocationId = 8, - BuiltInLayer = 9, - BuiltInViewportIndex = 10, - BuiltInTessLevelOuter = 11, - BuiltInTessLevelInner = 12, - BuiltInTessCoord = 13, - BuiltInPatchVertices = 14, - BuiltInFragCoord = 15, - BuiltInPointCoord = 16, - BuiltInFrontFacing = 17, - BuiltInSampleId = 18, - BuiltInSamplePosition = 19, - BuiltInSampleMask = 20, - BuiltInFragDepth = 22, - BuiltInHelperInvocation = 23, - BuiltInNumWorkgroups = 24, - BuiltInWorkgroupSize = 25, - BuiltInWorkgroupId = 26, - BuiltInLocalInvocationId = 27, - BuiltInGlobalInvocationId = 28, - BuiltInLocalInvocationIndex = 29, - BuiltInWorkDim = 30, - BuiltInGlobalSize = 31, - BuiltInEnqueuedWorkgroupSize = 32, - BuiltInGlobalOffset = 33, - BuiltInGlobalLinearId = 34, - BuiltInSubgroupSize = 36, - BuiltInSubgroupMaxSize = 37, - BuiltInNumSubgroups = 38, - BuiltInNumEnqueuedSubgroups = 39, - BuiltInSubgroupId = 40, - BuiltInSubgroupLocalInvocationId = 41, - BuiltInVertexIndex = 42, - BuiltInInstanceIndex = 43, -}; - -enum SelectionControlShift { - SelectionControlFlattenShift = 0, - SelectionControlDontFlattenShift = 1, -}; - -enum SelectionControlMask { - SelectionControlMaskNone = 0, - SelectionControlFlattenMask = 0x00000001, - SelectionControlDontFlattenMask = 0x00000002, -}; - -enum LoopControlShift { - LoopControlUnrollShift = 0, - LoopControlDontUnrollShift = 1, -}; - -enum LoopControlMask { - LoopControlMaskNone = 0, - LoopControlUnrollMask = 0x00000001, - LoopControlDontUnrollMask = 0x00000002, -}; - -enum FunctionControlShift { - FunctionControlInlineShift = 0, - FunctionControlDontInlineShift = 1, - FunctionControlPureShift = 2, - FunctionControlConstShift = 3, -}; - -enum FunctionControlMask { - FunctionControlMaskNone = 0, - FunctionControlInlineMask = 0x00000001, - FunctionControlDontInlineMask = 0x00000002, - FunctionControlPureMask = 0x00000004, - FunctionControlConstMask = 0x00000008, -}; - -enum MemorySemanticsShift { - MemorySemanticsAcquireShift = 1, - MemorySemanticsReleaseShift = 2, - MemorySemanticsAcquireReleaseShift = 3, - MemorySemanticsSequentiallyConsistentShift = 4, - MemorySemanticsUniformMemoryShift = 6, - MemorySemanticsSubgroupMemoryShift = 7, - MemorySemanticsWorkgroupMemoryShift = 8, - MemorySemanticsCrossWorkgroupMemoryShift = 9, - MemorySemanticsAtomicCounterMemoryShift = 10, - MemorySemanticsImageMemoryShift = 11, -}; - -enum MemorySemanticsMask { - MemorySemanticsMaskNone = 0, - MemorySemanticsAcquireMask = 0x00000002, - MemorySemanticsReleaseMask = 0x00000004, - MemorySemanticsAcquireReleaseMask = 0x00000008, - MemorySemanticsSequentiallyConsistentMask = 0x00000010, - MemorySemanticsUniformMemoryMask = 0x00000040, - MemorySemanticsSubgroupMemoryMask = 0x00000080, - MemorySemanticsWorkgroupMemoryMask = 0x00000100, - MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, - MemorySemanticsAtomicCounterMemoryMask = 0x00000400, - MemorySemanticsImageMemoryMask = 0x00000800, -}; - -enum MemoryAccessShift { - MemoryAccessVolatileShift = 0, - MemoryAccessAlignedShift = 1, - MemoryAccessNontemporalShift = 2, -}; - -enum MemoryAccessMask { - MemoryAccessMaskNone = 0, - MemoryAccessVolatileMask = 0x00000001, - MemoryAccessAlignedMask = 0x00000002, - MemoryAccessNontemporalMask = 0x00000004, -}; - -enum Scope { - ScopeCrossDevice = 0, - ScopeDevice = 1, - ScopeWorkgroup = 2, - ScopeSubgroup = 3, - ScopeInvocation = 4, -}; - -enum GroupOperation { - GroupOperationReduce = 0, - GroupOperationInclusiveScan = 1, - GroupOperationExclusiveScan = 2, -}; - -enum KernelEnqueueFlags { - KernelEnqueueFlagsNoWait = 0, - KernelEnqueueFlagsWaitKernel = 1, - KernelEnqueueFlagsWaitWorkGroup = 2, -}; - -enum KernelProfilingInfoShift { - KernelProfilingInfoCmdExecTimeShift = 0, -}; - -enum KernelProfilingInfoMask { - KernelProfilingInfoMaskNone = 0, - KernelProfilingInfoCmdExecTimeMask = 0x00000001, -}; - -enum Capability { - CapabilityMatrix = 0, - CapabilityShader = 1, - CapabilityGeometry = 2, - CapabilityTessellation = 3, - CapabilityAddresses = 4, - CapabilityLinkage = 5, - CapabilityKernel = 6, - CapabilityVector16 = 7, - CapabilityFloat16Buffer = 8, - CapabilityFloat16 = 9, - CapabilityFloat64 = 10, - CapabilityInt64 = 11, - CapabilityInt64Atomics = 12, - CapabilityImageBasic = 13, - CapabilityImageReadWrite = 14, - CapabilityImageMipmap = 15, - CapabilityPipes = 17, - CapabilityGroups = 18, - CapabilityDeviceEnqueue = 19, - CapabilityLiteralSampler = 20, - CapabilityAtomicStorage = 21, - CapabilityInt16 = 22, - CapabilityTessellationPointSize = 23, - CapabilityGeometryPointSize = 24, - CapabilityImageGatherExtended = 25, - CapabilityStorageImageMultisample = 27, - CapabilityUniformBufferArrayDynamicIndexing = 28, - CapabilitySampledImageArrayDynamicIndexing = 29, - CapabilityStorageBufferArrayDynamicIndexing = 30, - CapabilityStorageImageArrayDynamicIndexing = 31, - CapabilityClipDistance = 32, - CapabilityCullDistance = 33, - CapabilityImageCubeArray = 34, - CapabilitySampleRateShading = 35, - CapabilityImageRect = 36, - CapabilitySampledRect = 37, - CapabilityGenericPointer = 38, - CapabilityInt8 = 39, - CapabilityInputAttachment = 40, - CapabilitySparseResidency = 41, - CapabilityMinLod = 42, - CapabilitySampled1D = 43, - CapabilityImage1D = 44, - CapabilitySampledCubeArray = 45, - CapabilitySampledBuffer = 46, - CapabilityImageBuffer = 47, - CapabilityImageMSArray = 48, - CapabilityStorageImageExtendedFormats = 49, - CapabilityImageQuery = 50, - CapabilityDerivativeControl = 51, - CapabilityInterpolationFunction = 52, - CapabilityTransformFeedback = 53, - CapabilityGeometryStreams = 54, - CapabilityStorageImageReadWithoutFormat = 55, - CapabilityStorageImageWriteWithoutFormat = 56, - CapabilityMultiViewport = 57, -}; - -enum Op { - OpNop = 0, - OpUndef = 1, - OpSourceContinued = 2, - OpSource = 3, - OpSourceExtension = 4, - OpName = 5, - OpMemberName = 6, - OpString = 7, - OpLine = 8, - OpExtension = 10, - OpExtInstImport = 11, - OpExtInst = 12, - OpMemoryModel = 14, - OpEntryPoint = 15, - OpExecutionMode = 16, - OpCapability = 17, - OpTypeVoid = 19, - OpTypeBool = 20, - OpTypeInt = 21, - OpTypeFloat = 22, - OpTypeVector = 23, - OpTypeMatrix = 24, - OpTypeImage = 25, - OpTypeSampler = 26, - OpTypeSampledImage = 27, - OpTypeArray = 28, - OpTypeRuntimeArray = 29, - OpTypeStruct = 30, - OpTypeOpaque = 31, - OpTypePointer = 32, - OpTypeFunction = 33, - OpTypeEvent = 34, - OpTypeDeviceEvent = 35, - OpTypeReserveId = 36, - OpTypeQueue = 37, - OpTypePipe = 38, - OpTypeForwardPointer = 39, - OpConstantTrue = 41, - OpConstantFalse = 42, - OpConstant = 43, - OpConstantComposite = 44, - OpConstantSampler = 45, - OpConstantNull = 46, - OpSpecConstantTrue = 48, - OpSpecConstantFalse = 49, - OpSpecConstant = 50, - OpSpecConstantComposite = 51, - OpSpecConstantOp = 52, - OpFunction = 54, - OpFunctionParameter = 55, - OpFunctionEnd = 56, - OpFunctionCall = 57, - OpVariable = 59, - OpImageTexelPointer = 60, - OpLoad = 61, - OpStore = 62, - OpCopyMemory = 63, - OpCopyMemorySized = 64, - OpAccessChain = 65, - OpInBoundsAccessChain = 66, - OpPtrAccessChain = 67, - OpArrayLength = 68, - OpGenericPtrMemSemantics = 69, - OpInBoundsPtrAccessChain = 70, - OpDecorate = 71, - OpMemberDecorate = 72, - OpDecorationGroup = 73, - OpGroupDecorate = 74, - OpGroupMemberDecorate = 75, - OpVectorExtractDynamic = 77, - OpVectorInsertDynamic = 78, - OpVectorShuffle = 79, - OpCompositeConstruct = 80, - OpCompositeExtract = 81, - OpCompositeInsert = 82, - OpCopyObject = 83, - OpTranspose = 84, - OpSampledImage = 86, - OpImageSampleImplicitLod = 87, - OpImageSampleExplicitLod = 88, - OpImageSampleDrefImplicitLod = 89, - OpImageSampleDrefExplicitLod = 90, - OpImageSampleProjImplicitLod = 91, - OpImageSampleProjExplicitLod = 92, - OpImageSampleProjDrefImplicitLod = 93, - OpImageSampleProjDrefExplicitLod = 94, - OpImageFetch = 95, - OpImageGather = 96, - OpImageDrefGather = 97, - OpImageRead = 98, - OpImageWrite = 99, - OpImage = 100, - OpImageQueryFormat = 101, - OpImageQueryOrder = 102, - OpImageQuerySizeLod = 103, - OpImageQuerySize = 104, - OpImageQueryLod = 105, - OpImageQueryLevels = 106, - OpImageQuerySamples = 107, - OpConvertFToU = 109, - OpConvertFToS = 110, - OpConvertSToF = 111, - OpConvertUToF = 112, - OpUConvert = 113, - OpSConvert = 114, - OpFConvert = 115, - OpQuantizeToF16 = 116, - OpConvertPtrToU = 117, - OpSatConvertSToU = 118, - OpSatConvertUToS = 119, - OpConvertUToPtr = 120, - OpPtrCastToGeneric = 121, - OpGenericCastToPtr = 122, - OpGenericCastToPtrExplicit = 123, - OpBitcast = 124, - OpSNegate = 126, - OpFNegate = 127, - OpIAdd = 128, - OpFAdd = 129, - OpISub = 130, - OpFSub = 131, - OpIMul = 132, - OpFMul = 133, - OpUDiv = 134, - OpSDiv = 135, - OpFDiv = 136, - OpUMod = 137, - OpSRem = 138, - OpSMod = 139, - OpFRem = 140, - OpFMod = 141, - OpVectorTimesScalar = 142, - OpMatrixTimesScalar = 143, - OpVectorTimesMatrix = 144, - OpMatrixTimesVector = 145, - OpMatrixTimesMatrix = 146, - OpOuterProduct = 147, - OpDot = 148, - OpIAddCarry = 149, - OpISubBorrow = 150, - OpUMulExtended = 151, - OpSMulExtended = 152, - OpAny = 154, - OpAll = 155, - OpIsNan = 156, - OpIsInf = 157, - OpIsFinite = 158, - OpIsNormal = 159, - OpSignBitSet = 160, - OpLessOrGreater = 161, - OpOrdered = 162, - OpUnordered = 163, - OpLogicalEqual = 164, - OpLogicalNotEqual = 165, - OpLogicalOr = 166, - OpLogicalAnd = 167, - OpLogicalNot = 168, - OpSelect = 169, - OpIEqual = 170, - OpINotEqual = 171, - OpUGreaterThan = 172, - OpSGreaterThan = 173, - OpUGreaterThanEqual = 174, - OpSGreaterThanEqual = 175, - OpULessThan = 176, - OpSLessThan = 177, - OpULessThanEqual = 178, - OpSLessThanEqual = 179, - OpFOrdEqual = 180, - OpFUnordEqual = 181, - OpFOrdNotEqual = 182, - OpFUnordNotEqual = 183, - OpFOrdLessThan = 184, - OpFUnordLessThan = 185, - OpFOrdGreaterThan = 186, - OpFUnordGreaterThan = 187, - OpFOrdLessThanEqual = 188, - OpFUnordLessThanEqual = 189, - OpFOrdGreaterThanEqual = 190, - OpFUnordGreaterThanEqual = 191, - OpShiftRightLogical = 194, - OpShiftRightArithmetic = 195, - OpShiftLeftLogical = 196, - OpBitwiseOr = 197, - OpBitwiseXor = 198, - OpBitwiseAnd = 199, - OpNot = 200, - OpBitFieldInsert = 201, - OpBitFieldSExtract = 202, - OpBitFieldUExtract = 203, - OpBitReverse = 204, - OpBitCount = 205, - OpDPdx = 207, - OpDPdy = 208, - OpFwidth = 209, - OpDPdxFine = 210, - OpDPdyFine = 211, - OpFwidthFine = 212, - OpDPdxCoarse = 213, - OpDPdyCoarse = 214, - OpFwidthCoarse = 215, - OpEmitVertex = 218, - OpEndPrimitive = 219, - OpEmitStreamVertex = 220, - OpEndStreamPrimitive = 221, - OpControlBarrier = 224, - OpMemoryBarrier = 225, - OpAtomicLoad = 227, - OpAtomicStore = 228, - OpAtomicExchange = 229, - OpAtomicCompareExchange = 230, - OpAtomicCompareExchangeWeak = 231, - OpAtomicIIncrement = 232, - OpAtomicIDecrement = 233, - OpAtomicIAdd = 234, - OpAtomicISub = 235, - OpAtomicSMin = 236, - OpAtomicUMin = 237, - OpAtomicSMax = 238, - OpAtomicUMax = 239, - OpAtomicAnd = 240, - OpAtomicOr = 241, - OpAtomicXor = 242, - OpPhi = 245, - OpLoopMerge = 246, - OpSelectionMerge = 247, - OpLabel = 248, - OpBranch = 249, - OpBranchConditional = 250, - OpSwitch = 251, - OpKill = 252, - OpReturn = 253, - OpReturnValue = 254, - OpUnreachable = 255, - OpLifetimeStart = 256, - OpLifetimeStop = 257, - OpGroupAsyncCopy = 259, - OpGroupWaitEvents = 260, - OpGroupAll = 261, - OpGroupAny = 262, - OpGroupBroadcast = 263, - OpGroupIAdd = 264, - OpGroupFAdd = 265, - OpGroupFMin = 266, - OpGroupUMin = 267, - OpGroupSMin = 268, - OpGroupFMax = 269, - OpGroupUMax = 270, - OpGroupSMax = 271, - OpReadPipe = 274, - OpWritePipe = 275, - OpReservedReadPipe = 276, - OpReservedWritePipe = 277, - OpReserveReadPipePackets = 278, - OpReserveWritePipePackets = 279, - OpCommitReadPipe = 280, - OpCommitWritePipe = 281, - OpIsValidReserveId = 282, - OpGetNumPipePackets = 283, - OpGetMaxPipePackets = 284, - OpGroupReserveReadPipePackets = 285, - OpGroupReserveWritePipePackets = 286, - OpGroupCommitReadPipe = 287, - OpGroupCommitWritePipe = 288, - OpEnqueueMarker = 291, - OpEnqueueKernel = 292, - OpGetKernelNDrangeSubGroupCount = 293, - OpGetKernelNDrangeMaxSubGroupSize = 294, - OpGetKernelWorkGroupSize = 295, - OpGetKernelPreferredWorkGroupSizeMultiple = 296, - OpRetainEvent = 297, - OpReleaseEvent = 298, - OpCreateUserEvent = 299, - OpIsValidEvent = 300, - OpSetUserEventStatus = 301, - OpCaptureEventProfilingInfo = 302, - OpGetDefaultQueue = 303, - OpBuildNDRange = 304, - OpImageSparseSampleImplicitLod = 305, - OpImageSparseSampleExplicitLod = 306, - OpImageSparseSampleDrefImplicitLod = 307, - OpImageSparseSampleDrefExplicitLod = 308, - OpImageSparseSampleProjImplicitLod = 309, - OpImageSparseSampleProjExplicitLod = 310, - OpImageSparseSampleProjDrefImplicitLod = 311, - OpImageSparseSampleProjDrefExplicitLod = 312, - OpImageSparseFetch = 313, - OpImageSparseGather = 314, - OpImageSparseDrefGather = 315, - OpImageSparseTexelsResident = 316, - OpNoLine = 317, - OpAtomicFlagTestAndSet = 318, - OpAtomicFlagClear = 319, - OpImageSparseRead = 320, -}; - -// Overload operator| for mask bit combining - -inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } -inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } -inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } -inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } -inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } -inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } -inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } -inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } - -} // end namespace spv - -#endif // #ifndef spirv_HPP +// Copyright (c) 2014-2016 The Khronos Group Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and/or associated documentation files (the "Materials"), +// to deal in the Materials without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Materials, and to permit persons to whom the +// Materials are furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Materials. +// +// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +// +// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS +// IN THE MATERIALS. + +// This header is automatically generated by the same tool that creates +// the Binary Section of the SPIR-V specification. + +// Enumeration tokens for SPIR-V, in various styles: +// C, C++, C++11, JSON, Lua, Python +// +// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL +// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL +// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL +// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL +// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] +// +// Some tokens act like mask values, which can be OR'd together, +// while others are mutually exclusive. The mask-like ones have +// "Mask" in their name, and a parallel enum that has the shift +// amount (1 << x) for each corresponding enumerant. + +#ifndef spirv_HPP +#define spirv_HPP + +namespace spv { + +typedef unsigned int Id; + +#define SPV_VERSION 0x10000 +#define SPV_REVISION 6 + +static const unsigned int MagicNumber = 0x07230203; +static const unsigned int Version = 0x00010000; +static const unsigned int Revision = 6; +static const unsigned int OpCodeMask = 0xffff; +static const unsigned int WordCountShift = 16; + +enum SourceLanguage { + SourceLanguageUnknown = 0, + SourceLanguageESSL = 1, + SourceLanguageGLSL = 2, + SourceLanguageOpenCL_C = 3, + SourceLanguageOpenCL_CPP = 4, + SourceLanguageHLSL = 5, + SourceLanguageMax = 0x7fffffff, +}; + +enum ExecutionModel { + ExecutionModelVertex = 0, + ExecutionModelTessellationControl = 1, + ExecutionModelTessellationEvaluation = 2, + ExecutionModelGeometry = 3, + ExecutionModelFragment = 4, + ExecutionModelGLCompute = 5, + ExecutionModelKernel = 6, + ExecutionModelMax = 0x7fffffff, +}; + +enum AddressingModel { + AddressingModelLogical = 0, + AddressingModelPhysical32 = 1, + AddressingModelPhysical64 = 2, + AddressingModelMax = 0x7fffffff, +}; + +enum MemoryModel { + MemoryModelSimple = 0, + MemoryModelGLSL450 = 1, + MemoryModelOpenCL = 2, + MemoryModelMax = 0x7fffffff, +}; + +enum ExecutionMode { + ExecutionModeInvocations = 0, + ExecutionModeSpacingEqual = 1, + ExecutionModeSpacingFractionalEven = 2, + ExecutionModeSpacingFractionalOdd = 3, + ExecutionModeVertexOrderCw = 4, + ExecutionModeVertexOrderCcw = 5, + ExecutionModePixelCenterInteger = 6, + ExecutionModeOriginUpperLeft = 7, + ExecutionModeOriginLowerLeft = 8, + ExecutionModeEarlyFragmentTests = 9, + ExecutionModePointMode = 10, + ExecutionModeXfb = 11, + ExecutionModeDepthReplacing = 12, + ExecutionModeDepthGreater = 14, + ExecutionModeDepthLess = 15, + ExecutionModeDepthUnchanged = 16, + ExecutionModeLocalSize = 17, + ExecutionModeLocalSizeHint = 18, + ExecutionModeInputPoints = 19, + ExecutionModeInputLines = 20, + ExecutionModeInputLinesAdjacency = 21, + ExecutionModeTriangles = 22, + ExecutionModeInputTrianglesAdjacency = 23, + ExecutionModeQuads = 24, + ExecutionModeIsolines = 25, + ExecutionModeOutputVertices = 26, + ExecutionModeOutputPoints = 27, + ExecutionModeOutputLineStrip = 28, + ExecutionModeOutputTriangleStrip = 29, + ExecutionModeVecTypeHint = 30, + ExecutionModeContractionOff = 31, + ExecutionModeMax = 0x7fffffff, +}; + +enum StorageClass { + StorageClassUniformConstant = 0, + StorageClassInput = 1, + StorageClassUniform = 2, + StorageClassOutput = 3, + StorageClassWorkgroup = 4, + StorageClassCrossWorkgroup = 5, + StorageClassPrivate = 6, + StorageClassFunction = 7, + StorageClassGeneric = 8, + StorageClassPushConstant = 9, + StorageClassAtomicCounter = 10, + StorageClassImage = 11, + StorageClassMax = 0x7fffffff, +}; + +enum Dim { + Dim1D = 0, + Dim2D = 1, + Dim3D = 2, + DimCube = 3, + DimRect = 4, + DimBuffer = 5, + DimSubpassData = 6, + DimMax = 0x7fffffff, +}; + +enum SamplerAddressingMode { + SamplerAddressingModeNone = 0, + SamplerAddressingModeClampToEdge = 1, + SamplerAddressingModeClamp = 2, + SamplerAddressingModeRepeat = 3, + SamplerAddressingModeRepeatMirrored = 4, + SamplerAddressingModeMax = 0x7fffffff, +}; + +enum SamplerFilterMode { + SamplerFilterModeNearest = 0, + SamplerFilterModeLinear = 1, + SamplerFilterModeMax = 0x7fffffff, +}; + +enum ImageFormat { + ImageFormatUnknown = 0, + ImageFormatRgba32f = 1, + ImageFormatRgba16f = 2, + ImageFormatR32f = 3, + ImageFormatRgba8 = 4, + ImageFormatRgba8Snorm = 5, + ImageFormatRg32f = 6, + ImageFormatRg16f = 7, + ImageFormatR11fG11fB10f = 8, + ImageFormatR16f = 9, + ImageFormatRgba16 = 10, + ImageFormatRgb10A2 = 11, + ImageFormatRg16 = 12, + ImageFormatRg8 = 13, + ImageFormatR16 = 14, + ImageFormatR8 = 15, + ImageFormatRgba16Snorm = 16, + ImageFormatRg16Snorm = 17, + ImageFormatRg8Snorm = 18, + ImageFormatR16Snorm = 19, + ImageFormatR8Snorm = 20, + ImageFormatRgba32i = 21, + ImageFormatRgba16i = 22, + ImageFormatRgba8i = 23, + ImageFormatR32i = 24, + ImageFormatRg32i = 25, + ImageFormatRg16i = 26, + ImageFormatRg8i = 27, + ImageFormatR16i = 28, + ImageFormatR8i = 29, + ImageFormatRgba32ui = 30, + ImageFormatRgba16ui = 31, + ImageFormatRgba8ui = 32, + ImageFormatR32ui = 33, + ImageFormatRgb10a2ui = 34, + ImageFormatRg32ui = 35, + ImageFormatRg16ui = 36, + ImageFormatRg8ui = 37, + ImageFormatR16ui = 38, + ImageFormatR8ui = 39, + ImageFormatMax = 0x7fffffff, +}; + +enum ImageChannelOrder { + ImageChannelOrderR = 0, + ImageChannelOrderA = 1, + ImageChannelOrderRG = 2, + ImageChannelOrderRA = 3, + ImageChannelOrderRGB = 4, + ImageChannelOrderRGBA = 5, + ImageChannelOrderBGRA = 6, + ImageChannelOrderARGB = 7, + ImageChannelOrderIntensity = 8, + ImageChannelOrderLuminance = 9, + ImageChannelOrderRx = 10, + ImageChannelOrderRGx = 11, + ImageChannelOrderRGBx = 12, + ImageChannelOrderDepth = 13, + ImageChannelOrderDepthStencil = 14, + ImageChannelOrdersRGB = 15, + ImageChannelOrdersRGBx = 16, + ImageChannelOrdersRGBA = 17, + ImageChannelOrdersBGRA = 18, + ImageChannelOrderABGR = 19, + ImageChannelOrderMax = 0x7fffffff, +}; + +enum ImageChannelDataType { + ImageChannelDataTypeSnormInt8 = 0, + ImageChannelDataTypeSnormInt16 = 1, + ImageChannelDataTypeUnormInt8 = 2, + ImageChannelDataTypeUnormInt16 = 3, + ImageChannelDataTypeUnormShort565 = 4, + ImageChannelDataTypeUnormShort555 = 5, + ImageChannelDataTypeUnormInt101010 = 6, + ImageChannelDataTypeSignedInt8 = 7, + ImageChannelDataTypeSignedInt16 = 8, + ImageChannelDataTypeSignedInt32 = 9, + ImageChannelDataTypeUnsignedInt8 = 10, + ImageChannelDataTypeUnsignedInt16 = 11, + ImageChannelDataTypeUnsignedInt32 = 12, + ImageChannelDataTypeHalfFloat = 13, + ImageChannelDataTypeFloat = 14, + ImageChannelDataTypeUnormInt24 = 15, + ImageChannelDataTypeUnormInt101010_2 = 16, + ImageChannelDataTypeMax = 0x7fffffff, +}; + +enum ImageOperandsShift { + ImageOperandsBiasShift = 0, + ImageOperandsLodShift = 1, + ImageOperandsGradShift = 2, + ImageOperandsConstOffsetShift = 3, + ImageOperandsOffsetShift = 4, + ImageOperandsConstOffsetsShift = 5, + ImageOperandsSampleShift = 6, + ImageOperandsMinLodShift = 7, + ImageOperandsMax = 0x7fffffff, +}; + +enum ImageOperandsMask { + ImageOperandsMaskNone = 0, + ImageOperandsBiasMask = 0x00000001, + ImageOperandsLodMask = 0x00000002, + ImageOperandsGradMask = 0x00000004, + ImageOperandsConstOffsetMask = 0x00000008, + ImageOperandsOffsetMask = 0x00000010, + ImageOperandsConstOffsetsMask = 0x00000020, + ImageOperandsSampleMask = 0x00000040, + ImageOperandsMinLodMask = 0x00000080, +}; + +enum FPFastMathModeShift { + FPFastMathModeNotNaNShift = 0, + FPFastMathModeNotInfShift = 1, + FPFastMathModeNSZShift = 2, + FPFastMathModeAllowRecipShift = 3, + FPFastMathModeFastShift = 4, + FPFastMathModeMax = 0x7fffffff, +}; + +enum FPFastMathModeMask { + FPFastMathModeMaskNone = 0, + FPFastMathModeNotNaNMask = 0x00000001, + FPFastMathModeNotInfMask = 0x00000002, + FPFastMathModeNSZMask = 0x00000004, + FPFastMathModeAllowRecipMask = 0x00000008, + FPFastMathModeFastMask = 0x00000010, +}; + +enum FPRoundingMode { + FPRoundingModeRTE = 0, + FPRoundingModeRTZ = 1, + FPRoundingModeRTP = 2, + FPRoundingModeRTN = 3, + FPRoundingModeMax = 0x7fffffff, +}; + +enum LinkageType { + LinkageTypeExport = 0, + LinkageTypeImport = 1, + LinkageTypeMax = 0x7fffffff, +}; + +enum AccessQualifier { + AccessQualifierReadOnly = 0, + AccessQualifierWriteOnly = 1, + AccessQualifierReadWrite = 2, + AccessQualifierMax = 0x7fffffff, +}; + +enum FunctionParameterAttribute { + FunctionParameterAttributeZext = 0, + FunctionParameterAttributeSext = 1, + FunctionParameterAttributeByVal = 2, + FunctionParameterAttributeSret = 3, + FunctionParameterAttributeNoAlias = 4, + FunctionParameterAttributeNoCapture = 5, + FunctionParameterAttributeNoWrite = 6, + FunctionParameterAttributeNoReadWrite = 7, + FunctionParameterAttributeMax = 0x7fffffff, +}; + +enum Decoration { + DecorationRelaxedPrecision = 0, + DecorationSpecId = 1, + DecorationBlock = 2, + DecorationBufferBlock = 3, + DecorationRowMajor = 4, + DecorationColMajor = 5, + DecorationArrayStride = 6, + DecorationMatrixStride = 7, + DecorationGLSLShared = 8, + DecorationGLSLPacked = 9, + DecorationCPacked = 10, + DecorationBuiltIn = 11, + DecorationNoPerspective = 13, + DecorationFlat = 14, + DecorationPatch = 15, + DecorationCentroid = 16, + DecorationSample = 17, + DecorationInvariant = 18, + DecorationRestrict = 19, + DecorationAliased = 20, + DecorationVolatile = 21, + DecorationConstant = 22, + DecorationCoherent = 23, + DecorationNonWritable = 24, + DecorationNonReadable = 25, + DecorationUniform = 26, + DecorationSaturatedConversion = 28, + DecorationStream = 29, + DecorationLocation = 30, + DecorationComponent = 31, + DecorationIndex = 32, + DecorationBinding = 33, + DecorationDescriptorSet = 34, + DecorationOffset = 35, + DecorationXfbBuffer = 36, + DecorationXfbStride = 37, + DecorationFuncParamAttr = 38, + DecorationFPRoundingMode = 39, + DecorationFPFastMathMode = 40, + DecorationLinkageAttributes = 41, + DecorationNoContraction = 42, + DecorationInputAttachmentIndex = 43, + DecorationAlignment = 44, + DecorationMax = 0x7fffffff, +}; + +enum BuiltIn { + BuiltInPosition = 0, + BuiltInPointSize = 1, + BuiltInClipDistance = 3, + BuiltInCullDistance = 4, + BuiltInVertexId = 5, + BuiltInInstanceId = 6, + BuiltInPrimitiveId = 7, + BuiltInInvocationId = 8, + BuiltInLayer = 9, + BuiltInViewportIndex = 10, + BuiltInTessLevelOuter = 11, + BuiltInTessLevelInner = 12, + BuiltInTessCoord = 13, + BuiltInPatchVertices = 14, + BuiltInFragCoord = 15, + BuiltInPointCoord = 16, + BuiltInFrontFacing = 17, + BuiltInSampleId = 18, + BuiltInSamplePosition = 19, + BuiltInSampleMask = 20, + BuiltInFragDepth = 22, + BuiltInHelperInvocation = 23, + BuiltInNumWorkgroups = 24, + BuiltInWorkgroupSize = 25, + BuiltInWorkgroupId = 26, + BuiltInLocalInvocationId = 27, + BuiltInGlobalInvocationId = 28, + BuiltInLocalInvocationIndex = 29, + BuiltInWorkDim = 30, + BuiltInGlobalSize = 31, + BuiltInEnqueuedWorkgroupSize = 32, + BuiltInGlobalOffset = 33, + BuiltInGlobalLinearId = 34, + BuiltInSubgroupSize = 36, + BuiltInSubgroupMaxSize = 37, + BuiltInNumSubgroups = 38, + BuiltInNumEnqueuedSubgroups = 39, + BuiltInSubgroupId = 40, + BuiltInSubgroupLocalInvocationId = 41, + BuiltInVertexIndex = 42, + BuiltInInstanceIndex = 43, + BuiltInMax = 0x7fffffff, +}; + +enum SelectionControlShift { + SelectionControlFlattenShift = 0, + SelectionControlDontFlattenShift = 1, + SelectionControlMax = 0x7fffffff, +}; + +enum SelectionControlMask { + SelectionControlMaskNone = 0, + SelectionControlFlattenMask = 0x00000001, + SelectionControlDontFlattenMask = 0x00000002, +}; + +enum LoopControlShift { + LoopControlUnrollShift = 0, + LoopControlDontUnrollShift = 1, + LoopControlMax = 0x7fffffff, +}; + +enum LoopControlMask { + LoopControlMaskNone = 0, + LoopControlUnrollMask = 0x00000001, + LoopControlDontUnrollMask = 0x00000002, +}; + +enum FunctionControlShift { + FunctionControlInlineShift = 0, + FunctionControlDontInlineShift = 1, + FunctionControlPureShift = 2, + FunctionControlConstShift = 3, + FunctionControlMax = 0x7fffffff, +}; + +enum FunctionControlMask { + FunctionControlMaskNone = 0, + FunctionControlInlineMask = 0x00000001, + FunctionControlDontInlineMask = 0x00000002, + FunctionControlPureMask = 0x00000004, + FunctionControlConstMask = 0x00000008, +}; + +enum MemorySemanticsShift { + MemorySemanticsAcquireShift = 1, + MemorySemanticsReleaseShift = 2, + MemorySemanticsAcquireReleaseShift = 3, + MemorySemanticsSequentiallyConsistentShift = 4, + MemorySemanticsUniformMemoryShift = 6, + MemorySemanticsSubgroupMemoryShift = 7, + MemorySemanticsWorkgroupMemoryShift = 8, + MemorySemanticsCrossWorkgroupMemoryShift = 9, + MemorySemanticsAtomicCounterMemoryShift = 10, + MemorySemanticsImageMemoryShift = 11, + MemorySemanticsMax = 0x7fffffff, +}; + +enum MemorySemanticsMask { + MemorySemanticsMaskNone = 0, + MemorySemanticsAcquireMask = 0x00000002, + MemorySemanticsReleaseMask = 0x00000004, + MemorySemanticsAcquireReleaseMask = 0x00000008, + MemorySemanticsSequentiallyConsistentMask = 0x00000010, + MemorySemanticsUniformMemoryMask = 0x00000040, + MemorySemanticsSubgroupMemoryMask = 0x00000080, + MemorySemanticsWorkgroupMemoryMask = 0x00000100, + MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, + MemorySemanticsAtomicCounterMemoryMask = 0x00000400, + MemorySemanticsImageMemoryMask = 0x00000800, +}; + +enum MemoryAccessShift { + MemoryAccessVolatileShift = 0, + MemoryAccessAlignedShift = 1, + MemoryAccessNontemporalShift = 2, + MemoryAccessMax = 0x7fffffff, +}; + +enum MemoryAccessMask { + MemoryAccessMaskNone = 0, + MemoryAccessVolatileMask = 0x00000001, + MemoryAccessAlignedMask = 0x00000002, + MemoryAccessNontemporalMask = 0x00000004, +}; + +enum Scope { + ScopeCrossDevice = 0, + ScopeDevice = 1, + ScopeWorkgroup = 2, + ScopeSubgroup = 3, + ScopeInvocation = 4, + ScopeMax = 0x7fffffff, +}; + +enum GroupOperation { + GroupOperationReduce = 0, + GroupOperationInclusiveScan = 1, + GroupOperationExclusiveScan = 2, + GroupOperationMax = 0x7fffffff, +}; + +enum KernelEnqueueFlags { + KernelEnqueueFlagsNoWait = 0, + KernelEnqueueFlagsWaitKernel = 1, + KernelEnqueueFlagsWaitWorkGroup = 2, + KernelEnqueueFlagsMax = 0x7fffffff, +}; + +enum KernelProfilingInfoShift { + KernelProfilingInfoCmdExecTimeShift = 0, + KernelProfilingInfoMax = 0x7fffffff, +}; + +enum KernelProfilingInfoMask { + KernelProfilingInfoMaskNone = 0, + KernelProfilingInfoCmdExecTimeMask = 0x00000001, +}; + +enum Capability { + CapabilityMatrix = 0, + CapabilityShader = 1, + CapabilityGeometry = 2, + CapabilityTessellation = 3, + CapabilityAddresses = 4, + CapabilityLinkage = 5, + CapabilityKernel = 6, + CapabilityVector16 = 7, + CapabilityFloat16Buffer = 8, + CapabilityFloat16 = 9, + CapabilityFloat64 = 10, + CapabilityInt64 = 11, + CapabilityInt64Atomics = 12, + CapabilityImageBasic = 13, + CapabilityImageReadWrite = 14, + CapabilityImageMipmap = 15, + CapabilityPipes = 17, + CapabilityGroups = 18, + CapabilityDeviceEnqueue = 19, + CapabilityLiteralSampler = 20, + CapabilityAtomicStorage = 21, + CapabilityInt16 = 22, + CapabilityTessellationPointSize = 23, + CapabilityGeometryPointSize = 24, + CapabilityImageGatherExtended = 25, + CapabilityStorageImageMultisample = 27, + CapabilityUniformBufferArrayDynamicIndexing = 28, + CapabilitySampledImageArrayDynamicIndexing = 29, + CapabilityStorageBufferArrayDynamicIndexing = 30, + CapabilityStorageImageArrayDynamicIndexing = 31, + CapabilityClipDistance = 32, + CapabilityCullDistance = 33, + CapabilityImageCubeArray = 34, + CapabilitySampleRateShading = 35, + CapabilityImageRect = 36, + CapabilitySampledRect = 37, + CapabilityGenericPointer = 38, + CapabilityInt8 = 39, + CapabilityInputAttachment = 40, + CapabilitySparseResidency = 41, + CapabilityMinLod = 42, + CapabilitySampled1D = 43, + CapabilityImage1D = 44, + CapabilitySampledCubeArray = 45, + CapabilitySampledBuffer = 46, + CapabilityImageBuffer = 47, + CapabilityImageMSArray = 48, + CapabilityStorageImageExtendedFormats = 49, + CapabilityImageQuery = 50, + CapabilityDerivativeControl = 51, + CapabilityInterpolationFunction = 52, + CapabilityTransformFeedback = 53, + CapabilityGeometryStreams = 54, + CapabilityStorageImageReadWithoutFormat = 55, + CapabilityStorageImageWriteWithoutFormat = 56, + CapabilityMultiViewport = 57, + CapabilityMax = 0x7fffffff, +}; + +enum Op { + OpNop = 0, + OpUndef = 1, + OpSourceContinued = 2, + OpSource = 3, + OpSourceExtension = 4, + OpName = 5, + OpMemberName = 6, + OpString = 7, + OpLine = 8, + OpExtension = 10, + OpExtInstImport = 11, + OpExtInst = 12, + OpMemoryModel = 14, + OpEntryPoint = 15, + OpExecutionMode = 16, + OpCapability = 17, + OpTypeVoid = 19, + OpTypeBool = 20, + OpTypeInt = 21, + OpTypeFloat = 22, + OpTypeVector = 23, + OpTypeMatrix = 24, + OpTypeImage = 25, + OpTypeSampler = 26, + OpTypeSampledImage = 27, + OpTypeArray = 28, + OpTypeRuntimeArray = 29, + OpTypeStruct = 30, + OpTypeOpaque = 31, + OpTypePointer = 32, + OpTypeFunction = 33, + OpTypeEvent = 34, + OpTypeDeviceEvent = 35, + OpTypeReserveId = 36, + OpTypeQueue = 37, + OpTypePipe = 38, + OpTypeForwardPointer = 39, + OpConstantTrue = 41, + OpConstantFalse = 42, + OpConstant = 43, + OpConstantComposite = 44, + OpConstantSampler = 45, + OpConstantNull = 46, + OpSpecConstantTrue = 48, + OpSpecConstantFalse = 49, + OpSpecConstant = 50, + OpSpecConstantComposite = 51, + OpSpecConstantOp = 52, + OpFunction = 54, + OpFunctionParameter = 55, + OpFunctionEnd = 56, + OpFunctionCall = 57, + OpVariable = 59, + OpImageTexelPointer = 60, + OpLoad = 61, + OpStore = 62, + OpCopyMemory = 63, + OpCopyMemorySized = 64, + OpAccessChain = 65, + OpInBoundsAccessChain = 66, + OpPtrAccessChain = 67, + OpArrayLength = 68, + OpGenericPtrMemSemantics = 69, + OpInBoundsPtrAccessChain = 70, + OpDecorate = 71, + OpMemberDecorate = 72, + OpDecorationGroup = 73, + OpGroupDecorate = 74, + OpGroupMemberDecorate = 75, + OpVectorExtractDynamic = 77, + OpVectorInsertDynamic = 78, + OpVectorShuffle = 79, + OpCompositeConstruct = 80, + OpCompositeExtract = 81, + OpCompositeInsert = 82, + OpCopyObject = 83, + OpTranspose = 84, + OpSampledImage = 86, + OpImageSampleImplicitLod = 87, + OpImageSampleExplicitLod = 88, + OpImageSampleDrefImplicitLod = 89, + OpImageSampleDrefExplicitLod = 90, + OpImageSampleProjImplicitLod = 91, + OpImageSampleProjExplicitLod = 92, + OpImageSampleProjDrefImplicitLod = 93, + OpImageSampleProjDrefExplicitLod = 94, + OpImageFetch = 95, + OpImageGather = 96, + OpImageDrefGather = 97, + OpImageRead = 98, + OpImageWrite = 99, + OpImage = 100, + OpImageQueryFormat = 101, + OpImageQueryOrder = 102, + OpImageQuerySizeLod = 103, + OpImageQuerySize = 104, + OpImageQueryLod = 105, + OpImageQueryLevels = 106, + OpImageQuerySamples = 107, + OpConvertFToU = 109, + OpConvertFToS = 110, + OpConvertSToF = 111, + OpConvertUToF = 112, + OpUConvert = 113, + OpSConvert = 114, + OpFConvert = 115, + OpQuantizeToF16 = 116, + OpConvertPtrToU = 117, + OpSatConvertSToU = 118, + OpSatConvertUToS = 119, + OpConvertUToPtr = 120, + OpPtrCastToGeneric = 121, + OpGenericCastToPtr = 122, + OpGenericCastToPtrExplicit = 123, + OpBitcast = 124, + OpSNegate = 126, + OpFNegate = 127, + OpIAdd = 128, + OpFAdd = 129, + OpISub = 130, + OpFSub = 131, + OpIMul = 132, + OpFMul = 133, + OpUDiv = 134, + OpSDiv = 135, + OpFDiv = 136, + OpUMod = 137, + OpSRem = 138, + OpSMod = 139, + OpFRem = 140, + OpFMod = 141, + OpVectorTimesScalar = 142, + OpMatrixTimesScalar = 143, + OpVectorTimesMatrix = 144, + OpMatrixTimesVector = 145, + OpMatrixTimesMatrix = 146, + OpOuterProduct = 147, + OpDot = 148, + OpIAddCarry = 149, + OpISubBorrow = 150, + OpUMulExtended = 151, + OpSMulExtended = 152, + OpAny = 154, + OpAll = 155, + OpIsNan = 156, + OpIsInf = 157, + OpIsFinite = 158, + OpIsNormal = 159, + OpSignBitSet = 160, + OpLessOrGreater = 161, + OpOrdered = 162, + OpUnordered = 163, + OpLogicalEqual = 164, + OpLogicalNotEqual = 165, + OpLogicalOr = 166, + OpLogicalAnd = 167, + OpLogicalNot = 168, + OpSelect = 169, + OpIEqual = 170, + OpINotEqual = 171, + OpUGreaterThan = 172, + OpSGreaterThan = 173, + OpUGreaterThanEqual = 174, + OpSGreaterThanEqual = 175, + OpULessThan = 176, + OpSLessThan = 177, + OpULessThanEqual = 178, + OpSLessThanEqual = 179, + OpFOrdEqual = 180, + OpFUnordEqual = 181, + OpFOrdNotEqual = 182, + OpFUnordNotEqual = 183, + OpFOrdLessThan = 184, + OpFUnordLessThan = 185, + OpFOrdGreaterThan = 186, + OpFUnordGreaterThan = 187, + OpFOrdLessThanEqual = 188, + OpFUnordLessThanEqual = 189, + OpFOrdGreaterThanEqual = 190, + OpFUnordGreaterThanEqual = 191, + OpShiftRightLogical = 194, + OpShiftRightArithmetic = 195, + OpShiftLeftLogical = 196, + OpBitwiseOr = 197, + OpBitwiseXor = 198, + OpBitwiseAnd = 199, + OpNot = 200, + OpBitFieldInsert = 201, + OpBitFieldSExtract = 202, + OpBitFieldUExtract = 203, + OpBitReverse = 204, + OpBitCount = 205, + OpDPdx = 207, + OpDPdy = 208, + OpFwidth = 209, + OpDPdxFine = 210, + OpDPdyFine = 211, + OpFwidthFine = 212, + OpDPdxCoarse = 213, + OpDPdyCoarse = 214, + OpFwidthCoarse = 215, + OpEmitVertex = 218, + OpEndPrimitive = 219, + OpEmitStreamVertex = 220, + OpEndStreamPrimitive = 221, + OpControlBarrier = 224, + OpMemoryBarrier = 225, + OpAtomicLoad = 227, + OpAtomicStore = 228, + OpAtomicExchange = 229, + OpAtomicCompareExchange = 230, + OpAtomicCompareExchangeWeak = 231, + OpAtomicIIncrement = 232, + OpAtomicIDecrement = 233, + OpAtomicIAdd = 234, + OpAtomicISub = 235, + OpAtomicSMin = 236, + OpAtomicUMin = 237, + OpAtomicSMax = 238, + OpAtomicUMax = 239, + OpAtomicAnd = 240, + OpAtomicOr = 241, + OpAtomicXor = 242, + OpPhi = 245, + OpLoopMerge = 246, + OpSelectionMerge = 247, + OpLabel = 248, + OpBranch = 249, + OpBranchConditional = 250, + OpSwitch = 251, + OpKill = 252, + OpReturn = 253, + OpReturnValue = 254, + OpUnreachable = 255, + OpLifetimeStart = 256, + OpLifetimeStop = 257, + OpGroupAsyncCopy = 259, + OpGroupWaitEvents = 260, + OpGroupAll = 261, + OpGroupAny = 262, + OpGroupBroadcast = 263, + OpGroupIAdd = 264, + OpGroupFAdd = 265, + OpGroupFMin = 266, + OpGroupUMin = 267, + OpGroupSMin = 268, + OpGroupFMax = 269, + OpGroupUMax = 270, + OpGroupSMax = 271, + OpReadPipe = 274, + OpWritePipe = 275, + OpReservedReadPipe = 276, + OpReservedWritePipe = 277, + OpReserveReadPipePackets = 278, + OpReserveWritePipePackets = 279, + OpCommitReadPipe = 280, + OpCommitWritePipe = 281, + OpIsValidReserveId = 282, + OpGetNumPipePackets = 283, + OpGetMaxPipePackets = 284, + OpGroupReserveReadPipePackets = 285, + OpGroupReserveWritePipePackets = 286, + OpGroupCommitReadPipe = 287, + OpGroupCommitWritePipe = 288, + OpEnqueueMarker = 291, + OpEnqueueKernel = 292, + OpGetKernelNDrangeSubGroupCount = 293, + OpGetKernelNDrangeMaxSubGroupSize = 294, + OpGetKernelWorkGroupSize = 295, + OpGetKernelPreferredWorkGroupSizeMultiple = 296, + OpRetainEvent = 297, + OpReleaseEvent = 298, + OpCreateUserEvent = 299, + OpIsValidEvent = 300, + OpSetUserEventStatus = 301, + OpCaptureEventProfilingInfo = 302, + OpGetDefaultQueue = 303, + OpBuildNDRange = 304, + OpImageSparseSampleImplicitLod = 305, + OpImageSparseSampleExplicitLod = 306, + OpImageSparseSampleDrefImplicitLod = 307, + OpImageSparseSampleDrefExplicitLod = 308, + OpImageSparseSampleProjImplicitLod = 309, + OpImageSparseSampleProjExplicitLod = 310, + OpImageSparseSampleProjDrefImplicitLod = 311, + OpImageSparseSampleProjDrefExplicitLod = 312, + OpImageSparseFetch = 313, + OpImageSparseGather = 314, + OpImageSparseDrefGather = 315, + OpImageSparseTexelsResident = 316, + OpNoLine = 317, + OpAtomicFlagTestAndSet = 318, + OpAtomicFlagClear = 319, + OpImageSparseRead = 320, + OpMax = 0x7fffffff, +}; + +// Overload operator| for mask bit combining + +inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } +inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } +inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } +inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } +inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } +inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } +inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } +inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } + +} // end namespace spv + +#endif // #ifndef spirv_HPP + diff --git a/SPIRV/spvIR.h b/SPIRV/spvIR.h index 42c054a4..c584c9dc 100755 --- a/SPIRV/spvIR.h +++ b/SPIRV/spvIR.h @@ -64,8 +64,7 @@ class Module; const Id NoResult = 0; const Id NoType = 0; -const unsigned int BadValue = 0xFFFFFFFF; -const Decoration NoPrecision = (Decoration)BadValue; +const Decoration NoPrecision = DecorationMax; const MemorySemanticsMask MemorySemanticsAllMemory = (MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask | MemorySemanticsUniformMemoryMask | From e4821e43c86d97bcf65fb07c1f70471b7102978d Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 16 Jul 2016 10:19:43 -0600 Subject: [PATCH 007/217] Build: Fix three new warnings in HLSL code. --- hlsl/hlslGrammar.cpp | 2 +- hlsl/hlslParseHelper.cpp | 2 +- hlsl/hlslParseables.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 53818851..c149b1c2 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -211,7 +211,7 @@ bool HlslGrammar::acceptSamplerState() // sampler_declaration_dx9 // : SAMPLER identifier EQUAL sampler_type sampler_state // -bool HlslGrammar::acceptSamplerDeclarationDX9(TType& type) +bool HlslGrammar::acceptSamplerDeclarationDX9(TType& /*type*/) { if (! acceptTokenClass(EHTokSampler)) return false; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 753fbfe6..b7b70007 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -906,7 +906,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TOperator textureOp = EOpTexture; - if (argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form + if ((int)argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form textureOp = EOpTextureOffset; argOffset = argAggregate->getSequence()[nextArg++]->getAsTyped(); } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index f6b85390..61b176b8 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -69,7 +69,7 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } -bool IsTextureMS(const char argOrder) { return false; } // TODO: ... +bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. @@ -118,7 +118,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isMatMul = (argOrder[0] == '#'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); - const bool isMS = IsTextureMS(argOrder[0]); + //const bool isMS = IsTextureMS(argOrder[0]); char order = *argOrder; char type = *argType; From 5d58faecc017280268e0b1d0ed20a79229a4a675 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Fri, 15 Jul 2016 11:22:24 -0600 Subject: [PATCH 008/217] HLSL: Add tx.GetDimensions method (uint returns only) --- .../hlsl.getdimensions.dx10.frag.out | 2595 +++++++++++++++++ .../hlsl.getdimensions.dx10.vert.out | 160 + Test/hlsl.getdimensions.dx10.frag | 237 ++ Test/hlsl.getdimensions.dx10.vert | 27 + glslang/Include/Types.h | 1 + gtests/Hlsl.FromFile.cpp | 2 + hlsl/hlslGrammar.cpp | 10 +- hlsl/hlslParseHelper.cpp | 99 + hlsl/hlslParseables.cpp | 75 +- 9 files changed, 3199 insertions(+), 7 deletions(-) create mode 100644 Test/baseResults/hlsl.getdimensions.dx10.frag.out create mode 100644 Test/baseResults/hlsl.getdimensions.dx10.vert.out create mode 100644 Test/hlsl.getdimensions.dx10.frag create mode 100644 Test/hlsl.getdimensions.dx10.vert diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out new file mode 100644 index 00000000..c1556b44 --- /dev/null +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -0,0 +1,2595 @@ +hlsl.getdimensions.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:57 Sequence +0:57 move second child to first child (temp uint) +0:57 'sizeQueryTemp' (temp uint) +0:57 textureSize (temp uint) +0:57 'g_tTex1df4' (uniform texture1D) +0:57 move second child to first child (temp uint) +0:57 'WidthU' (temp uint) +0:57 'sizeQueryTemp' (temp uint) +0:58 Sequence +0:58 move second child to first child (temp uint) +0:58 'sizeQueryTemp' (temp uint) +0:58 textureSize (temp uint) +0:58 'g_tTex1df4' (uniform texture1D) +0:58 Constant: +0:58 6 (const uint) +0:58 move second child to first child (temp uint) +0:58 'WidthU' (temp uint) +0:58 'sizeQueryTemp' (temp uint) +0:58 move second child to first child (temp uint) +0:58 'NumberOfLevelsU' (temp uint) +0:58 textureQueryLevels (temp uint) +0:58 'g_tTex1df4' (uniform texture1D) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'sizeQueryTemp' (temp uint) +0:61 textureSize (temp uint) +0:61 'g_tTex1di4' (uniform itexture1D) +0:61 move second child to first child (temp uint) +0:61 'WidthU' (temp uint) +0:61 'sizeQueryTemp' (temp uint) +0:62 Sequence +0:62 move second child to first child (temp uint) +0:62 'sizeQueryTemp' (temp uint) +0:62 textureSize (temp uint) +0:62 'g_tTex1di4' (uniform itexture1D) +0:62 Constant: +0:62 6 (const uint) +0:62 move second child to first child (temp uint) +0:62 'WidthU' (temp uint) +0:62 'sizeQueryTemp' (temp uint) +0:62 move second child to first child (temp uint) +0:62 'NumberOfLevelsU' (temp uint) +0:62 textureQueryLevels (temp uint) +0:62 'g_tTex1di4' (uniform itexture1D) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 textureSize (temp uint) +0:65 'g_tTex1du4' (uniform utexture1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'sizeQueryTemp' (temp uint) +0:66 textureSize (temp uint) +0:66 'g_tTex1du4' (uniform utexture1D) +0:66 Constant: +0:66 6 (const uint) +0:66 move second child to first child (temp uint) +0:66 'WidthU' (temp uint) +0:66 'sizeQueryTemp' (temp uint) +0:66 move second child to first child (temp uint) +0:66 'NumberOfLevelsU' (temp uint) +0:66 textureQueryLevels (temp uint) +0:66 'g_tTex1du4' (uniform utexture1D) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 textureSize (temp 2-component vector of uint) +0:69 'g_tTex1df4a' (uniform texture1DArray) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 direct index (temp uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 move second child to first child (temp uint) +0:69 'ElementsU' (temp uint) +0:69 direct index (temp uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 Constant: +0:69 1 (const int) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 textureSize (temp 2-component vector of uint) +0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 Constant: +0:70 6 (const uint) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 direct index (temp uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp uint) +0:70 'ElementsU' (temp uint) +0:70 direct index (temp uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 Constant: +0:70 1 (const int) +0:70 move second child to first child (temp uint) +0:70 'NumberOfLevelsU' (temp uint) +0:70 textureQueryLevels (temp uint) +0:70 'g_tTex1df4a' (uniform texture1DArray) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 textureSize (temp 2-component vector of uint) +0:73 'g_tTex1di4a' (uniform itexture1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 textureSize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 Constant: +0:74 6 (const uint) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:74 move second child to first child (temp uint) +0:74 'NumberOfLevelsU' (temp uint) +0:74 textureQueryLevels (temp uint) +0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 textureSize (temp 2-component vector of uint) +0:77 'g_tTex1du4a' (uniform utexture1DArray) +0:77 move second child to first child (temp uint) +0:77 'WidthU' (temp uint) +0:77 direct index (temp uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child (temp uint) +0:77 'ElementsU' (temp uint) +0:77 direct index (temp uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 Constant: +0:77 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 textureSize (temp 2-component vector of uint) +0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 Constant: +0:78 6 (const uint) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'ElementsU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:78 move second child to first child (temp uint) +0:78 'NumberOfLevelsU' (temp uint) +0:78 textureQueryLevels (temp uint) +0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:81 Sequence +0:81 move second child to first child (temp 2-component vector of uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 textureSize (temp 2-component vector of uint) +0:81 'g_tTex2df4' (uniform texture2D) +0:81 move second child to first child (temp uint) +0:81 'WidthU' (temp uint) +0:81 direct index (temp uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child (temp uint) +0:81 'HeightU' (temp uint) +0:81 direct index (temp uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 Constant: +0:81 1 (const int) +0:82 Sequence +0:82 move second child to first child (temp 2-component vector of uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 textureSize (temp 2-component vector of uint) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 Constant: +0:82 6 (const uint) +0:82 move second child to first child (temp uint) +0:82 'WidthU' (temp uint) +0:82 direct index (temp uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 move second child to first child (temp uint) +0:82 'HeightU' (temp uint) +0:82 direct index (temp uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 Constant: +0:82 1 (const int) +0:82 move second child to first child (temp uint) +0:82 'NumberOfLevelsU' (temp uint) +0:82 textureQueryLevels (temp uint) +0:82 'g_tTex2df4' (uniform texture2D) +0:85 Sequence +0:85 move second child to first child (temp 2-component vector of uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 textureSize (temp 2-component vector of uint) +0:85 'g_tTex2di4' (uniform itexture2D) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:86 Sequence +0:86 move second child to first child (temp 2-component vector of uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 textureSize (temp 2-component vector of uint) +0:86 'g_tTex2di4' (uniform itexture2D) +0:86 Constant: +0:86 6 (const uint) +0:86 move second child to first child (temp uint) +0:86 'WidthU' (temp uint) +0:86 direct index (temp uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 move second child to first child (temp uint) +0:86 'HeightU' (temp uint) +0:86 direct index (temp uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 Constant: +0:86 1 (const int) +0:86 move second child to first child (temp uint) +0:86 'NumberOfLevelsU' (temp uint) +0:86 textureQueryLevels (temp uint) +0:86 'g_tTex2di4' (uniform itexture2D) +0:89 Sequence +0:89 move second child to first child (temp 2-component vector of uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 textureSize (temp 2-component vector of uint) +0:89 'g_tTex2du4' (uniform utexture2D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:90 Sequence +0:90 move second child to first child (temp 2-component vector of uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 textureSize (temp 2-component vector of uint) +0:90 'g_tTex2du4' (uniform utexture2D) +0:90 Constant: +0:90 6 (const uint) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'NumberOfLevelsU' (temp uint) +0:90 textureQueryLevels (temp uint) +0:90 'g_tTex2du4' (uniform utexture2D) +0:93 Sequence +0:93 move second child to first child (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 textureSize (temp 3-component vector of uint) +0:93 'g_tTex2df4a' (uniform texture2DArray) +0:93 move second child to first child (temp uint) +0:93 'WidthU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child (temp uint) +0:93 'HeightU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 1 (const int) +0:93 move second child to first child (temp uint) +0:93 'ElementsU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 textureSize (temp 3-component vector of uint) +0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 Constant: +0:94 6 (const uint) +0:94 move second child to first child (temp uint) +0:94 'WidthU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 move second child to first child (temp uint) +0:94 'HeightU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 1 (const int) +0:94 move second child to first child (temp uint) +0:94 'ElementsU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 2 (const int) +0:94 move second child to first child (temp uint) +0:94 'NumberOfLevelsU' (temp uint) +0:94 textureQueryLevels (temp uint) +0:94 'g_tTex2df4a' (uniform texture2DArray) +0:97 Sequence +0:97 move second child to first child (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 textureSize (temp 3-component vector of uint) +0:97 'g_tTex2di4a' (uniform itexture2DArray) +0:97 move second child to first child (temp uint) +0:97 'WidthU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child (temp uint) +0:97 'HeightU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 1 (const int) +0:97 move second child to first child (temp uint) +0:97 'ElementsU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 2 (const int) +0:98 Sequence +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 textureSize (temp 3-component vector of uint) +0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 Constant: +0:98 6 (const uint) +0:98 move second child to first child (temp uint) +0:98 'WidthU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 0 (const int) +0:98 move second child to first child (temp uint) +0:98 'HeightU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 1 (const int) +0:98 move second child to first child (temp uint) +0:98 'ElementsU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 2 (const int) +0:98 move second child to first child (temp uint) +0:98 'NumberOfLevelsU' (temp uint) +0:98 textureQueryLevels (temp uint) +0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:101 Sequence +0:101 move second child to first child (temp 3-component vector of uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 textureSize (temp 3-component vector of uint) +0:101 'g_tTex2du4a' (uniform utexture2DArray) +0:101 move second child to first child (temp uint) +0:101 'WidthU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child (temp uint) +0:101 'HeightU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 1 (const int) +0:101 move second child to first child (temp uint) +0:101 'ElementsU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 2 (const int) +0:102 Sequence +0:102 move second child to first child (temp 3-component vector of uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 textureSize (temp 3-component vector of uint) +0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 Constant: +0:102 6 (const uint) +0:102 move second child to first child (temp uint) +0:102 'WidthU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 move second child to first child (temp uint) +0:102 'HeightU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 1 (const int) +0:102 move second child to first child (temp uint) +0:102 'ElementsU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 2 (const int) +0:102 move second child to first child (temp uint) +0:102 'NumberOfLevelsU' (temp uint) +0:102 textureQueryLevels (temp uint) +0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:105 Sequence +0:105 move second child to first child (temp 3-component vector of uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 textureSize (temp 3-component vector of uint) +0:105 'g_tTex3df4' (uniform texture3D) +0:105 move second child to first child (temp uint) +0:105 'WidthU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child (temp uint) +0:105 'HeightU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 1 (const int) +0:105 move second child to first child (temp uint) +0:105 'DepthU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 2 (const int) +0:106 Sequence +0:106 move second child to first child (temp 3-component vector of uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 textureSize (temp 3-component vector of uint) +0:106 'g_tTex3df4' (uniform texture3D) +0:106 Constant: +0:106 6 (const uint) +0:106 move second child to first child (temp uint) +0:106 'WidthU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 move second child to first child (temp uint) +0:106 'HeightU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 1 (const int) +0:106 move second child to first child (temp uint) +0:106 'DepthU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 2 (const int) +0:106 move second child to first child (temp uint) +0:106 'NumberOfLevelsU' (temp uint) +0:106 textureQueryLevels (temp uint) +0:106 'g_tTex3df4' (uniform texture3D) +0:109 Sequence +0:109 move second child to first child (temp 3-component vector of uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 textureSize (temp 3-component vector of uint) +0:109 'g_tTex3di4' (uniform itexture3D) +0:109 move second child to first child (temp uint) +0:109 'WidthU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp uint) +0:109 'HeightU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 1 (const int) +0:109 move second child to first child (temp uint) +0:109 'DepthU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 2 (const int) +0:110 Sequence +0:110 move second child to first child (temp 3-component vector of uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 textureSize (temp 3-component vector of uint) +0:110 'g_tTex3di4' (uniform itexture3D) +0:110 Constant: +0:110 6 (const uint) +0:110 move second child to first child (temp uint) +0:110 'WidthU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 move second child to first child (temp uint) +0:110 'HeightU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 1 (const int) +0:110 move second child to first child (temp uint) +0:110 'DepthU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 2 (const int) +0:110 move second child to first child (temp uint) +0:110 'NumberOfLevelsU' (temp uint) +0:110 textureQueryLevels (temp uint) +0:110 'g_tTex3di4' (uniform itexture3D) +0:113 Sequence +0:113 move second child to first child (temp 3-component vector of uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 textureSize (temp 3-component vector of uint) +0:113 'g_tTex3du4' (uniform utexture3D) +0:113 move second child to first child (temp uint) +0:113 'WidthU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child (temp uint) +0:113 'HeightU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 1 (const int) +0:113 move second child to first child (temp uint) +0:113 'DepthU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 2 (const int) +0:114 Sequence +0:114 move second child to first child (temp 3-component vector of uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 textureSize (temp 3-component vector of uint) +0:114 'g_tTex3du4' (uniform utexture3D) +0:114 Constant: +0:114 6 (const uint) +0:114 move second child to first child (temp uint) +0:114 'WidthU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 move second child to first child (temp uint) +0:114 'HeightU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 1 (const int) +0:114 move second child to first child (temp uint) +0:114 'DepthU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 2 (const int) +0:114 move second child to first child (temp uint) +0:114 'NumberOfLevelsU' (temp uint) +0:114 textureQueryLevels (temp uint) +0:114 'g_tTex3du4' (uniform utexture3D) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 textureSize (temp 2-component vector of uint) +0:117 'g_tTexcdf4' (uniform textureCube) +0:117 move second child to first child (temp uint) +0:117 'WidthU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child (temp uint) +0:117 'HeightU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 Constant: +0:117 1 (const int) +0:118 Sequence +0:118 move second child to first child (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 textureSize (temp 2-component vector of uint) +0:118 'g_tTexcdf4' (uniform textureCube) +0:118 Constant: +0:118 6 (const uint) +0:118 move second child to first child (temp uint) +0:118 'WidthU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 Constant: +0:118 0 (const int) +0:118 move second child to first child (temp uint) +0:118 'HeightU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 Constant: +0:118 1 (const int) +0:118 move second child to first child (temp uint) +0:118 'NumberOfLevelsU' (temp uint) +0:118 textureQueryLevels (temp uint) +0:118 'g_tTexcdf4' (uniform textureCube) +0:121 Sequence +0:121 move second child to first child (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 textureSize (temp 2-component vector of uint) +0:121 'g_tTexcdi4' (uniform itextureCube) +0:121 move second child to first child (temp uint) +0:121 'WidthU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child (temp uint) +0:121 'HeightU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 Constant: +0:121 1 (const int) +0:122 Sequence +0:122 move second child to first child (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 textureSize (temp 2-component vector of uint) +0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 Constant: +0:122 6 (const uint) +0:122 move second child to first child (temp uint) +0:122 'WidthU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 move second child to first child (temp uint) +0:122 'HeightU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 Constant: +0:122 1 (const int) +0:122 move second child to first child (temp uint) +0:122 'NumberOfLevelsU' (temp uint) +0:122 textureQueryLevels (temp uint) +0:122 'g_tTexcdi4' (uniform itextureCube) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 textureSize (temp 2-component vector of uint) +0:125 'g_tTexcdu4' (uniform utextureCube) +0:125 move second child to first child (temp uint) +0:125 'WidthU' (temp uint) +0:125 direct index (temp uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child (temp uint) +0:125 'HeightU' (temp uint) +0:125 direct index (temp uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 Constant: +0:125 1 (const int) +0:126 Sequence +0:126 move second child to first child (temp 2-component vector of uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 textureSize (temp 2-component vector of uint) +0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 Constant: +0:126 6 (const uint) +0:126 move second child to first child (temp uint) +0:126 'WidthU' (temp uint) +0:126 direct index (temp uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 move second child to first child (temp uint) +0:126 'HeightU' (temp uint) +0:126 direct index (temp uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 Constant: +0:126 1 (const int) +0:126 move second child to first child (temp uint) +0:126 'NumberOfLevelsU' (temp uint) +0:126 textureQueryLevels (temp uint) +0:126 'g_tTexcdu4' (uniform utextureCube) +0:129 Sequence +0:129 move second child to first child (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 textureSize (temp 3-component vector of uint) +0:129 'g_tTexcdf4a' (uniform textureCubeArray) +0:129 move second child to first child (temp uint) +0:129 'WidthU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp uint) +0:129 'HeightU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 1 (const int) +0:129 move second child to first child (temp uint) +0:129 'ElementsU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 2 (const int) +0:130 Sequence +0:130 move second child to first child (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 textureSize (temp 3-component vector of uint) +0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 Constant: +0:130 6 (const uint) +0:130 move second child to first child (temp uint) +0:130 'WidthU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 move second child to first child (temp uint) +0:130 'HeightU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 1 (const int) +0:130 move second child to first child (temp uint) +0:130 'ElementsU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 2 (const int) +0:130 move second child to first child (temp uint) +0:130 'NumberOfLevelsU' (temp uint) +0:130 textureQueryLevels (temp uint) +0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:133 Sequence +0:133 move second child to first child (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 textureSize (temp 3-component vector of uint) +0:133 'g_tTexcdi4a' (uniform itextureCubeArray) +0:133 move second child to first child (temp uint) +0:133 'WidthU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child (temp uint) +0:133 'HeightU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 1 (const int) +0:133 move second child to first child (temp uint) +0:133 'ElementsU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 2 (const int) +0:134 Sequence +0:134 move second child to first child (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 textureSize (temp 3-component vector of uint) +0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 Constant: +0:134 6 (const uint) +0:134 move second child to first child (temp uint) +0:134 'WidthU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 move second child to first child (temp uint) +0:134 'HeightU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 1 (const int) +0:134 move second child to first child (temp uint) +0:134 'ElementsU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 2 (const int) +0:134 move second child to first child (temp uint) +0:134 'NumberOfLevelsU' (temp uint) +0:134 textureQueryLevels (temp uint) +0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:137 Sequence +0:137 move second child to first child (temp 3-component vector of uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 textureSize (temp 3-component vector of uint) +0:137 'g_tTexcdu4a' (uniform utextureCubeArray) +0:137 move second child to first child (temp uint) +0:137 'WidthU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child (temp uint) +0:137 'HeightU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 1 (const int) +0:137 move second child to first child (temp uint) +0:137 'ElementsU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 2 (const int) +0:138 Sequence +0:138 move second child to first child (temp 3-component vector of uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 textureSize (temp 3-component vector of uint) +0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:138 Constant: +0:138 6 (const uint) +0:138 move second child to first child (temp uint) +0:138 'WidthU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 0 (const int) +0:138 move second child to first child (temp uint) +0:138 'HeightU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 1 (const int) +0:138 move second child to first child (temp uint) +0:138 'ElementsU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 2 (const int) +0:138 move second child to first child (temp uint) +0:138 'NumberOfLevelsU' (temp uint) +0:138 textureQueryLevels (temp uint) +0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:234 move second child to first child (temp float) +0:234 Depth: direct index for structure (temp float FragDepth) +0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:234 Constant: +0:234 1 (const int) +0:234 Constant: +0:234 1.000000 +0:236 Branch: Return with expression +0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:57 Sequence +0:57 move second child to first child (temp uint) +0:57 'sizeQueryTemp' (temp uint) +0:57 textureSize (temp uint) +0:57 'g_tTex1df4' (uniform texture1D) +0:57 move second child to first child (temp uint) +0:57 'WidthU' (temp uint) +0:57 'sizeQueryTemp' (temp uint) +0:58 Sequence +0:58 move second child to first child (temp uint) +0:58 'sizeQueryTemp' (temp uint) +0:58 textureSize (temp uint) +0:58 'g_tTex1df4' (uniform texture1D) +0:58 Constant: +0:58 6 (const uint) +0:58 move second child to first child (temp uint) +0:58 'WidthU' (temp uint) +0:58 'sizeQueryTemp' (temp uint) +0:58 move second child to first child (temp uint) +0:58 'NumberOfLevelsU' (temp uint) +0:58 textureQueryLevels (temp uint) +0:58 'g_tTex1df4' (uniform texture1D) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'sizeQueryTemp' (temp uint) +0:61 textureSize (temp uint) +0:61 'g_tTex1di4' (uniform itexture1D) +0:61 move second child to first child (temp uint) +0:61 'WidthU' (temp uint) +0:61 'sizeQueryTemp' (temp uint) +0:62 Sequence +0:62 move second child to first child (temp uint) +0:62 'sizeQueryTemp' (temp uint) +0:62 textureSize (temp uint) +0:62 'g_tTex1di4' (uniform itexture1D) +0:62 Constant: +0:62 6 (const uint) +0:62 move second child to first child (temp uint) +0:62 'WidthU' (temp uint) +0:62 'sizeQueryTemp' (temp uint) +0:62 move second child to first child (temp uint) +0:62 'NumberOfLevelsU' (temp uint) +0:62 textureQueryLevels (temp uint) +0:62 'g_tTex1di4' (uniform itexture1D) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 textureSize (temp uint) +0:65 'g_tTex1du4' (uniform utexture1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'sizeQueryTemp' (temp uint) +0:66 textureSize (temp uint) +0:66 'g_tTex1du4' (uniform utexture1D) +0:66 Constant: +0:66 6 (const uint) +0:66 move second child to first child (temp uint) +0:66 'WidthU' (temp uint) +0:66 'sizeQueryTemp' (temp uint) +0:66 move second child to first child (temp uint) +0:66 'NumberOfLevelsU' (temp uint) +0:66 textureQueryLevels (temp uint) +0:66 'g_tTex1du4' (uniform utexture1D) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 textureSize (temp 2-component vector of uint) +0:69 'g_tTex1df4a' (uniform texture1DArray) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 direct index (temp uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 Constant: +0:69 0 (const int) +0:69 move second child to first child (temp uint) +0:69 'ElementsU' (temp uint) +0:69 direct index (temp uint) +0:69 'sizeQueryTemp' (temp 2-component vector of uint) +0:69 Constant: +0:69 1 (const int) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 textureSize (temp 2-component vector of uint) +0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 Constant: +0:70 6 (const uint) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 direct index (temp uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp uint) +0:70 'ElementsU' (temp uint) +0:70 direct index (temp uint) +0:70 'sizeQueryTemp' (temp 2-component vector of uint) +0:70 Constant: +0:70 1 (const int) +0:70 move second child to first child (temp uint) +0:70 'NumberOfLevelsU' (temp uint) +0:70 textureQueryLevels (temp uint) +0:70 'g_tTex1df4a' (uniform texture1DArray) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 textureSize (temp 2-component vector of uint) +0:73 'g_tTex1di4a' (uniform itexture1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 textureSize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 Constant: +0:74 6 (const uint) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:74 move second child to first child (temp uint) +0:74 'NumberOfLevelsU' (temp uint) +0:74 textureQueryLevels (temp uint) +0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 textureSize (temp 2-component vector of uint) +0:77 'g_tTex1du4a' (uniform utexture1DArray) +0:77 move second child to first child (temp uint) +0:77 'WidthU' (temp uint) +0:77 direct index (temp uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 Constant: +0:77 0 (const int) +0:77 move second child to first child (temp uint) +0:77 'ElementsU' (temp uint) +0:77 direct index (temp uint) +0:77 'sizeQueryTemp' (temp 2-component vector of uint) +0:77 Constant: +0:77 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 textureSize (temp 2-component vector of uint) +0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 Constant: +0:78 6 (const uint) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'ElementsU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:78 move second child to first child (temp uint) +0:78 'NumberOfLevelsU' (temp uint) +0:78 textureQueryLevels (temp uint) +0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:81 Sequence +0:81 move second child to first child (temp 2-component vector of uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 textureSize (temp 2-component vector of uint) +0:81 'g_tTex2df4' (uniform texture2D) +0:81 move second child to first child (temp uint) +0:81 'WidthU' (temp uint) +0:81 direct index (temp uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 Constant: +0:81 0 (const int) +0:81 move second child to first child (temp uint) +0:81 'HeightU' (temp uint) +0:81 direct index (temp uint) +0:81 'sizeQueryTemp' (temp 2-component vector of uint) +0:81 Constant: +0:81 1 (const int) +0:82 Sequence +0:82 move second child to first child (temp 2-component vector of uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 textureSize (temp 2-component vector of uint) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 Constant: +0:82 6 (const uint) +0:82 move second child to first child (temp uint) +0:82 'WidthU' (temp uint) +0:82 direct index (temp uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 Constant: +0:82 0 (const int) +0:82 move second child to first child (temp uint) +0:82 'HeightU' (temp uint) +0:82 direct index (temp uint) +0:82 'sizeQueryTemp' (temp 2-component vector of uint) +0:82 Constant: +0:82 1 (const int) +0:82 move second child to first child (temp uint) +0:82 'NumberOfLevelsU' (temp uint) +0:82 textureQueryLevels (temp uint) +0:82 'g_tTex2df4' (uniform texture2D) +0:85 Sequence +0:85 move second child to first child (temp 2-component vector of uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 textureSize (temp 2-component vector of uint) +0:85 'g_tTex2di4' (uniform itexture2D) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 2-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:86 Sequence +0:86 move second child to first child (temp 2-component vector of uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 textureSize (temp 2-component vector of uint) +0:86 'g_tTex2di4' (uniform itexture2D) +0:86 Constant: +0:86 6 (const uint) +0:86 move second child to first child (temp uint) +0:86 'WidthU' (temp uint) +0:86 direct index (temp uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 Constant: +0:86 0 (const int) +0:86 move second child to first child (temp uint) +0:86 'HeightU' (temp uint) +0:86 direct index (temp uint) +0:86 'sizeQueryTemp' (temp 2-component vector of uint) +0:86 Constant: +0:86 1 (const int) +0:86 move second child to first child (temp uint) +0:86 'NumberOfLevelsU' (temp uint) +0:86 textureQueryLevels (temp uint) +0:86 'g_tTex2di4' (uniform itexture2D) +0:89 Sequence +0:89 move second child to first child (temp 2-component vector of uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 textureSize (temp 2-component vector of uint) +0:89 'g_tTex2du4' (uniform utexture2D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 2-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:90 Sequence +0:90 move second child to first child (temp 2-component vector of uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 textureSize (temp 2-component vector of uint) +0:90 'g_tTex2du4' (uniform utexture2D) +0:90 Constant: +0:90 6 (const uint) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 2-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'NumberOfLevelsU' (temp uint) +0:90 textureQueryLevels (temp uint) +0:90 'g_tTex2du4' (uniform utexture2D) +0:93 Sequence +0:93 move second child to first child (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 textureSize (temp 3-component vector of uint) +0:93 'g_tTex2df4a' (uniform texture2DArray) +0:93 move second child to first child (temp uint) +0:93 'WidthU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 0 (const int) +0:93 move second child to first child (temp uint) +0:93 'HeightU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 1 (const int) +0:93 move second child to first child (temp uint) +0:93 'ElementsU' (temp uint) +0:93 direct index (temp uint) +0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 Constant: +0:93 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 textureSize (temp 3-component vector of uint) +0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 Constant: +0:94 6 (const uint) +0:94 move second child to first child (temp uint) +0:94 'WidthU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 0 (const int) +0:94 move second child to first child (temp uint) +0:94 'HeightU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 1 (const int) +0:94 move second child to first child (temp uint) +0:94 'ElementsU' (temp uint) +0:94 direct index (temp uint) +0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 Constant: +0:94 2 (const int) +0:94 move second child to first child (temp uint) +0:94 'NumberOfLevelsU' (temp uint) +0:94 textureQueryLevels (temp uint) +0:94 'g_tTex2df4a' (uniform texture2DArray) +0:97 Sequence +0:97 move second child to first child (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 textureSize (temp 3-component vector of uint) +0:97 'g_tTex2di4a' (uniform itexture2DArray) +0:97 move second child to first child (temp uint) +0:97 'WidthU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 0 (const int) +0:97 move second child to first child (temp uint) +0:97 'HeightU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 1 (const int) +0:97 move second child to first child (temp uint) +0:97 'ElementsU' (temp uint) +0:97 direct index (temp uint) +0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 Constant: +0:97 2 (const int) +0:98 Sequence +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 textureSize (temp 3-component vector of uint) +0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 Constant: +0:98 6 (const uint) +0:98 move second child to first child (temp uint) +0:98 'WidthU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 0 (const int) +0:98 move second child to first child (temp uint) +0:98 'HeightU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 1 (const int) +0:98 move second child to first child (temp uint) +0:98 'ElementsU' (temp uint) +0:98 direct index (temp uint) +0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 Constant: +0:98 2 (const int) +0:98 move second child to first child (temp uint) +0:98 'NumberOfLevelsU' (temp uint) +0:98 textureQueryLevels (temp uint) +0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:101 Sequence +0:101 move second child to first child (temp 3-component vector of uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 textureSize (temp 3-component vector of uint) +0:101 'g_tTex2du4a' (uniform utexture2DArray) +0:101 move second child to first child (temp uint) +0:101 'WidthU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 0 (const int) +0:101 move second child to first child (temp uint) +0:101 'HeightU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 1 (const int) +0:101 move second child to first child (temp uint) +0:101 'ElementsU' (temp uint) +0:101 direct index (temp uint) +0:101 'sizeQueryTemp' (temp 3-component vector of uint) +0:101 Constant: +0:101 2 (const int) +0:102 Sequence +0:102 move second child to first child (temp 3-component vector of uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 textureSize (temp 3-component vector of uint) +0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 Constant: +0:102 6 (const uint) +0:102 move second child to first child (temp uint) +0:102 'WidthU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 0 (const int) +0:102 move second child to first child (temp uint) +0:102 'HeightU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 1 (const int) +0:102 move second child to first child (temp uint) +0:102 'ElementsU' (temp uint) +0:102 direct index (temp uint) +0:102 'sizeQueryTemp' (temp 3-component vector of uint) +0:102 Constant: +0:102 2 (const int) +0:102 move second child to first child (temp uint) +0:102 'NumberOfLevelsU' (temp uint) +0:102 textureQueryLevels (temp uint) +0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:105 Sequence +0:105 move second child to first child (temp 3-component vector of uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 textureSize (temp 3-component vector of uint) +0:105 'g_tTex3df4' (uniform texture3D) +0:105 move second child to first child (temp uint) +0:105 'WidthU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 0 (const int) +0:105 move second child to first child (temp uint) +0:105 'HeightU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 1 (const int) +0:105 move second child to first child (temp uint) +0:105 'DepthU' (temp uint) +0:105 direct index (temp uint) +0:105 'sizeQueryTemp' (temp 3-component vector of uint) +0:105 Constant: +0:105 2 (const int) +0:106 Sequence +0:106 move second child to first child (temp 3-component vector of uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 textureSize (temp 3-component vector of uint) +0:106 'g_tTex3df4' (uniform texture3D) +0:106 Constant: +0:106 6 (const uint) +0:106 move second child to first child (temp uint) +0:106 'WidthU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 0 (const int) +0:106 move second child to first child (temp uint) +0:106 'HeightU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 1 (const int) +0:106 move second child to first child (temp uint) +0:106 'DepthU' (temp uint) +0:106 direct index (temp uint) +0:106 'sizeQueryTemp' (temp 3-component vector of uint) +0:106 Constant: +0:106 2 (const int) +0:106 move second child to first child (temp uint) +0:106 'NumberOfLevelsU' (temp uint) +0:106 textureQueryLevels (temp uint) +0:106 'g_tTex3df4' (uniform texture3D) +0:109 Sequence +0:109 move second child to first child (temp 3-component vector of uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 textureSize (temp 3-component vector of uint) +0:109 'g_tTex3di4' (uniform itexture3D) +0:109 move second child to first child (temp uint) +0:109 'WidthU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp uint) +0:109 'HeightU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 1 (const int) +0:109 move second child to first child (temp uint) +0:109 'DepthU' (temp uint) +0:109 direct index (temp uint) +0:109 'sizeQueryTemp' (temp 3-component vector of uint) +0:109 Constant: +0:109 2 (const int) +0:110 Sequence +0:110 move second child to first child (temp 3-component vector of uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 textureSize (temp 3-component vector of uint) +0:110 'g_tTex3di4' (uniform itexture3D) +0:110 Constant: +0:110 6 (const uint) +0:110 move second child to first child (temp uint) +0:110 'WidthU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 0 (const int) +0:110 move second child to first child (temp uint) +0:110 'HeightU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 1 (const int) +0:110 move second child to first child (temp uint) +0:110 'DepthU' (temp uint) +0:110 direct index (temp uint) +0:110 'sizeQueryTemp' (temp 3-component vector of uint) +0:110 Constant: +0:110 2 (const int) +0:110 move second child to first child (temp uint) +0:110 'NumberOfLevelsU' (temp uint) +0:110 textureQueryLevels (temp uint) +0:110 'g_tTex3di4' (uniform itexture3D) +0:113 Sequence +0:113 move second child to first child (temp 3-component vector of uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 textureSize (temp 3-component vector of uint) +0:113 'g_tTex3du4' (uniform utexture3D) +0:113 move second child to first child (temp uint) +0:113 'WidthU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 0 (const int) +0:113 move second child to first child (temp uint) +0:113 'HeightU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 1 (const int) +0:113 move second child to first child (temp uint) +0:113 'DepthU' (temp uint) +0:113 direct index (temp uint) +0:113 'sizeQueryTemp' (temp 3-component vector of uint) +0:113 Constant: +0:113 2 (const int) +0:114 Sequence +0:114 move second child to first child (temp 3-component vector of uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 textureSize (temp 3-component vector of uint) +0:114 'g_tTex3du4' (uniform utexture3D) +0:114 Constant: +0:114 6 (const uint) +0:114 move second child to first child (temp uint) +0:114 'WidthU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 0 (const int) +0:114 move second child to first child (temp uint) +0:114 'HeightU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 1 (const int) +0:114 move second child to first child (temp uint) +0:114 'DepthU' (temp uint) +0:114 direct index (temp uint) +0:114 'sizeQueryTemp' (temp 3-component vector of uint) +0:114 Constant: +0:114 2 (const int) +0:114 move second child to first child (temp uint) +0:114 'NumberOfLevelsU' (temp uint) +0:114 textureQueryLevels (temp uint) +0:114 'g_tTex3du4' (uniform utexture3D) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 textureSize (temp 2-component vector of uint) +0:117 'g_tTexcdf4' (uniform textureCube) +0:117 move second child to first child (temp uint) +0:117 'WidthU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 Constant: +0:117 0 (const int) +0:117 move second child to first child (temp uint) +0:117 'HeightU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 Constant: +0:117 1 (const int) +0:118 Sequence +0:118 move second child to first child (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 textureSize (temp 2-component vector of uint) +0:118 'g_tTexcdf4' (uniform textureCube) +0:118 Constant: +0:118 6 (const uint) +0:118 move second child to first child (temp uint) +0:118 'WidthU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 Constant: +0:118 0 (const int) +0:118 move second child to first child (temp uint) +0:118 'HeightU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 Constant: +0:118 1 (const int) +0:118 move second child to first child (temp uint) +0:118 'NumberOfLevelsU' (temp uint) +0:118 textureQueryLevels (temp uint) +0:118 'g_tTexcdf4' (uniform textureCube) +0:121 Sequence +0:121 move second child to first child (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 textureSize (temp 2-component vector of uint) +0:121 'g_tTexcdi4' (uniform itextureCube) +0:121 move second child to first child (temp uint) +0:121 'WidthU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 Constant: +0:121 0 (const int) +0:121 move second child to first child (temp uint) +0:121 'HeightU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 Constant: +0:121 1 (const int) +0:122 Sequence +0:122 move second child to first child (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 textureSize (temp 2-component vector of uint) +0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 Constant: +0:122 6 (const uint) +0:122 move second child to first child (temp uint) +0:122 'WidthU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 Constant: +0:122 0 (const int) +0:122 move second child to first child (temp uint) +0:122 'HeightU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 Constant: +0:122 1 (const int) +0:122 move second child to first child (temp uint) +0:122 'NumberOfLevelsU' (temp uint) +0:122 textureQueryLevels (temp uint) +0:122 'g_tTexcdi4' (uniform itextureCube) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 textureSize (temp 2-component vector of uint) +0:125 'g_tTexcdu4' (uniform utextureCube) +0:125 move second child to first child (temp uint) +0:125 'WidthU' (temp uint) +0:125 direct index (temp uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 Constant: +0:125 0 (const int) +0:125 move second child to first child (temp uint) +0:125 'HeightU' (temp uint) +0:125 direct index (temp uint) +0:125 'sizeQueryTemp' (temp 2-component vector of uint) +0:125 Constant: +0:125 1 (const int) +0:126 Sequence +0:126 move second child to first child (temp 2-component vector of uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 textureSize (temp 2-component vector of uint) +0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 Constant: +0:126 6 (const uint) +0:126 move second child to first child (temp uint) +0:126 'WidthU' (temp uint) +0:126 direct index (temp uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 Constant: +0:126 0 (const int) +0:126 move second child to first child (temp uint) +0:126 'HeightU' (temp uint) +0:126 direct index (temp uint) +0:126 'sizeQueryTemp' (temp 2-component vector of uint) +0:126 Constant: +0:126 1 (const int) +0:126 move second child to first child (temp uint) +0:126 'NumberOfLevelsU' (temp uint) +0:126 textureQueryLevels (temp uint) +0:126 'g_tTexcdu4' (uniform utextureCube) +0:129 Sequence +0:129 move second child to first child (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 textureSize (temp 3-component vector of uint) +0:129 'g_tTexcdf4a' (uniform textureCubeArray) +0:129 move second child to first child (temp uint) +0:129 'WidthU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp uint) +0:129 'HeightU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 1 (const int) +0:129 move second child to first child (temp uint) +0:129 'ElementsU' (temp uint) +0:129 direct index (temp uint) +0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 Constant: +0:129 2 (const int) +0:130 Sequence +0:130 move second child to first child (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 textureSize (temp 3-component vector of uint) +0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 Constant: +0:130 6 (const uint) +0:130 move second child to first child (temp uint) +0:130 'WidthU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 0 (const int) +0:130 move second child to first child (temp uint) +0:130 'HeightU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 1 (const int) +0:130 move second child to first child (temp uint) +0:130 'ElementsU' (temp uint) +0:130 direct index (temp uint) +0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 Constant: +0:130 2 (const int) +0:130 move second child to first child (temp uint) +0:130 'NumberOfLevelsU' (temp uint) +0:130 textureQueryLevels (temp uint) +0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:133 Sequence +0:133 move second child to first child (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 textureSize (temp 3-component vector of uint) +0:133 'g_tTexcdi4a' (uniform itextureCubeArray) +0:133 move second child to first child (temp uint) +0:133 'WidthU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 0 (const int) +0:133 move second child to first child (temp uint) +0:133 'HeightU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 1 (const int) +0:133 move second child to first child (temp uint) +0:133 'ElementsU' (temp uint) +0:133 direct index (temp uint) +0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 Constant: +0:133 2 (const int) +0:134 Sequence +0:134 move second child to first child (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 textureSize (temp 3-component vector of uint) +0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 Constant: +0:134 6 (const uint) +0:134 move second child to first child (temp uint) +0:134 'WidthU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 0 (const int) +0:134 move second child to first child (temp uint) +0:134 'HeightU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 1 (const int) +0:134 move second child to first child (temp uint) +0:134 'ElementsU' (temp uint) +0:134 direct index (temp uint) +0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 Constant: +0:134 2 (const int) +0:134 move second child to first child (temp uint) +0:134 'NumberOfLevelsU' (temp uint) +0:134 textureQueryLevels (temp uint) +0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:137 Sequence +0:137 move second child to first child (temp 3-component vector of uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 textureSize (temp 3-component vector of uint) +0:137 'g_tTexcdu4a' (uniform utextureCubeArray) +0:137 move second child to first child (temp uint) +0:137 'WidthU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 0 (const int) +0:137 move second child to first child (temp uint) +0:137 'HeightU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 1 (const int) +0:137 move second child to first child (temp uint) +0:137 'ElementsU' (temp uint) +0:137 direct index (temp uint) +0:137 'sizeQueryTemp' (temp 3-component vector of uint) +0:137 Constant: +0:137 2 (const int) +0:138 Sequence +0:138 move second child to first child (temp 3-component vector of uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 textureSize (temp 3-component vector of uint) +0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:138 Constant: +0:138 6 (const uint) +0:138 move second child to first child (temp uint) +0:138 'WidthU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 0 (const int) +0:138 move second child to first child (temp uint) +0:138 'HeightU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 1 (const int) +0:138 move second child to first child (temp uint) +0:138 'ElementsU' (temp uint) +0:138 direct index (temp uint) +0:138 'sizeQueryTemp' (temp 3-component vector of uint) +0:138 Constant: +0:138 2 (const int) +0:138 move second child to first child (temp uint) +0:138 'NumberOfLevelsU' (temp uint) +0:138 textureQueryLevels (temp uint) +0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:234 move second child to first child (temp float) +0:234 Depth: direct index for structure (temp float FragDepth) +0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:234 Constant: +0:234 1 (const int) +0:234 Constant: +0:234 1.000000 +0:236 Branch: Return with expression +0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 455 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 23 "NumberOfLevelsU" + Name 26 "sizeQueryTemp" + Name 29 "g_tTex1di4" + Name 33 "sizeQueryTemp" + Name 39 "sizeQueryTemp" + Name 42 "g_tTex1du4" + Name 46 "sizeQueryTemp" + Name 54 "sizeQueryTemp" + Name 57 "g_tTex1df4a" + Name 64 "ElementsU" + Name 68 "sizeQueryTemp" + Name 77 "sizeQueryTemp" + Name 80 "g_tTex1di4a" + Name 87 "sizeQueryTemp" + Name 96 "sizeQueryTemp" + Name 99 "g_tTex1du4a" + Name 106 "sizeQueryTemp" + Name 115 "sizeQueryTemp" + Name 118 "g_tTex2df4" + Name 123 "HeightU" + Name 126 "sizeQueryTemp" + Name 135 "sizeQueryTemp" + Name 138 "g_tTex2di4" + Name 145 "sizeQueryTemp" + Name 154 "sizeQueryTemp" + Name 157 "g_tTex2du4" + Name 164 "sizeQueryTemp" + Name 175 "sizeQueryTemp" + Name 178 "g_tTex2df4a" + Name 189 "sizeQueryTemp" + Name 200 "sizeQueryTemp" + Name 203 "g_tTex2di4a" + Name 212 "sizeQueryTemp" + Name 223 "sizeQueryTemp" + Name 226 "g_tTex2du4a" + Name 235 "sizeQueryTemp" + Name 246 "sizeQueryTemp" + Name 249 "g_tTex3df4" + Name 256 "DepthU" + Name 259 "sizeQueryTemp" + Name 270 "sizeQueryTemp" + Name 273 "g_tTex3di4" + Name 282 "sizeQueryTemp" + Name 293 "sizeQueryTemp" + Name 296 "g_tTex3du4" + Name 305 "sizeQueryTemp" + Name 316 "sizeQueryTemp" + Name 319 "g_tTexcdf4" + Name 326 "sizeQueryTemp" + Name 335 "sizeQueryTemp" + Name 338 "g_tTexcdi4" + Name 345 "sizeQueryTemp" + Name 354 "sizeQueryTemp" + Name 357 "g_tTexcdu4" + Name 364 "sizeQueryTemp" + Name 373 "sizeQueryTemp" + Name 376 "g_tTexcdf4a" + Name 385 "sizeQueryTemp" + Name 396 "sizeQueryTemp" + Name 399 "g_tTexcdi4a" + Name 408 "sizeQueryTemp" + Name 419 "sizeQueryTemp" + Name 422 "g_tTexcdu4a" + Name 431 "sizeQueryTemp" + Name 443 "PS_OUTPUT" + MemberName 443(PS_OUTPUT) 0 "Color" + MemberName 443(PS_OUTPUT) 1 "Depth" + Name 445 "psout" + Name 454 "g_sSamp" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex1df4a) DescriptorSet 0 + Decorate 80(g_tTex1di4a) DescriptorSet 0 + Decorate 99(g_tTex1du4a) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 138(g_tTex2di4) DescriptorSet 0 + Decorate 157(g_tTex2du4) DescriptorSet 0 + Decorate 178(g_tTex2df4a) DescriptorSet 0 + Decorate 203(g_tTex2di4a) DescriptorSet 0 + Decorate 226(g_tTex2du4a) DescriptorSet 0 + Decorate 249(g_tTex3df4) DescriptorSet 0 + Decorate 273(g_tTex3di4) DescriptorSet 0 + Decorate 296(g_tTex3du4) DescriptorSet 0 + Decorate 319(g_tTexcdf4) DescriptorSet 0 + Decorate 338(g_tTexcdi4) DescriptorSet 0 + Decorate 357(g_tTexcdu4) DescriptorSet 0 + Decorate 376(g_tTexcdf4a) DescriptorSet 0 + Decorate 399(g_tTexcdi4a) DescriptorSet 0 + Decorate 422(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 443(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 454(g_sSamp) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 20: 6(int) Constant 6 + 27: TypeImage 14(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 40: TypeImage 6(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 52: TypeVector 6(int) 2 + 53: TypePointer Function 52(ivec2) + 55: TypeImage 9(float) 1D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex1df4a): 56(ptr) Variable UniformConstant + 59: TypeVector 14(int) 2 + 61: 6(int) Constant 0 + 65: 6(int) Constant 1 + 78: TypeImage 14(int) 1D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1di4a): 79(ptr) Variable UniformConstant + 97: TypeImage 6(int) 1D array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex1du4a): 98(ptr) Variable UniformConstant + 116: TypeImage 9(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 136: TypeImage 14(int) 2D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex2di4): 137(ptr) Variable UniformConstant + 155: TypeImage 6(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex2du4): 156(ptr) Variable UniformConstant + 173: TypeVector 6(int) 3 + 174: TypePointer Function 173(ivec3) + 176: TypeImage 9(float) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex2df4a): 177(ptr) Variable UniformConstant + 180: TypeVector 14(int) 3 + 186: 6(int) Constant 2 + 201: TypeImage 14(int) 2D array sampled format:Unknown + 202: TypePointer UniformConstant 201 +203(g_tTex2di4a): 202(ptr) Variable UniformConstant + 224: TypeImage 6(int) 2D array sampled format:Unknown + 225: TypePointer UniformConstant 224 +226(g_tTex2du4a): 225(ptr) Variable UniformConstant + 247: TypeImage 9(float) 3D sampled format:Unknown + 248: TypePointer UniformConstant 247 + 249(g_tTex3df4): 248(ptr) Variable UniformConstant + 271: TypeImage 14(int) 3D sampled format:Unknown + 272: TypePointer UniformConstant 271 + 273(g_tTex3di4): 272(ptr) Variable UniformConstant + 294: TypeImage 6(int) 3D sampled format:Unknown + 295: TypePointer UniformConstant 294 + 296(g_tTex3du4): 295(ptr) Variable UniformConstant + 317: TypeImage 9(float) Cube sampled format:Unknown + 318: TypePointer UniformConstant 317 + 319(g_tTexcdf4): 318(ptr) Variable UniformConstant + 336: TypeImage 14(int) Cube sampled format:Unknown + 337: TypePointer UniformConstant 336 + 338(g_tTexcdi4): 337(ptr) Variable UniformConstant + 355: TypeImage 6(int) Cube sampled format:Unknown + 356: TypePointer UniformConstant 355 + 357(g_tTexcdu4): 356(ptr) Variable UniformConstant + 374: TypeImage 9(float) Cube array sampled format:Unknown + 375: TypePointer UniformConstant 374 +376(g_tTexcdf4a): 375(ptr) Variable UniformConstant + 397: TypeImage 14(int) Cube array sampled format:Unknown + 398: TypePointer UniformConstant 397 +399(g_tTexcdi4a): 398(ptr) Variable UniformConstant + 420: TypeImage 6(int) Cube array sampled format:Unknown + 421: TypePointer UniformConstant 420 +422(g_tTexcdu4a): 421(ptr) Variable UniformConstant + 442: TypeVector 9(float) 4 + 443(PS_OUTPUT): TypeStruct 442(fvec4) 9(float) + 444: TypePointer Function 443(PS_OUTPUT) + 446: 14(int) Constant 1 + 447: 9(float) Constant 1065353216 + 448: TypePointer Function 9(float) + 452: TypeSampler + 453: TypePointer UniformConstant 452 + 454(g_sSamp): 453(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +23(NumberOfLevelsU): 7(ptr) Variable Function +26(sizeQueryTemp): 7(ptr) Variable Function +33(sizeQueryTemp): 7(ptr) Variable Function +39(sizeQueryTemp): 7(ptr) Variable Function +46(sizeQueryTemp): 7(ptr) Variable Function +54(sizeQueryTemp): 53(ptr) Variable Function + 64(ElementsU): 7(ptr) Variable Function +68(sizeQueryTemp): 53(ptr) Variable Function +77(sizeQueryTemp): 53(ptr) Variable Function +87(sizeQueryTemp): 53(ptr) Variable Function +96(sizeQueryTemp): 53(ptr) Variable Function +106(sizeQueryTemp): 53(ptr) Variable Function +115(sizeQueryTemp): 53(ptr) Variable Function + 123(HeightU): 7(ptr) Variable Function +126(sizeQueryTemp): 53(ptr) Variable Function +135(sizeQueryTemp): 53(ptr) Variable Function +145(sizeQueryTemp): 53(ptr) Variable Function +154(sizeQueryTemp): 53(ptr) Variable Function +164(sizeQueryTemp): 53(ptr) Variable Function +175(sizeQueryTemp): 174(ptr) Variable Function +189(sizeQueryTemp): 174(ptr) Variable Function +200(sizeQueryTemp): 174(ptr) Variable Function +212(sizeQueryTemp): 174(ptr) Variable Function +223(sizeQueryTemp): 174(ptr) Variable Function +235(sizeQueryTemp): 174(ptr) Variable Function +246(sizeQueryTemp): 174(ptr) Variable Function + 256(DepthU): 7(ptr) Variable Function +259(sizeQueryTemp): 174(ptr) Variable Function +270(sizeQueryTemp): 174(ptr) Variable Function +282(sizeQueryTemp): 174(ptr) Variable Function +293(sizeQueryTemp): 174(ptr) Variable Function +305(sizeQueryTemp): 174(ptr) Variable Function +316(sizeQueryTemp): 53(ptr) Variable Function +326(sizeQueryTemp): 53(ptr) Variable Function +335(sizeQueryTemp): 53(ptr) Variable Function +345(sizeQueryTemp): 53(ptr) Variable Function +354(sizeQueryTemp): 53(ptr) Variable Function +364(sizeQueryTemp): 53(ptr) Variable Function +373(sizeQueryTemp): 174(ptr) Variable Function +385(sizeQueryTemp): 174(ptr) Variable Function +396(sizeQueryTemp): 174(ptr) Variable Function +408(sizeQueryTemp): 174(ptr) Variable Function +419(sizeQueryTemp): 174(ptr) Variable Function +431(sizeQueryTemp): 174(ptr) Variable Function + 445(psout): 444(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 19: 10 Load 12(g_tTex1df4) + 21: 14(int) ImageQuerySizeLod 19 20 + Store 18(sizeQueryTemp) 21 + 22: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 22 + 24: 10 Load 12(g_tTex1df4) + 25: 14(int) ImageQueryLevels 24 + Store 23(NumberOfLevelsU) 25 + 30: 27 Load 29(g_tTex1di4) + 31: 14(int) ImageQuerySize 30 + Store 26(sizeQueryTemp) 31 + 32: 6(int) Load 26(sizeQueryTemp) + Store 16(WidthU) 32 + 34: 27 Load 29(g_tTex1di4) + 35: 14(int) ImageQuerySizeLod 34 20 + Store 33(sizeQueryTemp) 35 + 36: 6(int) Load 33(sizeQueryTemp) + Store 16(WidthU) 36 + 37: 27 Load 29(g_tTex1di4) + 38: 14(int) ImageQueryLevels 37 + Store 23(NumberOfLevelsU) 38 + 43: 40 Load 42(g_tTex1du4) + 44: 14(int) ImageQuerySize 43 + Store 39(sizeQueryTemp) 44 + 45: 6(int) Load 39(sizeQueryTemp) + Store 16(WidthU) 45 + 47: 40 Load 42(g_tTex1du4) + 48: 14(int) ImageQuerySizeLod 47 20 + Store 46(sizeQueryTemp) 48 + 49: 6(int) Load 46(sizeQueryTemp) + Store 16(WidthU) 49 + 50: 40 Load 42(g_tTex1du4) + 51: 14(int) ImageQueryLevels 50 + Store 23(NumberOfLevelsU) 51 + 58: 55 Load 57(g_tTex1df4a) + 60: 59(ivec2) ImageQuerySize 58 + Store 54(sizeQueryTemp) 60 + 62: 7(ptr) AccessChain 54(sizeQueryTemp) 61 + 63: 6(int) Load 62 + Store 16(WidthU) 63 + 66: 7(ptr) AccessChain 54(sizeQueryTemp) 65 + 67: 6(int) Load 66 + Store 64(ElementsU) 67 + 69: 55 Load 57(g_tTex1df4a) + 70: 59(ivec2) ImageQuerySizeLod 69 20 + Store 68(sizeQueryTemp) 70 + 71: 7(ptr) AccessChain 68(sizeQueryTemp) 61 + 72: 6(int) Load 71 + Store 16(WidthU) 72 + 73: 7(ptr) AccessChain 68(sizeQueryTemp) 65 + 74: 6(int) Load 73 + Store 64(ElementsU) 74 + 75: 55 Load 57(g_tTex1df4a) + 76: 14(int) ImageQueryLevels 75 + Store 23(NumberOfLevelsU) 76 + 81: 78 Load 80(g_tTex1di4a) + 82: 59(ivec2) ImageQuerySize 81 + Store 77(sizeQueryTemp) 82 + 83: 7(ptr) AccessChain 77(sizeQueryTemp) 61 + 84: 6(int) Load 83 + Store 16(WidthU) 84 + 85: 7(ptr) AccessChain 77(sizeQueryTemp) 65 + 86: 6(int) Load 85 + Store 64(ElementsU) 86 + 88: 78 Load 80(g_tTex1di4a) + 89: 59(ivec2) ImageQuerySizeLod 88 20 + Store 87(sizeQueryTemp) 89 + 90: 7(ptr) AccessChain 87(sizeQueryTemp) 61 + 91: 6(int) Load 90 + Store 16(WidthU) 91 + 92: 7(ptr) AccessChain 87(sizeQueryTemp) 65 + 93: 6(int) Load 92 + Store 64(ElementsU) 93 + 94: 78 Load 80(g_tTex1di4a) + 95: 14(int) ImageQueryLevels 94 + Store 23(NumberOfLevelsU) 95 + 100: 97 Load 99(g_tTex1du4a) + 101: 59(ivec2) ImageQuerySize 100 + Store 96(sizeQueryTemp) 101 + 102: 7(ptr) AccessChain 96(sizeQueryTemp) 61 + 103: 6(int) Load 102 + Store 16(WidthU) 103 + 104: 7(ptr) AccessChain 96(sizeQueryTemp) 65 + 105: 6(int) Load 104 + Store 64(ElementsU) 105 + 107: 97 Load 99(g_tTex1du4a) + 108: 59(ivec2) ImageQuerySizeLod 107 20 + Store 106(sizeQueryTemp) 108 + 109: 7(ptr) AccessChain 106(sizeQueryTemp) 61 + 110: 6(int) Load 109 + Store 16(WidthU) 110 + 111: 7(ptr) AccessChain 106(sizeQueryTemp) 65 + 112: 6(int) Load 111 + Store 64(ElementsU) 112 + 113: 97 Load 99(g_tTex1du4a) + 114: 14(int) ImageQueryLevels 113 + Store 23(NumberOfLevelsU) 114 + 119: 116 Load 118(g_tTex2df4) + 120: 59(ivec2) ImageQuerySize 119 + Store 115(sizeQueryTemp) 120 + 121: 7(ptr) AccessChain 115(sizeQueryTemp) 61 + 122: 6(int) Load 121 + Store 16(WidthU) 122 + 124: 7(ptr) AccessChain 115(sizeQueryTemp) 65 + 125: 6(int) Load 124 + Store 123(HeightU) 125 + 127: 116 Load 118(g_tTex2df4) + 128: 59(ivec2) ImageQuerySizeLod 127 20 + Store 126(sizeQueryTemp) 128 + 129: 7(ptr) AccessChain 126(sizeQueryTemp) 61 + 130: 6(int) Load 129 + Store 16(WidthU) 130 + 131: 7(ptr) AccessChain 126(sizeQueryTemp) 65 + 132: 6(int) Load 131 + Store 123(HeightU) 132 + 133: 116 Load 118(g_tTex2df4) + 134: 14(int) ImageQueryLevels 133 + Store 23(NumberOfLevelsU) 134 + 139: 136 Load 138(g_tTex2di4) + 140: 59(ivec2) ImageQuerySize 139 + Store 135(sizeQueryTemp) 140 + 141: 7(ptr) AccessChain 135(sizeQueryTemp) 61 + 142: 6(int) Load 141 + Store 16(WidthU) 142 + 143: 7(ptr) AccessChain 135(sizeQueryTemp) 65 + 144: 6(int) Load 143 + Store 123(HeightU) 144 + 146: 136 Load 138(g_tTex2di4) + 147: 59(ivec2) ImageQuerySizeLod 146 20 + Store 145(sizeQueryTemp) 147 + 148: 7(ptr) AccessChain 145(sizeQueryTemp) 61 + 149: 6(int) Load 148 + Store 16(WidthU) 149 + 150: 7(ptr) AccessChain 145(sizeQueryTemp) 65 + 151: 6(int) Load 150 + Store 123(HeightU) 151 + 152: 136 Load 138(g_tTex2di4) + 153: 14(int) ImageQueryLevels 152 + Store 23(NumberOfLevelsU) 153 + 158: 155 Load 157(g_tTex2du4) + 159: 59(ivec2) ImageQuerySize 158 + Store 154(sizeQueryTemp) 159 + 160: 7(ptr) AccessChain 154(sizeQueryTemp) 61 + 161: 6(int) Load 160 + Store 16(WidthU) 161 + 162: 7(ptr) AccessChain 154(sizeQueryTemp) 65 + 163: 6(int) Load 162 + Store 123(HeightU) 163 + 165: 155 Load 157(g_tTex2du4) + 166: 59(ivec2) ImageQuerySizeLod 165 20 + Store 164(sizeQueryTemp) 166 + 167: 7(ptr) AccessChain 164(sizeQueryTemp) 61 + 168: 6(int) Load 167 + Store 16(WidthU) 168 + 169: 7(ptr) AccessChain 164(sizeQueryTemp) 65 + 170: 6(int) Load 169 + Store 123(HeightU) 170 + 171: 155 Load 157(g_tTex2du4) + 172: 14(int) ImageQueryLevels 171 + Store 23(NumberOfLevelsU) 172 + 179: 176 Load 178(g_tTex2df4a) + 181: 180(ivec3) ImageQuerySize 179 + Store 175(sizeQueryTemp) 181 + 182: 7(ptr) AccessChain 175(sizeQueryTemp) 61 + 183: 6(int) Load 182 + Store 16(WidthU) 183 + 184: 7(ptr) AccessChain 175(sizeQueryTemp) 65 + 185: 6(int) Load 184 + Store 123(HeightU) 185 + 187: 7(ptr) AccessChain 175(sizeQueryTemp) 186 + 188: 6(int) Load 187 + Store 64(ElementsU) 188 + 190: 176 Load 178(g_tTex2df4a) + 191: 180(ivec3) ImageQuerySizeLod 190 20 + Store 189(sizeQueryTemp) 191 + 192: 7(ptr) AccessChain 189(sizeQueryTemp) 61 + 193: 6(int) Load 192 + Store 16(WidthU) 193 + 194: 7(ptr) AccessChain 189(sizeQueryTemp) 65 + 195: 6(int) Load 194 + Store 123(HeightU) 195 + 196: 7(ptr) AccessChain 189(sizeQueryTemp) 186 + 197: 6(int) Load 196 + Store 64(ElementsU) 197 + 198: 176 Load 178(g_tTex2df4a) + 199: 14(int) ImageQueryLevels 198 + Store 23(NumberOfLevelsU) 199 + 204: 201 Load 203(g_tTex2di4a) + 205: 180(ivec3) ImageQuerySize 204 + Store 200(sizeQueryTemp) 205 + 206: 7(ptr) AccessChain 200(sizeQueryTemp) 61 + 207: 6(int) Load 206 + Store 16(WidthU) 207 + 208: 7(ptr) AccessChain 200(sizeQueryTemp) 65 + 209: 6(int) Load 208 + Store 123(HeightU) 209 + 210: 7(ptr) AccessChain 200(sizeQueryTemp) 186 + 211: 6(int) Load 210 + Store 64(ElementsU) 211 + 213: 201 Load 203(g_tTex2di4a) + 214: 180(ivec3) ImageQuerySizeLod 213 20 + Store 212(sizeQueryTemp) 214 + 215: 7(ptr) AccessChain 212(sizeQueryTemp) 61 + 216: 6(int) Load 215 + Store 16(WidthU) 216 + 217: 7(ptr) AccessChain 212(sizeQueryTemp) 65 + 218: 6(int) Load 217 + Store 123(HeightU) 218 + 219: 7(ptr) AccessChain 212(sizeQueryTemp) 186 + 220: 6(int) Load 219 + Store 64(ElementsU) 220 + 221: 201 Load 203(g_tTex2di4a) + 222: 14(int) ImageQueryLevels 221 + Store 23(NumberOfLevelsU) 222 + 227: 224 Load 226(g_tTex2du4a) + 228: 180(ivec3) ImageQuerySize 227 + Store 223(sizeQueryTemp) 228 + 229: 7(ptr) AccessChain 223(sizeQueryTemp) 61 + 230: 6(int) Load 229 + Store 16(WidthU) 230 + 231: 7(ptr) AccessChain 223(sizeQueryTemp) 65 + 232: 6(int) Load 231 + Store 123(HeightU) 232 + 233: 7(ptr) AccessChain 223(sizeQueryTemp) 186 + 234: 6(int) Load 233 + Store 64(ElementsU) 234 + 236: 224 Load 226(g_tTex2du4a) + 237: 180(ivec3) ImageQuerySizeLod 236 20 + Store 235(sizeQueryTemp) 237 + 238: 7(ptr) AccessChain 235(sizeQueryTemp) 61 + 239: 6(int) Load 238 + Store 16(WidthU) 239 + 240: 7(ptr) AccessChain 235(sizeQueryTemp) 65 + 241: 6(int) Load 240 + Store 123(HeightU) 241 + 242: 7(ptr) AccessChain 235(sizeQueryTemp) 186 + 243: 6(int) Load 242 + Store 64(ElementsU) 243 + 244: 224 Load 226(g_tTex2du4a) + 245: 14(int) ImageQueryLevels 244 + Store 23(NumberOfLevelsU) 245 + 250: 247 Load 249(g_tTex3df4) + 251: 180(ivec3) ImageQuerySize 250 + Store 246(sizeQueryTemp) 251 + 252: 7(ptr) AccessChain 246(sizeQueryTemp) 61 + 253: 6(int) Load 252 + Store 16(WidthU) 253 + 254: 7(ptr) AccessChain 246(sizeQueryTemp) 65 + 255: 6(int) Load 254 + Store 123(HeightU) 255 + 257: 7(ptr) AccessChain 246(sizeQueryTemp) 186 + 258: 6(int) Load 257 + Store 256(DepthU) 258 + 260: 247 Load 249(g_tTex3df4) + 261: 180(ivec3) ImageQuerySizeLod 260 20 + Store 259(sizeQueryTemp) 261 + 262: 7(ptr) AccessChain 259(sizeQueryTemp) 61 + 263: 6(int) Load 262 + Store 16(WidthU) 263 + 264: 7(ptr) AccessChain 259(sizeQueryTemp) 65 + 265: 6(int) Load 264 + Store 123(HeightU) 265 + 266: 7(ptr) AccessChain 259(sizeQueryTemp) 186 + 267: 6(int) Load 266 + Store 256(DepthU) 267 + 268: 247 Load 249(g_tTex3df4) + 269: 14(int) ImageQueryLevels 268 + Store 23(NumberOfLevelsU) 269 + 274: 271 Load 273(g_tTex3di4) + 275: 180(ivec3) ImageQuerySize 274 + Store 270(sizeQueryTemp) 275 + 276: 7(ptr) AccessChain 270(sizeQueryTemp) 61 + 277: 6(int) Load 276 + Store 16(WidthU) 277 + 278: 7(ptr) AccessChain 270(sizeQueryTemp) 65 + 279: 6(int) Load 278 + Store 123(HeightU) 279 + 280: 7(ptr) AccessChain 270(sizeQueryTemp) 186 + 281: 6(int) Load 280 + Store 256(DepthU) 281 + 283: 271 Load 273(g_tTex3di4) + 284: 180(ivec3) ImageQuerySizeLod 283 20 + Store 282(sizeQueryTemp) 284 + 285: 7(ptr) AccessChain 282(sizeQueryTemp) 61 + 286: 6(int) Load 285 + Store 16(WidthU) 286 + 287: 7(ptr) AccessChain 282(sizeQueryTemp) 65 + 288: 6(int) Load 287 + Store 123(HeightU) 288 + 289: 7(ptr) AccessChain 282(sizeQueryTemp) 186 + 290: 6(int) Load 289 + Store 256(DepthU) 290 + 291: 271 Load 273(g_tTex3di4) + 292: 14(int) ImageQueryLevels 291 + Store 23(NumberOfLevelsU) 292 + 297: 294 Load 296(g_tTex3du4) + 298: 180(ivec3) ImageQuerySize 297 + Store 293(sizeQueryTemp) 298 + 299: 7(ptr) AccessChain 293(sizeQueryTemp) 61 + 300: 6(int) Load 299 + Store 16(WidthU) 300 + 301: 7(ptr) AccessChain 293(sizeQueryTemp) 65 + 302: 6(int) Load 301 + Store 123(HeightU) 302 + 303: 7(ptr) AccessChain 293(sizeQueryTemp) 186 + 304: 6(int) Load 303 + Store 256(DepthU) 304 + 306: 294 Load 296(g_tTex3du4) + 307: 180(ivec3) ImageQuerySizeLod 306 20 + Store 305(sizeQueryTemp) 307 + 308: 7(ptr) AccessChain 305(sizeQueryTemp) 61 + 309: 6(int) Load 308 + Store 16(WidthU) 309 + 310: 7(ptr) AccessChain 305(sizeQueryTemp) 65 + 311: 6(int) Load 310 + Store 123(HeightU) 311 + 312: 7(ptr) AccessChain 305(sizeQueryTemp) 186 + 313: 6(int) Load 312 + Store 256(DepthU) 313 + 314: 294 Load 296(g_tTex3du4) + 315: 14(int) ImageQueryLevels 314 + Store 23(NumberOfLevelsU) 315 + 320: 317 Load 319(g_tTexcdf4) + 321: 59(ivec2) ImageQuerySize 320 + Store 316(sizeQueryTemp) 321 + 322: 7(ptr) AccessChain 316(sizeQueryTemp) 61 + 323: 6(int) Load 322 + Store 16(WidthU) 323 + 324: 7(ptr) AccessChain 316(sizeQueryTemp) 65 + 325: 6(int) Load 324 + Store 123(HeightU) 325 + 327: 317 Load 319(g_tTexcdf4) + 328: 59(ivec2) ImageQuerySizeLod 327 20 + Store 326(sizeQueryTemp) 328 + 329: 7(ptr) AccessChain 326(sizeQueryTemp) 61 + 330: 6(int) Load 329 + Store 16(WidthU) 330 + 331: 7(ptr) AccessChain 326(sizeQueryTemp) 65 + 332: 6(int) Load 331 + Store 123(HeightU) 332 + 333: 317 Load 319(g_tTexcdf4) + 334: 14(int) ImageQueryLevels 333 + Store 23(NumberOfLevelsU) 334 + 339: 336 Load 338(g_tTexcdi4) + 340: 59(ivec2) ImageQuerySize 339 + Store 335(sizeQueryTemp) 340 + 341: 7(ptr) AccessChain 335(sizeQueryTemp) 61 + 342: 6(int) Load 341 + Store 16(WidthU) 342 + 343: 7(ptr) AccessChain 335(sizeQueryTemp) 65 + 344: 6(int) Load 343 + Store 123(HeightU) 344 + 346: 336 Load 338(g_tTexcdi4) + 347: 59(ivec2) ImageQuerySizeLod 346 20 + Store 345(sizeQueryTemp) 347 + 348: 7(ptr) AccessChain 345(sizeQueryTemp) 61 + 349: 6(int) Load 348 + Store 16(WidthU) 349 + 350: 7(ptr) AccessChain 345(sizeQueryTemp) 65 + 351: 6(int) Load 350 + Store 123(HeightU) 351 + 352: 336 Load 338(g_tTexcdi4) + 353: 14(int) ImageQueryLevels 352 + Store 23(NumberOfLevelsU) 353 + 358: 355 Load 357(g_tTexcdu4) + 359: 59(ivec2) ImageQuerySize 358 + Store 354(sizeQueryTemp) 359 + 360: 7(ptr) AccessChain 354(sizeQueryTemp) 61 + 361: 6(int) Load 360 + Store 16(WidthU) 361 + 362: 7(ptr) AccessChain 354(sizeQueryTemp) 65 + 363: 6(int) Load 362 + Store 123(HeightU) 363 + 365: 355 Load 357(g_tTexcdu4) + 366: 59(ivec2) ImageQuerySizeLod 365 20 + Store 364(sizeQueryTemp) 366 + 367: 7(ptr) AccessChain 364(sizeQueryTemp) 61 + 368: 6(int) Load 367 + Store 16(WidthU) 368 + 369: 7(ptr) AccessChain 364(sizeQueryTemp) 65 + 370: 6(int) Load 369 + Store 123(HeightU) 370 + 371: 355 Load 357(g_tTexcdu4) + 372: 14(int) ImageQueryLevels 371 + Store 23(NumberOfLevelsU) 372 + 377: 374 Load 376(g_tTexcdf4a) + 378: 180(ivec3) ImageQuerySize 377 + Store 373(sizeQueryTemp) 378 + 379: 7(ptr) AccessChain 373(sizeQueryTemp) 61 + 380: 6(int) Load 379 + Store 16(WidthU) 380 + 381: 7(ptr) AccessChain 373(sizeQueryTemp) 65 + 382: 6(int) Load 381 + Store 123(HeightU) 382 + 383: 7(ptr) AccessChain 373(sizeQueryTemp) 186 + 384: 6(int) Load 383 + Store 64(ElementsU) 384 + 386: 374 Load 376(g_tTexcdf4a) + 387: 180(ivec3) ImageQuerySizeLod 386 20 + Store 385(sizeQueryTemp) 387 + 388: 7(ptr) AccessChain 385(sizeQueryTemp) 61 + 389: 6(int) Load 388 + Store 16(WidthU) 389 + 390: 7(ptr) AccessChain 385(sizeQueryTemp) 65 + 391: 6(int) Load 390 + Store 123(HeightU) 391 + 392: 7(ptr) AccessChain 385(sizeQueryTemp) 186 + 393: 6(int) Load 392 + Store 64(ElementsU) 393 + 394: 374 Load 376(g_tTexcdf4a) + 395: 14(int) ImageQueryLevels 394 + Store 23(NumberOfLevelsU) 395 + 400: 397 Load 399(g_tTexcdi4a) + 401: 180(ivec3) ImageQuerySize 400 + Store 396(sizeQueryTemp) 401 + 402: 7(ptr) AccessChain 396(sizeQueryTemp) 61 + 403: 6(int) Load 402 + Store 16(WidthU) 403 + 404: 7(ptr) AccessChain 396(sizeQueryTemp) 65 + 405: 6(int) Load 404 + Store 123(HeightU) 405 + 406: 7(ptr) AccessChain 396(sizeQueryTemp) 186 + 407: 6(int) Load 406 + Store 64(ElementsU) 407 + 409: 397 Load 399(g_tTexcdi4a) + 410: 180(ivec3) ImageQuerySizeLod 409 20 + Store 408(sizeQueryTemp) 410 + 411: 7(ptr) AccessChain 408(sizeQueryTemp) 61 + 412: 6(int) Load 411 + Store 16(WidthU) 412 + 413: 7(ptr) AccessChain 408(sizeQueryTemp) 65 + 414: 6(int) Load 413 + Store 123(HeightU) 414 + 415: 7(ptr) AccessChain 408(sizeQueryTemp) 186 + 416: 6(int) Load 415 + Store 64(ElementsU) 416 + 417: 397 Load 399(g_tTexcdi4a) + 418: 14(int) ImageQueryLevels 417 + Store 23(NumberOfLevelsU) 418 + 423: 420 Load 422(g_tTexcdu4a) + 424: 180(ivec3) ImageQuerySize 423 + Store 419(sizeQueryTemp) 424 + 425: 7(ptr) AccessChain 419(sizeQueryTemp) 61 + 426: 6(int) Load 425 + Store 16(WidthU) 426 + 427: 7(ptr) AccessChain 419(sizeQueryTemp) 65 + 428: 6(int) Load 427 + Store 123(HeightU) 428 + 429: 7(ptr) AccessChain 419(sizeQueryTemp) 186 + 430: 6(int) Load 429 + Store 64(ElementsU) 430 + 432: 420 Load 422(g_tTexcdu4a) + 433: 180(ivec3) ImageQuerySizeLod 432 20 + Store 431(sizeQueryTemp) 433 + 434: 7(ptr) AccessChain 431(sizeQueryTemp) 61 + 435: 6(int) Load 434 + Store 16(WidthU) 435 + 436: 7(ptr) AccessChain 431(sizeQueryTemp) 65 + 437: 6(int) Load 436 + Store 123(HeightU) 437 + 438: 7(ptr) AccessChain 431(sizeQueryTemp) 186 + 439: 6(int) Load 438 + Store 64(ElementsU) 439 + 440: 420 Load 422(g_tTexcdu4a) + 441: 14(int) ImageQueryLevels 440 + Store 23(NumberOfLevelsU) 441 + 449: 448(ptr) AccessChain 445(psout) 446 + Store 449 447 + 450:443(PS_OUTPUT) Load 445(psout) + ReturnValue 450 + FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out new file mode 100644 index 00000000..27d4dbe1 --- /dev/null +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -0,0 +1,160 @@ +hlsl.getdimensions.dx10.vert +Shader version: 450 +0:? Sequence +0:28 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:11 Function Parameters: +0:? Sequence +0:21 Sequence +0:21 move second child to first child (temp uint) +0:21 'sizeQueryTemp' (temp uint) +0:21 textureSize (temp uint) +0:21 'g_tTex1df4' (uniform texture1D) +0:21 move second child to first child (temp uint) +0:21 'WidthU' (temp uint) +0:21 'sizeQueryTemp' (temp uint) +0:22 Sequence +0:22 move second child to first child (temp uint) +0:22 'sizeQueryTemp' (temp uint) +0:22 textureSize (temp uint) +0:22 'g_tTex1df4' (uniform texture1D) +0:22 Constant: +0:22 6 (const uint) +0:22 move second child to first child (temp uint) +0:22 'WidthU' (temp uint) +0:22 'sizeQueryTemp' (temp uint) +0:22 move second child to first child (temp uint) +0:22 'NumberOfLevelsU' (temp uint) +0:22 textureQueryLevels (temp uint) +0:22 'g_tTex1df4' (uniform texture1D) +0:24 move second child to first child (temp 4-component vector of float) +0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:24 Constant: +0:24 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:26 Branch: Return with expression +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:28 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:11 Function Parameters: +0:? Sequence +0:21 Sequence +0:21 move second child to first child (temp uint) +0:21 'sizeQueryTemp' (temp uint) +0:21 textureSize (temp uint) +0:21 'g_tTex1df4' (uniform texture1D) +0:21 move second child to first child (temp uint) +0:21 'WidthU' (temp uint) +0:21 'sizeQueryTemp' (temp uint) +0:22 Sequence +0:22 move second child to first child (temp uint) +0:22 'sizeQueryTemp' (temp uint) +0:22 textureSize (temp uint) +0:22 'g_tTex1df4' (uniform texture1D) +0:22 Constant: +0:22 6 (const uint) +0:22 move second child to first child (temp uint) +0:22 'WidthU' (temp uint) +0:22 'sizeQueryTemp' (temp uint) +0:22 move second child to first child (temp uint) +0:22 'NumberOfLevelsU' (temp uint) +0:22 textureQueryLevels (temp uint) +0:22 'g_tTex1df4' (uniform texture1D) +0:24 move second child to first child (temp 4-component vector of float) +0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:24 Constant: +0:24 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:26 Branch: Return with expression +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 40 + + Capability Shader + Capability Sampled1D + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 23 "NumberOfLevelsU" + Name 27 "VS_OUTPUT" + MemberName 27(VS_OUTPUT) 0 "Pos" + Name 29 "vsout" + Name 39 "g_sSamp" + Decorate 12(g_tTex1df4) DescriptorSet 0 + MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 39(g_sSamp) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 20: 6(int) Constant 6 + 26: TypeVector 9(float) 4 + 27(VS_OUTPUT): TypeStruct 26(fvec4) + 28: TypePointer Function 27(VS_OUTPUT) + 30: 14(int) Constant 0 + 31: 9(float) Constant 0 + 32: 26(fvec4) ConstantComposite 31 31 31 31 + 33: TypePointer Function 26(fvec4) + 37: TypeSampler + 38: TypePointer UniformConstant 37 + 39(g_sSamp): 38(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +23(NumberOfLevelsU): 7(ptr) Variable Function + 29(vsout): 28(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 19: 10 Load 12(g_tTex1df4) + 21: 14(int) ImageQuerySizeLod 19 20 + Store 18(sizeQueryTemp) 21 + 22: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 22 + 24: 10 Load 12(g_tTex1df4) + 25: 14(int) ImageQueryLevels 24 + Store 23(NumberOfLevelsU) 25 + 34: 33(ptr) AccessChain 29(vsout) 30 + Store 34 32 + 35:27(VS_OUTPUT) Load 29(vsout) + ReturnValue 35 + FunctionEnd diff --git a/Test/hlsl.getdimensions.dx10.frag b/Test/hlsl.getdimensions.dx10.frag new file mode 100644 index 00000000..1adc5e4f --- /dev/null +++ b/Test/hlsl.getdimensions.dx10.frag @@ -0,0 +1,237 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + float WidthF; + float HeightF; + float ElementsF; + float DepthF; + float NumberOfLevelsF; + float NumberOfSamplesF; + + // 1D, float tx, uint params + g_tTex1df4 . GetDimensions(WidthU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1D, int, uint params + g_tTex1di4 . GetDimensions(WidthU); + g_tTex1di4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1D, uint, uint params + g_tTex1du4 . GetDimensions(WidthU); + g_tTex1du4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + // 1DArray, float tx, uint params + g_tTex1df4a . GetDimensions(WidthU, ElementsU); + g_tTex1df4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 1DArray, int, uint params + g_tTex1di4a . GetDimensions(WidthU, ElementsU); + g_tTex1di4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 1DArray, uint, uint params + g_tTex1du4a . GetDimensions(WidthU, ElementsU); + g_tTex1du4a . GetDimensions(6, WidthU, ElementsU, NumberOfLevelsU); + + // 2D, float tx, uint params + g_tTex2df4 . GetDimensions(WidthU, HeightU); + g_tTex2df4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2D, int, uint params + g_tTex2di4 . GetDimensions(WidthU, HeightU); + g_tTex2di4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2D, uint, uint params + g_tTex2du4 . GetDimensions(WidthU, HeightU); + g_tTex2du4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // 2Darray, float tx, uint params + g_tTex2df4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2df4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 2Darray, int, uint params + g_tTex2di4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2di4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 2Darray, uint, uint params + g_tTex2du4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2du4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // 3D, float tx, uint params + g_tTex3df4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3df4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // 3D, int, uint params + g_tTex3di4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3di4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // 3D, uint, uint params + g_tTex3du4 . GetDimensions(WidthU, HeightU, DepthU); + g_tTex3du4 . GetDimensions(6, WidthU, HeightU, DepthU, NumberOfLevelsU); + + // Cube, float tx, uint params + g_tTexcdf4 . GetDimensions(WidthU, HeightU); + g_tTexcdf4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cube, int, uint params + g_tTexcdi4 . GetDimensions(WidthU, HeightU); + g_tTexcdi4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cube, uint, uint params + g_tTexcdu4 . GetDimensions(WidthU, HeightU); + g_tTexcdu4 . GetDimensions(6, WidthU, HeightU, NumberOfLevelsU); + + // Cubearray, float tx, uint params + g_tTexcdf4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdf4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // Cubearray, int, uint params + g_tTexcdi4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdi4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + // Cubearray, uint, uint params + g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU); + g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + + + // TODO: *************************************************** + // Change this to 1 to enable float overloads when the HLSL + // function overload resolution is fixed. +#define OVERLOAD_FIX 0 + + // TODO: enable when function overload resolution rules are fixed +#if OVERLOAD_FIX + // 1D, float tx, float params + g_tTex1df4 . GetDimensions(WidthF); + g_tTex1df4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1D, int, float params + g_tTex1di4 . GetDimensions(WidthF); + g_tTex1di4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1D, uint, float params + g_tTex1du4 . GetDimensions(WidthF); + g_tTex1du4 . GetDimensions(6, WidthF, NumberOfLevelsF); + + // 1DArray, float tx, float params + g_tTex1df4a . GetDimensions(WidthF, ElementsF); + g_tTex1df4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 1DArray, int, float params + g_tTex1di4a . GetDimensions(WidthF, ElementsF); + g_tTex1di4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 1DArray, uint, float params + g_tTex1du4a . GetDimensions(WidthF, ElementsF); + g_tTex1du4a . GetDimensions(6, WidthF, ElementsF, NumberOfLevelsF); + + // 2D, float tx, float params + g_tTex2df4 . GetDimensions(WidthF, HeightF); + g_tTex2df4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2D, int, float params + g_tTex2di4 . GetDimensions(WidthF, HeightF); + g_tTex2di4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2D, uint, float params + g_tTex2du4 . GetDimensions(WidthF, HeightF); + g_tTex2du4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // 2Darray, float tx, float params + g_tTex2df4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2df4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2Darray, int, float params + g_tTex2di4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2di4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2Darray, uint, float params + g_tTex2du4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTex2du4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 3D, float tx, float params + g_tTex3df4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3df4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // 3D, int, float params + g_tTex3di4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3di4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // 3D, uint, float params + g_tTex3du4 . GetDimensions(WidthF, HeightF, DepthF); + g_tTex3du4 . GetDimensions(6, WidthF, HeightF, DepthF, NumberOfLevelsF); + + // Cube, float tx, float params + g_tTexcdf4 . GetDimensions(WidthF, HeightF); + g_tTexcdf4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cube, int, float params + g_tTexcdi4 . GetDimensions(WidthF, HeightF); + g_tTexcdi4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cube, uint, float params + g_tTexcdu4 . GetDimensions(WidthF, HeightF); + g_tTexcdu4 . GetDimensions(6, WidthF, HeightF, NumberOfLevelsF); + + // Cubearray, float tx, float params + g_tTexcdf4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdf4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // Cubearray, int, float params + g_tTexcdi4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdi4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // Cubearray, uint, float params + g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF); + g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); +#endif // OVERLOAD_FIX + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.getdimensions.dx10.vert b/Test/hlsl.getdimensions.dx10.vert new file mode 100644 index 00000000..0249b1c2 --- /dev/null +++ b/Test/hlsl.getdimensions.dx10.vert @@ -0,0 +1,27 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + uint WidthU; + uint NumberOfLevelsU; + + // Most of the tests are in the hlsl.getdimensions.dx10.frag on the fragment side. + // This is just to establish that GetDimensions appears in the vertex stage. + + // 1D, float tx, uint params + g_tTex1df4 . GetDimensions(WidthU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsU); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index f3ea8950..39a9fff6 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -85,6 +85,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool isPureSampler() const { return sampler; } bool isTexture() const { return !sampler && !image; } bool isShadow() const { return shadow; } + bool isArrayed() const { return arrayed; } void clear() { diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 5a6be40d..c1bfcb9e 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -81,6 +81,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, + {"hlsl.getdimensions.dx10.frag", "main"}, + {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c149b1c2..61fe8f58 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -661,14 +661,14 @@ bool HlslGrammar::acceptSamplerType(TType& type) // read sampler type const EHlslTokenClass samplerType = peek(); - TSamplerDim dim = EsdNone; + // TSamplerDim dim = EsdNone; switch (samplerType) { case EHTokSampler: break; - case EHTokSampler1d: dim = Esd1D; break; - case EHTokSampler2d: dim = Esd2D; break; - case EHTokSampler3d: dim = Esd3D; break; - case EHTokSamplerCube: dim = EsdCube; break; + case EHTokSampler1d: /*dim = Esd1D*/; break; + case EHTokSampler2d: /*dim = Esd2D*/; break; + case EHTokSampler3d: /*dim = Esd3D*/; break; + case EHTokSamplerCube: /*dim = EsdCube*/; break; case EHTokSamplerState: break; case EHTokSamplerComparisonState: break; default: diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b7b70007..25dd7453 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -964,6 +964,105 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodGetDimensions: + { + // AST returns a vector of results, which we break apart component-wise into + // separate values to assign to the HLSL method's outputs, ala: + // tx . GetDimensions(width, height); + // float2 sizeQueryTemp = EOpTextureQuerySize + // width = sizeQueryTemp.X; + // height = sizeQueryTemp.Y; + + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + const TType& texType = argTex->getType(); + + assert(texType.getBasicType() == EbtSampler); + + const TSampler& texSampler = texType.getSampler(); + const TSamplerDim dim = texSampler.dim; + const int numArgs = argAggregate->getSequence().size(); + + int numDims = 0; + + switch (dim) { + case Esd1D: numDims = 1; break; // W + case Esd2D: numDims = 2; break; // W, H + case Esd3D: numDims = 3; break; // W, H, D + case EsdCube: numDims = 2; break; // W, H (cube) + default: + assert(0 && "unhandled texture dimension"); + } + + // Arrayed adds another dimension for the number of array elements + if (texSampler.isArrayed()) + ++numDims; + + // Establish whether we're querying mip levels + const bool mipQuery = numArgs > (numDims + 1); + + // AST assumes integer return. Will be converted to float if required. + TIntermAggregate* sizeQuery = new TIntermAggregate(EOpTextureQuerySize); + sizeQuery->getSequence().push_back(argTex); + // If we're querying an explicit LOD, add the LOD, which is always arg #1 + if (mipQuery) { + TIntermTyped* queryLod = argAggregate->getSequence()[1]->getAsTyped(); + sizeQuery->getSequence().push_back(queryLod); + } + sizeQuery->setType(TType(EbtUint, EvqTemporary, numDims)); + sizeQuery->setLoc(loc); + + // Return value from size query + TVariable* tempArg = makeInternalVariable("sizeQueryTemp", sizeQuery->getType()); + tempArg->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); + + TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, sizeQueryReturn, sizeQuery, loc); + + // Compound statement for assigning outputs + TIntermAggregate* compoundStatement = intermediate.makeAggregate(sizeQueryAssign, loc); + // Index of first output parameter + const int outParamBase = mipQuery ? 2 : 1; + + for (int compNum = 0; compNum < numDims; ++compNum) { + TIntermTyped* indexedOut = nullptr; + + if (numDims > 1) { + TIntermTyped* component = intermediate.addConstantUnion(compNum, loc, true); + indexedOut = intermediate.addIndex(EOpIndexDirect, sizeQueryReturn, component, loc); + indexedOut->setType(TType(EbtUint, EvqTemporary, 1)); + indexedOut->setLoc(loc); + } else { + indexedOut = sizeQueryReturn; + } + + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + compNum]->getAsTyped(); + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, indexedOut, loc); + + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + + // handle mip level parameter + if (mipQuery) { + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); + + TIntermAggregate* levelsQuery = new TIntermAggregate(EOpTextureQueryLevels); + levelsQuery->getSequence().push_back(argTex); + levelsQuery->setType(TType(EbtUint, EvqTemporary, 1)); + levelsQuery->setLoc(loc); + + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, levelsQuery, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + compoundStatement->setType(TType(EbtVoid)); + + node = compoundStatement; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 61b176b8..d318a865 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -272,6 +272,18 @@ inline const char* FindEndOfArg(const char* arg) return *arg == '\0' ? nullptr : arg; } +// If this is a fixed vector size, such as V3, return the size. Else return 0. +int FixedVecSize(const char* arg) +{ + while (!IsEndOfArg(arg)) { + if (isdigit(*arg)) + return *arg - '0'; + ++arg; + } + + return 0; // none found. +} + // Return pointer to beginning of Nth argument specifier in the string. inline const char* NthArg(const char* arg, int n) @@ -571,6 +583,61 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask }, // { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, + // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx + // + // UINT Width + // UINT MipLevel, UINT Width, UINT NumberOfLevels + { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,U,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,F,F", EShLangAll }, + + // UINT Width, UINT Elements + // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,U,U", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,F,F", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + + // UINT Width, UINT Height + // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels + { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,U,U", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,F,F", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + + // UINT Width, UINT Height, UINT Elements + // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,U,U,U", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + + // UINT Width, UINT Height, UINT Depth + // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels + { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,U,U,U", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + + // UINT Width, UINT Height + // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels + { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,U,U", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,F,F", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + + // UINT Width, UINT Height, UINT Elements + // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels + { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,U,U,U", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + + // TODO: GetDimensions for Texture2DMS, Texture2DMSArray + // UINT Width, UINT Height, UINT Samples + // UINT Width, UINT Height, UINT Elements, UINT Samples + // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; @@ -593,7 +660,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); const bool isArrayed = IsTextureArrayed(*argOrder); - const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0; + const int fixedVecSize = FixedVecSize(argOrder); // calculate min and max vector and matrix dimensions int dim0Min = 1; @@ -663,7 +730,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c } } - if (fixedVecSize > 0 || isTexture) // skip over special characters + // skip over special characters + if (isTexture) + ++argOrder; + if (isdigit(argOrder[1])) ++argOrder; } @@ -851,6 +921,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); // symbolTable.relateToOperator("Load", EOpMethodLoad); + symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); } // From 31a51becd29b5f56f75cab9dd8b8635074ada83f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 19 Jul 2016 14:32:52 -0600 Subject: [PATCH 009/217] Fix issue #391: input stack underflow on too few macro arguments. --- Test/badMacroArgs.frag | 4 ++++ Test/baseResults/badMacroArgs.frag.out | 7 +++++++ Test/cppIndent.vert | 2 +- Test/runtests | 7 +++++++ glslang/MachineIndependent/preprocessor/PpContext.h | 4 ++-- glslang/MachineIndependent/preprocessor/PpTokens.cpp | 2 +- 6 files changed, 22 insertions(+), 4 deletions(-) create mode 100755 Test/badMacroArgs.frag create mode 100644 Test/baseResults/badMacroArgs.frag.out diff --git a/Test/badMacroArgs.frag b/Test/badMacroArgs.frag new file mode 100755 index 00000000..7d7de870 --- /dev/null +++ b/Test/badMacroArgs.frag @@ -0,0 +1,4 @@ +#version 400 + +#define m(a) a +m() \ No newline at end of file diff --git a/Test/baseResults/badMacroArgs.frag.out b/Test/baseResults/badMacroArgs.frag.out new file mode 100644 index 00000000..6a46a0f3 --- /dev/null +++ b/Test/baseResults/badMacroArgs.frag.out @@ -0,0 +1,7 @@ +badMacroArgs.frag +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:4: 'macro expansion' : Too few args in Macro m +ERROR: 0:4: '' : syntax error +ERROR: 2 compilation errors. No code generated. + + diff --git a/Test/cppIndent.vert b/Test/cppIndent.vert index 49ec8ba3..41bb12e4 100644 --- a/Test/cppIndent.vert +++ b/Test/cppIndent.vert @@ -58,4 +58,4 @@ sum += 900000000.0; #define FUNC(a,b) a+b // needs to be last test in file due to syntax error -void foo986(){ FUNC( (((2)))), 4); } // ERROR, too many ) +void foo986(){ FUNC( (((2)))), 4); } // ERROR, too few arguments ) diff --git a/Test/runtests b/Test/runtests index ae7ed450..5e777a8b 100755 --- a/Test/runtests +++ b/Test/runtests @@ -18,6 +18,13 @@ fi rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv +# +# special tests +# + +$EXE badMacroArgs.frag > $TARGETDIR/badMacroArgs.frag.out +diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASERROR=1 + # # reflection tests # diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h index 23021e24..013c90e5 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/glslang/MachineIndependent/preprocessor/PpContext.h @@ -218,7 +218,7 @@ protected: TParseContextBase& parseContext; // Get the next token from *stack* of input sources, popping input sources - // that are out of tokens, down until an input sources is found that has a token. + // that are out of tokens, down until an input source is found that has a token. // Return EndOfInput when there are no more tokens to be found by doing this. int scanToken(TPpToken* ppToken) { @@ -226,7 +226,7 @@ protected: while (! inputStack.empty()) { token = inputStack.back()->scan(ppToken); - if (token != EndOfInput) + if (token != EndOfInput || inputStack.empty()) break; popInput(); } diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index 54d495e1..7a1a2447 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -179,7 +179,7 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) if (ltoken > 127) ltoken += 128; switch (ltoken) { - case '#': + case '#': if (lReadByte(pTok) == '#') { parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); From f2cfe27021def4cdbe341a57f90fa9d0c0f1ebe4 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 19 Jul 2016 15:13:47 -0600 Subject: [PATCH 010/217] Fix issue #388. Protect more against error recovery of bad built-in variable redeclarations. --- Test/120.vert | 2 ++ Test/baseResults/120.vert.out | 9 +++++---- glslang/MachineIndependent/ParseHelper.cpp | 13 +++++++------ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Test/120.vert b/Test/120.vert index b7724b43..d2765571 100644 --- a/Test/120.vert +++ b/Test/120.vert @@ -192,6 +192,8 @@ void foo213() gl_ClipDistance[1] = 0.3; // ERROR } +int gl_ModelViewMatrix[] = 0; + // token pasting (ERRORS...) #define mac abc##def diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index a6e833a3..73ced6a1 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -75,10 +75,11 @@ ERROR: 0:191: '=' : cannot convert from 'temp float' to 'temp int' ERROR: 0:192: 'gl_ClipDistance' : undeclared identifier ERROR: 0:192: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector ERROR: 0:192: 'assign' : l-value required (can't modify a const) -ERROR: 0:198: 'token pasting (##)' : not supported for this version or the enabled extensions -ERROR: 0:198: '##' : token pasting not implemented (internal error) -ERROR: 0:198: '' : syntax error -ERROR: 79 compilation errors. No code generated. +ERROR: 0:195: 'gl_ModelViewMatrix' : identifiers starting with "gl_" are reserved +ERROR: 0:200: 'token pasting (##)' : not supported for this version or the enabled extensions +ERROR: 0:200: '##' : token pasting not implemented (internal error) +ERROR: 0:200: '' : syntax error +ERROR: 80 compilation errors. No code generated. Shader version: 120 diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index bd4b3c95..56b326ef 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -3175,12 +3175,13 @@ void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) // void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration) { - if (! symbol) { + if (symbol == nullptr) { bool currentScope; symbol = symbolTable.find(identifier, nullptr, ¤tScope); if (symbol && builtInName(identifier) && ! symbolTable.atBuiltInLevel()) { // bad shader (errors already reported) trying to redeclare a built-in name as an array + symbol = nullptr; return; } if (symbol == nullptr || ! currentScope) { @@ -3213,7 +3214,7 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con // Process a redeclaration. // - if (! symbol) { + if (symbol == nullptr) { error(loc, "array variable name expected", identifier.c_str(), ""); return; } @@ -4934,7 +4935,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden // Check for redeclaration of built-ins and/or attempting to declare a reserved name bool newDeclaration = false; // true if a new entry gets added to the symbol table TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers, newDeclaration); - if (! symbol) + if (symbol == nullptr) reservedErrorCheck(loc, identifier); inheritGlobalDefaults(type.getQualifier()); @@ -4959,18 +4960,18 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden } } else { // non-array case - if (! symbol) + if (symbol == nullptr) symbol = declareNonArray(loc, identifier, type, newDeclaration); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } - if (! symbol) + if (symbol == nullptr) return nullptr; // Deal with initializer TIntermNode* initNode = nullptr; - if (symbol && initializer) { + if (symbol != nullptr && initializer) { TVariable* variable = symbol->getAsVariable(); if (! variable) { error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); From 934855a64236dcad8c56b563734ffbbffb22abba Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 19 Jul 2016 15:50:58 -0600 Subject: [PATCH 011/217] Fix issue #382: Detect implicitly-sized atomic_uint arrays. --- Test/420.frag | 2 ++ Test/baseResults/420.frag.out | 3 +++ glslang/MachineIndependent/ParseHelper.cpp | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Test/420.frag b/Test/420.frag index 98ddf3d2..1444758e 100644 --- a/Test/420.frag +++ b/Test/420.frag @@ -10,3 +10,5 @@ void main() layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth layout(depth_any) out float gl_FragDepth; // ERROR, done after use + +layout(binding=0) uniform atomic_uint a[]; diff --git a/Test/baseResults/420.frag.out b/Test/baseResults/420.frag.out index 0697b52b..784cdb4b 100644 --- a/Test/baseResults/420.frag.out +++ b/Test/baseResults/420.frag.out @@ -3,6 +3,7 @@ Warning, version 420 is not yet complete; most version-specific features are pre ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use +WARNING: 0:14: 'atomic_uint' : implicitly sized atomic_uint array treated as having one element for tracking the default offset ERROR: 3 compilation errors. No code generated. @@ -20,6 +21,7 @@ ERROR: node is still EOpNull! 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) +0:? 'a' (layout(binding=0 offset=0 ) uniform implicitly-sized array of atomic_uint) Linked fragment stage: @@ -39,4 +41,5 @@ ERROR: node is still EOpNull! 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) +0:? 'a' (layout(binding=0 offset=0 ) uniform 1-element array of atomic_uint) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 56b326ef..0c20cf87 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4753,8 +4753,18 @@ void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol) // Check for overlap int numOffsets = 4; - if (symbol.getType().isArray()) - numOffsets *= symbol.getType().getCumulativeArraySize(); + if (symbol.getType().isArray()) { + if (symbol.getType().isExplicitlySizedArray()) + numOffsets *= symbol.getType().getCumulativeArraySize(); + else { + // TODO: functionality: implicitly-sized atomic_uint arrays. + // We don't know the full size until later. This might + // be a specification problem, will report to Khronos. For the + // cases that is not true, the rest of the checking would need + // to be done at link time instead of compile time. + warn(loc, "implicitly sized atomic_uint array treated as having one element for tracking the default offset", "atomic_uint", ""); + } + } int repeated = intermediate.addUsedOffsets(qualifier.layoutBinding, offset, numOffsets); if (repeated >= 0) error(loc, "atomic counters sharing the same offset:", "offset", "%d", repeated); From 9d93a2370d68ed76bb1c1d2a596a14730108501e Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Thu, 5 May 2016 12:30:44 +0800 Subject: [PATCH 012/217] Implement 4 AMD-specific extensions. - Support GL_AMD_shader_ballot (SPV_AMD_shader_ballot). - Support GL_AMD_shader_trinary_minmax (SPV_AMD_shader_trinary_minmax). - Support GL_AMD_shader_explicit_vertex_parameter (SPV_AMD_shader_explicit_vertex_parameter). - Support GL_AMD_gcn_shader (SPV_AMD_gcn_shader). --- CMakeLists.txt | 6 + SPIRV/CMakeLists.txt | 5 + SPIRV/GLSL.ext.AMD.h | 113 + SPIRV/GlslangToSpv.cpp | 222 +- SPIRV/SpvBuilder.cpp | 14 +- SPIRV/SpvBuilder.h | 4 +- SPIRV/disassemble.cpp | 82 +- SPIRV/doc.cpp | 80 + glslang/Include/BaseTypes.h | 18 + glslang/Include/Types.h | 14 + glslang/Include/intermediate.h | 27 + glslang/MachineIndependent/Initialize.cpp | 350 + glslang/MachineIndependent/ParseHelper.cpp | 17 +- glslang/MachineIndependent/Scan.cpp | 11 + glslang/MachineIndependent/Versions.cpp | 14 + glslang/MachineIndependent/Versions.h | 7 + glslang/MachineIndependent/glslang.y | 11 +- glslang/MachineIndependent/glslang_tab.cpp | 7927 +++++++++--------- glslang/MachineIndependent/glslang_tab.cpp.h | 594 +- glslang/MachineIndependent/intermOut.cpp | 29 + 20 files changed, 5425 insertions(+), 4120 deletions(-) create mode 100644 SPIRV/GLSL.ext.AMD.h diff --git a/CMakeLists.txt b/CMakeLists.txt index f2f23559..e9595d13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,18 @@ cmake_minimum_required(VERSION 2.8.12) set_property(GLOBAL PROPERTY USE_FOLDERS ON) +option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF) + enable_testing() set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix") project(glslang) +if(ENABLE_AMD_EXTENSIONS) + add_definitions(-DAMD_EXTENSIONS) +endif(ENABLE_AMD_EXTENSIONS) + if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") include(ChooseMSVCCRT.cmake) diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 5c169b14..9628a82f 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -18,6 +18,11 @@ set(HEADERS doc.h disassemble.h) +if(ENABLE_AMD_EXTENSIONS) + set(HEADERS + GLSL.ext.AMD.h) +endif(ENABLE_AMD_EXTENSIONS) + add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) set_property(TARGET SPIRV PROPERTY FOLDER glslang) diff --git a/SPIRV/GLSL.ext.AMD.h b/SPIRV/GLSL.ext.AMD.h new file mode 100644 index 00000000..633cea0c --- /dev/null +++ b/SPIRV/GLSL.ext.AMD.h @@ -0,0 +1,113 @@ +/* +** Copyright (c) 2014-2016 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and/or associated documentation files (the "Materials"), +** to deal in the Materials without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Materials, and to permit persons to whom the +** Materials are furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Materials. +** +** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS +** IN THE MATERIALS. +*/ + +#ifndef GLSLextAMD_H +#define GLSLextAMD_H + +enum BuiltIn; +enum Decoration; +enum Op; + +static const int GLSLextAMDVersion = 100; +static const int GLSLextAMDRevision = 1; + +// SPV_AMD_shader_ballot +static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; + +static const Op OpGroupIAddNonUniformAMD = static_cast(5000); +static const Op OpGroupFAddNonUniformAMD = static_cast(5001); +static const Op OpGroupFMinNonUniformAMD = static_cast(5002); +static const Op OpGroupUMinNonUniformAMD = static_cast(5003); +static const Op OpGroupSMinNonUniformAMD = static_cast(5004); +static const Op OpGroupFMaxNonUniformAMD = static_cast(5005); +static const Op OpGroupUMaxNonUniformAMD = static_cast(5006); +static const Op OpGroupSMaxNonUniformAMD = static_cast(5007); + +enum ShaderBallotAMD { + ShaderBallotBadAMD = 0, // Don't use + + SwizzleInvocationsAMD = 1, + SwizzleInvocationsMaskedAMD = 2, + WriteInvocationAMD = 3, + MbcntAMD = 4, + + ShaderBallotCountAMD +}; + +// SPV_AMD_shader_trinary_minmax +static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax"; + +enum ShaderTrinaryMinMaxAMD { + ShaderTrinaryMinMaxBadAMD = 0, // Don't use + + FMin3AMD = 1, + UMin3AMD = 2, + SMin3AMD = 3, + FMax3AMD = 4, + UMax3AMD = 5, + SMax3AMD = 6, + FMid3AMD = 7, + UMid3AMD = 8, + SMid3AMD = 9, + + ShaderTrinaryMinMaxCountAMD +}; + +// SPV_AMD_shader_explicit_vertex_parameter +static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter"; + +static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast(4992); +static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast(4993); +static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast(4994); +static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast(4995); +static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast(4996); +static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast(4997); +static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast(4998); + +static const Decoration DecorationExplicitInterpAMD = static_cast(4999); + +enum ShaderExplicitVertexParameterAMD { + ShaderExplicitVertexParameterBadAMD = 0, // Don't use + + InterpolateAtVertexAMD = 1, + + ShaderExplicitVertexParameterCountAMD +}; + +// SPV_AMD_gcn_shader +static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader"; + +enum GcnShaderAMD { + GcnShaderBadAMD = 0, // Don't use + + CubeFaceIndexAMD = 1, + CubeFaceCoordAMD = 2, + TimeAMD = 3, + + GcnShaderCountAMD +}; + +#endif // #ifndef GLSLextAMD_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index dd11304f..0fc57305 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -43,6 +43,9 @@ #include "SpvBuilder.h" namespace spv { #include "GLSL.std.450.h" +#ifdef AMD_EXTENSIONS + #include "GLSL.ext.AMD.h" +#endif } // Glslang includes @@ -147,9 +150,9 @@ protected: spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id createInvocationsOperation(glslang::TOperator, spv::Id typeId, spv::Id operand); + spv::Id createInvocationsOperation(glslang::TOperator, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id createNoArgOperation(glslang::TOperator op); + spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); void addDecoration(spv::Id id, spv::Decoration dec); void addDecoration(spv::Id id, spv::Decoration dec, unsigned value); @@ -160,6 +163,7 @@ protected: bool isTrivialLeaf(const glslang::TIntermTyped* node); bool isTrivial(const glslang::TIntermTyped* node); spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right); + spv::Id getExtBuiltins(const char* name); spv::Function* shaderEntry; spv::Instruction* entryPoint; @@ -175,6 +179,7 @@ protected: std::set iOSet; // all input/output variables from either static use or declaration of interface const glslang::TIntermediate* glslangIntermediate; spv::Id stdBuiltins; + std::unordered_map extBuiltinMap; std::unordered_map symbolValues; std::unordered_set constReadOnlyParameters; // set of formal function parameters that have glslang qualifier constReadOnly, so we know they are not local function "const" that are write-once @@ -371,6 +376,10 @@ spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qual return spv::DecorationNoPerspective; else if (qualifier.flat) return spv::DecorationFlat; +#ifdef AMD_EXTENSIONS + else if (qualifier.explicitInterp) + return spv::DecorationExplicitInterpAMD; +#endif else return spv::DecorationMax; } @@ -508,6 +517,15 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI // TODO: Add SPIR-V builtin ID. logger->missingFunctionality("shader ballot"); return spv::BuiltInMax; +#ifdef AMD_EXTENSIONS + case glslang::EbvBaryCoordNoPersp: return spv::BuiltInBaryCoordNoPerspAMD; + case glslang::EbvBaryCoordNoPerspCentroid: return spv::BuiltInBaryCoordNoPerspCentroidAMD; + case glslang::EbvBaryCoordNoPerspSample: return spv::BuiltInBaryCoordNoPerspSampleAMD; + case glslang::EbvBaryCoordSmooth: return spv::BuiltInBaryCoordSmoothAMD; + case glslang::EbvBaryCoordSmoothCentroid: return spv::BuiltInBaryCoordSmoothCentroidAMD; + case glslang::EbvBaryCoordSmoothSample: return spv::BuiltInBaryCoordSmoothSampleAMD; + case glslang::EbvBaryCoordPullModel: return spv::BuiltInBaryCoordPullModelAMD; +#endif default: return spv::BuiltInMax; } } @@ -628,6 +646,10 @@ void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& pa child.invariant = true; if (parent.nopersp) child.nopersp = true; +#ifdef AMD_EXTENSIONS + if (parent.explicitInterp) + child.explicitInterp = true; +#endif if (parent.flat) child.flat = true; if (parent.centroid) @@ -1484,6 +1506,9 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt break; case glslang::EOpInterpolateAtSample: case glslang::EOpInterpolateAtOffset: +#ifdef AMD_EXTENSIONS + case glslang::EOpInterpolateAtVertex: +#endif if (arg == 0) lvalue = true; break; @@ -1524,7 +1549,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // Pass through to generic operations. switch (glslangOperands.size()) { case 0: - result = createNoArgOperation(node->getOp()); + result = createNoArgOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType())); break; case 1: result = createUnaryOperation( @@ -3169,6 +3194,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) { spv::Op unaryOp = spv::OpNop; + int extBuiltins = -1; int libCall = -1; bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; @@ -3448,7 +3474,32 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpAnyInvocation: case glslang::EOpAllInvocations: case glslang::EOpAllInvocationsEqual: - return createInvocationsOperation(op, typeId, operand); +#ifdef AMD_EXTENSIONS + case glslang::EOpMinInvocations: + case glslang::EOpMaxInvocations: + case glslang::EOpAddInvocations: + case glslang::EOpMinInvocationsNonUniform: + case glslang::EOpMaxInvocationsNonUniform: + case glslang::EOpAddInvocationsNonUniform: +#endif + return createInvocationsOperation(op, typeId, operand, typeProxy); + +#ifdef AMD_EXTENSIONS + case glslang::EOpMbcnt: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); + libCall = spv::MbcntAMD; + break; + + case glslang::EOpCubeFaceIndex: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader); + libCall = spv::CubeFaceIndexAMD; + break; + + case glslang::EOpCubeFaceCoord: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader); + libCall = spv::CubeFaceCoordAMD; + break; +#endif default: return 0; @@ -3458,7 +3509,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: if (libCall >= 0) { std::vector args; args.push_back(operand); - id = builder.createBuiltinCall(typeId, stdBuiltins, libCall, args); + id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, args); } else { id = builder.createUnaryOp(unaryOp, typeId, operand); } @@ -3765,12 +3816,20 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv } // Create group invocation operations. -spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand) +spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) { + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; + builder.addCapability(spv::CapabilityGroups); std::vector operands; operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); +#ifdef AMD_EXTENSIONS + if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || + op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) + operands.push_back(spv::GroupOperationReduce); +#endif operands.push_back(operand); switch (op) { @@ -3786,6 +3845,74 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll, builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny)); } +#ifdef AMD_EXTENSIONS + case glslang::EOpMinInvocations: + case glslang::EOpMaxInvocations: + case glslang::EOpAddInvocations: + { + spv::Op spvOp = spv::OpNop; + if (op == glslang::EOpMinInvocations) { + if (isFloat) + spvOp = spv::OpGroupFMin; + else { + if (isUnsigned) + spvOp = spv::OpGroupUMin; + else + spvOp = spv::OpGroupSMin; + } + } else if (op == glslang::EOpMaxInvocations) { + if (isFloat) + spvOp = spv::OpGroupFMax; + else { + if (isUnsigned) + spvOp = spv::OpGroupUMax; + else + spvOp = spv::OpGroupSMax; + } + } else { + if (isFloat) + spvOp = spv::OpGroupFAdd; + else + spvOp = spv::OpGroupIAdd; + } + + return builder.createOp(spvOp, typeId, operands); + } + case glslang::EOpMinInvocationsNonUniform: + case glslang::EOpMaxInvocationsNonUniform: + case glslang::EOpAddInvocationsNonUniform: + { + spv::Op spvOp = spv::OpNop; + if (op == glslang::EOpMinInvocationsNonUniform) { + if (isFloat) + spvOp = spv::OpGroupFMinNonUniformAMD; + else { + if (isUnsigned) + spvOp = spv::OpGroupUMinNonUniformAMD; + else + spvOp = spv::OpGroupSMinNonUniformAMD; + } + } + else if (op == glslang::EOpMaxInvocationsNonUniform) { + if (isFloat) + spvOp = spv::OpGroupFMaxNonUniformAMD; + else { + if (isUnsigned) + spvOp = spv::OpGroupUMaxNonUniformAMD; + else + spvOp = spv::OpGroupSMaxNonUniformAMD; + } + } + else { + if (isFloat) + spvOp = spv::OpGroupFAddNonUniformAMD; + else + spvOp = spv::OpGroupIAddNonUniformAMD; + } + + return builder.createOp(spvOp, typeId, operands); + } +#endif default: logger->missingFunctionality("invocation operation"); return spv::NoResult; @@ -3798,6 +3925,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; spv::Op opCode = spv::OpNop; + int extBuiltins = -1; int libCall = -1; size_t consumedOperands = operands.size(); spv::Id typeId0 = 0; @@ -3941,6 +4069,60 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: libCall = spv::GLSLstd450Bad; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpSwizzleInvocations: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); + libCall = spv::SwizzleInvocationsAMD; + break; + case glslang::EOpSwizzleInvocationsMasked: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); + libCall = spv::SwizzleInvocationsMaskedAMD; + break; + case glslang::EOpWriteInvocation: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot); + libCall = spv::WriteInvocationAMD; + break; + + case glslang::EOpMin3: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); + if (isFloat) + libCall = spv::FMin3AMD; + else { + if (isUnsigned) + libCall = spv::UMin3AMD; + else + libCall = spv::SMin3AMD; + } + break; + case glslang::EOpMax3: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); + if (isFloat) + libCall = spv::FMax3AMD; + else { + if (isUnsigned) + libCall = spv::UMax3AMD; + else + libCall = spv::SMax3AMD; + } + break; + case glslang::EOpMid3: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax); + if (isFloat) + libCall = spv::FMid3AMD; + else { + if (isUnsigned) + libCall = spv::UMid3AMD; + else + libCall = spv::SMid3AMD; + } + break; + + case glslang::EOpInterpolateAtVertex: + extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + libCall = spv::InterpolateAtVertexAMD; + break; +#endif + default: return 0; } @@ -3951,7 +4133,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: // Construct the call arguments, without modifying the original operands vector. // We might need the remaining arguments, e.g. in the EOpFrexp case. std::vector callArguments(operands.begin(), operands.begin() + consumedOperands); - id = builder.createBuiltinCall(typeId, stdBuiltins, libCall, callArguments); + id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, callArguments); } else { switch (consumedOperands) { case 0: @@ -3997,8 +4179,8 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: return builder.setPrecision(id, precision); } -// Intrinsics with no arguments, no return value, and no precision. -spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op) +// Intrinsics with no arguments (or no return value, and no precision). +spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId) { // TODO: get the barrier operands correct @@ -4045,6 +4227,14 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op) // Control barrier with non-"None" semantic is also a memory barrier. builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); return 0; +#ifdef AMD_EXTENSIONS + case glslang::EOpTime: + { + std::vector args; // Dummy arguments + spv::Id id = builder.createBuiltinCall(typeId, getExtBuiltins(spv::E_SPV_AMD_gcn_shader), spv::TimeAMD, args); + return builder.setPrecision(id, precision); + } +#endif default: logger->missingFunctionality("unknown operation with no arguments"); return 0; @@ -4437,6 +4627,20 @@ spv::Id TGlslangToSpvTraverser::createShortCircuit(glslang::TOperator op, glslan return builder.createOp(spv::OpPhi, boolTypeId, phiOperands); } +// Return type Id of the imported set of extended instructions corresponds to the name. +// Import this set if it has not been imported yet. +spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) +{ + if (extBuiltinMap.find(name) != extBuiltinMap.end()) + return extBuiltinMap[name]; + else { + builder.addExtensions(name); + spv::Id extBuiltins = builder.import(name); + extBuiltinMap[name] = extBuiltins; + return extBuiltins; + } +} + }; // end anonymous namespace namespace glslang { diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index e5317ab7..1411d163 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -2312,7 +2312,11 @@ void Builder::dump(std::vector& out) const capInst.dump(out); } - // TBD: OpExtension ... + for (int e = 0; e < (int)extensions.size(); ++e) { + Instruction extInst(0, 0, OpExtension); + extInst.addStringOperand(extensions[e]); + extInst.dump(out); + } dumpInstructions(out, imports); Instruction memInst(0, 0, OpMemoryModel); @@ -2331,10 +2335,10 @@ void Builder::dump(std::vector& out) const sourceInst.addImmediateOperand(sourceVersion); sourceInst.dump(out); } - for (int e = 0; e < (int)extensions.size(); ++e) { - Instruction extInst(0, 0, OpSourceExtension); - extInst.addStringOperand(extensions[e]); - extInst.dump(out); + for (int e = 0; e < (int)sourceExtensions.size(); ++e) { + Instruction sourceExtInst(0, 0, OpSourceExtension); + sourceExtInst.addStringOperand(sourceExtensions[e]); + sourceExtInst.dump(out); } dumpInstructions(out, names); dumpInstructions(out, lines); diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index c7e3bcda..00e85b8c 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -70,7 +70,8 @@ public: source = lang; sourceVersion = version; } - void addSourceExtension(const char* ext) { extensions.push_back(ext); } + void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } + void addExtensions(const char* ext) { extensions.push_back(ext); } Id import(const char*); void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) { @@ -552,6 +553,7 @@ public: SourceLanguage source; int sourceVersion; std::vector extensions; + std::vector sourceExtensions; AddressingModel addressModel; MemoryModel memoryModel; std::set capabilities; diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp index 75688cb9..b60b3ba2 100644 --- a/SPIRV/disassemble.cpp +++ b/SPIRV/disassemble.cpp @@ -44,16 +44,25 @@ #include #include -namespace spv { - // Include C-based headers that don't have a namespace - #include "GLSL.std.450.h" -} -const char* GlslStd450DebugNames[spv::GLSLstd450Count]; - #include "disassemble.h" #include "doc.h" namespace spv { + extern "C" { + // Include C-based headers that don't have a namespace + #include "GLSL.std.450.h" +#ifdef AMD_EXTENSIONS + #include "GLSL.ext.AMD.h" +#endif + } +} +const char* GlslStd450DebugNames[spv::GLSLstd450Count]; + +namespace spv { + +#ifdef AMD_EXTENSIONS +static const char* GLSLextAMDGetDebugNames(const char*, unsigned); +#endif static void Kill(std::ostream& out, const char* message) { @@ -64,6 +73,9 @@ static void Kill(std::ostream& out, const char* message) // used to identify the extended instruction library imported when printing enum ExtInstSet { GLSL450Inst, +#ifdef AMD_EXTENSIONS + GLSLextAMDInst, +#endif OpenCLExtInst, }; @@ -446,14 +458,26 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, --numOperands; if (opCode == OpExtInst) { ExtInstSet extInstSet = GLSL450Inst; - if (0 == memcmp("OpenCL", (const char*)(idDescriptor[stream[word-2]].c_str()), 6)) { + const char* name = idDescriptor[stream[word - 2]].c_str(); + if (0 == memcmp("OpenCL", name, 6)) { extInstSet = OpenCLExtInst; +#ifdef AMD_EXTENSIONS + } else if (strcmp(spv::E_SPV_AMD_shader_ballot, name) == 0 || + strcmp(spv::E_SPV_AMD_shader_trinary_minmax, name) == 0 || + strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 || + strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) { + extInstSet = GLSLextAMDInst; +#endif } unsigned entrypoint = stream[word - 1]; if (extInstSet == GLSL450Inst) { if (entrypoint < GLSLstd450Count) { out << "(" << GlslStd450DebugNames[entrypoint] << ")"; } +#ifdef AMD_EXTENSIONS + } else if (extInstSet == GLSLextAMDInst) { + out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")"; +#endif } } break; @@ -561,6 +585,50 @@ static void GLSLstd450GetDebugNames(const char** names) names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset"; } +#ifdef AMD_EXTENSIONS +static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint) +{ + if (strcmp(name, spv::E_SPV_AMD_shader_ballot) == 0) { + switch (entrypoint) { + case SwizzleInvocationsAMD: return "SwizzleInvocationsAMD"; + case SwizzleInvocationsMaskedAMD: return "SwizzleInvocationsMaskedAMD"; + case WriteInvocationAMD: return "WriteInvocationAMD"; + case MbcntAMD: return "MbcntAMD"; + default: return "Bad"; + } + } else if (strcmp(name, spv::E_SPV_AMD_shader_trinary_minmax) == 0) { + switch (entrypoint) { + case FMin3AMD: return "FMin3AMD"; + case UMin3AMD: return "UMin3AMD"; + case SMin3AMD: return "SMin3AMD"; + case FMax3AMD: return "FMax3AMD"; + case UMax3AMD: return "UMax3AMD"; + case SMax3AMD: return "SMax3AMD"; + case FMid3AMD: return "FMid3AMD"; + case UMid3AMD: return "UMid3AMD"; + case SMid3AMD: return "SMid3AMD"; + default: return "Bad"; + } + } else if (strcmp(name, spv::E_SPV_AMD_shader_explicit_vertex_parameter) == 0) { + switch (entrypoint) { + case InterpolateAtVertexAMD: return "InterpolateAtVertexAMD"; + default: return "Bad"; + } + } + else if (strcmp(name, spv::E_SPV_AMD_gcn_shader) == 0) { + switch (entrypoint) { + case CubeFaceIndexAMD: return "CubeFaceIndexAMD"; + case CubeFaceCoordAMD: return "CubeFaceCoordAMD"; + case TimeAMD: return "TimeAMD"; + default: + break; + } + } + + return "Bad"; +} +#endif + void Disassemble(std::ostream& out, const std::vector& stream) { SpirvStream SpirvStream(out, stream); diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index fed3ec42..9b58b59d 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -45,6 +45,15 @@ #include #include +#ifdef AMD_EXTENSIONS +namespace spv { + extern "C" { + // Include C-based headers that don't have a namespace + #include "GLSL.ext.AMD.h" + } +} +#endif + namespace spv { // @@ -243,6 +252,10 @@ const char* DecorationString(int decoration) case DecorationCeiling: default: return "Bad"; + +#ifdef AMD_EXTENSIONS + case 4999: return "ExplicitInterpAMD"; +#endif } } @@ -298,6 +311,16 @@ const char* BuiltInString(int builtIn) case BuiltInCeiling: default: return "Bad"; + +#ifdef AMD_EXTENSIONS + case 4992: return "BaryCoordNoPerspAMD"; + case 4993: return "BaryCoordNoPerspCentroidAMD"; + case 4994: return "BaryCoordNoPerspSampleAMD"; + case 4995: return "BaryCoordSmoothAMD"; + case 4996: return "BaryCoordSmoothCentroidAMD"; + case 4997: return "BaryCoordSmoothSampleAMD"; + case 4998: return "BaryCoordPullModelAMD"; +#endif } } @@ -1107,12 +1130,27 @@ const char* OpcodeString(int op) case OpcodeCeiling: default: return "Bad"; + +#ifdef AMD_EXTENSIONS + case 5000: return "OpGroupIAddNonUniformAMD"; + case 5001: return "OpGroupFAddNonUniformAMD"; + case 5002: return "OpGroupFMinNonUniformAMD"; + case 5003: return "OpGroupUMinNonUniformAMD"; + case 5004: return "OpGroupSMinNonUniformAMD"; + case 5005: return "OpGroupFMaxNonUniformAMD"; + case 5006: return "OpGroupUMaxNonUniformAMD"; + case 5007: return "OpGroupSMaxNonUniformAMD"; +#endif } } // The set of objects that hold all the instruction/operand // parameterization information. +#ifdef AMD_EXTENSIONS +InstructionParameters InstructionDesc[OpCodeMask + 1]; +#else InstructionParameters InstructionDesc[OpcodeCeiling]; +#endif OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; OperandParameters DecorationOperands[DecorationCeiling]; @@ -2703,6 +2741,48 @@ void Parameterize() InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'"); + +#ifdef AMD_EXTENSIONS + InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'"); + + InstructionDesc[OpGroupFAddNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'"); + + InstructionDesc[OpGroupUMinNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'"); + + InstructionDesc[OpGroupSMinNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupFMinNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupUMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupSMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X"); + + InstructionDesc[OpGroupFMaxNonUniformAMD].capabilities.push_back(CapabilityGroups); + InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'"); + InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'"); + InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X"); +#endif } }; // end spv namespace diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index 2c275772..7e12c55a 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -186,6 +186,15 @@ enum TBuiltInVariable { EbvSamplePosition, EbvSampleMask, EbvHelperInvocation, +#ifdef AMD_EXTENSIONS + EbvBaryCoordNoPersp, + EbvBaryCoordNoPerspCentroid, + EbvBaryCoordNoPerspSample, + EbvBaryCoordSmooth, + EbvBaryCoordSmoothCentroid, + EbvBaryCoordSmoothSample, + EbvBaryCoordPullModel, +#endif EbvLast }; @@ -286,6 +295,15 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v) case EbvSamplePosition: return "SamplePosition"; case EbvSampleMask: return "SampleMaskIn"; case EbvHelperInvocation: return "HelperInvocation"; +#ifdef AMD_EXTENSIONS + case EbvBaryCoordNoPersp: return "BaryCoordNoPersp"; + case EbvBaryCoordNoPerspCentroid: return "BaryCoordNoPerspCentroid"; + case EbvBaryCoordNoPerspSample: return "BaryCoordNoPerspSample"; + case EbvBaryCoordSmooth: return "BaryCoordSmooth"; + case EbvBaryCoordSmoothCentroid: return "BaryCoordSmoothCentroid"; + case EbvBaryCoordSmoothSample: return "BaryCoordSmoothSample"; + case EbvBaryCoordPullModel: return "BaryCoordPullModel"; +#endif default: return "unknown built-in variable"; } } diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 39a9fff6..e6378511 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -405,6 +405,9 @@ public: smooth = false; flat = false; nopersp = false; +#ifdef AMD_EXTENSIONS + explicitInterp = false; +#endif patch = false; sample = false; coherent = false; @@ -438,6 +441,9 @@ public: bool smooth : 1; bool flat : 1; bool nopersp : 1; +#ifdef AMD_EXTENSIONS + bool explicitInterp : 1; +#endif bool patch : 1; bool sample : 1; bool coherent : 1; @@ -453,7 +459,11 @@ public: } bool isInterpolation() const { +#ifdef AMD_EXTENSIONS + return flat || smooth || nopersp || explicitInterp; +#else return flat || smooth || nopersp; +#endif } bool isAuxiliary() const { @@ -1518,6 +1528,10 @@ public: p += snprintf(p, end - p, "flat "); if (qualifier.nopersp) p += snprintf(p, end - p, "noperspective "); +#ifdef AMD_EXTENSIONS + if (qualifier.explicitInterp) + p += snprintf(p, end - p, "__explicitInterpAMD "); +#endif if (qualifier.patch) p += snprintf(p, end - p, "patch "); if (qualifier.sample) diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index a74b96e9..4d260f01 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -246,6 +246,12 @@ enum TOperator { EOpReflect, EOpRefract, +#ifdef AMD_EXTENSIONS + EOpMin3, + EOpMax3, + EOpMid3, +#endif + EOpDPdx, // Fragment only EOpDPdy, // Fragment only EOpFwidth, // Fragment only @@ -260,6 +266,10 @@ enum TOperator { EOpInterpolateAtSample, // Fragment only EOpInterpolateAtOffset, // Fragment only +#ifdef AMD_EXTENSIONS + EOpInterpolateAtVertex, +#endif + EOpMatrixTimesMatrix, EOpOuterProduct, EOpDeterminant, @@ -291,6 +301,23 @@ enum TOperator { EOpAllInvocations, EOpAllInvocationsEqual, +#ifdef AMD_EXTENSIONS + EOpMinInvocations, + EOpMaxInvocations, + EOpAddInvocations, + EOpMinInvocationsNonUniform, + EOpMaxInvocationsNonUniform, + EOpAddInvocationsNonUniform, + EOpSwizzleInvocations, + EOpSwizzleInvocationsMasked, + EOpWriteInvocation, + EOpMbcnt, + + EOpCubeFaceIndex, + EOpCubeFaceCoord, + EOpTime, +#endif + EOpAtomicAdd, EOpAtomicMin, EOpAtomicMax, diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 871e7884..8523398d 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -801,10 +801,85 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "bvec3 notEqual(u64vec3, u64vec3);" "bvec4 notEqual(u64vec4, u64vec4);" +#ifdef AMD_EXTENSIONS + "int findLSB(int64_t);" + "ivec2 findLSB(i64vec2);" + "ivec3 findLSB(i64vec3);" + "ivec4 findLSB(i64vec4);" + + "int findLSB(uint64_t);" + "ivec2 findLSB(u64vec2);" + "ivec3 findLSB(u64vec3);" + "ivec4 findLSB(u64vec4);" + + "int findMSB(int64_t);" + "ivec2 findMSB(i64vec2);" + "ivec3 findMSB(i64vec3);" + "ivec4 findMSB(i64vec4);" + + "int findMSB(uint64_t);" + "ivec2 findMSB(u64vec2);" + "ivec3 findMSB(u64vec3);" + "ivec4 findMSB(u64vec4);" +#endif "\n" ); } +#ifdef AMD_EXTENSIONS + // GL_AMD_shader_trinary_minmax + if (profile != EEsProfile && version >= 430) { + commonBuiltins.append( + "float min3(float, float, float);" + "vec2 min3(vec2, vec2, vec2);" + "vec3 min3(vec3, vec3, vec3);" + "vec4 min3(vec4, vec4, vec4);" + + "int min3(int, int, int);" + "ivec2 min3(ivec2, ivec2, ivec2);" + "ivec3 min3(ivec3, ivec3, ivec3);" + "ivec4 min3(ivec4, ivec4, ivec4);" + + "uint min3(uint, uint, uint);" + "uvec2 min3(uvec2, uvec2, uvec2);" + "uvec3 min3(uvec3, uvec3, uvec3);" + "uvec4 min3(uvec4, uvec4, uvec4);" + + "float max3(float, float, float);" + "vec2 max3(vec2, vec2, vec2);" + "vec3 max3(vec3, vec3, vec3);" + "vec4 max3(vec4, vec4, vec4);" + + "int max3(int, int, int);" + "ivec2 max3(ivec2, ivec2, ivec2);" + "ivec3 max3(ivec3, ivec3, ivec3);" + "ivec4 max3(ivec4, ivec4, ivec4);" + + "uint max3(uint, uint, uint);" + "uvec2 max3(uvec2, uvec2, uvec2);" + "uvec3 max3(uvec3, uvec3, uvec3);" + "uvec4 max3(uvec4, uvec4, uvec4);" + + "float mid3(float, float, float);" + "vec2 mid3(vec2, vec2, vec2);" + "vec3 mid3(vec3, vec3, vec3);" + "vec4 mid3(vec4, vec4, vec4);" + + "int mid3(int, int, int);" + "ivec2 mid3(ivec2, ivec2, ivec2);" + "ivec3 mid3(ivec3, ivec3, ivec3);" + "ivec4 mid3(ivec4, ivec4, ivec4);" + + "uint mid3(uint, uint, uint);" + "uvec2 mid3(uvec2, uvec2, uvec2);" + "uvec3 mid3(uvec3, uvec3, uvec3);" + "uvec4 mid3(uvec4, uvec4, uvec4);" + + "\n" + ); + } +#endif + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 430)) { commonBuiltins.append( @@ -1468,6 +1543,161 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#ifdef AMD_EXTENSIONS + // GL_AMD_shader_ballot + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "float minInvocationsAMD(float);" + "vec2 minInvocationsAMD(vec2);" + "vec3 minInvocationsAMD(vec3);" + "vec4 minInvocationsAMD(vec4);" + + "int minInvocationsAMD(int);" + "ivec2 minInvocationsAMD(ivec2);" + "ivec3 minInvocationsAMD(ivec3);" + "ivec4 minInvocationsAMD(ivec4);" + + "uint minInvocationsAMD(uint);" + "uvec2 minInvocationsAMD(uvec2);" + "uvec3 minInvocationsAMD(uvec3);" + "uvec4 minInvocationsAMD(uvec4);" + + "float maxInvocationsAMD(float);" + "vec2 maxInvocationsAMD(vec2);" + "vec3 maxInvocationsAMD(vec3);" + "vec4 maxInvocationsAMD(vec4);" + + "int maxInvocationsAMD(int);" + "ivec2 maxInvocationsAMD(ivec2);" + "ivec3 maxInvocationsAMD(ivec3);" + "ivec4 maxInvocationsAMD(ivec4);" + + "uint maxInvocationsAMD(uint);" + "uvec2 maxInvocationsAMD(uvec2);" + "uvec3 maxInvocationsAMD(uvec3);" + "uvec4 maxInvocationsAMD(uvec4);" + + "float addInvocationsAMD(float);" + "vec2 addInvocationsAMD(vec2);" + "vec3 addInvocationsAMD(vec3);" + "vec4 addInvocationsAMD(vec4);" + + "int addInvocationsAMD(int);" + "ivec2 addInvocationsAMD(ivec2);" + "ivec3 addInvocationsAMD(ivec3);" + "ivec4 addInvocationsAMD(ivec4);" + + "uint addInvocationsAMD(uint);" + "uvec2 addInvocationsAMD(uvec2);" + "uvec3 addInvocationsAMD(uvec3);" + "uvec4 addInvocationsAMD(uvec4);" + + "float minInvocationsNonUniformAMD(float);" + "vec2 minInvocationsNonUniformAMD(vec2);" + "vec3 minInvocationsNonUniformAMD(vec3);" + "vec4 minInvocationsNonUniformAMD(vec4);" + + "int minInvocationsNonUniformAMD(int);" + "ivec2 minInvocationsNonUniformAMD(ivec2);" + "ivec3 minInvocationsNonUniformAMD(ivec3);" + "ivec4 minInvocationsNonUniformAMD(ivec4);" + + "uint minInvocationsNonUniformAMD(uint);" + "uvec2 minInvocationsNonUniformAMD(uvec2);" + "uvec3 minInvocationsNonUniformAMD(uvec3);" + "uvec4 minInvocationsNonUniformAMD(uvec4);" + + "float maxInvocationsNonUniformAMD(float);" + "vec2 maxInvocationsNonUniformAMD(vec2);" + "vec3 maxInvocationsNonUniformAMD(vec3);" + "vec4 maxInvocationsNonUniformAMD(vec4);" + + "int maxInvocationsNonUniformAMD(int);" + "ivec2 maxInvocationsNonUniformAMD(ivec2);" + "ivec3 maxInvocationsNonUniformAMD(ivec3);" + "ivec4 maxInvocationsNonUniformAMD(ivec4);" + + "uint maxInvocationsNonUniformAMD(uint);" + "uvec2 maxInvocationsNonUniformAMD(uvec2);" + "uvec3 maxInvocationsNonUniformAMD(uvec3);" + "uvec4 maxInvocationsNonUniformAMD(uvec4);" + + "float addInvocationsNonUniformAMD(float);" + "vec2 addInvocationsNonUniformAMD(vec2);" + "vec3 addInvocationsNonUniformAMD(vec3);" + "vec4 addInvocationsNonUniformAMD(vec4);" + + "int addInvocationsNonUniformAMD(int);" + "ivec2 addInvocationsNonUniformAMD(ivec2);" + "ivec3 addInvocationsNonUniformAMD(ivec3);" + "ivec4 addInvocationsNonUniformAMD(ivec4);" + + "uint addInvocationsNonUniformAMD(uint);" + "uvec2 addInvocationsNonUniformAMD(uvec2);" + "uvec3 addInvocationsNonUniformAMD(uvec3);" + "uvec4 addInvocationsNonUniformAMD(uvec4);" + + "float swizzleInvocationsAMD(float, uvec4);" + "vec2 swizzleInvocationsAMD(vec2, uvec4);" + "vec3 swizzleInvocationsAMD(vec3, uvec4);" + "vec4 swizzleInvocationsAMD(vec4, uvec4);" + + "int swizzleInvocationsAMD(int, uvec4);" + "ivec2 swizzleInvocationsAMD(ivec2, uvec4);" + "ivec3 swizzleInvocationsAMD(ivec3, uvec4);" + "ivec4 swizzleInvocationsAMD(ivec4, uvec4);" + + "uint swizzleInvocationsAMD(uint, uvec4);" + "uvec2 swizzleInvocationsAMD(uvec2, uvec4);" + "uvec3 swizzleInvocationsAMD(uvec3, uvec4);" + "uvec4 swizzleInvocationsAMD(uvec4, uvec4);" + + "float swizzleInvocationsMaskedAMD(float, uvec3);" + "vec2 swizzleInvocationsMaskedAMD(vec2, uvec3);" + "vec3 swizzleInvocationsMaskedAMD(vec3, uvec3);" + "vec4 swizzleInvocationsMaskedAMD(vec4, uvec3);" + + "int swizzleInvocationsMaskedAMD(int, uvec3);" + "ivec2 swizzleInvocationsMaskedAMD(ivec2, uvec3);" + "ivec3 swizzleInvocationsMaskedAMD(ivec3, uvec3);" + "ivec4 swizzleInvocationsMaskedAMD(ivec4, uvec3);" + + "uint swizzleInvocationsMaskedAMD(uint, uvec3);" + "uvec2 swizzleInvocationsMaskedAMD(uvec2, uvec3);" + "uvec3 swizzleInvocationsMaskedAMD(uvec3, uvec3);" + "uvec4 swizzleInvocationsMaskedAMD(uvec4, uvec3);" + + "float writeInvocationAMD(float, float, uint);" + "vec2 writeInvocationAMD(vec2, vec2, uint);" + "vec3 writeInvocationAMD(vec3, vec3, uint);" + "vec4 writeInvocationAMD(vec4, vec4, uint);" + + "int writeInvocationAMD(int, int, uint);" + "ivec2 writeInvocationAMD(ivec2, ivec2, uint);" + "ivec3 writeInvocationAMD(ivec3, ivec3, uint);" + "ivec4 writeInvocationAMD(ivec4, ivec4, uint);" + + "uint writeInvocationAMD(uint, uint, uint);" + "uvec2 writeInvocationAMD(uvec2, uvec2, uint);" + "uvec3 writeInvocationAMD(uvec3, uvec3, uint);" + "uvec4 writeInvocationAMD(uvec4, uvec4, uint);" + + "uint mbcntAMD(uint64_t);" + + "\n"); + } + + // GL_AMD_gcn_shader + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "float cubeFaceIndexAMD(vec3);" + "vec2 cubeFaceCoordAMD(vec3);" + "uint64_t timeAMD();" + + "\n"); + } +#endif + //============================================================================ // // Prototypes for built-in functions seen by vertex shaders only. @@ -1713,6 +1943,29 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } +#ifdef AMD_EXTENSIONS + // GL_AMD_shader_explicit_vertex_parameter + if (profile != EEsProfile && version >= 450) { + stageBuiltins[EShLangFragment].append( + "float interpolateAtVertexAMD(float, uint);" + "vec2 interpolateAtVertexAMD(vec2, uint);" + "vec3 interpolateAtVertexAMD(vec3, uint);" + "vec4 interpolateAtVertexAMD(vec4, uint);" + + "int interpolateAtVertexAMD(int, uint);" + "ivec2 interpolateAtVertexAMD(ivec2, uint);" + "ivec3 interpolateAtVertexAMD(ivec3, uint);" + "ivec4 interpolateAtVertexAMD(ivec4, uint);" + + "uint interpolateAtVertexAMD(uint, uint);" + "uvec2 interpolateAtVertexAMD(uvec2, uint);" + "uvec3 interpolateAtVertexAMD(uvec3, uint);" + "uvec4 interpolateAtVertexAMD(uvec4, uint);" + + "\n"); + } +#endif + //============================================================================ // // Standard Uniforms @@ -2332,6 +2585,19 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in float gl_CullDistance[];" "bool gl_HelperInvocation;" // needs qualifier fixed later ); + +#ifdef AMD_EXTENSIONS + if (version >= 450) + stageBuiltins[EShLangFragment].append( + "in vec2 gl_BaryCoordNoPerspAMD;" + "in vec2 gl_BaryCoordNoPerspCentroidAMD;" + "in vec2 gl_BaryCoordNoPerspSampleAMD;" + "in vec2 gl_BaryCoordSmoothAMD;" + "in vec2 gl_BaryCoordSmoothCentroidAMD;" + "in vec2 gl_BaryCoordSmoothSampleAMD;" + "in vec3 gl_BaryCoordPullModelAMD;" + ); +#endif } else { // ES profile @@ -3460,6 +3726,14 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf s.append(builtInConstant); } +#ifdef AMD_EXTENSIONS + // GL_AMD_gcn_shader + if (profile != EEsProfile && version >= 450) { + snprintf(builtInConstant, maxSize, "const int gl_SIMDGroupSizeAMD = 64;"); + s.append(builtInConstant); + } +#endif + s.append("\n"); } @@ -3588,6 +3862,33 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); } +#ifdef AMD_EXTENSIONS + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("minInvocationsAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("minInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("maxInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("addInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("swizzleInvocationsAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("swizzleInvocationsWithPatternAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("writeInvocationAMD", 1, &E_GL_AMD_shader_ballot); + symbolTable.setFunctionExtensions("mbcntAMD", 1, &E_GL_AMD_shader_ballot); + } + + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("min3", 1, &E_GL_AMD_shader_trinary_minmax); + symbolTable.setFunctionExtensions("max3", 1, &E_GL_AMD_shader_trinary_minmax); + symbolTable.setFunctionExtensions("mid3", 1, &E_GL_AMD_shader_trinary_minmax); + } + + if (profile != EEsProfile) { + symbolTable.setFunctionExtensions("cubeFaceIndexAMD", 1, &E_GL_AMD_gcn_shader); + symbolTable.setFunctionExtensions("cubeFaceCoordAMD", 1, &E_GL_AMD_gcn_shader); + symbolTable.setFunctionExtensions("timeAMD", 1, &E_GL_AMD_gcn_shader); + } +#endif + // Compatibility variables, vertex only if (spvVersion.spv == 0) { BuiltInVariable("gl_Color", EbvColor, symbolTable); @@ -3872,6 +4173,29 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("textureGradOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp); } +#ifdef AMD_EXTENSIONS + // E_GL_AMD_shader_explicit_vertex_parameter + if (profile != EEsProfile) { + symbolTable.setVariableExtensions("gl_BaryCoordNoPerspAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordNoPerspCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordNoPerspSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordSmoothAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordSmoothCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordSmoothSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + symbolTable.setVariableExtensions("gl_BaryCoordPullModelAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + + symbolTable.setFunctionExtensions("interpolateAtVertexAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter); + + BuiltInVariable("gl_BaryCoordNoPerspAMD", EbvBaryCoordNoPersp, symbolTable); + BuiltInVariable("gl_BaryCoordNoPerspCentroidAMD", EbvBaryCoordNoPerspCentroid, symbolTable); + BuiltInVariable("gl_BaryCoordNoPerspSampleAMD", EbvBaryCoordNoPerspSample, symbolTable); + BuiltInVariable("gl_BaryCoordSmoothAMD", EbvBaryCoordSmooth, symbolTable); + BuiltInVariable("gl_BaryCoordSmoothCentroidAMD", EbvBaryCoordSmoothCentroid, symbolTable); + BuiltInVariable("gl_BaryCoordSmoothSampleAMD", EbvBaryCoordSmoothSample, symbolTable); + BuiltInVariable("gl_BaryCoordPullModelAMD", EbvBaryCoordPullModel, symbolTable); + } +#endif + symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth); if (profile == EEsProfile) { @@ -4205,6 +4529,27 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); + +#ifdef AMD_EXTENSIONS + symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); + symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); + symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations); + symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform); + symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform); + symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform); + symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations); + symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked); + symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation); + symbolTable.relateToOperator("mbcntAMD", EOpMbcnt); + + symbolTable.relateToOperator("min3", EOpMin3); + symbolTable.relateToOperator("max3", EOpMax3); + symbolTable.relateToOperator("mid3", EOpMid3); + + symbolTable.relateToOperator("cubeFaceIndexAMD", EOpCubeFaceIndex); + symbolTable.relateToOperator("cubeFaceCoordAMD", EOpCubeFaceCoord); + symbolTable.relateToOperator("timeAMD", EOpTime); +#endif } } @@ -4238,7 +4583,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("interpolateAtCentroid", EOpInterpolateAtCentroid); symbolTable.relateToOperator("interpolateAtSample", EOpInterpolateAtSample); symbolTable.relateToOperator("interpolateAtOffset", EOpInterpolateAtOffset); + +#ifdef AMD_EXTENSIONS + if (profile != EEsProfile) + symbolTable.relateToOperator("interpolateAtVertexAMD", EOpInterpolateAtVertex); break; +#endif case EShLangCompute: symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 0c20cf87..b93d39d3 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2119,6 +2119,10 @@ void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TInt TIntermSymbol* symNode = node->getAsSymbolNode(); if (symNode && symNode->getQualifier().writeonly) error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); +#ifdef AMD_EXTENSIONS + else if (symNode && symNode->getQualifier().explicitInterp) + error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); +#endif } // @@ -2665,7 +2669,11 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali publicType.basicType == EbtDouble) profileRequires(loc, EEsProfile, 300, nullptr, "shader input/output"); - if (! qualifier.flat) { +#ifdef AMD_EXTENSIONS + if (! qualifier.flat && ! qualifier.explicitInterp) { +#else + if (!qualifier.flat) { +#endif if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 || publicType.basicType == EbtDouble || @@ -2802,7 +2810,11 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons // Multiple interpolation qualifiers (mostly done later by 'individual qualifiers') if (src.isInterpolation() && dst.isInterpolation()) +#ifdef AMD_EXTENSIONS + error(loc, "can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD)", "", ""); +#else error(loc, "can only have one interpolation qualifier (flat, smooth, noperspective)", "", ""); +#endif // Ordering if (! force && ((profile != EEsProfile && version < 420) || @@ -2858,6 +2870,9 @@ void TParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, cons MERGE_SINGLETON(smooth); MERGE_SINGLETON(flat); MERGE_SINGLETON(nopersp); +#ifdef AMD_EXTENSIONS + MERGE_SINGLETON(explicitInterp); +#endif MERGE_SINGLETON(patch); MERGE_SINGLETON(sample); MERGE_SINGLETON(coherent); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index b8cb869f..0fcc52f5 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -553,6 +553,9 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["noperspective"] = NOPERSPECTIVE; (*KeywordMap)["smooth"] = SMOOTH; (*KeywordMap)["flat"] = FLAT; +#ifdef AMD_EXTENSIONS + (*KeywordMap)["__explicitInterpAMD"] = __EXPLICITINTERPAMD; +#endif (*KeywordMap)["centroid"] = CENTROID; (*KeywordMap)["precise"] = PRECISE; (*KeywordMap)["invariant"] = INVARIANT; @@ -1117,6 +1120,14 @@ int TScanContext::tokenizeIdentifier() return identifierOrType(); return keyword; +#ifdef AMD_EXTENSIONS + case __EXPLICITINTERPAMD: + if (parseContext.profile != EEsProfile && parseContext.version >= 450 && + parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter)) + return keyword; + return identifierOrType(); +#endif + case FLAT: if (parseContext.profile == EEsProfile && parseContext.version < 300) reservedWord(); diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index e46118af..52d205da 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -187,6 +187,13 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; extensionBehavior[E_GL_GOOGLE_include_directive] = EBhDisable; +#ifdef AMD_EXTENSIONS + extensionBehavior[E_GL_AMD_shader_ballot] = EBhDisable; + extensionBehavior[E_GL_AMD_shader_trinary_minmax] = EBhDisable; + extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; + extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; +#endif + // AEP extensionBehavior[E_GL_ANDROID_extension_pack_es31a] = EBhDisable; extensionBehavior[E_GL_KHR_blend_equation_advanced] = EBhDisable; @@ -286,6 +293,13 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_sparse_texture_clamp 1\n" // "#define GL_ARB_cull_distance 1\n" // present for 4.5, but need extension control over block members "#define GL_EXT_shader_non_constant_global_initializers 1\n" + +#ifdef AMD_EXTENSIONS + "#define GL_AMD_shader_ballot 1\n" + "#define GL_AMD_shader_trinary_minmax 1\n" + "#define GL_AMD_shader_explicit_vertex_parameter 1\n" + "#define GL_AMD_gcn_shader 1\n" +#endif ; } diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 19d101db..6fd08b05 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -135,6 +135,13 @@ const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_sha const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive"; const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive"; +#ifdef AMD_EXTENSIONS +const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; +const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; +const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; +const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; +#endif + // AEP const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a"; const char* const E_GL_KHR_blend_equation_advanced = "GL_KHR_blend_equation_advanced"; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 2cd1cc61..11ed070a 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -126,7 +126,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token UNIFORM PATCH SAMPLE BUFFER SHARED %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY %token DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 -%token NOPERSPECTIVE FLAT SMOOTH LAYOUT +%token NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD %token MAT2X2 MAT2X3 MAT2X4 %token MAT3X2 MAT3X3 MAT3X4 @@ -1050,6 +1050,15 @@ interpolation_qualifier $$.init($1.loc); $$.qualifier.nopersp = true; } + | __EXPLICITINTERPAMD { +#ifdef AMD_EXTENSIONS + parseContext.globalCheck($1.loc, "__explicitInterpAMD"); + parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires($1.loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + $$.init($1.loc); + $$.qualifier.explicitInterp = true; +#endif + } ; layout_qualifier diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index c8664f9d..7ae7e70a 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "2.7" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,7 +62,8 @@ /* Copy the first part of user declarations. */ -#line 41 "MachineIndependent/glslang.y" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 41 "glslang.y" /* Based on: @@ -87,13 +88,14 @@ Jutta Degener, 1995 using namespace glslang; -#line 91 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 93 "glslang_tab.cpp" -# ifndef YY_NULLPTR +# ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# define YY_NULL nullptr # else -# define YY_NULLPTR 0 +# define YY_NULL 0 # endif # endif @@ -107,9 +109,9 @@ using namespace glslang; /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -117,287 +119,289 @@ using namespace glslang; extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - MAT2X2 = 325, - MAT2X3 = 326, - MAT2X4 = 327, - MAT3X2 = 328, - MAT3X3 = 329, - MAT3X4 = 330, - MAT4X2 = 331, - MAT4X3 = 332, - MAT4X4 = 333, - DMAT2X2 = 334, - DMAT2X3 = 335, - DMAT2X4 = 336, - DMAT3X2 = 337, - DMAT3X3 = 338, - DMAT3X4 = 339, - DMAT4X2 = 340, - DMAT4X3 = 341, - DMAT4X4 = 342, - ATOMIC_UINT = 343, - SAMPLER1D = 344, - SAMPLER2D = 345, - SAMPLER3D = 346, - SAMPLERCUBE = 347, - SAMPLER1DSHADOW = 348, - SAMPLER2DSHADOW = 349, - SAMPLERCUBESHADOW = 350, - SAMPLER1DARRAY = 351, - SAMPLER2DARRAY = 352, - SAMPLER1DARRAYSHADOW = 353, - SAMPLER2DARRAYSHADOW = 354, - ISAMPLER1D = 355, - ISAMPLER2D = 356, - ISAMPLER3D = 357, - ISAMPLERCUBE = 358, - ISAMPLER1DARRAY = 359, - ISAMPLER2DARRAY = 360, - USAMPLER1D = 361, - USAMPLER2D = 362, - USAMPLER3D = 363, - USAMPLERCUBE = 364, - USAMPLER1DARRAY = 365, - USAMPLER2DARRAY = 366, - SAMPLER2DRECT = 367, - SAMPLER2DRECTSHADOW = 368, - ISAMPLER2DRECT = 369, - USAMPLER2DRECT = 370, - SAMPLERBUFFER = 371, - ISAMPLERBUFFER = 372, - USAMPLERBUFFER = 373, - SAMPLERCUBEARRAY = 374, - SAMPLERCUBEARRAYSHADOW = 375, - ISAMPLERCUBEARRAY = 376, - USAMPLERCUBEARRAY = 377, - SAMPLER2DMS = 378, - ISAMPLER2DMS = 379, - USAMPLER2DMS = 380, - SAMPLER2DMSARRAY = 381, - ISAMPLER2DMSARRAY = 382, - USAMPLER2DMSARRAY = 383, - SAMPLEREXTERNALOES = 384, - SAMPLER = 385, - SAMPLERSHADOW = 386, - TEXTURE1D = 387, - TEXTURE2D = 388, - TEXTURE3D = 389, - TEXTURECUBE = 390, - TEXTURE1DARRAY = 391, - TEXTURE2DARRAY = 392, - ITEXTURE1D = 393, - ITEXTURE2D = 394, - ITEXTURE3D = 395, - ITEXTURECUBE = 396, - ITEXTURE1DARRAY = 397, - ITEXTURE2DARRAY = 398, - UTEXTURE1D = 399, - UTEXTURE2D = 400, - UTEXTURE3D = 401, - UTEXTURECUBE = 402, - UTEXTURE1DARRAY = 403, - UTEXTURE2DARRAY = 404, - TEXTURE2DRECT = 405, - ITEXTURE2DRECT = 406, - UTEXTURE2DRECT = 407, - TEXTUREBUFFER = 408, - ITEXTUREBUFFER = 409, - UTEXTUREBUFFER = 410, - TEXTURECUBEARRAY = 411, - ITEXTURECUBEARRAY = 412, - UTEXTURECUBEARRAY = 413, - TEXTURE2DMS = 414, - ITEXTURE2DMS = 415, - UTEXTURE2DMS = 416, - TEXTURE2DMSARRAY = 417, - ITEXTURE2DMSARRAY = 418, - UTEXTURE2DMSARRAY = 419, - SUBPASSINPUT = 420, - SUBPASSINPUTMS = 421, - ISUBPASSINPUT = 422, - ISUBPASSINPUTMS = 423, - USUBPASSINPUT = 424, - USUBPASSINPUTMS = 425, - IMAGE1D = 426, - IIMAGE1D = 427, - UIMAGE1D = 428, - IMAGE2D = 429, - IIMAGE2D = 430, - UIMAGE2D = 431, - IMAGE3D = 432, - IIMAGE3D = 433, - UIMAGE3D = 434, - IMAGE2DRECT = 435, - IIMAGE2DRECT = 436, - UIMAGE2DRECT = 437, - IMAGECUBE = 438, - IIMAGECUBE = 439, - UIMAGECUBE = 440, - IMAGEBUFFER = 441, - IIMAGEBUFFER = 442, - UIMAGEBUFFER = 443, - IMAGE1DARRAY = 444, - IIMAGE1DARRAY = 445, - UIMAGE1DARRAY = 446, - IMAGE2DARRAY = 447, - IIMAGE2DARRAY = 448, - UIMAGE2DARRAY = 449, - IMAGECUBEARRAY = 450, - IIMAGECUBEARRAY = 451, - UIMAGECUBEARRAY = 452, - IMAGE2DMS = 453, - IIMAGE2DMS = 454, - UIMAGE2DMS = 455, - IMAGE2DMSARRAY = 456, - IIMAGE2DMSARRAY = 457, - UIMAGE2DMSARRAY = 458, - STRUCT = 459, - VOID = 460, - WHILE = 461, - IDENTIFIER = 462, - TYPE_NAME = 463, - FLOATCONSTANT = 464, - DOUBLECONSTANT = 465, - INTCONSTANT = 466, - UINTCONSTANT = 467, - INT64CONSTANT = 468, - UINT64CONSTANT = 469, - BOOLCONSTANT = 470, - LEFT_OP = 471, - RIGHT_OP = 472, - INC_OP = 473, - DEC_OP = 474, - LE_OP = 475, - GE_OP = 476, - EQ_OP = 477, - NE_OP = 478, - AND_OP = 479, - OR_OP = 480, - XOR_OP = 481, - MUL_ASSIGN = 482, - DIV_ASSIGN = 483, - ADD_ASSIGN = 484, - MOD_ASSIGN = 485, - LEFT_ASSIGN = 486, - RIGHT_ASSIGN = 487, - AND_ASSIGN = 488, - XOR_ASSIGN = 489, - OR_ASSIGN = 490, - SUB_ASSIGN = 491, - LEFT_PAREN = 492, - RIGHT_PAREN = 493, - LEFT_BRACKET = 494, - RIGHT_BRACKET = 495, - LEFT_BRACE = 496, - RIGHT_BRACE = 497, - DOT = 498, - COMMA = 499, - COLON = 500, - EQUAL = 501, - SEMICOLON = 502, - BANG = 503, - DASH = 504, - TILDE = 505, - PLUS = 506, - STAR = 507, - SLASH = 508, - PERCENT = 509, - LEFT_ANGLE = 510, - RIGHT_ANGLE = 511, - VERTICAL_BAR = 512, - CARET = 513, - AMPERSAND = 514, - QUESTION = 515, - INVARIANT = 516, - PRECISE = 517, - HIGH_PRECISION = 518, - MEDIUM_PRECISION = 519, - LOW_PRECISION = 520, - PRECISION = 521, - PACKED = 522, - RESOURCE = 523, - SUPERP = 524 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + BREAK = 268, + CONTINUE = 269, + DO = 270, + ELSE = 271, + FOR = 272, + IF = 273, + DISCARD = 274, + RETURN = 275, + SWITCH = 276, + CASE = 277, + DEFAULT = 278, + SUBROUTINE = 279, + BVEC2 = 280, + BVEC3 = 281, + BVEC4 = 282, + IVEC2 = 283, + IVEC3 = 284, + IVEC4 = 285, + I64VEC2 = 286, + I64VEC3 = 287, + I64VEC4 = 288, + UVEC2 = 289, + UVEC3 = 290, + UVEC4 = 291, + U64VEC2 = 292, + U64VEC3 = 293, + U64VEC4 = 294, + VEC2 = 295, + VEC3 = 296, + VEC4 = 297, + MAT2 = 298, + MAT3 = 299, + MAT4 = 300, + CENTROID = 301, + IN = 302, + OUT = 303, + INOUT = 304, + UNIFORM = 305, + PATCH = 306, + SAMPLE = 307, + BUFFER = 308, + SHARED = 309, + COHERENT = 310, + VOLATILE = 311, + RESTRICT = 312, + READONLY = 313, + WRITEONLY = 314, + DVEC2 = 315, + DVEC3 = 316, + DVEC4 = 317, + DMAT2 = 318, + DMAT3 = 319, + DMAT4 = 320, + NOPERSPECTIVE = 321, + FLAT = 322, + SMOOTH = 323, + LAYOUT = 324, + __EXPLICITINTERPAMD = 325, + MAT2X2 = 326, + MAT2X3 = 327, + MAT2X4 = 328, + MAT3X2 = 329, + MAT3X3 = 330, + MAT3X4 = 331, + MAT4X2 = 332, + MAT4X3 = 333, + MAT4X4 = 334, + DMAT2X2 = 335, + DMAT2X3 = 336, + DMAT2X4 = 337, + DMAT3X2 = 338, + DMAT3X3 = 339, + DMAT3X4 = 340, + DMAT4X2 = 341, + DMAT4X3 = 342, + DMAT4X4 = 343, + ATOMIC_UINT = 344, + SAMPLER1D = 345, + SAMPLER2D = 346, + SAMPLER3D = 347, + SAMPLERCUBE = 348, + SAMPLER1DSHADOW = 349, + SAMPLER2DSHADOW = 350, + SAMPLERCUBESHADOW = 351, + SAMPLER1DARRAY = 352, + SAMPLER2DARRAY = 353, + SAMPLER1DARRAYSHADOW = 354, + SAMPLER2DARRAYSHADOW = 355, + ISAMPLER1D = 356, + ISAMPLER2D = 357, + ISAMPLER3D = 358, + ISAMPLERCUBE = 359, + ISAMPLER1DARRAY = 360, + ISAMPLER2DARRAY = 361, + USAMPLER1D = 362, + USAMPLER2D = 363, + USAMPLER3D = 364, + USAMPLERCUBE = 365, + USAMPLER1DARRAY = 366, + USAMPLER2DARRAY = 367, + SAMPLER2DRECT = 368, + SAMPLER2DRECTSHADOW = 369, + ISAMPLER2DRECT = 370, + USAMPLER2DRECT = 371, + SAMPLERBUFFER = 372, + ISAMPLERBUFFER = 373, + USAMPLERBUFFER = 374, + SAMPLERCUBEARRAY = 375, + SAMPLERCUBEARRAYSHADOW = 376, + ISAMPLERCUBEARRAY = 377, + USAMPLERCUBEARRAY = 378, + SAMPLER2DMS = 379, + ISAMPLER2DMS = 380, + USAMPLER2DMS = 381, + SAMPLER2DMSARRAY = 382, + ISAMPLER2DMSARRAY = 383, + USAMPLER2DMSARRAY = 384, + SAMPLEREXTERNALOES = 385, + SAMPLER = 386, + SAMPLERSHADOW = 387, + TEXTURE1D = 388, + TEXTURE2D = 389, + TEXTURE3D = 390, + TEXTURECUBE = 391, + TEXTURE1DARRAY = 392, + TEXTURE2DARRAY = 393, + ITEXTURE1D = 394, + ITEXTURE2D = 395, + ITEXTURE3D = 396, + ITEXTURECUBE = 397, + ITEXTURE1DARRAY = 398, + ITEXTURE2DARRAY = 399, + UTEXTURE1D = 400, + UTEXTURE2D = 401, + UTEXTURE3D = 402, + UTEXTURECUBE = 403, + UTEXTURE1DARRAY = 404, + UTEXTURE2DARRAY = 405, + TEXTURE2DRECT = 406, + ITEXTURE2DRECT = 407, + UTEXTURE2DRECT = 408, + TEXTUREBUFFER = 409, + ITEXTUREBUFFER = 410, + UTEXTUREBUFFER = 411, + TEXTURECUBEARRAY = 412, + ITEXTURECUBEARRAY = 413, + UTEXTURECUBEARRAY = 414, + TEXTURE2DMS = 415, + ITEXTURE2DMS = 416, + UTEXTURE2DMS = 417, + TEXTURE2DMSARRAY = 418, + ITEXTURE2DMSARRAY = 419, + UTEXTURE2DMSARRAY = 420, + SUBPASSINPUT = 421, + SUBPASSINPUTMS = 422, + ISUBPASSINPUT = 423, + ISUBPASSINPUTMS = 424, + USUBPASSINPUT = 425, + USUBPASSINPUTMS = 426, + IMAGE1D = 427, + IIMAGE1D = 428, + UIMAGE1D = 429, + IMAGE2D = 430, + IIMAGE2D = 431, + UIMAGE2D = 432, + IMAGE3D = 433, + IIMAGE3D = 434, + UIMAGE3D = 435, + IMAGE2DRECT = 436, + IIMAGE2DRECT = 437, + UIMAGE2DRECT = 438, + IMAGECUBE = 439, + IIMAGECUBE = 440, + UIMAGECUBE = 441, + IMAGEBUFFER = 442, + IIMAGEBUFFER = 443, + UIMAGEBUFFER = 444, + IMAGE1DARRAY = 445, + IIMAGE1DARRAY = 446, + UIMAGE1DARRAY = 447, + IMAGE2DARRAY = 448, + IIMAGE2DARRAY = 449, + UIMAGE2DARRAY = 450, + IMAGECUBEARRAY = 451, + IIMAGECUBEARRAY = 452, + UIMAGECUBEARRAY = 453, + IMAGE2DMS = 454, + IIMAGE2DMS = 455, + UIMAGE2DMS = 456, + IMAGE2DMSARRAY = 457, + IIMAGE2DMSARRAY = 458, + UIMAGE2DMSARRAY = 459, + STRUCT = 460, + VOID = 461, + WHILE = 462, + IDENTIFIER = 463, + TYPE_NAME = 464, + FLOATCONSTANT = 465, + DOUBLECONSTANT = 466, + INTCONSTANT = 467, + UINTCONSTANT = 468, + INT64CONSTANT = 469, + UINT64CONSTANT = 470, + BOOLCONSTANT = 471, + LEFT_OP = 472, + RIGHT_OP = 473, + INC_OP = 474, + DEC_OP = 475, + LE_OP = 476, + GE_OP = 477, + EQ_OP = 478, + NE_OP = 479, + AND_OP = 480, + OR_OP = 481, + XOR_OP = 482, + MUL_ASSIGN = 483, + DIV_ASSIGN = 484, + ADD_ASSIGN = 485, + MOD_ASSIGN = 486, + LEFT_ASSIGN = 487, + RIGHT_ASSIGN = 488, + AND_ASSIGN = 489, + XOR_ASSIGN = 490, + OR_ASSIGN = 491, + SUB_ASSIGN = 492, + LEFT_PAREN = 493, + RIGHT_PAREN = 494, + LEFT_BRACKET = 495, + RIGHT_BRACKET = 496, + LEFT_BRACE = 497, + RIGHT_BRACE = 498, + DOT = 499, + COMMA = 500, + COLON = 501, + EQUAL = 502, + SEMICOLON = 503, + BANG = 504, + DASH = 505, + TILDE = 506, + PLUS = 507, + STAR = 508, + SLASH = 509, + PERCENT = 510, + LEFT_ANGLE = 511, + RIGHT_ANGLE = 512, + VERTICAL_BAR = 513, + CARET = 514, + AMPERSAND = 515, + QUESTION = 516, + INVARIANT = 517, + PRECISE = 518, + HIGH_PRECISION = 519, + MEDIUM_PRECISION = 520, + LOW_PRECISION = 521, + PRECISION = 522, + PACKED = 523, + RESOURCE = 524, + SUPERP = 525 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:355 */ +/* Line 387 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -431,22 +435,35 @@ union YYSTYPE }; } interm; -#line 435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 387 of yacc.c */ +#line 441 "glslang_tab.cpp" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 100 "MachineIndependent/glslang.y" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 100 "glslang.y" /* windows only pragma */ @@ -462,7 +479,8 @@ int yyparse (glslang::TParseContext* pParseContext); extern int yylex(YYSTYPE*, TParseContext&); -#line 466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 484 "glslang_tab.cpp" #ifdef short # undef short @@ -476,8 +494,11 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#else +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; +#else +typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -497,7 +518,8 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -519,33 +541,6 @@ typedef short int yytype_int16; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -#endif - -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -553,25 +548,23 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(N) (N) #else -# define YY_INITIAL_VALUE(Value) Value +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; #endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END +{ + return yyi; +} #endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - #if ! defined yyoverflow || YYERROR_VERBOSE @@ -590,7 +583,8 @@ typedef short int yytype_int16; # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -602,8 +596,8 @@ typedef short int yytype_int16; # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -619,7 +613,7 @@ typedef short int yytype_int16; # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -627,13 +621,15 @@ typedef short int yytype_int16; # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -643,7 +639,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -668,16 +664,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) #endif @@ -696,35 +692,33 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 248 +#define YYFINAL 249 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5943 +#define YYLAST 5966 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 270 +#define YYNTOKENS 271 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 421 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 553 +#define YYNRULES 422 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 554 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 524 +#define YYMAXUTOK 525 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -779,11 +773,172 @@ static const yytype_uint16 yytranslate[] = 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269 + 265, 266, 267, 268, 269, 270 }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 25, 27, 32, 34, 38, 41, 44, 46, + 48, 50, 53, 56, 59, 61, 64, 68, 71, 73, + 75, 77, 80, 83, 86, 88, 90, 92, 94, 96, + 100, 104, 108, 110, 114, 118, 120, 124, 128, 130, + 134, 138, 142, 146, 148, 152, 156, 158, 162, 164, + 168, 170, 174, 176, 180, 182, 186, 188, 192, 194, + 195, 202, 204, 208, 210, 212, 214, 216, 218, 220, + 222, 224, 226, 228, 230, 232, 236, 238, 241, 244, + 249, 252, 256, 261, 264, 268, 273, 274, 281, 284, + 288, 291, 293, 295, 298, 302, 306, 309, 313, 316, + 318, 321, 323, 325, 327, 331, 336, 343, 349, 351, + 354, 358, 364, 369, 371, 374, 376, 378, 380, 382, + 384, 389, 391, 395, 397, 401, 403, 405, 407, 410, + 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, + 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, + 452, 454, 456, 458, 463, 465, 469, 471, 474, 477, + 481, 485, 490, 492, 494, 496, 498, 500, 502, 504, + 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, + 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, + 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, + 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, + 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, + 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, + 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, + 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, + 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, + 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, + 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, + 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, + 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, + 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, + 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, + 826, 828, 830, 832, 834, 836, 838, 839, 846, 847, + 853, 855, 858, 862, 867, 869, 873, 875, 878, 880, + 884, 889, 891, 895, 897, 899, 901, 903, 905, 907, + 909, 911, 913, 915, 918, 919, 920, 926, 928, 930, + 931, 934, 935, 938, 941, 945, 947, 950, 952, 955, + 961, 965, 967, 969, 974, 975, 984, 985, 987, 991, + 994, 995, 1002, 1003, 1012, 1013, 1021, 1023, 1025, 1027, + 1028, 1031, 1035, 1038, 1041, 1044, 1048, 1051, 1053, 1056, + 1058, 1060, 1061 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 367, 0, -1, 208, -1, 272, -1, 212, -1, 213, + -1, 214, -1, 215, -1, 210, -1, 211, -1, 216, + -1, 238, 300, 239, -1, 273, -1, 274, 240, 275, + 241, -1, 276, -1, 274, 244, 208, -1, 274, 219, + -1, 274, 220, -1, 300, -1, 277, -1, 278, -1, + 280, 239, -1, 279, 239, -1, 281, 206, -1, 281, + -1, 281, 298, -1, 280, 245, 298, -1, 282, 238, + -1, 326, -1, 274, -1, 274, -1, 219, 283, -1, + 220, 283, -1, 284, 283, -1, 252, -1, 250, -1, + 249, -1, 251, -1, 283, -1, 285, 253, 283, -1, + 285, 254, 283, -1, 285, 255, 283, -1, 285, -1, + 286, 252, 285, -1, 286, 250, 285, -1, 286, -1, + 287, 217, 286, -1, 287, 218, 286, -1, 287, -1, + 288, 256, 287, -1, 288, 257, 287, -1, 288, 221, + 287, -1, 288, 222, 287, -1, 288, -1, 289, 223, + 288, -1, 289, 224, 288, -1, 289, -1, 290, 260, + 289, -1, 290, -1, 291, 259, 290, -1, 291, -1, + 292, 258, 291, -1, 292, -1, 293, 225, 292, -1, + 293, -1, 294, 227, 293, -1, 294, -1, 295, 226, + 294, -1, 295, -1, -1, 295, 261, 297, 300, 246, + 298, -1, 296, -1, 283, 299, 298, -1, 247, -1, + 228, -1, 229, -1, 231, -1, 230, -1, 237, -1, + 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, + 298, -1, 300, 245, 298, -1, 296, -1, 306, 248, + -1, 313, 248, -1, 267, 329, 326, 248, -1, 303, + 248, -1, 303, 208, 248, -1, 303, 208, 327, 248, + -1, 322, 248, -1, 322, 208, 248, -1, 322, 208, + 305, 248, -1, -1, 322, 208, 242, 304, 333, 243, + -1, 245, 208, -1, 305, 245, 208, -1, 307, 239, + -1, 309, -1, 308, -1, 309, 311, -1, 308, 245, + 311, -1, 315, 208, 238, -1, 326, 208, -1, 326, + 208, 327, -1, 322, 310, -1, 310, -1, 322, 312, + -1, 312, -1, 326, -1, 314, -1, 313, 245, 208, + -1, 313, 245, 208, 327, -1, 313, 245, 208, 327, + 247, 337, -1, 313, 245, 208, 247, 337, -1, 315, + -1, 315, 208, -1, 315, 208, 327, -1, 315, 208, + 327, 247, 337, -1, 315, 208, 247, 337, -1, 326, + -1, 322, 326, -1, 262, -1, 68, -1, 67, -1, + 66, -1, 70, -1, 69, 238, 319, 239, -1, 320, + -1, 319, 245, 320, -1, 208, -1, 208, 247, 301, + -1, 54, -1, 263, -1, 323, -1, 322, 323, -1, + 324, -1, 318, -1, 329, -1, 317, -1, 316, -1, + 321, -1, 5, -1, 3, -1, 4, -1, 49, -1, + 47, -1, 48, -1, 46, -1, 51, -1, 52, -1, + 50, -1, 53, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 24, -1, 24, 238, + 325, 239, -1, 209, -1, 325, 245, 209, -1, 328, + -1, 328, 327, -1, 240, 241, -1, 240, 296, 241, + -1, 327, 240, 241, -1, 327, 240, 296, 241, -1, + 206, -1, 7, -1, 8, -1, 9, -1, 10, -1, + 11, -1, 12, -1, 6, -1, 40, -1, 41, -1, + 42, -1, 60, -1, 61, -1, 62, -1, 25, -1, + 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, + 31, -1, 32, -1, 33, -1, 34, -1, 35, -1, + 36, -1, 37, -1, 38, -1, 39, -1, 43, -1, + 44, -1, 45, -1, 71, -1, 72, -1, 73, -1, + 74, -1, 75, -1, 76, -1, 77, -1, 78, -1, + 79, -1, 63, -1, 64, -1, 65, -1, 80, -1, + 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, + 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, + 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, + 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, + 120, -1, 121, -1, 101, -1, 102, -1, 103, -1, + 104, -1, 105, -1, 106, -1, 122, -1, 107, -1, + 108, -1, 109, -1, 110, -1, 111, -1, 112, -1, + 123, -1, 113, -1, 114, -1, 115, -1, 116, -1, + 117, -1, 118, -1, 119, -1, 124, -1, 125, -1, + 126, -1, 127, -1, 128, -1, 129, -1, 131, -1, + 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, + 137, -1, 138, -1, 157, -1, 139, -1, 140, -1, + 141, -1, 142, -1, 143, -1, 144, -1, 158, -1, + 145, -1, 146, -1, 147, -1, 148, -1, 149, -1, + 150, -1, 159, -1, 151, -1, 152, -1, 153, -1, + 154, -1, 155, -1, 156, -1, 160, -1, 161, -1, + 162, -1, 163, -1, 164, -1, 165, -1, 172, -1, + 173, -1, 174, -1, 175, -1, 176, -1, 177, -1, + 178, -1, 179, -1, 180, -1, 181, -1, 182, -1, + 183, -1, 184, -1, 185, -1, 186, -1, 187, -1, + 188, -1, 189, -1, 190, -1, 191, -1, 192, -1, + 193, -1, 194, -1, 195, -1, 196, -1, 197, -1, + 198, -1, 199, -1, 200, -1, 201, -1, 202, -1, + 203, -1, 204, -1, 130, -1, 166, -1, 167, -1, + 168, -1, 169, -1, 170, -1, 171, -1, 330, -1, + 209, -1, 264, -1, 265, -1, 266, -1, -1, 205, + 208, 242, 331, 333, 243, -1, -1, 205, 242, 332, + 333, 243, -1, 334, -1, 333, 334, -1, 326, 335, + 248, -1, 322, 326, 335, 248, -1, 336, -1, 335, + 245, 336, -1, 208, -1, 208, 327, -1, 298, -1, + 242, 338, 243, -1, 242, 338, 245, 243, -1, 337, + -1, 338, 245, 337, -1, 302, -1, 342, -1, 341, + -1, 339, -1, 351, -1, 352, -1, 355, -1, 358, + -1, 359, -1, 366, -1, 242, 243, -1, -1, -1, + 242, 343, 350, 344, 243, -1, 349, -1, 341, -1, + -1, 347, 342, -1, -1, 348, 341, -1, 242, 243, + -1, 242, 350, 243, -1, 340, -1, 350, 340, -1, + 248, -1, 300, 248, -1, 18, 238, 300, 239, 353, + -1, 346, 16, 346, -1, 346, -1, 300, -1, 315, + 208, 247, 337, -1, -1, 21, 238, 300, 239, 356, + 242, 357, 243, -1, -1, 350, -1, 22, 300, 246, + -1, 23, 246, -1, -1, 207, 238, 360, 354, 239, + 345, -1, -1, 15, 361, 340, 207, 238, 300, 239, + 248, -1, -1, 17, 238, 362, 363, 365, 239, 345, + -1, 351, -1, 339, -1, 354, -1, -1, 364, 248, + -1, 364, 248, 300, -1, 14, 248, -1, 13, 248, + -1, 20, 248, -1, 20, 300, 248, -1, 19, 248, + -1, 368, -1, 367, 368, -1, 369, -1, 302, -1, + -1, 306, 370, 349, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 246, 246, 252, 255, 258, 262, 266, 270, 273, @@ -798,37 +953,37 @@ static const yytype_uint16 yyrline[] = 728, 732, 736, 740, 745, 750, 759, 759, 770, 774, 781, 788, 791, 798, 806, 826, 844, 859, 882, 893, 903, 913, 923, 932, 935, 939, 943, 948, 956, 961, - 966, 971, 976, 985, 996, 1023, 1032, 1039, 1046, 1056, - 1062, 1065, 1072, 1076, 1080, 1088, 1097, 1100, 1111, 1114, - 1117, 1120, 1124, 1128, 1135, 1139, 1151, 1165, 1170, 1176, - 1182, 1189, 1195, 1200, 1205, 1210, 1217, 1221, 1225, 1229, - 1233, 1237, 1243, 1255, 1258, 1263, 1267, 1276, 1281, 1289, - 1293, 1303, 1307, 1311, 1316, 1320, 1325, 1330, 1335, 1339, - 1344, 1349, 1354, 1360, 1366, 1372, 1377, 1382, 1387, 1392, - 1397, 1402, 1408, 1414, 1420, 1426, 1432, 1438, 1444, 1450, - 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, - 1506, 1511, 1516, 1522, 1528, 1534, 1540, 1546, 1552, 1558, - 1564, 1570, 1576, 1582, 1588, 1593, 1598, 1603, 1608, 1613, - 1618, 1623, 1628, 1633, 1638, 1643, 1648, 1653, 1658, 1663, - 1668, 1673, 1678, 1683, 1688, 1693, 1698, 1703, 1708, 1713, - 1718, 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1758, 1763, - 1768, 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813, - 1818, 1823, 1828, 1833, 1838, 1843, 1848, 1853, 1858, 1863, - 1868, 1873, 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, - 1918, 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, - 1968, 1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, - 2018, 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063, - 2068, 2073, 2078, 2083, 2088, 2093, 2098, 2103, 2108, 2113, - 2118, 2123, 2128, 2133, 2139, 2145, 2151, 2157, 2163, 2169, - 2175, 2180, 2196, 2202, 2208, 2217, 2217, 2228, 2228, 2238, - 2241, 2254, 2272, 2296, 2300, 2306, 2311, 2322, 2325, 2331, - 2340, 2343, 2349, 2353, 2354, 2360, 2361, 2362, 2363, 2364, - 2365, 2366, 2370, 2371, 2375, 2371, 2387, 2388, 2392, 2392, - 2399, 2399, 2413, 2416, 2424, 2432, 2443, 2444, 2448, 2455, - 2459, 2467, 2471, 2484, 2484, 2504, 2507, 2513, 2525, 2537, - 2537, 2552, 2552, 2568, 2568, 2589, 2592, 2598, 2601, 2607, - 2611, 2618, 2623, 2628, 2635, 2638, 2647, 2651, 2658, 2661, - 2667, 2667 + 966, 971, 976, 985, 996, 1023, 1032, 1039, 1046, 1053, + 1065, 1071, 1074, 1081, 1085, 1089, 1097, 1106, 1109, 1120, + 1123, 1126, 1129, 1133, 1137, 1144, 1148, 1160, 1174, 1179, + 1185, 1191, 1198, 1204, 1209, 1214, 1219, 1226, 1230, 1234, + 1238, 1242, 1246, 1252, 1264, 1267, 1272, 1276, 1285, 1290, + 1298, 1302, 1312, 1316, 1320, 1325, 1329, 1334, 1339, 1344, + 1348, 1353, 1358, 1363, 1369, 1375, 1381, 1386, 1391, 1396, + 1401, 1406, 1411, 1417, 1423, 1429, 1435, 1441, 1447, 1453, + 1459, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, + 1510, 1515, 1520, 1525, 1531, 1537, 1543, 1549, 1555, 1561, + 1567, 1573, 1579, 1585, 1591, 1597, 1602, 1607, 1612, 1617, + 1622, 1627, 1632, 1637, 1642, 1647, 1652, 1657, 1662, 1667, + 1672, 1677, 1682, 1687, 1692, 1697, 1702, 1707, 1712, 1717, + 1722, 1727, 1732, 1737, 1742, 1747, 1752, 1757, 1762, 1767, + 1772, 1777, 1782, 1787, 1792, 1797, 1802, 1807, 1812, 1817, + 1822, 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862, 1867, + 1872, 1877, 1882, 1887, 1892, 1897, 1902, 1907, 1912, 1917, + 1922, 1927, 1932, 1937, 1942, 1947, 1952, 1957, 1962, 1967, + 1972, 1977, 1982, 1987, 1992, 1997, 2002, 2007, 2012, 2017, + 2022, 2027, 2032, 2037, 2042, 2047, 2052, 2057, 2062, 2067, + 2072, 2077, 2082, 2087, 2092, 2097, 2102, 2107, 2112, 2117, + 2122, 2127, 2132, 2137, 2142, 2148, 2154, 2160, 2166, 2172, + 2178, 2184, 2189, 2205, 2211, 2217, 2226, 2226, 2237, 2237, + 2247, 2250, 2263, 2281, 2305, 2309, 2315, 2320, 2331, 2334, + 2340, 2349, 2352, 2358, 2362, 2363, 2369, 2370, 2371, 2372, + 2373, 2374, 2375, 2379, 2380, 2384, 2380, 2396, 2397, 2401, + 2401, 2408, 2408, 2422, 2425, 2433, 2441, 2452, 2453, 2457, + 2464, 2468, 2476, 2480, 2493, 2493, 2513, 2516, 2522, 2534, + 2546, 2546, 2561, 2561, 2577, 2577, 2598, 2601, 2607, 2610, + 2616, 2620, 2627, 2632, 2637, 2644, 2647, 2656, 2660, 2667, + 2670, 2676, 2676 }; #endif @@ -846,54 +1001,55 @@ static const char *const yytname[] = "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", - "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "MAT2X2", "MAT2X3", - "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", - "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", - "DMAT4X2", "DMAT4X3", "DMAT4X4", "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", - "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", - "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", "SAMPLER2DARRAY", - "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", - "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER1DARRAY", - "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", "USAMPLER3D", - "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", "SAMPLER2DRECT", - "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT", - "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLERCUBEARRAY", - "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", - "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", - "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", - "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", - "TEXTURECUBE", "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", - "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", - "ITEXTURE2DARRAY", "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", - "UTEXTURECUBE", "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT", - "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER", - "UTEXTUREBUFFER", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY", - "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS", - "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY", - "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", - "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", - "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", - "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", - "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", - "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", - "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", - "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", - "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "STRUCT", "VOID", - "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", - "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT", - "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", - "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", - "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", - "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", - "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", - "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", - "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION", - "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION", - "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept", - "variable_identifier", "primary_expression", "postfix_expression", - "integer_expression", "function_call", "function_call_or_method", - "function_call_generic", "function_call_header_no_parameters", + "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", + "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", + "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", + "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", + "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", + "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", + "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", + "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", + "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", + "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", + "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", + "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", + "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", + "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", + "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", + "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", + "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", + "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", + "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", + "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", + "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT", + "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY", + "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", + "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", + "UTEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", + "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D", + "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D", + "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT", + "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER", + "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY", + "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY", + "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS", + "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", + "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", + "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", + "UINT64CONSTANT", "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", + "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", + "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", + "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", + "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", + "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", + "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", + "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", + "AMPERSAND", "QUESTION", "INVARIANT", "PRECISE", "HIGH_PRECISION", + "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", + "SUPERP", "$accept", "variable_identifier", "primary_expression", + "postfix_expression", "integer_expression", "function_call", + "function_call_or_method", "function_call_generic", + "function_call_header_no_parameters", "function_call_header_with_parameters", "function_call_header", "function_identifier", "unary_expression", "unary_operator", "multiplicative_expression", "additive_expression", "shift_expression", @@ -923,13 +1079,13 @@ static const char *const yytname[] = "switch_statement_list", "case_label", "iteration_statement", "$@10", "$@11", "$@12", "for_init_statement", "conditionopt", "for_rest_statement", "jump_statement", "translation_unit", - "external_declaration", "function_definition", "$@13", YY_NULLPTR + "external_declaration", "function_definition", "$@13", YY_NULL }; #endif # ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -958,343 +1114,353 @@ static const yytype_uint16 yytoknum[] = 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524 + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525 }; # endif -#define YYPACT_NINF -496 - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-496))) - -#define YYTABLE_NINF -379 - -#define yytable_value_is_error(Yytable_value) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = { - 2394, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -199, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -187, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -180, -496, -496, -496, -496, -496, -496, -496, -134, - -496, -191, -181, -155, -131, 3871, -133, -496, -69, -496, - -496, -496, -496, 2900, -496, -496, -496, -92, -496, -496, - 546, -496, -496, -68, -45, -91, -496, 5735, -200, -496, - -496, -85, -496, 3871, -496, -496, -496, 3871, -50, -49, - -496, -209, -193, -496, -496, -496, 4323, -80, -496, -496, - -496, -202, -496, -86, -171, -496, -496, 3871, -84, -496, - -198, 810, -496, -496, -496, -496, -92, -214, -496, 4558, - -176, -496, -46, -496, -127, -496, -496, -496, -496, -496, - -496, -496, -496, 5271, 5271, 5271, -496, -496, -496, -496, - -496, -496, -496, -175, -496, -496, -496, -73, -169, 5503, - -71, -496, 5271, -118, -170, -195, -197, -90, -89, -87, - -88, -57, -58, -208, -67, -496, 4804, -496, -36, 5271, - -496, -45, 3871, 3871, -33, 3145, -496, -496, -496, -72, - -70, -496, -61, -59, -66, 5039, -55, 5271, -62, -51, - -54, -496, -496, -141, -496, -496, -125, -496, -181, -48, - -496, -496, -496, -496, 1074, -496, -496, -496, -496, -496, - -496, -80, 4558, -174, 4558, -496, -496, 4558, 3871, -496, - -23, -496, -496, -496, -167, -496, -496, 5271, -20, -496, - -496, 5271, -43, -496, -496, -496, 5271, 5271, 5271, 5271, - 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, - 5271, 5271, 5271, 5271, 5271, -496, -496, -496, -44, -496, - -496, -496, -496, 3387, -33, -92, -121, -496, -496, -496, - -496, -496, 1338, -496, 5271, -496, -496, -120, 5271, -102, - -496, -496, -496, 1338, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, 5271, 5271, -496, -496, -496, - -496, 4558, -496, -105, -496, 3629, -496, -496, -42, -52, - -496, -496, -496, -496, -496, -118, -118, -170, -170, -195, - -195, -195, -195, -197, -197, -90, -89, -87, -88, -57, - -58, 5271, -496, -496, -119, -80, -33, -496, -16, 2130, - -164, -496, -160, -496, 2637, 1338, -496, -496, -496, -496, - 4077, -496, -496, -99, -496, -496, -40, -496, -496, 2637, - -41, -496, -52, -8, 3871, -35, -38, -496, -496, 5271, - 5271, -496, -39, -32, 191, -31, 1866, -496, -30, -34, - 1602, -496, -496, -138, 5271, 1602, -41, -496, -496, 1338, - 4558, -496, -496, -496, -29, -52, -496, -496, 1338, -27, - -496, -496, -496 + 0, 271, 272, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 274, 274, 274, 274, 274, 274, 275, 276, + 277, 278, 278, 279, 279, 280, 280, 281, 282, 282, + 283, 283, 283, 283, 284, 284, 284, 284, 285, 285, + 285, 285, 286, 286, 286, 287, 287, 287, 288, 288, + 288, 288, 288, 289, 289, 289, 290, 290, 291, 291, + 292, 292, 293, 293, 294, 294, 295, 295, 296, 297, + 296, 298, 298, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 300, 300, 301, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 304, 303, 305, 305, + 306, 307, 307, 308, 308, 309, 310, 310, 311, 311, + 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, + 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, + 318, 319, 319, 320, 320, 320, 321, 322, 322, 323, + 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 325, 325, 326, 326, 327, 327, + 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 329, 329, 329, 331, 330, 332, 330, + 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, + 337, 338, 338, 339, 340, 340, 341, 341, 341, 341, + 341, 341, 341, 342, 343, 344, 342, 345, 345, 347, + 346, 348, 346, 349, 349, 350, 350, 351, 351, 352, + 353, 353, 354, 354, 356, 355, 357, 357, 358, 358, + 360, 359, 361, 359, 362, 359, 363, 363, 364, 364, + 365, 365, 366, 366, 366, 366, 366, 367, 367, 368, + 368, 370, 369 }; - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, + 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, + 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, + 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, + 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, + 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, + 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 1, 3, 1, 2, 2, 3, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, + 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, + 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, + 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, + 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, + 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, + 1, 0, 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 145, 146, 144, 178, 172, 173, 174, 175, 176, - 177, 161, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 179, 180, 181, - 200, 201, 202, 150, 148, 149, 147, 153, 151, 152, - 154, 155, 156, 157, 158, 159, 160, 182, 183, 184, - 212, 213, 214, 128, 127, 126, 0, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 215, 216, 217, 218, + 0, 146, 147, 145, 179, 173, 174, 175, 176, 177, + 178, 162, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 180, 181, 182, + 201, 202, 203, 151, 149, 150, 148, 154, 152, 153, + 155, 156, 157, 158, 159, 160, 161, 183, 184, 185, + 213, 214, 215, 128, 127, 126, 0, 129, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 238, 239, 240, - 241, 242, 243, 245, 246, 247, 248, 249, 250, 252, - 253, 254, 255, 256, 257, 258, 236, 237, 244, 251, - 259, 260, 261, 262, 263, 264, 333, 265, 266, 267, - 268, 269, 270, 271, 272, 274, 275, 276, 277, 278, - 279, 281, 282, 283, 284, 285, 286, 288, 289, 290, - 291, 292, 293, 273, 280, 287, 294, 295, 296, 297, - 298, 299, 334, 335, 336, 337, 338, 339, 300, 301, + 229, 230, 231, 232, 233, 234, 235, 236, 239, 240, + 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, + 253, 254, 255, 256, 257, 258, 259, 237, 238, 245, + 252, 260, 261, 262, 263, 264, 265, 334, 266, 267, + 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, + 279, 280, 282, 283, 284, 285, 286, 287, 289, 290, + 291, 292, 293, 294, 274, 281, 288, 295, 296, 297, + 298, 299, 300, 335, 336, 337, 338, 339, 340, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 0, 171, 341, 125, 135, 342, 343, 344, 0, - 419, 0, 420, 0, 102, 101, 0, 113, 118, 142, - 141, 139, 143, 0, 136, 138, 123, 165, 140, 340, - 0, 416, 418, 0, 0, 0, 347, 0, 0, 90, - 87, 0, 100, 0, 109, 103, 111, 0, 112, 0, - 88, 119, 0, 93, 137, 124, 0, 166, 1, 417, - 163, 0, 134, 132, 0, 130, 345, 0, 0, 91, - 0, 0, 421, 104, 108, 110, 106, 114, 105, 0, - 120, 96, 0, 94, 0, 2, 8, 9, 4, 5, - 6, 7, 10, 0, 0, 0, 167, 36, 35, 37, - 34, 3, 12, 30, 14, 19, 20, 0, 0, 24, - 0, 38, 0, 42, 45, 48, 53, 56, 58, 60, - 62, 64, 66, 68, 0, 28, 0, 162, 0, 0, - 129, 0, 0, 0, 0, 0, 349, 89, 92, 0, - 0, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 373, 382, 386, 38, 71, 84, 0, 362, 0, 123, - 365, 384, 364, 363, 0, 366, 367, 368, 369, 370, - 371, 107, 0, 115, 0, 357, 122, 0, 0, 98, - 0, 95, 31, 32, 0, 16, 17, 0, 0, 22, - 21, 0, 171, 25, 27, 33, 0, 0, 0, 0, + 332, 333, 0, 172, 342, 125, 136, 343, 344, 345, + 0, 420, 0, 421, 0, 102, 101, 0, 113, 118, + 143, 142, 140, 144, 0, 137, 139, 123, 166, 141, + 341, 0, 417, 419, 0, 0, 0, 348, 0, 0, + 90, 87, 0, 100, 0, 109, 103, 111, 0, 112, + 0, 88, 119, 0, 93, 138, 124, 0, 167, 1, + 418, 164, 0, 135, 133, 0, 131, 346, 0, 0, + 91, 0, 0, 422, 104, 108, 110, 106, 114, 105, + 0, 120, 96, 0, 94, 0, 2, 8, 9, 4, + 5, 6, 7, 10, 0, 0, 0, 168, 36, 35, + 37, 34, 3, 12, 30, 14, 19, 20, 0, 0, + 24, 0, 38, 0, 42, 45, 48, 53, 56, 58, + 60, 62, 64, 66, 68, 0, 28, 0, 163, 0, + 0, 130, 0, 0, 0, 0, 0, 350, 89, 92, + 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 374, 383, 387, 38, 71, 84, 0, 363, 0, + 123, 366, 385, 365, 364, 0, 367, 368, 369, 370, + 371, 372, 107, 0, 115, 0, 358, 122, 0, 0, + 98, 0, 95, 31, 32, 0, 16, 17, 0, 0, + 22, 21, 0, 172, 25, 27, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 168, 169, 0, 164, - 86, 133, 131, 0, 0, 355, 0, 353, 348, 350, - 412, 411, 0, 403, 0, 415, 413, 0, 0, 0, - 398, 399, 372, 0, 74, 75, 77, 76, 79, 80, - 81, 82, 83, 78, 73, 0, 0, 387, 383, 385, - 117, 0, 360, 0, 121, 0, 99, 11, 0, 18, - 15, 26, 39, 40, 41, 44, 43, 46, 47, 51, - 52, 49, 50, 54, 55, 57, 59, 61, 63, 65, - 67, 0, 170, 346, 0, 356, 0, 351, 0, 0, - 0, 414, 0, 397, 0, 374, 72, 85, 116, 358, - 0, 97, 13, 0, 352, 354, 0, 406, 405, 408, - 380, 393, 391, 0, 0, 0, 0, 359, 361, 0, - 0, 407, 0, 0, 390, 0, 0, 388, 0, 0, - 0, 375, 70, 0, 409, 0, 380, 379, 381, 395, - 0, 377, 400, 376, 0, 410, 404, 389, 396, 0, - 392, 402, 394 + 0, 0, 0, 0, 0, 0, 69, 169, 170, 0, + 165, 86, 134, 132, 0, 0, 356, 0, 354, 349, + 351, 413, 412, 0, 404, 0, 416, 414, 0, 0, + 0, 399, 400, 373, 0, 74, 75, 77, 76, 79, + 80, 81, 82, 83, 78, 73, 0, 0, 388, 384, + 386, 117, 0, 361, 0, 121, 0, 99, 11, 0, + 18, 15, 26, 39, 40, 41, 44, 43, 46, 47, + 51, 52, 49, 50, 54, 55, 57, 59, 61, 63, + 65, 67, 0, 171, 347, 0, 357, 0, 352, 0, + 0, 0, 415, 0, 398, 0, 375, 72, 85, 116, + 359, 0, 97, 13, 0, 353, 355, 0, 407, 406, + 409, 381, 394, 392, 0, 0, 0, 0, 360, 362, + 0, 0, 408, 0, 0, 391, 0, 0, 389, 0, + 0, 0, 376, 70, 0, 410, 0, 381, 380, 382, + 396, 0, 378, 401, 377, 0, 411, 405, 390, 397, + 0, 393, 403, 395 }; - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -496, -496, -496, -496, -496, -496, -496, -496, -496, -496, - -496, -496, -53, -496, -237, -288, -286, -243, -183, -179, - -184, -177, -168, -185, -496, -234, -496, -266, -496, -280, - -496, 4, -496, -496, -496, 6, -496, -496, -496, -15, - -10, -9, -496, -496, -475, -496, -496, -496, -496, -83, - -496, -204, -211, -496, -496, 0, -221, -496, 33, -496, - -496, -496, -308, -314, -178, -247, -349, -496, -248, -346, - -495, -283, -496, -496, -292, -291, -496, -496, 13, -423, - -242, -496, -496, -263, -496, -496, -496, -496, -496, -496, - -496, -496, -496, -496, -496, -496, -496, 28, -496, -496 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ +/* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 291, 292, 293, 458, 294, 295, 296, 297, 298, - 299, 300, 343, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 344, 481, 345, 445, 346, - 411, 347, 201, 368, 274, 348, 203, 204, 205, 234, - 235, 236, 206, 207, 208, 209, 210, 211, 254, 255, - 212, 213, 214, 215, 251, 315, 247, 217, 218, 219, - 322, 257, 325, 326, 416, 417, 366, 453, 350, 351, - 352, 353, 433, 516, 542, 524, 525, 526, 543, 354, - 355, 356, 527, 515, 357, 528, 549, 358, 359, 494, - 422, 489, 509, 522, 523, 360, 220, 221, 222, 231 + -1, 292, 293, 294, 459, 295, 296, 297, 298, 299, + 300, 301, 344, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 345, 482, 346, 446, 347, + 412, 348, 202, 369, 275, 349, 204, 205, 206, 235, + 236, 237, 207, 208, 209, 210, 211, 212, 255, 256, + 213, 214, 215, 216, 252, 316, 248, 218, 219, 220, + 323, 258, 326, 327, 417, 418, 367, 454, 351, 352, + 353, 354, 434, 517, 543, 525, 526, 527, 544, 355, + 356, 357, 528, 516, 358, 529, 550, 359, 360, 495, + 423, 490, 510, 523, 524, 361, 221, 222, 223, 232 }; - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -495 +static const yytype_int16 yypact[] = +{ + 2402, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -216, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -198, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -190, -495, -495, -495, -495, -495, -495, -495, + -127, -495, -189, -193, -158, -149, 3885, -207, -495, -98, + -495, -495, -495, -495, 2910, -495, -495, -495, -106, -495, + -495, 547, -495, -495, -62, -45, -90, -495, 5757, -217, + -495, -495, -86, -495, 3885, -495, -495, -495, 3885, -51, + -50, -495, -208, -155, -495, -495, -495, 4339, -81, -495, + -495, -495, -185, -495, -87, -157, -495, -495, 3885, -83, + -495, -204, 812, -495, -495, -495, -495, -106, -183, -495, + 4575, -162, -495, -47, -495, -119, -495, -495, -495, -495, + -495, -495, -495, -495, 5291, 5291, 5291, -495, -495, -495, + -495, -495, -495, -495, -195, -495, -495, -495, -77, -150, + 5524, -72, -495, 5291, -111, -144, -167, -194, -147, -93, + -91, -89, -55, -56, -213, -69, -495, 4822, -495, -36, + 5291, -495, -45, 3885, 3885, -34, 3156, -495, -495, -495, + -73, -71, -495, -60, -59, -66, 5058, -54, 5291, -70, + -49, -58, -495, -495, -163, -495, -495, -118, -495, -193, + -46, -495, -495, -495, -495, 1077, -495, -495, -495, -495, + -495, -495, -81, 4575, -161, 4575, -495, -495, 4575, 3885, + -495, -25, -495, -495, -495, -145, -495, -495, 5291, -21, + -495, -495, 5291, -48, -495, -495, -495, 5291, 5291, 5291, + 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, + 5291, 5291, 5291, 5291, 5291, 5291, -495, -495, -495, -44, + -495, -495, -495, -495, 3399, -34, -106, -117, -495, -495, + -495, -495, -495, 1342, -495, 5291, -495, -495, -113, 5291, + -154, -495, -495, -495, 1342, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, 5291, 5291, -495, -495, + -495, -495, 4575, -495, -92, -495, 3642, -495, -495, -43, + -57, -495, -495, -495, -495, -495, -111, -111, -144, -144, + -167, -167, -167, -167, -194, -194, -147, -93, -91, -89, + -55, -56, 5291, -495, -495, -112, -81, -34, -495, -14, + 2137, -136, -495, -134, -495, 2646, 1342, -495, -495, -495, + -495, 4092, -495, -495, -131, -495, -495, -42, -495, -495, + 2646, -39, -495, -57, -9, 3885, -35, -38, -495, -495, + 5291, 5291, -495, -41, -31, 184, -32, 1872, -495, -30, + -29, 1607, -495, -495, -132, 5291, 1607, -39, -495, -495, + 1342, 4575, -495, -495, -495, -37, -57, -495, -495, 1342, + -27, -495, -495, -495 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, + -495, -495, -53, -495, -271, -252, -272, -244, -187, -184, + -182, -181, -179, -186, -495, -237, -495, -266, -495, -280, + -495, 3, -495, -495, -495, 5, -495, -495, -495, -15, + -7, -5, -495, -495, -475, -495, -495, -495, -495, -85, + -495, -205, -212, -495, -495, 0, -221, -495, 29, -495, + -495, -495, -308, -310, -176, -251, -351, -495, -250, -348, + -494, -284, -495, -495, -293, -292, -495, -495, 12, -423, + -243, -495, -495, -264, -495, -495, -495, -495, -495, -495, + -495, -495, -495, -495, -495, -495, -495, 27, -495, -495 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -380 static const yytype_int16 yytable[] = { - 216, 237, 244, 365, 200, 374, 202, 260, 449, 252, - 495, 419, 314, 450, 413, 452, 228, 404, 454, 513, - 270, 391, 392, 393, 394, 246, 244, 225, 268, 237, - 246, 538, 362, 383, 513, 541, 317, 269, 223, 246, - 541, 316, 318, 375, 376, 361, 363, 259, 271, 328, - 224, 272, 405, 323, 273, 427, 229, 429, 395, 396, - 455, 226, -29, 316, 377, 316, 230, 320, 378, 380, - 367, 457, 451, 321, 510, 381, 488, 446, 511, 389, - 446, 390, 408, 232, 446, 410, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 365, 459, 365, 419, - 544, 365, 498, 467, 468, 444, 446, 469, 470, 471, - 472, 239, 244, 233, 240, 461, 548, 370, 323, 446, - 371, 323, 447, 486, 446, 486, 487, 491, 504, 196, - 197, 198, 397, 398, 386, 387, 388, 499, 241, 500, - 250, 419, 446, 493, 490, 446, 519, 246, 492, 449, - 256, 518, 465, 466, 473, 474, 261, 266, 267, 316, - 319, 369, 253, 327, 323, 379, 384, 402, 403, 401, - 399, 400, 409, 406, 415, 420, 423, 421, 424, 496, - 497, 425, 428, 430, 456, 365, 431, 460, 432, -28, - 506, 550, 446, 301, 485, -23, 482, 520, 502, 529, - -378, 503, 449, 530, 531, 238, 535, 536, 534, 323, - 340, 539, 540, 245, 512, 552, 475, 477, 551, 480, - 216, 476, 264, 263, 200, 478, 202, 258, 265, 512, - 372, 373, 227, 238, 365, 479, 484, 238, 412, 505, - 533, 507, 537, 546, 262, 547, 521, 508, 249, 385, - 0, 323, 0, 532, 545, 0, 0, 324, 0, 0, - 0, 349, 0, 301, 0, 0, 301, 0, 0, 0, - 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, + 217, 238, 245, 201, 366, 203, 375, 450, 261, 253, + 315, 496, 451, 405, 453, 414, 420, 455, 226, 229, + 514, 271, 224, 247, 376, 377, 245, 394, 395, 238, + 269, 260, 247, 539, 384, 514, 317, 542, 240, 270, + 225, 241, 542, -29, 329, 378, 362, 364, 406, 379, + 392, 393, 227, 324, 318, 231, 428, 247, 430, 230, + 319, 456, 396, 397, 363, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 489, 398, 399, 317, 317, + 409, 233, 321, 411, 445, 368, 452, 272, 322, 381, + 273, 447, 494, 274, 458, 382, 234, 366, 460, 366, + 447, 499, 366, 511, 420, 512, 390, 545, 391, 447, + 242, 447, 245, 447, 447, 520, 462, 549, 324, 466, + 467, 324, 470, 471, 472, 473, 371, 447, 487, 372, + 448, 488, 447, 487, 247, 492, 505, 197, 198, 199, + 468, 469, 387, 388, 389, 491, 420, 251, 450, 493, + 519, 500, 257, 501, 474, 475, 262, 267, 268, 317, + 320, 370, 380, 254, 324, 328, 385, 400, 401, 402, + 403, 404, 407, 410, 416, 421, 431, 422, 424, 425, + 497, 498, 426, 457, 429, 433, 366, 461, 447, 432, + 551, -23, -28, 507, 302, 486, 521, 483, 503, 530, + 537, 450, 504, -379, 531, 532, 239, 535, 536, 324, + 341, 552, 540, 476, 246, 513, 553, 477, 541, 481, + 478, 217, 479, 265, 201, 480, 203, 264, 259, 228, + 513, 373, 374, 266, 239, 366, 506, 413, 239, 485, + 508, 534, 538, 547, 263, 548, 522, 509, 250, 0, + 386, 324, 0, 0, 533, 546, 0, 0, 325, 0, + 0, 0, 350, 0, 302, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 244, 0, 514, 0, 0, 0, 0, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 324, 414, 0, 324, 0, 0, 0, 0, - 0, 0, 0, 462, 463, 464, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, + 0, 0, 0, 325, 415, 0, 325, 0, 0, 0, + 0, 0, 0, 0, 463, 464, 465, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 0, 0, 350, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, + 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, - 0, 0, 0, 0, 349, 349, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, - 0, 0, 0, 0, 245, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, - 349, 0, 0, 0, 0, 349, 0, 0, 0, 349, - 0, 0, 0, 0, 0, 0, 248, 0, 349, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 0, 0, 193, 0, 0, 0, 0, 0, + 350, 0, 0, 0, 0, 350, 350, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 350, 0, 0, 0, 0, 246, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 350, 0, 0, + 0, 350, 0, 0, 0, 0, 350, 0, 0, 0, + 350, 0, 0, 0, 0, 0, 0, 249, 0, 350, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 195, 196, - 197, 198, 199, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 329, 330, 331, 0, 332, 333, 334, - 335, 336, 337, 338, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 339, 275, 193, 276, - 277, 278, 279, 280, 281, 282, 0, 0, 283, 284, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, - 0, 340, 341, 0, 0, 0, 0, 342, 287, 288, - 289, 290, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 195, 196, 197, 198, 199, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 329, 330, 331, - 0, 332, 333, 334, 335, 336, 337, 338, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 339, 275, 193, 276, 277, 278, 279, 280, 281, 282, - 0, 0, 283, 284, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 0, 0, 0, 340, 448, 0, 0, 0, - 0, 342, 287, 288, 289, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 194, 195, 196, 197, 198, - 199, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 329, 330, 331, 0, 332, 333, 334, 335, 336, - 337, 338, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 339, 275, 193, 276, 277, 278, - 279, 280, 281, 282, 0, 0, 283, 284, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 285, 0, 0, 0, 340, - 0, 0, 0, 0, 0, 342, 287, 288, 289, 290, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 195, 196, 197, 198, 199, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 329, 330, 331, 0, 332, - 333, 334, 335, 336, 337, 338, 11, 12, 13, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, + 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, @@ -1312,15 +1478,172 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 339, 275, - 193, 276, 277, 278, 279, 280, 281, 282, 0, 0, - 283, 284, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 0, 0, 261, 0, 0, 0, 0, 0, 342, - 287, 288, 289, 290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 195, 196, 197, 198, 199, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 329, - 330, 331, 0, 332, 333, 334, 335, 336, 337, 338, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, + 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, + 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 0, 341, 342, 0, 0, 0, 0, + 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, + 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, + 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 341, + 449, 0, 0, 0, 0, 343, 288, 289, 290, 291, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, + 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, + 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, + 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 0, 341, 0, 0, 0, 0, 0, + 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, + 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, + 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 262, + 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, + 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, + 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, + 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 0, 276, 194, 277, 278, 279, + 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, + 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, + 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, @@ -1339,12 +1662,12 @@ static const yytype_int16 yytable[] = 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 339, 275, 193, 276, 277, 278, 279, 280, - 281, 282, 0, 0, 283, 284, 0, 0, 0, 0, + 191, 192, 193, 0, 276, 194, 277, 278, 279, 280, + 281, 282, 283, 0, 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 342, 287, 288, 289, 290, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 194, 195, 196, + 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 288, 289, 290, 291, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 195, 196, 197, 198, 199, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, 15, 16, @@ -1365,139 +1688,38 @@ static const yytype_int16 yytable[] = 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 275, 193, 276, - 277, 278, 279, 280, 281, 282, 0, 0, 283, 284, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 342, 287, 288, - 289, 290, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 194, 195, 196, 197, 198, 199, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, + 187, 188, 189, 190, 191, 192, 193, 0, 243, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 0, 0, 194, 195, 196, 197, 198, - 199, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 275, 193, 276, 277, 278, 279, - 280, 281, 282, 0, 0, 283, 284, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 194, 195, - 196, 197, 198, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 0, 242, 193, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 244, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, + 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 243, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, - 0, 194, 195, 196, 197, 198, 0, 0, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 193, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 194, 195, 196, 197, - 198, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 0, 193, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 0, 194, 195, - 196, 197, 198, 11, 12, 13, 14, 15, 16, 17, + 9, 10, 0, 0, 0, 0, 0, 0, 195, 196, + 197, 198, 199, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, @@ -1515,359 +1737,39 @@ static const yytype_int16 yytable[] = 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 0, 193, 0, 0, + 188, 189, 190, 191, 192, 193, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 501, 0, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, - 194, 195, 196, 197, 198, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 0, 193, - 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 0, 0, 484, 0, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, + 0, 195, 196, 197, 198, 199, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, + 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 195, 196, 197, 198, 47, 48, 49, - 50, 51, 52, 0, 0, 0, 0, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 0, 275, 193, 276, 277, 278, 279, - 280, 281, 282, 0, 0, 283, 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 285, 0, 0, 0, 364, 517, - 0, 0, 0, 0, 0, 287, 288, 289, 290, 4, - 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 48, 49, 50, 51, 52, 0, - 0, 0, 0, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 0, - 275, 193, 276, 277, 278, 279, 280, 281, 282, 0, - 0, 283, 284, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 286, 4, 5, 6, 7, 8, 9, - 10, 287, 288, 289, 290, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, - 49, 50, 51, 52, 0, 0, 0, 0, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 0, 275, 193, 276, 277, 278, - 279, 280, 281, 282, 0, 0, 283, 284, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 285, 0, 0, 0, 364, - 0, 0, 0, 0, 0, 0, 287, 288, 289, 290, - 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, - 0, 0, 0, 0, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 0, 275, 193, 276, 277, 278, 279, 280, 281, 282, - 0, 0, 283, 284, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 285, 0, 0, 407, 4, 5, 6, 7, 8, - 9, 10, 287, 288, 289, 290, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 48, 49, 50, 51, 52, 0, 0, 0, 0, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 0, 275, 193, 276, 277, - 278, 279, 280, 281, 282, 0, 0, 283, 284, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 285, 4, 5, 6, - 7, 8, 9, 10, 0, 0, 426, 287, 288, 289, - 290, 0, 0, 0, 0, 0, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 48, 49, 50, 51, 52, 0, 0, 0, - 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 0, 275, 193, - 276, 277, 278, 279, 280, 281, 282, 0, 0, 283, - 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 285, 4, - 5, 6, 7, 8, 9, 10, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 0, 0, 0, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 48, 49, 50, 51, 52, 0, - 0, 0, 0, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 382, 0, - 275, 193, 276, 277, 278, 279, 280, 281, 282, 0, - 0, 283, 284, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 4, 5, 6, 7, 8, 9, 10, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 502, 0, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, + 0, 0, 0, 0, 195, 196, 197, 198, 199, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 48, 49, 50, 51, - 52, 0, 0, 0, 0, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 0, 0, 193 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 205, 213, 269, 0, 285, 0, 228, 354, 54, - 433, 325, 246, 362, 322, 364, 207, 225, 367, 494, - 241, 216, 217, 220, 221, 239, 237, 207, 237, 233, - 239, 526, 246, 299, 509, 530, 238, 246, 237, 239, - 535, 239, 244, 218, 219, 266, 267, 247, 241, 247, - 237, 244, 260, 257, 247, 335, 247, 337, 255, 256, - 368, 241, 237, 239, 239, 239, 247, 238, 243, 238, - 246, 238, 246, 244, 238, 244, 422, 244, 238, 249, - 244, 251, 316, 238, 244, 319, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 362, 377, 364, 413, - 238, 367, 451, 391, 392, 246, 244, 393, 394, 395, - 396, 244, 323, 244, 247, 381, 539, 244, 322, 244, - 247, 325, 247, 244, 244, 244, 247, 247, 247, 263, - 264, 265, 222, 223, 252, 253, 254, 242, 207, 244, - 208, 455, 244, 245, 424, 244, 245, 239, 428, 495, - 241, 500, 389, 390, 397, 398, 241, 207, 207, 239, - 246, 207, 207, 247, 368, 238, 237, 224, 226, 257, - 259, 258, 208, 240, 207, 247, 237, 247, 237, 445, - 446, 247, 237, 245, 207, 451, 237, 207, 242, 237, - 206, 540, 244, 246, 415, 238, 240, 237, 240, 207, - 241, 481, 548, 238, 242, 205, 238, 16, 247, 413, - 241, 241, 246, 213, 494, 242, 399, 401, 247, 404, - 220, 400, 237, 233, 220, 402, 220, 227, 237, 509, - 283, 284, 199, 233, 500, 403, 414, 237, 321, 486, - 520, 489, 525, 535, 231, 536, 509, 489, 220, 302, - -1, 455, -1, 519, 534, -1, -1, 257, -1, -1, - -1, 261, -1, 316, -1, -1, 319, -1, -1, -1, - -1, -1, -1, -1, 540, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 514, -1, 509, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 322, 323, -1, 325, -1, -1, -1, -1, - -1, -1, -1, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, -1, -1, 354, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 413, -1, -1, -1, -1, -1, -1, - -1, -1, 422, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 433, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 455, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 489, - -1, -1, -1, -1, 494, 495, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, - -1, -1, -1, -1, 514, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 526, -1, -1, -1, - 530, -1, -1, -1, -1, 535, -1, -1, -1, 539, - -1, -1, -1, -1, -1, -1, 0, -1, 548, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, -1, -1, 208, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 261, 262, 263, - 264, 265, 266, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, -1, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, -1, -1, 218, 219, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, - -1, 241, 242, -1, -1, -1, -1, 247, 248, 249, - 250, 251, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 261, 262, 263, 264, 265, 266, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - -1, -1, 218, 219, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 237, -1, -1, -1, 241, 242, -1, -1, -1, - -1, 247, 248, 249, 250, 251, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 261, 262, 263, 264, 265, - 266, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, @@ -1884,14 +1786,286 @@ static const yytype_int16 yycheck[] = 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, -1, -1, 218, 219, -1, -1, + 192, 193, 0, 0, 194, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 195, 196, 197, + 198, 199, 47, 48, 49, 50, 51, 52, 0, 0, + 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, + 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, + 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 0, 365, 518, 0, 0, 0, 0, + 0, 288, 289, 290, 291, 4, 5, 6, 7, 8, + 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, + 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 0, 276, 194, 277, + 278, 279, 280, 281, 282, 283, 0, 0, 284, 285, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, + 287, 4, 5, 6, 7, 8, 9, 10, 288, 289, + 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 48, 49, 50, 51, + 52, 0, 0, 0, 0, 0, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 0, 276, 194, 277, 278, 279, 280, 281, + 282, 283, 0, 0, 284, 285, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 0, 0, 365, 0, 0, + 0, 0, 0, 0, 288, 289, 290, 291, 4, 5, + 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 48, 49, 50, 51, 52, 0, 0, + 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, + 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, + 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 286, 0, 0, 408, 4, 5, 6, 7, 8, 9, + 10, 288, 289, 290, 291, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, + 49, 50, 51, 52, 0, 0, 0, 0, 0, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 0, 276, 194, 277, 278, + 279, 280, 281, 282, 283, 0, 0, 284, 285, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 286, 4, 5, 6, + 7, 8, 9, 10, 0, 0, 427, 288, 289, 290, + 291, 0, 0, 0, 0, 0, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 48, 49, 50, 51, 52, 0, 0, 0, + 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 0, 276, + 194, 277, 278, 279, 280, 281, 282, 283, 0, 0, + 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, + 288, 289, 290, 291, 0, 0, 0, 0, 0, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, + 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 383, 0, 276, 194, 277, 278, 279, 280, 281, 282, + 283, 0, 0, 284, 285, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 286, 4, 5, 6, 7, 8, 9, 10, + 0, 0, 0, 288, 289, 290, 291, 0, 0, 0, + 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 48, 49, + 50, 51, 52, 0, 0, 0, 0, 0, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 0, 0, 194 +}; + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-495))) + +#define yytable_value_is_error(Yytable_value) \ + YYID (0) + +static const yytype_int16 yycheck[] = +{ + 0, 206, 214, 0, 270, 0, 286, 355, 229, 54, + 247, 434, 363, 226, 365, 323, 326, 368, 208, 208, + 495, 242, 238, 240, 219, 220, 238, 221, 222, 234, + 238, 248, 240, 527, 300, 510, 240, 531, 245, 247, + 238, 248, 536, 238, 248, 240, 267, 268, 261, 244, + 217, 218, 242, 258, 239, 248, 336, 240, 338, 248, + 245, 369, 256, 257, 247, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 423, 223, 224, 240, 240, + 317, 239, 239, 320, 247, 247, 247, 242, 245, 239, + 245, 245, 246, 248, 239, 245, 245, 363, 378, 365, + 245, 452, 368, 239, 414, 239, 250, 239, 252, 245, + 208, 245, 324, 245, 245, 246, 382, 540, 323, 390, + 391, 326, 394, 395, 396, 397, 245, 245, 245, 248, + 248, 248, 245, 245, 240, 248, 248, 264, 265, 266, + 392, 393, 253, 254, 255, 425, 456, 209, 496, 429, + 501, 243, 242, 245, 398, 399, 242, 208, 208, 240, + 247, 208, 239, 208, 369, 248, 238, 260, 259, 258, + 225, 227, 241, 209, 208, 248, 246, 248, 238, 238, + 446, 447, 248, 208, 238, 243, 452, 208, 245, 238, + 541, 239, 238, 207, 247, 416, 238, 241, 241, 208, + 16, 549, 482, 242, 239, 243, 206, 248, 239, 414, + 242, 248, 242, 400, 214, 495, 243, 401, 247, 405, + 402, 221, 403, 238, 221, 404, 221, 234, 228, 200, + 510, 284, 285, 238, 234, 501, 487, 322, 238, 415, + 490, 521, 526, 536, 232, 537, 510, 490, 221, -1, + 303, 456, -1, -1, 520, 535, -1, -1, 258, -1, + -1, -1, 262, -1, 317, -1, -1, 320, -1, -1, + -1, -1, -1, -1, -1, 541, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 237, -1, -1, -1, 241, - -1, -1, -1, -1, -1, 247, 248, 249, 250, 251, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, - 262, 263, 264, 265, 266, 3, 4, 5, 6, 7, + 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 515, -1, 510, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 323, 324, -1, 326, -1, -1, -1, + -1, -1, -1, -1, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, -1, -1, 355, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 369, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 414, -1, -1, -1, -1, -1, + -1, -1, -1, 423, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 434, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 490, -1, -1, -1, -1, 495, 496, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 510, -1, -1, -1, -1, 515, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, + -1, 531, -1, -1, -1, -1, 536, -1, -1, -1, + 540, -1, -1, -1, -1, -1, -1, 0, -1, 549, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, -1, -1, 209, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, @@ -1912,14 +2086,171 @@ static const yytype_int16 yycheck[] = 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, -1, -1, - 218, 219, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, - -1, -1, -1, 241, -1, -1, -1, -1, -1, 247, - 248, 249, 250, 251, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 261, 262, 263, 264, 265, 266, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, + 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, + 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, + 243, -1, -1, -1, -1, 248, 249, 250, 251, 252, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 238, -1, -1, -1, 242, -1, -1, -1, -1, -1, + 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, + -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, + 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 238, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, + -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, @@ -1938,12 +2269,12 @@ static const yytype_int16 yycheck[] = 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, -1, -1, 218, 219, -1, -1, -1, -1, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 247, 248, 249, 250, 251, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 261, 262, 263, + -1, -1, -1, -1, 238, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 249, 250, 251, 252, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, 264, 265, 266, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, @@ -1964,90 +2295,86 @@ static const yytype_int16 yycheck[] = 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, 207, 208, 209, - 210, 211, 212, 213, 214, 215, -1, -1, 218, 219, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 247, 248, 249, - 250, 251, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 261, 262, 263, 264, 265, 266, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, 261, 262, 263, 264, 265, - 266, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, 207, 208, 209, 210, 211, 212, - 213, 214, 215, -1, -1, 218, 219, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 248, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, + -1, -1, 262, 263, 264, 265, 266, -1, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, -1, -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 248, 249, 250, 251, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 261, 262, - 263, 264, 265, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, -1, 207, 208, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 243, + -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, 262, 263, + 264, 265, 266, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, -1, -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 247, 3, 4, + -1, -1, 243, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + -1, 262, 263, 264, 265, 266, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, + -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 243, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, - -1, 261, 262, 263, 264, 265, -1, -1, -1, 24, + -1, -1, -1, -1, 262, 263, 264, 265, 266, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, @@ -2066,182 +2393,38 @@ static const yytype_int16 yycheck[] = 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, 208, -1, -1, -1, -1, -1, -1, + 205, 206, -1, -1, 209, -1, -1, -1, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 262, 263, 264, + 265, 266, 60, 61, 62, 63, 64, 65, -1, -1, + -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 242, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, 261, 262, 263, 264, - 265, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, -1, 208, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, 261, 262, - 263, 264, 265, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, -1, 208, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 242, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, - 261, 262, 263, 264, 265, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, -1, 208, - -1, -1, -1, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 261, 262, 263, 264, 265, 60, 61, 62, - 63, 64, 65, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, -1, 207, 208, 209, 210, 211, 212, - 213, 214, 215, -1, -1, 218, 219, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 237, -1, -1, -1, 241, 242, - -1, -1, -1, -1, -1, 248, 249, 250, 251, 6, - 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, 61, 62, 63, 64, 65, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, - -1, 218, 219, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 237, -1, -1, 240, 6, 7, 8, 9, 10, 11, - 12, 248, 249, 250, 251, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, - 62, 63, 64, 65, -1, -1, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, -1, 207, 208, 209, 210, 211, - 212, 213, 214, 215, -1, -1, 218, 219, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 237, -1, -1, -1, 241, - -1, -1, -1, -1, -1, -1, 248, 249, 250, 251, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, - -1, -1, -1, -1, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - -1, 207, 208, 209, 210, 211, 212, 213, 214, 215, - -1, -1, 218, 219, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 237, -1, -1, 240, 6, 7, 8, 9, 10, - 11, 12, 248, 249, 250, 251, -1, -1, -1, -1, + 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, + -1, 249, 250, 251, 252, 6, 7, 8, 9, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 64, 65, -1, -1, -1, -1, 70, + 61, 62, 63, 64, 65, -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, @@ -2255,63 +2438,17 @@ static const yytype_int16 yycheck[] = 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, -1, 207, 208, 209, 210, - 211, 212, 213, 214, 215, -1, -1, 218, 219, -1, + 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, + 211, 212, 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 237, 6, 7, 8, - 9, 10, 11, 12, -1, -1, 247, 248, 249, 250, - 251, -1, -1, -1, -1, -1, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, 61, 62, 63, 64, 65, -1, -1, -1, - -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, -1, 207, 208, - 209, 210, 211, 212, 213, 214, 215, -1, -1, 218, - 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 237, 6, - 7, 8, 9, 10, 11, 12, -1, -1, -1, 248, - 249, 250, 251, -1, -1, -1, -1, -1, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, 61, 62, 63, 64, 65, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, -1, - 207, 208, 209, 210, 211, 212, 213, 214, 215, -1, - -1, 218, 219, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 237, 6, 7, 8, 9, 10, 11, 12, -1, -1, - -1, 248, 249, 250, 251, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, + 241, 6, 7, 8, 9, 10, 11, 12, 249, 250, + 251, 252, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, 63, 64, - 65, -1, -1, -1, -1, 70, 71, 72, 73, 74, + 65, -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, @@ -2325,11 +2462,129 @@ static const yytype_int16 yycheck[] = 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, -1, -1, 208 + 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, + 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 238, -1, -1, -1, 242, -1, -1, + -1, -1, -1, -1, 249, 250, 251, 252, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 60, 61, 62, 63, 64, 65, -1, -1, + -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, + -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 238, -1, -1, 241, 6, 7, 8, 9, 10, 11, + 12, 249, 250, 251, 252, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, + 62, 63, 64, 65, -1, -1, -1, -1, -1, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, + 212, 213, 214, 215, 216, -1, -1, 219, 220, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 238, 6, 7, 8, + 9, 10, 11, 12, -1, -1, 248, 249, 250, 251, + 252, -1, -1, -1, -1, -1, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, 61, 62, 63, 64, 65, -1, -1, -1, + -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, -1, -1, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, + 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, + 249, 250, 251, 252, -1, -1, -1, -1, -1, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, + 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 238, 6, 7, 8, 9, 10, 11, 12, + -1, -1, -1, 249, 250, 251, 252, -1, -1, -1, + -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, + 63, 64, 65, -1, -1, -1, -1, -1, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, -1, -1, 209 }; - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, @@ -2351,151 +2606,69 @@ static const yytype_uint16 yystos[] = 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 208, 261, 262, 263, 264, 265, 266, - 301, 302, 305, 306, 307, 308, 312, 313, 314, 315, - 316, 317, 320, 321, 322, 323, 325, 327, 328, 329, - 366, 367, 368, 237, 237, 207, 241, 328, 207, 247, - 247, 369, 238, 244, 309, 310, 311, 321, 325, 244, - 247, 207, 207, 247, 322, 325, 239, 326, 0, 367, - 208, 324, 54, 207, 318, 319, 241, 331, 325, 247, - 326, 241, 348, 310, 309, 311, 207, 207, 237, 246, - 326, 241, 244, 247, 304, 207, 209, 210, 211, 212, - 213, 214, 215, 218, 219, 237, 240, 248, 249, 250, - 251, 271, 272, 273, 275, 276, 277, 278, 279, 280, + 203, 204, 205, 206, 209, 262, 263, 264, 265, 266, + 267, 302, 303, 306, 307, 308, 309, 313, 314, 315, + 316, 317, 318, 321, 322, 323, 324, 326, 328, 329, + 330, 367, 368, 369, 238, 238, 208, 242, 329, 208, + 248, 248, 370, 239, 245, 310, 311, 312, 322, 326, + 245, 248, 208, 208, 248, 323, 326, 240, 327, 0, + 368, 209, 325, 54, 208, 319, 320, 242, 332, 326, + 248, 327, 242, 349, 311, 310, 312, 208, 208, 238, + 247, 327, 242, 245, 248, 305, 208, 210, 211, 212, + 213, 214, 215, 216, 219, 220, 238, 241, 249, 250, + 251, 252, 272, 273, 274, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 325, 239, 238, 244, 246, - 238, 244, 330, 321, 325, 332, 333, 247, 247, 13, - 14, 15, 17, 18, 19, 20, 21, 22, 23, 206, - 241, 242, 247, 282, 295, 297, 299, 301, 305, 325, - 338, 339, 340, 341, 349, 350, 351, 354, 357, 358, - 365, 326, 246, 326, 241, 297, 336, 246, 303, 207, - 244, 247, 282, 282, 299, 218, 219, 239, 243, 238, - 238, 244, 205, 297, 237, 282, 252, 253, 254, 249, - 251, 216, 217, 220, 221, 255, 256, 222, 223, 259, - 258, 257, 224, 226, 225, 260, 240, 240, 295, 208, - 295, 300, 319, 332, 325, 207, 334, 335, 242, 333, - 247, 247, 360, 237, 237, 247, 247, 299, 237, 299, - 245, 237, 242, 342, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 246, 298, 244, 247, 242, 339, - 336, 246, 336, 337, 336, 332, 207, 238, 274, 299, - 207, 297, 282, 282, 282, 284, 284, 285, 285, 286, - 286, 286, 286, 287, 287, 288, 289, 290, 291, 292, - 293, 296, 240, 242, 334, 326, 244, 247, 339, 361, - 299, 247, 299, 245, 359, 349, 297, 297, 336, 242, - 244, 242, 240, 299, 247, 335, 206, 338, 350, 362, - 238, 238, 299, 314, 321, 353, 343, 242, 336, 245, - 237, 353, 363, 364, 345, 346, 347, 352, 355, 207, - 238, 242, 297, 299, 247, 238, 16, 341, 340, 241, - 246, 340, 344, 348, 238, 299, 344, 345, 349, 356, - 336, 247, 242 + 291, 292, 293, 294, 295, 296, 326, 240, 239, 245, + 247, 239, 245, 331, 322, 326, 333, 334, 248, 248, + 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, + 207, 242, 243, 248, 283, 296, 298, 300, 302, 306, + 326, 339, 340, 341, 342, 350, 351, 352, 355, 358, + 359, 366, 327, 247, 327, 242, 298, 337, 247, 304, + 208, 245, 248, 283, 283, 300, 219, 220, 240, 244, + 239, 239, 245, 206, 298, 238, 283, 253, 254, 255, + 250, 252, 217, 218, 221, 222, 256, 257, 223, 224, + 260, 259, 258, 225, 227, 226, 261, 241, 241, 296, + 209, 296, 301, 320, 333, 326, 208, 335, 336, 243, + 334, 248, 248, 361, 238, 238, 248, 248, 300, 238, + 300, 246, 238, 243, 343, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 247, 299, 245, 248, 243, + 340, 337, 247, 337, 338, 337, 333, 208, 239, 275, + 300, 208, 298, 283, 283, 283, 285, 285, 286, 286, + 287, 287, 287, 287, 288, 288, 289, 290, 291, 292, + 293, 294, 297, 241, 243, 335, 327, 245, 248, 340, + 362, 300, 248, 300, 246, 360, 350, 298, 298, 337, + 243, 245, 243, 241, 300, 248, 336, 207, 339, 351, + 363, 239, 239, 300, 315, 322, 354, 344, 243, 337, + 246, 238, 354, 364, 365, 346, 347, 348, 353, 356, + 208, 239, 243, 298, 300, 248, 239, 16, 342, 341, + 242, 247, 341, 345, 349, 239, 300, 345, 346, 350, + 357, 337, 248, 243 }; - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 270, 271, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 273, 273, 273, 273, 273, 273, 274, 275, - 276, 277, 277, 278, 278, 279, 279, 280, 281, 281, - 282, 282, 282, 282, 283, 283, 283, 283, 284, 284, - 284, 284, 285, 285, 285, 286, 286, 286, 287, 287, - 287, 287, 287, 288, 288, 288, 289, 289, 290, 290, - 291, 291, 292, 292, 293, 293, 294, 294, 295, 296, - 295, 297, 297, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 299, 299, 300, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 303, 302, 304, 304, - 305, 306, 306, 307, 307, 308, 309, 309, 310, 310, - 310, 310, 311, 312, 312, 312, 312, 312, 313, 313, - 313, 313, 313, 314, 314, 315, 316, 316, 316, 317, - 318, 318, 319, 319, 319, 320, 321, 321, 322, 322, - 322, 322, 322, 322, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 324, 324, 325, 325, 326, 326, 326, - 326, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 328, 328, 328, 330, 329, 331, 329, 332, - 332, 333, 333, 334, 334, 335, 335, 336, 336, 336, - 337, 337, 338, 339, 339, 340, 340, 340, 340, 340, - 340, 340, 341, 342, 343, 341, 344, 344, 346, 345, - 347, 345, 348, 348, 349, 349, 350, 350, 351, 352, - 352, 353, 353, 355, 354, 356, 356, 357, 357, 359, - 358, 360, 358, 361, 358, 362, 362, 363, 363, 364, - 364, 365, 365, 365, 365, 365, 366, 366, 367, 367, - 369, 368 -}; +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, - 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, - 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, - 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, - 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, - 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, - 3, 5, 4, 1, 2, 1, 1, 1, 1, 4, - 1, 3, 1, 3, 1, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 1, 3, 1, 2, 2, 3, 3, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 6, 0, 5, 1, - 2, 3, 4, 1, 3, 1, 2, 1, 3, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 0, 0, 5, 1, 1, 0, 2, - 0, 2, 2, 3, 1, 2, 1, 2, 5, 3, - 1, 1, 4, 0, 8, 0, 1, 3, 2, 0, - 6, 0, 8, 0, 7, 1, 1, 1, 0, 2, - 3, 2, 2, 2, 3, 2, 1, 2, 1, 1, - 0, 3 -}; +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2512,15 +2685,27 @@ do \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) + YYERROR; \ + } \ +while (YYID (0)) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, parseContext) +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2530,47 +2715,58 @@ while (0) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { FILE *yyo = yyoutput; YYUSE (yyo); - YYUSE (pParseContext); if (!yyvaluep) return; + YYUSE (pParseContext); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); # endif - YYUSE (yytype); + switch (yytype) + { + default: + break; + } } @@ -2578,11 +2774,23 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue | Print this symbol on YYOUTPUT. | `--------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { - YYFPRINTF (yyoutput, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); @@ -2593,8 +2801,16 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, gls | TOP (included). | `------------------------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2605,42 +2821,50 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +#else +static void +yy_reduce_print (yyvsp, yyrule, pParseContext) + YYSTYPE *yyvsp; + int yyrule; + glslang::TParseContext* pParseContext; +#endif { - unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; + unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ -} while (0) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, pParseContext); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2654,7 +2878,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2677,8 +2901,15 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -2694,8 +2925,16 @@ yystrlen (const char *yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2725,27 +2964,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -2768,11 +3007,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; + const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -2780,6 +3019,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + + for details. YYERROR is fine as it does not invoke this + function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -2829,7 +3072,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -2896,18 +3139,33 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, pParseContext) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + glslang::TParseContext* pParseContext; +#endif { YYUSE (yyvaluep); YYUSE (pParseContext); + if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END + switch (yytype) + { + + default: + break; + } } @@ -2917,18 +3175,56 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseCon | yyparse. | `----------*/ +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (glslang::TParseContext* pParseContext) +#else +int +yyparse (pParseContext) + glslang::TParseContext* pParseContext; +#endif +#endif { /* The lookahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -YY_INITIAL_VALUE (static YYSTYPE yyval_default;) -YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); +static YYSTYPE yyval_default; +# define YY_INITIAL_VALUE(Value) = Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -2938,8 +3234,8 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); int yyerrstatus; /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + `yyss': related to states. + `yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3007,23 +3303,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3031,22 +3327,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3055,10 +3351,10 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3087,7 +3383,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (&yylval, parseContext); + yychar = YYLEX; } if (yychar <= YYEOF) @@ -3152,7 +3448,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. + `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3166,247 +3462,248 @@ yyreduce: switch (yyn) { case 2: -#line 246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 246 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); } -#line 3174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -#line 252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 252 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -#line 255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 255 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -#line 258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 258 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -#line 262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 262 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -#line 266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 266 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -#line 270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 270 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -#line 273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 273 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -#line 277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 277 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -#line 280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 280 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 3252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -#line 288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 288 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -#line 291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 291 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); } -#line 3268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -#line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 294 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -#line 297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 297 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); } -#line 3284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -#line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 300 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -#line 305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 305 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 313 "glslang.y" { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -#line 320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 320 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); - delete (yyvsp[0].interm).function; + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); + delete (yyvsp[(1) - (1)].interm).function; } -#line 3322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -#line 327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 327 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 333 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -#line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 337 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 344 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); } -#line 3356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 347 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -#line 353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 353 "glslang.y" { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-1].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-1].interm).function; - (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); + param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (2)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; + (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); } -#line 3376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -#line 360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 360 "glslang.y" { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-2].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-2].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (3)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); } -#line 3388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -#line 370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 370 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); } -#line 3396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -#line 378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 378 "glslang.y" { // Constructor (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); } -#line 3406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: -#line 383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 383 "glslang.y" { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -3414,18 +3711,18 @@ yyreduce: (yyval.interm).function = 0; (yyval.interm).intermNode = 0; - TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); + TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { - TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); + TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { @@ -3434,3696 +3731,3710 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } -#line 3438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: -#line 413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 413 "glslang.y" { - parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); + parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 3449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: -#line 419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 419 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); } -#line 3458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: -#line 423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 423 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); } -#line 3467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: -#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 427 "glslang.y" { - if ((yyvsp[-1].interm).op != EOpNull) { + if ((yyvsp[(1) - (2)].interm).op != EOpNull) { char errorOp[2] = {0, 0}; - switch((yyvsp[-1].interm).op) { + switch((yyvsp[(1) - (2)].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); } else { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 3488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: -#line 447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 3494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 447 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } break; case 35: -#line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 3500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 448 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } break; case 36: -#line 449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 3506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 449 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } break; case 37: -#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 450 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } break; case 38: -#line 456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 456 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 39: -#line 457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 457 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: -#line 462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 462 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -#line 467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 467 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -#line 476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 476 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 43: -#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 477 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: -#line 482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 482 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -#line 490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 490 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 46: -#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 491 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: -#line 497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 497 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -#line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 506 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 49: -#line 507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 507 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: -#line 512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 512 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -#line 517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 517 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 522 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 530 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 54: -#line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 531 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: -#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 539 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 550 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 57: -#line 551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 551 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: -#line 560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 560 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 59: -#line 561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 561 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: -#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 570 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 61: -#line 571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 571 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: -#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 580 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 63: -#line 581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 581 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: -#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 589 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 65: -#line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 590 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: -#line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 598 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 67: -#line 599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 599 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: -#line 607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 607 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 69: -#line 608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 608 "glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 3795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: -#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 611 "glslang.y" { --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); + parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); } } -#line 3812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: -#line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 626 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 72: -#line 627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 627 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } } -#line 3835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: -#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 642 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAssign; } -#line 3844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -#line 646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 646 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 3853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -#line 650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 650 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 3862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -#line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 654 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[0].lex).loc; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 3872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -#line 659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 659 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 3881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -#line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 663 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 3890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -#line 667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 667 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 3899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 671 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 3908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -#line 675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 675 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 3917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 679 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 3926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 683 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 3935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -#line 690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 690 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -#line 693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 693 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); } } -#line 3955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -#line 703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 703 "glslang.y" { - parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -#line 710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 710 "glslang.y" { - parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); + parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 3974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -#line 715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 715 "glslang.y" { - if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) - (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; + if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) + (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; } -#line 3984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -#line 720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 720 "glslang.y" { - parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); + parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 3997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -#line 728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 728 "glslang.y" { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); + parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -#line 732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 732 "glslang.y" { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); + parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -#line 736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 736 "glslang.y" { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); + parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 4024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -#line 740 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 740 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); (yyval.interm.intermNode) = 0; } -#line 4034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -#line 745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 745 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -#line 750 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 750 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); - parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); + parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 4055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -#line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 759 "glslang.y" + { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } break; case 97: -#line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 759 "glslang.y" { --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[-4].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[-5].interm.type).loc; - (yyval.interm).typeList = (yyvsp[-1].interm.typeList); + parseContext.blockName = (yyvsp[(2) - (6)].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; + (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); } -#line 4075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: -#line 770 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" { (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); } -#line 4084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -#line 774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 774 "glslang.y" { - (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); } -#line 4093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -#line 781 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 781 "glslang.y" { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 4102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -#line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 788 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); } -#line 4110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -#line 791 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 791 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); } -#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -#line 798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 798 "glslang.y" { // Add the parameter - (yyval.interm.function) = (yyvsp[-1].interm.function); - if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); + (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); + if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); else - delete (yyvsp[0].interm).param.type; + delete (yyvsp[(2) - (2)].interm).param.type; } -#line 4131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -#line 806 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 806 "glslang.y" { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // - if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { + if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // - parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[0].interm).param.type; + parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[(3) - (3)].interm).param.type; } else { // Add the parameter - (yyval.interm.function) = (yyvsp[-2].interm.function); - (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); + (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); + (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); } } -#line 4153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: -#line 826 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 826 "glslang.y" { - if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); + if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); } - if ((yyvsp[-2].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; - TType type((yyvsp[-2].interm.type)); - function = new TFunction((yyvsp[-1].lex).string, type); + TType type((yyvsp[(1) - (3)].interm.type)); + function = new TFunction((yyvsp[(2) - (3)].lex).string, type); (yyval.interm.function) = function; } -#line 4172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: -#line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 844 "glslang.y" { - if ((yyvsp[-1].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); + if ((yyvsp[(1) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); } - if ((yyvsp[-1].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); + if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); } - parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); + parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); - TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; - (yyval.interm).loc = (yyvsp[0].lex).loc; + TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; (yyval.interm).param = param; } -#line 4192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: -#line 859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 859 "glslang.y" { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); } - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.type).arraySizes, (yyvsp[0].interm).arraySizes); + parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); - parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); + parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); - (yyvsp[-2].interm.type).arraySizes = (yyvsp[0].interm).arraySizes; + (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; - TParameter param = { (yyvsp[-1].lex).string, new TType((yyvsp[-2].interm.type))}; - (yyval.interm).loc = (yyvsp[-1].lex).loc; + TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; (yyval.interm).param = param; } -#line 4214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: -#line 882 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 882 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: -#line 893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 893 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (1)].interm); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -#line 903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 903 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -#line 913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 913 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (1)].interm); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -#line 923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 923 "glslang.y" { - TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; + TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; (yyval.interm).param = param; - if ((yyvsp[0].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); + if ((yyvsp[(1) - (1)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); } -#line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -#line 932 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 932 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -#line 935 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 935 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); + (yyval.interm) = (yyvsp[(1) - (3)].interm); + parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); } -#line 4297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -#line 939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 939 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); + (yyval.interm) = (yyvsp[(1) - (4)].interm); + parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); } -#line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -#line 943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 943 "glslang.y" { - (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); } -#line 4316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -#line 948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 948 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -#line 956 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 956 "glslang.y" { - (yyval.interm).type = (yyvsp[0].interm.type); + (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 4336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -#line 961 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 961 "glslang.y" { - (yyval.interm).type = (yyvsp[-1].interm.type); + (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); } -#line 4346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -#line 966 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 966 "glslang.y" { - (yyval.interm).type = (yyvsp[-2].interm.type); + (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); } -#line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -#line 971 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 971 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -#line 976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 976 "glslang.y" { - (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); } -#line 4376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -#line 985 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 985 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); - parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[(1) - (1)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 4392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: -#line 996 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 996 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[(2) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } - if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) - (yyvsp[0].interm.type).arraySizes = 0; + if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) + (yyvsp[(2) - (2)].interm.type).arraySizes = 0; - parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 4421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: -#line 1023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1023 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 4432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -#line 1032 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1032 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 4444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -#line 1039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1039 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 4456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -#line 1046 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1046 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); - parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); + parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } -#line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -#line 1056 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1053 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); +#ifdef AMD_EXTENSIONS + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.explicitInterp = true; +#endif } -#line 4476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -#line 1062 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1065 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); } -#line 4484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -#line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1071 "glslang.y" { - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1074 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); + (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); } -#line 4503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -#line 1076 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1081 "glslang.y" { - (yyval.interm.type).init((yyvsp[-2].lex).loc); - parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); } -#line 4512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -#line 1080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[0].lex).loc); - TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); +/* Line 1792 of yacc.c */ +#line 1085 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); } -#line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -#line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.noContraction = true; +/* Line 1792 of yacc.c */ +#line 1089 "glslang.y" + { // because "shared" is both an identifier and a keyword + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + TString strShared("shared"); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); } -#line 4533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -#line 1097 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1097 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.noContraction = true; } -#line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -#line 1100 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1106 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1111 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1109 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + if ((yyval.interm.type).basicType == EbtVoid) + (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; + + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); } -#line 4562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1120 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1117 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1123 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1120 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1126 "glslang.y" { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1129 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1133 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1137 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1144 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); - - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqVaryingIn; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 4631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1148 "glslang.y" { - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); - parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqVaryingIn; + } + break; + + case 147: +/* Line 1792 of yacc.c */ +#line 1160 "glslang.y" + { + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); + + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); + + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 147: -#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqInOut; - } -#line 4660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -#line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1174 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqIn; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 4671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1179 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqOut; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqIn; } -#line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1182 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1185 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.centroid = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqOut; } -#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1189 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1191 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.patch = true; + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.centroid = true; } -#line 4705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1195 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1198 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.sample = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.patch = true; } -#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1204 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.sample = true; } -#line 4725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1209 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqBuffer; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1214 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqShared; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1219 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.coherent = true; + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqShared; } -#line 4756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1226 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.volatil = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.coherent = true; } -#line 4765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1230 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.restrict = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.volatil = true; } -#line 4774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1234 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.readonly = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.restrict = true; } -#line 4783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1238 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.writeonly = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.readonly = true; } -#line 4792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1237 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1242 "glslang.y" { - parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.writeonly = true; } -#line 4803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1246 "glslang.y" { - parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[-3].lex).loc); + parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; + } + break; + + case 163: +/* Line 1792 of yacc.c */ +#line 1252 "glslang.y" + { + parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 163: -#line 1255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // TODO: 4.0 functionality: subroutine type to list - } -#line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1264 "glslang.y" { + // TODO: 4.0 functionality: subroutine type to list } -#line 4832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1263 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1267 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 4841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1272 "glslang.y" { - parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0); - (yyval.interm.type) = (yyvsp[-1].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 4852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1276 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1276 "glslang.y" { - (yyval.interm).loc = (yyvsp[-1].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - (yyval.interm).arraySizes->addInnerSize(); + parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); + (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; } -#line 4862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -#line 1281 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1285 "glslang.y" { - (yyval.interm).loc = (yyvsp[-2].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; (yyval.interm).arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); + (yyval.interm).arraySizes->addInnerSize(); } -#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -#line 1289 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1290 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); - (yyval.interm).arraySizes->addInnerSize(); + (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } -#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -#line 1293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1298 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); + (yyval.interm) = (yyvsp[(1) - (3)].interm); + (yyval.interm).arraySizes->addInnerSize(); } -#line 4896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1302 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtVoid; + (yyval.interm) = (yyvsp[(1) - (4)].interm); + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } -#line 4905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -#line 1307 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1312 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtVoid; } -#line 4914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -#line 1311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1316 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; } -#line 4924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -#line 1316 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1320 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; } -#line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -#line 1320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1325 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; } -#line 4943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -#line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1329 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; } -#line 4953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -#line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1334 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; } -#line 4963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1339 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; } -#line 4972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -#line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1344 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; } -#line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -#line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1348 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -#line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1353 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1358 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(4); } -#line 5013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1363 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -#line 1366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1369 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1375 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(4); } -#line 5045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -#line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1381 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -#line 1382 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1386 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1391 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(4); } -#line 5075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1396 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -#line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1401 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1406 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(4); } -#line 5106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1411 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1417 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -#line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1423 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(2); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(4); } -#line 5139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1429 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -#line 1432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1435 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -#line 1438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1441 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(2); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(4); } -#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -#line 1444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1447 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(3); + (yyval.interm.type).setVector(2); } -#line 5183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1453 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(3); } -#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -#line 1456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1459 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(4); } -#line 5204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1465 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setMatrix(2, 2); } -#line 5214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -#line 1466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1470 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setMatrix(3, 3); } -#line 5224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -#line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1475 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).setMatrix(4, 4); } -#line 5234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1480 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); + (yyval.interm.type).setMatrix(2, 2); } -#line 5244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1485 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); + (yyval.interm.type).setMatrix(2, 3); } -#line 5254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1490 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); + (yyval.interm.type).setMatrix(2, 4); } -#line 5264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1495 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setMatrix(3, 2); } -#line 5274 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1500 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); + (yyval.interm.type).setMatrix(3, 3); } -#line 5284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1505 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); + (yyval.interm.type).setMatrix(3, 4); } -#line 5294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1510 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); + (yyval.interm.type).setMatrix(4, 2); } -#line 5304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1515 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setMatrix(4, 3); } -#line 5314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1520 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } -#line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1525 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); - } -#line 5336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 214: -#line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); - } -#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 215: -#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 216: -#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 214: +/* Line 1792 of yacc.c */ +#line 1531 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 3); - } -#line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 217: -#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 4); - } -#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 218: -#line 1552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 2); - } -#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 219: -#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 220: -#line 1564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 215: +/* Line 1792 of yacc.c */ +#line 1537 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 4); - } -#line 5413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 221: -#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 2); - } -#line 5424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 222: -#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 3); - } -#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 223: -#line 1582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 216: +/* Line 1792 of yacc.c */ +#line 1543 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 217: +/* Line 1792 of yacc.c */ +#line 1549 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 218: +/* Line 1792 of yacc.c */ +#line 1555 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 219: +/* Line 1792 of yacc.c */ +#line 1561 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 2); + } + break; + + case 220: +/* Line 1792 of yacc.c */ +#line 1567 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 221: +/* Line 1792 of yacc.c */ +#line 1573 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 4); + } + break; + + case 222: +/* Line 1792 of yacc.c */ +#line 1579 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 2); + } + break; + + case 223: +/* Line 1792 of yacc.c */ +#line 1585 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 3); + } break; case 224: -#line 1588 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1591 "glslang.y" { - parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAtomicUint; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } -#line 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -#line 1593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1597 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D); + parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtAtomicUint; } -#line 5466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1602 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 5476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1607 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 5486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1612 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 5496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1617 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 5506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1622 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 5516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1627 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 5526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1632 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 5536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1637 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 5546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1642 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 5556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1647 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 5566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1652 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 5576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1657 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 5586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1662 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 5596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1667 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D); + (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 5606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1672 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); + (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 5616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1677 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); + (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 5626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1682 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 5636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1687 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 5646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1692 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 5656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -#line 1693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1697 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D); + (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 5666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1702 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); + (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 5676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1707 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); + (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 5686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1712 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); + (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 5696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1717 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1722 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -#line 1723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1727 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 5726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1732 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect); + (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1737 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 5746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1742 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 5756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1747 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdRect); + (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 5766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1752 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 5776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1757 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 5786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1762 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 5796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1767 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 5806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1772 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 5816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1777 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 5826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1782 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 5836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1787 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 5846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1792 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 5856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1797 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1802 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); + (yyval.interm.type).sampler.setPureSampler(false); } -#line 5876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1807 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); + (yyval.interm.type).sampler.setPureSampler(true); } -#line 5886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1812 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 5896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1817 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 5906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1822 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 5916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1827 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 5926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1832 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 5936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1837 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 5946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -#line 1838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1842 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 5956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -#line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1847 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 5966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -#line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1852 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 5976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -#line 1853 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1857 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 5986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1862 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 5996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1867 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1872 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 6016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1877 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 6026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1882 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 6036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1887 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 6046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1892 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1897 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 6066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1902 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1907 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 6086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1912 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 6096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1917 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1922 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 6116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1927 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 6126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1932 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 6136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1937 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 6146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1942 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -#line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1947 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1952 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1957 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1962 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -#line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1967 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -#line 1968 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1972 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1977 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1982 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 6236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1987 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 6246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1992 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 6256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -#line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1997 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 6266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -#line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2002 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 6276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -#line 2003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2007 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 6286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2012 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); + (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 6296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2017 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); + (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 6306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2022 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 6316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2027 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); + (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -#line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2032 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); + (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -#line 2033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2037 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 6346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2042 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 6356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2047 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 6366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2052 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2057 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 6386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -#line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2062 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 6396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -#line 2063 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2067 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 6406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2072 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 6416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2077 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 6426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2082 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2087 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -#line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2092 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 6456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -#line 2093 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2097 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 6466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2102 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 6476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2107 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 6486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2112 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -#line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2117 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -#line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2122 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -#line 2123 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2127 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 6526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -#line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2132 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 6536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2137 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + } + break; + + case 334: +/* Line 1792 of yacc.c */ +#line 2142 "glslang.y" { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 6547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 334: -#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat); - } -#line 6558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -#line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2148 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtFloat, true); + (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 6569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2154 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtInt); + (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -#line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2160 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtInt, true); + (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -#line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2166 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtUint); + (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -#line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2172 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setSubpass(EbtUint, true); + (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -#line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2178 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); - (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; - parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2184 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); + } + break; + + case 342: +/* Line 1792 of yacc.c */ +#line 2189 "glslang.y" { // // This is for user defined type names. The lexical phase looked up the // type. // - if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { + if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else - parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); + parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); } -#line 6641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 342: -#line 2196 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) - (yyval.interm.type).qualifier.precision = EpqHigh; - } -#line 6652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -#line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2205 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); if (parseContext.profile == EEsProfile) - (yyval.interm.type).qualifier.precision = EpqMedium; + (yyval.interm.type).qualifier.precision = EpqHigh; } -#line 6663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: -#line 2208 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2211 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); if (parseContext.profile == EEsProfile) - (yyval.interm.type).qualifier.precision = EpqLow; + (yyval.interm.type).qualifier.precision = EpqMedium; } -#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 6680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2217 "glslang.y" + { + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + if (parseContext.profile == EEsProfile) + (yyval.interm.type).qualifier.precision = EpqLow; + } break; case 346: -#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); - parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); - if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = structure; - --parseContext.structNestingLevel; - } -#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2226 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } break; case 347: -#line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 6702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 348: -#line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2226 "glslang.y" { - TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[-4].lex).loc); + TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); + parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); + if (! parseContext.symbolTable.insert(*userTypeDef)) + parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 6714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 348: +/* Line 1792 of yacc.c */ +#line 2237 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } break; case 349: -#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2237 "glslang.y" { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); + TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = structure; + --parseContext.structNestingLevel; } -#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -#line 2241 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2247 "glslang.y" { - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { - for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); - } - (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); - } + (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); } -#line 6737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -#line 2254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2250 "glslang.y" { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); - - for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-2].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); + (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { + for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); + } + (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); } } -#line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: -#line 2272 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2263 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier); - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); + (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); + parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-3].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); + parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); } } -#line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: -#line 2296 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2281 "glslang.y" { - (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); + if ((yyvsp[(2) - (4)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if (parseContext.profile == EEsProfile) + parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); + } + + (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); + + for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { + parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); + } } -#line 6795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: -#line 2300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2305 "glslang.y" { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + (yyval.interm.typeList) = new TTypeList; + (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); } -#line 6803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: -#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2309 "glslang.y" { - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); + (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); } -#line 6813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: -#line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2315 "glslang.y" { - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0); - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); - (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); } -#line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: -#line 2322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2320 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + + (yyval.interm.typeLine).type = new TType(EbtVoid); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); + (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); } -#line 6834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: -#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2331 "glslang.y" { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 6845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: -#line 2331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2334 "glslang.y" { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); } -#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -#line 2340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2340 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); + const char* initFeature = "{ } style initializers"; + parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); } -#line 6864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -#line 2343 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2349 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); } -#line 6872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -#line 2349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2352 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + } break; case 363: -#line 2353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2358 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 364: -#line 2354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 365: -#line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2363 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 366: -#line 2361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2369 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 367: -#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2370 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 368: -#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2371 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 369: -#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2372 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 370: -#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 371: -#line 2366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2374 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 372: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 6938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2375 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 373: -#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; - } -#line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2379 "glslang.y" + { (yyval.interm.intermNode) = 0; } break; case 374: -#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2380 "glslang.y" + { + parseContext.symbolTable.push(); + ++parseContext.statementNestingLevel; + } + break; + + case 375: +/* Line 1792 of yacc.c */ +#line 2384 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 6956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 375: -#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) - (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); - } -#line 6966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: -#line 2387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2388 "glslang.y" + { + if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) + (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); + } break; case 377: -#line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2396 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 378: -#line 2392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2397 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; case 379: -#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2401 "glslang.y" { - --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + ++parseContext.controlFlowNestingLevel; } -#line 6995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: -#line 2399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2404 "glslang.y" + { + --parseContext.controlFlowNestingLevel; + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + } + break; + + case 381: +/* Line 1792 of yacc.c */ +#line 2408 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -#line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 382: +/* Line 1792 of yacc.c */ +#line 2413 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } -#line 7016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 382: -#line 2413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 7024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: -#line 2416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2422 "glslang.y" { - if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) - (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); + (yyval.interm.intermNode) = 0; } -#line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2425 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); - (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case - } + if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) + (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); } -#line 7047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: -#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2433 "glslang.y" { - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); + if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case - } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + } } -#line 7060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: -#line 2443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 7066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2441 "glslang.y" + { + if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); + (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case + } else + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + } break; case 387: -#line 2444 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2452 "glslang.y" + { (yyval.interm.intermNode) = 0; } break; case 388: -#line 2448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); - } -#line 7081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2453 "glslang.y" + { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } break; case 389: -#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2457 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); + parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); } -#line 7090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: -#line 2459 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2464 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); - (yyval.interm.nodePair).node2 = 0; + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); } -#line 7099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: -#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2468 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.nodePair).node2 = 0; } -#line 7108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: -#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2476 "glslang.y" { - parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); + } + break; - TType type((yyvsp[-3].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + case 393: +/* Line 1792 of yacc.c */ +#line 2480 "glslang.y" + { + parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); + + TType type((yyvsp[(1) - (4)].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } -#line 7123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 393: -#line 2484 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 394: +/* Line 1792 of yacc.c */ +#line 2493 "glslang.y" { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7132,13 +7443,13 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 7136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 395: +/* Line 1792 of yacc.c */ +#line 2501 "glslang.y" { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); @@ -7146,287 +7457,287 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 395: -#line 2504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = 0; - } -#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: -#line 2507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2513 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = 0; } -#line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: -#line 2513 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2516 "glslang.y" { - (yyval.interm.intermNode) = 0; - if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); - else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); - else { - parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); - } + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: -#line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2522 "glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); - else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); + else { + parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); + } } -#line 7197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: -#line 2537 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2534 "glslang.y" { - if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); - parseContext.symbolTable.push(); - ++parseContext.loopNestingLevel; - ++parseContext.statementNestingLevel; - ++parseContext.controlFlowNestingLevel; + (yyval.interm.intermNode) = 0; + if (parseContext.switchLevel.size() == 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); + else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); + else + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); } -#line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2546 "glslang.y" + { + if (! parseContext.limits.whileLoops) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); + parseContext.symbolTable.push(); + ++parseContext.loopNestingLevel; + ++parseContext.statementNestingLevel; + ++parseContext.controlFlowNestingLevel; + } + break; + + case 401: +/* Line 1792 of yacc.c */ +#line 2554 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -#line 2552 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 402: +/* Line 1792 of yacc.c */ +#line 2561 "glslang.y" { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 402: -#line 2557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 403: +/* Line 1792 of yacc.c */ +#line 2566 "glslang.y" { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); + parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); - parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); + parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 403: -#line 2568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 404: +/* Line 1792 of yacc.c */ +#line 2577 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 404: -#line 2574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 405: +/* Line 1792 of yacc.c */ +#line 2583 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); + parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 405: -#line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - } -#line 7284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: -#line 2592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2598 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: -#line 2598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2601 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: -#line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2607 "glslang.y" { - (yyval.interm.intermTypedNode) = 0; + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 7308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: -#line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2610 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = 0; + (yyval.interm.intermTypedNode) = 0; } -#line 7317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: -#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2616 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = 0; } -#line 7326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: -#line 2618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2620 "glslang.y" { - if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); } -#line 7336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: -#line 2623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2627 "glslang.y" { - if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); + if (parseContext.loopNestingLevel <= 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); } -#line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: -#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2632 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); - if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); - if (parseContext.inMain) - parseContext.postMainReturn = true; + if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); } -#line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -#line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2637 "glslang.y" { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); + if (parseContext.currentFunctionType->getBasicType() != EbtVoid) + parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); + if (parseContext.inMain) + parseContext.postMainReturn = true; } -#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2644 "glslang.y" { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); } -#line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -#line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2647 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); } -#line 7384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -#line 2651 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2656 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -#line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2660 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2667 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2670 "glslang.y" { - (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); - (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2676 "glslang.y" + { + (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); + (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); + } + break; + + case 422: +/* Line 1792 of yacc.c */ +#line 2680 "glslang.y" { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); + parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree @@ -7434,11 +7745,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 7753 "glslang_tab.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7460,7 +7771,7 @@ yyreduce: *++yyvsp = yyval; - /* Now 'shift' the result of the reduction. Determine what state + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -7475,9 +7786,9 @@ yyreduce: goto yynewstate; -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -7528,20 +7839,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -7560,7 +7871,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7573,29 +7884,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); + yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -7646,14 +7957,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); + yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow @@ -7664,7 +7975,11 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - return yyresult; + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1906 */ + + +/* Line 2055 of yacc.c */ +#line 2697 "glslang.y" diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index e7d8fae8..3c0dc7ba 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,287 +40,289 @@ extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - MAT2X2 = 325, - MAT2X3 = 326, - MAT2X4 = 327, - MAT3X2 = 328, - MAT3X3 = 329, - MAT3X4 = 330, - MAT4X2 = 331, - MAT4X3 = 332, - MAT4X4 = 333, - DMAT2X2 = 334, - DMAT2X3 = 335, - DMAT2X4 = 336, - DMAT3X2 = 337, - DMAT3X3 = 338, - DMAT3X4 = 339, - DMAT4X2 = 340, - DMAT4X3 = 341, - DMAT4X4 = 342, - ATOMIC_UINT = 343, - SAMPLER1D = 344, - SAMPLER2D = 345, - SAMPLER3D = 346, - SAMPLERCUBE = 347, - SAMPLER1DSHADOW = 348, - SAMPLER2DSHADOW = 349, - SAMPLERCUBESHADOW = 350, - SAMPLER1DARRAY = 351, - SAMPLER2DARRAY = 352, - SAMPLER1DARRAYSHADOW = 353, - SAMPLER2DARRAYSHADOW = 354, - ISAMPLER1D = 355, - ISAMPLER2D = 356, - ISAMPLER3D = 357, - ISAMPLERCUBE = 358, - ISAMPLER1DARRAY = 359, - ISAMPLER2DARRAY = 360, - USAMPLER1D = 361, - USAMPLER2D = 362, - USAMPLER3D = 363, - USAMPLERCUBE = 364, - USAMPLER1DARRAY = 365, - USAMPLER2DARRAY = 366, - SAMPLER2DRECT = 367, - SAMPLER2DRECTSHADOW = 368, - ISAMPLER2DRECT = 369, - USAMPLER2DRECT = 370, - SAMPLERBUFFER = 371, - ISAMPLERBUFFER = 372, - USAMPLERBUFFER = 373, - SAMPLERCUBEARRAY = 374, - SAMPLERCUBEARRAYSHADOW = 375, - ISAMPLERCUBEARRAY = 376, - USAMPLERCUBEARRAY = 377, - SAMPLER2DMS = 378, - ISAMPLER2DMS = 379, - USAMPLER2DMS = 380, - SAMPLER2DMSARRAY = 381, - ISAMPLER2DMSARRAY = 382, - USAMPLER2DMSARRAY = 383, - SAMPLEREXTERNALOES = 384, - SAMPLER = 385, - SAMPLERSHADOW = 386, - TEXTURE1D = 387, - TEXTURE2D = 388, - TEXTURE3D = 389, - TEXTURECUBE = 390, - TEXTURE1DARRAY = 391, - TEXTURE2DARRAY = 392, - ITEXTURE1D = 393, - ITEXTURE2D = 394, - ITEXTURE3D = 395, - ITEXTURECUBE = 396, - ITEXTURE1DARRAY = 397, - ITEXTURE2DARRAY = 398, - UTEXTURE1D = 399, - UTEXTURE2D = 400, - UTEXTURE3D = 401, - UTEXTURECUBE = 402, - UTEXTURE1DARRAY = 403, - UTEXTURE2DARRAY = 404, - TEXTURE2DRECT = 405, - ITEXTURE2DRECT = 406, - UTEXTURE2DRECT = 407, - TEXTUREBUFFER = 408, - ITEXTUREBUFFER = 409, - UTEXTUREBUFFER = 410, - TEXTURECUBEARRAY = 411, - ITEXTURECUBEARRAY = 412, - UTEXTURECUBEARRAY = 413, - TEXTURE2DMS = 414, - ITEXTURE2DMS = 415, - UTEXTURE2DMS = 416, - TEXTURE2DMSARRAY = 417, - ITEXTURE2DMSARRAY = 418, - UTEXTURE2DMSARRAY = 419, - SUBPASSINPUT = 420, - SUBPASSINPUTMS = 421, - ISUBPASSINPUT = 422, - ISUBPASSINPUTMS = 423, - USUBPASSINPUT = 424, - USUBPASSINPUTMS = 425, - IMAGE1D = 426, - IIMAGE1D = 427, - UIMAGE1D = 428, - IMAGE2D = 429, - IIMAGE2D = 430, - UIMAGE2D = 431, - IMAGE3D = 432, - IIMAGE3D = 433, - UIMAGE3D = 434, - IMAGE2DRECT = 435, - IIMAGE2DRECT = 436, - UIMAGE2DRECT = 437, - IMAGECUBE = 438, - IIMAGECUBE = 439, - UIMAGECUBE = 440, - IMAGEBUFFER = 441, - IIMAGEBUFFER = 442, - UIMAGEBUFFER = 443, - IMAGE1DARRAY = 444, - IIMAGE1DARRAY = 445, - UIMAGE1DARRAY = 446, - IMAGE2DARRAY = 447, - IIMAGE2DARRAY = 448, - UIMAGE2DARRAY = 449, - IMAGECUBEARRAY = 450, - IIMAGECUBEARRAY = 451, - UIMAGECUBEARRAY = 452, - IMAGE2DMS = 453, - IIMAGE2DMS = 454, - UIMAGE2DMS = 455, - IMAGE2DMSARRAY = 456, - IIMAGE2DMSARRAY = 457, - UIMAGE2DMSARRAY = 458, - STRUCT = 459, - VOID = 460, - WHILE = 461, - IDENTIFIER = 462, - TYPE_NAME = 463, - FLOATCONSTANT = 464, - DOUBLECONSTANT = 465, - INTCONSTANT = 466, - UINTCONSTANT = 467, - INT64CONSTANT = 468, - UINT64CONSTANT = 469, - BOOLCONSTANT = 470, - LEFT_OP = 471, - RIGHT_OP = 472, - INC_OP = 473, - DEC_OP = 474, - LE_OP = 475, - GE_OP = 476, - EQ_OP = 477, - NE_OP = 478, - AND_OP = 479, - OR_OP = 480, - XOR_OP = 481, - MUL_ASSIGN = 482, - DIV_ASSIGN = 483, - ADD_ASSIGN = 484, - MOD_ASSIGN = 485, - LEFT_ASSIGN = 486, - RIGHT_ASSIGN = 487, - AND_ASSIGN = 488, - XOR_ASSIGN = 489, - OR_ASSIGN = 490, - SUB_ASSIGN = 491, - LEFT_PAREN = 492, - RIGHT_PAREN = 493, - LEFT_BRACKET = 494, - RIGHT_BRACKET = 495, - LEFT_BRACE = 496, - RIGHT_BRACE = 497, - DOT = 498, - COMMA = 499, - COLON = 500, - EQUAL = 501, - SEMICOLON = 502, - BANG = 503, - DASH = 504, - TILDE = 505, - PLUS = 506, - STAR = 507, - SLASH = 508, - PERCENT = 509, - LEFT_ANGLE = 510, - RIGHT_ANGLE = 511, - VERTICAL_BAR = 512, - CARET = 513, - AMPERSAND = 514, - QUESTION = 515, - INVARIANT = 516, - PRECISE = 517, - HIGH_PRECISION = 518, - MEDIUM_PRECISION = 519, - LOW_PRECISION = 520, - PRECISION = 521, - PACKED = 522, - RESOURCE = 523, - SUPERP = 524 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + BREAK = 268, + CONTINUE = 269, + DO = 270, + ELSE = 271, + FOR = 272, + IF = 273, + DISCARD = 274, + RETURN = 275, + SWITCH = 276, + CASE = 277, + DEFAULT = 278, + SUBROUTINE = 279, + BVEC2 = 280, + BVEC3 = 281, + BVEC4 = 282, + IVEC2 = 283, + IVEC3 = 284, + IVEC4 = 285, + I64VEC2 = 286, + I64VEC3 = 287, + I64VEC4 = 288, + UVEC2 = 289, + UVEC3 = 290, + UVEC4 = 291, + U64VEC2 = 292, + U64VEC3 = 293, + U64VEC4 = 294, + VEC2 = 295, + VEC3 = 296, + VEC4 = 297, + MAT2 = 298, + MAT3 = 299, + MAT4 = 300, + CENTROID = 301, + IN = 302, + OUT = 303, + INOUT = 304, + UNIFORM = 305, + PATCH = 306, + SAMPLE = 307, + BUFFER = 308, + SHARED = 309, + COHERENT = 310, + VOLATILE = 311, + RESTRICT = 312, + READONLY = 313, + WRITEONLY = 314, + DVEC2 = 315, + DVEC3 = 316, + DVEC4 = 317, + DMAT2 = 318, + DMAT3 = 319, + DMAT4 = 320, + NOPERSPECTIVE = 321, + FLAT = 322, + SMOOTH = 323, + LAYOUT = 324, + __EXPLICITINTERPAMD = 325, + MAT2X2 = 326, + MAT2X3 = 327, + MAT2X4 = 328, + MAT3X2 = 329, + MAT3X3 = 330, + MAT3X4 = 331, + MAT4X2 = 332, + MAT4X3 = 333, + MAT4X4 = 334, + DMAT2X2 = 335, + DMAT2X3 = 336, + DMAT2X4 = 337, + DMAT3X2 = 338, + DMAT3X3 = 339, + DMAT3X4 = 340, + DMAT4X2 = 341, + DMAT4X3 = 342, + DMAT4X4 = 343, + ATOMIC_UINT = 344, + SAMPLER1D = 345, + SAMPLER2D = 346, + SAMPLER3D = 347, + SAMPLERCUBE = 348, + SAMPLER1DSHADOW = 349, + SAMPLER2DSHADOW = 350, + SAMPLERCUBESHADOW = 351, + SAMPLER1DARRAY = 352, + SAMPLER2DARRAY = 353, + SAMPLER1DARRAYSHADOW = 354, + SAMPLER2DARRAYSHADOW = 355, + ISAMPLER1D = 356, + ISAMPLER2D = 357, + ISAMPLER3D = 358, + ISAMPLERCUBE = 359, + ISAMPLER1DARRAY = 360, + ISAMPLER2DARRAY = 361, + USAMPLER1D = 362, + USAMPLER2D = 363, + USAMPLER3D = 364, + USAMPLERCUBE = 365, + USAMPLER1DARRAY = 366, + USAMPLER2DARRAY = 367, + SAMPLER2DRECT = 368, + SAMPLER2DRECTSHADOW = 369, + ISAMPLER2DRECT = 370, + USAMPLER2DRECT = 371, + SAMPLERBUFFER = 372, + ISAMPLERBUFFER = 373, + USAMPLERBUFFER = 374, + SAMPLERCUBEARRAY = 375, + SAMPLERCUBEARRAYSHADOW = 376, + ISAMPLERCUBEARRAY = 377, + USAMPLERCUBEARRAY = 378, + SAMPLER2DMS = 379, + ISAMPLER2DMS = 380, + USAMPLER2DMS = 381, + SAMPLER2DMSARRAY = 382, + ISAMPLER2DMSARRAY = 383, + USAMPLER2DMSARRAY = 384, + SAMPLEREXTERNALOES = 385, + SAMPLER = 386, + SAMPLERSHADOW = 387, + TEXTURE1D = 388, + TEXTURE2D = 389, + TEXTURE3D = 390, + TEXTURECUBE = 391, + TEXTURE1DARRAY = 392, + TEXTURE2DARRAY = 393, + ITEXTURE1D = 394, + ITEXTURE2D = 395, + ITEXTURE3D = 396, + ITEXTURECUBE = 397, + ITEXTURE1DARRAY = 398, + ITEXTURE2DARRAY = 399, + UTEXTURE1D = 400, + UTEXTURE2D = 401, + UTEXTURE3D = 402, + UTEXTURECUBE = 403, + UTEXTURE1DARRAY = 404, + UTEXTURE2DARRAY = 405, + TEXTURE2DRECT = 406, + ITEXTURE2DRECT = 407, + UTEXTURE2DRECT = 408, + TEXTUREBUFFER = 409, + ITEXTUREBUFFER = 410, + UTEXTUREBUFFER = 411, + TEXTURECUBEARRAY = 412, + ITEXTURECUBEARRAY = 413, + UTEXTURECUBEARRAY = 414, + TEXTURE2DMS = 415, + ITEXTURE2DMS = 416, + UTEXTURE2DMS = 417, + TEXTURE2DMSARRAY = 418, + ITEXTURE2DMSARRAY = 419, + UTEXTURE2DMSARRAY = 420, + SUBPASSINPUT = 421, + SUBPASSINPUTMS = 422, + ISUBPASSINPUT = 423, + ISUBPASSINPUTMS = 424, + USUBPASSINPUT = 425, + USUBPASSINPUTMS = 426, + IMAGE1D = 427, + IIMAGE1D = 428, + UIMAGE1D = 429, + IMAGE2D = 430, + IIMAGE2D = 431, + UIMAGE2D = 432, + IMAGE3D = 433, + IIMAGE3D = 434, + UIMAGE3D = 435, + IMAGE2DRECT = 436, + IIMAGE2DRECT = 437, + UIMAGE2DRECT = 438, + IMAGECUBE = 439, + IIMAGECUBE = 440, + UIMAGECUBE = 441, + IMAGEBUFFER = 442, + IIMAGEBUFFER = 443, + UIMAGEBUFFER = 444, + IMAGE1DARRAY = 445, + IIMAGE1DARRAY = 446, + UIMAGE1DARRAY = 447, + IMAGE2DARRAY = 448, + IIMAGE2DARRAY = 449, + UIMAGE2DARRAY = 450, + IMAGECUBEARRAY = 451, + IIMAGECUBEARRAY = 452, + UIMAGECUBEARRAY = 453, + IMAGE2DMS = 454, + IIMAGE2DMS = 455, + UIMAGE2DMS = 456, + IMAGE2DMSARRAY = 457, + IIMAGE2DMSARRAY = 458, + UIMAGE2DMSARRAY = 459, + STRUCT = 460, + VOID = 461, + WHILE = 462, + IDENTIFIER = 463, + TYPE_NAME = 464, + FLOATCONSTANT = 465, + DOUBLECONSTANT = 466, + INTCONSTANT = 467, + UINTCONSTANT = 468, + INT64CONSTANT = 469, + UINT64CONSTANT = 470, + BOOLCONSTANT = 471, + LEFT_OP = 472, + RIGHT_OP = 473, + INC_OP = 474, + DEC_OP = 475, + LE_OP = 476, + GE_OP = 477, + EQ_OP = 478, + NE_OP = 479, + AND_OP = 480, + OR_OP = 481, + XOR_OP = 482, + MUL_ASSIGN = 483, + DIV_ASSIGN = 484, + ADD_ASSIGN = 485, + MOD_ASSIGN = 486, + LEFT_ASSIGN = 487, + RIGHT_ASSIGN = 488, + AND_ASSIGN = 489, + XOR_ASSIGN = 490, + OR_ASSIGN = 491, + SUB_ASSIGN = 492, + LEFT_PAREN = 493, + RIGHT_PAREN = 494, + LEFT_BRACKET = 495, + RIGHT_BRACKET = 496, + LEFT_BRACE = 497, + RIGHT_BRACE = 498, + DOT = 499, + COMMA = 500, + COLON = 501, + EQUAL = 502, + SEMICOLON = 503, + BANG = 504, + DASH = 505, + TILDE = 506, + PLUS = 507, + STAR = 508, + SLASH = 509, + PERCENT = 510, + LEFT_ANGLE = 511, + RIGHT_ANGLE = 512, + VERTICAL_BAR = 513, + CARET = 514, + AMPERSAND = 515, + QUESTION = 516, + INVARIANT = 517, + PRECISE = 518, + HIGH_PRECISION = 519, + MEDIUM_PRECISION = 520, + LOW_PRECISION = 521, + PRECISION = 522, + PACKED = 523, + RESOURCE = 524, + SUPERP = 525 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:1909 */ +/* Line 2058 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -354,16 +356,28 @@ union YYSTYPE }; } interm; -#line 358 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 2058 of yacc.c */ +#line 362 "glslang_tab.cpp.h" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 03519bc9..893f42b4 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -355,6 +355,7 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpBallot: out.debug << "ballot"; break; case EOpReadFirstInvocation: out.debug << "readFirstInvocation"; break; + case EOpAnyInvocation: out.debug << "anyInvocation"; break; case EOpAllInvocations: out.debug << "allInvocations"; break; case EOpAllInvocationsEqual: out.debug << "allInvocationsEqual"; break; @@ -365,6 +366,19 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpRcp: out.debug << "rcp"; break; case EOpSaturate: out.debug << "saturate"; break; +#ifdef AMD_EXTENSIONS + case EOpMinInvocations: out.debug << "minInvocations"; break; + case EOpMaxInvocations: out.debug << "maxInvocations"; break; + case EOpAddInvocations: out.debug << "addInvocations"; break; + case EOpMinInvocationsNonUniform: out.debug << "minInvocationsNonUniform"; break; + case EOpMaxInvocationsNonUniform: out.debug << "maxInvocationsNonUniform"; break; + case EOpAddInvocationsNonUniform: out.debug << "addInvocationsNonUniform"; break; + case EOpMbcnt: out.debug << "mbcnt"; break; + + case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; + case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; +#endif + default: out.debug.message(EPrefixError, "Bad unary op"); } @@ -482,6 +496,18 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpReadInvocation: out.debug << "readInvocation"; break; +#ifdef AMD_EXTENSIONS + case EOpSwizzleInvocations: out.debug << "swizzleInvocations"; break; + case EOpSwizzleInvocationsMasked: out.debug << "swizzleInvocationsMasked"; break; + case EOpWriteInvocation: out.debug << "writeInvocation"; break; + + case EOpMin3: out.debug << "min3"; break; + case EOpMax3: out.debug << "max3"; break; + case EOpMid3: out.debug << "mid3"; break; + + case EOpTime: out.debug << "time"; break; +#endif + case EOpAtomicAdd: out.debug << "AtomicAdd"; break; case EOpAtomicMin: out.debug << "AtomicMin"; break; case EOpAtomicMax: out.debug << "AtomicMax"; break; @@ -539,6 +565,9 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpInterpolateAtSample: out.debug << "interpolateAtSample"; break; case EOpInterpolateAtOffset: out.debug << "interpolateAtOffset"; break; +#ifdef AMD_EXTENSIONS + case EOpInterpolateAtVertex: out.debug << "interpolateAtVertex"; break; +#endif case EOpSinCos: out.debug << "sincos"; break; case EOpGenMul: out.debug << "mul"; break; From a78b02941b26561b2d9d796b3eb385ef5efe3e8f Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Tue, 19 Jul 2016 14:28:05 -0600 Subject: [PATCH 013/217] HLSL: Add SampleCmp and SampleCmpLevelZero texture methods --- .../hlsl.samplecmp.array.dx10.frag.out | 588 ++++++++++++++++ .../hlsl.samplecmp.basic.dx10.frag.out | 568 ++++++++++++++++ .../hlsl.samplecmp.offset.dx10.frag.out | 482 ++++++++++++++ .../hlsl.samplecmp.offsetarray.dx10.frag.out | 500 ++++++++++++++ ...lsl.samplecmplevelzero.array.dx10.frag.out | 625 ++++++++++++++++++ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 605 +++++++++++++++++ ...sl.samplecmplevelzero.offset.dx10.frag.out | 507 ++++++++++++++ ...mplecmplevelzero.offsetarray.dx10.frag.out | 525 +++++++++++++++ Test/hlsl.load.dx10.frag | 91 +++ Test/hlsl.samplecmp.array.dx10.frag | 60 ++ Test/hlsl.samplecmp.basic.dx10.frag | 61 ++ Test/hlsl.samplecmp.offset.dx10.frag | 66 ++ Test/hlsl.samplecmp.offsetarray.dx10.frag | 67 ++ Test/hlsl.samplecmplevelzero.array.dx10.frag | 60 ++ Test/hlsl.samplecmplevelzero.basic.dx10.frag | 61 ++ Test/hlsl.samplecmplevelzero.offset.dx10.frag | 66 ++ ...l.samplecmplevelzero.offsetarray.dx10.frag | 67 ++ gtests/Hlsl.FromFile.cpp | 8 + hlsl/hlslGrammar.cpp | 8 +- hlsl/hlslParseHelper.cpp | 61 ++ hlsl/hlslParseables.cpp | 116 ++-- 21 files changed, 5143 insertions(+), 49 deletions(-) create mode 100644 Test/baseResults/hlsl.samplecmp.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.load.dx10.frag create mode 100644 Test/hlsl.samplecmp.array.dx10.frag create mode 100644 Test/hlsl.samplecmp.basic.dx10.frag create mode 100644 Test/hlsl.samplecmp.offset.dx10.frag create mode 100644 Test/hlsl.samplecmp.offsetarray.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.array.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.basic.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.offset.dx10.frag create mode 100644 Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out new file mode 100644 index 00000000..da404c48 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -0,0 +1,588 @@ +hlsl.samplecmp.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 texture (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 texture (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 173 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 28 "r12" + Name 32 "g_tTex1di4a" + Name 41 "r14" + Name 45 "g_tTex1du4a" + Name 54 "r30" + Name 57 "g_tTex2df4a" + Name 69 "r32" + Name 72 "g_tTex2di4a" + Name 81 "r34" + Name 84 "g_tTex2du4a" + Name 93 "r60" + Name 96 "g_tTexcdf4a" + Name 107 "r62" + Name 110 "g_tTexcdi4a" + Name 118 "r64" + Name 121 "g_tTexcdu4a" + Name 129 "PS_OUTPUT" + MemberName 129(PS_OUTPUT) 0 "Color" + MemberName 129(PS_OUTPUT) 1 "Depth" + Name 131 "psout" + Name 139 "g_tTex1df4" + Name 142 "g_tTex1di4" + Name 145 "g_tTex1du4" + Name 148 "g_tTex2df4" + Name 151 "g_tTex2di4" + Name 154 "g_tTex2du4" + Name 157 "g_tTex3df4" + Name 160 "g_tTex3di4" + Name 163 "g_tTex3du4" + Name 166 "g_tTexcdf4" + Name 169 "g_tTexcdi4" + Name 172 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 45(g_tTex1du4a) DescriptorSet 0 + Decorate 57(g_tTex2df4a) DescriptorSet 0 + Decorate 72(g_tTex2di4a) DescriptorSet 0 + Decorate 84(g_tTex2du4a) DescriptorSet 0 + Decorate 96(g_tTexcdf4a) DescriptorSet 0 + Decorate 110(g_tTexcdi4a) DescriptorSet 0 + Decorate 121(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 142(g_tTex1di4) DescriptorSet 0 + Decorate 145(g_tTex1du4) DescriptorSet 0 + Decorate 148(g_tTex2df4) DescriptorSet 0 + Decorate 151(g_tTex2di4) DescriptorSet 0 + Decorate 154(g_tTex2du4) DescriptorSet 0 + Decorate 157(g_tTex3df4) DescriptorSet 0 + Decorate 160(g_tTex3di4) DescriptorSet 0 + Decorate 163(g_tTex3du4) DescriptorSet 0 + Decorate 166(g_tTexcdf4) DescriptorSet 0 + Decorate 169(g_tTexcdi4) DescriptorSet 0 + Decorate 172(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 29: TypeInt 32 1 + 30: TypeImage 29(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 35: TypeImage 29(int) 1D depth array sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4a): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth array sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4a): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth array sampled format:Unknown + 61: TypeSampledImage 60 + 63: TypeVector 6(float) 3 + 64: 6(float) Constant 1050253722 + 65: 63(fvec3) ConstantComposite 21 22 64 + 70: TypeImage 29(int) 2D array sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4a): 71(ptr) Variable UniformConstant + 75: TypeImage 29(int) 2D depth array sampled format:Unknown + 76: TypeSampledImage 75 + 82: TypeImage 42(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4a): 83(ptr) Variable UniformConstant + 87: TypeImage 42(int) 2D depth array sampled format:Unknown + 88: TypeSampledImage 87 + 94: TypeImage 6(float) Cube array sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant + 99: TypeImage 6(float) Cube depth array sampled format:Unknown + 100: TypeSampledImage 99 + 102: TypeVector 6(float) 4 + 103: 6(float) Constant 1053609165 + 104: 102(fvec4) ConstantComposite 21 22 64 103 + 108: TypeImage 29(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdi4a): 109(ptr) Variable UniformConstant + 113: TypeImage 29(int) Cube depth array sampled format:Unknown + 114: TypeSampledImage 113 + 119: TypeImage 42(int) Cube array sampled format:Unknown + 120: TypePointer UniformConstant 119 +121(g_tTexcdu4a): 120(ptr) Variable UniformConstant + 124: TypeImage 42(int) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 130: TypePointer Function 129(PS_OUTPUT) + 132: 29(int) Constant 1 + 133: 6(float) Constant 1065353216 + 137: TypeImage 6(float) 1D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex1df4): 138(ptr) Variable UniformConstant + 140: TypeImage 29(int) 1D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex1di4): 141(ptr) Variable UniformConstant + 143: TypeImage 42(int) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1du4): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) 2D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex2df4): 147(ptr) Variable UniformConstant + 149: TypeImage 29(int) 2D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex2di4): 150(ptr) Variable UniformConstant + 152: TypeImage 42(int) 2D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex2du4): 153(ptr) Variable UniformConstant + 155: TypeImage 6(float) 3D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex3df4): 156(ptr) Variable UniformConstant + 158: TypeImage 29(int) 3D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex3di4): 159(ptr) Variable UniformConstant + 161: TypeImage 42(int) 3D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex3du4): 162(ptr) Variable UniformConstant + 164: TypeImage 6(float) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdf4): 165(ptr) Variable UniformConstant + 167: TypeImage 29(int) Cube sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTexcdi4): 168(ptr) Variable UniformConstant + 170: TypeImage 42(int) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTexcdu4): 171(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 28(r12): 7(ptr) Variable Function + 41(r14): 7(ptr) Variable Function + 54(r30): 7(ptr) Variable Function + 69(r32): 7(ptr) Variable Function + 81(r34): 7(ptr) Variable Function + 93(r60): 7(ptr) Variable Function + 107(r62): 7(ptr) Variable Function + 118(r64): 7(ptr) Variable Function + 131(psout): 130(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 26: 6(float) CompositeExtract 25 0 + 27: 6(float) ImageSampleDrefImplicitLod 19 25 26 + Store 8(r10) 27 + 33: 30 Load 32(g_tTex1di4a) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 6(float) CompositeExtract 23 0 + 39: 6(float) CompositeExtract 38 0 + 40: 6(float) ImageSampleDrefImplicitLod 37 38 39 + Store 28(r12) 40 + 46: 43 Load 45(g_tTex1du4a) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 6(float) CompositeExtract 23 0 + 52: 6(float) CompositeExtract 51 0 + 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 + Store 41(r14) 53 + 58: 55 Load 57(g_tTex2df4a) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 65 0 + 67: 6(float) CompositeExtract 66 0 + 68: 6(float) ImageSampleDrefImplicitLod 62 66 67 + Store 54(r30) 68 + 73: 70 Load 72(g_tTex2di4a) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 65 0 + 79: 6(float) CompositeExtract 78 0 + 80: 6(float) ImageSampleDrefImplicitLod 77 78 79 + Store 69(r32) 80 + 85: 82 Load 84(g_tTex2du4a) + 86: 13 Load 15(g_sSamp) + 89: 88 SampledImage 85 86 + 90: 6(float) CompositeExtract 65 0 + 91: 6(float) CompositeExtract 90 0 + 92: 6(float) ImageSampleDrefImplicitLod 89 90 91 + Store 81(r34) 92 + 97: 94 Load 96(g_tTexcdf4a) + 98: 13 Load 15(g_sSamp) + 101: 100 SampledImage 97 98 + 105: 6(float) CompositeExtract 104 0 + 106: 6(float) ImageSampleDrefImplicitLod 101 105 24 + Store 93(r60) 106 + 111: 108 Load 110(g_tTexcdi4a) + 112: 13 Load 15(g_sSamp) + 115: 114 SampledImage 111 112 + 116: 6(float) CompositeExtract 104 0 + 117: 6(float) ImageSampleDrefImplicitLod 115 116 24 + Store 107(r62) 117 + 122: 119 Load 121(g_tTexcdu4a) + 123: 13 Load 15(g_sSamp) + 126: 125 SampledImage 122 123 + 127: 6(float) CompositeExtract 104 0 + 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 + Store 118(r64) 128 + 134: 7(ptr) AccessChain 131(psout) 132 + Store 134 133 + 135:129(PS_OUTPUT) Load 131(psout) + ReturnValue 135 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out new file mode 100644 index 00000000..b4b60d99 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -0,0 +1,568 @@ +hlsl.samplecmp.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 texture (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 texture (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 texture (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 texture (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 texture (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 texture (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 texture (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 texture (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 texture (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 texture (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 171 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 24 "r02" + Name 28 "g_tTex1di4" + Name 36 "r04" + Name 40 "g_tTex1du4" + Name 48 "r20" + Name 51 "g_tTex2df4" + Name 63 "r22" + Name 66 "g_tTex2di4" + Name 75 "r24" + Name 78 "g_tTex2du4" + Name 87 "r50" + Name 90 "g_tTexcdf4" + Name 102 "r52" + Name 105 "g_tTexcdi4" + Name 114 "r54" + Name 117 "g_tTexcdu4" + Name 127 "PS_OUTPUT" + MemberName 127(PS_OUTPUT) 0 "Color" + MemberName 127(PS_OUTPUT) 1 "Depth" + Name 129 "psout" + Name 137 "g_tTex3df4" + Name 140 "g_tTex3di4" + Name 143 "g_tTex3du4" + Name 146 "g_tTex1df4a" + Name 149 "g_tTex1di4a" + Name 152 "g_tTex1du4a" + Name 155 "g_tTex2df4a" + Name 158 "g_tTex2di4a" + Name 161 "g_tTex2du4a" + Name 164 "g_tTexcdf4a" + Name 167 "g_tTexcdi4a" + Name 170 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 28(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 51(g_tTex2df4) DescriptorSet 0 + Decorate 66(g_tTex2di4) DescriptorSet 0 + Decorate 78(g_tTex2du4) DescriptorSet 0 + Decorate 90(g_tTexcdf4) DescriptorSet 0 + Decorate 105(g_tTexcdi4) DescriptorSet 0 + Decorate 117(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 137(g_tTex3df4) DescriptorSet 0 + Decorate 140(g_tTex3di4) DescriptorSet 0 + Decorate 143(g_tTex3du4) DescriptorSet 0 + Decorate 146(g_tTex1df4a) DescriptorSet 0 + Decorate 149(g_tTex1di4a) DescriptorSet 0 + Decorate 152(g_tTex1du4a) DescriptorSet 0 + Decorate 155(g_tTex2df4a) DescriptorSet 0 + Decorate 158(g_tTex2di4a) DescriptorSet 0 + Decorate 161(g_tTex2du4a) DescriptorSet 0 + Decorate 164(g_tTexcdf4a) DescriptorSet 0 + Decorate 167(g_tTexcdi4a) DescriptorSet 0 + Decorate 170(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 25: TypeInt 32 1 + 26: TypeImage 25(int) 1D sampled format:Unknown + 27: TypePointer UniformConstant 26 + 28(g_tTex1di4): 27(ptr) Variable UniformConstant + 31: TypeImage 25(int) 1D depth sampled format:Unknown + 32: TypeSampledImage 31 + 37: TypeInt 32 0 + 38: TypeImage 37(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 43: TypeImage 37(int) 1D depth sampled format:Unknown + 44: TypeSampledImage 43 + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4): 50(ptr) Variable UniformConstant + 54: TypeImage 6(float) 2D depth sampled format:Unknown + 55: TypeSampledImage 54 + 57: TypeVector 6(float) 2 + 58: 6(float) Constant 1045220557 + 59: 57(fvec2) ConstantComposite 20 58 + 64: TypeImage 25(int) 2D sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4): 65(ptr) Variable UniformConstant + 69: TypeImage 25(int) 2D depth sampled format:Unknown + 70: TypeSampledImage 69 + 76: TypeImage 37(int) 2D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex2du4): 77(ptr) Variable UniformConstant + 81: TypeImage 37(int) 2D depth sampled format:Unknown + 82: TypeSampledImage 81 + 88: TypeImage 6(float) Cube sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTexcdf4): 89(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube depth sampled format:Unknown + 94: TypeSampledImage 93 + 96: TypeVector 6(float) 3 + 97: 6(float) Constant 1050253722 + 98: 96(fvec3) ConstantComposite 20 58 97 + 103: TypeImage 25(int) Cube sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTexcdi4): 104(ptr) Variable UniformConstant + 108: TypeImage 25(int) Cube depth sampled format:Unknown + 109: TypeSampledImage 108 + 115: TypeImage 37(int) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdu4): 116(ptr) Variable UniformConstant + 120: TypeImage 37(int) Cube depth sampled format:Unknown + 121: TypeSampledImage 120 + 126: TypeVector 6(float) 4 + 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) + 128: TypePointer Function 127(PS_OUTPUT) + 130: 25(int) Constant 1 + 131: 6(float) Constant 1065353216 + 135: TypeImage 6(float) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3df4): 136(ptr) Variable UniformConstant + 138: TypeImage 25(int) 3D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex3di4): 139(ptr) Variable UniformConstant + 141: TypeImage 37(int) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3du4): 142(ptr) Variable UniformConstant + 144: TypeImage 6(float) 1D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex1df4a): 145(ptr) Variable UniformConstant + 147: TypeImage 25(int) 1D array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTex1di4a): 148(ptr) Variable UniformConstant + 150: TypeImage 37(int) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1du4a): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex2df4a): 154(ptr) Variable UniformConstant + 156: TypeImage 25(int) 2D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex2di4a): 157(ptr) Variable UniformConstant + 159: TypeImage 37(int) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2du4a): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) Cube array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTexcdf4a): 163(ptr) Variable UniformConstant + 165: TypeImage 25(int) Cube array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTexcdi4a): 166(ptr) Variable UniformConstant + 168: TypeImage 37(int) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdu4a): 169(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 24(r02): 7(ptr) Variable Function + 36(r04): 7(ptr) Variable Function + 48(r20): 7(ptr) Variable Function + 63(r22): 7(ptr) Variable Function + 75(r24): 7(ptr) Variable Function + 87(r50): 7(ptr) Variable Function + 102(r52): 7(ptr) Variable Function + 114(r54): 7(ptr) Variable Function + 129(psout): 128(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 22: 6(float) CompositeExtract 20 0 + 23: 6(float) ImageSampleDrefImplicitLod 19 20 22 + Store 8(r00) 23 + 29: 26 Load 28(g_tTex1di4) + 30: 13 Load 15(g_sSamp) + 33: 32 SampledImage 29 30 + 34: 6(float) CompositeExtract 20 0 + 35: 6(float) ImageSampleDrefImplicitLod 33 20 34 + Store 24(r02) 35 + 41: 38 Load 40(g_tTex1du4) + 42: 13 Load 15(g_sSamp) + 45: 44 SampledImage 41 42 + 46: 6(float) CompositeExtract 20 0 + 47: 6(float) ImageSampleDrefImplicitLod 45 20 46 + Store 36(r04) 47 + 52: 49 Load 51(g_tTex2df4) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 60: 6(float) CompositeExtract 59 0 + 61: 6(float) CompositeExtract 60 0 + 62: 6(float) ImageSampleDrefImplicitLod 56 60 61 + Store 48(r20) 62 + 67: 64 Load 66(g_tTex2di4) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 72: 6(float) CompositeExtract 59 0 + 73: 6(float) CompositeExtract 72 0 + 74: 6(float) ImageSampleDrefImplicitLod 71 72 73 + Store 63(r22) 74 + 79: 76 Load 78(g_tTex2du4) + 80: 13 Load 15(g_sSamp) + 83: 82 SampledImage 79 80 + 84: 6(float) CompositeExtract 59 0 + 85: 6(float) CompositeExtract 84 0 + 86: 6(float) ImageSampleDrefImplicitLod 83 84 85 + Store 75(r24) 86 + 91: 88 Load 90(g_tTexcdf4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 99: 6(float) CompositeExtract 98 0 + 100: 6(float) CompositeExtract 99 0 + 101: 6(float) ImageSampleDrefImplicitLod 95 99 100 + Store 87(r50) 101 + 106: 103 Load 105(g_tTexcdi4) + 107: 13 Load 15(g_sSamp) + 110: 109 SampledImage 106 107 + 111: 6(float) CompositeExtract 98 0 + 112: 6(float) CompositeExtract 111 0 + 113: 6(float) ImageSampleDrefImplicitLod 110 111 112 + Store 102(r52) 113 + 118: 115 Load 117(g_tTexcdu4) + 119: 13 Load 15(g_sSamp) + 122: 121 SampledImage 118 119 + 123: 6(float) CompositeExtract 98 0 + 124: 6(float) CompositeExtract 123 0 + 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 + Store 114(r54) 125 + 132: 7(ptr) AccessChain 129(psout) 130 + Store 132 131 + 133:127(PS_OUTPUT) Load 129(psout) + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out new file mode 100644 index 00000000..e4cd0a41 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -0,0 +1,482 @@ +hlsl.samplecmp.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 26 "r03" + Name 29 "g_tTex1di4" + Name 37 "r05" + Name 41 "g_tTex1du4" + Name 49 "r21" + Name 52 "g_tTex2df4" + Name 67 "r23" + Name 70 "g_tTex2di4" + Name 79 "r25" + Name 82 "g_tTex2du4" + Name 92 "PS_OUTPUT" + MemberName 92(PS_OUTPUT) 0 "Color" + MemberName 92(PS_OUTPUT) 1 "Depth" + Name 94 "psout" + Name 102 "g_tTex3df4" + Name 105 "g_tTex3di4" + Name 108 "g_tTex3du4" + Name 111 "g_tTexcdf4" + Name 114 "g_tTexcdi4" + Name 117 "g_tTexcdu4" + Name 120 "g_tTex1df4a" + Name 123 "g_tTex1di4a" + Name 126 "g_tTex1du4a" + Name 129 "g_tTex2df4a" + Name 132 "g_tTex2di4a" + Name 135 "g_tTex2du4a" + Name 138 "g_tTexcdf4a" + Name 141 "g_tTexcdi4a" + Name 144 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 41(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 70(g_tTex2di4) DescriptorSet 0 + Decorate 82(g_tTex2du4) DescriptorSet 0 + MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 102(g_tTex3df4) DescriptorSet 0 + Decorate 105(g_tTex3di4) DescriptorSet 0 + Decorate 108(g_tTex3du4) DescriptorSet 0 + Decorate 111(g_tTexcdf4) DescriptorSet 0 + Decorate 114(g_tTexcdi4) DescriptorSet 0 + Decorate 117(g_tTexcdu4) DescriptorSet 0 + Decorate 120(g_tTex1df4a) DescriptorSet 0 + Decorate 123(g_tTex1di4a) DescriptorSet 0 + Decorate 126(g_tTex1du4a) DescriptorSet 0 + Decorate 129(g_tTex2df4a) DescriptorSet 0 + Decorate 132(g_tTex2di4a) DescriptorSet 0 + Decorate 135(g_tTex2du4a) DescriptorSet 0 + Decorate 138(g_tTexcdf4a) DescriptorSet 0 + Decorate 141(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 2 + 27: TypeImage 22(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeImage 22(int) 1D depth sampled format:Unknown + 33: TypeSampledImage 32 + 38: TypeInt 32 0 + 39: TypeImage 38(int) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1du4): 40(ptr) Variable UniformConstant + 44: TypeImage 38(int) 1D depth sampled format:Unknown + 45: TypeSampledImage 44 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeImage 6(float) 2D depth sampled format:Unknown + 56: TypeSampledImage 55 + 58: TypeVector 6(float) 2 + 59: 6(float) Constant 1045220557 + 60: 58(fvec2) ConstantComposite 20 59 + 62: TypeVector 22(int) 2 + 63: 22(int) Constant 3 + 64: 62(ivec2) ConstantComposite 23 63 + 68: TypeImage 22(int) 2D sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTex2di4): 69(ptr) Variable UniformConstant + 73: TypeImage 22(int) 2D depth sampled format:Unknown + 74: TypeSampledImage 73 + 80: TypeImage 38(int) 2D sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2du4): 81(ptr) Variable UniformConstant + 85: TypeImage 38(int) 2D depth sampled format:Unknown + 86: TypeSampledImage 85 + 91: TypeVector 6(float) 4 + 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) + 93: TypePointer Function 92(PS_OUTPUT) + 95: 22(int) Constant 1 + 96: 6(float) Constant 1065353216 + 100: TypeImage 6(float) 3D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex3df4): 101(ptr) Variable UniformConstant + 103: TypeImage 22(int) 3D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex3di4): 104(ptr) Variable UniformConstant + 106: TypeImage 38(int) 3D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex3du4): 107(ptr) Variable UniformConstant + 109: TypeImage 6(float) Cube sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTexcdf4): 110(ptr) Variable UniformConstant + 112: TypeImage 22(int) Cube sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTexcdi4): 113(ptr) Variable UniformConstant + 115: TypeImage 38(int) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdu4): 116(ptr) Variable UniformConstant + 118: TypeImage 6(float) 1D array sampled format:Unknown + 119: TypePointer UniformConstant 118 +120(g_tTex1df4a): 119(ptr) Variable UniformConstant + 121: TypeImage 22(int) 1D array sampled format:Unknown + 122: TypePointer UniformConstant 121 +123(g_tTex1di4a): 122(ptr) Variable UniformConstant + 124: TypeImage 38(int) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTex1du4a): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) 2D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex2df4a): 128(ptr) Variable UniformConstant + 130: TypeImage 22(int) 2D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex2di4a): 131(ptr) Variable UniformConstant + 133: TypeImage 38(int) 2D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex2du4a): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTexcdf4a): 137(ptr) Variable UniformConstant + 139: TypeImage 22(int) Cube array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTexcdi4a): 140(ptr) Variable UniformConstant + 142: TypeImage 38(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 26(r03): 7(ptr) Variable Function + 37(r05): 7(ptr) Variable Function + 49(r21): 7(ptr) Variable Function + 67(r23): 7(ptr) Variable Function + 79(r25): 7(ptr) Variable Function + 94(psout): 93(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 24: 6(float) CompositeExtract 20 0 + 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23 + Store 8(r01) 25 + 30: 27 Load 29(g_tTex1di4) + 31: 13 Load 15(g_sSamp) + 34: 33 SampledImage 30 31 + 35: 6(float) CompositeExtract 20 0 + 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23 + Store 26(r03) 36 + 42: 39 Load 41(g_tTex1du4) + 43: 13 Load 15(g_sSamp) + 46: 45 SampledImage 42 43 + 47: 6(float) CompositeExtract 20 0 + 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23 + Store 37(r05) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 61: 6(float) CompositeExtract 60 0 + 65: 6(float) CompositeExtract 61 0 + 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64 + Store 49(r21) 66 + 71: 68 Load 70(g_tTex2di4) + 72: 13 Load 15(g_sSamp) + 75: 74 SampledImage 71 72 + 76: 6(float) CompositeExtract 60 0 + 77: 6(float) CompositeExtract 76 0 + 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64 + Store 67(r23) 78 + 83: 80 Load 82(g_tTex2du4) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 60 0 + 89: 6(float) CompositeExtract 88 0 + 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 + Store 79(r25) 90 + 97: 7(ptr) AccessChain 94(psout) 95 + Store 97 96 + 98:92(PS_OUTPUT) Load 94(psout) + ReturnValue 98 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out new file mode 100644 index 00000000..479be6a7 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -0,0 +1,500 @@ +hlsl.samplecmp.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 151 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 30 "r13" + Name 33 "g_tTex1di4a" + Name 42 "r15" + Name 46 "g_tTex1du4a" + Name 55 "r31" + Name 58 "g_tTex2df4a" + Name 73 "r33" + Name 76 "g_tTex2di4a" + Name 85 "r35" + Name 88 "g_tTex2du4a" + Name 98 "PS_OUTPUT" + MemberName 98(PS_OUTPUT) 0 "Color" + MemberName 98(PS_OUTPUT) 1 "Depth" + Name 100 "psout" + Name 108 "g_tTex1df4" + Name 111 "g_tTex1di4" + Name 114 "g_tTex1du4" + Name 117 "g_tTex2df4" + Name 120 "g_tTex2di4" + Name 123 "g_tTex2du4" + Name 126 "g_tTex3df4" + Name 129 "g_tTex3di4" + Name 132 "g_tTex3du4" + Name 135 "g_tTexcdf4" + Name 138 "g_tTexcdi4" + Name 141 "g_tTexcdu4" + Name 144 "g_tTexcdf4a" + Name 147 "g_tTexcdi4a" + Name 150 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 58(g_tTex2df4a) DescriptorSet 0 + Decorate 76(g_tTex2di4a) DescriptorSet 0 + Decorate 88(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 108(g_tTex1df4) DescriptorSet 0 + Decorate 111(g_tTex1di4) DescriptorSet 0 + Decorate 114(g_tTex1du4) DescriptorSet 0 + Decorate 117(g_tTex2df4) DescriptorSet 0 + Decorate 120(g_tTex2di4) DescriptorSet 0 + Decorate 123(g_tTex2du4) DescriptorSet 0 + Decorate 126(g_tTex3df4) DescriptorSet 0 + Decorate 129(g_tTex3di4) DescriptorSet 0 + Decorate 132(g_tTex3du4) DescriptorSet 0 + Decorate 135(g_tTexcdf4) DescriptorSet 0 + Decorate 138(g_tTexcdi4) DescriptorSet 0 + Decorate 141(g_tTexcdu4) DescriptorSet 0 + Decorate 144(g_tTexcdf4a) DescriptorSet 0 + Decorate 147(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: TypeInt 32 1 + 27: 26(int) Constant 2 + 31: TypeImage 26(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4a): 32(ptr) Variable UniformConstant + 36: TypeImage 26(int) 1D depth array sampled format:Unknown + 37: TypeSampledImage 36 + 43: TypeInt 32 0 + 44: TypeImage 43(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 49: TypeImage 43(int) 1D depth array sampled format:Unknown + 50: TypeSampledImage 49 + 56: TypeImage 6(float) 2D array sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4a): 57(ptr) Variable UniformConstant + 61: TypeImage 6(float) 2D depth array sampled format:Unknown + 62: TypeSampledImage 61 + 64: TypeVector 6(float) 3 + 65: 6(float) Constant 1050253722 + 66: 64(fvec3) ConstantComposite 21 22 65 + 68: TypeVector 26(int) 2 + 69: 26(int) Constant 3 + 70: 68(ivec2) ConstantComposite 27 69 + 74: TypeImage 26(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4a): 75(ptr) Variable UniformConstant + 79: TypeImage 26(int) 2D depth array sampled format:Unknown + 80: TypeSampledImage 79 + 86: TypeImage 43(int) 2D array sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex2du4a): 87(ptr) Variable UniformConstant + 91: TypeImage 43(int) 2D depth array sampled format:Unknown + 92: TypeSampledImage 91 + 97: TypeVector 6(float) 4 + 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) + 99: TypePointer Function 98(PS_OUTPUT) + 101: 26(int) Constant 1 + 102: 6(float) Constant 1065353216 + 106: TypeImage 6(float) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1df4): 107(ptr) Variable UniformConstant + 109: TypeImage 26(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1di4): 110(ptr) Variable UniformConstant + 112: TypeImage 43(int) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex2df4): 116(ptr) Variable UniformConstant + 118: TypeImage 26(int) 2D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex2di4): 119(ptr) Variable UniformConstant + 121: TypeImage 43(int) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2du4): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3df4): 125(ptr) Variable UniformConstant + 127: TypeImage 26(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3di4): 128(ptr) Variable UniformConstant + 130: TypeImage 43(int) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3du4): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdf4): 134(ptr) Variable UniformConstant + 136: TypeImage 26(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdi4): 137(ptr) Variable UniformConstant + 139: TypeImage 43(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdu4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdf4a): 143(ptr) Variable UniformConstant + 145: TypeImage 26(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdi4a): 146(ptr) Variable UniformConstant + 148: TypeImage 43(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 30(r13): 7(ptr) Variable Function + 42(r15): 7(ptr) Variable Function + 55(r31): 7(ptr) Variable Function + 73(r33): 7(ptr) Variable Function + 85(r35): 7(ptr) Variable Function + 100(psout): 99(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 28: 6(float) CompositeExtract 25 0 + 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27 + Store 8(r11) 29 + 34: 31 Load 33(g_tTex1di4a) + 35: 13 Load 15(g_sSamp) + 38: 37 SampledImage 34 35 + 39: 6(float) CompositeExtract 23 0 + 40: 6(float) CompositeExtract 39 0 + 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27 + Store 30(r13) 41 + 47: 44 Load 46(g_tTex1du4a) + 48: 13 Load 15(g_sSamp) + 51: 50 SampledImage 47 48 + 52: 6(float) CompositeExtract 23 0 + 53: 6(float) CompositeExtract 52 0 + 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27 + Store 42(r15) 54 + 59: 56 Load 58(g_tTex2df4a) + 60: 13 Load 15(g_sSamp) + 63: 62 SampledImage 59 60 + 67: 6(float) CompositeExtract 66 0 + 71: 6(float) CompositeExtract 67 0 + 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70 + Store 55(r31) 72 + 77: 74 Load 76(g_tTex2di4a) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 66 0 + 83: 6(float) CompositeExtract 82 0 + 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70 + Store 73(r33) 84 + 89: 86 Load 88(g_tTex2du4a) + 90: 13 Load 15(g_sSamp) + 93: 92 SampledImage 89 90 + 94: 6(float) CompositeExtract 66 0 + 95: 6(float) CompositeExtract 94 0 + 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 + Store 85(r35) 96 + 103: 7(ptr) AccessChain 100(psout) 101 + Store 103 102 + 104:98(PS_OUTPUT) Load 100(psout) + ReturnValue 104 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out new file mode 100644 index 00000000..7f9b42e5 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -0,0 +1,625 @@ +hlsl.samplecmplevelzero.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 textureLod (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r10' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r12' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r14' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r30' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r32' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r34' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r60' (temp float) +0:52 textureLod (global float) +0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) +0:52 'g_tTexcdf4a' (uniform textureCubeArray) +0:52 'g_sSamp' (uniform sampler) +0:52 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:52 Constant: +0:52 0.750000 +0:52 Constant: +0:52 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r62' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) +0:53 'g_tTexcdi4a' (uniform itextureCubeArray) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r64' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) +0:54 'g_tTexcdu4a' (uniform utextureCubeArray) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:57 move second child to first child (temp float) +0:57 Depth: direct index for structure (temp float FragDepth) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 1.000000 +0:59 Branch: Return with expression +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 174 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 29 "r12" + Name 33 "g_tTex1di4a" + Name 42 "r14" + Name 46 "g_tTex1du4a" + Name 55 "r30" + Name 58 "g_tTex2df4a" + Name 70 "r32" + Name 73 "g_tTex2di4a" + Name 82 "r34" + Name 85 "g_tTex2du4a" + Name 94 "r60" + Name 97 "g_tTexcdf4a" + Name 108 "r62" + Name 111 "g_tTexcdi4a" + Name 119 "r64" + Name 122 "g_tTexcdu4a" + Name 130 "PS_OUTPUT" + MemberName 130(PS_OUTPUT) 0 "Color" + MemberName 130(PS_OUTPUT) 1 "Depth" + Name 132 "psout" + Name 140 "g_tTex1df4" + Name 143 "g_tTex1di4" + Name 146 "g_tTex1du4" + Name 149 "g_tTex2df4" + Name 152 "g_tTex2di4" + Name 155 "g_tTex2du4" + Name 158 "g_tTex3df4" + Name 161 "g_tTex3di4" + Name 164 "g_tTex3du4" + Name 167 "g_tTexcdf4" + Name 170 "g_tTexcdi4" + Name 173 "g_tTexcdu4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 58(g_tTex2df4a) DescriptorSet 0 + Decorate 73(g_tTex2di4a) DescriptorSet 0 + Decorate 85(g_tTex2du4a) DescriptorSet 0 + Decorate 97(g_tTexcdf4a) DescriptorSet 0 + Decorate 111(g_tTexcdi4a) DescriptorSet 0 + Decorate 122(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 140(g_tTex1df4) DescriptorSet 0 + Decorate 143(g_tTex1di4) DescriptorSet 0 + Decorate 146(g_tTex1du4) DescriptorSet 0 + Decorate 149(g_tTex2df4) DescriptorSet 0 + Decorate 152(g_tTex2di4) DescriptorSet 0 + Decorate 155(g_tTex2du4) DescriptorSet 0 + Decorate 158(g_tTex3df4) DescriptorSet 0 + Decorate 161(g_tTex3di4) DescriptorSet 0 + Decorate 164(g_tTex3du4) DescriptorSet 0 + Decorate 167(g_tTexcdf4) DescriptorSet 0 + Decorate 170(g_tTexcdi4) DescriptorSet 0 + Decorate 173(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: TypeImage 30(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4a): 32(ptr) Variable UniformConstant + 36: TypeImage 30(int) 1D depth array sampled format:Unknown + 37: TypeSampledImage 36 + 43: TypeInt 32 0 + 44: TypeImage 43(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant + 49: TypeImage 43(int) 1D depth array sampled format:Unknown + 50: TypeSampledImage 49 + 56: TypeImage 6(float) 2D array sampled format:Unknown + 57: TypePointer UniformConstant 56 + 58(g_tTex2df4a): 57(ptr) Variable UniformConstant + 61: TypeImage 6(float) 2D depth array sampled format:Unknown + 62: TypeSampledImage 61 + 64: TypeVector 6(float) 3 + 65: 6(float) Constant 1050253722 + 66: 64(fvec3) ConstantComposite 21 22 65 + 71: TypeImage 30(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4a): 72(ptr) Variable UniformConstant + 76: TypeImage 30(int) 2D depth array sampled format:Unknown + 77: TypeSampledImage 76 + 83: TypeImage 43(int) 2D array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex2du4a): 84(ptr) Variable UniformConstant + 88: TypeImage 43(int) 2D depth array sampled format:Unknown + 89: TypeSampledImage 88 + 95: TypeImage 6(float) Cube array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant + 100: TypeImage 6(float) Cube depth array sampled format:Unknown + 101: TypeSampledImage 100 + 103: TypeVector 6(float) 4 + 104: 6(float) Constant 1053609165 + 105: 103(fvec4) ConstantComposite 21 22 65 104 + 109: TypeImage 30(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTexcdi4a): 110(ptr) Variable UniformConstant + 114: TypeImage 30(int) Cube depth array sampled format:Unknown + 115: TypeSampledImage 114 + 120: TypeImage 43(int) Cube array sampled format:Unknown + 121: TypePointer UniformConstant 120 +122(g_tTexcdu4a): 121(ptr) Variable UniformConstant + 125: TypeImage 43(int) Cube depth array sampled format:Unknown + 126: TypeSampledImage 125 + 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) + 131: TypePointer Function 130(PS_OUTPUT) + 133: 30(int) Constant 1 + 134: 6(float) Constant 1065353216 + 138: TypeImage 6(float) 1D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex1df4): 139(ptr) Variable UniformConstant + 141: TypeImage 30(int) 1D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex1di4): 142(ptr) Variable UniformConstant + 144: TypeImage 43(int) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1du4): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) 2D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex2df4): 148(ptr) Variable UniformConstant + 150: TypeImage 30(int) 2D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex2di4): 151(ptr) Variable UniformConstant + 153: TypeImage 43(int) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2du4): 154(ptr) Variable UniformConstant + 156: TypeImage 6(float) 3D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex3df4): 157(ptr) Variable UniformConstant + 159: TypeImage 30(int) 3D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex3di4): 160(ptr) Variable UniformConstant + 162: TypeImage 43(int) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3du4): 163(ptr) Variable UniformConstant + 165: TypeImage 6(float) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdf4): 166(ptr) Variable UniformConstant + 168: TypeImage 30(int) Cube sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTexcdi4): 169(ptr) Variable UniformConstant + 171: TypeImage 43(int) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdu4): 172(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r10): 7(ptr) Variable Function + 29(r12): 7(ptr) Variable Function + 42(r14): 7(ptr) Variable Function + 55(r30): 7(ptr) Variable Function + 70(r32): 7(ptr) Variable Function + 82(r34): 7(ptr) Variable Function + 94(r60): 7(ptr) Variable Function + 108(r62): 7(ptr) Variable Function + 119(r64): 7(ptr) Variable Function + 132(psout): 131(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 25 0 + 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26 + Store 8(r10) 28 + 34: 31 Load 33(g_tTex1di4a) + 35: 13 Load 15(g_sSamp) + 38: 37 SampledImage 34 35 + 39: 6(float) CompositeExtract 23 0 + 40: 6(float) CompositeExtract 39 0 + 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26 + Store 29(r12) 41 + 47: 44 Load 46(g_tTex1du4a) + 48: 13 Load 15(g_sSamp) + 51: 50 SampledImage 47 48 + 52: 6(float) CompositeExtract 23 0 + 53: 6(float) CompositeExtract 52 0 + 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26 + Store 42(r14) 54 + 59: 56 Load 58(g_tTex2df4a) + 60: 13 Load 15(g_sSamp) + 63: 62 SampledImage 59 60 + 67: 6(float) CompositeExtract 66 0 + 68: 6(float) CompositeExtract 67 0 + 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26 + Store 55(r30) 69 + 74: 71 Load 73(g_tTex2di4a) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 66 0 + 80: 6(float) CompositeExtract 79 0 + 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26 + Store 70(r32) 81 + 86: 83 Load 85(g_tTex2du4a) + 87: 13 Load 15(g_sSamp) + 90: 89 SampledImage 86 87 + 91: 6(float) CompositeExtract 66 0 + 92: 6(float) CompositeExtract 91 0 + 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26 + Store 82(r34) 93 + 98: 95 Load 97(g_tTexcdf4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 106: 6(float) CompositeExtract 105 0 + 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24 + Store 94(r60) 107 + 112: 109 Load 111(g_tTexcdi4a) + 113: 13 Load 15(g_sSamp) + 116: 115 SampledImage 112 113 + 117: 6(float) CompositeExtract 105 0 + 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24 + Store 108(r62) 118 + 123: 120 Load 122(g_tTexcdu4a) + 124: 13 Load 15(g_sSamp) + 127: 126 SampledImage 123 124 + 128: 6(float) CompositeExtract 105 0 + 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 + Store 119(r64) 129 + 135: 7(ptr) AccessChain 132(psout) 133 + Store 135 134 + 136:130(PS_OUTPUT) Load 132(psout) + ReturnValue 136 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out new file mode 100644 index 00000000..a9f57339 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -0,0 +1,605 @@ +hlsl.samplecmplevelzero.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 textureLod (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r00' (temp float) +0:42 textureLod (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r02' (temp float) +0:43 textureLod (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r04' (temp float) +0:44 textureLod (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r20' (temp float) +0:47 textureLod (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r22' (temp float) +0:48 textureLod (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r24' (temp float) +0:49 textureLod (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'r50' (temp float) +0:53 textureLod (global float) +0:53 Construct combined texture-sampler (temp samplerCubeShadow) +0:53 'g_tTexcdf4' (uniform textureCube) +0:53 'g_sSamp' (uniform sampler) +0:53 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:53 Constant: +0:53 0.750000 +0:53 Constant: +0:53 0.000000 +0:54 Sequence +0:54 move second child to first child (temp float) +0:54 'r52' (temp float) +0:54 textureLod (global float) +0:54 Construct combined texture-sampler (temp isamplerCubeShadow) +0:54 'g_tTexcdi4' (uniform itextureCube) +0:54 'g_sSamp' (uniform sampler) +0:54 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:54 Constant: +0:54 0.750000 +0:54 Constant: +0:54 0.000000 +0:55 Sequence +0:55 move second child to first child (temp float) +0:55 'r54' (temp float) +0:55 textureLod (global float) +0:55 Construct combined texture-sampler (temp usamplerCubeShadow) +0:55 'g_tTexcdu4' (uniform utextureCube) +0:55 'g_sSamp' (uniform sampler) +0:55 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:55 Constant: +0:55 0.750000 +0:55 Constant: +0:55 0.000000 +0:58 move second child to first child (temp float) +0:58 Depth: direct index for structure (temp float FragDepth) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 1.000000 +0:60 Branch: Return with expression +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 172 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 25 "r02" + Name 29 "g_tTex1di4" + Name 37 "r04" + Name 41 "g_tTex1du4" + Name 49 "r20" + Name 52 "g_tTex2df4" + Name 64 "r22" + Name 67 "g_tTex2di4" + Name 76 "r24" + Name 79 "g_tTex2du4" + Name 88 "r50" + Name 91 "g_tTexcdf4" + Name 103 "r52" + Name 106 "g_tTexcdi4" + Name 115 "r54" + Name 118 "g_tTexcdu4" + Name 128 "PS_OUTPUT" + MemberName 128(PS_OUTPUT) 0 "Color" + MemberName 128(PS_OUTPUT) 1 "Depth" + Name 130 "psout" + Name 138 "g_tTex3df4" + Name 141 "g_tTex3di4" + Name 144 "g_tTex3du4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 41(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 91(g_tTexcdf4) DescriptorSet 0 + Decorate 106(g_tTexcdi4) DescriptorSet 0 + Decorate 118(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 138(g_tTex3df4) DescriptorSet 0 + Decorate 141(g_tTex3di4) DescriptorSet 0 + Decorate 144(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: 6(float) Constant 0 + 26: TypeInt 32 1 + 27: TypeImage 26(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeImage 26(int) 1D depth sampled format:Unknown + 33: TypeSampledImage 32 + 38: TypeInt 32 0 + 39: TypeImage 38(int) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1du4): 40(ptr) Variable UniformConstant + 44: TypeImage 38(int) 1D depth sampled format:Unknown + 45: TypeSampledImage 44 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeImage 6(float) 2D depth sampled format:Unknown + 56: TypeSampledImage 55 + 58: TypeVector 6(float) 2 + 59: 6(float) Constant 1045220557 + 60: 58(fvec2) ConstantComposite 20 59 + 65: TypeImage 26(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeImage 26(int) 2D depth sampled format:Unknown + 71: TypeSampledImage 70 + 77: TypeImage 38(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeImage 38(int) 2D depth sampled format:Unknown + 83: TypeSampledImage 82 + 89: TypeImage 6(float) Cube sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 94: TypeImage 6(float) Cube depth sampled format:Unknown + 95: TypeSampledImage 94 + 97: TypeVector 6(float) 3 + 98: 6(float) Constant 1050253722 + 99: 97(fvec3) ConstantComposite 20 59 98 + 104: TypeImage 26(int) Cube sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdi4): 105(ptr) Variable UniformConstant + 109: TypeImage 26(int) Cube depth sampled format:Unknown + 110: TypeSampledImage 109 + 116: TypeImage 38(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdu4): 117(ptr) Variable UniformConstant + 121: TypeImage 38(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 127: TypeVector 6(float) 4 + 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) + 129: TypePointer Function 128(PS_OUTPUT) + 131: 26(int) Constant 1 + 132: 6(float) Constant 1065353216 + 136: TypeImage 6(float) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3df4): 137(ptr) Variable UniformConstant + 139: TypeImage 26(int) 3D sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTex3di4): 140(ptr) Variable UniformConstant + 142: TypeImage 38(int) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3du4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 26(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 38(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 26(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 38(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 26(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 38(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 25(r02): 7(ptr) Variable Function + 37(r04): 7(ptr) Variable Function + 49(r20): 7(ptr) Variable Function + 64(r22): 7(ptr) Variable Function + 76(r24): 7(ptr) Variable Function + 88(r50): 7(ptr) Variable Function + 103(r52): 7(ptr) Variable Function + 115(r54): 7(ptr) Variable Function + 130(psout): 129(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 23: 6(float) CompositeExtract 20 0 + 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22 + Store 8(r00) 24 + 30: 27 Load 29(g_tTex1di4) + 31: 13 Load 15(g_sSamp) + 34: 33 SampledImage 30 31 + 35: 6(float) CompositeExtract 20 0 + 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22 + Store 25(r02) 36 + 42: 39 Load 41(g_tTex1du4) + 43: 13 Load 15(g_sSamp) + 46: 45 SampledImage 42 43 + 47: 6(float) CompositeExtract 20 0 + 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22 + Store 37(r04) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 61: 6(float) CompositeExtract 60 0 + 62: 6(float) CompositeExtract 61 0 + 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22 + Store 49(r20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 13 Load 15(g_sSamp) + 72: 71 SampledImage 68 69 + 73: 6(float) CompositeExtract 60 0 + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22 + Store 64(r22) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 13 Load 15(g_sSamp) + 84: 83 SampledImage 80 81 + 85: 6(float) CompositeExtract 60 0 + 86: 6(float) CompositeExtract 85 0 + 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22 + Store 76(r24) 87 + 92: 89 Load 91(g_tTexcdf4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 100: 6(float) CompositeExtract 99 0 + 101: 6(float) CompositeExtract 100 0 + 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22 + Store 88(r50) 102 + 107: 104 Load 106(g_tTexcdi4) + 108: 13 Load 15(g_sSamp) + 111: 110 SampledImage 107 108 + 112: 6(float) CompositeExtract 99 0 + 113: 6(float) CompositeExtract 112 0 + 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22 + Store 103(r52) 114 + 119: 116 Load 118(g_tTexcdu4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 99 0 + 125: 6(float) CompositeExtract 124 0 + 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 + Store 115(r54) 126 + 133: 7(ptr) AccessChain 130(psout) 131 + Store 133 132 + 134:128(PS_OUTPUT) Load 130(psout) + ReturnValue 134 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out new file mode 100644 index 00000000..4e2b3b54 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -0,0 +1,507 @@ +hlsl.samplecmplevelzero.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r01' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DShadow) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec2 (temp float) +0:42 Constant: +0:42 0.100000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r03' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DShadow) +0:43 'g_tTex1di4' (uniform itexture1D) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec2 (temp float) +0:43 Constant: +0:43 0.100000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r05' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DShadow) +0:44 'g_tTex1du4' (uniform utexture1D) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec2 (temp float) +0:44 Constant: +0:44 0.100000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r21' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DShadow) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r23' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DShadow) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r25' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DShadow) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:63 move second child to first child (temp float) +0:63 Depth: direct index for structure (temp float FragDepth) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 1.000000 +0:65 Branch: Return with expression +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 146 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r01" + Name 11 "g_tTex1df4" + Name 15 "g_sSamp" + Name 27 "r03" + Name 30 "g_tTex1di4" + Name 38 "r05" + Name 42 "g_tTex1du4" + Name 50 "r21" + Name 53 "g_tTex2df4" + Name 68 "r23" + Name 71 "g_tTex2di4" + Name 80 "r25" + Name 83 "g_tTex2du4" + Name 93 "PS_OUTPUT" + MemberName 93(PS_OUTPUT) 0 "Color" + MemberName 93(PS_OUTPUT) 1 "Depth" + Name 95 "psout" + Name 103 "g_tTex3df4" + Name 106 "g_tTex3di4" + Name 109 "g_tTex3du4" + Name 112 "g_tTexcdf4" + Name 115 "g_tTexcdi4" + Name 118 "g_tTexcdu4" + Name 121 "g_tTex1df4a" + Name 124 "g_tTex1di4a" + Name 127 "g_tTex1du4a" + Name 130 "g_tTex2df4a" + Name 133 "g_tTex2di4a" + Name 136 "g_tTex2du4a" + Name 139 "g_tTexcdf4a" + Name 142 "g_tTexcdi4a" + Name 145 "g_tTexcdu4a" + Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 71(g_tTex2di4) DescriptorSet 0 + Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 103(g_tTex3df4) DescriptorSet 0 + Decorate 106(g_tTex3di4) DescriptorSet 0 + Decorate 109(g_tTex3du4) DescriptorSet 0 + Decorate 112(g_tTexcdf4) DescriptorSet 0 + Decorate 115(g_tTexcdi4) DescriptorSet 0 + Decorate 118(g_tTexcdu4) DescriptorSet 0 + Decorate 121(g_tTex1df4a) DescriptorSet 0 + Decorate 124(g_tTex1di4a) DescriptorSet 0 + Decorate 127(g_tTex1du4a) DescriptorSet 0 + Decorate 130(g_tTex2df4a) DescriptorSet 0 + Decorate 133(g_tTex2di4a) DescriptorSet 0 + Decorate 136(g_tTex2du4a) DescriptorSet 0 + Decorate 139(g_tTexcdf4a) DescriptorSet 0 + Decorate 142(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth sampled format:Unknown + 18: TypeSampledImage 17 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: 6(float) Constant 0 + 23: TypeInt 32 1 + 24: 23(int) Constant 2 + 28: TypeImage 23(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 23(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 39: TypeInt 32 0 + 40: TypeImage 39(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeImage 39(int) 1D depth sampled format:Unknown + 46: TypeSampledImage 45 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeImage 6(float) 2D depth sampled format:Unknown + 57: TypeSampledImage 56 + 59: TypeVector 6(float) 2 + 60: 6(float) Constant 1045220557 + 61: 59(fvec2) ConstantComposite 20 60 + 63: TypeVector 23(int) 2 + 64: 23(int) Constant 3 + 65: 63(ivec2) ConstantComposite 24 64 + 69: TypeImage 23(int) 2D sampled format:Unknown + 70: TypePointer UniformConstant 69 + 71(g_tTex2di4): 70(ptr) Variable UniformConstant + 74: TypeImage 23(int) 2D depth sampled format:Unknown + 75: TypeSampledImage 74 + 81: TypeImage 39(int) 2D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2du4): 82(ptr) Variable UniformConstant + 86: TypeImage 39(int) 2D depth sampled format:Unknown + 87: TypeSampledImage 86 + 92: TypeVector 6(float) 4 + 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) + 94: TypePointer Function 93(PS_OUTPUT) + 96: 23(int) Constant 1 + 97: 6(float) Constant 1065353216 + 101: TypeImage 6(float) 3D sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTex3df4): 102(ptr) Variable UniformConstant + 104: TypeImage 23(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3di4): 105(ptr) Variable UniformConstant + 107: TypeImage 39(int) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3du4): 108(ptr) Variable UniformConstant + 110: TypeImage 6(float) Cube sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTexcdf4): 111(ptr) Variable UniformConstant + 113: TypeImage 23(int) Cube sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTexcdi4): 114(ptr) Variable UniformConstant + 116: TypeImage 39(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdu4): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) 1D array sampled format:Unknown + 120: TypePointer UniformConstant 119 +121(g_tTex1df4a): 120(ptr) Variable UniformConstant + 122: TypeImage 23(int) 1D array sampled format:Unknown + 123: TypePointer UniformConstant 122 +124(g_tTex1di4a): 123(ptr) Variable UniformConstant + 125: TypeImage 39(int) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1du4a): 126(ptr) Variable UniformConstant + 128: TypeImage 6(float) 2D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex2df4a): 129(ptr) Variable UniformConstant + 131: TypeImage 23(int) 2D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex2di4a): 132(ptr) Variable UniformConstant + 134: TypeImage 39(int) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2du4a): 135(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdf4a): 138(ptr) Variable UniformConstant + 140: TypeImage 23(int) Cube array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTexcdi4a): 141(ptr) Variable UniformConstant + 143: TypeImage 39(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r01): 7(ptr) Variable Function + 27(r03): 7(ptr) Variable Function + 38(r05): 7(ptr) Variable Function + 50(r21): 7(ptr) Variable Function + 68(r23): 7(ptr) Variable Function + 80(r25): 7(ptr) Variable Function + 95(psout): 94(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 20 0 + 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24 + Store 8(r01) 26 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 6(float) CompositeExtract 20 0 + 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24 + Store 27(r03) 37 + 43: 40 Load 42(g_tTex1du4) + 44: 13 Load 15(g_sSamp) + 47: 46 SampledImage 43 44 + 48: 6(float) CompositeExtract 20 0 + 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24 + Store 38(r05) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 13 Load 15(g_sSamp) + 58: 57 SampledImage 54 55 + 62: 6(float) CompositeExtract 61 0 + 66: 6(float) CompositeExtract 62 0 + 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65 + Store 50(r21) 67 + 72: 69 Load 71(g_tTex2di4) + 73: 13 Load 15(g_sSamp) + 76: 75 SampledImage 72 73 + 77: 6(float) CompositeExtract 61 0 + 78: 6(float) CompositeExtract 77 0 + 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65 + Store 68(r23) 79 + 84: 81 Load 83(g_tTex2du4) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 61 0 + 90: 6(float) CompositeExtract 89 0 + 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 + Store 80(r25) 91 + 98: 7(ptr) AccessChain 95(psout) 96 + Store 98 97 + 99:93(PS_OUTPUT) Load 95(psout) + ReturnValue 99 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out new file mode 100644 index 00000000..16aac578 --- /dev/null +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -0,0 +1,525 @@ +hlsl.samplecmplevelzero.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Parameters: +0:? Sequence +0:42 Sequence +0:42 move second child to first child (temp float) +0:42 'r11' (temp float) +0:42 textureLodOffset (global float) +0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) +0:42 'g_tTex1df4a' (uniform texture1DArray) +0:42 'g_sSamp' (uniform sampler) +0:42 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:42 Constant: +0:42 0.750000 +0:42 Constant: +0:42 0.000000 +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp float) +0:43 'r13' (temp float) +0:43 textureLodOffset (global float) +0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) +0:43 'g_tTex1di4a' (uniform itexture1DArray) +0:43 'g_sSamp' (uniform sampler) +0:43 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:43 Constant: +0:43 0.750000 +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 2 (const int) +0:44 Sequence +0:44 move second child to first child (temp float) +0:44 'r15' (temp float) +0:44 textureLodOffset (global float) +0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) +0:44 'g_tTex1du4a' (uniform utexture1DArray) +0:44 'g_sSamp' (uniform sampler) +0:44 Construct vec3 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:44 Constant: +0:44 0.750000 +0:44 Constant: +0:44 0.000000 +0:44 Constant: +0:44 2 (const int) +0:47 Sequence +0:47 move second child to first child (temp float) +0:47 'r31' (temp float) +0:47 textureLodOffset (global float) +0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) +0:47 'g_tTex2df4a' (uniform texture2DArray) +0:47 'g_sSamp' (uniform sampler) +0:47 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:47 Constant: +0:47 0.750000 +0:47 Constant: +0:47 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:48 Sequence +0:48 move second child to first child (temp float) +0:48 'r33' (temp float) +0:48 textureLodOffset (global float) +0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) +0:48 'g_tTex2di4a' (uniform itexture2DArray) +0:48 'g_sSamp' (uniform sampler) +0:48 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:48 Constant: +0:48 0.750000 +0:48 Constant: +0:48 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'r35' (temp float) +0:49 textureLodOffset (global float) +0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) +0:49 'g_tTex2du4a' (uniform utexture2DArray) +0:49 'g_sSamp' (uniform sampler) +0:49 Construct vec4 (temp float) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:49 Constant: +0:49 0.750000 +0:49 Constant: +0:49 0.000000 +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:64 move second child to first child (temp float) +0:64 Depth: direct index for structure (temp float FragDepth) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 1.000000 +0:66 Branch: Return with expression +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 152 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r11" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 31 "r13" + Name 34 "g_tTex1di4a" + Name 43 "r15" + Name 47 "g_tTex1du4a" + Name 56 "r31" + Name 59 "g_tTex2df4a" + Name 74 "r33" + Name 77 "g_tTex2di4a" + Name 86 "r35" + Name 89 "g_tTex2du4a" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "psout" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 34(g_tTex1di4a) DescriptorSet 0 + Decorate 47(g_tTex1du4a) DescriptorSet 0 + Decorate 59(g_tTex2df4a) DescriptorSet 0 + Decorate 77(g_tTex2di4a) DescriptorSet 0 + Decorate 89(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeImage 6(float) 1D depth array sampled format:Unknown + 18: TypeSampledImage 17 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: 6(float) Constant 0 + 27: TypeInt 32 1 + 28: 27(int) Constant 2 + 32: TypeImage 27(int) 1D array sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4a): 33(ptr) Variable UniformConstant + 37: TypeImage 27(int) 1D depth array sampled format:Unknown + 38: TypeSampledImage 37 + 44: TypeInt 32 0 + 45: TypeImage 44(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4a): 46(ptr) Variable UniformConstant + 50: TypeImage 44(int) 1D depth array sampled format:Unknown + 51: TypeSampledImage 50 + 57: TypeImage 6(float) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2df4a): 58(ptr) Variable UniformConstant + 62: TypeImage 6(float) 2D depth array sampled format:Unknown + 63: TypeSampledImage 62 + 65: TypeVector 6(float) 3 + 66: 6(float) Constant 1050253722 + 67: 65(fvec3) ConstantComposite 21 22 66 + 69: TypeVector 27(int) 2 + 70: 27(int) Constant 3 + 71: 69(ivec2) ConstantComposite 28 70 + 75: TypeImage 27(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4a): 76(ptr) Variable UniformConstant + 80: TypeImage 27(int) 2D depth array sampled format:Unknown + 81: TypeSampledImage 80 + 87: TypeImage 44(int) 2D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex2du4a): 88(ptr) Variable UniformConstant + 92: TypeImage 44(int) 2D depth array sampled format:Unknown + 93: TypeSampledImage 92 + 98: TypeVector 6(float) 4 + 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) + 100: TypePointer Function 99(PS_OUTPUT) + 102: 27(int) Constant 1 + 103: 6(float) Constant 1065353216 + 107: TypeImage 6(float) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 27(int) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 44(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 27(int) 2D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 44(int) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 27(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 44(int) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 27(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 44(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 27(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 44(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r11): 7(ptr) Variable Function + 31(r13): 7(ptr) Variable Function + 43(r15): 7(ptr) Variable Function + 56(r31): 7(ptr) Variable Function + 74(r33): 7(ptr) Variable Function + 86(r35): 7(ptr) Variable Function + 101(psout): 100(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 19: 18 SampledImage 12 16 + 25: 6(float) CompositeExtract 23 0 + 29: 6(float) CompositeExtract 25 0 + 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28 + Store 8(r11) 30 + 35: 32 Load 34(g_tTex1di4a) + 36: 13 Load 15(g_sSamp) + 39: 38 SampledImage 35 36 + 40: 6(float) CompositeExtract 23 0 + 41: 6(float) CompositeExtract 40 0 + 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28 + Store 31(r13) 42 + 48: 45 Load 47(g_tTex1du4a) + 49: 13 Load 15(g_sSamp) + 52: 51 SampledImage 48 49 + 53: 6(float) CompositeExtract 23 0 + 54: 6(float) CompositeExtract 53 0 + 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28 + Store 43(r15) 55 + 60: 57 Load 59(g_tTex2df4a) + 61: 13 Load 15(g_sSamp) + 64: 63 SampledImage 60 61 + 68: 6(float) CompositeExtract 67 0 + 72: 6(float) CompositeExtract 68 0 + 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71 + Store 56(r31) 73 + 78: 75 Load 77(g_tTex2di4a) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 67 0 + 84: 6(float) CompositeExtract 83 0 + 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71 + Store 74(r33) 85 + 90: 87 Load 89(g_tTex2du4a) + 91: 13 Load 15(g_sSamp) + 94: 93 SampledImage 90 91 + 95: 6(float) CompositeExtract 67 0 + 96: 6(float) CompositeExtract 95 0 + 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 + Store 86(r35) 97 + 104: 7(ptr) AccessChain 101(psout) 102 + Store 104 103 + 105:99(PS_OUTPUT) Load 101(psout) + ReturnValue 105 + FunctionEnd diff --git a/Test/hlsl.load.dx10.frag b/Test/hlsl.load.dx10.frag new file mode 100644 index 00000000..39c99e35 --- /dev/null +++ b/Test/hlsl.load.dx10.frag @@ -0,0 +1,91 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Load, no offset + g_tTex1df4.Load(int2(1,2)); + g_tTex1di4.Load(int2(1,2)); + g_tTex1du4.Load(int2(1,2)); + + g_tTex2df4.Load(int3(1,2,3)); + g_tTex2di4.Load(int3(1,2,3)); + g_tTex2du4.Load(int3(1,2,3)); + + g_tTex3df4.Load(int4(1,2,3,4)); + g_tTex3di4.Load(int4(1,2,3,4)); + g_tTex3du4.Load(int4(1,2,3,4)); + + g_tTex1df4a.Load(int3(1,2,3)); + g_tTex1di4a.Load(int3(1,2,3)); + g_tTex1du4a.Load(int3(1,2,3)); + + g_tTex2df4a.Load(int4(1,2,3,4)); + g_tTex2di4a.Load(int4(1,2,3,4)); + g_tTex2du4a.Load(int4(1,2,3,4)); + + // Load, offset + g_tTex1df4.Load(int2(1,2), 3); + g_tTex1di4.Load(int2(1,2), 3); + g_tTex1du4.Load(int2(1,2), 3); + + g_tTex2df4.Load(int3(1,2,3), int2(4,5)); + g_tTex2di4.Load(int3(1,2,3), int2(4,5)); + g_tTex2du4.Load(int3(1,2,3), int2(4,5)); + + g_tTex3df4.Load(int4(1,2,3,4), int3(5,6,7)); + g_tTex3di4.Load(int4(1,2,3,4), int3(5,6,7)); + g_tTex3du4.Load(int4(1,2,3,4), int3(5,6,7)); + + g_tTex1df4a.Load(int3(1,2,3), 4); + g_tTex1di4a.Load(int3(1,2,3), 4); + g_tTex1du4a.Load(int3(1,2,3), 4); + + g_tTex2df4a.Load(int4(1,2,3,4), int2(4,5)); + g_tTex2di4a.Load(int4(1,2,3,4), int2(4,5)); + g_tTex2du4a.Load(int4(1,2,3,4), int2(4,5)); + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.array.dx10.frag b/Test/hlsl.samplecmp.array.dx10.frag new file mode 100644 index 00000000..f0e0a3dc --- /dev/null +++ b/Test/hlsl.samplecmp.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.basic.dx10.frag b/Test/hlsl.samplecmp.basic.dx10.frag new file mode 100644 index 00000000..cb73e14f --- /dev/null +++ b/Test/hlsl.samplecmp.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmp on 3D textures + + float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.offset.dx10.frag b/Test/hlsl.samplecmp.offset.dx10.frag new file mode 100644 index 00000000..444dac8e --- /dev/null +++ b/Test/hlsl.samplecmp.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + // float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmp.offsetarray.dx10.frag b/Test/hlsl.samplecmp.offsetarray.dx10.frag new file mode 100644 index 00000000..319d5cdd --- /dev/null +++ b/Test/hlsl.samplecmp.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmp on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.array.dx10.frag b/Test/hlsl.samplecmplevelzero.array.dx10.frag new file mode 100644 index 00000000..41b6a793 --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.array.dx10.frag @@ -0,0 +1,60 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // 2DArray + float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + // CubeArray + float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/Test/hlsl.samplecmplevelzero.basic.dx10.frag new file mode 100644 index 00000000..841530a1 --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.basic.dx10.frag @@ -0,0 +1,61 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75); + + // 2D + float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75); + + // *** There's no SampleCmpLevelZero on 3D textures + + float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/Test/hlsl.samplecmplevelzero.offset.dx10.frag new file mode 100644 index 00000000..290774e2 --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.offset.dx10.frag @@ -0,0 +1,66 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2); + + // 2D + float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + // Cube + // float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + // float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag new file mode 100644 index 00000000..b57502ea --- /dev/null +++ b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag @@ -0,0 +1,67 @@ +SamplerComparisonState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2); + + // 2DArray + float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3)); + + // *** There's no SampleCmpLevelZero on 3D textures + + // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx + // claims offset is supported for cube textures, but FXC does not accept it, and that does + // not match other methods, so it may be a documentation bug. Those lines are commented + // out below. + + // CubeArray + // float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + // float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index c1bfcb9e..2923112c 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -104,6 +104,14 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplebias.basic.dx10.frag", "main"}, {"hlsl.samplebias.offset.dx10.frag", "main"}, {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmp.array.dx10.frag", "main"}, + {"hlsl.samplecmp.basic.dx10.frag", "main"}, + {"hlsl.samplecmp.offset.dx10.frag", "main"}, + {"hlsl.samplecmp.offsetarray.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.array.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"}, + {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"}, {"hlsl.samplegrad.array.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.vert", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 61fe8f58..fc8360c8 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -661,8 +661,11 @@ bool HlslGrammar::acceptSamplerType(TType& type) // read sampler type const EHlslTokenClass samplerType = peek(); + // TODO: for DX9 // TSamplerDim dim = EsdNone; + bool isShadow = false; + switch (samplerType) { case EHTokSampler: break; case EHTokSampler1d: /*dim = Esd1D*/; break; @@ -670,7 +673,7 @@ bool HlslGrammar::acceptSamplerType(TType& type) case EHTokSampler3d: /*dim = Esd3D*/; break; case EHTokSamplerCube: /*dim = EsdCube*/; break; case EHTokSamplerState: break; - case EHTokSamplerComparisonState: break; + case EHTokSamplerComparisonState: isShadow = true; break; default: return false; // not a sampler declaration } @@ -678,10 +681,9 @@ bool HlslGrammar::acceptSamplerType(TType& type) advanceToken(); // consume the sampler type keyword TArraySizes* arraySizes = nullptr; // TODO: array - bool shadow = false; // TODO: shadow TSampler sampler; - sampler.setPureSampler(shadow); + sampler.setPureSampler(isShadow); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 25dd7453..9c62a1c5 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -825,6 +825,7 @@ TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc TSampler samplerType = argTex->getType().getSampler(); samplerType.combined = true; + samplerType.shadow = argSampler->getType().getSampler().shadow; txcombine->setType(TType(samplerType, EvqTemporary)); txcombine->setLoc(loc); @@ -1063,6 +1064,66 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodSampleCmp: // fall through... + case EOpMethodSampleCmpLevelZero: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + // optional offset value + if (argAggregate->getSequence().size() > 4) + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp + + // AST wants comparison value as one of the texture coordinates + TOperator constructOp = EOpNull; + switch (coordDimWithCmpVal) { + // 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val + case 2: constructOp = EOpConstructVec2; break; + case 3: constructOp = EOpConstructVec3; break; + case 4: constructOp = EOpConstructVec4; break; + case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg. + default: assert(0); break; + } + + TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp); + coordWithCmp->getSequence().push_back(argCoord); + if (coordDimWithCmpVal != 5) // cube array shadow is special. + coordWithCmp->getSequence().push_back(argCmpVal); + coordWithCmp->setLoc(loc); + + TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); + if (argOffset != nullptr) + textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset); + + // Create combined sampler & texture op + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(coordWithCmp); + + if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord. + txsample->getSequence().push_back(argCmpVal); + + // the LevelZero form uses 0 as an explicit LOD + if (op == EOpMethodSampleCmpLevelZero) + txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true)); + + // Add offset if present + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index d318a865..06d28aa9 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -69,7 +69,7 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } -bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... +bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. @@ -78,33 +78,47 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim const bool isArrayed = IsTextureArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); - // there are no 3D arrayed textures, or 3D SampleCmp - if (dim0 == 3 && (isArrayed || name == "SampleCmp")) + // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) + if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) return true; const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; - // Reject invalid offset arrayed forms with cubemaps - if (isArrayed && dim0 == 4) { + // Reject invalid offset forms with cubemaps + if (dim0 == 4) { if ((name == "Sample" && numArgs >= 4) || (name == "SampleBias" && numArgs >= 5) || (name == "SampleCmp" && numArgs >= 5) || - (name == "SampleCmpLevelZero" && numArgs >= 4) || + (name == "SampleCmpLevelZero" && numArgs >= 5) || (name == "SampleGrad" && numArgs >= 6) || (name == "SampleLevel" && numArgs >= 5)) return true; } // Reject invalid Loads - if (name == "Load") { - if ((numArgs >= 3 && !isMS) || // Load with sampleindex requires multisample - (dim0 == 4)) // Load does not support any cubemaps, arrayed or not. - return true; - } + if (name == "Load" && dim0 == 4) + return true; // Load does not support any cubemaps, arrayed or not. return false; } - + +// Return the number of the coordinate arg, if any +int CoordinateArgPos(const glslang::TString& name, bool isTexture) +{ + if (!isTexture || (name == "GetDimensions")) + return -1; // has none + else if (name == "Load") + return 1; + else + return 2; // other texture methods are 2 +} + +// Some texture methods use an addition coordinate dimension for the mip +bool HasMipInCoord(const glslang::TString& name) +{ + return name == "Load"; +} + // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. // @@ -141,17 +155,18 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (UseHlslTypes) { switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 'T': s += "Texture"; break; - case 'i': s += "Texture "; break; - case 'u': s += "Texture "; break; - default: s += "UNKNOWN_TYPE"; break; + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; + case 'T': s += "Texture"; break; + case 'i': s += "Texture "; break; + case 'u': s += "Texture "; break; + default: s += "UNKNOWN_TYPE"; break; } } else { switch (type) { @@ -162,6 +177,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; case 'S': s += "sampler"; break; + case 's': s += "samplerShadow"; break; case 'T': // fall through case 'i': // ... case 'u': // ... @@ -369,7 +385,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // orderKey can be: // S = scalar, V = vector, M = matrix, - = void // typekey can be: - // D = double, F = float, U = uint, I = int, B = bool, S = sampler + // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter @@ -555,33 +571,35 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, { "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, - // { "SampleCmp", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - // { "SampleCmp", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, - // { "SampleCmp", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - // { "SampleCmp", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmp", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmp", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmp", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, - // { "SampleCmpLevelZero", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, - // { "SampleCmpLevelZero", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, - // { "SampleCmpLevelZero", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, - // { "SampleCmpLevelZero", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + // TODO: FXC accepts int/uint samplers here. unclear what that means. + { "SampleCmpLevelZero", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmpLevelZero", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmpLevelZero", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmpLevelZero", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, { "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, { "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, - // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, - // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll }, + // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, + // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, + // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - // TODO: ... - // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangFragmentMask }, - // { "Load", /* +sampleidex*/ "V4", nullptr, "%V,V,S", "FIU,I,I", EShLangFragmentMask }, - // { "Load", /* +samplindex, offset*/ "V4", nullptr, "%V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, - // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangFragmentMask }, - // { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask }, - // { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask }, + // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, + // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, + // { "Load", /* offset*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, + // { "Load", /* offset*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + // TODO: MS variants of Load + // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx // @@ -660,7 +678,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); const bool isArrayed = IsTextureArrayed(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name); const int fixedVecSize = FixedVecSize(argOrder); + const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); // calculate min and max vector and matrix dimensions int dim0Min = 1; @@ -701,7 +721,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; // arrayed textures have one extra coordinate dimension - if (isArrayed && arg == 2) + if (isArrayed && arg == coordArg) + argDim0++; + + // Some texture methods use an addition arg dimension to hold mip + if (arg == coordArg && mipInCoord) argDim0++; // For textures, the 1D case isn't a 1-vector, but a scalar. @@ -916,8 +940,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil // Texture methods symbolTable.relateToOperator("Sample", EOpMethodSample); symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias); - // symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); - // symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); + symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); + symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); // symbolTable.relateToOperator("Load", EOpMethodLoad); From b84313dca13641412ea472cfa520647da1ccb343 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 20 Jul 2016 16:03:29 -0600 Subject: [PATCH 014/217] Versions: Update version output. Also, the per-build part had stopped auto-updating, which is fixed locally as a git hook. --- StandAlone/StandAlone.cpp | 2 ++ glslang/Include/revision.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 63e9878a..c014be20 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -596,6 +596,8 @@ int C_DECL main(int argc, char* argv[]) printf("SPIR-V Version %s\n", spirvVersion.c_str()); printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision); printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId()); + printf("GL_KHR_vulkan_glsl version %d\n", 100); + printf("ARB_GL_gl_spirv version %d\n", 100); if (Worklist.empty()) return ESuccess; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index e338849d..ca7d044e 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.947" -#define GLSLANG_DATE "15-Feb-2016" +#define GLSLANG_REVISION "SPIRV99.1321" +#define GLSLANG_DATE "20-Jul-2016" From f2451019541ea600d31d687148af6312762b50ea Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Wed, 20 Jul 2016 16:34:44 -0600 Subject: [PATCH 015/217] HLSL: Add texture Load method & decomposition --- .../baseResults/hlsl.load.array.dx10.frag.out | 476 ++++++++++++++ .../baseResults/hlsl.load.basic.dx10.frag.out | 562 +++++++++++++++++ .../hlsl.load.offset.dx10.frag.out | 590 ++++++++++++++++++ .../hlsl.load.offsetarray.dx10.frag.out | 495 +++++++++++++++ Test/hlsl.load.array.dx10.frag | 71 +++ Test/hlsl.load.basic.dx10.frag | 76 +++ Test/hlsl.load.dx10.frag | 91 --- Test/hlsl.load.offset.dx10.frag | 76 +++ Test/hlsl.load.offsetarray.dx10.frag | 69 ++ glslang/Include/Types.h | 1 + .../MachineIndependent/localintermediate.h | 11 + gtests/Hlsl.FromFile.cpp | 4 + hlsl/hlslParseHelper.cpp | 65 ++ hlsl/hlslParseables.cpp | 10 +- 14 files changed, 2501 insertions(+), 96 deletions(-) create mode 100644 Test/baseResults/hlsl.load.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.load.array.dx10.frag create mode 100644 Test/hlsl.load.basic.dx10.frag delete mode 100644 Test/hlsl.load.dx10.frag create mode 100644 Test/hlsl.load.offset.dx10.frag create mode 100644 Test/hlsl.load.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out new file mode 100644 index 00000000..ecb43ca8 --- /dev/null +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -0,0 +1,476 @@ +hlsl.load.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch (global 4-component vector of float) +0:52 'g_tTex1df4a' (uniform texture1DArray) +0:52 vector swizzle (temp 2-component vector of int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch (global 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch (global 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch (global 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index (temp int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch (global 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index (temp int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch (global 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index (temp int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Constant: +0:59 3 (const int) +0:68 move second child to first child (temp float) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch (global 4-component vector of float) +0:52 'g_tTex1df4a' (uniform texture1DArray) +0:52 vector swizzle (temp 2-component vector of int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Constant: +0:52 2 (const int) +0:53 textureFetch (global 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Constant: +0:53 2 (const int) +0:54 textureFetch (global 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Constant: +0:54 2 (const int) +0:57 textureFetch (global 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index (temp int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Constant: +0:57 3 (const int) +0:58 textureFetch (global 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index (temp int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Constant: +0:58 3 (const int) +0:59 textureFetch (global 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index (temp int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Constant: +0:59 3 (const int) +0:68 move second child to first child (temp float) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 139 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 14 "c3" + Name 27 "g_tTex1di4a" + Name 37 "g_tTex1du4a" + Name 47 "g_tTex2df4a" + Name 50 "c4" + Name 59 "g_tTex2di4a" + Name 68 "g_tTex2du4a" + Name 75 "PS_OUTPUT" + MemberName 75(PS_OUTPUT) 0 "Color" + MemberName 75(PS_OUTPUT) 1 "Depth" + Name 77 "psout" + Name 86 "g_sSamp" + Name 89 "g_tTex1df4" + Name 92 "g_tTex1di4" + Name 95 "g_tTex1du4" + Name 98 "g_tTex2df4" + Name 101 "g_tTex2di4" + Name 104 "g_tTex2du4" + Name 107 "g_tTex3df4" + Name 110 "g_tTex3di4" + Name 113 "g_tTex3du4" + Name 116 "g_tTexcdf4" + Name 119 "g_tTexcdi4" + Name 122 "g_tTexcdu4" + Name 125 "g_tTexcdf4a" + Name 128 "g_tTexcdi4a" + Name 131 "g_tTexcdu4a" + Name 132 "c1" + Name 134 "c2" + Name 135 "o1" + Name 136 "o2" + Name 137 "o3" + Name 138 "o4" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + Decorate 27(g_tTex1di4a) DescriptorSet 0 + Decorate 37(g_tTex1du4a) DescriptorSet 0 + Decorate 47(g_tTex2df4a) DescriptorSet 0 + Decorate 59(g_tTex2di4a) DescriptorSet 0 + Decorate 68(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 86(g_sSamp) DescriptorSet 0 + Decorate 89(g_tTex1df4) DescriptorSet 0 + Decorate 92(g_tTex1di4) DescriptorSet 0 + Decorate 95(g_tTex1du4) DescriptorSet 0 + Decorate 98(g_tTex2df4) DescriptorSet 0 + Decorate 101(g_tTex2di4) DescriptorSet 0 + Decorate 104(g_tTex2du4) DescriptorSet 0 + Decorate 107(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 113(g_tTex3du4) DescriptorSet 0 + Decorate 116(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 122(g_tTexcdu4) DescriptorSet 0 + Decorate 125(g_tTexcdf4a) DescriptorSet 0 + Decorate 128(g_tTexcdi4a) DescriptorSet 0 + Decorate 131(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 3 + 13: TypePointer UniformConstant 12(ivec3) + 14(c3): 13(ptr) Variable UniformConstant + 15: TypeVector 11(int) 2 + 18: TypeInt 32 0 + 19: 18(int) Constant 2 + 20: TypePointer UniformConstant 11(int) + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 1D array sampled format:Unknown + 26: TypePointer UniformConstant 25 + 27(g_tTex1di4a): 26(ptr) Variable UniformConstant + 33: TypeVector 11(int) 4 + 35: TypeImage 18(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1du4a): 36(ptr) Variable UniformConstant + 43: TypeVector 18(int) 4 + 45: TypeImage 6(float) 2D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2df4a): 46(ptr) Variable UniformConstant + 49: TypePointer UniformConstant 33(ivec4) + 50(c4): 49(ptr) Variable UniformConstant + 53: 18(int) Constant 3 + 57: TypeImage 11(int) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2di4a): 58(ptr) Variable UniformConstant + 66: TypeImage 18(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2du4a): 67(ptr) Variable UniformConstant + 75(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 76: TypePointer Function 75(PS_OUTPUT) + 78: 11(int) Constant 1 + 79: 6(float) Constant 1065353216 + 80: TypePointer Function 6(float) + 84: TypeSampler + 85: TypePointer UniformConstant 84 + 86(g_sSamp): 85(ptr) Variable UniformConstant + 87: TypeImage 6(float) 1D sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex1df4): 88(ptr) Variable UniformConstant + 90: TypeImage 11(int) 1D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex1di4): 91(ptr) Variable UniformConstant + 93: TypeImage 18(int) 1D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex1du4): 94(ptr) Variable UniformConstant + 96: TypeImage 6(float) 2D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2df4): 97(ptr) Variable UniformConstant + 99: TypeImage 11(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex2di4): 100(ptr) Variable UniformConstant + 102: TypeImage 18(int) 2D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex2du4): 103(ptr) Variable UniformConstant + 105: TypeImage 6(float) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3df4): 106(ptr) Variable UniformConstant + 108: TypeImage 11(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 111: TypeImage 18(int) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) Cube sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTexcdf4): 115(ptr) Variable UniformConstant + 117: TypeImage 11(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 120: TypeImage 18(int) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdu4): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) Cube array sampled format:Unknown + 124: TypePointer UniformConstant 123 +125(g_tTexcdf4a): 124(ptr) Variable UniformConstant + 126: TypeImage 11(int) Cube array sampled format:Unknown + 127: TypePointer UniformConstant 126 +128(g_tTexcdi4a): 127(ptr) Variable UniformConstant + 129: TypeImage 18(int) Cube array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdu4a): 130(ptr) Variable UniformConstant + 132(c1): 20(ptr) Variable UniformConstant + 133: TypePointer UniformConstant 15(ivec2) + 134(c2): 133(ptr) Variable UniformConstant + 135(o1): 20(ptr) Variable UniformConstant + 136(o2): 133(ptr) Variable UniformConstant + 137(o3): 13(ptr) Variable UniformConstant + 138(o4): 49(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(psout): 76(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 16: 12(ivec3) Load 14(c3) + 17: 15(ivec2) VectorShuffle 16 16 0 1 + 21: 20(ptr) AccessChain 14(c3) 19 + 22: 11(int) Load 21 + 24: 23(fvec4) ImageFetch 10 17 Lod 22 + 28: 25 Load 27(g_tTex1di4a) + 29: 12(ivec3) Load 14(c3) + 30: 15(ivec2) VectorShuffle 29 29 0 1 + 31: 20(ptr) AccessChain 14(c3) 19 + 32: 11(int) Load 31 + 34: 33(ivec4) ImageFetch 28 30 Lod 32 + 38: 35 Load 37(g_tTex1du4a) + 39: 12(ivec3) Load 14(c3) + 40: 15(ivec2) VectorShuffle 39 39 0 1 + 41: 20(ptr) AccessChain 14(c3) 19 + 42: 11(int) Load 41 + 44: 43(ivec4) ImageFetch 38 40 Lod 42 + 48: 45 Load 47(g_tTex2df4a) + 51: 33(ivec4) Load 50(c4) + 52: 12(ivec3) VectorShuffle 51 51 0 1 2 + 54: 20(ptr) AccessChain 50(c4) 53 + 55: 11(int) Load 54 + 56: 23(fvec4) ImageFetch 48 52 Lod 55 + 60: 57 Load 59(g_tTex2di4a) + 61: 33(ivec4) Load 50(c4) + 62: 12(ivec3) VectorShuffle 61 61 0 1 2 + 63: 20(ptr) AccessChain 50(c4) 53 + 64: 11(int) Load 63 + 65: 33(ivec4) ImageFetch 60 62 Lod 64 + 69: 66 Load 68(g_tTex2du4a) + 70: 33(ivec4) Load 50(c4) + 71: 12(ivec3) VectorShuffle 70 70 0 1 2 + 72: 20(ptr) AccessChain 50(c4) 53 + 73: 11(int) Load 72 + 74: 43(ivec4) ImageFetch 69 71 Lod 73 + 81: 80(ptr) AccessChain 77(psout) 78 + Store 81 79 + 82:75(PS_OUTPUT) Load 77(psout) + ReturnValue 82 + FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out new file mode 100644 index 00000000..e069ffbe --- /dev/null +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -0,0 +1,562 @@ +hlsl.load.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch (global 4-component vector of float) +0:52 'g_tTex1df4' (uniform texture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (global 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch (global 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch (global 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (global 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch (global 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch (global 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (global 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch (global 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index (temp int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Constant: +0:64 3 (const int) +0:73 move second child to first child (temp float) +0:73 Depth: direct index for structure (temp float FragDepth) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetch (global 4-component vector of float) +0:52 'g_tTex1df4' (uniform texture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (global 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:54 textureFetch (global 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Constant: +0:54 1 (const int) +0:57 textureFetch (global 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (global 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:59 textureFetch (global 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Constant: +0:59 2 (const int) +0:62 textureFetch (global 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (global 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:64 textureFetch (global 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index (temp int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Constant: +0:64 3 (const int) +0:73 move second child to first child (temp float) +0:73 Depth: direct index for structure (temp float FragDepth) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 159 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex1df4" + Name 14 "c2" + Name 27 "g_tTex1di4" + Name 37 "g_tTex1du4" + Name 47 "g_tTex2df4" + Name 51 "c3" + Name 60 "g_tTex2di4" + Name 69 "g_tTex2du4" + Name 78 "g_tTex3df4" + Name 81 "c4" + Name 90 "g_tTex3di4" + Name 99 "g_tTex3du4" + Name 106 "PS_OUTPUT" + MemberName 106(PS_OUTPUT) 0 "Color" + MemberName 106(PS_OUTPUT) 1 "Depth" + Name 108 "psout" + Name 117 "g_sSamp" + Name 120 "g_tTexcdf4" + Name 123 "g_tTexcdi4" + Name 126 "g_tTexcdu4" + Name 129 "g_tTex1df4a" + Name 132 "g_tTex1di4a" + Name 135 "g_tTex1du4a" + Name 138 "g_tTex2df4a" + Name 141 "g_tTex2di4a" + Name 144 "g_tTex2du4a" + Name 147 "g_tTexcdf4a" + Name 150 "g_tTexcdi4a" + Name 153 "g_tTexcdu4a" + Name 154 "c1" + Name 155 "o1" + Name 156 "o2" + Name 157 "o3" + Name 158 "o4" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 27(g_tTex1di4) DescriptorSet 0 + Decorate 37(g_tTex1du4) DescriptorSet 0 + Decorate 47(g_tTex2df4) DescriptorSet 0 + Decorate 60(g_tTex2di4) DescriptorSet 0 + Decorate 69(g_tTex2du4) DescriptorSet 0 + Decorate 78(g_tTex3df4) DescriptorSet 0 + Decorate 90(g_tTex3di4) DescriptorSet 0 + Decorate 99(g_tTex3du4) DescriptorSet 0 + MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 117(g_sSamp) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 123(g_tTexcdi4) DescriptorSet 0 + Decorate 126(g_tTexcdu4) DescriptorSet 0 + Decorate 129(g_tTex1df4a) DescriptorSet 0 + Decorate 132(g_tTex1di4a) DescriptorSet 0 + Decorate 135(g_tTex1du4a) DescriptorSet 0 + Decorate 138(g_tTex2df4a) DescriptorSet 0 + Decorate 141(g_tTex2di4a) DescriptorSet 0 + Decorate 144(g_tTex2du4a) DescriptorSet 0 + Decorate 147(g_tTexcdf4a) DescriptorSet 0 + Decorate 150(g_tTexcdi4a) DescriptorSet 0 + Decorate 153(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypePointer UniformConstant 12(ivec2) + 14(c2): 13(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 0 + 17: TypePointer UniformConstant 11(int) + 20: 15(int) Constant 1 + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 1D sampled format:Unknown + 26: TypePointer UniformConstant 25 + 27(g_tTex1di4): 26(ptr) Variable UniformConstant + 33: TypeVector 11(int) 4 + 35: TypeImage 15(int) 1D sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1du4): 36(ptr) Variable UniformConstant + 43: TypeVector 15(int) 4 + 45: TypeImage 6(float) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2df4): 46(ptr) Variable UniformConstant + 49: TypeVector 11(int) 3 + 50: TypePointer UniformConstant 49(ivec3) + 51(c3): 50(ptr) Variable UniformConstant + 54: 15(int) Constant 2 + 58: TypeImage 11(int) 2D sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2di4): 59(ptr) Variable UniformConstant + 67: TypeImage 15(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2du4): 68(ptr) Variable UniformConstant + 76: TypeImage 6(float) 3D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex3df4): 77(ptr) Variable UniformConstant + 80: TypePointer UniformConstant 33(ivec4) + 81(c4): 80(ptr) Variable UniformConstant + 84: 15(int) Constant 3 + 88: TypeImage 11(int) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3di4): 89(ptr) Variable UniformConstant + 97: TypeImage 15(int) 3D sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex3du4): 98(ptr) Variable UniformConstant + 106(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 107: TypePointer Function 106(PS_OUTPUT) + 109: 11(int) Constant 1 + 110: 6(float) Constant 1065353216 + 111: TypePointer Function 6(float) + 115: TypeSampler + 116: TypePointer UniformConstant 115 + 117(g_sSamp): 116(ptr) Variable UniformConstant + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 121: TypeImage 11(int) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdi4): 122(ptr) Variable UniformConstant + 124: TypeImage 15(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdu4): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) 1D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex1df4a): 128(ptr) Variable UniformConstant + 130: TypeImage 11(int) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1di4a): 131(ptr) Variable UniformConstant + 133: TypeImage 15(int) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1du4a): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) 2D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex2df4a): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2di4a): 140(ptr) Variable UniformConstant + 142: TypeImage 15(int) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2du4a): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdf4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdi4a): 149(ptr) Variable UniformConstant + 151: TypeImage 15(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdu4a): 152(ptr) Variable UniformConstant + 154(c1): 17(ptr) Variable UniformConstant + 155(o1): 17(ptr) Variable UniformConstant + 156(o2): 13(ptr) Variable UniformConstant + 157(o3): 50(ptr) Variable UniformConstant + 158(o4): 80(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 108(psout): 107(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 18: 17(ptr) AccessChain 14(c2) 16 + 19: 11(int) Load 18 + 21: 17(ptr) AccessChain 14(c2) 20 + 22: 11(int) Load 21 + 24: 23(fvec4) ImageFetch 10 19 Lod 22 + 28: 25 Load 27(g_tTex1di4) + 29: 17(ptr) AccessChain 14(c2) 16 + 30: 11(int) Load 29 + 31: 17(ptr) AccessChain 14(c2) 20 + 32: 11(int) Load 31 + 34: 33(ivec4) ImageFetch 28 30 Lod 32 + 38: 35 Load 37(g_tTex1du4) + 39: 17(ptr) AccessChain 14(c2) 16 + 40: 11(int) Load 39 + 41: 17(ptr) AccessChain 14(c2) 20 + 42: 11(int) Load 41 + 44: 43(ivec4) ImageFetch 38 40 Lod 42 + 48: 45 Load 47(g_tTex2df4) + 52: 49(ivec3) Load 51(c3) + 53: 12(ivec2) VectorShuffle 52 52 0 1 + 55: 17(ptr) AccessChain 51(c3) 54 + 56: 11(int) Load 55 + 57: 23(fvec4) ImageFetch 48 53 Lod 56 + 61: 58 Load 60(g_tTex2di4) + 62: 49(ivec3) Load 51(c3) + 63: 12(ivec2) VectorShuffle 62 62 0 1 + 64: 17(ptr) AccessChain 51(c3) 54 + 65: 11(int) Load 64 + 66: 33(ivec4) ImageFetch 61 63 Lod 65 + 70: 67 Load 69(g_tTex2du4) + 71: 49(ivec3) Load 51(c3) + 72: 12(ivec2) VectorShuffle 71 71 0 1 + 73: 17(ptr) AccessChain 51(c3) 54 + 74: 11(int) Load 73 + 75: 43(ivec4) ImageFetch 70 72 Lod 74 + 79: 76 Load 78(g_tTex3df4) + 82: 33(ivec4) Load 81(c4) + 83: 49(ivec3) VectorShuffle 82 82 0 1 2 + 85: 17(ptr) AccessChain 81(c4) 84 + 86: 11(int) Load 85 + 87: 23(fvec4) ImageFetch 79 83 Lod 86 + 91: 88 Load 90(g_tTex3di4) + 92: 33(ivec4) Load 81(c4) + 93: 49(ivec3) VectorShuffle 92 92 0 1 2 + 94: 17(ptr) AccessChain 81(c4) 84 + 95: 11(int) Load 94 + 96: 33(ivec4) ImageFetch 91 93 Lod 95 + 100: 97 Load 99(g_tTex3du4) + 101: 33(ivec4) Load 81(c4) + 102: 49(ivec3) VectorShuffle 101 101 0 1 2 + 103: 17(ptr) AccessChain 81(c4) 84 + 104: 11(int) Load 103 + 105: 43(ivec4) ImageFetch 100 102 Lod 104 + 112: 111(ptr) AccessChain 108(psout) 109 + Store 112 110 + 113:106(PS_OUTPUT) Load 108(psout) + ReturnValue 113 + FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out new file mode 100644 index 00000000..5def1f80 --- /dev/null +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -0,0 +1,590 @@ +hlsl.load.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset (global 4-component vector of float) +0:52 'g_tTex1df4' (uniform texture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:52 'o1' (uniform int) +0:53 textureFetchOffset (global 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:53 'o1' (uniform int) +0:54 textureFetchOffset (global 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Constant: +0:54 1 (const int) +0:54 'o1' (uniform int) +0:57 textureFetchOffset (global 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:57 'o2' (uniform 2-component vector of int) +0:58 textureFetchOffset (global 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:58 'o2' (uniform 2-component vector of int) +0:59 textureFetchOffset (global 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Constant: +0:59 2 (const int) +0:59 'o2' (uniform 2-component vector of int) +0:62 textureFetchOffset (global 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:62 'o3' (uniform 3-component vector of int) +0:63 textureFetchOffset (global 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:63 'o3' (uniform 3-component vector of int) +0:64 textureFetchOffset (global 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index (temp int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Constant: +0:64 3 (const int) +0:64 'o3' (uniform 3-component vector of int) +0:73 move second child to first child (temp float) +0:73 Depth: direct index for structure (temp float FragDepth) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset (global 4-component vector of float) +0:52 'g_tTex1df4' (uniform texture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:52 'o1' (uniform int) +0:53 textureFetchOffset (global 4-component vector of int) +0:53 'g_tTex1di4' (uniform itexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:53 'o1' (uniform int) +0:54 textureFetchOffset (global 4-component vector of uint) +0:54 'g_tTex1du4' (uniform utexture1D) +0:54 vector swizzle (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 direct index (temp int) +0:54 'c2' (uniform 2-component vector of int) +0:54 Constant: +0:54 1 (const int) +0:54 'o1' (uniform int) +0:57 textureFetchOffset (global 4-component vector of float) +0:57 'g_tTex2df4' (uniform texture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:57 'o2' (uniform 2-component vector of int) +0:58 textureFetchOffset (global 4-component vector of int) +0:58 'g_tTex2di4' (uniform itexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:58 'o2' (uniform 2-component vector of int) +0:59 textureFetchOffset (global 4-component vector of uint) +0:59 'g_tTex2du4' (uniform utexture2D) +0:59 vector swizzle (temp 2-component vector of int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 direct index (temp int) +0:59 'c3' (uniform 3-component vector of int) +0:59 Constant: +0:59 2 (const int) +0:59 'o2' (uniform 2-component vector of int) +0:62 textureFetchOffset (global 4-component vector of float) +0:62 'g_tTex3df4' (uniform texture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:62 'o3' (uniform 3-component vector of int) +0:63 textureFetchOffset (global 4-component vector of int) +0:63 'g_tTex3di4' (uniform itexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:63 'o3' (uniform 3-component vector of int) +0:64 textureFetchOffset (global 4-component vector of uint) +0:64 'g_tTex3du4' (uniform utexture3D) +0:64 vector swizzle (temp 3-component vector of int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Sequence +0:64 Constant: +0:64 0 (const int) +0:64 Constant: +0:64 1 (const int) +0:64 Constant: +0:64 2 (const int) +0:64 direct index (temp int) +0:64 'c4' (uniform 4-component vector of int) +0:64 Constant: +0:64 3 (const int) +0:64 'o3' (uniform 3-component vector of int) +0:73 move second child to first child (temp float) +0:73 Depth: direct index for structure (temp float FragDepth) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 1 (const int) +0:73 Constant: +0:73 1.000000 +0:75 Branch: Return with expression +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 168 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex1df4" + Name 14 "c2" + Name 23 "o1" + Name 29 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 51 "g_tTex2df4" + Name 55 "c3" + Name 61 "o2" + Name 66 "g_tTex2di4" + Name 76 "g_tTex2du4" + Name 86 "g_tTex3df4" + Name 89 "c4" + Name 95 "o3" + Name 100 "g_tTex3di4" + Name 110 "g_tTex3du4" + Name 118 "PS_OUTPUT" + MemberName 118(PS_OUTPUT) 0 "Color" + MemberName 118(PS_OUTPUT) 1 "Depth" + Name 120 "psout" + Name 129 "g_sSamp" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" + Name 166 "c1" + Name 167 "o4" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 51(g_tTex2df4) DescriptorSet 0 + Decorate 66(g_tTex2di4) DescriptorSet 0 + Decorate 76(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 100(g_tTex3di4) DescriptorSet 0 + Decorate 110(g_tTex3du4) DescriptorSet 0 + MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 129(g_sSamp) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypePointer UniformConstant 12(ivec2) + 14(c2): 13(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 0 + 17: TypePointer UniformConstant 11(int) + 20: 15(int) Constant 1 + 23(o1): 17(ptr) Variable UniformConstant + 25: TypeVector 6(float) 4 + 27: TypeImage 11(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 36: TypeVector 11(int) 4 + 38: TypeImage 15(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 47: TypeVector 15(int) 4 + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4): 50(ptr) Variable UniformConstant + 53: TypeVector 11(int) 3 + 54: TypePointer UniformConstant 53(ivec3) + 55(c3): 54(ptr) Variable UniformConstant + 58: 15(int) Constant 2 + 61(o2): 13(ptr) Variable UniformConstant + 64: TypeImage 11(int) 2D sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4): 65(ptr) Variable UniformConstant + 74: TypeImage 15(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4): 75(ptr) Variable UniformConstant + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 88: TypePointer UniformConstant 36(ivec4) + 89(c4): 88(ptr) Variable UniformConstant + 92: 15(int) Constant 3 + 95(o3): 54(ptr) Variable UniformConstant + 98: TypeImage 11(int) 3D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTex3di4): 99(ptr) Variable UniformConstant + 108: TypeImage 15(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3du4): 109(ptr) Variable UniformConstant + 118(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) + 119: TypePointer Function 118(PS_OUTPUT) + 121: 11(int) Constant 1 + 122: 6(float) Constant 1065353216 + 123: TypePointer Function 6(float) + 127: TypeSampler + 128: TypePointer UniformConstant 127 + 129(g_sSamp): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 15(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 15(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 15(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 11(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 15(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant + 166(c1): 17(ptr) Variable UniformConstant + 167(o4): 88(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 120(psout): 119(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 18: 17(ptr) AccessChain 14(c2) 16 + 19: 11(int) Load 18 + 21: 17(ptr) AccessChain 14(c2) 20 + 22: 11(int) Load 21 + 24: 11(int) Load 23(o1) + 26: 25(fvec4) ImageFetch 10 19 Lod Offset 22 24 + 30: 27 Load 29(g_tTex1di4) + 31: 17(ptr) AccessChain 14(c2) 16 + 32: 11(int) Load 31 + 33: 17(ptr) AccessChain 14(c2) 20 + 34: 11(int) Load 33 + 35: 11(int) Load 23(o1) + 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 + 41: 38 Load 40(g_tTex1du4) + 42: 17(ptr) AccessChain 14(c2) 16 + 43: 11(int) Load 42 + 44: 17(ptr) AccessChain 14(c2) 20 + 45: 11(int) Load 44 + 46: 11(int) Load 23(o1) + 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 + 52: 49 Load 51(g_tTex2df4) + 56: 53(ivec3) Load 55(c3) + 57: 12(ivec2) VectorShuffle 56 56 0 1 + 59: 17(ptr) AccessChain 55(c3) 58 + 60: 11(int) Load 59 + 62: 12(ivec2) Load 61(o2) + 63: 25(fvec4) ImageFetch 52 57 Lod Offset 60 62 + 67: 64 Load 66(g_tTex2di4) + 68: 53(ivec3) Load 55(c3) + 69: 12(ivec2) VectorShuffle 68 68 0 1 + 70: 17(ptr) AccessChain 55(c3) 58 + 71: 11(int) Load 70 + 72: 12(ivec2) Load 61(o2) + 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 + 77: 74 Load 76(g_tTex2du4) + 78: 53(ivec3) Load 55(c3) + 79: 12(ivec2) VectorShuffle 78 78 0 1 + 80: 17(ptr) AccessChain 55(c3) 58 + 81: 11(int) Load 80 + 82: 12(ivec2) Load 61(o2) + 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 + 87: 84 Load 86(g_tTex3df4) + 90: 36(ivec4) Load 89(c4) + 91: 53(ivec3) VectorShuffle 90 90 0 1 2 + 93: 17(ptr) AccessChain 89(c4) 92 + 94: 11(int) Load 93 + 96: 53(ivec3) Load 95(o3) + 97: 25(fvec4) ImageFetch 87 91 Lod Offset 94 96 + 101: 98 Load 100(g_tTex3di4) + 102: 36(ivec4) Load 89(c4) + 103: 53(ivec3) VectorShuffle 102 102 0 1 2 + 104: 17(ptr) AccessChain 89(c4) 92 + 105: 11(int) Load 104 + 106: 53(ivec3) Load 95(o3) + 107: 36(ivec4) ImageFetch 101 103 Lod Offset 105 106 + 111: 108 Load 110(g_tTex3du4) + 112: 36(ivec4) Load 89(c4) + 113: 53(ivec3) VectorShuffle 112 112 0 1 2 + 114: 17(ptr) AccessChain 89(c4) 92 + 115: 11(int) Load 114 + 116: 53(ivec3) Load 95(o3) + 117: 47(ivec4) ImageFetch 111 113 Lod Offset 115 116 + 124: 123(ptr) AccessChain 120(psout) 121 + Store 124 122 + 125:118(PS_OUTPUT) Load 120(psout) + ReturnValue 125 + FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out new file mode 100644 index 00000000..13332f2c --- /dev/null +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -0,0 +1,495 @@ +hlsl.load.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset (global 4-component vector of float) +0:52 'g_tTex1df4a' (uniform texture1DArray) +0:52 vector swizzle (temp 2-component vector of int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Constant: +0:52 2 (const int) +0:52 'o1' (uniform int) +0:53 textureFetchOffset (global 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Constant: +0:53 2 (const int) +0:53 'o1' (uniform int) +0:54 textureFetchOffset (global 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Constant: +0:54 2 (const int) +0:54 'o1' (uniform int) +0:57 textureFetchOffset (global 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index (temp int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Constant: +0:57 3 (const int) +0:57 'o2' (uniform 2-component vector of int) +0:58 textureFetchOffset (global 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index (temp int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Constant: +0:58 3 (const int) +0:58 'o2' (uniform 2-component vector of int) +0:59 textureFetchOffset (global 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index (temp int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Constant: +0:59 3 (const int) +0:59 'o2' (uniform 2-component vector of int) +0:66 move second child to first child (temp float) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 1.000000 +0:68 Branch: Return with expression +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Parameters: +0:? Sequence +0:52 textureFetchOffset (global 4-component vector of float) +0:52 'g_tTex1df4a' (uniform texture1DArray) +0:52 vector swizzle (temp 2-component vector of int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 Constant: +0:52 1 (const int) +0:52 direct index (temp int) +0:52 'c3' (uniform 3-component vector of int) +0:52 Constant: +0:52 2 (const int) +0:52 'o1' (uniform int) +0:53 textureFetchOffset (global 4-component vector of int) +0:53 'g_tTex1di4a' (uniform itexture1DArray) +0:53 vector swizzle (temp 2-component vector of int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1 (const int) +0:53 direct index (temp int) +0:53 'c3' (uniform 3-component vector of int) +0:53 Constant: +0:53 2 (const int) +0:53 'o1' (uniform int) +0:54 textureFetchOffset (global 4-component vector of uint) +0:54 'g_tTex1du4a' (uniform utexture1DArray) +0:54 vector swizzle (temp 2-component vector of int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Sequence +0:54 Constant: +0:54 0 (const int) +0:54 Constant: +0:54 1 (const int) +0:54 direct index (temp int) +0:54 'c3' (uniform 3-component vector of int) +0:54 Constant: +0:54 2 (const int) +0:54 'o1' (uniform int) +0:57 textureFetchOffset (global 4-component vector of float) +0:57 'g_tTex2df4a' (uniform texture2DArray) +0:57 vector swizzle (temp 3-component vector of int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 Constant: +0:57 2 (const int) +0:57 direct index (temp int) +0:57 'c4' (uniform 4-component vector of int) +0:57 Constant: +0:57 3 (const int) +0:57 'o2' (uniform 2-component vector of int) +0:58 textureFetchOffset (global 4-component vector of int) +0:58 'g_tTex2di4a' (uniform itexture2DArray) +0:58 vector swizzle (temp 3-component vector of int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 Constant: +0:58 2 (const int) +0:58 direct index (temp int) +0:58 'c4' (uniform 4-component vector of int) +0:58 Constant: +0:58 3 (const int) +0:58 'o2' (uniform 2-component vector of int) +0:59 textureFetchOffset (global 4-component vector of uint) +0:59 'g_tTex2du4a' (uniform utexture2DArray) +0:59 vector swizzle (temp 3-component vector of int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Sequence +0:59 Constant: +0:59 0 (const int) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 2 (const int) +0:59 direct index (temp int) +0:59 'c4' (uniform 4-component vector of int) +0:59 Constant: +0:59 3 (const int) +0:59 'o2' (uniform 2-component vector of int) +0:66 move second child to first child (temp float) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) +0:66 Constant: +0:66 1.000000 +0:68 Branch: Return with expression +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 14 "c3" + Name 23 "o1" + Name 29 "g_tTex1di4a" + Name 40 "g_tTex1du4a" + Name 51 "g_tTex2df4a" + Name 54 "c4" + Name 61 "o2" + Name 66 "g_tTex2di4a" + Name 76 "g_tTex2du4a" + Name 84 "PS_OUTPUT" + MemberName 84(PS_OUTPUT) 0 "Color" + MemberName 84(PS_OUTPUT) 1 "Depth" + Name 86 "psout" + Name 95 "g_sSamp" + Name 98 "g_tTex1df4" + Name 101 "g_tTex1di4" + Name 104 "g_tTex1du4" + Name 107 "g_tTex2df4" + Name 110 "g_tTex2di4" + Name 113 "g_tTex2du4" + Name 116 "g_tTex3df4" + Name 119 "g_tTex3di4" + Name 122 "g_tTex3du4" + Name 125 "g_tTexcdf4" + Name 128 "g_tTexcdi4" + Name 131 "g_tTexcdu4" + Name 134 "g_tTexcdf4a" + Name 137 "g_tTexcdi4a" + Name 140 "g_tTexcdu4a" + Name 141 "c1" + Name 142 "c2" + Name 143 "o3" + Name 144 "o4" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + Decorate 29(g_tTex1di4a) DescriptorSet 0 + Decorate 40(g_tTex1du4a) DescriptorSet 0 + Decorate 51(g_tTex2df4a) DescriptorSet 0 + Decorate 66(g_tTex2di4a) DescriptorSet 0 + Decorate 76(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 95(g_sSamp) DescriptorSet 0 + Decorate 98(g_tTex1df4) DescriptorSet 0 + Decorate 101(g_tTex1di4) DescriptorSet 0 + Decorate 104(g_tTex1du4) DescriptorSet 0 + Decorate 107(g_tTex2df4) DescriptorSet 0 + Decorate 110(g_tTex2di4) DescriptorSet 0 + Decorate 113(g_tTex2du4) DescriptorSet 0 + Decorate 116(g_tTex3df4) DescriptorSet 0 + Decorate 119(g_tTex3di4) DescriptorSet 0 + Decorate 122(g_tTex3du4) DescriptorSet 0 + Decorate 125(g_tTexcdf4) DescriptorSet 0 + Decorate 128(g_tTexcdi4) DescriptorSet 0 + Decorate 131(g_tTexcdu4) DescriptorSet 0 + Decorate 134(g_tTexcdf4a) DescriptorSet 0 + Decorate 137(g_tTexcdi4a) DescriptorSet 0 + Decorate 140(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 3 + 13: TypePointer UniformConstant 12(ivec3) + 14(c3): 13(ptr) Variable UniformConstant + 15: TypeVector 11(int) 2 + 18: TypeInt 32 0 + 19: 18(int) Constant 2 + 20: TypePointer UniformConstant 11(int) + 23(o1): 20(ptr) Variable UniformConstant + 25: TypeVector 6(float) 4 + 27: TypeImage 11(int) 1D array sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4a): 28(ptr) Variable UniformConstant + 36: TypeVector 11(int) 4 + 38: TypeImage 18(int) 1D array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4a): 39(ptr) Variable UniformConstant + 47: TypeVector 18(int) 4 + 49: TypeImage 6(float) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4a): 50(ptr) Variable UniformConstant + 53: TypePointer UniformConstant 36(ivec4) + 54(c4): 53(ptr) Variable UniformConstant + 57: 18(int) Constant 3 + 60: TypePointer UniformConstant 15(ivec2) + 61(o2): 60(ptr) Variable UniformConstant + 64: TypeImage 11(int) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4a): 65(ptr) Variable UniformConstant + 74: TypeImage 18(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4a): 75(ptr) Variable UniformConstant + 84(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) + 85: TypePointer Function 84(PS_OUTPUT) + 87: 11(int) Constant 1 + 88: 6(float) Constant 1065353216 + 89: TypePointer Function 6(float) + 93: TypeSampler + 94: TypePointer UniformConstant 93 + 95(g_sSamp): 94(ptr) Variable UniformConstant + 96: TypeImage 6(float) 1D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex1df4): 97(ptr) Variable UniformConstant + 99: TypeImage 11(int) 1D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex1di4): 100(ptr) Variable UniformConstant + 102: TypeImage 18(int) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex1du4): 103(ptr) Variable UniformConstant + 105: TypeImage 6(float) 2D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex2df4): 106(ptr) Variable UniformConstant + 108: TypeImage 11(int) 2D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex2di4): 109(ptr) Variable UniformConstant + 111: TypeImage 18(int) 2D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex2du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3df4): 115(ptr) Variable UniformConstant + 117: TypeImage 11(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3di4): 118(ptr) Variable UniformConstant + 120: TypeImage 18(int) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3du4): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdf4): 124(ptr) Variable UniformConstant + 126: TypeImage 11(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdi4): 127(ptr) Variable UniformConstant + 129: TypeImage 18(int) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdu4): 130(ptr) Variable UniformConstant + 132: TypeImage 6(float) Cube array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTexcdf4a): 133(ptr) Variable UniformConstant + 135: TypeImage 11(int) Cube array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTexcdi4a): 136(ptr) Variable UniformConstant + 138: TypeImage 18(int) Cube array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTexcdu4a): 139(ptr) Variable UniformConstant + 141(c1): 20(ptr) Variable UniformConstant + 142(c2): 60(ptr) Variable UniformConstant + 143(o3): 13(ptr) Variable UniformConstant + 144(o4): 53(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 86(psout): 85(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 16: 12(ivec3) Load 14(c3) + 17: 15(ivec2) VectorShuffle 16 16 0 1 + 21: 20(ptr) AccessChain 14(c3) 19 + 22: 11(int) Load 21 + 24: 11(int) Load 23(o1) + 26: 25(fvec4) ImageFetch 10 17 Lod Offset 22 24 + 30: 27 Load 29(g_tTex1di4a) + 31: 12(ivec3) Load 14(c3) + 32: 15(ivec2) VectorShuffle 31 31 0 1 + 33: 20(ptr) AccessChain 14(c3) 19 + 34: 11(int) Load 33 + 35: 11(int) Load 23(o1) + 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 + 41: 38 Load 40(g_tTex1du4a) + 42: 12(ivec3) Load 14(c3) + 43: 15(ivec2) VectorShuffle 42 42 0 1 + 44: 20(ptr) AccessChain 14(c3) 19 + 45: 11(int) Load 44 + 46: 11(int) Load 23(o1) + 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 + 52: 49 Load 51(g_tTex2df4a) + 55: 36(ivec4) Load 54(c4) + 56: 12(ivec3) VectorShuffle 55 55 0 1 2 + 58: 20(ptr) AccessChain 54(c4) 57 + 59: 11(int) Load 58 + 62: 15(ivec2) Load 61(o2) + 63: 25(fvec4) ImageFetch 52 56 Lod Offset 59 62 + 67: 64 Load 66(g_tTex2di4a) + 68: 36(ivec4) Load 54(c4) + 69: 12(ivec3) VectorShuffle 68 68 0 1 2 + 70: 20(ptr) AccessChain 54(c4) 57 + 71: 11(int) Load 70 + 72: 15(ivec2) Load 61(o2) + 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 + 77: 74 Load 76(g_tTex2du4a) + 78: 36(ivec4) Load 54(c4) + 79: 12(ivec3) VectorShuffle 78 78 0 1 2 + 80: 20(ptr) AccessChain 54(c4) 57 + 81: 11(int) Load 80 + 82: 15(ivec2) Load 61(o2) + 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 + 90: 89(ptr) AccessChain 86(psout) 87 + Store 90 88 + 91:84(PS_OUTPUT) Load 86(psout) + ReturnValue 91 + FunctionEnd diff --git a/Test/hlsl.load.array.dx10.frag b/Test/hlsl.load.array.dx10.frag new file mode 100644 index 00000000..253de3e2 --- /dev/null +++ b/Test/hlsl.load.array.dx10.frag @@ -0,0 +1,71 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + g_tTex1df4a.Load(c3); + g_tTex1di4a.Load(c3); + g_tTex1du4a.Load(c3); + + // 2DArray + g_tTex2df4a.Load(c4); + g_tTex2di4a.Load(c4); + g_tTex2du4a.Load(c4); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.basic.dx10.frag b/Test/hlsl.load.basic.dx10.frag new file mode 100644 index 00000000..abb594e3 --- /dev/null +++ b/Test/hlsl.load.basic.dx10.frag @@ -0,0 +1,76 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c2); + g_tTex1di4.Load(c2); + g_tTex1du4.Load(c2); + + // 2D + g_tTex2df4.Load(c3); + g_tTex2di4.Load(c3); + g_tTex2du4.Load(c3); + + // 3D + g_tTex3df4.Load(c4); + g_tTex3di4.Load(c4); + g_tTex3du4.Load(c4); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.dx10.frag b/Test/hlsl.load.dx10.frag deleted file mode 100644 index 39c99e35..00000000 --- a/Test/hlsl.load.dx10.frag +++ /dev/null @@ -1,91 +0,0 @@ -SamplerState g_sSamp : register(s0); - -uniform Texture1D g_tTex1df4 : register(t0); -Texture1D g_tTex1di4; -Texture1D g_tTex1du4; - -Texture2D g_tTex2df4; -Texture2D g_tTex2di4; -Texture2D g_tTex2du4; - -Texture3D g_tTex3df4; -Texture3D g_tTex3di4; -Texture3D g_tTex3du4; - -TextureCube g_tTexcdf4; -TextureCube g_tTexcdi4; -TextureCube g_tTexcdu4; - -Texture1DArray g_tTex1df4a; -Texture1DArray g_tTex1di4a; -Texture1DArray g_tTex1du4a; - -Texture2DArray g_tTex2df4a; -Texture2DArray g_tTex2di4a; -Texture2DArray g_tTex2du4a; - -TextureCubeArray g_tTexcdf4a; -TextureCubeArray g_tTexcdi4a; -TextureCubeArray g_tTexcdu4a; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float Depth : SV_Depth; -}; - -PS_OUTPUT main() -{ - PS_OUTPUT psout; - - // Load, no offset - g_tTex1df4.Load(int2(1,2)); - g_tTex1di4.Load(int2(1,2)); - g_tTex1du4.Load(int2(1,2)); - - g_tTex2df4.Load(int3(1,2,3)); - g_tTex2di4.Load(int3(1,2,3)); - g_tTex2du4.Load(int3(1,2,3)); - - g_tTex3df4.Load(int4(1,2,3,4)); - g_tTex3di4.Load(int4(1,2,3,4)); - g_tTex3du4.Load(int4(1,2,3,4)); - - g_tTex1df4a.Load(int3(1,2,3)); - g_tTex1di4a.Load(int3(1,2,3)); - g_tTex1du4a.Load(int3(1,2,3)); - - g_tTex2df4a.Load(int4(1,2,3,4)); - g_tTex2di4a.Load(int4(1,2,3,4)); - g_tTex2du4a.Load(int4(1,2,3,4)); - - // Load, offset - g_tTex1df4.Load(int2(1,2), 3); - g_tTex1di4.Load(int2(1,2), 3); - g_tTex1du4.Load(int2(1,2), 3); - - g_tTex2df4.Load(int3(1,2,3), int2(4,5)); - g_tTex2di4.Load(int3(1,2,3), int2(4,5)); - g_tTex2du4.Load(int3(1,2,3), int2(4,5)); - - g_tTex3df4.Load(int4(1,2,3,4), int3(5,6,7)); - g_tTex3di4.Load(int4(1,2,3,4), int3(5,6,7)); - g_tTex3du4.Load(int4(1,2,3,4), int3(5,6,7)); - - g_tTex1df4a.Load(int3(1,2,3), 4); - g_tTex1di4a.Load(int3(1,2,3), 4); - g_tTex1du4a.Load(int3(1,2,3), 4); - - g_tTex2df4a.Load(int4(1,2,3,4), int2(4,5)); - g_tTex2di4a.Load(int4(1,2,3,4), int2(4,5)); - g_tTex2du4a.Load(int4(1,2,3,4), int2(4,5)); - - // TODO: - // Load, SampleIndex - // Load, SampleIndex, Offset - - psout.Color = 1.0; - psout.Depth = 1.0; - - return psout; -} diff --git a/Test/hlsl.load.offset.dx10.frag b/Test/hlsl.load.offset.dx10.frag new file mode 100644 index 00000000..bc946eea --- /dev/null +++ b/Test/hlsl.load.offset.dx10.frag @@ -0,0 +1,76 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c2, o1); + g_tTex1di4.Load(c2, o1); + g_tTex1du4.Load(c2, o1); + + // 2D + g_tTex2df4.Load(c3, o2); + g_tTex2di4.Load(c3, o2); + g_tTex2du4.Load(c3, o2); + + // 3D + g_tTex3df4.Load(c4, o3); + g_tTex3di4.Load(c4, o3); + g_tTex3du4.Load(c4, o3); + + // Offset has no Cube or CubeArray forms + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.offsetarray.dx10.frag b/Test/hlsl.load.offsetarray.dx10.frag new file mode 100644 index 00000000..12b6a9e5 --- /dev/null +++ b/Test/hlsl.load.offsetarray.dx10.frag @@ -0,0 +1,69 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1DArray + g_tTex1df4a.Load(c3, o1); + g_tTex1di4a.Load(c3, o1); + g_tTex1du4a.Load(c3, o1); + + // 2DArray + g_tTex2df4a.Load(c4, o2); + g_tTex2di4a.Load(c4, o2); + g_tTex2du4a.Load(c4, o2); + + // TODO: + // Load, SampleIndex + // Load, SampleIndex, Offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 39a9fff6..80740177 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -86,6 +86,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool isTexture() const { return !sampler && !image; } bool isShadow() const { return shadow; } bool isArrayed() const { return arrayed; } + bool isMultiSample() const { return ms; } void clear() { diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index d855e723..6fe5c4ad 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -1,5 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2016 LunarG, Inc. //All rights reserved. // //Redistribution and use in source and binary forms, with or without @@ -47,6 +48,16 @@ class TInfoSink; namespace glslang { struct TVectorFields { + TVectorFields() { } + + TVectorFields(int c0, int c1, int c2, int c3) : num(4) + { + offsets[0] = c0; + offsets[1] = c1; + offsets[2] = c2; + offsets[3] = c3; + } + int offsets[4]; int num; }; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2923112c..4e88eee7 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -96,6 +96,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.load.array.dx10.frag", "main"}, + {"hlsl.load.basic.dx10.frag", "main"}, + {"hlsl.load.offset.dx10.frag", "main"}, + {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9c62a1c5..af4a76b2 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1124,6 +1124,71 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodLoad: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + TIntermTyped* lodComponent = nullptr; + TIntermTyped* coordSwizzle = nullptr; + + const bool isMS = argTex->getType().getSampler().isMultiSample(); + const TBasicType coordBaseType = argCoord->getType().getBasicType(); + + // Last component of coordinate is the mip level, for non-MS. we separate them here: + if (isMS) { + // MS has no LOD + coordSwizzle = argTex; + } else { + // Extract coordinate + TVectorFields coordFields(0,1,2,3); + coordFields.num = argCoord->getType().getVectorSize() - (isMS ? 0 : 1); + TIntermTyped* coordIdx = intermediate.addSwizzle(coordFields, loc); + coordSwizzle = intermediate.addIndex(EOpVectorSwizzle, argCoord, coordIdx, loc); + coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.num)); + + // Extract LOD + TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.num, loc, true); + lodComponent = intermediate.addIndex(EOpIndexDirect, argCoord, lodIdx, loc); + lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); + } + + const int numArgs = argAggregate->getSequence().size(); + const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); + + // Obtain offset arg, if there is one. + if (hasOffset) { + const int offsetPos = (isMS ? 3 : 2); + argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped(); + } + + // Create texel fetch + const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); + TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); + + const TSamplerDim dim = argTex->getType().getSampler().dim; + if (dim == EsdBuffer) // TODO: buffers + assert(0); + if (isMS) // TODO: 2DMS sample number + assert(0); + + // Build up the fetch + txfetch->getSequence().push_back(argTex); + txfetch->getSequence().push_back(coordSwizzle); + + if (!isMS) // MS has no LOD + txfetch->getSequence().push_back(lodComponent); + + if (hasOffset) + txfetch->getSequence().push_back(argOffset); + + txfetch->setType(node->getType()); + txfetch->setLoc(loc); + node = txfetch; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 06d28aa9..25244f3d 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -593,10 +593,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, - // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, - // { "Load", /* offset*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, - // { "Load", /* offset*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, + { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, + { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, // TODO: MS variants of Load // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, @@ -944,7 +944,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); - // symbolTable.relateToOperator("Load", EOpMethodLoad); + symbolTable.relateToOperator("Load", EOpMethodLoad); symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); } From 6d478956ac72921f10c15adb53483658c291627e Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Mon, 18 Jul 2016 10:11:05 -0600 Subject: [PATCH 016/217] Add g++/clang warnings to match some enabled by /W4 in MSVC. --- CMakeLists.txt | 6 ++++++ glslang/Include/Common.h | 19 ++++++++++++------- glslang/OSDependent/Unix/ossource.cpp | 6 +++--- hlsl/hlslParseables.cpp | 4 ++-- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f2f23559..be9bd259 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,8 +19,14 @@ else(WIN32) endif(WIN32) if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable) + add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. add_definitions(-std=c++11) elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs + -Wunused-parameter -Wunused-value -Wunused-variable) + add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over. add_definitions(-std=c++11) endif() diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index efb78d44..4c04ae32 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -197,20 +197,25 @@ template T Max(const T a, const T b) { return a > b ? a : b; } // // Create a TString object from an integer. // +#if defined _MSC_VER || defined MINGW_HAS_SECURE_API inline const TString String(const int i, const int base = 10) +{ + char text[16]; // 32 bit ints are at most 10 digits in base 10 + _itoa_s(i, text, sizeof(text), base); + return text; +} +#else +inline const TString String(const int i, const int /*base*/ = 10) { char text[16]; // 32 bit ints are at most 10 digits in base 10 - #if defined _MSC_VER || defined MINGW_HAS_SECURE_API - _itoa_s(i, text, sizeof(text), base); - #else - // we assume base 10 for all cases - snprintf(text, sizeof(text), "%d", i); - #endif + // we assume base 10 for all cases + snprintf(text, sizeof(text), "%d", i); return text; } - +#endif + struct TSourceLoc { void init() { name = nullptr; string = 0; line = 0; column = 0; } // Returns the name if it exists. Otherwise, returns the string number. diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp index 123e0869..8e583ea7 100644 --- a/glslang/OSDependent/Unix/ossource.cpp +++ b/glslang/OSDependent/Unix/ossource.cpp @@ -170,16 +170,16 @@ void InitGlobalLock() { } void GetGlobalLock() { } void ReleaseGlobalLock() { } -void* OS_CreateThread(TThreadEntrypoint entry) +void* OS_CreateThread(TThreadEntrypoint /*entry*/) { return 0; } -void OS_WaitForAllThreads(void* threads, int numThreads) +void OS_WaitForAllThreads(void* /*threads*/, int /*numThreads*/) { } -void OS_Sleep(int milliseconds) +void OS_Sleep(int /*milliseconds*/) { } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 06d28aa9..ed255b39 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -69,14 +69,14 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } -bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... +// bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { const bool isArrayed = IsTextureArrayed(*argOrder); - const bool isMS = IsTextureMS(*argOrder); + // const bool isMS = IsTextureMS(*argOrder); // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) From 3ef7852ef6ae372bb1ec1ab4ea9bd6a2bf2a8996 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Thu, 21 Jul 2016 15:02:16 -0600 Subject: [PATCH 017/217] HLSL: Add SampleLevel method --- .../hlsl.samplelevel.array.dx10.frag.out | 483 ++++++++++++++ .../hlsl.samplelevel.basic.dx10.frag.out | 589 ++++++++++++++++++ .../hlsl.samplelevel.basic.dx10.vert.out | 586 +++++++++++++++++ .../hlsl.samplelevel.offset.dx10.frag.out | 546 ++++++++++++++++ ...hlsl.samplelevel.offsetarray.dx10.frag.out | 383 ++++++++++++ Test/hlsl.samplelevel.array.dx10.frag | 43 ++ Test/hlsl.samplelevel.basic.dx10.frag | 52 ++ Test/hlsl.samplelevel.basic.dx10.vert | 49 ++ Test/hlsl.samplelevel.offset.dx10.frag | 49 ++ Test/hlsl.samplelevel.offsetarray.dx10.frag | 37 ++ gtests/Hlsl.FromFile.cpp | 5 + hlsl/hlslParseHelper.cpp | 32 + hlsl/hlslParseables.cpp | 18 +- 13 files changed, 2863 insertions(+), 9 deletions(-) create mode 100644 Test/baseResults/hlsl.samplelevel.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out create mode 100644 Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.samplelevel.array.dx10.frag create mode 100644 Test/hlsl.samplelevel.basic.dx10.frag create mode 100644 Test/hlsl.samplelevel.basic.dx10.vert create mode 100644 Test/hlsl.samplelevel.offset.dx10.frag create mode 100644 Test/hlsl.samplelevel.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out new file mode 100644 index 00000000..f7a6903b --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -0,0 +1,483 @@ +hlsl.samplelevel.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureLod (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureLod (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureLod (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureLod (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureLod (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureLod (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureLod (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureLod (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureLod (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval10' (temp 4-component vector of float) +0:27 textureLod (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1DArray) +0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:27 Constant: +0:27 0.750000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval11' (temp 4-component vector of int) +0:28 textureLod (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler1DArray) +0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:28 Constant: +0:28 0.750000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval12' (temp 4-component vector of uint) +0:29 textureLod (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler1DArray) +0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:29 Constant: +0:29 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval20' (temp 4-component vector of float) +0:31 textureLod (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler2DArray) +0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval21' (temp 4-component vector of int) +0:32 textureLod (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler2DArray) +0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval22' (temp 4-component vector of uint) +0:33 textureLod (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler2DArray) +0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:33 Constant: +0:33 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureLod (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureLod (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureLod (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:37 Constant: +0:37 0.750000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? 'g_tTexcdf4' (uniform textureCubeArray) +0:? 'g_tTexcdi4' (uniform itextureCubeArray) +0:? 'g_tTexcdu4' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 130 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 29 "txval11" + Name 32 "g_tTex1di4" + Name 43 "txval12" + Name 46 "g_tTex1du4" + Name 54 "txval20" + Name 57 "g_tTex2df4" + Name 65 "txval21" + Name 68 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 88 "txval40" + Name 91 "g_tTexcdf4" + Name 98 "txval41" + Name 101 "g_tTexcdi4" + Name 108 "txval42" + Name 111 "g_tTexcdu4" + Name 121 "PS_OUTPUT" + MemberName 121(PS_OUTPUT) 0 "Color" + MemberName 121(PS_OUTPUT) 1 "Depth" + Name 123 "psout" + Name 129 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 46(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 68(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 91(g_tTexcdf4) DescriptorSet 0 + Decorate 101(g_tTexcdi4) DescriptorSet 0 + Decorate 111(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 129(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 26: TypeInt 32 1 + 27: TypeVector 26(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 26(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 20(fvec2) ConstantComposite 22 37 + 40: TypeInt 32 0 + 41: TypeVector 40(int) 4 + 42: TypePointer Function 41(ivec4) + 44: TypeImage 40(int) 1D array sampled format:Unknown + 45: TypePointer UniformConstant 44 + 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 49: TypeSampledImage 44 + 51: 6(float) Constant 1053609165 + 52: 20(fvec2) ConstantComposite 37 51 + 55: TypeImage 6(float) 2D array sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeSampledImage 55 + 62: TypeVector 6(float) 3 + 63: 62(fvec3) ConstantComposite 21 22 37 + 66: TypeImage 26(int) 2D array sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 71: TypeSampledImage 66 + 73: 6(float) Constant 1056964608 + 74: 62(fvec3) ConstantComposite 37 51 73 + 77: TypeImage 40(int) 2D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1058642330 + 85: 6(float) Constant 1060320051 + 86: 62(fvec3) ConstantComposite 73 84 85 + 89: TypeImage 6(float) Cube array sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 94: TypeSampledImage 89 + 96: 7(fvec4) ConstantComposite 21 22 37 51 + 99: TypeImage 26(int) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdi4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 7(fvec4) ConstantComposite 51 73 84 85 + 109: TypeImage 40(int) Cube array sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTexcdu4): 110(ptr) Variable UniformConstant + 114: TypeSampledImage 109 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 6(float) Constant 1065353216 + 119: 7(fvec4) ConstantComposite 85 116 117 118 + 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 122: TypePointer Function 121(PS_OUTPUT) + 124: 26(int) Constant 1 + 125: TypePointer Function 6(float) +129(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 29(txval11): 28(ptr) Variable Function + 43(txval12): 42(ptr) Variable Function + 54(txval20): 8(ptr) Variable Function + 65(txval21): 28(ptr) Variable Function + 76(txval22): 42(ptr) Variable Function + 88(txval40): 8(ptr) Variable Function + 98(txval41): 28(ptr) Variable Function + 108(txval42): 42(ptr) Variable Function + 123(psout): 122(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24 + Store 9(txval10) 25 + 33: 30 Load 32(g_tTex1di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24 + Store 29(txval11) 39 + 47: 44 Load 46(g_tTex1du4) + 48: 14 Load 16(g_sSamp) + 50: 49 SampledImage 47 48 + 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24 + Store 43(txval12) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 14 Load 16(g_sSamp) + 61: 60 SampledImage 58 59 + 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24 + Store 54(txval20) 64 + 69: 66 Load 68(g_tTex2di4) + 70: 14 Load 16(g_sSamp) + 72: 71 SampledImage 69 70 + 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24 + Store 65(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24 + Store 76(txval22) 87 + 92: 89 Load 91(g_tTexcdf4) + 93: 14 Load 16(g_sSamp) + 95: 94 SampledImage 92 93 + 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24 + Store 88(txval40) 97 + 102: 99 Load 101(g_tTexcdi4) + 103: 14 Load 16(g_sSamp) + 105: 104 SampledImage 102 103 + 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24 + Store 98(txval41) 107 + 112: 109 Load 111(g_tTexcdu4) + 113: 14 Load 16(g_sSamp) + 115: 114 SampledImage 112 113 + 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 + Store 108(txval42) 120 + 126: 125(ptr) AccessChain 123(psout) 124 + Store 126 118 + 127:121(PS_OUTPUT) Load 123(psout) + ReturnValue 127 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out new file mode 100644 index 00000000..38089d14 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -0,0 +1,589 @@ +hlsl.samplelevel.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 'txval10' (temp 4-component vector of float) +0:32 textureLod (global 4-component vector of float) +0:32 Construct combined texture-sampler (temp sampler1D) +0:32 'g_tTex1df4' (uniform texture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of int) +0:33 'txval11' (temp 4-component vector of int) +0:33 textureLod (global 4-component vector of int) +0:33 Construct combined texture-sampler (temp isampler1D) +0:33 'g_tTex1di4' (uniform itexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of uint) +0:34 'txval12' (temp 4-component vector of uint) +0:34 textureLod (global 4-component vector of uint) +0:34 Construct combined texture-sampler (temp usampler1D) +0:34 'g_tTex1du4' (uniform utexture1D) +0:34 'g_sSamp' (uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:36 'txval20' (temp 4-component vector of float) +0:36 textureLod (global 4-component vector of float) +0:36 Construct combined texture-sampler (temp sampler2D) +0:36 'g_tTex2df4' (uniform texture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of int) +0:37 'txval21' (temp 4-component vector of int) +0:37 textureLod (global 4-component vector of int) +0:37 Construct combined texture-sampler (temp isampler2D) +0:37 'g_tTex2di4' (uniform itexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of uint) +0:38 'txval22' (temp 4-component vector of uint) +0:38 textureLod (global 4-component vector of uint) +0:38 Construct combined texture-sampler (temp usampler2D) +0:38 'g_tTex2du4' (uniform utexture2D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval30' (temp 4-component vector of float) +0:40 textureLod (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler3D) +0:40 'g_tTex3df4' (uniform texture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval31' (temp 4-component vector of int) +0:41 textureLod (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler3D) +0:41 'g_tTex3di4' (uniform itexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval32' (temp 4-component vector of uint) +0:42 textureLod (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler3D) +0:42 'g_tTex3du4' (uniform utexture3D) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval40' (temp 4-component vector of float) +0:44 textureLod (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp samplerCube) +0:44 'g_tTexcdf4' (uniform textureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval41' (temp 4-component vector of int) +0:45 textureLod (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isamplerCube) +0:45 'g_tTexcdi4' (uniform itextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval42' (temp 4-component vector of uint) +0:46 textureLod (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usamplerCube) +0:46 'g_tTexcdu4' (uniform utextureCube) +0:46 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:49 move second child to first child (temp float) +0:49 Depth: direct index for structure (temp float FragDepth) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 'txval10' (temp 4-component vector of float) +0:32 textureLod (global 4-component vector of float) +0:32 Construct combined texture-sampler (temp sampler1D) +0:32 'g_tTex1df4' (uniform texture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.100000 +0:32 Constant: +0:32 0.750000 +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of int) +0:33 'txval11' (temp 4-component vector of int) +0:33 textureLod (global 4-component vector of int) +0:33 Construct combined texture-sampler (temp isampler1D) +0:33 'g_tTex1di4' (uniform itexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.200000 +0:33 Constant: +0:33 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of uint) +0:34 'txval12' (temp 4-component vector of uint) +0:34 textureLod (global 4-component vector of uint) +0:34 Construct combined texture-sampler (temp usampler1D) +0:34 'g_tTex1du4' (uniform utexture1D) +0:34 'g_sSamp' (uniform sampler) +0:34 Constant: +0:34 0.300000 +0:34 Constant: +0:34 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:36 'txval20' (temp 4-component vector of float) +0:36 textureLod (global 4-component vector of float) +0:36 Construct combined texture-sampler (temp sampler2D) +0:36 'g_tTex2df4' (uniform texture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:36 Constant: +0:36 0.750000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of int) +0:37 'txval21' (temp 4-component vector of int) +0:37 textureLod (global 4-component vector of int) +0:37 Construct combined texture-sampler (temp isampler2D) +0:37 'g_tTex2di4' (uniform itexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:37 Constant: +0:37 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of uint) +0:38 'txval22' (temp 4-component vector of uint) +0:38 textureLod (global 4-component vector of uint) +0:38 Construct combined texture-sampler (temp usampler2D) +0:38 'g_tTex2du4' (uniform utexture2D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:38 Constant: +0:38 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval30' (temp 4-component vector of float) +0:40 textureLod (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler3D) +0:40 'g_tTex3df4' (uniform texture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Constant: +0:40 0.750000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval31' (temp 4-component vector of int) +0:41 textureLod (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler3D) +0:41 'g_tTex3di4' (uniform itexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Constant: +0:41 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval32' (temp 4-component vector of uint) +0:42 textureLod (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler3D) +0:42 'g_tTex3du4' (uniform utexture3D) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:42 Constant: +0:42 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval40' (temp 4-component vector of float) +0:44 textureLod (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp samplerCube) +0:44 'g_tTexcdf4' (uniform textureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:44 Constant: +0:44 0.750000 +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval41' (temp 4-component vector of int) +0:45 textureLod (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isamplerCube) +0:45 'g_tTexcdi4' (uniform itextureCube) +0:45 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:45 Constant: +0:45 0.750000 +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval42' (temp 4-component vector of uint) +0:46 textureLod (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usamplerCube) +0:46 'g_tTexcdu4' (uniform utextureCube) +0:46 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:46 Constant: +0:46 0.750000 +0:49 move second child to first child (temp float) +0:49 Depth: direct index for structure (temp float FragDepth) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Constant: +0:49 1 (const int) +0:49 Constant: +0:49 1.000000 +0:51 Branch: Return with expression +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 155 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "PS_OUTPUT" + MemberName 144(PS_OUTPUT) 0 "Color" + MemberName 144(PS_OUTPUT) 1 "Depth" + Name 146 "psout" + Name 153 "g_sSamp2d" + Name 154 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 153(g_sSamp2d) DescriptorSet 0 + Decorate 154(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 145: TypePointer Function 144(PS_OUTPUT) + 147: 23(int) Constant 1 + 148: 6(float) Constant 1065353216 + 149: TypePointer Function 6(float) + 153(g_sSamp2d): 15(ptr) Variable UniformConstant +154(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(psout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 149(ptr) AccessChain 146(psout) 147 + Store 150 148 + 151:144(PS_OUTPUT) Load 146(psout) + ReturnValue 151 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out new file mode 100644 index 00000000..b8b59027 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -0,0 +1,586 @@ +hlsl.samplelevel.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureLod (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureLod (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureLod (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureLod (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureLod (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureLod (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureLod (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureLod (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureLod (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureLod (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureLod (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureLod (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:27 Function Parameters: +0:? Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:30 'txval10' (temp 4-component vector of float) +0:30 textureLod (global 4-component vector of float) +0:30 Construct combined texture-sampler (temp sampler1D) +0:30 'g_tTex1df4' (uniform texture1D) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.100000 +0:30 Constant: +0:30 0.750000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of int) +0:31 'txval11' (temp 4-component vector of int) +0:31 textureLod (global 4-component vector of int) +0:31 Construct combined texture-sampler (temp isampler1D) +0:31 'g_tTex1di4' (uniform itexture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.200000 +0:31 Constant: +0:31 0.750000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of uint) +0:32 'txval12' (temp 4-component vector of uint) +0:32 textureLod (global 4-component vector of uint) +0:32 Construct combined texture-sampler (temp usampler1D) +0:32 'g_tTex1du4' (uniform utexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.300000 +0:32 Constant: +0:32 0.750000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureLod (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Constant: +0:34 0.750000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureLod (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Constant: +0:35 0.750000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureLod (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:36 Constant: +0:36 0.750000 +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:38 'txval30' (temp 4-component vector of float) +0:38 textureLod (global 4-component vector of float) +0:38 Construct combined texture-sampler (temp sampler3D) +0:38 'g_tTex3df4' (uniform texture3D) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:38 Constant: +0:38 0.750000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of int) +0:39 'txval31' (temp 4-component vector of int) +0:39 textureLod (global 4-component vector of int) +0:39 Construct combined texture-sampler (temp isampler3D) +0:39 'g_tTex3di4' (uniform itexture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:39 Constant: +0:39 0.750000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of uint) +0:40 'txval32' (temp 4-component vector of uint) +0:40 textureLod (global 4-component vector of uint) +0:40 Construct combined texture-sampler (temp usampler3D) +0:40 'g_tTex3du4' (uniform utexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:40 Constant: +0:40 0.750000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:42 'txval40' (temp 4-component vector of float) +0:42 textureLod (global 4-component vector of float) +0:42 Construct combined texture-sampler (temp samplerCube) +0:42 'g_tTexcdf4' (uniform textureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:42 Constant: +0:42 0.750000 +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of int) +0:43 'txval41' (temp 4-component vector of int) +0:43 textureLod (global 4-component vector of int) +0:43 Construct combined texture-sampler (temp isamplerCube) +0:43 'g_tTexcdi4' (uniform itextureCube) +0:43 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:43 Constant: +0:43 0.750000 +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of uint) +0:44 'txval42' (temp 4-component vector of uint) +0:44 textureLod (global 4-component vector of uint) +0:44 Construct combined texture-sampler (temp usamplerCube) +0:44 'g_tTexcdu4' (uniform utextureCube) +0:44 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:44 Constant: +0:44 0.750000 +0:46 move second child to first child (temp 4-component vector of float) +0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Constant: +0:46 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:48 Branch: Return with expression +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4" + Name 39 "txval12" + Name 42 "g_tTex1du4" + Name 49 "txval20" + Name 52 "g_tTex2df4" + Name 60 "txval21" + Name 63 "g_tTex2di4" + Name 71 "txval22" + Name 74 "g_tTex2du4" + Name 83 "txval30" + Name 86 "g_tTex3df4" + Name 94 "txval31" + Name 97 "g_tTex3di4" + Name 104 "txval32" + Name 107 "g_tTex3du4" + Name 117 "txval40" + Name 120 "g_tTexcdf4" + Name 126 "txval41" + Name 129 "g_tTexcdi4" + Name 135 "txval42" + Name 138 "g_tTexcdu4" + Name 144 "VS_OUTPUT" + MemberName 144(VS_OUTPUT) 0 "Pos" + Name 146 "vsout" + Name 153 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4) DescriptorSet 0 + Decorate 42(g_tTex1du4) DescriptorSet 0 + Decorate 52(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 74(g_tTex2du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 97(g_tTex3di4) DescriptorSet 0 + Decorate 107(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 153(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 23: TypeInt 32 1 + 24: TypeVector 23(int) 4 + 25: TypePointer Function 24(ivec4) + 27: TypeImage 23(int) 1D sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 36: TypeInt 32 0 + 37: TypeVector 36(int) 4 + 38: TypePointer Function 37(ivec4) + 40: TypeImage 36(int) 1D sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 50: TypeImage 6(float) 2D sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex2df4): 51(ptr) Variable UniformConstant + 55: TypeSampledImage 50 + 57: TypeVector 6(float) 2 + 58: 57(fvec2) ConstantComposite 20 34 + 61: TypeImage 23(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 66: TypeSampledImage 61 + 68: 6(float) Constant 1053609165 + 69: 57(fvec2) ConstantComposite 47 68 + 72: TypeImage 36(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 57(fvec2) ConstantComposite 79 80 + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 89: TypeSampledImage 84 + 91: TypeVector 6(float) 3 + 92: 91(fvec3) ConstantComposite 20 34 47 + 95: TypeImage 23(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3di4): 96(ptr) Variable UniformConstant + 100: TypeSampledImage 95 + 102: 91(fvec3) ConstantComposite 68 79 80 + 105: TypeImage 36(int) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3du4): 106(ptr) Variable UniformConstant + 110: TypeSampledImage 105 + 112: 6(float) Constant 1060320051 + 113: 6(float) Constant 1061997773 + 114: 6(float) Constant 1063675494 + 115: 91(fvec3) ConstantComposite 112 113 114 + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 123: TypeSampledImage 118 + 127: TypeImage 23(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 132: TypeSampledImage 127 + 136: TypeImage 36(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 141: TypeSampledImage 136 + 144(VS_OUTPUT): TypeStruct 7(fvec4) + 145: TypePointer Function 144(VS_OUTPUT) + 147: 23(int) Constant 0 + 148: 6(float) Constant 0 + 149: 7(fvec4) ConstantComposite 148 148 148 148 +153(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 26(txval11): 25(ptr) Variable Function + 39(txval12): 38(ptr) Variable Function + 49(txval20): 8(ptr) Variable Function + 60(txval21): 25(ptr) Variable Function + 71(txval22): 38(ptr) Variable Function + 83(txval30): 8(ptr) Variable Function + 94(txval31): 25(ptr) Variable Function + 104(txval32): 38(ptr) Variable Function + 117(txval40): 8(ptr) Variable Function + 126(txval41): 25(ptr) Variable Function + 135(txval42): 38(ptr) Variable Function + 146(vsout): 145(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21 + Store 9(txval10) 22 + 30: 27 Load 29(g_tTex1di4) + 31: 14 Load 16(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21 + Store 26(txval11) 35 + 43: 40 Load 42(g_tTex1du4) + 44: 14 Load 16(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21 + Store 39(txval12) 48 + 53: 50 Load 52(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 56: 55 SampledImage 53 54 + 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21 + Store 49(txval20) 59 + 64: 61 Load 63(g_tTex2di4) + 65: 14 Load 16(g_sSamp) + 67: 66 SampledImage 64 65 + 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21 + Store 60(txval21) 70 + 75: 72 Load 74(g_tTex2du4) + 76: 14 Load 16(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21 + Store 71(txval22) 82 + 87: 84 Load 86(g_tTex3df4) + 88: 14 Load 16(g_sSamp) + 90: 89 SampledImage 87 88 + 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21 + Store 83(txval30) 93 + 98: 95 Load 97(g_tTex3di4) + 99: 14 Load 16(g_sSamp) + 101: 100 SampledImage 98 99 + 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21 + Store 94(txval31) 103 + 108: 105 Load 107(g_tTex3du4) + 109: 14 Load 16(g_sSamp) + 111: 110 SampledImage 108 109 + 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21 + Store 104(txval32) 116 + 121: 118 Load 120(g_tTexcdf4) + 122: 14 Load 16(g_sSamp) + 124: 123 SampledImage 121 122 + 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21 + Store 117(txval40) 125 + 130: 127 Load 129(g_tTexcdi4) + 131: 14 Load 16(g_sSamp) + 133: 132 SampledImage 130 131 + 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21 + Store 126(txval41) 134 + 139: 136 Load 138(g_tTexcdu4) + 140: 14 Load 16(g_sSamp) + 142: 141 SampledImage 139 140 + 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 + Store 135(txval42) 143 + 150: 8(ptr) AccessChain 146(vsout) 147 + Store 150 149 + 151:144(VS_OUTPUT) Load 146(vsout) + ReturnValue 151 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out new file mode 100644 index 00000000..f2ca5ad1 --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -0,0 +1,546 @@ +hlsl.samplelevel.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureLodOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureLodOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureLodOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureLodOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureLodOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureLodOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureLodOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureLodOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureLodOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:31 'txval10' (temp 4-component vector of float) +0:31 textureLodOffset (global 4-component vector of float) +0:31 Construct combined texture-sampler (temp sampler1D) +0:31 'g_tTex1df4' (uniform texture1D) +0:31 'g_sSamp' (uniform sampler) +0:31 Constant: +0:31 0.100000 +0:31 Constant: +0:31 0.750000 +0:31 Constant: +0:31 1 (const int) +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of int) +0:32 'txval11' (temp 4-component vector of int) +0:32 textureLodOffset (global 4-component vector of int) +0:32 Construct combined texture-sampler (temp isampler1D) +0:32 'g_tTex1di4' (uniform itexture1D) +0:32 'g_sSamp' (uniform sampler) +0:32 Constant: +0:32 0.200000 +0:32 Constant: +0:32 0.750000 +0:32 Constant: +0:32 1 (const int) +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of uint) +0:33 'txval12' (temp 4-component vector of uint) +0:33 textureLodOffset (global 4-component vector of uint) +0:33 Construct combined texture-sampler (temp usampler1D) +0:33 'g_tTex1du4' (uniform utexture1D) +0:33 'g_sSamp' (uniform sampler) +0:33 Constant: +0:33 0.300000 +0:33 Constant: +0:33 0.750000 +0:33 Constant: +0:33 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval20' (temp 4-component vector of float) +0:35 textureLodOffset (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp sampler2D) +0:35 'g_tTex2df4' (uniform texture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Constant: +0:35 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval21' (temp 4-component vector of int) +0:36 textureLodOffset (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isampler2D) +0:36 'g_tTex2di4' (uniform itexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Constant: +0:36 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval22' (temp 4-component vector of uint) +0:37 textureLodOffset (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usampler2D) +0:37 'g_tTex2du4' (uniform utexture2D) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0.750000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval30' (temp 4-component vector of float) +0:39 textureLodOffset (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler3D) +0:39 'g_tTex3df4' (uniform texture3D) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:39 Constant: +0:39 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? 1 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval31' (temp 4-component vector of int) +0:40 textureLodOffset (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler3D) +0:40 'g_tTex3di4' (uniform itexture3D) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:40 Constant: +0:40 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:? 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval32' (temp 4-component vector of uint) +0:41 textureLodOffset (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler3D) +0:41 'g_tTex3du4' (uniform utexture3D) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:41 Constant: +0:41 0.750000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:? -1 (const int) +0:46 move second child to first child (temp float) +0:46 Depth: direct index for structure (temp float FragDepth) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Constant: +0:46 1 (const int) +0:46 Constant: +0:46 1.000000 +0:48 Branch: Return with expression +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 146 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 27 "txval11" + Name 30 "g_tTex1di4" + Name 40 "txval12" + Name 43 "g_tTex1du4" + Name 50 "txval20" + Name 53 "g_tTex2df4" + Name 64 "txval21" + Name 67 "g_tTex2di4" + Name 76 "txval22" + Name 79 "g_tTex2du4" + Name 90 "txval30" + Name 93 "g_tTex3df4" + Name 103 "txval31" + Name 106 "g_tTex3di4" + Name 114 "txval32" + Name 117 "g_tTex3du4" + Name 128 "PS_OUTPUT" + MemberName 128(PS_OUTPUT) 0 "Color" + MemberName 128(PS_OUTPUT) 1 "Depth" + Name 130 "psout" + Name 136 "g_tTex1df4a" + Name 139 "g_tTexcdf4" + Name 142 "g_tTexcdi4" + Name 145 "g_tTexcdu4" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 53(g_tTex2df4) DescriptorSet 0 + Decorate 67(g_tTex2di4) DescriptorSet 0 + Decorate 79(g_tTex2du4) DescriptorSet 0 + Decorate 93(g_tTex3df4) DescriptorSet 0 + Decorate 106(g_tTex3di4) DescriptorSet 0 + Decorate 117(g_tTex3du4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 136(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTexcdf4) DescriptorSet 0 + Decorate 142(g_tTexcdi4) DescriptorSet 0 + Decorate 145(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1036831949 + 21: 6(float) Constant 1061158912 + 22: TypeInt 32 1 + 23: 22(int) Constant 1 + 25: TypeVector 22(int) 4 + 26: TypePointer Function 25(ivec4) + 28: TypeImage 22(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeSampledImage 28 + 35: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeVector 37(int) 4 + 39: TypePointer Function 38(ivec4) + 41: TypeImage 37(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 48: 6(float) Constant 1050253722 + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4): 52(ptr) Variable UniformConstant + 56: TypeSampledImage 51 + 58: TypeVector 6(float) 2 + 59: 58(fvec2) ConstantComposite 20 35 + 60: TypeVector 22(int) 2 + 61: 22(int) Constant 0 + 62: 60(ivec2) ConstantComposite 23 61 + 65: TypeImage 22(int) 2D sampled format:Unknown + 66: TypePointer UniformConstant 65 + 67(g_tTex2di4): 66(ptr) Variable UniformConstant + 70: TypeSampledImage 65 + 72: 6(float) Constant 1053609165 + 73: 58(fvec2) ConstantComposite 48 72 + 74: 60(ivec2) ConstantComposite 23 23 + 77: TypeImage 37(int) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1056964608 + 85: 6(float) Constant 1058642330 + 86: 58(fvec2) ConstantComposite 84 85 + 87: 22(int) Constant 4294967295 + 88: 60(ivec2) ConstantComposite 23 87 + 91: TypeImage 6(float) 3D sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex3df4): 92(ptr) Variable UniformConstant + 96: TypeSampledImage 91 + 98: TypeVector 6(float) 3 + 99: 98(fvec3) ConstantComposite 20 35 48 + 100: TypeVector 22(int) 3 + 101: 100(ivec3) ConstantComposite 23 61 23 + 104: TypeImage 22(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3di4): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 98(fvec3) ConstantComposite 72 84 85 + 112: 100(ivec3) ConstantComposite 23 23 23 + 115: TypeImage 37(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 120: TypeSampledImage 115 + 122: 6(float) Constant 1060320051 + 123: 6(float) Constant 1061997773 + 124: 6(float) Constant 1063675494 + 125: 98(fvec3) ConstantComposite 122 123 124 + 126: 100(ivec3) ConstantComposite 23 61 87 + 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 129: TypePointer Function 128(PS_OUTPUT) + 131: 6(float) Constant 1065353216 + 132: TypePointer Function 6(float) +136(g_tTex1df4a): 11(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdf4): 138(ptr) Variable UniformConstant + 140: TypeImage 22(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdi4): 141(ptr) Variable UniformConstant + 143: TypeImage 37(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdu4): 144(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 27(txval11): 26(ptr) Variable Function + 40(txval12): 39(ptr) Variable Function + 50(txval20): 8(ptr) Variable Function + 64(txval21): 26(ptr) Variable Function + 76(txval22): 39(ptr) Variable Function + 90(txval30): 8(ptr) Variable Function + 103(txval31): 26(ptr) Variable Function + 114(txval32): 39(ptr) Variable Function + 130(psout): 129(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleExplicitLod 19 20 Lod ConstOffset 21 23 + Store 9(txval10) 24 + 31: 28 Load 30(g_tTex1di4) + 32: 14 Load 16(g_sSamp) + 34: 33 SampledImage 31 32 + 36: 25(ivec4) ImageSampleExplicitLod 34 35 Lod ConstOffset 21 23 + Store 27(txval11) 36 + 44: 41 Load 43(g_tTex1du4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 49: 38(ivec4) ImageSampleExplicitLod 47 48 Lod ConstOffset 21 23 + Store 40(txval12) 49 + 54: 51 Load 53(g_tTex2df4) + 55: 14 Load 16(g_sSamp) + 57: 56 SampledImage 54 55 + 63: 7(fvec4) ImageSampleExplicitLod 57 59 Lod ConstOffset 21 62 + Store 50(txval20) 63 + 68: 65 Load 67(g_tTex2di4) + 69: 14 Load 16(g_sSamp) + 71: 70 SampledImage 68 69 + 75: 25(ivec4) ImageSampleExplicitLod 71 73 Lod ConstOffset 21 74 + Store 64(txval21) 75 + 80: 77 Load 79(g_tTex2du4) + 81: 14 Load 16(g_sSamp) + 83: 82 SampledImage 80 81 + 89: 38(ivec4) ImageSampleExplicitLod 83 86 Lod ConstOffset 21 88 + Store 76(txval22) 89 + 94: 91 Load 93(g_tTex3df4) + 95: 14 Load 16(g_sSamp) + 97: 96 SampledImage 94 95 + 102: 7(fvec4) ImageSampleExplicitLod 97 99 Lod ConstOffset 21 101 + Store 90(txval30) 102 + 107: 104 Load 106(g_tTex3di4) + 108: 14 Load 16(g_sSamp) + 110: 109 SampledImage 107 108 + 113: 25(ivec4) ImageSampleExplicitLod 110 111 Lod ConstOffset 21 112 + Store 103(txval31) 113 + 118: 115 Load 117(g_tTex3du4) + 119: 14 Load 16(g_sSamp) + 121: 120 SampledImage 118 119 + 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126 + Store 114(txval32) 127 + 133: 132(ptr) AccessChain 130(psout) 23 + Store 133 131 + 134:128(PS_OUTPUT) Load 130(psout) + ReturnValue 134 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out new file mode 100644 index 00000000..9677209c --- /dev/null +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -0,0 +1,383 @@ +hlsl.samplelevel.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureLodOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureLodOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureLodOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureLodOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureLodOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureLodOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:23 'txval10' (temp 4-component vector of float) +0:23 textureLodOffset (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1DArray) +0:23 'g_tTex1df4' (uniform texture1DArray) +0:23 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:23 Constant: +0:23 0.750000 +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of int) +0:24 'txval11' (temp 4-component vector of int) +0:24 textureLodOffset (global 4-component vector of int) +0:24 Construct combined texture-sampler (temp isampler1DArray) +0:24 'g_tTex1di4' (uniform itexture1DArray) +0:24 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:24 Constant: +0:24 0.750000 +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of uint) +0:25 'txval12' (temp 4-component vector of uint) +0:25 textureLodOffset (global 4-component vector of uint) +0:25 Construct combined texture-sampler (temp usampler1DArray) +0:25 'g_tTex1du4' (uniform utexture1DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:25 Constant: +0:25 0.750000 +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'txval20' (temp 4-component vector of float) +0:27 textureLodOffset (global 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler2DArray) +0:27 'g_tTex2df4' (uniform texture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:27 Constant: +0:27 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of int) +0:28 'txval21' (temp 4-component vector of int) +0:28 textureLodOffset (global 4-component vector of int) +0:28 Construct combined texture-sampler (temp isampler2DArray) +0:28 'g_tTex2di4' (uniform itexture2DArray) +0:28 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:28 Constant: +0:28 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'txval22' (temp 4-component vector of uint) +0:29 textureLodOffset (global 4-component vector of uint) +0:29 Construct combined texture-sampler (temp usampler2DArray) +0:29 'g_tTex2du4' (uniform utexture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:29 Constant: +0:29 0.750000 +0:? Constant: +0:? 0 (const int) +0:? 1 (const int) +0:34 move second child to first child (temp float) +0:34 Depth: direct index for structure (temp float FragDepth) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 1.000000 +0:36 Branch: Return with expression +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 103 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval10" + Name 12 "g_tTex1df4" + Name 16 "g_sSamp" + Name 30 "txval11" + Name 33 "g_tTex1di4" + Name 45 "txval12" + Name 48 "g_tTex1du4" + Name 57 "txval20" + Name 60 "g_tTex2df4" + Name 70 "txval21" + Name 73 "g_tTex2di4" + Name 81 "txval22" + Name 84 "g_tTex2du4" + Name 94 "PS_OUTPUT" + MemberName 94(PS_OUTPUT) 0 "Color" + MemberName 94(PS_OUTPUT) 1 "Depth" + Name 96 "psout" + Name 102 "g_tTex1df4a" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex1di4) DescriptorSet 0 + Decorate 48(g_tTex1du4) DescriptorSet 0 + Decorate 60(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 84(g_tTex2du4) DescriptorSet 0 + MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 102(g_tTex1df4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 1D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: 6(float) Constant 1061158912 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 1D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex1di4): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1050253722 + 39: 20(fvec2) ConstantComposite 22 38 + 40: 25(int) Constant 1 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 1D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex1du4): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1053609165 + 54: 20(fvec2) ConstantComposite 38 53 + 55: 25(int) Constant 2 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: TypeVector 6(float) 3 + 66: 65(fvec3) ConstantComposite 21 22 38 + 67: TypeVector 25(int) 2 + 68: 67(ivec2) ConstantComposite 26 26 + 71: TypeImage 25(int) 2D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeSampledImage 71 + 78: 6(float) Constant 1056964608 + 79: 65(fvec3) ConstantComposite 38 53 78 + 82: TypeImage 42(int) 2D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2du4): 83(ptr) Variable UniformConstant + 87: TypeSampledImage 82 + 89: 6(float) Constant 1058642330 + 90: 6(float) Constant 1060320051 + 91: 65(fvec3) ConstantComposite 78 89 90 + 92: 67(ivec2) ConstantComposite 26 40 + 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 95: TypePointer Function 94(PS_OUTPUT) + 97: 6(float) Constant 1065353216 + 98: TypePointer Function 6(float) +102(g_tTex1df4a): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval10): 8(ptr) Variable Function + 30(txval11): 29(ptr) Variable Function + 45(txval12): 44(ptr) Variable Function + 57(txval20): 8(ptr) Variable Function + 70(txval21): 29(ptr) Variable Function + 81(txval22): 44(ptr) Variable Function + 96(psout): 95(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26 + Store 9(txval10) 27 + 34: 31 Load 33(g_tTex1di4) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40 + Store 30(txval11) 41 + 49: 46 Load 48(g_tTex1du4) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55 + Store 45(txval12) 56 + 61: 58 Load 60(g_tTex2df4) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 69: 7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68 + Store 57(txval20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 14 Load 16(g_sSamp) + 77: 76 SampledImage 74 75 + 80: 28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68 + Store 70(txval21) 80 + 85: 82 Load 84(g_tTex2du4) + 86: 14 Load 16(g_sSamp) + 88: 87 SampledImage 85 86 + 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92 + Store 81(txval22) 93 + 99: 98(ptr) AccessChain 96(psout) 40 + Store 99 97 + 100:94(PS_OUTPUT) Load 96(psout) + ReturnValue 100 + FunctionEnd diff --git a/Test/hlsl.samplelevel.array.dx10.frag b/Test/hlsl.samplelevel.array.dx10.frag new file mode 100644 index 00000000..68dbdde3 --- /dev/null +++ b/Test/hlsl.samplelevel.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +TextureCubeArray g_tTexcdf4; +TextureCubeArray g_tTexcdi4; +TextureCubeArray g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.basic.dx10.frag b/Test/hlsl.samplelevel.basic.dx10.frag new file mode 100644 index 00000000..fb363ae8 --- /dev/null +++ b/Test/hlsl.samplelevel.basic.dx10.frag @@ -0,0 +1,52 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.basic.dx10.vert b/Test/hlsl.samplelevel.basic.dx10.vert new file mode 100644 index 00000000..03febcff --- /dev/null +++ b/Test/hlsl.samplelevel.basic.dx10.vert @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75); + uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/Test/hlsl.samplelevel.offset.dx10.frag b/Test/hlsl.samplelevel.offset.dx10.frag new file mode 100644 index 00000000..14906116 --- /dev/null +++ b/Test/hlsl.samplelevel.offset.dx10.frag @@ -0,0 +1,49 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75, 1); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75, 1); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, int2(1,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, int2(1,1)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75, int2(1,-1)); + + float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(1,0,1)); + int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75, int3(1,1,1)); + uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75, int3(1,0,-1)); + + // There are no offset forms of cube textures, so we do not test them. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.offsetarray.dx10.frag b/Test/hlsl.samplelevel.offsetarray.dx10.frag new file mode 100644 index 00000000..5c7bd71a --- /dev/null +++ b/Test/hlsl.samplelevel.offsetarray.dx10.frag @@ -0,0 +1,37 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, 0); + int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75, 1); + uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, 2); + + float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(0,0)); + int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75, int2(0,0)); + uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75, int2(0,1)); + + // No offset array forms for 3D or cube + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4e88eee7..900aee7f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -121,6 +121,11 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplegrad.basic.dx10.vert", "main"}, {"hlsl.samplegrad.offset.dx10.frag", "main"}, {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, + {"hlsl.samplelevel.array.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.frag", "main"}, + {"hlsl.samplelevel.basic.dx10.vert", "main"}, + {"hlsl.samplelevel.offset.dx10.frag", "main"}, + {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index af4a76b2..83817eaa 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1189,6 +1189,38 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodSampleLevel: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + const int numArgs = argAggregate->getSequence().size(); + + if (numArgs == 5) // offset, if present + argOffset = argAggregate->getSequence()[4]->getAsTyped(); + + const TOperator textureOp = (argOffset == nullptr ? EOpTextureLod : EOpTextureLodOffset); + TIntermAggregate* txsample = new TIntermAggregate(textureOp); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + txsample->getSequence().push_back(txcombine); + txsample->getSequence().push_back(argCoord); + txsample->getSequence().push_back(argLod); + + if (argOffset != nullptr) + txsample->getSequence().push_back(argOffset); + + txsample->setType(node->getType()); + txsample->setLoc(loc); + node = txsample; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 0a1051ea..a3bc3295 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -588,15 +588,15 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, - // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll }, - // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, - // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, + { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll }, + { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, + { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, + { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, - { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, - { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, - { "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, + { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, + { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, // TODO: MS variants of Load // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, @@ -943,7 +943,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp); symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad); - // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); + symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); symbolTable.relateToOperator("Load", EOpMethodLoad); symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); } From 5c08ecb4193f7a10f9948e706233f6c3c323c08b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 21 Jul 2016 15:39:23 -0600 Subject: [PATCH 018/217] Tests: line-number change only: make room for more component tests. --- Test/440.vert | 11 ++ Test/baseResults/440.vert.out | 184 +++++++++++++++++----------------- glslang/Include/revision.h | 4 +- 3 files changed, 105 insertions(+), 94 deletions(-) diff --git a/Test/440.vert b/Test/440.vert index ac946be0..c1a396fa 100644 --- a/Test/440.vert +++ b/Test/440.vert @@ -63,6 +63,17 @@ layout(location = 1, component = 1) out; // ERROR, no global set layout(location = 50, component = 3) out int be; layout(location = 50, component = 0) out vec3 bf; +//layout(location = 51, component = 1) out double dfo; // ERROR, odd component +//layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow +//layout(location = 53) out double dfo2; +//layout(location = 53, component = 2) out vec2 ffv2; // okay, fits +//layout(location = 54) out dvec4 dvec4out; // uses up location 55 too +//layout(location = 55) out float overf; // ERROR, collides with previous dvec4 +//layout(location = 56, component = 1) out vec2 df2o; +//layout(location = 56, component = 3) out float sf2o; +//layout(location = 57, component = 2) out vec2 dv3o; +//layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component + out bblck1 { vec4 bbv; } bbinst1; diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index 9ad3c1bd..b5a8f2eb 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -19,36 +19,36 @@ ERROR: 0:55: 'component' : type overflows the available 4 components ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration -ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output -ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration -ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) -ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) -ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 -ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2 -ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2 -ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15 -ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1 -ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0 -ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component -ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 -ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component -ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 -ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64 -ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:173: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) -ERROR: 0:174: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) -ERROR: 0:175: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) -ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier +ERROR: 0:92: 'xfb layout qualifier' : can only be used on an output +ERROR: 0:98: 'xfb_offset' : cannot declare a default, use a full declaration +ERROR: 0:108: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:113: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:113: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 +ERROR: 0:114: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2 +ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2 +ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 15 +ERROR: 0:123: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1 +ERROR: 0:125: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:126: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:130: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:128: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:149: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0 +ERROR: 0:154: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:155: 'xfb_offset' : must be a multiple of size of first component +ERROR: 0:156: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 +ERROR: 0:158: 'xfb_offset' : must be a multiple of size of first component +ERROR: 0:159: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 +ERROR: 0:163: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:166: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64 +ERROR: 0:168: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:176: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:176: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:176: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:184: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) +ERROR: 0:185: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) +ERROR: 0:186: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) +ERROR: 0:187: 'glBaseInstanceARB' : undeclared identifier ERROR: 49 compilation errors. No code generated. @@ -56,37 +56,37 @@ Shader version: 440 Requested GL_ARB_shader_draw_parameters in xfb mode ERROR: node is still EOpNull! -0:163 Function Definition: drawParamsBad( (global int) -0:163 Function Parameters: -0:165 Sequence -0:165 Branch: Return with expression -0:165 add (temp int) -0:165 add (temp int) -0:165 'gl_BaseVertexARB' (in int BaseVertex) -0:165 'gl_BaseInstanceARB' (in int BaseInstance) -0:165 'gl_DrawIDARB' (in int DrawId) -0:170 Function Definition: drawParams( (global int) -0:170 Function Parameters: -0:172 Sequence -0:172 Branch: Return with expression -0:172 add (temp int) -0:172 add (temp int) -0:172 'gl_BaseVertexARB' (in int BaseVertex) -0:172 'gl_BaseInstanceARB' (in int BaseInstance) -0:172 'gl_DrawIDARB' (in int DrawId) -0:173 move second child to first child (temp int) -0:173 'gl_BaseVertexARB' (in int BaseVertex) -0:173 Constant: -0:173 3 (const int) -0:174 move second child to first child (temp int) -0:174 'gl_BaseInstanceARB' (in int BaseInstance) -0:174 Constant: -0:174 3 (const int) -0:175 move second child to first child (temp int) -0:175 'gl_DrawIDARB' (in int DrawId) -0:175 Constant: -0:175 3 (const int) -0:176 'glBaseInstanceARB' (temp float) +0:174 Function Definition: drawParamsBad( (global int) +0:174 Function Parameters: +0:176 Sequence +0:176 Branch: Return with expression +0:176 add (temp int) +0:176 add (temp int) +0:176 'gl_BaseVertexARB' (in int BaseVertex) +0:176 'gl_BaseInstanceARB' (in int BaseInstance) +0:176 'gl_DrawIDARB' (in int DrawId) +0:181 Function Definition: drawParams( (global int) +0:181 Function Parameters: +0:183 Sequence +0:183 Branch: Return with expression +0:183 add (temp int) +0:183 add (temp int) +0:183 'gl_BaseVertexARB' (in int BaseVertex) +0:183 'gl_BaseInstanceARB' (in int BaseInstance) +0:183 'gl_DrawIDARB' (in int DrawId) +0:184 move second child to first child (temp int) +0:184 'gl_BaseVertexARB' (in int BaseVertex) +0:184 Constant: +0:184 3 (const int) +0:185 move second child to first child (temp int) +0:185 'gl_BaseInstanceARB' (in int BaseInstance) +0:185 Constant: +0:185 3 (const int) +0:186 move second child to first child (temp int) +0:186 'gl_DrawIDARB' (in int DrawId) +0:186 Constant: +0:186 3 (const int) +0:187 'glBaseInstanceARB' (temp float) 0:? Linker Objects 0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) 0:? 'b' (layout(location=2 component=1 ) in float) @@ -156,37 +156,37 @@ Shader version: 440 Requested GL_ARB_shader_draw_parameters in xfb mode ERROR: node is still EOpNull! -0:163 Function Definition: drawParamsBad( (global int) -0:163 Function Parameters: -0:165 Sequence -0:165 Branch: Return with expression -0:165 add (temp int) -0:165 add (temp int) -0:165 'gl_BaseVertexARB' (in int BaseVertex) -0:165 'gl_BaseInstanceARB' (in int BaseInstance) -0:165 'gl_DrawIDARB' (in int DrawId) -0:170 Function Definition: drawParams( (global int) -0:170 Function Parameters: -0:172 Sequence -0:172 Branch: Return with expression -0:172 add (temp int) -0:172 add (temp int) -0:172 'gl_BaseVertexARB' (in int BaseVertex) -0:172 'gl_BaseInstanceARB' (in int BaseInstance) -0:172 'gl_DrawIDARB' (in int DrawId) -0:173 move second child to first child (temp int) -0:173 'gl_BaseVertexARB' (in int BaseVertex) -0:173 Constant: -0:173 3 (const int) -0:174 move second child to first child (temp int) -0:174 'gl_BaseInstanceARB' (in int BaseInstance) -0:174 Constant: -0:174 3 (const int) -0:175 move second child to first child (temp int) -0:175 'gl_DrawIDARB' (in int DrawId) -0:175 Constant: -0:175 3 (const int) -0:176 'glBaseInstanceARB' (temp float) +0:174 Function Definition: drawParamsBad( (global int) +0:174 Function Parameters: +0:176 Sequence +0:176 Branch: Return with expression +0:176 add (temp int) +0:176 add (temp int) +0:176 'gl_BaseVertexARB' (in int BaseVertex) +0:176 'gl_BaseInstanceARB' (in int BaseInstance) +0:176 'gl_DrawIDARB' (in int DrawId) +0:181 Function Definition: drawParams( (global int) +0:181 Function Parameters: +0:183 Sequence +0:183 Branch: Return with expression +0:183 add (temp int) +0:183 add (temp int) +0:183 'gl_BaseVertexARB' (in int BaseVertex) +0:183 'gl_BaseInstanceARB' (in int BaseInstance) +0:183 'gl_DrawIDARB' (in int DrawId) +0:184 move second child to first child (temp int) +0:184 'gl_BaseVertexARB' (in int BaseVertex) +0:184 Constant: +0:184 3 (const int) +0:185 move second child to first child (temp int) +0:185 'gl_BaseInstanceARB' (in int BaseInstance) +0:185 Constant: +0:185 3 (const int) +0:186 move second child to first child (temp int) +0:186 'gl_DrawIDARB' (in int DrawId) +0:186 Constant: +0:186 3 (const int) +0:187 'glBaseInstanceARB' (temp float) 0:? Linker Objects 0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) 0:? 'b' (layout(location=2 component=1 ) in float) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index ca7d044e..342a3330 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1321" -#define GLSLANG_DATE "20-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1330" +#define GLSLANG_DATE "21-Jul-2016" From bc9e1d118a8bcab32a9960486b15ea5d146f2eca Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 21 Jul 2016 15:41:10 -0600 Subject: [PATCH 019/217] Infrastructure: Remove bad characters from file. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/linkValidate.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 342a3330..9d2eef71 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1330" +#define GLSLANG_REVISION "SPIRV99.1331" #define GLSLANG_DATE "21-Jul-2016" diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 1cda57d3..ce2a38ca 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -940,7 +940,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // components each, according to rule (4). // // 6. If the member is an array of S column-major matrices with C columns and - // R rows, the matrix is stored identically to a row of S  C column vectors + // R rows, the matrix is stored identically to a row of S X C column vectors // with R components each, according to rule (4). // // 7. If the member is a row-major matrix with C columns and R rows, the matrix @@ -948,7 +948,7 @@ int TIntermediate::getBaseAlignment(const TType& type, int& size, int& stride, b // according to rule (4). // // 8. If the member is an array of S row-major matrices with C columns and R - // rows, the matrix is stored identically to a row of S  R row vectors with C + // rows, the matrix is stored identically to a row of S X R row vectors with C // components each, according to rule (4). // // 9. If the member is a structure, the base alignment of the structure is N , where From c8f6903b1d1e490463bf199bf503fcf2fe388eba Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 21 Jul 2016 15:43:00 -0600 Subject: [PATCH 020/217] Front-end: Fix default layout(component) widths and correct for doubles. Replaces PR #372. --- Test/440.vert | 20 ++++++++-------- Test/baseResults/440.vert.out | 26 ++++++++++++++++++++- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 7 +++++- glslang/MachineIndependent/linkValidate.cpp | 13 ++++++++--- 5 files changed, 52 insertions(+), 16 deletions(-) diff --git a/Test/440.vert b/Test/440.vert index c1a396fa..bfcdfd28 100644 --- a/Test/440.vert +++ b/Test/440.vert @@ -63,16 +63,16 @@ layout(location = 1, component = 1) out; // ERROR, no global set layout(location = 50, component = 3) out int be; layout(location = 50, component = 0) out vec3 bf; -//layout(location = 51, component = 1) out double dfo; // ERROR, odd component -//layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow -//layout(location = 53) out double dfo2; -//layout(location = 53, component = 2) out vec2 ffv2; // okay, fits -//layout(location = 54) out dvec4 dvec4out; // uses up location 55 too -//layout(location = 55) out float overf; // ERROR, collides with previous dvec4 -//layout(location = 56, component = 1) out vec2 df2o; -//layout(location = 56, component = 3) out float sf2o; -//layout(location = 57, component = 2) out vec2 dv3o; -//layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component +layout(location = 51, component = 1) out double dfo; // ERROR, odd component +layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow +layout(location = 53) out double dfo2; +layout(location = 53, component = 2) out vec2 ffv2; // okay, fits +layout(location = 54) out dvec4 dvec4out; // uses up location 55 too +layout(location = 55) out float overf; // ERROR, collides with previous dvec4 +layout(location = 56, component = 1) out vec2 df2o; +layout(location = 56, component = 3) out float sf2o; +layout(location = 57, component = 2) out vec2 dv3o; +layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component out bblck1 { vec4 bbv; diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index b5a8f2eb..d4cbb0b5 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -19,6 +19,10 @@ ERROR: 0:55: 'component' : type overflows the available 4 components ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration +ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component +ERROR: 0:67: 'component' : type overflows the available 4 components +ERROR: 0:71: 'location' : overlapping use of location 55 +ERROR: 0:75: 'location' : overlapping use of location 57 ERROR: 0:92: 'xfb layout qualifier' : can only be used on an output ERROR: 0:98: 'xfb_offset' : cannot declare a default, use a full declaration ERROR: 0:108: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) @@ -49,7 +53,7 @@ ERROR: 0:184: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shad ERROR: 0:185: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) ERROR: 0:186: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) ERROR: 0:187: 'glBaseInstanceARB' : undeclared identifier -ERROR: 49 compilation errors. No code generated. +ERROR: 53 compilation errors. No code generated. Shader version: 440 @@ -119,6 +123,16 @@ ERROR: node is still EOpNull! 0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss}) 0:? 'be' (layout(location=50 component=3 ) smooth out int) 0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float) +0:? 'dfo' (layout(location=51 component=1 ) smooth out double) +0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double) +0:? 'dfo2' (layout(location=53 ) smooth out double) +0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float) +0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double) +0:? 'overf' (layout(location=55 ) smooth out float) +0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float) +0:? 'sf2o' (layout(location=56 component=3 ) smooth out float) +0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float) +0:? 'sf4o' (layout(location=57 component=3 ) smooth out float) 0:? 'bbinst1' (out block{out 4-component vector of float bbv}) 0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv}) 0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv}) @@ -219,6 +233,16 @@ ERROR: node is still EOpNull! 0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss}) 0:? 'be' (layout(location=50 component=3 ) smooth out int) 0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float) +0:? 'dfo' (layout(location=51 component=1 ) smooth out double) +0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double) +0:? 'dfo2' (layout(location=53 ) smooth out double) +0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float) +0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double) +0:? 'overf' (layout(location=55 ) smooth out float) +0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float) +0:? 'sf2o' (layout(location=56 component=3 ) smooth out float) +0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float) +0:? 'sf4o' (layout(location=57 component=3 ) smooth out float) 0:? 'bbinst1' (out block{out 4-component vector of float bbv}) 0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv}) 0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv}) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 9d2eef71..8bc17dd4 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1331" +#define GLSLANG_REVISION "SPIRV99.1332" #define GLSLANG_DATE "21-Jul-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index b93d39d3..274f919c 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4475,12 +4475,17 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) } if (qualifier.hasComponent()) { // "It is a compile-time error if this sequence of components gets larger than 3." - if (qualifier.layoutComponent + type.getVectorSize() > 4) + if (qualifier.layoutComponent + type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1) > 4) error(loc, "type overflows the available 4 components", "component", ""); // "It is a compile-time error to apply the component qualifier to a matrix, a structure, a block, or an array containing any of these." if (type.isMatrix() || type.getBasicType() == EbtBlock || type.getBasicType() == EbtStruct) error(loc, "cannot apply to a matrix, structure, or block", "component", ""); + + // " It is a compile-time error to use component 1 or 3 as the beginning of a double or dvec2." + if (type.getBasicType() == EbtDouble) + if (qualifier.layoutComponent & 1) + error(loc, "doubles cannot start on an odd-numbered component", "component", ""); } switch (qualifier.storage) { diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index ce2a38ca..af21fbba 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -664,12 +664,19 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ size = computeTypeLocationSize(type); } + // locations... TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation + size - 1); + + // components in this location slot... TRange componentRange(0, 3); - if (qualifier.hasComponent()) { - componentRange.start = qualifier.layoutComponent; - componentRange.last = componentRange.start + type.getVectorSize() - 1; + if (qualifier.hasComponent() || type.getVectorSize() > 0) { + int consumedComponents = type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1); + if (qualifier.hasComponent()) + componentRange.start = qualifier.layoutComponent; + componentRange.last = componentRange.start + consumedComponents - 1; } + + // both... TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); // check for collisions, except for vertex inputs on desktop From b93e3a39576f755c59c1ed3127dbbcde4e446c1c Mon Sep 17 00:00:00 2001 From: Pyry Haulos Date: Fri, 22 Jul 2016 09:57:28 -0700 Subject: [PATCH 021/217] Remap Scope and MemorySemantics IDs in SPIRV remapper Scope and MemorySemantics operands contain IDs as well and may need remapping. --- SPIRV/SPVRemapper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 1bbd5892..05f220a1 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -440,6 +440,8 @@ namespace spv { for (int op = 0; numOperands > 0; ++op, --numOperands) { switch (spv::InstructionDesc[opCode].operands.getClass(op)) { case spv::OperandId: + case spv::OperandScope: + case spv::OperandMemorySemantics: idFn(asId(word++)); break; @@ -500,9 +502,7 @@ namespace spv { case spv::OperandSelect: case spv::OperandLoop: case spv::OperandFunction: - case spv::OperandMemorySemantics: case spv::OperandMemoryAccess: - case spv::OperandScope: case spv::OperandGroupOperation: case spv::OperandKernelEnqueueFlags: case spv::OperandKernelProfilingInfo: From a2f3d285a80fe3a69f8975e2eba6e0b2f0f5811d Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Fri, 22 Jul 2016 08:28:11 -0600 Subject: [PATCH 022/217] HLSL: Add gather, improve proto generator machine for upcoming 2DMS/Shadow --- .../hlsl.gather.array.dx10.frag.out | 359 +++++++++++++ .../hlsl.gather.basic.dx10.frag.out | 373 +++++++++++++ .../hlsl.gather.basic.dx10.vert.out | 374 +++++++++++++ .../hlsl.gather.offset.dx10.frag.out | 294 ++++++++++ .../hlsl.gather.offsetarray.dx10.frag.out | 259 +++++++++ .../hlsl.samplelevel.array.dx10.frag.out | 146 ++--- Test/hlsl.gather.array.dx10.frag | 43 ++ Test/hlsl.gather.basic.dx10.frag | 48 ++ Test/hlsl.gather.basic.dx10.vert | 46 ++ Test/hlsl.gather.offset.dx10.frag | 44 ++ Test/hlsl.gather.offsetarray.dx10.frag | 36 ++ Test/hlsl.samplelevel.array.dx10.frag | 34 +- gtests/Hlsl.FromFile.cpp | 5 + hlsl/hlslParseHelper.cpp | 29 + hlsl/hlslParseables.cpp | 505 +++++++++--------- 15 files changed, 2266 insertions(+), 329 deletions(-) create mode 100644 Test/baseResults/hlsl.gather.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gather.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gather.basic.dx10.vert.out create mode 100644 Test/baseResults/hlsl.gather.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.gather.array.dx10.frag create mode 100644 Test/hlsl.gather.basic.dx10.frag create mode 100644 Test/hlsl.gather.basic.dx10.vert create mode 100644 Test/hlsl.gather.offset.dx10.frag create mode 100644 Test/hlsl.gather.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out new file mode 100644 index 00000000..041af2d4 --- /dev/null +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -0,0 +1,359 @@ +hlsl.gather.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 'txval20' (temp 4-component vector of float) +0:29 textureGather (global 4-component vector of float) +0:29 Construct combined texture-sampler (temp sampler2DArray) +0:29 'g_tTex2df4a' (uniform texture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of int) +0:30 'txval21' (temp 4-component vector of int) +0:30 textureGather (global 4-component vector of int) +0:30 Construct combined texture-sampler (temp isampler2DArray) +0:30 'g_tTex2di4a' (uniform itexture2DArray) +0:30 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of uint) +0:31 'txval22' (temp 4-component vector of uint) +0:31 textureGather (global 4-component vector of uint) +0:31 Construct combined texture-sampler (temp usampler2DArray) +0:31 'g_tTex2du4a' (uniform utexture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGather (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4a' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGather (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4a' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGather (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4a' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 'txval20' (temp 4-component vector of float) +0:29 textureGather (global 4-component vector of float) +0:29 Construct combined texture-sampler (temp sampler2DArray) +0:29 'g_tTex2df4a' (uniform texture2DArray) +0:29 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of int) +0:30 'txval21' (temp 4-component vector of int) +0:30 textureGather (global 4-component vector of int) +0:30 Construct combined texture-sampler (temp isampler2DArray) +0:30 'g_tTex2di4a' (uniform itexture2DArray) +0:30 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of uint) +0:31 'txval22' (temp 4-component vector of uint) +0:31 textureGather (global 4-component vector of uint) +0:31 Construct combined texture-sampler (temp usampler2DArray) +0:31 'g_tTex2du4a' (uniform utexture2DArray) +0:31 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:35 'txval40' (temp 4-component vector of float) +0:35 textureGather (global 4-component vector of float) +0:35 Construct combined texture-sampler (temp samplerCubeArray) +0:35 'g_tTexcdf4a' (uniform textureCubeArray) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of int) +0:36 'txval41' (temp 4-component vector of int) +0:36 textureGather (global 4-component vector of int) +0:36 Construct combined texture-sampler (temp isamplerCubeArray) +0:36 'g_tTexcdi4a' (uniform itextureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of uint) +0:37 'txval42' (temp 4-component vector of uint) +0:37 textureGather (global 4-component vector of uint) +0:37 Construct combined texture-sampler (temp usamplerCubeArray) +0:37 'g_tTexcdu4a' (uniform utextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:? 1.000000 +0:40 move second child to first child (temp float) +0:40 Depth: direct index for structure (temp float FragDepth) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 1 (const int) +0:40 Constant: +0:40 1.000000 +0:42 Branch: Return with expression +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 108 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 30 "txval21" + Name 33 "g_tTex2di4a" + Name 45 "txval22" + Name 48 "g_tTex2du4a" + Name 57 "txval40" + Name 60 "g_tTexcdf4a" + Name 67 "txval41" + Name 70 "g_tTexcdi4a" + Name 77 "txval42" + Name 80 "g_tTexcdu4a" + Name 90 "PS_OUTPUT" + MemberName 90(PS_OUTPUT) 0 "Color" + MemberName 90(PS_OUTPUT) 1 "Depth" + Name 92 "psout" + Name 100 "g_tTex1df4a" + Name 101 "g_tTex1df4" + Name 104 "g_tTex1di4a" + Name 107 "g_tTex1du4a" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 33(g_tTex2di4a) DescriptorSet 0 + Decorate 48(g_tTex2du4a) DescriptorSet 0 + Decorate 60(g_tTexcdf4a) DescriptorSet 0 + Decorate 70(g_tTexcdi4a) DescriptorSet 0 + Decorate 80(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 100(g_tTex1df4a) DescriptorSet 0 + Decorate 101(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1di4a) DescriptorSet 0 + Decorate 107(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 20(fvec3) ConstantComposite 21 22 23 + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 28: TypeVector 25(int) 4 + 29: TypePointer Function 28(ivec4) + 31: TypeImage 25(int) 2D array sampled format:Unknown + 32: TypePointer UniformConstant 31 + 33(g_tTex2di4a): 32(ptr) Variable UniformConstant + 36: TypeSampledImage 31 + 38: 6(float) Constant 1053609165 + 39: 6(float) Constant 1056964608 + 40: 20(fvec3) ConstantComposite 23 38 39 + 42: TypeInt 32 0 + 43: TypeVector 42(int) 4 + 44: TypePointer Function 43(ivec4) + 46: TypeImage 42(int) 2D array sampled format:Unknown + 47: TypePointer UniformConstant 46 + 48(g_tTex2du4a): 47(ptr) Variable UniformConstant + 51: TypeSampledImage 46 + 53: 6(float) Constant 1058642330 + 54: 6(float) Constant 1060320051 + 55: 20(fvec3) ConstantComposite 39 53 54 + 58: TypeImage 6(float) Cube array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTexcdf4a): 59(ptr) Variable UniformConstant + 63: TypeSampledImage 58 + 65: 7(fvec4) ConstantComposite 21 22 23 38 + 68: TypeImage 25(int) Cube array sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4a): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 7(fvec4) ConstantComposite 38 39 53 54 + 78: TypeImage 42(int) Cube array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4a): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1061997773 + 86: 6(float) Constant 1063675494 + 87: 6(float) Constant 1065353216 + 88: 7(fvec4) ConstantComposite 54 85 86 87 + 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 91: TypePointer Function 90(PS_OUTPUT) + 93: 25(int) Constant 1 + 94: TypePointer Function 6(float) + 98: TypeImage 6(float) 1D array sampled format:Unknown + 99: TypePointer UniformConstant 98 +100(g_tTex1df4a): 99(ptr) Variable UniformConstant + 101(g_tTex1df4): 99(ptr) Variable UniformConstant + 102: TypeImage 25(int) 1D array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1di4a): 103(ptr) Variable UniformConstant + 105: TypeImage 42(int) 1D array sampled format:Unknown + 106: TypePointer UniformConstant 105 +107(g_tTex1du4a): 106(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 30(txval21): 29(ptr) Variable Function + 45(txval22): 44(ptr) Variable Function + 57(txval40): 8(ptr) Variable Function + 67(txval41): 29(ptr) Variable Function + 77(txval42): 44(ptr) Variable Function + 92(psout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 27: 7(fvec4) ImageGather 19 24 26 + Store 9(txval20) 27 + 34: 31 Load 33(g_tTex2di4a) + 35: 14 Load 16(g_sSamp) + 37: 36 SampledImage 34 35 + 41: 28(ivec4) ImageGather 37 40 26 + Store 30(txval21) 41 + 49: 46 Load 48(g_tTex2du4a) + 50: 14 Load 16(g_sSamp) + 52: 51 SampledImage 49 50 + 56: 43(ivec4) ImageGather 52 55 26 + Store 45(txval22) 56 + 61: 58 Load 60(g_tTexcdf4a) + 62: 14 Load 16(g_sSamp) + 64: 63 SampledImage 61 62 + 66: 7(fvec4) ImageGather 64 65 26 + Store 57(txval40) 66 + 71: 68 Load 70(g_tTexcdi4a) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 28(ivec4) ImageGather 74 75 26 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4a) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 43(ivec4) ImageGather 84 88 26 + Store 77(txval42) 89 + 95: 94(ptr) AccessChain 92(psout) 93 + Store 95 87 + 96:90(PS_OUTPUT) Load 92(psout) + ReturnValue 96 + FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out new file mode 100644 index 00000000..1e51f292 --- /dev/null +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -0,0 +1,373 @@ +hlsl.gather.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGather (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGather (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGather (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval40' (temp 4-component vector of float) +0:40 textureGather (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp samplerCube) +0:40 'g_tTexcdf4' (uniform textureCube) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval41' (temp 4-component vector of int) +0:41 textureGather (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isamplerCube) +0:41 'g_tTexcdi4' (uniform itextureCube) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval42' (temp 4-component vector of uint) +0:42 textureGather (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usamplerCube) +0:42 'g_tTexcdu4' (uniform utextureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 move second child to first child (temp float) +0:45 Depth: direct index for structure (temp float FragDepth) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 1.000000 +0:47 Branch: Return with expression +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Parameters: +0:? Sequence +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of float) +0:34 'txval20' (temp 4-component vector of float) +0:34 textureGather (global 4-component vector of float) +0:34 Construct combined texture-sampler (temp sampler2D) +0:34 'g_tTex2df4' (uniform texture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of int) +0:35 'txval21' (temp 4-component vector of int) +0:35 textureGather (global 4-component vector of int) +0:35 Construct combined texture-sampler (temp isampler2D) +0:35 'g_tTex2di4' (uniform itexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:36 Sequence +0:36 move second child to first child (temp 4-component vector of uint) +0:36 'txval22' (temp 4-component vector of uint) +0:36 textureGather (global 4-component vector of uint) +0:36 Construct combined texture-sampler (temp usampler2D) +0:36 'g_tTex2du4' (uniform utexture2D) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval40' (temp 4-component vector of float) +0:40 textureGather (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp samplerCube) +0:40 'g_tTexcdf4' (uniform textureCube) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval41' (temp 4-component vector of int) +0:41 textureGather (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isamplerCube) +0:41 'g_tTexcdi4' (uniform itextureCube) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval42' (temp 4-component vector of uint) +0:42 textureGather (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usamplerCube) +0:42 'g_tTexcdu4' (uniform utextureCube) +0:42 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:45 move second child to first child (temp float) +0:45 Depth: direct index for structure (temp float FragDepth) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 1 (const int) +0:45 Constant: +0:45 1.000000 +0:47 Branch: Return with expression +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 119 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 29 "txval21" + Name 32 "g_tTex2di4" + Name 44 "txval22" + Name 47 "g_tTex2du4" + Name 56 "txval40" + Name 59 "g_tTexcdf4" + Name 67 "txval41" + Name 70 "g_tTexcdi4" + Name 77 "txval42" + Name 80 "g_tTexcdu4" + Name 90 "PS_OUTPUT" + MemberName 90(PS_OUTPUT) 0 "Color" + MemberName 90(PS_OUTPUT) 1 "Depth" + Name 92 "psout" + Name 99 "g_sSamp2d" + Name 102 "g_tTex1df4a" + Name 103 "g_tTex1df4" + Name 106 "g_tTex1di4" + Name 109 "g_tTex1du4" + Name 112 "g_tTex3df4" + Name 115 "g_tTex3di4" + Name 118 "g_tTex3du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex2di4) DescriptorSet 0 + Decorate 47(g_tTex2du4) DescriptorSet 0 + Decorate 59(g_tTexcdf4) DescriptorSet 0 + Decorate 70(g_tTexcdi4) DescriptorSet 0 + Decorate 80(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 99(g_sSamp2d) DescriptorSet 0 + Decorate 102(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4) DescriptorSet 0 + Decorate 106(g_tTex1di4) DescriptorSet 0 + Decorate 109(g_tTex1du4) DescriptorSet 0 + Decorate 112(g_tTex3df4) DescriptorSet 0 + Decorate 115(g_tTex3di4) DescriptorSet 0 + Decorate 118(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 6(float) Constant 1053609165 + 39: 20(fvec2) ConstantComposite 37 38 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1056964608 + 53: 6(float) Constant 1058642330 + 54: 20(fvec2) ConstantComposite 52 53 + 57: TypeImage 6(float) Cube sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTexcdf4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 64(fvec3) ConstantComposite 21 22 37 + 68: TypeImage 24(int) Cube sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 64(fvec3) ConstantComposite 38 52 53 + 78: TypeImage 41(int) Cube sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1060320051 + 86: 6(float) Constant 1061997773 + 87: 6(float) Constant 1063675494 + 88: 64(fvec3) ConstantComposite 85 86 87 + 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 91: TypePointer Function 90(PS_OUTPUT) + 93: 24(int) Constant 1 + 94: 6(float) Constant 1065353216 + 95: TypePointer Function 6(float) + 99(g_sSamp2d): 15(ptr) Variable UniformConstant + 100: TypeImage 6(float) 1D sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex1df4a): 101(ptr) Variable UniformConstant + 103(g_tTex1df4): 101(ptr) Variable UniformConstant + 104: TypeImage 24(int) 1D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex1di4): 105(ptr) Variable UniformConstant + 107: TypeImage 41(int) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex1du4): 108(ptr) Variable UniformConstant + 110: TypeImage 6(float) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3df4): 111(ptr) Variable UniformConstant + 113: TypeImage 24(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3di4): 114(ptr) Variable UniformConstant + 116: TypeImage 41(int) 3D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex3du4): 117(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 29(txval21): 28(ptr) Variable Function + 44(txval22): 43(ptr) Variable Function + 56(txval40): 8(ptr) Variable Function + 67(txval41): 28(ptr) Variable Function + 77(txval42): 43(ptr) Variable Function + 92(psout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval20) 26 + 33: 30 Load 32(g_tTex2di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageGather 36 39 25 + Store 29(txval21) 40 + 48: 45 Load 47(g_tTex2du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageGather 51 54 25 + Store 44(txval22) 55 + 60: 57 Load 59(g_tTexcdf4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 66: 7(fvec4) ImageGather 63 65 25 + Store 56(txval40) 66 + 71: 68 Load 70(g_tTexcdi4) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 27(ivec4) ImageGather 74 75 25 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 42(ivec4) ImageGather 84 88 25 + Store 77(txval42) 89 + 96: 95(ptr) AccessChain 92(psout) 93 + Store 96 94 + 97:90(PS_OUTPUT) Load 92(psout) + ReturnValue 97 + FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out new file mode 100644 index 00000000..9cc0bfd1 --- /dev/null +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -0,0 +1,374 @@ +hlsl.gather.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval20' (temp 4-component vector of float) +0:33 textureGather (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2D) +0:33 'g_tTex2df4' (uniform texture2D) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval21' (temp 4-component vector of int) +0:34 textureGather (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2D) +0:34 'g_tTex2di4' (uniform itexture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval22' (temp 4-component vector of uint) +0:35 textureGather (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2D) +0:35 'g_tTex2du4' (uniform utexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval40' (temp 4-component vector of float) +0:39 textureGather (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp samplerCube) +0:39 'g_tTexcdf4' (uniform textureCube) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval41' (temp 4-component vector of int) +0:40 textureGather (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isamplerCube) +0:40 'g_tTexcdi4' (uniform itextureCube) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval42' (temp 4-component vector of uint) +0:41 textureGather (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usamplerCube) +0:41 'g_tTexcdu4' (uniform utextureCube) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:43 move second child to first child (temp 4-component vector of float) +0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:43 Constant: +0:43 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:45 Branch: Return with expression +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval20' (temp 4-component vector of float) +0:33 textureGather (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2D) +0:33 'g_tTex2df4' (uniform texture2D) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval21' (temp 4-component vector of int) +0:34 textureGather (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2D) +0:34 'g_tTex2di4' (uniform itexture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval22' (temp 4-component vector of uint) +0:35 textureGather (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2D) +0:35 'g_tTex2du4' (uniform utexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval40' (temp 4-component vector of float) +0:39 textureGather (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp samplerCube) +0:39 'g_tTexcdf4' (uniform textureCube) +0:39 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval41' (temp 4-component vector of int) +0:40 textureGather (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isamplerCube) +0:40 'g_tTexcdi4' (uniform itextureCube) +0:40 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval42' (temp 4-component vector of uint) +0:41 textureGather (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usamplerCube) +0:41 'g_tTexcdu4' (uniform utextureCube) +0:41 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:43 move second child to first child (temp 4-component vector of float) +0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:43 Constant: +0:43 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:45 Branch: Return with expression +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 118 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 29 "txval21" + Name 32 "g_tTex2di4" + Name 44 "txval22" + Name 47 "g_tTex2du4" + Name 56 "txval40" + Name 59 "g_tTexcdf4" + Name 67 "txval41" + Name 70 "g_tTexcdi4" + Name 77 "txval42" + Name 80 "g_tTexcdu4" + Name 90 "VS_OUTPUT" + MemberName 90(VS_OUTPUT) 0 "Pos" + Name 92 "vsout" + Name 98 "g_sSamp2d" + Name 101 "g_tTex1df4a" + Name 102 "g_tTex1df4" + Name 105 "g_tTex1di4" + Name 108 "g_tTex1du4" + Name 111 "g_tTex3df4" + Name 114 "g_tTex3di4" + Name 117 "g_tTex3du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 32(g_tTex2di4) DescriptorSet 0 + Decorate 47(g_tTex2du4) DescriptorSet 0 + Decorate 59(g_tTexcdf4) DescriptorSet 0 + Decorate 70(g_tTexcdi4) DescriptorSet 0 + Decorate 80(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 98(g_sSamp2d) DescriptorSet 0 + Decorate 101(g_tTex1df4a) DescriptorSet 0 + Decorate 102(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1di4) DescriptorSet 0 + Decorate 108(g_tTex1du4) DescriptorSet 0 + Decorate 111(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 117(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 37: 6(float) Constant 1050253722 + 38: 6(float) Constant 1053609165 + 39: 20(fvec2) ConstantComposite 37 38 + 41: TypeInt 32 0 + 42: TypeVector 41(int) 4 + 43: TypePointer Function 42(ivec4) + 45: TypeImage 41(int) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2du4): 46(ptr) Variable UniformConstant + 50: TypeSampledImage 45 + 52: 6(float) Constant 1056964608 + 53: 6(float) Constant 1058642330 + 54: 20(fvec2) ConstantComposite 52 53 + 57: TypeImage 6(float) Cube sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTexcdf4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 64: TypeVector 6(float) 3 + 65: 64(fvec3) ConstantComposite 21 22 37 + 68: TypeImage 24(int) Cube sampled format:Unknown + 69: TypePointer UniformConstant 68 + 70(g_tTexcdi4): 69(ptr) Variable UniformConstant + 73: TypeSampledImage 68 + 75: 64(fvec3) ConstantComposite 38 52 53 + 78: TypeImage 41(int) Cube sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTexcdu4): 79(ptr) Variable UniformConstant + 83: TypeSampledImage 78 + 85: 6(float) Constant 1060320051 + 86: 6(float) Constant 1061997773 + 87: 6(float) Constant 1063675494 + 88: 64(fvec3) ConstantComposite 85 86 87 + 90(VS_OUTPUT): TypeStruct 7(fvec4) + 91: TypePointer Function 90(VS_OUTPUT) + 93: 6(float) Constant 0 + 94: 7(fvec4) ConstantComposite 93 93 93 93 + 98(g_sSamp2d): 15(ptr) Variable UniformConstant + 99: TypeImage 6(float) 1D sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex1df4a): 100(ptr) Variable UniformConstant + 102(g_tTex1df4): 100(ptr) Variable UniformConstant + 103: TypeImage 24(int) 1D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex1di4): 104(ptr) Variable UniformConstant + 106: TypeImage 41(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1du4): 107(ptr) Variable UniformConstant + 109: TypeImage 6(float) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3df4): 110(ptr) Variable UniformConstant + 112: TypeImage 24(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 115: TypeImage 41(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 29(txval21): 28(ptr) Variable Function + 44(txval22): 43(ptr) Variable Function + 56(txval40): 8(ptr) Variable Function + 67(txval41): 28(ptr) Variable Function + 77(txval42): 43(ptr) Variable Function + 92(vsout): 91(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval20) 26 + 33: 30 Load 32(g_tTex2di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 40: 27(ivec4) ImageGather 36 39 25 + Store 29(txval21) 40 + 48: 45 Load 47(g_tTex2du4) + 49: 14 Load 16(g_sSamp) + 51: 50 SampledImage 48 49 + 55: 42(ivec4) ImageGather 51 54 25 + Store 44(txval22) 55 + 60: 57 Load 59(g_tTexcdf4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 66: 7(fvec4) ImageGather 63 65 25 + Store 56(txval40) 66 + 71: 68 Load 70(g_tTexcdi4) + 72: 14 Load 16(g_sSamp) + 74: 73 SampledImage 71 72 + 76: 27(ivec4) ImageGather 74 75 25 + Store 67(txval41) 76 + 81: 78 Load 80(g_tTexcdu4) + 82: 14 Load 16(g_sSamp) + 84: 83 SampledImage 81 82 + 89: 42(ivec4) ImageGather 84 88 25 + Store 77(txval42) 89 + 95: 8(ptr) AccessChain 92(vsout) 25 + Store 95 94 + 96:90(VS_OUTPUT) Load 92(vsout) + ReturnValue 96 + FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out new file mode 100644 index 00000000..d818d45b --- /dev/null +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -0,0 +1,294 @@ +hlsl.gather.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval20' (temp 4-component vector of float) +0:33 textureGatherOffset (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2D) +0:33 'g_tTex2df4' (uniform texture2D) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval21' (temp 4-component vector of int) +0:34 textureGatherOffset (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2D) +0:34 'g_tTex2di4' (uniform itexture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval22' (temp 4-component vector of uint) +0:35 textureGatherOffset (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2D) +0:35 'g_tTex2du4' (uniform utexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval20' (temp 4-component vector of float) +0:33 textureGatherOffset (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2D) +0:33 'g_tTex2df4' (uniform texture2D) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval21' (temp 4-component vector of int) +0:34 textureGatherOffset (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2D) +0:34 'g_tTex2di4' (uniform itexture2D) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval22' (temp 4-component vector of uint) +0:35 textureGatherOffset (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2D) +0:35 'g_tTex2du4' (uniform utexture2D) +0:35 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 98 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 32 "txval21" + Name 35 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 62 "PS_OUTPUT" + MemberName 62(PS_OUTPUT) 0 "Color" + MemberName 62(PS_OUTPUT) 1 "Depth" + Name 64 "psout" + Name 72 "g_tTex1df4a" + Name 73 "g_tTex1df4" + Name 76 "g_tTex1di4" + Name 79 "g_tTex1du4" + Name 82 "g_tTex3df4" + Name 85 "g_tTex3di4" + Name 88 "g_tTex3du4" + Name 91 "g_tTexcdf4" + Name 94 "g_tTexcdi4" + Name 97 "g_tTexcdu4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 35(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 72(g_tTex1df4a) DescriptorSet 0 + Decorate 73(g_tTex1df4) DescriptorSet 0 + Decorate 76(g_tTex1di4) DescriptorSet 0 + Decorate 79(g_tTex1du4) DescriptorSet 0 + Decorate 82(g_tTex3df4) DescriptorSet 0 + Decorate 85(g_tTex3di4) DescriptorSet 0 + Decorate 88(g_tTex3du4) DescriptorSet 0 + Decorate 91(g_tTexcdf4) DescriptorSet 0 + Decorate 94(g_tTexcdi4) DescriptorSet 0 + Decorate 97(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 20(fvec2) ConstantComposite 21 22 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 2 + 26: 24(int) Constant 1 + 27: 24(int) Constant 0 + 28: 25(ivec2) ConstantComposite 26 27 + 30: TypeVector 24(int) 4 + 31: TypePointer Function 30(ivec4) + 33: TypeImage 24(int) 2D sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex2di4): 34(ptr) Variable UniformConstant + 38: TypeSampledImage 33 + 40: 6(float) Constant 1050253722 + 41: 6(float) Constant 1053609165 + 42: 20(fvec2) ConstantComposite 40 41 + 43: 25(ivec2) ConstantComposite 26 26 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1056964608 + 57: 6(float) Constant 1058642330 + 58: 20(fvec2) ConstantComposite 56 57 + 59: 24(int) Constant 4294967295 + 60: 25(ivec2) ConstantComposite 26 59 + 62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 63: TypePointer Function 62(PS_OUTPUT) + 65: 6(float) Constant 1065353216 + 66: TypePointer Function 6(float) + 70: TypeImage 6(float) 1D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex1df4a): 71(ptr) Variable UniformConstant + 73(g_tTex1df4): 71(ptr) Variable UniformConstant + 74: TypeImage 24(int) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1di4): 75(ptr) Variable UniformConstant + 77: TypeImage 45(int) 1D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex1du4): 78(ptr) Variable UniformConstant + 80: TypeImage 6(float) 3D sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex3df4): 81(ptr) Variable UniformConstant + 83: TypeImage 24(int) 3D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex3di4): 84(ptr) Variable UniformConstant + 86: TypeImage 45(int) 3D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex3du4): 87(ptr) Variable UniformConstant + 89: TypeImage 6(float) Cube sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 92: TypeImage 24(int) Cube sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTexcdi4): 93(ptr) Variable UniformConstant + 95: TypeImage 45(int) Cube sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTexcdu4): 96(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 32(txval21): 31(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 64(psout): 63(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28 + Store 9(txval20) 29 + 36: 33 Load 35(g_tTex2di4) + 37: 14 Load 16(g_sSamp) + 39: 38 SampledImage 36 37 + 44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43 + Store 32(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60 + Store 48(txval22) 61 + 67: 66(ptr) AccessChain 64(psout) 26 + Store 67 65 + 68:62(PS_OUTPUT) Load 64(psout) + ReturnValue 68 + FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out new file mode 100644 index 00000000..8d00a592 --- /dev/null +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -0,0 +1,259 @@ +hlsl.gather.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of float) +0:25 'txval20' (temp 4-component vector of float) +0:25 textureGatherOffset (global 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler2DArray) +0:25 'g_tTex2df4' (uniform texture2DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of int) +0:26 'txval21' (temp 4-component vector of int) +0:26 textureGatherOffset (global 4-component vector of int) +0:26 Construct combined texture-sampler (temp isampler2DArray) +0:26 'g_tTex2di4' (uniform itexture2DArray) +0:26 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of uint) +0:27 'txval22' (temp 4-component vector of uint) +0:27 textureGatherOffset (global 4-component vector of uint) +0:27 Construct combined texture-sampler (temp usampler2DArray) +0:27 'g_tTex2du4' (uniform utexture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:33 move second child to first child (temp float) +0:33 Depth: direct index for structure (temp float FragDepth) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.000000 +0:35 Branch: Return with expression +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of float) +0:25 'txval20' (temp 4-component vector of float) +0:25 textureGatherOffset (global 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler2DArray) +0:25 'g_tTex2df4' (uniform texture2DArray) +0:25 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:? Constant: +0:? 1 (const int) +0:? 0 (const int) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of int) +0:26 'txval21' (temp 4-component vector of int) +0:26 textureGatherOffset (global 4-component vector of int) +0:26 Construct combined texture-sampler (temp isampler2DArray) +0:26 'g_tTex2di4' (uniform itexture2DArray) +0:26 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:? 0.400000 +0:? Constant: +0:? 1 (const int) +0:? 1 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of uint) +0:27 'txval22' (temp 4-component vector of uint) +0:27 textureGatherOffset (global 4-component vector of uint) +0:27 Construct combined texture-sampler (temp usampler2DArray) +0:27 'g_tTex2du4' (uniform utexture2DArray) +0:27 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:? 0.700000 +0:? Constant: +0:? 1 (const int) +0:? -1 (const int) +0:33 move second child to first child (temp float) +0:33 Depth: direct index for structure (temp float FragDepth) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.000000 +0:35 Branch: Return with expression +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4' (uniform itexture1DArray) +0:? 'g_tTex1du4' (uniform utexture1DArray) +0:? 'g_tTex2df4' (uniform texture2DArray) +0:? 'g_tTex2di4' (uniform itexture2DArray) +0:? 'g_tTex2du4' (uniform utexture2DArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 81 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval20" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 33 "txval21" + Name 36 "g_tTex2di4" + Name 48 "txval22" + Name 51 "g_tTex2du4" + Name 63 "PS_OUTPUT" + MemberName 63(PS_OUTPUT) 0 "Color" + MemberName 63(PS_OUTPUT) 1 "Depth" + Name 65 "psout" + Name 73 "g_tTex1df4a" + Name 74 "g_tTex1df4" + Name 77 "g_tTex1di4" + Name 80 "g_tTex1du4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 73(g_tTex1df4a) DescriptorSet 0 + Decorate 74(g_tTex1df4) DescriptorSet 0 + Decorate 77(g_tTex1di4) DescriptorSet 0 + Decorate 80(g_tTex1du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 20(fvec3) ConstantComposite 21 22 23 + 25: TypeInt 32 1 + 26: TypeVector 25(int) 2 + 27: 25(int) Constant 1 + 28: 25(int) Constant 0 + 29: 26(ivec2) ConstantComposite 27 28 + 31: TypeVector 25(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 25(int) 2D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 41: 6(float) Constant 1053609165 + 42: 20(fvec3) ConstantComposite 23 41 41 + 43: 26(ivec2) ConstantComposite 27 27 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 6(float) Constant 1056964608 + 57: 6(float) Constant 1058642330 + 58: 6(float) Constant 1060320051 + 59: 20(fvec3) ConstantComposite 56 57 58 + 60: 25(int) Constant 4294967295 + 61: 26(ivec2) ConstantComposite 27 60 + 63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 64: TypePointer Function 63(PS_OUTPUT) + 66: 6(float) Constant 1065353216 + 67: TypePointer Function 6(float) + 71: TypeImage 6(float) 1D array sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex1df4a): 72(ptr) Variable UniformConstant + 74(g_tTex1df4): 72(ptr) Variable UniformConstant + 75: TypeImage 25(int) 1D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex1di4): 76(ptr) Variable UniformConstant + 78: TypeImage 45(int) 1D array sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1du4): 79(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval20): 8(ptr) Variable Function + 33(txval21): 32(ptr) Variable Function + 48(txval22): 47(ptr) Variable Function + 65(psout): 64(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29 + Store 9(txval20) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43 + Store 33(txval21) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61 + Store 48(txval22) 62 + 68: 67(ptr) AccessChain 65(psout) 27 + Store 68 66 + 69:63(PS_OUTPUT) Load 65(psout) + ReturnValue 69 + FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index f7a6903b..aaf20fb1 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureLod (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_tTex1df4a' (uniform texture1DArray) 0:27 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:28 'txval11' (temp 4-component vector of int) 0:28 textureLod (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) -0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.200000 @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:29 'txval12' (temp 4-component vector of uint) 0:29 textureLod (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) -0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.300000 @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:31 'txval20' (temp 4-component vector of float) 0:31 textureLod (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) -0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:32 'txval21' (temp 4-component vector of int) 0:32 textureLod (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) -0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.300000 @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:33 'txval22' (temp 4-component vector of uint) 0:33 textureLod (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) -0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.500000 @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:35 'txval40' (temp 4-component vector of float) 0:35 textureLod (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) -0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:36 'txval41' (temp 4-component vector of int) 0:36 textureLod (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) -0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.400000 @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:37 'txval42' (temp 4-component vector of uint) 0:37 textureLod (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) -0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.700000 @@ -135,14 +135,14 @@ gl_FragCoord origin is upper left 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df4a' (uniform texture1DArray) 0:? 'g_tTex1df4' (uniform texture1DArray) -0:? 'g_tTex1di4' (uniform itexture1DArray) -0:? 'g_tTex1du4' (uniform utexture1DArray) -0:? 'g_tTex2df4' (uniform texture2DArray) -0:? 'g_tTex2di4' (uniform itexture2DArray) -0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'g_tTexcdf4' (uniform textureCubeArray) -0:? 'g_tTexcdi4' (uniform itextureCubeArray) -0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) Linked fragment stage: @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureLod (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) +0:27 'g_tTex1df4a' (uniform texture1DArray) 0:27 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:28 'txval11' (temp 4-component vector of int) 0:28 textureLod (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) -0:28 'g_tTex1di4' (uniform itexture1DArray) +0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.200000 @@ -183,7 +183,7 @@ gl_FragCoord origin is upper left 0:29 'txval12' (temp 4-component vector of uint) 0:29 textureLod (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) -0:29 'g_tTex1du4' (uniform utexture1DArray) +0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.300000 @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:31 'txval20' (temp 4-component vector of float) 0:31 textureLod (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) -0:31 'g_tTex2df4' (uniform texture2DArray) +0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -208,7 +208,7 @@ gl_FragCoord origin is upper left 0:32 'txval21' (temp 4-component vector of int) 0:32 textureLod (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) -0:32 'g_tTex2di4' (uniform itexture2DArray) +0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.300000 @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:33 'txval22' (temp 4-component vector of uint) 0:33 textureLod (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) -0:33 'g_tTex2du4' (uniform utexture2DArray) +0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.500000 @@ -234,7 +234,7 @@ gl_FragCoord origin is upper left 0:35 'txval40' (temp 4-component vector of float) 0:35 textureLod (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) -0:35 'g_tTexcdf4' (uniform textureCubeArray) +0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.100000 @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:36 'txval41' (temp 4-component vector of int) 0:36 textureLod (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) -0:36 'g_tTexcdi4' (uniform itextureCubeArray) +0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.400000 @@ -262,7 +262,7 @@ gl_FragCoord origin is upper left 0:37 'txval42' (temp 4-component vector of uint) 0:37 textureLod (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) -0:37 'g_tTexcdu4' (uniform utextureCubeArray) +0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (uniform sampler) 0:? Constant: 0:? 0.700000 @@ -284,14 +284,14 @@ gl_FragCoord origin is upper left 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df4a' (uniform texture1DArray) 0:? 'g_tTex1df4' (uniform texture1DArray) -0:? 'g_tTex1di4' (uniform itexture1DArray) -0:? 'g_tTex1du4' (uniform utexture1DArray) -0:? 'g_tTex2df4' (uniform texture2DArray) -0:? 'g_tTex2di4' (uniform itexture2DArray) -0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'g_tTexcdf4' (uniform textureCubeArray) -0:? 'g_tTexcdi4' (uniform itextureCubeArray) -0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) // Module Version 10000 // Generated by (magic number): 80001 @@ -307,41 +307,41 @@ gl_FragCoord origin is upper left Source HLSL 450 Name 4 "main" Name 9 "txval10" - Name 12 "g_tTex1df4" + Name 12 "g_tTex1df4a" Name 16 "g_sSamp" Name 29 "txval11" - Name 32 "g_tTex1di4" + Name 32 "g_tTex1di4a" Name 43 "txval12" - Name 46 "g_tTex1du4" + Name 46 "g_tTex1du4a" Name 54 "txval20" - Name 57 "g_tTex2df4" + Name 57 "g_tTex2df4a" Name 65 "txval21" - Name 68 "g_tTex2di4" + Name 68 "g_tTex2di4a" Name 76 "txval22" - Name 79 "g_tTex2du4" + Name 79 "g_tTex2du4a" Name 88 "txval40" - Name 91 "g_tTexcdf4" + Name 91 "g_tTexcdf4a" Name 98 "txval41" - Name 101 "g_tTexcdi4" + Name 101 "g_tTexcdi4a" Name 108 "txval42" - Name 111 "g_tTexcdu4" + Name 111 "g_tTexcdu4a" Name 121 "PS_OUTPUT" MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 129 "g_tTex1df4a" - Decorate 12(g_tTex1df4) DescriptorSet 0 + Name 129 "g_tTex1df4" + Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 - Decorate 32(g_tTex1di4) DescriptorSet 0 - Decorate 46(g_tTex1du4) DescriptorSet 0 - Decorate 57(g_tTex2df4) DescriptorSet 0 - Decorate 68(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 91(g_tTexcdf4) DescriptorSet 0 - Decorate 101(g_tTexcdi4) DescriptorSet 0 - Decorate 111(g_tTexcdu4) DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 46(g_tTex1du4a) DescriptorSet 0 + Decorate 57(g_tTex2df4a) DescriptorSet 0 + Decorate 68(g_tTex2di4a) DescriptorSet 0 + Decorate 79(g_tTex2du4a) DescriptorSet 0 + Decorate 91(g_tTexcdf4a) DescriptorSet 0 + Decorate 101(g_tTexcdi4a) DescriptorSet 0 + Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 129(g_tTex1df4a) DescriptorSet 0 + Decorate 129(g_tTex1df4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -349,7 +349,7 @@ gl_FragCoord origin is upper left 8: TypePointer Function 7(fvec4) 10: TypeImage 6(float) 1D array sampled format:Unknown 11: TypePointer UniformConstant 10 - 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 12(g_tTex1df4a): 11(ptr) Variable UniformConstant 14: TypeSampler 15: TypePointer UniformConstant 14 16(g_sSamp): 15(ptr) Variable UniformConstant @@ -364,7 +364,7 @@ gl_FragCoord origin is upper left 28: TypePointer Function 27(ivec4) 30: TypeImage 26(int) 1D array sampled format:Unknown 31: TypePointer UniformConstant 30 - 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant 35: TypeSampledImage 30 37: 6(float) Constant 1050253722 38: 20(fvec2) ConstantComposite 22 37 @@ -373,42 +373,42 @@ gl_FragCoord origin is upper left 42: TypePointer Function 41(ivec4) 44: TypeImage 40(int) 1D array sampled format:Unknown 45: TypePointer UniformConstant 44 - 46(g_tTex1du4): 45(ptr) Variable UniformConstant + 46(g_tTex1du4a): 45(ptr) Variable UniformConstant 49: TypeSampledImage 44 51: 6(float) Constant 1053609165 52: 20(fvec2) ConstantComposite 37 51 55: TypeImage 6(float) 2D array sampled format:Unknown 56: TypePointer UniformConstant 55 - 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 57(g_tTex2df4a): 56(ptr) Variable UniformConstant 60: TypeSampledImage 55 62: TypeVector 6(float) 3 63: 62(fvec3) ConstantComposite 21 22 37 66: TypeImage 26(int) 2D array sampled format:Unknown 67: TypePointer UniformConstant 66 - 68(g_tTex2di4): 67(ptr) Variable UniformConstant + 68(g_tTex2di4a): 67(ptr) Variable UniformConstant 71: TypeSampledImage 66 73: 6(float) Constant 1056964608 74: 62(fvec3) ConstantComposite 37 51 73 77: TypeImage 40(int) 2D array sampled format:Unknown 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant + 79(g_tTex2du4a): 78(ptr) Variable UniformConstant 82: TypeSampledImage 77 84: 6(float) Constant 1058642330 85: 6(float) Constant 1060320051 86: 62(fvec3) ConstantComposite 73 84 85 89: TypeImage 6(float) Cube array sampled format:Unknown 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4): 90(ptr) Variable UniformConstant + 91(g_tTexcdf4a): 90(ptr) Variable UniformConstant 94: TypeSampledImage 89 96: 7(fvec4) ConstantComposite 21 22 37 51 99: TypeImage 26(int) Cube array sampled format:Unknown 100: TypePointer UniformConstant 99 - 101(g_tTexcdi4): 100(ptr) Variable UniformConstant +101(g_tTexcdi4a): 100(ptr) Variable UniformConstant 104: TypeSampledImage 99 106: 7(fvec4) ConstantComposite 51 73 84 85 109: TypeImage 40(int) Cube array sampled format:Unknown 110: TypePointer UniformConstant 109 - 111(g_tTexcdu4): 110(ptr) Variable UniformConstant +111(g_tTexcdu4a): 110(ptr) Variable UniformConstant 114: TypeSampledImage 109 116: 6(float) Constant 1061997773 117: 6(float) Constant 1063675494 @@ -418,7 +418,7 @@ gl_FragCoord origin is upper left 122: TypePointer Function 121(PS_OUTPUT) 124: 26(int) Constant 1 125: TypePointer Function 6(float) -129(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -431,47 +431,47 @@ gl_FragCoord origin is upper left 98(txval41): 28(ptr) Variable Function 108(txval42): 42(ptr) Variable Function 123(psout): 122(ptr) Variable Function - 13: 10 Load 12(g_tTex1df4) + 13: 10 Load 12(g_tTex1df4a) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24 Store 9(txval10) 25 - 33: 30 Load 32(g_tTex1di4) + 33: 30 Load 32(g_tTex1di4a) 34: 14 Load 16(g_sSamp) 36: 35 SampledImage 33 34 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24 Store 29(txval11) 39 - 47: 44 Load 46(g_tTex1du4) + 47: 44 Load 46(g_tTex1du4a) 48: 14 Load 16(g_sSamp) 50: 49 SampledImage 47 48 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24 Store 43(txval12) 53 - 58: 55 Load 57(g_tTex2df4) + 58: 55 Load 57(g_tTex2df4a) 59: 14 Load 16(g_sSamp) 61: 60 SampledImage 58 59 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24 Store 54(txval20) 64 - 69: 66 Load 68(g_tTex2di4) + 69: 66 Load 68(g_tTex2di4a) 70: 14 Load 16(g_sSamp) 72: 71 SampledImage 69 70 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24 Store 65(txval21) 75 - 80: 77 Load 79(g_tTex2du4) + 80: 77 Load 79(g_tTex2du4a) 81: 14 Load 16(g_sSamp) 83: 82 SampledImage 80 81 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24 Store 76(txval22) 87 - 92: 89 Load 91(g_tTexcdf4) + 92: 89 Load 91(g_tTexcdf4a) 93: 14 Load 16(g_sSamp) 95: 94 SampledImage 92 93 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24 Store 88(txval40) 97 - 102: 99 Load 101(g_tTexcdi4) + 102: 99 Load 101(g_tTexcdi4a) 103: 14 Load 16(g_sSamp) 105: 104 SampledImage 102 103 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24 Store 98(txval41) 107 - 112: 109 Load 111(g_tTexcdu4) + 112: 109 Load 111(g_tTexcdu4a) 113: 14 Load 16(g_sSamp) 115: 114 SampledImage 112 113 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 diff --git a/Test/hlsl.gather.array.dx10.frag b/Test/hlsl.gather.array.dx10.frag new file mode 100644 index 00000000..788c333b --- /dev/null +++ b/Test/hlsl.gather.array.dx10.frag @@ -0,0 +1,43 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // No 1D gathers + + float4 txval20 = g_tTex2df4a . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval21 = g_tTex2di4a . Gather(g_sSamp, float3(0.3, 0.4, 0.5)); + uint4 txval22 = g_tTex2du4a . Gather(g_sSamp, float3(0.5, 0.6, 0.7)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . Gather(g_sSamp, float4(0.1, 0.2, 0.3, 0.4)); + int4 txval41 = g_tTexcdi4a . Gather(g_sSamp, float4(0.4, 0.5, 0.6, 0.7)); + uint4 txval42 = g_tTexcdu4a . Gather(g_sSamp, float4(0.7, 0.8, 0.9, 1.0)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gather.basic.dx10.frag b/Test/hlsl.gather.basic.dx10.frag new file mode 100644 index 00000000..be0cd31f --- /dev/null +++ b/Test/hlsl.gather.basic.dx10.frag @@ -0,0 +1,48 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gather.basic.dx10.vert b/Test/hlsl.gather.basic.dx10.vert new file mode 100644 index 00000000..4996f18c --- /dev/null +++ b/Test/hlsl.gather.basic.dx10.vert @@ -0,0 +1,46 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + // no 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6)); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9)); + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/Test/hlsl.gather.offset.dx10.frag b/Test/hlsl.gather.offset.dx10.frag new file mode 100644 index 00000000..4d095c0e --- /dev/null +++ b/Test/hlsl.gather.offset.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D Gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2), int2(1,0)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6), int2(1,-1)); + + // no 3D gathers + // No Cube offset gathers + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gather.offsetarray.dx10.frag b/Test/hlsl.gather.offsetarray.dx10.frag new file mode 100644 index 00000000..5cc92525 --- /dev/null +++ b/Test/hlsl.gather.offsetarray.dx10.frag @@ -0,0 +1,36 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4; +Texture1DArray g_tTex1du4; + +Texture2DArray g_tTex2df4; +Texture2DArray g_tTex2di4; +Texture2DArray g_tTex2du4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // No 1D gathers + + float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3), int2(1,0)); + int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float3(0.3, 0.4, 0.4), int2(1,1)); + uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float3(0.5, 0.6, 0.7), int2(1,-1)); + + // No 3D gathers + // No Cube offset gathers + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.samplelevel.array.dx10.frag b/Test/hlsl.samplelevel.array.dx10.frag index 68dbdde3..c52aeb29 100644 --- a/Test/hlsl.samplelevel.array.dx10.frag +++ b/Test/hlsl.samplelevel.array.dx10.frag @@ -3,16 +3,16 @@ SamplerState g_sSamp : register(s0); Texture1DArray g_tTex1df4a : register(t1); uniform Texture1DArray g_tTex1df4 : register(t0); -Texture1DArray g_tTex1di4; -Texture1DArray g_tTex1du4; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; -Texture2DArray g_tTex2df4; -Texture2DArray g_tTex2di4; -Texture2DArray g_tTex2du4; +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; -TextureCubeArray g_tTexcdf4; -TextureCubeArray g_tTexcdi4; -TextureCubeArray g_tTexcdu4; +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; struct PS_OUTPUT { @@ -24,17 +24,17 @@ PS_OUTPUT main() { PS_OUTPUT psout; - float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); - int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); - uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); + float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75); + int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75); + uint4 txval12 = g_tTex1du4a . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75); - float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); - int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); - uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); + float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75); + int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75); + uint4 txval22 = g_tTex2du4a . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75); - float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); - int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); - uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); + float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75); + int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75); + uint4 txval42 = g_tTexcdu4a . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75); psout.Color = 1.0; psout.Depth = 1.0; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 900aee7f..ded91c82 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -81,6 +81,11 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, + {"hlsl.gather.array.dx10.frag", "main"}, + {"hlsl.gather.basic.dx10.frag", "main"}, + {"hlsl.gather.basic.dx10.vert", "main"}, + {"hlsl.gather.offset.dx10.frag", "main"}, + {"hlsl.gather.offsetarray.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 83817eaa..629be28a 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1221,6 +1221,35 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodGather: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + + // Offset is optional + if (argAggregate->getSequence().size() == 4) + argOffset = argAggregate->getSequence()[3]->getAsTyped(); + + const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset); + TIntermAggregate* txgather = new TIntermAggregate(textureOp); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + txgather->getSequence().push_back(txcombine); + txgather->getSequence().push_back(argCoord); + + if (argOffset != nullptr) + txgather->getSequence().push_back(argOffset); + + txgather->setType(node->getType()); + txgather->setLoc(loc); + node = txgather; + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index a3bc3295..9f6af891 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -68,6 +68,7 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } +bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } // bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... @@ -95,6 +96,14 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim return true; } + // Reject invalid Gathers + if (name == "Gather") { + if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers + return true; + if (dim0 == 4 && numArgs == 4) // there are no Cube gathers with offset + return true; + } + // Reject invalid Loads if (name == "Load" && dim0 == 4) return true; // Load does not support any cubemaps, arrayed or not. @@ -119,6 +128,29 @@ bool HasMipInCoord(const glslang::TString& name) return name == "Load"; } +// Handle IO params marked with > or < +const char* IoParam(glslang::TString& s, const char* nthArgOrder) +{ + if (*nthArgOrder == '>') { // output params + ++nthArgOrder; + s.append("out "); + } else if (*nthArgOrder == '<') { // input params + ++nthArgOrder; + s.append("in "); + } + + return nthArgOrder; +} + +// Handle repeated args +void HandleRepeatArg(const char*& arg, const char*& prev, const char* current) +{ + if (*arg == ',' || *arg == '\0') + arg = prev; + else + prev = current; +} + // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. // @@ -132,19 +164,16 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isMatMul = (argOrder[0] == '#'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); + const bool isSampler = IsSamplerType(argType[0]); //const bool isMS = IsTextureMS(argOrder[0]); - char order = *argOrder; char type = *argType; if (isTranspose) { // Take transpose of matrix dimensions - order = *++argOrder; std::swap(dim0, dim1); } else if (isMatMul) { - order = *++argOrder; dim0 = dim1; // set vector dimension to mat col } else if (isTexture) { - order = *++argOrder; if (type == 'F') // map base type to texture of that type. type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. else if (type == 'I') @@ -153,6 +182,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons type = 'u'; } + while (!isalpha(*argOrder)) + ++argOrder; + + char order = *argOrder; + if (UseHlslTypes) { switch (type) { case '-': s += "void"; break; @@ -197,8 +231,8 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons dim0 = dim1 = fixedVecSize; // Add sampler dimensions - if (type == 'S' || isTexture) { - if (order == 'V') { + if (isSampler || isTexture) { + if (order == 'V' || isTexture) { switch (dim0) { case 1: s += "1D"; break; case 2: s += "2D"; break; @@ -378,7 +412,9 @@ void TBuiltInParseablesHlsl::createMatTimesMat() // void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/) { - static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); + static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); + static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); + static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); // This structure encodes the prototype information for each HLSL intrinsic. // Because explicit enumeration would be cumbersome, it's procedurally generated. @@ -402,255 +438,244 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c const char* argType; // argument type key unsigned int stage; // stage mask } hlslIntrinsics[] = { - // name retOrd retType argOrder argType stage mask + // name retOrd retType argOrder argType stage mask // ----------------------------------------------------------------------------------------------- - { "abort", nullptr, nullptr, "-", "-", EShLangAll }, - { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, - { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "all", "S", "B", "SVM", "BFI", EShLangAll }, - { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "any", "S", "B", "SVM", "BFI", EShLangAll }, - { "asdouble", "S", "D", "S,", "U,", EShLangAll }, - { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, - { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, - { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, - { "asuint", nullptr, "U", "SVM", "FU", EShLangAll }, - { "atan", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangFragmentMask | EShLangComputeMask }, - { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, - { "clip", "-", "-", "SVM", "F", EShLangFragmentMask }, - { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, - { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, - { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, - { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "determinant", "S", "F", "M", "F", EShLangAll }, - { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangFragmentMask | EShLangComputeMask }, - { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "distance", "S", "F", "V,", "F,", EShLangAll }, - { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, - { "dst", nullptr, nullptr, "V4,V4", "F,", EShLangAll }, - // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, - { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask }, - { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, - { "f32tof16", nullptr, "U", "SV", "F", EShLangAll }, - { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll }, - { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll }, - { "floor", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll }, - { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, - { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, - { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, - { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, - { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, - { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, - { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, - { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "length", "S", "F", "V", "F", EShLangAll }, - { "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, - { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, - { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, - { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, - { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, - { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, - { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, - { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, - { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, - { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, - { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, - { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, - { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll }, - { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, - { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll }, + { "abort", nullptr, nullptr, "-", "-", EShLangAll }, + { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, + { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "all", "S", "B", "SVM", "BFI", EShLangAll }, + { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "any", "S", "B", "SVM", "BFI", EShLangAll }, + { "asdouble", "S", "D", "S,", "U,", EShLangAll }, + { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, + { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, + { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, + { "asuint", nullptr, "U", "SVM", "FU", EShLangAll }, + { "atan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS }, + { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, + { "clip", "-", "-", "SVM", "F", EShLangFragmentMask }, + { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, + { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, + { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "determinant", "S", "F", "M", "F", EShLangAll }, + { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS }, + { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "distance", "S", "F", "V,", "F,", EShLangAll }, + { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, + { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll }, + // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask }, + { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, + { "f32tof16", nullptr, "U", "SV", "F", EShLangAll }, + { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll }, + { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "floor", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll }, + { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, + { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, + { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS }, + { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS }, + { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, + { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS }, + { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, + { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "length", "S", "F", "V", "F", EShLangAll }, + { "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, + { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, + { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, + { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, + { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, + { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, + { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, + { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, + { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, + { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, + { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, + { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, + { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll }, + { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, + { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll }, // mat*mat form of mul is handled in createMatTimesMat() - { "noise", "S", "F", "V", "F", EShLangFragmentMask }, - { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, - { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, - { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, - { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, - { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, - { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll }, - { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, - { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll }, - { "sin", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll }, - { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, - { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask }, - { "tex1D", "V4", "F", "V1,S,V1,V1", "S,F,F,F",EShLangFragmentMask }, - { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dgrad", "V4", "F", "V1,V1,V1,V1","S,F,F,F",EShLangFragmentMask }, - { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "V2,V2", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, - { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dgrad", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, - { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "V3,V3", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dgrad", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "texCUBEbias", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, - { "texCUBEgrad", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, - { "texCUBElod", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, - { "texCUBEproj", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask }, - { "transpose", "^M", nullptr, "M", "F", EShLangAll }, - { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "noise", "S", "F", "V", "F", EShLangFragmentMask }, + { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, + { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, + { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, + { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, + { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, + { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, + { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll }, + { "sin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll }, + { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, + { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask }, + { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangFragmentMask }, + { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangFragmentMask }, + { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "V2,", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask }, + { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask }, + { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "V3,", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask }, + { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask }, + { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask }, + { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, + { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask }, + { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, + { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, + { "transpose", "^M", nullptr, "M", "F", EShLangAll }, + { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // Texture object methods. Return type can be overridden by shader declaration. - // !O = no offset, O = offset, !A = no array, A = array - { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, - { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask }, + // !O = no offset, O = offset + { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangFragmentMask }, + { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangFragmentMask }, - { "SampleBias", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - { "SampleBias", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, - { "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask }, - { "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask }, + { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangFragmentMask }, + { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangFragmentMask }, // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmp", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, - { "SampleCmp", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, - { "SampleCmp", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, - { "SampleCmp", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangFragmentMask }, + { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangFragmentMask }, // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmpLevelZero", /*!O !A*/ "S", "F", "%V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, - { "SampleCmpLevelZero", /* O !A*/ "S", "F", "%V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, - { "SampleCmpLevelZero", /*!O A*/ "S", "F", "@V,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, - { "SampleCmpLevelZero", /* O A*/ "S", "F", "@V,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, + { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, - { "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, - { "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, - { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll }, - { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll }, + { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll }, + { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll }, - { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangAll }, - { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, - { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangAll }, - { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangAll }, + { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll }, + { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, - { "Load", /*!O !A*/ "V4", nullptr, "%V,V", "FIU,I", EShLangAll }, - { "Load", /*!O A*/ "V4", nullptr, "@V,V", "FIU,I", EShLangAll }, - { "Load", /* O !A*/ "V4", nullptr, "%V,V,V", "FIU,I,I", EShLangAll }, - { "Load", /* O A*/ "V4", nullptr, "@V,V,V", "FIU,I,I", EShLangAll }, + { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, + { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, // TODO: MS variants of Load - // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, - // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, + // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, + // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, + + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS }, + { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS }, // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels - { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,U", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,F", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,U,U", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,F,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll }, // UINT Width, UINT Elements // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,U,U", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,F,F", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,U,U", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,F,F", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,U,U,U", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,F,F,F", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // UINT Width, UINT Height, UINT Depth // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels - { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,U,U,U", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,F,F,F", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,U,U", EShLangAll }, - { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,F,F", EShLangAll }, - { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll }, - { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,U,U,U", EShLangAll }, - { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,F,F,F", EShLangAll }, - { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll }, - { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll }, + { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // TODO: GetDimensions for Texture2DMS, Texture2DMSArray // UINT Width, UINT Height, UINT Samples @@ -709,6 +734,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c s.append(intrinsic.name); // intrinsic name s.append("("); // open paren + const char* prevArgOrder = nullptr; + const char* prevArgType = nullptr; + // Append argument types, if any. for (int arg = 0; ; ++arg) { const char* nthArgOrder(NthArg(argOrder, arg)); @@ -720,6 +748,18 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // cube textures use vec3 coordinates int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0; + s.append(arg > 0 ? ", ": ""); // comma separator if needed + + const char* orderBegin = nthArgOrder; + nthArgOrder = IoParam(s, nthArgOrder); + + // Comma means use the previous argument order and type. + HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin); + HandleRepeatArg(nthArgType, prevArgType, nthArgType); + + // In case the repeated arg has its own I/O marker + nthArgOrder = IoParam(s, nthArgOrder); + // arrayed textures have one extra coordinate dimension if (isArrayed && arg == coordArg) argDim0++; @@ -732,34 +772,20 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V') nthArgOrder = "S"; - s.append(arg > 0 ? ", ": ""); // comma separator if needed - - if (*nthArgOrder == '>') { // output params - ++nthArgOrder; - s.append("out "); - } else if (*nthArgOrder == '<') { // input params - ++nthArgOrder; - s.append("in "); - } - - // Comma means use the 1st argument order and type. - if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder; - if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType; - AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments } s.append(");\n"); // close paren and trailing semicolon - } - } - } + } // dim 1 loop + } // dim 0 loop + } // arg type loop // skip over special characters - if (isTexture) + if (isTexture && isalpha(argOrder[1])) ++argOrder; if (isdigit(argOrder[1])) ++argOrder; - } + } // arg order loop if (intrinsic.stage == EShLangAll) // common builtins are only added once. break; @@ -946,6 +972,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); symbolTable.relateToOperator("Load", EOpMethodLoad); symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); + symbolTable.relateToOperator("Gather", EOpMethodGather); } // From 6256146ef3a671c2cb485468cd75f7021f519e13 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Fri, 22 Jul 2016 20:46:03 -0600 Subject: [PATCH 023/217] HLSL: enable #line extension by default for HLSL source. --- Test/baseResults/hlsl.pp.line.frag.out | 124 +++++++++++++++++++++ Test/hlsl.pp.line.frag | 24 ++++ glslang/MachineIndependent/parseVersions.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 8 ++ hlsl/hlslParseHelper.h | 3 +- 6 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 Test/baseResults/hlsl.pp.line.frag.out create mode 100644 Test/hlsl.pp.line.frag diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out new file mode 100644 index 00000000..6484eb0d --- /dev/null +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -0,0 +1,124 @@ +hlsl.pp.line.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Parameters: +0:? Sequence +0:124 Sequence +0:124 move second child to first child (temp int) +0:124 'thisLineIs' (temp int) +0:124 Constant: +0:124 124 (const int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 Color: direct index for structure (temp 4-component vector of float) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Constant: +0:126 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:126 Convert int to float (temp float) +0:126 'thisLineIs' (temp int) +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 1.000000 +0:127 move second child to first child (temp float) +0:127 Depth: direct index for structure (temp float FragDepth) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 1.000000 +0:129 Branch: Return with expression +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Parameters: +0:? Sequence +0:124 Sequence +0:124 move second child to first child (temp int) +0:124 'thisLineIs' (temp int) +0:124 Constant: +0:124 124 (const int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 Color: direct index for structure (temp 4-component vector of float) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Constant: +0:126 0 (const int) +0:? Construct vec4 (temp 4-component vector of float) +0:126 Convert int to float (temp float) +0:126 'thisLineIs' (temp int) +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 1.000000 +0:127 move second child to first child (temp float) +0:127 Depth: direct index for structure (temp float FragDepth) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 Constant: +0:127 1 (const int) +0:127 Constant: +0:127 1.000000 +0:129 Branch: Return with expression +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 28 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "thisLineIs" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "Color" + MemberName 12(PS_OUTPUT) 1 "Depth" + Name 14 "psout" + MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 124 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) 10(float) + 13: TypePointer Function 12(PS_OUTPUT) + 15: 6(int) Constant 0 + 18: 10(float) Constant 0 + 19: 10(float) Constant 1065353216 + 21: TypePointer Function 11(fvec4) + 23: 6(int) Constant 1 + 24: TypePointer Function 10(float) + 4(main): 2 Function None 3 + 5: Label + 8(thisLineIs): 7(ptr) Variable Function + 14(psout): 13(ptr) Variable Function + Store 8(thisLineIs) 9 + 16: 6(int) Load 8(thisLineIs) + 17: 10(float) ConvertSToF 16 + 20: 11(fvec4) CompositeConstruct 17 18 18 19 + 22: 21(ptr) AccessChain 14(psout) 15 + Store 22 20 + 25: 24(ptr) AccessChain 14(psout) 23 + Store 25 19 + 26:12(PS_OUTPUT) Load 14(psout) + ReturnValue 26 + FunctionEnd diff --git a/Test/hlsl.pp.line.frag b/Test/hlsl.pp.line.frag new file mode 100644 index 00000000..6f0273dc --- /dev/null +++ b/Test/hlsl.pp.line.frag @@ -0,0 +1,24 @@ + +#line 1 + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +#line 2 + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + +#line 123 "SomeFile.frag" + + int thisLineIs = __LINE__; // gets 124 + + psout.Color = float4(thisLineIs, 0, 0, 1); + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index c0c89457..dc51682b 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -119,12 +119,12 @@ public: TIntermediate& intermediate; // helper for making and hooking up pieces of the parse tree protected: + TMap extensionBehavior; // for each extension string, what its current behavior is set to EShMessages messages; // errors/warnings/rule-sets int numErrors; // number of compile-time errors encountered TInputScanner* currentScanner; private: - TMap extensionBehavior; // for each extension string, what its current behavior is set to explicit TParseVersions(const TParseVersions&); TParseVersions& operator=(const TParseVersions&); }; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 900aee7f..3435816f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -100,6 +100,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.pp.line.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 83817eaa..50bc7311 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -88,6 +88,14 @@ HlslParseContext::~HlslParseContext() { } +void HlslParseContext::initializeExtensionBehavior() +{ + TParseContextBase::initializeExtensionBehavior(); + + // HLSL allows #line by default. + extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhEnable; +} + void HlslParseContext::setLimits(const TBuiltInResource& r) { resources = r; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index f1281319..a51a5091 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -47,6 +47,8 @@ public: int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~HlslParseContext(); + void initializeExtensionBehavior(); + void setLimits(const TBuiltInResource&); bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); void getPreamble(std::string&); @@ -184,7 +186,6 @@ protected: HlslParseContext(HlslParseContext&); HlslParseContext& operator=(HlslParseContext&); - TMap extensionBehavior; // for each extension string, what its current behavior is set to static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex() bool afterEOF; TQualifier globalBufferDefaults; From 3d157c510fc3bfefe675edf124633212b82d4845 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 25 Jul 2016 16:05:33 -0600 Subject: [PATCH 024/217] HLSL: cbuffer and tbuffer grammar and production. --- Test/baseResults/hlsl.buffer.frag.out | 153 ++++++++++++++++++++++++++ Test/hlsl.buffer.frag | 22 ++++ glslang/Include/revision.h | 4 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 53 +++++++-- hlsl/hlslParseHelper.cpp | 70 ++++++------ hlsl/hlslParseHelper.h | 4 +- hlsl/hlslScanContext.cpp | 5 + hlsl/hlslTokens.h | 2 + 9 files changed, 268 insertions(+), 46 deletions(-) create mode 100755 Test/baseResults/hlsl.buffer.frag.out create mode 100644 Test/hlsl.buffer.frag diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out new file mode 100755 index 00000000..a1452197 --- /dev/null +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -0,0 +1,153 @@ +hlsl.buffer.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:20 Function Parameters: +0:20 'input' (in 4-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 'input' (in 4-component vector of float) +0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:21 Constant: +0:21 0 (const uint) +0:21 add (temp 4-component vector of float) +0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:21 Constant: +0:21 0 (const uint) +0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:21 Constant: +0:21 0 (const uint) +0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) +0:21 Constant: +0:21 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:20 Function Parameters: +0:20 'input' (in 4-component vector of float) +0:? Sequence +0:21 Branch: Return with expression +0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 'input' (in 4-component vector of float) +0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:21 Constant: +0:21 0 (const uint) +0:21 add (temp 4-component vector of float) +0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:21 Constant: +0:21 0 (const uint) +0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:21 Constant: +0:21 0 (const uint) +0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) +0:21 Constant: +0:21 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "input" + Name 11 "" + MemberName 11 0 "v1" + Name 13 "" + Name 20 "" + MemberName 20 0 "v2" + Name 22 "" + Name 25 "" + MemberName 25 0 "v3" + MemberName 25 1 "i3" + Name 27 "" + Name 32 "" + MemberName 32 0 "v4" + MemberName 32 1 "i4" + Name 34 "" + MemberDecorate 11 0 Offset 0 + Decorate 11 Block + Decorate 13 DescriptorSet 0 + MemberDecorate 20 0 Offset 0 + Decorate 20 BufferBlock + Decorate 22 DescriptorSet 0 + MemberDecorate 25 0 Offset 0 + MemberDecorate 25 1 Offset 16 + Decorate 25 Block + Decorate 27 DescriptorSet 0 + MemberDecorate 32 0 Offset 0 + MemberDecorate 32 1 Offset 16 + Decorate 32 BufferBlock + Decorate 34 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input + 11: TypeStruct 7(fvec4) + 12: TypePointer Uniform 11(struct) + 13: 12(ptr) Variable Uniform + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: TypePointer Uniform 7(fvec4) + 20: TypeStruct 7(fvec4) + 21: TypePointer Uniform 20(struct) + 22: 21(ptr) Variable Uniform + 25: TypeStruct 7(fvec4) 14(int) + 26: TypePointer Uniform 25(struct) + 27: 26(ptr) Variable Uniform + 32: TypeStruct 7(fvec4) 14(int) + 33: TypePointer Uniform 32(struct) + 34: 33(ptr) Variable Uniform +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 10: 7(fvec4) Load 9(input) + 17: 16(ptr) AccessChain 13 15 + 18: 7(fvec4) Load 17 + 19: 7(fvec4) FAdd 10 18 + 23: 16(ptr) AccessChain 22 15 + 24: 7(fvec4) Load 23 + 28: 16(ptr) AccessChain 27 15 + 29: 7(fvec4) Load 28 + 30: 7(fvec4) FAdd 24 29 + 31: 7(fvec4) FAdd 19 30 + 35: 16(ptr) AccessChain 34 15 + 36: 7(fvec4) Load 35 + 37: 7(fvec4) FAdd 31 36 + ReturnValue 37 + FunctionEnd diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag new file mode 100644 index 00000000..fbfdc316 --- /dev/null +++ b/Test/hlsl.buffer.frag @@ -0,0 +1,22 @@ +cbuffer { + float4 v1; +}; + +tbuffer { + float4 v2; +}; + +cbuffer cbufName : register(b2) { + float4 v3; + int i3 : packoffset(c1.y); +}; + +tbuffer tbufName : register(b8) { + float4 v4 : packoffset(c1); + int i4 : packoffset(c3); +}; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return input + v1 + v2 + v3 + v4; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 8bc17dd4..4a4361b6 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1332" -#define GLSLANG_DATE "21-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1337" +#define GLSLANG_DATE "25-Jul-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 900aee7f..0be8850c 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -75,6 +75,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.array.frag", "PixelShaderFunction"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, + {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index fc8360c8..37c8635c 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -337,6 +337,8 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) if (typedefDecl) parseContext.declareTypedef(idToken.loc, *idToken.string, type, arraySizes); + else if (type.getBasicType() == EbtBlock) + parseContext.declareBlock(idToken.loc, type, idToken.string); else { // Declare the variable and add any initializer code to the AST. // The top-level node is always made into an aggregate, as that's @@ -414,11 +416,19 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) TQualifier qualifier; qualifier.clear(); acceptQualifier(qualifier); + TSourceLoc loc = token.loc; // type_specifier if (! acceptType(type)) return false; - type.getQualifier() = qualifier; + if (type.getBasicType() == EbtBlock) { + // the type was a block, which set some parts of the qualifier + parseContext.mergeQualifiers(loc, type.getQualifier(), qualifier, true); + // further, it can create an anonymous instance of the block + if (peekTokenClass(EHTokSemicolon)) + parseContext.declareBlock(loc, type); + } else + type.getQualifier() = qualifier; return true; } @@ -825,6 +835,8 @@ bool HlslGrammar::acceptType(TType& type) break; case EHTokStruct: + case EHTokCBuffer: + case EHTokTBuffer: return acceptStruct(type); break; @@ -1186,13 +1198,29 @@ bool HlslGrammar::acceptType(TType& type) } // struct -// : STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE -// | STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE +// : struct_type IDENTIFIER post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE +// | struct_type post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE +// +// struct_type +// : STRUCT +// | CBUFFER +// | TBUFFER // bool HlslGrammar::acceptStruct(TType& type) { + // This qualifier.storage will tell us whether it's an AST block or + // just a struct. + TQualifier qualifier; + qualifier.clear(); + + // CBUFFER + if (acceptTokenClass(EHTokCBuffer)) + qualifier.storage = EvqUniform; + // TBUFFER + else if (acceptTokenClass(EHTokTBuffer)) + qualifier.storage = EvqBuffer; // STRUCT - if (! acceptTokenClass(EHTokStruct)) + else if (! acceptTokenClass(EHTokStruct)) return false; // IDENTIFIER @@ -1202,6 +1230,9 @@ bool HlslGrammar::acceptStruct(TType& type) advanceToken(); } + // post_decls + acceptPostDecls(type); + // LEFT_BRACE if (! acceptTokenClass(EHTokLeftBrace)) { expected("{"); @@ -1222,11 +1253,15 @@ bool HlslGrammar::acceptStruct(TType& type) } // create the user-defined type - new(&type) TType(typeList, structName); + if (qualifier.storage == EvqTemporary) + new(&type) TType(typeList, structName); + else + new(&type) TType(typeList, structName, qualifier); // sets EbtBlock - // If it was named, which means it can be reused later, add - // it to the symbol table. - if (structName.size() > 0) { + // If it was named, which means the type can be reused later, add + // it to the symbol table. (Unless it's a block, in which + // case the name is not a type.) + if (type.getBasicType() != EbtBlock && structName.size() > 0) { TVariable* userTypeDef = new TVariable(&structName, type, true); if (! parseContext.symbolTable.insert(*userTypeDef)) parseContext.error(token.loc, "redefinition", structName.c_str(), "struct"); @@ -2442,6 +2477,7 @@ void HlslGrammar::acceptPostDecls(TType& type) break; } // TODO: process the packoffset information + // c1.y means component y of location slot 1 } else if (! acceptIdentifier(idToken)) { expected("semantic or packoffset or register"); return; @@ -2462,6 +2498,7 @@ void HlslGrammar::acceptPostDecls(TType& type) break; } // TODO: process the register information + // b2 means buffer 2 } else { // semantic, in idToken.string parseContext.handleSemantic(type, *idToken.string); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 83817eaa..5b265f1b 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2533,10 +2533,10 @@ void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, c if (dst.storage == EvqTemporary || dst.storage == EvqGlobal) dst.storage = src.storage; else if ((dst.storage == EvqIn && src.storage == EvqOut) || - (dst.storage == EvqOut && src.storage == EvqIn)) + (dst.storage == EvqOut && src.storage == EvqIn)) dst.storage = EvqInOut; else if ((dst.storage == EvqIn && src.storage == EvqConst) || - (dst.storage == EvqConst && src.storage == EvqIn)) + (dst.storage == EvqConst && src.storage == EvqIn)) dst.storage = EvqConstReadOnly; else if (src.storage != EvqTemporary && src.storage != EvqGlobal) error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), ""); @@ -3898,28 +3898,31 @@ TIntermTyped* HlslParseContext::constructAggregate(TIntermNode* node, const TTyp // // Do everything needed to add an interface block. // -void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes) +void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TString* instanceName, TArraySizes* arraySizes) { + assert(type.getWritableStruct() != nullptr); + + TTypeList& typeList = *type.getWritableStruct(); // fix and check for member storage qualifiers and types that don't belong within a block for (unsigned int member = 0; member < typeList.size(); ++member) { TType& memberType = *typeList[member].type; TQualifier& memberQualifier = memberType.getQualifier(); const TSourceLoc& memberLoc = typeList[member].loc; globalQualifierFix(memberLoc, memberQualifier); - memberQualifier.storage = currentBlockQualifier.storage; + memberQualifier.storage = type.getQualifier().storage; } // This might be a redeclaration of a built-in block. If so, redeclareBuiltinBlock() will // do all the rest. - if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) { - redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes); - return; - } + //if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) { + // redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes); + // return; + //} // Make default block qualification, and adjust the member qualifications TQualifier defaultQualification; - switch (currentBlockQualifier.storage) { + switch (type.getQualifier().storage) { case EvqUniform: defaultQualification = globalUniformDefaults; break; case EvqBuffer: defaultQualification = globalBufferDefaults; break; case EvqVaryingIn: defaultQualification = globalInputDefaults; break; @@ -3929,12 +3932,12 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, // Special case for "push_constant uniform", which has a default of std430, // contrary to normal uniform defaults, and can't have a default tracked for it. - if (currentBlockQualifier.layoutPushConstant && ! currentBlockQualifier.hasPacking()) - currentBlockQualifier.layoutPacking = ElpStd430; + if (type.getQualifier().layoutPushConstant && ! type.getQualifier().hasPacking()) + type.getQualifier().layoutPacking = ElpStd430; // fix and check for member layout qualifiers - mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true); + mergeObjectLayoutQualifiers(defaultQualification, type.getQualifier(), true); bool memberWithLocation = false; bool memberWithoutLocation = false; @@ -3958,7 +3961,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, if (memberQualifier.hasPacking()) error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), ""); if (memberQualifier.hasLocation()) { - switch (currentBlockQualifier.storage) { + switch (type.getQualifier().storage) { case EvqVaryingIn: case EvqVaryingOut: memberWithLocation = true; @@ -3979,19 +3982,20 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, } // Process the members - fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation); - fixBlockXfbOffsets(currentBlockQualifier, typeList); - fixBlockUniformOffsets(currentBlockQualifier, typeList); + fixBlockLocations(loc, type.getQualifier(), typeList, memberWithLocation, memberWithoutLocation); + fixBlockXfbOffsets(type.getQualifier(), typeList); + fixBlockUniformOffsets(type.getQualifier(), typeList); // reverse merge, so that currentBlockQualifier now has all layout information // (can't use defaultQualification directly, it's missing other non-layout-default-class qualifiers) - mergeObjectLayoutQualifiers(currentBlockQualifier, defaultQualification, true); + mergeObjectLayoutQualifiers(type.getQualifier(), defaultQualification, true); // // Build and add the interface block as a new type named 'blockName' // - TType blockType(&typeList, *blockName, currentBlockQualifier); + //?? need the block name to be a typename? + TType blockType(&typeList, "" /* *blockName */, type.getQualifier()); if (arraySizes) blockType.newArraySizes(*arraySizes); @@ -4008,20 +4012,20 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, // whose type is EbtBlock, but without all the structure; that will come from the type // the instances point to. // - TType blockNameType(EbtBlock, blockType.getQualifier().storage); - TVariable* blockNameVar = new TVariable(blockName, blockNameType); - if (! symbolTable.insert(*blockNameVar)) { - TSymbol* existingName = symbolTable.find(*blockName); - if (existingName->getType().getBasicType() == EbtBlock) { - if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { - error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); - return; - } - } else { - error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - return; - } - } + //??TType blockNameType(EbtBlock, blockType.getQualifier().storage); + //??TVariable* blockNameVar = new TVariable(blockName, blockNameType); + //if (! symbolTable.insert(*blockNameVar)) { + // TSymbol* existingName = symbolTable.find(*blockName); + // if (existingName->getType().getBasicType() == EbtBlock) { + // if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { + // error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); + // return; + // } + // } else { + // error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); + // return; + // } + //} // Add the variable, as anonymous or named instanceName. // Make an anonymous variable if no name was provided. @@ -4031,7 +4035,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, TVariable& variable = *new TVariable(instanceName, blockType); if (! symbolTable.insert(variable)) { if (*instanceName == "") - error(loc, "nameless block contains a member that already has a name at global scope", blockName->c_str(), ""); + error(loc, "nameless block contains a member that already has a name at global scope", "" /* blockName->c_str() */, ""); else error(loc, "block instance name redefinition", variable.getName().c_str(), ""); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index f1281319..9c404ae4 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -133,7 +133,7 @@ public: TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); - void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0); + void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0); void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); void fixBlockXfbOffsets(TQualifier&, TTypeList&); void fixBlockUniformOffsets(TQualifier&, TTypeList&); @@ -176,8 +176,6 @@ protected: bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement const TType* currentFunctionType; // the return type of the function that's currently being parsed bool functionReturnsValue; // true if a non-void function has a return - const TString* blockName; - TQualifier currentBlockQualifier; TBuiltInResource resources; TLimits& limits; diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 8a4eb736..da393211 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -258,6 +258,8 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; (*KeywordMap)["struct"] = EHTokStruct; + (*KeywordMap)["cbuffer"] = EHTokCBuffer; + (*KeywordMap)["tbuffer"] = EHTokTBuffer; (*KeywordMap)["typedef"] = EHTokTypedef; (*KeywordMap)["true"] = EHTokBoolConstant; @@ -574,6 +576,9 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() // variable, user type, ... case EHTokStruct: case EHTokTypedef: + case EHTokCBuffer: + case EHTokTBuffer: + return keyword; case EHTokBoolConstant: if (strcmp("true", tokenText) == 0) diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index 5a5266ae..d72b2cd9 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -212,6 +212,8 @@ enum EHlslTokenClass { EHTokIdentifier, EHTokTypeName, EHTokStruct, + EHTokCBuffer, + EHTokTBuffer, EHTokTypedef, // constant From fd6b0fd51efbcf5f610162c1c5170da94e4cfba7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 25 Jul 2016 16:21:08 -0600 Subject: [PATCH 025/217] README: Update the component list. --- README.md | 11 +++++++---- glslang/Include/revision.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3bdbae59..3230ddaf 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,15 @@ glslang An OpenGL and OpenGL ES shader front end and validator. -There are two components: +There are several components: -1. A front-end library for programmatic parsing of GLSL/ESSL into an AST. +. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. -2. A standalone wrapper, `glslangValidator`, that can be used as a shader - validation tool. +. An HLSL front-end for translation of a broad generic HLL into the AST. + +. A SPIR-V back end for translating the AST to SPIR-V. + +. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above. How to add a feature protected by a version/extension/stage/profile: See the comment in `glslang/MachineIndependent/Versions.cpp`. diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4a4361b6..c2eb8fd2 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1337" +#define GLSLANG_REVISION "SPIRV99.1338" #define GLSLANG_DATE "25-Jul-2016" From 0c4702407c251b614a1f171627388cfecf8ce57f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 25 Jul 2016 16:27:24 -0600 Subject: [PATCH 026/217] README: Fix numbered list. --- README.md | 8 ++++---- glslang/Include/revision.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3230ddaf..010af5c7 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,13 @@ An OpenGL and OpenGL ES shader front end and validator. There are several components: -. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. +1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. -. An HLSL front-end for translation of a broad generic HLL into the AST. +2. An HLSL front-end for translation of a broad generic HLL into the AST. -. A SPIR-V back end for translating the AST to SPIR-V. +3. A SPIR-V back end for translating the AST to SPIR-V. -. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above. +4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above. How to add a feature protected by a version/extension/stage/profile: See the comment in `glslang/MachineIndependent/Versions.cpp`. diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index c2eb8fd2..c328407f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1338" +#define GLSLANG_REVISION "SPIRV99.1339" #define GLSLANG_DATE "25-Jul-2016" From 8c8505c60454549181d78301933f3f108e2f55e6 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 26 Jul 2016 12:50:38 -0600 Subject: [PATCH 027/217] SPV: For AST interpolateAt* ops consuming a swizzle, invert the order. Apply the interpolation first, then apply the swizzle to the result, the inverse of the order requested by the AST. This fixes issue #411. --- SPIRV/GlslangToSpv.cpp | 111 +++++++++++++----- .../baseResults/spv.swizzleInversion.frag.out | 81 +++++++++++++ Test/spv.swizzleInversion.frag | 16 +++ glslang/Include/revision.h | 4 +- gtests/Spv.FromFile.cpp | 1 + 5 files changed, 184 insertions(+), 29 deletions(-) create mode 100755 Test/baseResults/spv.swizzleInversion.frag.out create mode 100644 Test/spv.swizzleInversion.frag diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 0fc57305..26d2f4bc 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -118,6 +118,9 @@ protected: spv::ImageFormat TranslateImageFormat(const glslang::TType& type); spv::Id createSpvVariable(const glslang::TIntermSymbol*); spv::Id getSampledType(const glslang::TSampler&); + spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&); + spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult); + void convertSwizzle(const glslang::TIntermAggregate&, std::vector& swizzle); spv::Id convertGlslangToSpvType(const glslang::TType& type); spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&); spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct, @@ -1025,10 +1028,8 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T case glslang::EOpVectorSwizzle: { node->getLeft()->traverse(this); - glslang::TIntermSequence& swizzleSequence = node->getRight()->getAsAggregate()->getSequence(); std::vector swizzle; - for (int i = 0; i < (int)swizzleSequence.size(); ++i) - swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst()); + convertSwizzle(*node->getRight()->getAsAggregate(), swizzle); builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType())); } return false; @@ -1118,8 +1119,18 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI // Start by evaluating the operand + // Does it need a swizzle inversion? If so, evaluation is inverted; + // operate first on the swizzle base, then apply the swizzle. + spv::Id invertedType = spv::NoType; + auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? invertedType : convertGlslangToSpvType(node->getType()); }; + if (node->getOp() == glslang::EOpInterpolateAtCentroid) + invertedType = getInvertedSwizzleType(*node->getOperand()); + builder.clearAccessChain(); - node->getOperand()->traverse(this); + if (invertedType != spv::NoType) + node->getOperand()->getAsBinaryNode()->getLeft()->traverse(this); + else + node->getOperand()->traverse(this); spv::Id operand = spv::NoResult; @@ -1136,13 +1147,16 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI // it could be a conversion if (! result) - result = createConversion(node->getOp(), precision, noContraction, convertGlslangToSpvType(node->getType()), operand, node->getOperand()->getBasicType()); + result = createConversion(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); // if not, then possibly an operation if (! result) - result = createUnaryOperation(node->getOp(), precision, noContraction, convertGlslangToSpvType(node->getType()), operand, node->getOperand()->getBasicType()); + result = createUnaryOperation(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType()); if (result) { + if (invertedType) + result = createInvertedSwizzle(precision, *node->getOperand(), result); + builder.clearAccessChain(); builder.setAccessChainRValue(result); @@ -1210,6 +1224,8 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); spv::Id result = spv::NoResult; + spv::Id invertedType = spv::NoType; // to use to override the natural type of the node + auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? invertedType : convertGlslangToSpvType(node->getType()); }; // try texturing result = createImageTextureFunctionCall(node); @@ -1366,19 +1382,18 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt { std::vector arguments; translateArguments(*node, arguments); - spv::Id resultTypeId = convertGlslangToSpvType(node->getType()); spv::Id constructed; if (node->getOp() == glslang::EOpConstructTextureSampler) - constructed = builder.createOp(spv::OpSampledImage, resultTypeId, arguments); + constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments); else if (node->getOp() == glslang::EOpConstructStruct || node->getType().isArray()) { std::vector constituents; for (int c = 0; c < (int)arguments.size(); ++c) constituents.push_back(arguments[c]); - constructed = builder.createCompositeConstruct(resultTypeId, constituents); + constructed = builder.createCompositeConstruct(resultType(), constituents); } else if (isMatrix) - constructed = builder.createMatrixConstructor(precision, arguments, resultTypeId); + constructed = builder.createMatrixConstructor(precision, arguments, resultType()); else - constructed = builder.createConstructor(precision, arguments, resultTypeId); + constructed = builder.createConstructor(precision, arguments, resultType()); builder.clearAccessChain(); builder.setAccessChainRValue(constructed); @@ -1407,7 +1422,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt break; } case glslang::EOpMul: - // compontent-wise matrix multiply + // component-wise matrix multiply binOp = glslang::EOpMul; break; case glslang::EOpOuterProduct: @@ -1476,7 +1491,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt spv::Id rightId = accessChainLoad(right->getType()); result = createBinaryOperation(binOp, precision, TranslateNoContractionDecoration(node->getType().getQualifier()), - convertGlslangToSpvType(node->getType()), leftId, rightId, + resultType(), leftId, rightId, left->getType().getBasicType(), reduceComparison); // code above should only make binOp that exists in createBinaryOperation @@ -1493,9 +1508,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt glslang::TIntermSequence& glslangOperands = node->getSequence(); std::vector operands; for (int arg = 0; arg < (int)glslangOperands.size(); ++arg) { - builder.clearAccessChain(); - glslangOperands[arg]->traverse(this); - // special case l-value operands; there are just a few bool lvalue = false; switch (node->getOp()) { @@ -1509,8 +1521,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt #ifdef AMD_EXTENSIONS case glslang::EOpInterpolateAtVertex: #endif - if (arg == 0) + if (arg == 0) { lvalue = true; + + // Does it need a swizzle inversion? If so, evaluation is inverted; + // operate first on the swizzle base, then apply the swizzle. + if (glslangOperands[0]->getAsOperator() && + glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle) + invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType()); + } break; case glslang::EOpAtomicAdd: case glslang::EOpAtomicMin: @@ -1536,6 +1555,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt default: break; } + builder.clearAccessChain(); + if (invertedType != spv::NoType && arg == 0) + glslangOperands[0]->getAsBinaryNode()->getLeft()->traverse(this); + else + glslangOperands[arg]->traverse(this); if (lvalue) operands.push_back(builder.accessChainGetLValue()); else @@ -1544,24 +1568,26 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt if (atomic) { // Handle all atomics - result = createAtomicOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType()); + result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); } else { // Pass through to generic operations. switch (glslangOperands.size()) { case 0: - result = createNoArgOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType())); + result = createNoArgOperation(node->getOp(), precision, resultType()); break; case 1: result = createUnaryOperation( node->getOp(), precision, TranslateNoContractionDecoration(node->getType().getQualifier()), - convertGlslangToSpvType(node->getType()), operands.front(), + resultType(), operands.front(), glslangOperands[0]->getAsTyped()->getBasicType()); break; default: - result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType()); + result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); break; } + if (invertedType) + result = createInvertedSwizzle(precision, *glslangOperands[0]->getAsBinaryNode(), result); } if (noReturnValue) @@ -1813,6 +1839,36 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler) } } +// If node is a swizzle operation, return the type that should be used if +// the swizzle base is first consumed by another operation, before the swizzle +// is applied. +spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node) +{ + if (node.getAsOperator() && + node.getAsOperator()->getOp() == glslang::EOpVectorSwizzle) + return convertGlslangToSpvType(node.getAsBinaryNode()->getLeft()->getType()); + else + return spv::NoType; +} + +// When inverting a swizzle with a parent op, this function +// will apply the swizzle operation to a completed parent operation. +spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped& node, spv::Id parentResult) +{ + std::vector swizzle; + convertSwizzle(*node.getAsBinaryNode()->getRight()->getAsAggregate(), swizzle); + return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle); +} + + +// Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V. +void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector& swizzle) +{ + const glslang::TIntermSequence& swizzleSequence = node.getSequence(); + for (int i = 0; i < (int)swizzleSequence.size(); ++i) + swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst()); +} + // Convert from a glslang type to an SPV type, by calling into a // recursive version of this function. This establishes the inherited // layout state rooted from the top-level type. @@ -2505,6 +2561,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO if (! node->isImage() && ! node->isTexture()) { return spv::NoResult; } + auto resultType = [&node,this]{ return convertGlslangToSpvType(node->getType()); }; // Process a GLSL texturing op (will be SPV image) const glslang::TSampler sampler = node->getAsAggregate() ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType().getSampler() @@ -2571,7 +2628,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO operands.push_back(spv::ImageOperandsSampleMask); operands.push_back(*(opIt++)); } - return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands); + return builder.createOp(spv::OpImageRead, resultType(), operands); } operands.push_back(*(opIt++)); @@ -2582,7 +2639,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown) builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat); - return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands); + return builder.createOp(spv::OpImageRead, resultType(), operands); } else if (node->getOp() == glslang::EOpImageStore) { if (sampler.ms) { operands.push_back(*(opIt + 1)); @@ -2606,7 +2663,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // Create the return type that was a special structure spv::Id texelOut = *opIt; - spv::Id typeId0 = convertGlslangToSpvType(node->getType()); + spv::Id typeId0 = resultType(); spv::Id typeId1 = builder.getDerefTypeId(texelOut); spv::Id resultTypeId = builder.makeStructResultType(typeId0, typeId1); @@ -2622,7 +2679,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // as the first source operand, is required by SPIR-V atomic operations. operands.push_back(sampler.ms ? *(opIt++) : builder.makeUintConstant(0)); // For non-MS, the value should be 0 - spv::Id resultTypeId = builder.makePointer(spv::StorageClassImage, convertGlslangToSpvType(node->getType())); + spv::Id resultTypeId = builder.makePointer(spv::StorageClassImage, resultType()); spv::Id pointer = builder.createOp(spv::OpImageTexelPointer, resultTypeId, operands); std::vector operands; @@ -2630,7 +2687,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO for (; opIt != arguments.end(); ++opIt) operands.push_back(*opIt); - return createAtomicOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType()); + return createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType()); } } @@ -2770,7 +2827,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } - return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); + return builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); } spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node) diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out new file mode 100755 index 00000000..6b922065 --- /dev/null +++ b/Test/baseResults/spv.swizzleInversion.frag.out @@ -0,0 +1,81 @@ +spv.swizzleInversion.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 46 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 12 37 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "v43" + Name 12 "in4" + Name 17 "v42" + Name 23 "v44" + Name 29 "v41" + Name 35 "v33" + Name 37 "in3" + Name 40 "v32" + Name 43 "v31" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 10: TypeVector 6(float) 4 + 11: TypePointer Input 10(fvec4) + 12(in4): 11(ptr) Variable Input + 15: TypeVector 6(float) 2 + 16: TypePointer Function 15(fvec2) + 18: TypeInt 32 1 + 19: 18(int) Constant 1 + 22: TypePointer Function 10(fvec4) + 24: 6(float) Constant 1073741824 + 25: 15(fvec2) ConstantComposite 24 24 + 28: TypePointer Function 6(float) + 30: TypeInt 32 0 + 31: 30(int) Constant 1 + 32: TypePointer Input 6(float) + 36: TypePointer Input 7(fvec3) + 37(in3): 36(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(v43): 8(ptr) Variable Function + 17(v42): 16(ptr) Variable Function + 23(v44): 22(ptr) Variable Function + 29(v41): 28(ptr) Variable Function + 35(v33): 8(ptr) Variable Function + 40(v32): 16(ptr) Variable Function + 43(v31): 28(ptr) Variable Function + 13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4) + 14: 7(fvec3) VectorShuffle 13 13 3 2 0 + Store 9(v43) 14 + 20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19 + 21: 15(fvec2) VectorShuffle 20 20 2 0 + Store 17(v42) 21 + 26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25 + 27: 10(fvec4) VectorShuffle 26 26 2 1 0 3 + Store 23(v44) 27 + 33: 32(ptr) AccessChain 12(in4) 31 + 34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25 + Store 29(v41) 34 + 38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3) + 39: 7(fvec3) VectorShuffle 38 38 1 2 0 + Store 35(v33) 39 + 41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19 + 42: 15(fvec2) VectorShuffle 41 41 2 0 + Store 40(v32) 42 + 44: 32(ptr) AccessChain 12(in4) 31 + 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25 + Store 43(v31) 45 + Return + FunctionEnd diff --git a/Test/spv.swizzleInversion.frag b/Test/spv.swizzleInversion.frag new file mode 100644 index 00000000..9dca62f8 --- /dev/null +++ b/Test/spv.swizzleInversion.frag @@ -0,0 +1,16 @@ +#version 450 + +in vec4 in4; +in vec3 in3; + +void main() +{ + vec3 v43 = interpolateAtCentroid(in4.wzx); + vec2 v42 = interpolateAtSample(in4.zx, 1); + vec4 v44 = interpolateAtOffset(in4.zyxw, vec2(2.0)); + float v41 = interpolateAtOffset(in4.y, vec2(2.0)); + + vec3 v33 = interpolateAtCentroid(in3.yzx); + vec2 v32 = interpolateAtSample(in3.zx, 1); + float v31 = interpolateAtOffset(in4.y, vec2(2.0)); +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index c328407f..5ab3596b 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1339" -#define GLSLANG_DATE "25-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1340" +#define GLSLANG_DATE "26-Jul-2016" diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index dbe0507d..a8f3dd86 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -184,6 +184,7 @@ INSTANTIATE_TEST_CASE_P( "spv.structure.frag", "spv.switch.frag", "spv.swizzle.frag", + "spv.swizzleInversion.frag", "spv.test.frag", "spv.test.vert", "spv.texture.frag", From 1e19d90043968c590640b01f5e0c1ea2b39e4585 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 26 Jul 2016 15:19:28 -0600 Subject: [PATCH 028/217] HLSL: add 2DMS texture formats, and matching Load / GetDimensions support --- .../hlsl.getdimensions.dx10.frag.out | 1590 +++++++++++------ Test/baseResults/hlsl.load.2dms.dx10.frag.out | 340 ++++ .../baseResults/hlsl.load.basic.dx10.vert.out | 565 ++++++ Test/hlsl.getdimensions.dx10.frag | 43 + Test/hlsl.load.2dms.dx10.frag | 56 + Test/hlsl.load.basic.dx10.vert | 70 + gtests/Hlsl.FromFile.cpp | 2 + hlsl/hlslParseHelper.cpp | 39 +- hlsl/hlslParseables.cpp | 90 +- 9 files changed, 2161 insertions(+), 634 deletions(-) create mode 100644 Test/baseResults/hlsl.load.2dms.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.basic.dx10.vert.out create mode 100644 Test/hlsl.load.2dms.dx10.frag create mode 100644 Test/hlsl.load.basic.dx10.vert diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index c1556b44..e0c8662d 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,58 +2,14 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 Function Parameters: +0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Parameters: 0:? Sequence -0:57 Sequence -0:57 move second child to first child (temp uint) -0:57 'sizeQueryTemp' (temp uint) -0:57 textureSize (temp uint) -0:57 'g_tTex1df4' (uniform texture1D) -0:57 move second child to first child (temp uint) -0:57 'WidthU' (temp uint) -0:57 'sizeQueryTemp' (temp uint) -0:58 Sequence -0:58 move second child to first child (temp uint) -0:58 'sizeQueryTemp' (temp uint) -0:58 textureSize (temp uint) -0:58 'g_tTex1df4' (uniform texture1D) -0:58 Constant: -0:58 6 (const uint) -0:58 move second child to first child (temp uint) -0:58 'WidthU' (temp uint) -0:58 'sizeQueryTemp' (temp uint) -0:58 move second child to first child (temp uint) -0:58 'NumberOfLevelsU' (temp uint) -0:58 textureQueryLevels (temp uint) -0:58 'g_tTex1df4' (uniform texture1D) -0:61 Sequence -0:61 move second child to first child (temp uint) -0:61 'sizeQueryTemp' (temp uint) -0:61 textureSize (temp uint) -0:61 'g_tTex1di4' (uniform itexture1D) -0:61 move second child to first child (temp uint) -0:61 'WidthU' (temp uint) -0:61 'sizeQueryTemp' (temp uint) -0:62 Sequence -0:62 move second child to first child (temp uint) -0:62 'sizeQueryTemp' (temp uint) -0:62 textureSize (temp uint) -0:62 'g_tTex1di4' (uniform itexture1D) -0:62 Constant: -0:62 6 (const uint) -0:62 move second child to first child (temp uint) -0:62 'WidthU' (temp uint) -0:62 'sizeQueryTemp' (temp uint) -0:62 move second child to first child (temp uint) -0:62 'NumberOfLevelsU' (temp uint) -0:62 textureQueryLevels (temp uint) -0:62 'g_tTex1di4' (uniform itexture1D) 0:65 Sequence 0:65 move second child to first child (temp uint) 0:65 'sizeQueryTemp' (temp uint) 0:65 textureSize (temp uint) -0:65 'g_tTex1du4' (uniform utexture1D) +0:65 'g_tTex1df4' (uniform texture1D) 0:65 move second child to first child (temp uint) 0:65 'WidthU' (temp uint) 0:65 'sizeQueryTemp' (temp uint) @@ -61,7 +17,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'sizeQueryTemp' (temp uint) 0:66 textureSize (temp uint) -0:66 'g_tTex1du4' (uniform utexture1D) +0:66 'g_tTex1df4' (uniform texture1D) 0:66 Constant: 0:66 6 (const uint) 0:66 move second child to first child (temp uint) @@ -70,92 +26,56 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'NumberOfLevelsU' (temp uint) 0:66 textureQueryLevels (temp uint) -0:66 'g_tTex1du4' (uniform utexture1D) +0:66 'g_tTex1df4' (uniform texture1D) 0:69 Sequence -0:69 move second child to first child (temp 2-component vector of uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 textureSize (temp 2-component vector of uint) -0:69 'g_tTex1df4a' (uniform texture1DArray) +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 textureSize (temp uint) +0:69 'g_tTex1di4' (uniform itexture1D) 0:69 move second child to first child (temp uint) 0:69 'WidthU' (temp uint) -0:69 direct index (temp uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 move second child to first child (temp uint) -0:69 'ElementsU' (temp uint) -0:69 direct index (temp uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 Constant: -0:69 1 (const int) +0:69 'sizeQueryTemp' (temp uint) 0:70 Sequence -0:70 move second child to first child (temp 2-component vector of uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 textureSize (temp 2-component vector of uint) -0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1di4' (uniform itexture1D) 0:70 Constant: 0:70 6 (const uint) 0:70 move second child to first child (temp uint) 0:70 'WidthU' (temp uint) -0:70 direct index (temp uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp uint) -0:70 'ElementsU' (temp uint) -0:70 direct index (temp uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 Constant: -0:70 1 (const int) +0:70 'sizeQueryTemp' (temp uint) 0:70 move second child to first child (temp uint) 0:70 'NumberOfLevelsU' (temp uint) 0:70 textureQueryLevels (temp uint) -0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 'g_tTex1di4' (uniform itexture1D) 0:73 Sequence -0:73 move second child to first child (temp 2-component vector of uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 textureSize (temp 2-component vector of uint) -0:73 'g_tTex1di4a' (uniform itexture1DArray) +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1du4' (uniform utexture1D) 0:73 move second child to first child (temp uint) 0:73 'WidthU' (temp uint) -0:73 direct index (temp uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 Constant: -0:73 0 (const int) -0:73 move second child to first child (temp uint) -0:73 'ElementsU' (temp uint) -0:73 direct index (temp uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 Constant: -0:73 1 (const int) +0:73 'sizeQueryTemp' (temp uint) 0:74 Sequence -0:74 move second child to first child (temp 2-component vector of uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 textureSize (temp 2-component vector of uint) -0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 move second child to first child (temp uint) +0:74 'sizeQueryTemp' (temp uint) +0:74 textureSize (temp uint) +0:74 'g_tTex1du4' (uniform utexture1D) 0:74 Constant: 0:74 6 (const uint) 0:74 move second child to first child (temp uint) 0:74 'WidthU' (temp uint) -0:74 direct index (temp uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 move second child to first child (temp uint) -0:74 'ElementsU' (temp uint) -0:74 direct index (temp uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 Constant: -0:74 1 (const int) +0:74 'sizeQueryTemp' (temp uint) 0:74 move second child to first child (temp uint) 0:74 'NumberOfLevelsU' (temp uint) 0:74 textureQueryLevels (temp uint) -0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 'g_tTex1du4' (uniform utexture1D) 0:77 Sequence 0:77 move second child to first child (temp 2-component vector of uint) 0:77 'sizeQueryTemp' (temp 2-component vector of uint) 0:77 textureSize (temp 2-component vector of uint) -0:77 'g_tTex1du4a' (uniform utexture1DArray) +0:77 'g_tTex1df4a' (uniform texture1DArray) 0:77 move second child to first child (temp uint) 0:77 'WidthU' (temp uint) 0:77 direct index (temp uint) @@ -172,7 +92,7 @@ gl_FragCoord origin is upper left 0:78 move second child to first child (temp 2-component vector of uint) 0:78 'sizeQueryTemp' (temp 2-component vector of uint) 0:78 textureSize (temp 2-component vector of uint) -0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 'g_tTex1df4a' (uniform texture1DArray) 0:78 Constant: 0:78 6 (const uint) 0:78 move second child to first child (temp uint) @@ -190,12 +110,12 @@ gl_FragCoord origin is upper left 0:78 move second child to first child (temp uint) 0:78 'NumberOfLevelsU' (temp uint) 0:78 textureQueryLevels (temp uint) -0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 'g_tTex1df4a' (uniform texture1DArray) 0:81 Sequence 0:81 move second child to first child (temp 2-component vector of uint) 0:81 'sizeQueryTemp' (temp 2-component vector of uint) 0:81 textureSize (temp 2-component vector of uint) -0:81 'g_tTex2df4' (uniform texture2D) +0:81 'g_tTex1di4a' (uniform itexture1DArray) 0:81 move second child to first child (temp uint) 0:81 'WidthU' (temp uint) 0:81 direct index (temp uint) @@ -203,7 +123,7 @@ gl_FragCoord origin is upper left 0:81 Constant: 0:81 0 (const int) 0:81 move second child to first child (temp uint) -0:81 'HeightU' (temp uint) +0:81 'ElementsU' (temp uint) 0:81 direct index (temp uint) 0:81 'sizeQueryTemp' (temp 2-component vector of uint) 0:81 Constant: @@ -212,7 +132,7 @@ gl_FragCoord origin is upper left 0:82 move second child to first child (temp 2-component vector of uint) 0:82 'sizeQueryTemp' (temp 2-component vector of uint) 0:82 textureSize (temp 2-component vector of uint) -0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_tTex1di4a' (uniform itexture1DArray) 0:82 Constant: 0:82 6 (const uint) 0:82 move second child to first child (temp uint) @@ -222,7 +142,7 @@ gl_FragCoord origin is upper left 0:82 Constant: 0:82 0 (const int) 0:82 move second child to first child (temp uint) -0:82 'HeightU' (temp uint) +0:82 'ElementsU' (temp uint) 0:82 direct index (temp uint) 0:82 'sizeQueryTemp' (temp 2-component vector of uint) 0:82 Constant: @@ -230,12 +150,12 @@ gl_FragCoord origin is upper left 0:82 move second child to first child (temp uint) 0:82 'NumberOfLevelsU' (temp uint) 0:82 textureQueryLevels (temp uint) -0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_tTex1di4a' (uniform itexture1DArray) 0:85 Sequence 0:85 move second child to first child (temp 2-component vector of uint) 0:85 'sizeQueryTemp' (temp 2-component vector of uint) 0:85 textureSize (temp 2-component vector of uint) -0:85 'g_tTex2di4' (uniform itexture2D) +0:85 'g_tTex1du4a' (uniform utexture1DArray) 0:85 move second child to first child (temp uint) 0:85 'WidthU' (temp uint) 0:85 direct index (temp uint) @@ -243,7 +163,7 @@ gl_FragCoord origin is upper left 0:85 Constant: 0:85 0 (const int) 0:85 move second child to first child (temp uint) -0:85 'HeightU' (temp uint) +0:85 'ElementsU' (temp uint) 0:85 direct index (temp uint) 0:85 'sizeQueryTemp' (temp 2-component vector of uint) 0:85 Constant: @@ -252,7 +172,7 @@ gl_FragCoord origin is upper left 0:86 move second child to first child (temp 2-component vector of uint) 0:86 'sizeQueryTemp' (temp 2-component vector of uint) 0:86 textureSize (temp 2-component vector of uint) -0:86 'g_tTex2di4' (uniform itexture2D) +0:86 'g_tTex1du4a' (uniform utexture1DArray) 0:86 Constant: 0:86 6 (const uint) 0:86 move second child to first child (temp uint) @@ -262,7 +182,7 @@ gl_FragCoord origin is upper left 0:86 Constant: 0:86 0 (const int) 0:86 move second child to first child (temp uint) -0:86 'HeightU' (temp uint) +0:86 'ElementsU' (temp uint) 0:86 direct index (temp uint) 0:86 'sizeQueryTemp' (temp 2-component vector of uint) 0:86 Constant: @@ -270,12 +190,12 @@ gl_FragCoord origin is upper left 0:86 move second child to first child (temp uint) 0:86 'NumberOfLevelsU' (temp uint) 0:86 textureQueryLevels (temp uint) -0:86 'g_tTex2di4' (uniform itexture2D) +0:86 'g_tTex1du4a' (uniform utexture1DArray) 0:89 Sequence 0:89 move second child to first child (temp 2-component vector of uint) 0:89 'sizeQueryTemp' (temp 2-component vector of uint) 0:89 textureSize (temp 2-component vector of uint) -0:89 'g_tTex2du4' (uniform utexture2D) +0:89 'g_tTex2df4' (uniform texture2D) 0:89 move second child to first child (temp uint) 0:89 'WidthU' (temp uint) 0:89 direct index (temp uint) @@ -292,7 +212,7 @@ gl_FragCoord origin is upper left 0:90 move second child to first child (temp 2-component vector of uint) 0:90 'sizeQueryTemp' (temp 2-component vector of uint) 0:90 textureSize (temp 2-component vector of uint) -0:90 'g_tTex2du4' (uniform utexture2D) +0:90 'g_tTex2df4' (uniform texture2D) 0:90 Constant: 0:90 6 (const uint) 0:90 move second child to first child (temp uint) @@ -310,116 +230,92 @@ gl_FragCoord origin is upper left 0:90 move second child to first child (temp uint) 0:90 'NumberOfLevelsU' (temp uint) 0:90 textureQueryLevels (temp uint) -0:90 'g_tTex2du4' (uniform utexture2D) +0:90 'g_tTex2df4' (uniform texture2D) 0:93 Sequence -0:93 move second child to first child (temp 3-component vector of uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) -0:93 textureSize (temp 3-component vector of uint) -0:93 'g_tTex2df4a' (uniform texture2DArray) +0:93 move second child to first child (temp 2-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) +0:93 textureSize (temp 2-component vector of uint) +0:93 'g_tTex2di4' (uniform itexture2D) 0:93 move second child to first child (temp uint) 0:93 'WidthU' (temp uint) 0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) 0:93 Constant: 0:93 0 (const int) 0:93 move second child to first child (temp uint) 0:93 'HeightU' (temp uint) 0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) 0:93 Constant: 0:93 1 (const int) -0:93 move second child to first child (temp uint) -0:93 'ElementsU' (temp uint) -0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) -0:93 Constant: -0:93 2 (const int) 0:94 Sequence -0:94 move second child to first child (temp 3-component vector of uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) -0:94 textureSize (temp 3-component vector of uint) -0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 move second child to first child (temp 2-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) +0:94 textureSize (temp 2-component vector of uint) +0:94 'g_tTex2di4' (uniform itexture2D) 0:94 Constant: 0:94 6 (const uint) 0:94 move second child to first child (temp uint) 0:94 'WidthU' (temp uint) 0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) 0:94 Constant: 0:94 0 (const int) 0:94 move second child to first child (temp uint) 0:94 'HeightU' (temp uint) 0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) 0:94 Constant: 0:94 1 (const int) 0:94 move second child to first child (temp uint) -0:94 'ElementsU' (temp uint) -0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) -0:94 Constant: -0:94 2 (const int) -0:94 move second child to first child (temp uint) 0:94 'NumberOfLevelsU' (temp uint) 0:94 textureQueryLevels (temp uint) -0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 'g_tTex2di4' (uniform itexture2D) 0:97 Sequence -0:97 move second child to first child (temp 3-component vector of uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) -0:97 textureSize (temp 3-component vector of uint) -0:97 'g_tTex2di4a' (uniform itexture2DArray) +0:97 move second child to first child (temp 2-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) +0:97 textureSize (temp 2-component vector of uint) +0:97 'g_tTex2du4' (uniform utexture2D) 0:97 move second child to first child (temp uint) 0:97 'WidthU' (temp uint) 0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) 0:97 Constant: 0:97 0 (const int) 0:97 move second child to first child (temp uint) 0:97 'HeightU' (temp uint) 0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) 0:97 Constant: 0:97 1 (const int) -0:97 move second child to first child (temp uint) -0:97 'ElementsU' (temp uint) -0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) -0:97 Constant: -0:97 2 (const int) 0:98 Sequence -0:98 move second child to first child (temp 3-component vector of uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) -0:98 textureSize (temp 3-component vector of uint) -0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) +0:98 textureSize (temp 2-component vector of uint) +0:98 'g_tTex2du4' (uniform utexture2D) 0:98 Constant: 0:98 6 (const uint) 0:98 move second child to first child (temp uint) 0:98 'WidthU' (temp uint) 0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) 0:98 Constant: 0:98 0 (const int) 0:98 move second child to first child (temp uint) 0:98 'HeightU' (temp uint) 0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) 0:98 Constant: 0:98 1 (const int) 0:98 move second child to first child (temp uint) -0:98 'ElementsU' (temp uint) -0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) -0:98 Constant: -0:98 2 (const int) -0:98 move second child to first child (temp uint) 0:98 'NumberOfLevelsU' (temp uint) 0:98 textureQueryLevels (temp uint) -0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 'g_tTex2du4' (uniform utexture2D) 0:101 Sequence 0:101 move second child to first child (temp 3-component vector of uint) 0:101 'sizeQueryTemp' (temp 3-component vector of uint) 0:101 textureSize (temp 3-component vector of uint) -0:101 'g_tTex2du4a' (uniform utexture2DArray) +0:101 'g_tTex2df4a' (uniform texture2DArray) 0:101 move second child to first child (temp uint) 0:101 'WidthU' (temp uint) 0:101 direct index (temp uint) @@ -442,7 +338,7 @@ gl_FragCoord origin is upper left 0:102 move second child to first child (temp 3-component vector of uint) 0:102 'sizeQueryTemp' (temp 3-component vector of uint) 0:102 textureSize (temp 3-component vector of uint) -0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 'g_tTex2df4a' (uniform texture2DArray) 0:102 Constant: 0:102 6 (const uint) 0:102 move second child to first child (temp uint) @@ -466,12 +362,12 @@ gl_FragCoord origin is upper left 0:102 move second child to first child (temp uint) 0:102 'NumberOfLevelsU' (temp uint) 0:102 textureQueryLevels (temp uint) -0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 'g_tTex2df4a' (uniform texture2DArray) 0:105 Sequence 0:105 move second child to first child (temp 3-component vector of uint) 0:105 'sizeQueryTemp' (temp 3-component vector of uint) 0:105 textureSize (temp 3-component vector of uint) -0:105 'g_tTex3df4' (uniform texture3D) +0:105 'g_tTex2di4a' (uniform itexture2DArray) 0:105 move second child to first child (temp uint) 0:105 'WidthU' (temp uint) 0:105 direct index (temp uint) @@ -485,7 +381,7 @@ gl_FragCoord origin is upper left 0:105 Constant: 0:105 1 (const int) 0:105 move second child to first child (temp uint) -0:105 'DepthU' (temp uint) +0:105 'ElementsU' (temp uint) 0:105 direct index (temp uint) 0:105 'sizeQueryTemp' (temp 3-component vector of uint) 0:105 Constant: @@ -494,7 +390,7 @@ gl_FragCoord origin is upper left 0:106 move second child to first child (temp 3-component vector of uint) 0:106 'sizeQueryTemp' (temp 3-component vector of uint) 0:106 textureSize (temp 3-component vector of uint) -0:106 'g_tTex3df4' (uniform texture3D) +0:106 'g_tTex2di4a' (uniform itexture2DArray) 0:106 Constant: 0:106 6 (const uint) 0:106 move second child to first child (temp uint) @@ -510,7 +406,7 @@ gl_FragCoord origin is upper left 0:106 Constant: 0:106 1 (const int) 0:106 move second child to first child (temp uint) -0:106 'DepthU' (temp uint) +0:106 'ElementsU' (temp uint) 0:106 direct index (temp uint) 0:106 'sizeQueryTemp' (temp 3-component vector of uint) 0:106 Constant: @@ -518,12 +414,12 @@ gl_FragCoord origin is upper left 0:106 move second child to first child (temp uint) 0:106 'NumberOfLevelsU' (temp uint) 0:106 textureQueryLevels (temp uint) -0:106 'g_tTex3df4' (uniform texture3D) +0:106 'g_tTex2di4a' (uniform itexture2DArray) 0:109 Sequence 0:109 move second child to first child (temp 3-component vector of uint) 0:109 'sizeQueryTemp' (temp 3-component vector of uint) 0:109 textureSize (temp 3-component vector of uint) -0:109 'g_tTex3di4' (uniform itexture3D) +0:109 'g_tTex2du4a' (uniform utexture2DArray) 0:109 move second child to first child (temp uint) 0:109 'WidthU' (temp uint) 0:109 direct index (temp uint) @@ -537,7 +433,7 @@ gl_FragCoord origin is upper left 0:109 Constant: 0:109 1 (const int) 0:109 move second child to first child (temp uint) -0:109 'DepthU' (temp uint) +0:109 'ElementsU' (temp uint) 0:109 direct index (temp uint) 0:109 'sizeQueryTemp' (temp 3-component vector of uint) 0:109 Constant: @@ -546,7 +442,7 @@ gl_FragCoord origin is upper left 0:110 move second child to first child (temp 3-component vector of uint) 0:110 'sizeQueryTemp' (temp 3-component vector of uint) 0:110 textureSize (temp 3-component vector of uint) -0:110 'g_tTex3di4' (uniform itexture3D) +0:110 'g_tTex2du4a' (uniform utexture2DArray) 0:110 Constant: 0:110 6 (const uint) 0:110 move second child to first child (temp uint) @@ -562,7 +458,7 @@ gl_FragCoord origin is upper left 0:110 Constant: 0:110 1 (const int) 0:110 move second child to first child (temp uint) -0:110 'DepthU' (temp uint) +0:110 'ElementsU' (temp uint) 0:110 direct index (temp uint) 0:110 'sizeQueryTemp' (temp 3-component vector of uint) 0:110 Constant: @@ -570,12 +466,12 @@ gl_FragCoord origin is upper left 0:110 move second child to first child (temp uint) 0:110 'NumberOfLevelsU' (temp uint) 0:110 textureQueryLevels (temp uint) -0:110 'g_tTex3di4' (uniform itexture3D) +0:110 'g_tTex2du4a' (uniform utexture2DArray) 0:113 Sequence 0:113 move second child to first child (temp 3-component vector of uint) 0:113 'sizeQueryTemp' (temp 3-component vector of uint) 0:113 textureSize (temp 3-component vector of uint) -0:113 'g_tTex3du4' (uniform utexture3D) +0:113 'g_tTex3df4' (uniform texture3D) 0:113 move second child to first child (temp uint) 0:113 'WidthU' (temp uint) 0:113 direct index (temp uint) @@ -598,7 +494,7 @@ gl_FragCoord origin is upper left 0:114 move second child to first child (temp 3-component vector of uint) 0:114 'sizeQueryTemp' (temp 3-component vector of uint) 0:114 textureSize (temp 3-component vector of uint) -0:114 'g_tTex3du4' (uniform utexture3D) +0:114 'g_tTex3df4' (uniform texture3D) 0:114 Constant: 0:114 6 (const uint) 0:114 move second child to first child (temp uint) @@ -622,92 +518,116 @@ gl_FragCoord origin is upper left 0:114 move second child to first child (temp uint) 0:114 'NumberOfLevelsU' (temp uint) 0:114 textureQueryLevels (temp uint) -0:114 'g_tTex3du4' (uniform utexture3D) +0:114 'g_tTex3df4' (uniform texture3D) 0:117 Sequence -0:117 move second child to first child (temp 2-component vector of uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) -0:117 textureSize (temp 2-component vector of uint) -0:117 'g_tTexcdf4' (uniform textureCube) +0:117 move second child to first child (temp 3-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) +0:117 textureSize (temp 3-component vector of uint) +0:117 'g_tTex3di4' (uniform itexture3D) 0:117 move second child to first child (temp uint) 0:117 'WidthU' (temp uint) 0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) 0:117 Constant: 0:117 0 (const int) 0:117 move second child to first child (temp uint) 0:117 'HeightU' (temp uint) 0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) 0:117 Constant: 0:117 1 (const int) +0:117 move second child to first child (temp uint) +0:117 'DepthU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) +0:117 Constant: +0:117 2 (const int) 0:118 Sequence -0:118 move second child to first child (temp 2-component vector of uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) -0:118 textureSize (temp 2-component vector of uint) -0:118 'g_tTexcdf4' (uniform textureCube) +0:118 move second child to first child (temp 3-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) +0:118 textureSize (temp 3-component vector of uint) +0:118 'g_tTex3di4' (uniform itexture3D) 0:118 Constant: 0:118 6 (const uint) 0:118 move second child to first child (temp uint) 0:118 'WidthU' (temp uint) 0:118 direct index (temp uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) 0:118 Constant: 0:118 0 (const int) 0:118 move second child to first child (temp uint) 0:118 'HeightU' (temp uint) 0:118 direct index (temp uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) 0:118 Constant: 0:118 1 (const int) 0:118 move second child to first child (temp uint) +0:118 'DepthU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) +0:118 Constant: +0:118 2 (const int) +0:118 move second child to first child (temp uint) 0:118 'NumberOfLevelsU' (temp uint) 0:118 textureQueryLevels (temp uint) -0:118 'g_tTexcdf4' (uniform textureCube) +0:118 'g_tTex3di4' (uniform itexture3D) 0:121 Sequence -0:121 move second child to first child (temp 2-component vector of uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) -0:121 textureSize (temp 2-component vector of uint) -0:121 'g_tTexcdi4' (uniform itextureCube) +0:121 move second child to first child (temp 3-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) +0:121 textureSize (temp 3-component vector of uint) +0:121 'g_tTex3du4' (uniform utexture3D) 0:121 move second child to first child (temp uint) 0:121 'WidthU' (temp uint) 0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) 0:121 Constant: 0:121 0 (const int) 0:121 move second child to first child (temp uint) 0:121 'HeightU' (temp uint) 0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) 0:121 Constant: 0:121 1 (const int) +0:121 move second child to first child (temp uint) +0:121 'DepthU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) +0:121 Constant: +0:121 2 (const int) 0:122 Sequence -0:122 move second child to first child (temp 2-component vector of uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) -0:122 textureSize (temp 2-component vector of uint) -0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 move second child to first child (temp 3-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) +0:122 textureSize (temp 3-component vector of uint) +0:122 'g_tTex3du4' (uniform utexture3D) 0:122 Constant: 0:122 6 (const uint) 0:122 move second child to first child (temp uint) 0:122 'WidthU' (temp uint) 0:122 direct index (temp uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) 0:122 Constant: 0:122 0 (const int) 0:122 move second child to first child (temp uint) 0:122 'HeightU' (temp uint) 0:122 direct index (temp uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) 0:122 Constant: 0:122 1 (const int) 0:122 move second child to first child (temp uint) +0:122 'DepthU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) +0:122 Constant: +0:122 2 (const int) +0:122 move second child to first child (temp uint) 0:122 'NumberOfLevelsU' (temp uint) 0:122 textureQueryLevels (temp uint) -0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 'g_tTex3du4' (uniform utexture3D) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of uint) 0:125 'sizeQueryTemp' (temp 2-component vector of uint) 0:125 textureSize (temp 2-component vector of uint) -0:125 'g_tTexcdu4' (uniform utextureCube) +0:125 'g_tTexcdf4' (uniform textureCube) 0:125 move second child to first child (temp uint) 0:125 'WidthU' (temp uint) 0:125 direct index (temp uint) @@ -724,7 +644,7 @@ gl_FragCoord origin is upper left 0:126 move second child to first child (temp 2-component vector of uint) 0:126 'sizeQueryTemp' (temp 2-component vector of uint) 0:126 textureSize (temp 2-component vector of uint) -0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 'g_tTexcdf4' (uniform textureCube) 0:126 Constant: 0:126 6 (const uint) 0:126 move second child to first child (temp uint) @@ -742,116 +662,92 @@ gl_FragCoord origin is upper left 0:126 move second child to first child (temp uint) 0:126 'NumberOfLevelsU' (temp uint) 0:126 textureQueryLevels (temp uint) -0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 'g_tTexcdf4' (uniform textureCube) 0:129 Sequence -0:129 move second child to first child (temp 3-component vector of uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) -0:129 textureSize (temp 3-component vector of uint) -0:129 'g_tTexcdf4a' (uniform textureCubeArray) +0:129 move second child to first child (temp 2-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) +0:129 textureSize (temp 2-component vector of uint) +0:129 'g_tTexcdi4' (uniform itextureCube) 0:129 move second child to first child (temp uint) 0:129 'WidthU' (temp uint) 0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) 0:129 Constant: 0:129 0 (const int) 0:129 move second child to first child (temp uint) 0:129 'HeightU' (temp uint) 0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) 0:129 Constant: 0:129 1 (const int) -0:129 move second child to first child (temp uint) -0:129 'ElementsU' (temp uint) -0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) -0:129 Constant: -0:129 2 (const int) 0:130 Sequence -0:130 move second child to first child (temp 3-component vector of uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) -0:130 textureSize (temp 3-component vector of uint) -0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 move second child to first child (temp 2-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) +0:130 textureSize (temp 2-component vector of uint) +0:130 'g_tTexcdi4' (uniform itextureCube) 0:130 Constant: 0:130 6 (const uint) 0:130 move second child to first child (temp uint) 0:130 'WidthU' (temp uint) 0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) 0:130 Constant: 0:130 0 (const int) 0:130 move second child to first child (temp uint) 0:130 'HeightU' (temp uint) 0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) 0:130 Constant: 0:130 1 (const int) 0:130 move second child to first child (temp uint) -0:130 'ElementsU' (temp uint) -0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) -0:130 Constant: -0:130 2 (const int) -0:130 move second child to first child (temp uint) 0:130 'NumberOfLevelsU' (temp uint) 0:130 textureQueryLevels (temp uint) -0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 'g_tTexcdi4' (uniform itextureCube) 0:133 Sequence -0:133 move second child to first child (temp 3-component vector of uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) -0:133 textureSize (temp 3-component vector of uint) -0:133 'g_tTexcdi4a' (uniform itextureCubeArray) +0:133 move second child to first child (temp 2-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) +0:133 textureSize (temp 2-component vector of uint) +0:133 'g_tTexcdu4' (uniform utextureCube) 0:133 move second child to first child (temp uint) 0:133 'WidthU' (temp uint) 0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) 0:133 Constant: 0:133 0 (const int) 0:133 move second child to first child (temp uint) 0:133 'HeightU' (temp uint) 0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) 0:133 Constant: 0:133 1 (const int) -0:133 move second child to first child (temp uint) -0:133 'ElementsU' (temp uint) -0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) -0:133 Constant: -0:133 2 (const int) 0:134 Sequence -0:134 move second child to first child (temp 3-component vector of uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) -0:134 textureSize (temp 3-component vector of uint) -0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 move second child to first child (temp 2-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) +0:134 textureSize (temp 2-component vector of uint) +0:134 'g_tTexcdu4' (uniform utextureCube) 0:134 Constant: 0:134 6 (const uint) 0:134 move second child to first child (temp uint) 0:134 'WidthU' (temp uint) 0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) 0:134 Constant: 0:134 0 (const int) 0:134 move second child to first child (temp uint) 0:134 'HeightU' (temp uint) 0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) 0:134 Constant: 0:134 1 (const int) 0:134 move second child to first child (temp uint) -0:134 'ElementsU' (temp uint) -0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) -0:134 Constant: -0:134 2 (const int) -0:134 move second child to first child (temp uint) 0:134 'NumberOfLevelsU' (temp uint) 0:134 textureQueryLevels (temp uint) -0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 'g_tTexcdu4' (uniform utextureCube) 0:137 Sequence 0:137 move second child to first child (temp 3-component vector of uint) 0:137 'sizeQueryTemp' (temp 3-component vector of uint) 0:137 textureSize (temp 3-component vector of uint) -0:137 'g_tTexcdu4a' (uniform utextureCubeArray) +0:137 'g_tTexcdf4a' (uniform textureCubeArray) 0:137 move second child to first child (temp uint) 0:137 'WidthU' (temp uint) 0:137 direct index (temp uint) @@ -874,7 +770,7 @@ gl_FragCoord origin is upper left 0:138 move second child to first child (temp 3-component vector of uint) 0:138 'sizeQueryTemp' (temp 3-component vector of uint) 0:138 textureSize (temp 3-component vector of uint) -0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:138 'g_tTexcdf4a' (uniform textureCubeArray) 0:138 Constant: 0:138 6 (const uint) 0:138 move second child to first child (temp uint) @@ -898,16 +794,264 @@ gl_FragCoord origin is upper left 0:138 move second child to first child (temp uint) 0:138 'NumberOfLevelsU' (temp uint) 0:138 textureQueryLevels (temp uint) -0:138 'g_tTexcdu4a' (uniform utextureCubeArray) -0:234 move second child to first child (temp float) -0:234 Depth: direct index for structure (temp float FragDepth) -0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 1.000000 -0:236 Branch: Return with expression -0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:138 'g_tTexcdf4a' (uniform textureCubeArray) +0:141 Sequence +0:141 move second child to first child (temp 3-component vector of uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 textureSize (temp 3-component vector of uint) +0:141 'g_tTexcdi4a' (uniform itextureCubeArray) +0:141 move second child to first child (temp uint) +0:141 'WidthU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child (temp uint) +0:141 'HeightU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 1 (const int) +0:141 move second child to first child (temp uint) +0:141 'ElementsU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 2 (const int) +0:142 Sequence +0:142 move second child to first child (temp 3-component vector of uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 textureSize (temp 3-component vector of uint) +0:142 'g_tTexcdi4a' (uniform itextureCubeArray) +0:142 Constant: +0:142 6 (const uint) +0:142 move second child to first child (temp uint) +0:142 'WidthU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 move second child to first child (temp uint) +0:142 'HeightU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 1 (const int) +0:142 move second child to first child (temp uint) +0:142 'ElementsU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 2 (const int) +0:142 move second child to first child (temp uint) +0:142 'NumberOfLevelsU' (temp uint) +0:142 textureQueryLevels (temp uint) +0:142 'g_tTexcdi4a' (uniform itextureCubeArray) +0:145 Sequence +0:145 move second child to first child (temp 3-component vector of uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 textureSize (temp 3-component vector of uint) +0:145 'g_tTexcdu4a' (uniform utextureCubeArray) +0:145 move second child to first child (temp uint) +0:145 'WidthU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child (temp uint) +0:145 'HeightU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 1 (const int) +0:145 move second child to first child (temp uint) +0:145 'ElementsU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 2 (const int) +0:146 Sequence +0:146 move second child to first child (temp 3-component vector of uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 textureSize (temp 3-component vector of uint) +0:146 'g_tTexcdu4a' (uniform utextureCubeArray) +0:146 Constant: +0:146 6 (const uint) +0:146 move second child to first child (temp uint) +0:146 'WidthU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 move second child to first child (temp uint) +0:146 'HeightU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 1 (const int) +0:146 move second child to first child (temp uint) +0:146 'ElementsU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 2 (const int) +0:146 move second child to first child (temp uint) +0:146 'NumberOfLevelsU' (temp uint) +0:146 textureQueryLevels (temp uint) +0:146 'g_tTexcdu4a' (uniform utextureCubeArray) +0:149 Sequence +0:149 move second child to first child (temp 2-component vector of uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 textureSize (temp 2-component vector of uint) +0:149 'g_tTex2dmsf4' (uniform texture2DMS) +0:149 move second child to first child (temp uint) +0:149 'WidthU' (temp uint) +0:149 direct index (temp uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 move second child to first child (temp uint) +0:149 'HeightU' (temp uint) +0:149 direct index (temp uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 Constant: +0:149 1 (const int) +0:149 move second child to first child (temp uint) +0:149 'NumberOfSamplesU' (temp uint) +0:149 imageQuerySamples (temp uint) +0:149 'g_tTex2dmsf4' (uniform texture2DMS) +0:152 Sequence +0:152 move second child to first child (temp 2-component vector of uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 textureSize (temp 2-component vector of uint) +0:152 'g_tTex2dmsi4' (uniform itexture2DMS) +0:152 move second child to first child (temp uint) +0:152 'WidthU' (temp uint) +0:152 direct index (temp uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 move second child to first child (temp uint) +0:152 'HeightU' (temp uint) +0:152 direct index (temp uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 Constant: +0:152 1 (const int) +0:152 move second child to first child (temp uint) +0:152 'NumberOfSamplesU' (temp uint) +0:152 imageQuerySamples (temp uint) +0:152 'g_tTex2dmsi4' (uniform itexture2DMS) +0:155 Sequence +0:155 move second child to first child (temp 2-component vector of uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 textureSize (temp 2-component vector of uint) +0:155 'g_tTex2dmsu4' (uniform utexture2DMS) +0:155 move second child to first child (temp uint) +0:155 'WidthU' (temp uint) +0:155 direct index (temp uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 Constant: +0:155 0 (const int) +0:155 move second child to first child (temp uint) +0:155 'HeightU' (temp uint) +0:155 direct index (temp uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 Constant: +0:155 1 (const int) +0:155 move second child to first child (temp uint) +0:155 'NumberOfSamplesU' (temp uint) +0:155 imageQuerySamples (temp uint) +0:155 'g_tTex2dmsu4' (uniform utexture2DMS) +0:158 Sequence +0:158 move second child to first child (temp 3-component vector of uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 textureSize (temp 3-component vector of uint) +0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:158 move second child to first child (temp uint) +0:158 'WidthU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 0 (const int) +0:158 move second child to first child (temp uint) +0:158 'HeightU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 1 (const int) +0:158 move second child to first child (temp uint) +0:158 'ElementsU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 2 (const int) +0:158 move second child to first child (temp uint) +0:158 'NumberOfSamplesU' (temp uint) +0:158 imageQuerySamples (temp uint) +0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:161 Sequence +0:161 move second child to first child (temp 3-component vector of uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 textureSize (temp 3-component vector of uint) +0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:161 move second child to first child (temp uint) +0:161 'WidthU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 0 (const int) +0:161 move second child to first child (temp uint) +0:161 'HeightU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 1 (const int) +0:161 move second child to first child (temp uint) +0:161 'ElementsU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 2 (const int) +0:161 move second child to first child (temp uint) +0:161 'NumberOfSamplesU' (temp uint) +0:161 imageQuerySamples (temp uint) +0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:164 Sequence +0:164 move second child to first child (temp 3-component vector of uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 textureSize (temp 3-component vector of uint) +0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:164 move second child to first child (temp uint) +0:164 'WidthU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 0 (const int) +0:164 move second child to first child (temp uint) +0:164 'HeightU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 1 (const int) +0:164 move second child to first child (temp uint) +0:164 'ElementsU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 2 (const int) +0:164 move second child to first child (temp uint) +0:164 'NumberOfSamplesU' (temp uint) +0:164 imageQuerySamples (temp uint) +0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:277 move second child to first child (temp float) +0:277 Depth: direct index for structure (temp float FragDepth) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 Constant: +0:277 1 (const int) +0:277 Constant: +0:277 1.000000 +0:279 Branch: Return with expression +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df4' (uniform texture1D) @@ -931,6 +1075,12 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +0:? 'g_tTex2dmsu4' (uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) Linked fragment stage: @@ -939,58 +1089,14 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 Function Parameters: +0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Parameters: 0:? Sequence -0:57 Sequence -0:57 move second child to first child (temp uint) -0:57 'sizeQueryTemp' (temp uint) -0:57 textureSize (temp uint) -0:57 'g_tTex1df4' (uniform texture1D) -0:57 move second child to first child (temp uint) -0:57 'WidthU' (temp uint) -0:57 'sizeQueryTemp' (temp uint) -0:58 Sequence -0:58 move second child to first child (temp uint) -0:58 'sizeQueryTemp' (temp uint) -0:58 textureSize (temp uint) -0:58 'g_tTex1df4' (uniform texture1D) -0:58 Constant: -0:58 6 (const uint) -0:58 move second child to first child (temp uint) -0:58 'WidthU' (temp uint) -0:58 'sizeQueryTemp' (temp uint) -0:58 move second child to first child (temp uint) -0:58 'NumberOfLevelsU' (temp uint) -0:58 textureQueryLevels (temp uint) -0:58 'g_tTex1df4' (uniform texture1D) -0:61 Sequence -0:61 move second child to first child (temp uint) -0:61 'sizeQueryTemp' (temp uint) -0:61 textureSize (temp uint) -0:61 'g_tTex1di4' (uniform itexture1D) -0:61 move second child to first child (temp uint) -0:61 'WidthU' (temp uint) -0:61 'sizeQueryTemp' (temp uint) -0:62 Sequence -0:62 move second child to first child (temp uint) -0:62 'sizeQueryTemp' (temp uint) -0:62 textureSize (temp uint) -0:62 'g_tTex1di4' (uniform itexture1D) -0:62 Constant: -0:62 6 (const uint) -0:62 move second child to first child (temp uint) -0:62 'WidthU' (temp uint) -0:62 'sizeQueryTemp' (temp uint) -0:62 move second child to first child (temp uint) -0:62 'NumberOfLevelsU' (temp uint) -0:62 textureQueryLevels (temp uint) -0:62 'g_tTex1di4' (uniform itexture1D) 0:65 Sequence 0:65 move second child to first child (temp uint) 0:65 'sizeQueryTemp' (temp uint) 0:65 textureSize (temp uint) -0:65 'g_tTex1du4' (uniform utexture1D) +0:65 'g_tTex1df4' (uniform texture1D) 0:65 move second child to first child (temp uint) 0:65 'WidthU' (temp uint) 0:65 'sizeQueryTemp' (temp uint) @@ -998,7 +1104,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'sizeQueryTemp' (temp uint) 0:66 textureSize (temp uint) -0:66 'g_tTex1du4' (uniform utexture1D) +0:66 'g_tTex1df4' (uniform texture1D) 0:66 Constant: 0:66 6 (const uint) 0:66 move second child to first child (temp uint) @@ -1007,92 +1113,56 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'NumberOfLevelsU' (temp uint) 0:66 textureQueryLevels (temp uint) -0:66 'g_tTex1du4' (uniform utexture1D) +0:66 'g_tTex1df4' (uniform texture1D) 0:69 Sequence -0:69 move second child to first child (temp 2-component vector of uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 textureSize (temp 2-component vector of uint) -0:69 'g_tTex1df4a' (uniform texture1DArray) +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 textureSize (temp uint) +0:69 'g_tTex1di4' (uniform itexture1D) 0:69 move second child to first child (temp uint) 0:69 'WidthU' (temp uint) -0:69 direct index (temp uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 Constant: -0:69 0 (const int) -0:69 move second child to first child (temp uint) -0:69 'ElementsU' (temp uint) -0:69 direct index (temp uint) -0:69 'sizeQueryTemp' (temp 2-component vector of uint) -0:69 Constant: -0:69 1 (const int) +0:69 'sizeQueryTemp' (temp uint) 0:70 Sequence -0:70 move second child to first child (temp 2-component vector of uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 textureSize (temp 2-component vector of uint) -0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1di4' (uniform itexture1D) 0:70 Constant: 0:70 6 (const uint) 0:70 move second child to first child (temp uint) 0:70 'WidthU' (temp uint) -0:70 direct index (temp uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 Constant: -0:70 0 (const int) -0:70 move second child to first child (temp uint) -0:70 'ElementsU' (temp uint) -0:70 direct index (temp uint) -0:70 'sizeQueryTemp' (temp 2-component vector of uint) -0:70 Constant: -0:70 1 (const int) +0:70 'sizeQueryTemp' (temp uint) 0:70 move second child to first child (temp uint) 0:70 'NumberOfLevelsU' (temp uint) 0:70 textureQueryLevels (temp uint) -0:70 'g_tTex1df4a' (uniform texture1DArray) +0:70 'g_tTex1di4' (uniform itexture1D) 0:73 Sequence -0:73 move second child to first child (temp 2-component vector of uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 textureSize (temp 2-component vector of uint) -0:73 'g_tTex1di4a' (uniform itexture1DArray) +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1du4' (uniform utexture1D) 0:73 move second child to first child (temp uint) 0:73 'WidthU' (temp uint) -0:73 direct index (temp uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 Constant: -0:73 0 (const int) -0:73 move second child to first child (temp uint) -0:73 'ElementsU' (temp uint) -0:73 direct index (temp uint) -0:73 'sizeQueryTemp' (temp 2-component vector of uint) -0:73 Constant: -0:73 1 (const int) +0:73 'sizeQueryTemp' (temp uint) 0:74 Sequence -0:74 move second child to first child (temp 2-component vector of uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 textureSize (temp 2-component vector of uint) -0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 move second child to first child (temp uint) +0:74 'sizeQueryTemp' (temp uint) +0:74 textureSize (temp uint) +0:74 'g_tTex1du4' (uniform utexture1D) 0:74 Constant: 0:74 6 (const uint) 0:74 move second child to first child (temp uint) 0:74 'WidthU' (temp uint) -0:74 direct index (temp uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 Constant: -0:74 0 (const int) -0:74 move second child to first child (temp uint) -0:74 'ElementsU' (temp uint) -0:74 direct index (temp uint) -0:74 'sizeQueryTemp' (temp 2-component vector of uint) -0:74 Constant: -0:74 1 (const int) +0:74 'sizeQueryTemp' (temp uint) 0:74 move second child to first child (temp uint) 0:74 'NumberOfLevelsU' (temp uint) 0:74 textureQueryLevels (temp uint) -0:74 'g_tTex1di4a' (uniform itexture1DArray) +0:74 'g_tTex1du4' (uniform utexture1D) 0:77 Sequence 0:77 move second child to first child (temp 2-component vector of uint) 0:77 'sizeQueryTemp' (temp 2-component vector of uint) 0:77 textureSize (temp 2-component vector of uint) -0:77 'g_tTex1du4a' (uniform utexture1DArray) +0:77 'g_tTex1df4a' (uniform texture1DArray) 0:77 move second child to first child (temp uint) 0:77 'WidthU' (temp uint) 0:77 direct index (temp uint) @@ -1109,7 +1179,7 @@ gl_FragCoord origin is upper left 0:78 move second child to first child (temp 2-component vector of uint) 0:78 'sizeQueryTemp' (temp 2-component vector of uint) 0:78 textureSize (temp 2-component vector of uint) -0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 'g_tTex1df4a' (uniform texture1DArray) 0:78 Constant: 0:78 6 (const uint) 0:78 move second child to first child (temp uint) @@ -1127,12 +1197,12 @@ gl_FragCoord origin is upper left 0:78 move second child to first child (temp uint) 0:78 'NumberOfLevelsU' (temp uint) 0:78 textureQueryLevels (temp uint) -0:78 'g_tTex1du4a' (uniform utexture1DArray) +0:78 'g_tTex1df4a' (uniform texture1DArray) 0:81 Sequence 0:81 move second child to first child (temp 2-component vector of uint) 0:81 'sizeQueryTemp' (temp 2-component vector of uint) 0:81 textureSize (temp 2-component vector of uint) -0:81 'g_tTex2df4' (uniform texture2D) +0:81 'g_tTex1di4a' (uniform itexture1DArray) 0:81 move second child to first child (temp uint) 0:81 'WidthU' (temp uint) 0:81 direct index (temp uint) @@ -1140,7 +1210,7 @@ gl_FragCoord origin is upper left 0:81 Constant: 0:81 0 (const int) 0:81 move second child to first child (temp uint) -0:81 'HeightU' (temp uint) +0:81 'ElementsU' (temp uint) 0:81 direct index (temp uint) 0:81 'sizeQueryTemp' (temp 2-component vector of uint) 0:81 Constant: @@ -1149,7 +1219,7 @@ gl_FragCoord origin is upper left 0:82 move second child to first child (temp 2-component vector of uint) 0:82 'sizeQueryTemp' (temp 2-component vector of uint) 0:82 textureSize (temp 2-component vector of uint) -0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_tTex1di4a' (uniform itexture1DArray) 0:82 Constant: 0:82 6 (const uint) 0:82 move second child to first child (temp uint) @@ -1159,7 +1229,7 @@ gl_FragCoord origin is upper left 0:82 Constant: 0:82 0 (const int) 0:82 move second child to first child (temp uint) -0:82 'HeightU' (temp uint) +0:82 'ElementsU' (temp uint) 0:82 direct index (temp uint) 0:82 'sizeQueryTemp' (temp 2-component vector of uint) 0:82 Constant: @@ -1167,12 +1237,12 @@ gl_FragCoord origin is upper left 0:82 move second child to first child (temp uint) 0:82 'NumberOfLevelsU' (temp uint) 0:82 textureQueryLevels (temp uint) -0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_tTex1di4a' (uniform itexture1DArray) 0:85 Sequence 0:85 move second child to first child (temp 2-component vector of uint) 0:85 'sizeQueryTemp' (temp 2-component vector of uint) 0:85 textureSize (temp 2-component vector of uint) -0:85 'g_tTex2di4' (uniform itexture2D) +0:85 'g_tTex1du4a' (uniform utexture1DArray) 0:85 move second child to first child (temp uint) 0:85 'WidthU' (temp uint) 0:85 direct index (temp uint) @@ -1180,7 +1250,7 @@ gl_FragCoord origin is upper left 0:85 Constant: 0:85 0 (const int) 0:85 move second child to first child (temp uint) -0:85 'HeightU' (temp uint) +0:85 'ElementsU' (temp uint) 0:85 direct index (temp uint) 0:85 'sizeQueryTemp' (temp 2-component vector of uint) 0:85 Constant: @@ -1189,7 +1259,7 @@ gl_FragCoord origin is upper left 0:86 move second child to first child (temp 2-component vector of uint) 0:86 'sizeQueryTemp' (temp 2-component vector of uint) 0:86 textureSize (temp 2-component vector of uint) -0:86 'g_tTex2di4' (uniform itexture2D) +0:86 'g_tTex1du4a' (uniform utexture1DArray) 0:86 Constant: 0:86 6 (const uint) 0:86 move second child to first child (temp uint) @@ -1199,7 +1269,7 @@ gl_FragCoord origin is upper left 0:86 Constant: 0:86 0 (const int) 0:86 move second child to first child (temp uint) -0:86 'HeightU' (temp uint) +0:86 'ElementsU' (temp uint) 0:86 direct index (temp uint) 0:86 'sizeQueryTemp' (temp 2-component vector of uint) 0:86 Constant: @@ -1207,12 +1277,12 @@ gl_FragCoord origin is upper left 0:86 move second child to first child (temp uint) 0:86 'NumberOfLevelsU' (temp uint) 0:86 textureQueryLevels (temp uint) -0:86 'g_tTex2di4' (uniform itexture2D) +0:86 'g_tTex1du4a' (uniform utexture1DArray) 0:89 Sequence 0:89 move second child to first child (temp 2-component vector of uint) 0:89 'sizeQueryTemp' (temp 2-component vector of uint) 0:89 textureSize (temp 2-component vector of uint) -0:89 'g_tTex2du4' (uniform utexture2D) +0:89 'g_tTex2df4' (uniform texture2D) 0:89 move second child to first child (temp uint) 0:89 'WidthU' (temp uint) 0:89 direct index (temp uint) @@ -1229,7 +1299,7 @@ gl_FragCoord origin is upper left 0:90 move second child to first child (temp 2-component vector of uint) 0:90 'sizeQueryTemp' (temp 2-component vector of uint) 0:90 textureSize (temp 2-component vector of uint) -0:90 'g_tTex2du4' (uniform utexture2D) +0:90 'g_tTex2df4' (uniform texture2D) 0:90 Constant: 0:90 6 (const uint) 0:90 move second child to first child (temp uint) @@ -1247,116 +1317,92 @@ gl_FragCoord origin is upper left 0:90 move second child to first child (temp uint) 0:90 'NumberOfLevelsU' (temp uint) 0:90 textureQueryLevels (temp uint) -0:90 'g_tTex2du4' (uniform utexture2D) +0:90 'g_tTex2df4' (uniform texture2D) 0:93 Sequence -0:93 move second child to first child (temp 3-component vector of uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) -0:93 textureSize (temp 3-component vector of uint) -0:93 'g_tTex2df4a' (uniform texture2DArray) +0:93 move second child to first child (temp 2-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) +0:93 textureSize (temp 2-component vector of uint) +0:93 'g_tTex2di4' (uniform itexture2D) 0:93 move second child to first child (temp uint) 0:93 'WidthU' (temp uint) 0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) 0:93 Constant: 0:93 0 (const int) 0:93 move second child to first child (temp uint) 0:93 'HeightU' (temp uint) 0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) +0:93 'sizeQueryTemp' (temp 2-component vector of uint) 0:93 Constant: 0:93 1 (const int) -0:93 move second child to first child (temp uint) -0:93 'ElementsU' (temp uint) -0:93 direct index (temp uint) -0:93 'sizeQueryTemp' (temp 3-component vector of uint) -0:93 Constant: -0:93 2 (const int) 0:94 Sequence -0:94 move second child to first child (temp 3-component vector of uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) -0:94 textureSize (temp 3-component vector of uint) -0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 move second child to first child (temp 2-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) +0:94 textureSize (temp 2-component vector of uint) +0:94 'g_tTex2di4' (uniform itexture2D) 0:94 Constant: 0:94 6 (const uint) 0:94 move second child to first child (temp uint) 0:94 'WidthU' (temp uint) 0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) 0:94 Constant: 0:94 0 (const int) 0:94 move second child to first child (temp uint) 0:94 'HeightU' (temp uint) 0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) +0:94 'sizeQueryTemp' (temp 2-component vector of uint) 0:94 Constant: 0:94 1 (const int) 0:94 move second child to first child (temp uint) -0:94 'ElementsU' (temp uint) -0:94 direct index (temp uint) -0:94 'sizeQueryTemp' (temp 3-component vector of uint) -0:94 Constant: -0:94 2 (const int) -0:94 move second child to first child (temp uint) 0:94 'NumberOfLevelsU' (temp uint) 0:94 textureQueryLevels (temp uint) -0:94 'g_tTex2df4a' (uniform texture2DArray) +0:94 'g_tTex2di4' (uniform itexture2D) 0:97 Sequence -0:97 move second child to first child (temp 3-component vector of uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) -0:97 textureSize (temp 3-component vector of uint) -0:97 'g_tTex2di4a' (uniform itexture2DArray) +0:97 move second child to first child (temp 2-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) +0:97 textureSize (temp 2-component vector of uint) +0:97 'g_tTex2du4' (uniform utexture2D) 0:97 move second child to first child (temp uint) 0:97 'WidthU' (temp uint) 0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) 0:97 Constant: 0:97 0 (const int) 0:97 move second child to first child (temp uint) 0:97 'HeightU' (temp uint) 0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) +0:97 'sizeQueryTemp' (temp 2-component vector of uint) 0:97 Constant: 0:97 1 (const int) -0:97 move second child to first child (temp uint) -0:97 'ElementsU' (temp uint) -0:97 direct index (temp uint) -0:97 'sizeQueryTemp' (temp 3-component vector of uint) -0:97 Constant: -0:97 2 (const int) 0:98 Sequence -0:98 move second child to first child (temp 3-component vector of uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) -0:98 textureSize (temp 3-component vector of uint) -0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) +0:98 textureSize (temp 2-component vector of uint) +0:98 'g_tTex2du4' (uniform utexture2D) 0:98 Constant: 0:98 6 (const uint) 0:98 move second child to first child (temp uint) 0:98 'WidthU' (temp uint) 0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) 0:98 Constant: 0:98 0 (const int) 0:98 move second child to first child (temp uint) 0:98 'HeightU' (temp uint) 0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) +0:98 'sizeQueryTemp' (temp 2-component vector of uint) 0:98 Constant: 0:98 1 (const int) 0:98 move second child to first child (temp uint) -0:98 'ElementsU' (temp uint) -0:98 direct index (temp uint) -0:98 'sizeQueryTemp' (temp 3-component vector of uint) -0:98 Constant: -0:98 2 (const int) -0:98 move second child to first child (temp uint) 0:98 'NumberOfLevelsU' (temp uint) 0:98 textureQueryLevels (temp uint) -0:98 'g_tTex2di4a' (uniform itexture2DArray) +0:98 'g_tTex2du4' (uniform utexture2D) 0:101 Sequence 0:101 move second child to first child (temp 3-component vector of uint) 0:101 'sizeQueryTemp' (temp 3-component vector of uint) 0:101 textureSize (temp 3-component vector of uint) -0:101 'g_tTex2du4a' (uniform utexture2DArray) +0:101 'g_tTex2df4a' (uniform texture2DArray) 0:101 move second child to first child (temp uint) 0:101 'WidthU' (temp uint) 0:101 direct index (temp uint) @@ -1379,7 +1425,7 @@ gl_FragCoord origin is upper left 0:102 move second child to first child (temp 3-component vector of uint) 0:102 'sizeQueryTemp' (temp 3-component vector of uint) 0:102 textureSize (temp 3-component vector of uint) -0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 'g_tTex2df4a' (uniform texture2DArray) 0:102 Constant: 0:102 6 (const uint) 0:102 move second child to first child (temp uint) @@ -1403,12 +1449,12 @@ gl_FragCoord origin is upper left 0:102 move second child to first child (temp uint) 0:102 'NumberOfLevelsU' (temp uint) 0:102 textureQueryLevels (temp uint) -0:102 'g_tTex2du4a' (uniform utexture2DArray) +0:102 'g_tTex2df4a' (uniform texture2DArray) 0:105 Sequence 0:105 move second child to first child (temp 3-component vector of uint) 0:105 'sizeQueryTemp' (temp 3-component vector of uint) 0:105 textureSize (temp 3-component vector of uint) -0:105 'g_tTex3df4' (uniform texture3D) +0:105 'g_tTex2di4a' (uniform itexture2DArray) 0:105 move second child to first child (temp uint) 0:105 'WidthU' (temp uint) 0:105 direct index (temp uint) @@ -1422,7 +1468,7 @@ gl_FragCoord origin is upper left 0:105 Constant: 0:105 1 (const int) 0:105 move second child to first child (temp uint) -0:105 'DepthU' (temp uint) +0:105 'ElementsU' (temp uint) 0:105 direct index (temp uint) 0:105 'sizeQueryTemp' (temp 3-component vector of uint) 0:105 Constant: @@ -1431,7 +1477,7 @@ gl_FragCoord origin is upper left 0:106 move second child to first child (temp 3-component vector of uint) 0:106 'sizeQueryTemp' (temp 3-component vector of uint) 0:106 textureSize (temp 3-component vector of uint) -0:106 'g_tTex3df4' (uniform texture3D) +0:106 'g_tTex2di4a' (uniform itexture2DArray) 0:106 Constant: 0:106 6 (const uint) 0:106 move second child to first child (temp uint) @@ -1447,7 +1493,7 @@ gl_FragCoord origin is upper left 0:106 Constant: 0:106 1 (const int) 0:106 move second child to first child (temp uint) -0:106 'DepthU' (temp uint) +0:106 'ElementsU' (temp uint) 0:106 direct index (temp uint) 0:106 'sizeQueryTemp' (temp 3-component vector of uint) 0:106 Constant: @@ -1455,12 +1501,12 @@ gl_FragCoord origin is upper left 0:106 move second child to first child (temp uint) 0:106 'NumberOfLevelsU' (temp uint) 0:106 textureQueryLevels (temp uint) -0:106 'g_tTex3df4' (uniform texture3D) +0:106 'g_tTex2di4a' (uniform itexture2DArray) 0:109 Sequence 0:109 move second child to first child (temp 3-component vector of uint) 0:109 'sizeQueryTemp' (temp 3-component vector of uint) 0:109 textureSize (temp 3-component vector of uint) -0:109 'g_tTex3di4' (uniform itexture3D) +0:109 'g_tTex2du4a' (uniform utexture2DArray) 0:109 move second child to first child (temp uint) 0:109 'WidthU' (temp uint) 0:109 direct index (temp uint) @@ -1474,7 +1520,7 @@ gl_FragCoord origin is upper left 0:109 Constant: 0:109 1 (const int) 0:109 move second child to first child (temp uint) -0:109 'DepthU' (temp uint) +0:109 'ElementsU' (temp uint) 0:109 direct index (temp uint) 0:109 'sizeQueryTemp' (temp 3-component vector of uint) 0:109 Constant: @@ -1483,7 +1529,7 @@ gl_FragCoord origin is upper left 0:110 move second child to first child (temp 3-component vector of uint) 0:110 'sizeQueryTemp' (temp 3-component vector of uint) 0:110 textureSize (temp 3-component vector of uint) -0:110 'g_tTex3di4' (uniform itexture3D) +0:110 'g_tTex2du4a' (uniform utexture2DArray) 0:110 Constant: 0:110 6 (const uint) 0:110 move second child to first child (temp uint) @@ -1499,7 +1545,7 @@ gl_FragCoord origin is upper left 0:110 Constant: 0:110 1 (const int) 0:110 move second child to first child (temp uint) -0:110 'DepthU' (temp uint) +0:110 'ElementsU' (temp uint) 0:110 direct index (temp uint) 0:110 'sizeQueryTemp' (temp 3-component vector of uint) 0:110 Constant: @@ -1507,12 +1553,12 @@ gl_FragCoord origin is upper left 0:110 move second child to first child (temp uint) 0:110 'NumberOfLevelsU' (temp uint) 0:110 textureQueryLevels (temp uint) -0:110 'g_tTex3di4' (uniform itexture3D) +0:110 'g_tTex2du4a' (uniform utexture2DArray) 0:113 Sequence 0:113 move second child to first child (temp 3-component vector of uint) 0:113 'sizeQueryTemp' (temp 3-component vector of uint) 0:113 textureSize (temp 3-component vector of uint) -0:113 'g_tTex3du4' (uniform utexture3D) +0:113 'g_tTex3df4' (uniform texture3D) 0:113 move second child to first child (temp uint) 0:113 'WidthU' (temp uint) 0:113 direct index (temp uint) @@ -1535,7 +1581,7 @@ gl_FragCoord origin is upper left 0:114 move second child to first child (temp 3-component vector of uint) 0:114 'sizeQueryTemp' (temp 3-component vector of uint) 0:114 textureSize (temp 3-component vector of uint) -0:114 'g_tTex3du4' (uniform utexture3D) +0:114 'g_tTex3df4' (uniform texture3D) 0:114 Constant: 0:114 6 (const uint) 0:114 move second child to first child (temp uint) @@ -1559,92 +1605,116 @@ gl_FragCoord origin is upper left 0:114 move second child to first child (temp uint) 0:114 'NumberOfLevelsU' (temp uint) 0:114 textureQueryLevels (temp uint) -0:114 'g_tTex3du4' (uniform utexture3D) +0:114 'g_tTex3df4' (uniform texture3D) 0:117 Sequence -0:117 move second child to first child (temp 2-component vector of uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) -0:117 textureSize (temp 2-component vector of uint) -0:117 'g_tTexcdf4' (uniform textureCube) +0:117 move second child to first child (temp 3-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) +0:117 textureSize (temp 3-component vector of uint) +0:117 'g_tTex3di4' (uniform itexture3D) 0:117 move second child to first child (temp uint) 0:117 'WidthU' (temp uint) 0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) 0:117 Constant: 0:117 0 (const int) 0:117 move second child to first child (temp uint) 0:117 'HeightU' (temp uint) 0:117 direct index (temp uint) -0:117 'sizeQueryTemp' (temp 2-component vector of uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) 0:117 Constant: 0:117 1 (const int) +0:117 move second child to first child (temp uint) +0:117 'DepthU' (temp uint) +0:117 direct index (temp uint) +0:117 'sizeQueryTemp' (temp 3-component vector of uint) +0:117 Constant: +0:117 2 (const int) 0:118 Sequence -0:118 move second child to first child (temp 2-component vector of uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) -0:118 textureSize (temp 2-component vector of uint) -0:118 'g_tTexcdf4' (uniform textureCube) +0:118 move second child to first child (temp 3-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) +0:118 textureSize (temp 3-component vector of uint) +0:118 'g_tTex3di4' (uniform itexture3D) 0:118 Constant: 0:118 6 (const uint) 0:118 move second child to first child (temp uint) 0:118 'WidthU' (temp uint) 0:118 direct index (temp uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) 0:118 Constant: 0:118 0 (const int) 0:118 move second child to first child (temp uint) 0:118 'HeightU' (temp uint) 0:118 direct index (temp uint) -0:118 'sizeQueryTemp' (temp 2-component vector of uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) 0:118 Constant: 0:118 1 (const int) 0:118 move second child to first child (temp uint) +0:118 'DepthU' (temp uint) +0:118 direct index (temp uint) +0:118 'sizeQueryTemp' (temp 3-component vector of uint) +0:118 Constant: +0:118 2 (const int) +0:118 move second child to first child (temp uint) 0:118 'NumberOfLevelsU' (temp uint) 0:118 textureQueryLevels (temp uint) -0:118 'g_tTexcdf4' (uniform textureCube) +0:118 'g_tTex3di4' (uniform itexture3D) 0:121 Sequence -0:121 move second child to first child (temp 2-component vector of uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) -0:121 textureSize (temp 2-component vector of uint) -0:121 'g_tTexcdi4' (uniform itextureCube) +0:121 move second child to first child (temp 3-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) +0:121 textureSize (temp 3-component vector of uint) +0:121 'g_tTex3du4' (uniform utexture3D) 0:121 move second child to first child (temp uint) 0:121 'WidthU' (temp uint) 0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) 0:121 Constant: 0:121 0 (const int) 0:121 move second child to first child (temp uint) 0:121 'HeightU' (temp uint) 0:121 direct index (temp uint) -0:121 'sizeQueryTemp' (temp 2-component vector of uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) 0:121 Constant: 0:121 1 (const int) +0:121 move second child to first child (temp uint) +0:121 'DepthU' (temp uint) +0:121 direct index (temp uint) +0:121 'sizeQueryTemp' (temp 3-component vector of uint) +0:121 Constant: +0:121 2 (const int) 0:122 Sequence -0:122 move second child to first child (temp 2-component vector of uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) -0:122 textureSize (temp 2-component vector of uint) -0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 move second child to first child (temp 3-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) +0:122 textureSize (temp 3-component vector of uint) +0:122 'g_tTex3du4' (uniform utexture3D) 0:122 Constant: 0:122 6 (const uint) 0:122 move second child to first child (temp uint) 0:122 'WidthU' (temp uint) 0:122 direct index (temp uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) 0:122 Constant: 0:122 0 (const int) 0:122 move second child to first child (temp uint) 0:122 'HeightU' (temp uint) 0:122 direct index (temp uint) -0:122 'sizeQueryTemp' (temp 2-component vector of uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) 0:122 Constant: 0:122 1 (const int) 0:122 move second child to first child (temp uint) +0:122 'DepthU' (temp uint) +0:122 direct index (temp uint) +0:122 'sizeQueryTemp' (temp 3-component vector of uint) +0:122 Constant: +0:122 2 (const int) +0:122 move second child to first child (temp uint) 0:122 'NumberOfLevelsU' (temp uint) 0:122 textureQueryLevels (temp uint) -0:122 'g_tTexcdi4' (uniform itextureCube) +0:122 'g_tTex3du4' (uniform utexture3D) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of uint) 0:125 'sizeQueryTemp' (temp 2-component vector of uint) 0:125 textureSize (temp 2-component vector of uint) -0:125 'g_tTexcdu4' (uniform utextureCube) +0:125 'g_tTexcdf4' (uniform textureCube) 0:125 move second child to first child (temp uint) 0:125 'WidthU' (temp uint) 0:125 direct index (temp uint) @@ -1661,7 +1731,7 @@ gl_FragCoord origin is upper left 0:126 move second child to first child (temp 2-component vector of uint) 0:126 'sizeQueryTemp' (temp 2-component vector of uint) 0:126 textureSize (temp 2-component vector of uint) -0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 'g_tTexcdf4' (uniform textureCube) 0:126 Constant: 0:126 6 (const uint) 0:126 move second child to first child (temp uint) @@ -1679,116 +1749,92 @@ gl_FragCoord origin is upper left 0:126 move second child to first child (temp uint) 0:126 'NumberOfLevelsU' (temp uint) 0:126 textureQueryLevels (temp uint) -0:126 'g_tTexcdu4' (uniform utextureCube) +0:126 'g_tTexcdf4' (uniform textureCube) 0:129 Sequence -0:129 move second child to first child (temp 3-component vector of uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) -0:129 textureSize (temp 3-component vector of uint) -0:129 'g_tTexcdf4a' (uniform textureCubeArray) +0:129 move second child to first child (temp 2-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) +0:129 textureSize (temp 2-component vector of uint) +0:129 'g_tTexcdi4' (uniform itextureCube) 0:129 move second child to first child (temp uint) 0:129 'WidthU' (temp uint) 0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) 0:129 Constant: 0:129 0 (const int) 0:129 move second child to first child (temp uint) 0:129 'HeightU' (temp uint) 0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) +0:129 'sizeQueryTemp' (temp 2-component vector of uint) 0:129 Constant: 0:129 1 (const int) -0:129 move second child to first child (temp uint) -0:129 'ElementsU' (temp uint) -0:129 direct index (temp uint) -0:129 'sizeQueryTemp' (temp 3-component vector of uint) -0:129 Constant: -0:129 2 (const int) 0:130 Sequence -0:130 move second child to first child (temp 3-component vector of uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) -0:130 textureSize (temp 3-component vector of uint) -0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 move second child to first child (temp 2-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) +0:130 textureSize (temp 2-component vector of uint) +0:130 'g_tTexcdi4' (uniform itextureCube) 0:130 Constant: 0:130 6 (const uint) 0:130 move second child to first child (temp uint) 0:130 'WidthU' (temp uint) 0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) 0:130 Constant: 0:130 0 (const int) 0:130 move second child to first child (temp uint) 0:130 'HeightU' (temp uint) 0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) +0:130 'sizeQueryTemp' (temp 2-component vector of uint) 0:130 Constant: 0:130 1 (const int) 0:130 move second child to first child (temp uint) -0:130 'ElementsU' (temp uint) -0:130 direct index (temp uint) -0:130 'sizeQueryTemp' (temp 3-component vector of uint) -0:130 Constant: -0:130 2 (const int) -0:130 move second child to first child (temp uint) 0:130 'NumberOfLevelsU' (temp uint) 0:130 textureQueryLevels (temp uint) -0:130 'g_tTexcdf4a' (uniform textureCubeArray) +0:130 'g_tTexcdi4' (uniform itextureCube) 0:133 Sequence -0:133 move second child to first child (temp 3-component vector of uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) -0:133 textureSize (temp 3-component vector of uint) -0:133 'g_tTexcdi4a' (uniform itextureCubeArray) +0:133 move second child to first child (temp 2-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) +0:133 textureSize (temp 2-component vector of uint) +0:133 'g_tTexcdu4' (uniform utextureCube) 0:133 move second child to first child (temp uint) 0:133 'WidthU' (temp uint) 0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) 0:133 Constant: 0:133 0 (const int) 0:133 move second child to first child (temp uint) 0:133 'HeightU' (temp uint) 0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) +0:133 'sizeQueryTemp' (temp 2-component vector of uint) 0:133 Constant: 0:133 1 (const int) -0:133 move second child to first child (temp uint) -0:133 'ElementsU' (temp uint) -0:133 direct index (temp uint) -0:133 'sizeQueryTemp' (temp 3-component vector of uint) -0:133 Constant: -0:133 2 (const int) 0:134 Sequence -0:134 move second child to first child (temp 3-component vector of uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) -0:134 textureSize (temp 3-component vector of uint) -0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 move second child to first child (temp 2-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) +0:134 textureSize (temp 2-component vector of uint) +0:134 'g_tTexcdu4' (uniform utextureCube) 0:134 Constant: 0:134 6 (const uint) 0:134 move second child to first child (temp uint) 0:134 'WidthU' (temp uint) 0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) 0:134 Constant: 0:134 0 (const int) 0:134 move second child to first child (temp uint) 0:134 'HeightU' (temp uint) 0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) +0:134 'sizeQueryTemp' (temp 2-component vector of uint) 0:134 Constant: 0:134 1 (const int) 0:134 move second child to first child (temp uint) -0:134 'ElementsU' (temp uint) -0:134 direct index (temp uint) -0:134 'sizeQueryTemp' (temp 3-component vector of uint) -0:134 Constant: -0:134 2 (const int) -0:134 move second child to first child (temp uint) 0:134 'NumberOfLevelsU' (temp uint) 0:134 textureQueryLevels (temp uint) -0:134 'g_tTexcdi4a' (uniform itextureCubeArray) +0:134 'g_tTexcdu4' (uniform utextureCube) 0:137 Sequence 0:137 move second child to first child (temp 3-component vector of uint) 0:137 'sizeQueryTemp' (temp 3-component vector of uint) 0:137 textureSize (temp 3-component vector of uint) -0:137 'g_tTexcdu4a' (uniform utextureCubeArray) +0:137 'g_tTexcdf4a' (uniform textureCubeArray) 0:137 move second child to first child (temp uint) 0:137 'WidthU' (temp uint) 0:137 direct index (temp uint) @@ -1811,7 +1857,7 @@ gl_FragCoord origin is upper left 0:138 move second child to first child (temp 3-component vector of uint) 0:138 'sizeQueryTemp' (temp 3-component vector of uint) 0:138 textureSize (temp 3-component vector of uint) -0:138 'g_tTexcdu4a' (uniform utextureCubeArray) +0:138 'g_tTexcdf4a' (uniform textureCubeArray) 0:138 Constant: 0:138 6 (const uint) 0:138 move second child to first child (temp uint) @@ -1835,16 +1881,264 @@ gl_FragCoord origin is upper left 0:138 move second child to first child (temp uint) 0:138 'NumberOfLevelsU' (temp uint) 0:138 textureQueryLevels (temp uint) -0:138 'g_tTexcdu4a' (uniform utextureCubeArray) -0:234 move second child to first child (temp float) -0:234 Depth: direct index for structure (temp float FragDepth) -0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:234 Constant: -0:234 1 (const int) -0:234 Constant: -0:234 1.000000 -0:236 Branch: Return with expression -0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:138 'g_tTexcdf4a' (uniform textureCubeArray) +0:141 Sequence +0:141 move second child to first child (temp 3-component vector of uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 textureSize (temp 3-component vector of uint) +0:141 'g_tTexcdi4a' (uniform itextureCubeArray) +0:141 move second child to first child (temp uint) +0:141 'WidthU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 0 (const int) +0:141 move second child to first child (temp uint) +0:141 'HeightU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 1 (const int) +0:141 move second child to first child (temp uint) +0:141 'ElementsU' (temp uint) +0:141 direct index (temp uint) +0:141 'sizeQueryTemp' (temp 3-component vector of uint) +0:141 Constant: +0:141 2 (const int) +0:142 Sequence +0:142 move second child to first child (temp 3-component vector of uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 textureSize (temp 3-component vector of uint) +0:142 'g_tTexcdi4a' (uniform itextureCubeArray) +0:142 Constant: +0:142 6 (const uint) +0:142 move second child to first child (temp uint) +0:142 'WidthU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 0 (const int) +0:142 move second child to first child (temp uint) +0:142 'HeightU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 1 (const int) +0:142 move second child to first child (temp uint) +0:142 'ElementsU' (temp uint) +0:142 direct index (temp uint) +0:142 'sizeQueryTemp' (temp 3-component vector of uint) +0:142 Constant: +0:142 2 (const int) +0:142 move second child to first child (temp uint) +0:142 'NumberOfLevelsU' (temp uint) +0:142 textureQueryLevels (temp uint) +0:142 'g_tTexcdi4a' (uniform itextureCubeArray) +0:145 Sequence +0:145 move second child to first child (temp 3-component vector of uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 textureSize (temp 3-component vector of uint) +0:145 'g_tTexcdu4a' (uniform utextureCubeArray) +0:145 move second child to first child (temp uint) +0:145 'WidthU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 0 (const int) +0:145 move second child to first child (temp uint) +0:145 'HeightU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 1 (const int) +0:145 move second child to first child (temp uint) +0:145 'ElementsU' (temp uint) +0:145 direct index (temp uint) +0:145 'sizeQueryTemp' (temp 3-component vector of uint) +0:145 Constant: +0:145 2 (const int) +0:146 Sequence +0:146 move second child to first child (temp 3-component vector of uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 textureSize (temp 3-component vector of uint) +0:146 'g_tTexcdu4a' (uniform utextureCubeArray) +0:146 Constant: +0:146 6 (const uint) +0:146 move second child to first child (temp uint) +0:146 'WidthU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 0 (const int) +0:146 move second child to first child (temp uint) +0:146 'HeightU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 1 (const int) +0:146 move second child to first child (temp uint) +0:146 'ElementsU' (temp uint) +0:146 direct index (temp uint) +0:146 'sizeQueryTemp' (temp 3-component vector of uint) +0:146 Constant: +0:146 2 (const int) +0:146 move second child to first child (temp uint) +0:146 'NumberOfLevelsU' (temp uint) +0:146 textureQueryLevels (temp uint) +0:146 'g_tTexcdu4a' (uniform utextureCubeArray) +0:149 Sequence +0:149 move second child to first child (temp 2-component vector of uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 textureSize (temp 2-component vector of uint) +0:149 'g_tTex2dmsf4' (uniform texture2DMS) +0:149 move second child to first child (temp uint) +0:149 'WidthU' (temp uint) +0:149 direct index (temp uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 Constant: +0:149 0 (const int) +0:149 move second child to first child (temp uint) +0:149 'HeightU' (temp uint) +0:149 direct index (temp uint) +0:149 'sizeQueryTemp' (temp 2-component vector of uint) +0:149 Constant: +0:149 1 (const int) +0:149 move second child to first child (temp uint) +0:149 'NumberOfSamplesU' (temp uint) +0:149 imageQuerySamples (temp uint) +0:149 'g_tTex2dmsf4' (uniform texture2DMS) +0:152 Sequence +0:152 move second child to first child (temp 2-component vector of uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 textureSize (temp 2-component vector of uint) +0:152 'g_tTex2dmsi4' (uniform itexture2DMS) +0:152 move second child to first child (temp uint) +0:152 'WidthU' (temp uint) +0:152 direct index (temp uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 Constant: +0:152 0 (const int) +0:152 move second child to first child (temp uint) +0:152 'HeightU' (temp uint) +0:152 direct index (temp uint) +0:152 'sizeQueryTemp' (temp 2-component vector of uint) +0:152 Constant: +0:152 1 (const int) +0:152 move second child to first child (temp uint) +0:152 'NumberOfSamplesU' (temp uint) +0:152 imageQuerySamples (temp uint) +0:152 'g_tTex2dmsi4' (uniform itexture2DMS) +0:155 Sequence +0:155 move second child to first child (temp 2-component vector of uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 textureSize (temp 2-component vector of uint) +0:155 'g_tTex2dmsu4' (uniform utexture2DMS) +0:155 move second child to first child (temp uint) +0:155 'WidthU' (temp uint) +0:155 direct index (temp uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 Constant: +0:155 0 (const int) +0:155 move second child to first child (temp uint) +0:155 'HeightU' (temp uint) +0:155 direct index (temp uint) +0:155 'sizeQueryTemp' (temp 2-component vector of uint) +0:155 Constant: +0:155 1 (const int) +0:155 move second child to first child (temp uint) +0:155 'NumberOfSamplesU' (temp uint) +0:155 imageQuerySamples (temp uint) +0:155 'g_tTex2dmsu4' (uniform utexture2DMS) +0:158 Sequence +0:158 move second child to first child (temp 3-component vector of uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 textureSize (temp 3-component vector of uint) +0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:158 move second child to first child (temp uint) +0:158 'WidthU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 0 (const int) +0:158 move second child to first child (temp uint) +0:158 'HeightU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 1 (const int) +0:158 move second child to first child (temp uint) +0:158 'ElementsU' (temp uint) +0:158 direct index (temp uint) +0:158 'sizeQueryTemp' (temp 3-component vector of uint) +0:158 Constant: +0:158 2 (const int) +0:158 move second child to first child (temp uint) +0:158 'NumberOfSamplesU' (temp uint) +0:158 imageQuerySamples (temp uint) +0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:161 Sequence +0:161 move second child to first child (temp 3-component vector of uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 textureSize (temp 3-component vector of uint) +0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:161 move second child to first child (temp uint) +0:161 'WidthU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 0 (const int) +0:161 move second child to first child (temp uint) +0:161 'HeightU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 1 (const int) +0:161 move second child to first child (temp uint) +0:161 'ElementsU' (temp uint) +0:161 direct index (temp uint) +0:161 'sizeQueryTemp' (temp 3-component vector of uint) +0:161 Constant: +0:161 2 (const int) +0:161 move second child to first child (temp uint) +0:161 'NumberOfSamplesU' (temp uint) +0:161 imageQuerySamples (temp uint) +0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:164 Sequence +0:164 move second child to first child (temp 3-component vector of uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 textureSize (temp 3-component vector of uint) +0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:164 move second child to first child (temp uint) +0:164 'WidthU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 0 (const int) +0:164 move second child to first child (temp uint) +0:164 'HeightU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 1 (const int) +0:164 move second child to first child (temp uint) +0:164 'ElementsU' (temp uint) +0:164 direct index (temp uint) +0:164 'sizeQueryTemp' (temp 3-component vector of uint) +0:164 Constant: +0:164 2 (const int) +0:164 move second child to first child (temp uint) +0:164 'NumberOfSamplesU' (temp uint) +0:164 imageQuerySamples (temp uint) +0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:277 move second child to first child (temp float) +0:277 Depth: direct index for structure (temp float FragDepth) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 Constant: +0:277 1 (const int) +0:277 Constant: +0:277 1.000000 +0:279 Branch: Return with expression +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df4' (uniform texture1D) @@ -1868,14 +2162,21 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +0:? 'g_tTex2dmsu4' (uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 455 +// Id's are bound by 534 Capability Shader Capability Sampled1D Capability SampledCubeArray + Capability ImageMSArray Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 @@ -1951,11 +2252,24 @@ gl_FragCoord origin is upper left Name 419 "sizeQueryTemp" Name 422 "g_tTexcdu4a" Name 431 "sizeQueryTemp" - Name 443 "PS_OUTPUT" - MemberName 443(PS_OUTPUT) 0 "Color" - MemberName 443(PS_OUTPUT) 1 "Depth" - Name 445 "psout" - Name 454 "g_sSamp" + Name 442 "sizeQueryTemp" + Name 445 "g_tTex2dmsf4" + Name 452 "NumberOfSamplesU" + Name 455 "sizeQueryTemp" + Name 458 "g_tTex2dmsi4" + Name 467 "sizeQueryTemp" + Name 470 "g_tTex2dmsu4" + Name 479 "sizeQueryTemp" + Name 482 "g_tTex2dmsf4a" + Name 493 "sizeQueryTemp" + Name 496 "g_tTex2dmsi4a" + Name 507 "sizeQueryTemp" + Name 510 "g_tTex2dmsu4a" + Name 522 "PS_OUTPUT" + MemberName 522(PS_OUTPUT) 0 "Color" + MemberName 522(PS_OUTPUT) 1 "Depth" + Name 524 "psout" + Name 533 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 @@ -1977,8 +2291,14 @@ gl_FragCoord origin is upper left Decorate 376(g_tTexcdf4a) DescriptorSet 0 Decorate 399(g_tTexcdi4a) DescriptorSet 0 Decorate 422(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 443(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 454(g_sSamp) DescriptorSet 0 + Decorate 445(g_tTex2dmsf4) DescriptorSet 0 + Decorate 458(g_tTex2dmsi4) DescriptorSet 0 + Decorate 470(g_tTex2dmsu4) DescriptorSet 0 + Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 + MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 533(g_sSamp) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2058,15 +2378,33 @@ gl_FragCoord origin is upper left 420: TypeImage 6(int) Cube array sampled format:Unknown 421: TypePointer UniformConstant 420 422(g_tTexcdu4a): 421(ptr) Variable UniformConstant - 442: TypeVector 9(float) 4 - 443(PS_OUTPUT): TypeStruct 442(fvec4) 9(float) - 444: TypePointer Function 443(PS_OUTPUT) - 446: 14(int) Constant 1 - 447: 9(float) Constant 1065353216 - 448: TypePointer Function 9(float) - 452: TypeSampler - 453: TypePointer UniformConstant 452 - 454(g_sSamp): 453(ptr) Variable UniformConstant + 443: TypeImage 9(float) 2D multi-sampled sampled format:Unknown + 444: TypePointer UniformConstant 443 +445(g_tTex2dmsf4): 444(ptr) Variable UniformConstant + 456: TypeImage 14(int) 2D multi-sampled sampled format:Unknown + 457: TypePointer UniformConstant 456 +458(g_tTex2dmsi4): 457(ptr) Variable UniformConstant + 468: TypeImage 6(int) 2D multi-sampled sampled format:Unknown + 469: TypePointer UniformConstant 468 +470(g_tTex2dmsu4): 469(ptr) Variable UniformConstant + 480: TypeImage 9(float) 2D array multi-sampled sampled format:Unknown + 481: TypePointer UniformConstant 480 +482(g_tTex2dmsf4a): 481(ptr) Variable UniformConstant + 494: TypeImage 14(int) 2D array multi-sampled sampled format:Unknown + 495: TypePointer UniformConstant 494 +496(g_tTex2dmsi4a): 495(ptr) Variable UniformConstant + 508: TypeImage 6(int) 2D array multi-sampled sampled format:Unknown + 509: TypePointer UniformConstant 508 +510(g_tTex2dmsu4a): 509(ptr) Variable UniformConstant + 521: TypeVector 9(float) 4 + 522(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) + 523: TypePointer Function 522(PS_OUTPUT) + 525: 14(int) Constant 1 + 526: 9(float) Constant 1065353216 + 527: TypePointer Function 9(float) + 531: TypeSampler + 532: TypePointer UniformConstant 531 + 533(g_sSamp): 532(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -2116,7 +2454,14 @@ gl_FragCoord origin is upper left 408(sizeQueryTemp): 174(ptr) Variable Function 419(sizeQueryTemp): 174(ptr) Variable Function 431(sizeQueryTemp): 174(ptr) Variable Function - 445(psout): 444(ptr) Variable Function +442(sizeQueryTemp): 53(ptr) Variable Function +452(NumberOfSamplesU): 7(ptr) Variable Function +455(sizeQueryTemp): 53(ptr) Variable Function +467(sizeQueryTemp): 53(ptr) Variable Function +479(sizeQueryTemp): 174(ptr) Variable Function +493(sizeQueryTemp): 174(ptr) Variable Function +507(sizeQueryTemp): 174(ptr) Variable Function + 524(psout): 523(ptr) Variable Function 13: 10 Load 12(g_tTex1df4) 15: 14(int) ImageQuerySize 13 Store 8(sizeQueryTemp) 15 @@ -2588,8 +2933,89 @@ gl_FragCoord origin is upper left 440: 420 Load 422(g_tTexcdu4a) 441: 14(int) ImageQueryLevels 440 Store 23(NumberOfLevelsU) 441 - 449: 448(ptr) AccessChain 445(psout) 446 - Store 449 447 - 450:443(PS_OUTPUT) Load 445(psout) - ReturnValue 450 + 446: 443 Load 445(g_tTex2dmsf4) + 447: 59(ivec2) ImageQuerySize 446 + Store 442(sizeQueryTemp) 447 + 448: 7(ptr) AccessChain 442(sizeQueryTemp) 61 + 449: 6(int) Load 448 + Store 16(WidthU) 449 + 450: 7(ptr) AccessChain 442(sizeQueryTemp) 65 + 451: 6(int) Load 450 + Store 123(HeightU) 451 + 453: 443 Load 445(g_tTex2dmsf4) + 454: 14(int) ImageQuerySamples 453 + Store 452(NumberOfSamplesU) 454 + 459: 456 Load 458(g_tTex2dmsi4) + 460: 59(ivec2) ImageQuerySize 459 + Store 455(sizeQueryTemp) 460 + 461: 7(ptr) AccessChain 455(sizeQueryTemp) 61 + 462: 6(int) Load 461 + Store 16(WidthU) 462 + 463: 7(ptr) AccessChain 455(sizeQueryTemp) 65 + 464: 6(int) Load 463 + Store 123(HeightU) 464 + 465: 456 Load 458(g_tTex2dmsi4) + 466: 14(int) ImageQuerySamples 465 + Store 452(NumberOfSamplesU) 466 + 471: 468 Load 470(g_tTex2dmsu4) + 472: 59(ivec2) ImageQuerySize 471 + Store 467(sizeQueryTemp) 472 + 473: 7(ptr) AccessChain 467(sizeQueryTemp) 61 + 474: 6(int) Load 473 + Store 16(WidthU) 474 + 475: 7(ptr) AccessChain 467(sizeQueryTemp) 65 + 476: 6(int) Load 475 + Store 123(HeightU) 476 + 477: 468 Load 470(g_tTex2dmsu4) + 478: 14(int) ImageQuerySamples 477 + Store 452(NumberOfSamplesU) 478 + 483: 480 Load 482(g_tTex2dmsf4a) + 484: 180(ivec3) ImageQuerySize 483 + Store 479(sizeQueryTemp) 484 + 485: 7(ptr) AccessChain 479(sizeQueryTemp) 61 + 486: 6(int) Load 485 + Store 16(WidthU) 486 + 487: 7(ptr) AccessChain 479(sizeQueryTemp) 65 + 488: 6(int) Load 487 + Store 123(HeightU) 488 + 489: 7(ptr) AccessChain 479(sizeQueryTemp) 186 + 490: 6(int) Load 489 + Store 64(ElementsU) 490 + 491: 480 Load 482(g_tTex2dmsf4a) + 492: 14(int) ImageQuerySamples 491 + Store 452(NumberOfSamplesU) 492 + 497: 494 Load 496(g_tTex2dmsi4a) + 498: 180(ivec3) ImageQuerySize 497 + Store 493(sizeQueryTemp) 498 + 499: 7(ptr) AccessChain 493(sizeQueryTemp) 61 + 500: 6(int) Load 499 + Store 16(WidthU) 500 + 501: 7(ptr) AccessChain 493(sizeQueryTemp) 65 + 502: 6(int) Load 501 + Store 123(HeightU) 502 + 503: 7(ptr) AccessChain 493(sizeQueryTemp) 186 + 504: 6(int) Load 503 + Store 64(ElementsU) 504 + 505: 494 Load 496(g_tTex2dmsi4a) + 506: 14(int) ImageQuerySamples 505 + Store 452(NumberOfSamplesU) 506 + 511: 508 Load 510(g_tTex2dmsu4a) + 512: 180(ivec3) ImageQuerySize 511 + Store 507(sizeQueryTemp) 512 + 513: 7(ptr) AccessChain 507(sizeQueryTemp) 61 + 514: 6(int) Load 513 + Store 16(WidthU) 514 + 515: 7(ptr) AccessChain 507(sizeQueryTemp) 65 + 516: 6(int) Load 515 + Store 123(HeightU) 516 + 517: 7(ptr) AccessChain 507(sizeQueryTemp) 186 + 518: 6(int) Load 517 + Store 64(ElementsU) 518 + 519: 508 Load 510(g_tTex2dmsu4a) + 520: 14(int) ImageQuerySamples 519 + Store 452(NumberOfSamplesU) 520 + 528: 527(ptr) AccessChain 524(psout) 525 + Store 528 526 + 529:522(PS_OUTPUT) Load 524(psout) + ReturnValue 529 FunctionEnd diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out new file mode 100644 index 00000000..41cdb4a6 --- /dev/null +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -0,0 +1,340 @@ +hlsl.load.2dms.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:32 textureFetch (global 4-component vector of float) +0:32 'g_tTex2dmsf4' (uniform texture2DMS) +0:32 'c2' (uniform 2-component vector of int) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch (global 4-component vector of int) +0:33 'g_tTex2dmsi4' (uniform itexture2DMS) +0:33 'c2' (uniform 2-component vector of int) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch (global 4-component vector of uint) +0:34 'g_tTex2dmsu4' (uniform utexture2DMS) +0:34 'c2' (uniform 2-component vector of int) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset (global 4-component vector of float) +0:37 'g_tTex2dmsf4' (uniform texture2DMS) +0:37 'c2' (uniform 2-component vector of int) +0:37 Constant: +0:37 3 (const int) +0:37 'o2' (uniform 2-component vector of int) +0:38 textureFetchOffset (global 4-component vector of int) +0:38 'g_tTex2dmsi4' (uniform itexture2DMS) +0:38 'c2' (uniform 2-component vector of int) +0:38 Constant: +0:38 3 (const int) +0:38 'o2' (uniform 2-component vector of int) +0:39 textureFetchOffset (global 4-component vector of uint) +0:39 'g_tTex2dmsu4' (uniform utexture2DMS) +0:39 'c2' (uniform 2-component vector of int) +0:39 Constant: +0:39 3 (const int) +0:39 'o2' (uniform 2-component vector of int) +0:42 textureFetch (global 4-component vector of float) +0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:42 'c3' (uniform 3-component vector of int) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch (global 4-component vector of int) +0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:43 'c3' (uniform 3-component vector of int) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch (global 4-component vector of uint) +0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:44 'c3' (uniform 3-component vector of int) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset (global 4-component vector of float) +0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:47 'c3' (uniform 3-component vector of int) +0:47 Constant: +0:47 3 (const int) +0:47 'o2' (uniform 2-component vector of int) +0:48 textureFetchOffset (global 4-component vector of int) +0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:48 'c3' (uniform 3-component vector of int) +0:48 Constant: +0:48 3 (const int) +0:48 'o2' (uniform 2-component vector of int) +0:49 textureFetchOffset (global 4-component vector of uint) +0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:49 'c3' (uniform 3-component vector of int) +0:49 Constant: +0:49 3 (const int) +0:49 'o2' (uniform 2-component vector of int) +0:52 move second child to first child (temp float) +0:52 Depth: direct index for structure (temp float FragDepth) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:54 Branch: Return with expression +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +0:? 'g_tTex2dmsu4' (uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:32 textureFetch (global 4-component vector of float) +0:32 'g_tTex2dmsf4' (uniform texture2DMS) +0:32 'c2' (uniform 2-component vector of int) +0:32 Constant: +0:32 3 (const int) +0:33 textureFetch (global 4-component vector of int) +0:33 'g_tTex2dmsi4' (uniform itexture2DMS) +0:33 'c2' (uniform 2-component vector of int) +0:33 Constant: +0:33 3 (const int) +0:34 textureFetch (global 4-component vector of uint) +0:34 'g_tTex2dmsu4' (uniform utexture2DMS) +0:34 'c2' (uniform 2-component vector of int) +0:34 Constant: +0:34 3 (const int) +0:37 textureFetchOffset (global 4-component vector of float) +0:37 'g_tTex2dmsf4' (uniform texture2DMS) +0:37 'c2' (uniform 2-component vector of int) +0:37 Constant: +0:37 3 (const int) +0:37 'o2' (uniform 2-component vector of int) +0:38 textureFetchOffset (global 4-component vector of int) +0:38 'g_tTex2dmsi4' (uniform itexture2DMS) +0:38 'c2' (uniform 2-component vector of int) +0:38 Constant: +0:38 3 (const int) +0:38 'o2' (uniform 2-component vector of int) +0:39 textureFetchOffset (global 4-component vector of uint) +0:39 'g_tTex2dmsu4' (uniform utexture2DMS) +0:39 'c2' (uniform 2-component vector of int) +0:39 Constant: +0:39 3 (const int) +0:39 'o2' (uniform 2-component vector of int) +0:42 textureFetch (global 4-component vector of float) +0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:42 'c3' (uniform 3-component vector of int) +0:42 Constant: +0:42 3 (const int) +0:43 textureFetch (global 4-component vector of int) +0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:43 'c3' (uniform 3-component vector of int) +0:43 Constant: +0:43 3 (const int) +0:44 textureFetch (global 4-component vector of uint) +0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:44 'c3' (uniform 3-component vector of int) +0:44 Constant: +0:44 3 (const int) +0:47 textureFetchOffset (global 4-component vector of float) +0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:47 'c3' (uniform 3-component vector of int) +0:47 Constant: +0:47 3 (const int) +0:47 'o2' (uniform 2-component vector of int) +0:48 textureFetchOffset (global 4-component vector of int) +0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:48 'c3' (uniform 3-component vector of int) +0:48 Constant: +0:48 3 (const int) +0:48 'o2' (uniform 2-component vector of int) +0:49 textureFetchOffset (global 4-component vector of uint) +0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:49 'c3' (uniform 3-component vector of int) +0:49 Constant: +0:49 3 (const int) +0:49 'o2' (uniform 2-component vector of int) +0:52 move second child to first child (temp float) +0:52 Depth: direct index for structure (temp float FragDepth) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Constant: +0:52 1 (const int) +0:52 Constant: +0:52 1.000000 +0:54 Branch: Return with expression +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsi4' (uniform itexture2DMS) +0:? 'g_tTex2dmsu4' (uniform utexture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) +0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 99 + + Capability Shader + Capability ImageGatherExtended + Capability ImageMSArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex2dmsf4" + Name 14 "c2" + Name 21 "g_tTex2dmsi4" + Name 29 "g_tTex2dmsu4" + Name 36 "o2" + Name 49 "g_tTex2dmsf4a" + Name 53 "c3" + Name 58 "g_tTex2dmsi4a" + Name 64 "g_tTex2dmsu4a" + Name 80 "PS_OUTPUT" + MemberName 80(PS_OUTPUT) 0 "Color" + MemberName 80(PS_OUTPUT) 1 "Depth" + Name 82 "psout" + Name 91 "g_sSamp" + Name 93 "c1" + Name 95 "c4" + Name 96 "o1" + Name 97 "o3" + Name 98 "o4" + Decorate 9(g_tTex2dmsf4) DescriptorSet 0 + Decorate 21(g_tTex2dmsi4) DescriptorSet 0 + Decorate 29(g_tTex2dmsu4) DescriptorSet 0 + Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 + MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 91(g_sSamp) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 2D multi-sampled sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypePointer UniformConstant 12(ivec2) + 14(c2): 13(ptr) Variable UniformConstant + 16: 11(int) Constant 3 + 17: TypeVector 6(float) 4 + 19: TypeImage 11(int) 2D multi-sampled sampled format:Unknown + 20: TypePointer UniformConstant 19 +21(g_tTex2dmsi4): 20(ptr) Variable UniformConstant + 24: TypeVector 11(int) 4 + 26: TypeInt 32 0 + 27: TypeImage 26(int) 2D multi-sampled sampled format:Unknown + 28: TypePointer UniformConstant 27 +29(g_tTex2dmsu4): 28(ptr) Variable UniformConstant + 32: TypeVector 26(int) 4 + 36(o2): 13(ptr) Variable UniformConstant + 47: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 48: TypePointer UniformConstant 47 +49(g_tTex2dmsf4a): 48(ptr) Variable UniformConstant + 51: TypeVector 11(int) 3 + 52: TypePointer UniformConstant 51(ivec3) + 53(c3): 52(ptr) Variable UniformConstant + 56: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown + 57: TypePointer UniformConstant 56 +58(g_tTex2dmsi4a): 57(ptr) Variable UniformConstant + 62: TypeImage 26(int) 2D array multi-sampled sampled format:Unknown + 63: TypePointer UniformConstant 62 +64(g_tTex2dmsu4a): 63(ptr) Variable UniformConstant + 80(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) + 81: TypePointer Function 80(PS_OUTPUT) + 83: 11(int) Constant 1 + 84: 6(float) Constant 1065353216 + 85: TypePointer Function 6(float) + 89: TypeSampler + 90: TypePointer UniformConstant 89 + 91(g_sSamp): 90(ptr) Variable UniformConstant + 92: TypePointer UniformConstant 11(int) + 93(c1): 92(ptr) Variable UniformConstant + 94: TypePointer UniformConstant 24(ivec4) + 95(c4): 94(ptr) Variable UniformConstant + 96(o1): 92(ptr) Variable UniformConstant + 97(o3): 52(ptr) Variable UniformConstant + 98(o4): 94(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 82(psout): 81(ptr) Variable Function + 10: 7 Load 9(g_tTex2dmsf4) + 15: 12(ivec2) Load 14(c2) + 18: 17(fvec4) ImageFetch 10 15 Sample 16 + 22: 19 Load 21(g_tTex2dmsi4) + 23: 12(ivec2) Load 14(c2) + 25: 24(ivec4) ImageFetch 22 23 Sample 16 + 30: 27 Load 29(g_tTex2dmsu4) + 31: 12(ivec2) Load 14(c2) + 33: 32(ivec4) ImageFetch 30 31 Sample 16 + 34: 7 Load 9(g_tTex2dmsf4) + 35: 12(ivec2) Load 14(c2) + 37: 12(ivec2) Load 36(o2) + 38: 17(fvec4) ImageFetch 34 35 Offset Sample 37 16 + 39: 19 Load 21(g_tTex2dmsi4) + 40: 12(ivec2) Load 14(c2) + 41: 12(ivec2) Load 36(o2) + 42: 24(ivec4) ImageFetch 39 40 Offset Sample 41 16 + 43: 27 Load 29(g_tTex2dmsu4) + 44: 12(ivec2) Load 14(c2) + 45: 12(ivec2) Load 36(o2) + 46: 32(ivec4) ImageFetch 43 44 Offset Sample 45 16 + 50: 47 Load 49(g_tTex2dmsf4a) + 54: 51(ivec3) Load 53(c3) + 55: 17(fvec4) ImageFetch 50 54 Sample 16 + 59: 56 Load 58(g_tTex2dmsi4a) + 60: 51(ivec3) Load 53(c3) + 61: 24(ivec4) ImageFetch 59 60 Sample 16 + 65: 62 Load 64(g_tTex2dmsu4a) + 66: 51(ivec3) Load 53(c3) + 67: 32(ivec4) ImageFetch 65 66 Sample 16 + 68: 47 Load 49(g_tTex2dmsf4a) + 69: 51(ivec3) Load 53(c3) + 70: 12(ivec2) Load 36(o2) + 71: 17(fvec4) ImageFetch 68 69 Offset Sample 70 16 + 72: 56 Load 58(g_tTex2dmsi4a) + 73: 51(ivec3) Load 53(c3) + 74: 12(ivec2) Load 36(o2) + 75: 24(ivec4) ImageFetch 72 73 Offset Sample 74 16 + 76: 62 Load 64(g_tTex2dmsu4a) + 77: 51(ivec3) Load 53(c3) + 78: 12(ivec2) Load 36(o2) + 79: 32(ivec4) ImageFetch 76 77 Offset Sample 78 16 + 86: 85(ptr) AccessChain 82(psout) 83 + Store 86 84 + 87:80(PS_OUTPUT) Load 82(psout) + ReturnValue 87 + FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out new file mode 100644 index 00000000..d393dba5 --- /dev/null +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -0,0 +1,565 @@ +hlsl.load.basic.dx10.vert +Shader version: 450 +0:? Sequence +0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:47 Function Parameters: +0:? Sequence +0:51 textureFetch (global 4-component vector of float) +0:51 'g_tTex1df4' (uniform texture1D) +0:51 vector swizzle (temp int) +0:51 'c2' (uniform 2-component vector of int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index (temp int) +0:51 'c2' (uniform 2-component vector of int) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch (global 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (global 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch (global 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 vector swizzle (temp 2-component vector of int) +0:56 'c3' (uniform 3-component vector of int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index (temp int) +0:56 'c3' (uniform 3-component vector of int) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch (global 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (global 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch (global 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 vector swizzle (temp 3-component vector of int) +0:61 'c4' (uniform 4-component vector of int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 direct index (temp int) +0:61 'c4' (uniform 4-component vector of int) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch (global 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (global 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:67 Constant: +0:67 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:69 Branch: Return with expression +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:47 Function Parameters: +0:? Sequence +0:51 textureFetch (global 4-component vector of float) +0:51 'g_tTex1df4' (uniform texture1D) +0:51 vector swizzle (temp int) +0:51 'c2' (uniform 2-component vector of int) +0:51 Sequence +0:51 Constant: +0:51 0 (const int) +0:51 direct index (temp int) +0:51 'c2' (uniform 2-component vector of int) +0:51 Constant: +0:51 1 (const int) +0:52 textureFetch (global 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 vector swizzle (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Sequence +0:52 Constant: +0:52 0 (const int) +0:52 direct index (temp int) +0:52 'c2' (uniform 2-component vector of int) +0:52 Constant: +0:52 1 (const int) +0:53 textureFetch (global 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 vector swizzle (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Sequence +0:53 Constant: +0:53 0 (const int) +0:53 direct index (temp int) +0:53 'c2' (uniform 2-component vector of int) +0:53 Constant: +0:53 1 (const int) +0:56 textureFetch (global 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 vector swizzle (temp 2-component vector of int) +0:56 'c3' (uniform 3-component vector of int) +0:56 Sequence +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1 (const int) +0:56 direct index (temp int) +0:56 'c3' (uniform 3-component vector of int) +0:56 Constant: +0:56 2 (const int) +0:57 textureFetch (global 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 vector swizzle (temp 2-component vector of int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Sequence +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1 (const int) +0:57 direct index (temp int) +0:57 'c3' (uniform 3-component vector of int) +0:57 Constant: +0:57 2 (const int) +0:58 textureFetch (global 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 vector swizzle (temp 2-component vector of int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Sequence +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1 (const int) +0:58 direct index (temp int) +0:58 'c3' (uniform 3-component vector of int) +0:58 Constant: +0:58 2 (const int) +0:61 textureFetch (global 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 vector swizzle (temp 3-component vector of int) +0:61 'c4' (uniform 4-component vector of int) +0:61 Sequence +0:61 Constant: +0:61 0 (const int) +0:61 Constant: +0:61 1 (const int) +0:61 Constant: +0:61 2 (const int) +0:61 direct index (temp int) +0:61 'c4' (uniform 4-component vector of int) +0:61 Constant: +0:61 3 (const int) +0:62 textureFetch (global 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 vector swizzle (temp 3-component vector of int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Sequence +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1 (const int) +0:62 Constant: +0:62 2 (const int) +0:62 direct index (temp int) +0:62 'c4' (uniform 4-component vector of int) +0:62 Constant: +0:62 3 (const int) +0:63 textureFetch (global 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 vector swizzle (temp 3-component vector of int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Sequence +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1 (const int) +0:63 Constant: +0:63 2 (const int) +0:63 direct index (temp int) +0:63 'c4' (uniform 4-component vector of int) +0:63 Constant: +0:63 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord) +0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:67 Constant: +0:67 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:69 Branch: Return with expression +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 160 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" + Source HLSL 450 + Name 4 "main" + Name 9 "g_tTex1df4" + Name 14 "c2" + Name 27 "g_tTex1di4" + Name 37 "g_tTex1du4" + Name 47 "g_tTex2df4" + Name 51 "c3" + Name 60 "g_tTex2di4" + Name 69 "g_tTex2du4" + Name 78 "g_tTex3df4" + Name 81 "c4" + Name 90 "g_tTex3di4" + Name 99 "g_tTex3du4" + Name 106 "VS_OUTPUT" + MemberName 106(VS_OUTPUT) 0 "Pos" + Name 108 "vsout" + Name 118 "g_sSamp" + Name 121 "g_tTexcdf4" + Name 124 "g_tTexcdi4" + Name 127 "g_tTexcdu4" + Name 130 "g_tTex1df4a" + Name 133 "g_tTex1di4a" + Name 136 "g_tTex1du4a" + Name 139 "g_tTex2df4a" + Name 142 "g_tTex2di4a" + Name 145 "g_tTex2du4a" + Name 148 "g_tTexcdf4a" + Name 151 "g_tTexcdi4a" + Name 154 "g_tTexcdu4a" + Name 155 "c1" + Name 156 "o1" + Name 157 "o2" + Name 158 "o3" + Name 159 "o4" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 27(g_tTex1di4) DescriptorSet 0 + Decorate 37(g_tTex1du4) DescriptorSet 0 + Decorate 47(g_tTex2df4) DescriptorSet 0 + Decorate 60(g_tTex2di4) DescriptorSet 0 + Decorate 69(g_tTex2du4) DescriptorSet 0 + Decorate 78(g_tTex3df4) DescriptorSet 0 + Decorate 90(g_tTex3di4) DescriptorSet 0 + Decorate 99(g_tTex3du4) DescriptorSet 0 + MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord + Decorate 118(g_sSamp) DescriptorSet 0 + Decorate 121(g_tTexcdf4) DescriptorSet 0 + Decorate 124(g_tTexcdi4) DescriptorSet 0 + Decorate 127(g_tTexcdu4) DescriptorSet 0 + Decorate 130(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1di4a) DescriptorSet 0 + Decorate 136(g_tTex1du4a) DescriptorSet 0 + Decorate 139(g_tTex2df4a) DescriptorSet 0 + Decorate 142(g_tTex2di4a) DescriptorSet 0 + Decorate 145(g_tTex2du4a) DescriptorSet 0 + Decorate 148(g_tTexcdf4a) DescriptorSet 0 + Decorate 151(g_tTexcdi4a) DescriptorSet 0 + Decorate 154(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D sampled format:Unknown + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypePointer UniformConstant 12(ivec2) + 14(c2): 13(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 0 + 17: TypePointer UniformConstant 11(int) + 20: 15(int) Constant 1 + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 1D sampled format:Unknown + 26: TypePointer UniformConstant 25 + 27(g_tTex1di4): 26(ptr) Variable UniformConstant + 33: TypeVector 11(int) 4 + 35: TypeImage 15(int) 1D sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1du4): 36(ptr) Variable UniformConstant + 43: TypeVector 15(int) 4 + 45: TypeImage 6(float) 2D sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex2df4): 46(ptr) Variable UniformConstant + 49: TypeVector 11(int) 3 + 50: TypePointer UniformConstant 49(ivec3) + 51(c3): 50(ptr) Variable UniformConstant + 54: 15(int) Constant 2 + 58: TypeImage 11(int) 2D sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2di4): 59(ptr) Variable UniformConstant + 67: TypeImage 15(int) 2D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex2du4): 68(ptr) Variable UniformConstant + 76: TypeImage 6(float) 3D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex3df4): 77(ptr) Variable UniformConstant + 80: TypePointer UniformConstant 33(ivec4) + 81(c4): 80(ptr) Variable UniformConstant + 84: 15(int) Constant 3 + 88: TypeImage 11(int) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3di4): 89(ptr) Variable UniformConstant + 97: TypeImage 15(int) 3D sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex3du4): 98(ptr) Variable UniformConstant + 106(VS_OUTPUT): TypeStruct 23(fvec4) + 107: TypePointer Function 106(VS_OUTPUT) + 109: 11(int) Constant 0 + 110: 6(float) Constant 0 + 111: 23(fvec4) ConstantComposite 110 110 110 110 + 112: TypePointer Function 23(fvec4) + 116: TypeSampler + 117: TypePointer UniformConstant 116 + 118(g_sSamp): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdf4): 120(ptr) Variable UniformConstant + 122: TypeImage 11(int) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdi4): 123(ptr) Variable UniformConstant + 125: TypeImage 15(int) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdu4): 126(ptr) Variable UniformConstant + 128: TypeImage 6(float) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1df4a): 129(ptr) Variable UniformConstant + 131: TypeImage 11(int) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1di4a): 132(ptr) Variable UniformConstant + 134: TypeImage 15(int) 1D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex1du4a): 135(ptr) Variable UniformConstant + 137: TypeImage 6(float) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2df4a): 138(ptr) Variable UniformConstant + 140: TypeImage 11(int) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2di4a): 141(ptr) Variable UniformConstant + 143: TypeImage 15(int) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex2du4a): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdf4a): 147(ptr) Variable UniformConstant + 149: TypeImage 11(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdi4a): 150(ptr) Variable UniformConstant + 152: TypeImage 15(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdu4a): 153(ptr) Variable UniformConstant + 155(c1): 17(ptr) Variable UniformConstant + 156(o1): 17(ptr) Variable UniformConstant + 157(o2): 13(ptr) Variable UniformConstant + 158(o3): 50(ptr) Variable UniformConstant + 159(o4): 80(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 108(vsout): 107(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 18: 17(ptr) AccessChain 14(c2) 16 + 19: 11(int) Load 18 + 21: 17(ptr) AccessChain 14(c2) 20 + 22: 11(int) Load 21 + 24: 23(fvec4) ImageFetch 10 19 Lod 22 + 28: 25 Load 27(g_tTex1di4) + 29: 17(ptr) AccessChain 14(c2) 16 + 30: 11(int) Load 29 + 31: 17(ptr) AccessChain 14(c2) 20 + 32: 11(int) Load 31 + 34: 33(ivec4) ImageFetch 28 30 Lod 32 + 38: 35 Load 37(g_tTex1du4) + 39: 17(ptr) AccessChain 14(c2) 16 + 40: 11(int) Load 39 + 41: 17(ptr) AccessChain 14(c2) 20 + 42: 11(int) Load 41 + 44: 43(ivec4) ImageFetch 38 40 Lod 42 + 48: 45 Load 47(g_tTex2df4) + 52: 49(ivec3) Load 51(c3) + 53: 12(ivec2) VectorShuffle 52 52 0 1 + 55: 17(ptr) AccessChain 51(c3) 54 + 56: 11(int) Load 55 + 57: 23(fvec4) ImageFetch 48 53 Lod 56 + 61: 58 Load 60(g_tTex2di4) + 62: 49(ivec3) Load 51(c3) + 63: 12(ivec2) VectorShuffle 62 62 0 1 + 64: 17(ptr) AccessChain 51(c3) 54 + 65: 11(int) Load 64 + 66: 33(ivec4) ImageFetch 61 63 Lod 65 + 70: 67 Load 69(g_tTex2du4) + 71: 49(ivec3) Load 51(c3) + 72: 12(ivec2) VectorShuffle 71 71 0 1 + 73: 17(ptr) AccessChain 51(c3) 54 + 74: 11(int) Load 73 + 75: 43(ivec4) ImageFetch 70 72 Lod 74 + 79: 76 Load 78(g_tTex3df4) + 82: 33(ivec4) Load 81(c4) + 83: 49(ivec3) VectorShuffle 82 82 0 1 2 + 85: 17(ptr) AccessChain 81(c4) 84 + 86: 11(int) Load 85 + 87: 23(fvec4) ImageFetch 79 83 Lod 86 + 91: 88 Load 90(g_tTex3di4) + 92: 33(ivec4) Load 81(c4) + 93: 49(ivec3) VectorShuffle 92 92 0 1 2 + 94: 17(ptr) AccessChain 81(c4) 84 + 95: 11(int) Load 94 + 96: 33(ivec4) ImageFetch 91 93 Lod 95 + 100: 97 Load 99(g_tTex3du4) + 101: 33(ivec4) Load 81(c4) + 102: 49(ivec3) VectorShuffle 101 101 0 1 2 + 103: 17(ptr) AccessChain 81(c4) 84 + 104: 11(int) Load 103 + 105: 43(ivec4) ImageFetch 100 102 Lod 104 + 113: 112(ptr) AccessChain 108(vsout) 109 + Store 113 111 + 114:106(VS_OUTPUT) Load 108(vsout) + ReturnValue 114 + FunctionEnd diff --git a/Test/hlsl.getdimensions.dx10.frag b/Test/hlsl.getdimensions.dx10.frag index 1adc5e4f..bd9cc3b9 100644 --- a/Test/hlsl.getdimensions.dx10.frag +++ b/Test/hlsl.getdimensions.dx10.frag @@ -28,6 +28,14 @@ TextureCubeArray g_tTexcdf4a; TextureCubeArray g_tTexcdi4a; TextureCubeArray g_tTexcdu4a; +Texture2DMS g_tTex2dmsf4; +Texture2DMS g_tTex2dmsi4; +Texture2DMS g_tTex2dmsu4; + +Texture2DMSArray g_tTex2dmsf4a; +Texture2DMSArray g_tTex2dmsi4a; +Texture2DMSArray g_tTex2dmsu4a; + struct PS_OUTPUT { float4 Color : SV_Target0; @@ -137,6 +145,23 @@ PS_OUTPUT main() g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU); g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU); + // 2DMS, float tx, uint params + g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMS, int tx, uint params + g_tTex2dmsi4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMS, uint tx, uint params + g_tTex2dmsu4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU); + + // 2DMSArray, float tx, uint params + g_tTex2dmsf4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); + + // 2DMSArray, int tx, uint params + g_tTex2dmsi4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); + + // 2DMSArray, uint tx, uint params + g_tTex2dmsu4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU); // TODO: *************************************************** // Change this to 1 to enable float overloads when the HLSL @@ -228,6 +253,24 @@ PS_OUTPUT main() // Cubearray, uint, float params g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF); g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF); + + // 2DMS, float tx, uint params + g_tTex2dmsf4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMS, int tx, uint params + g_tTex2dmsi4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMS, uint tx, uint params + g_tTex2dmsu4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF); + + // 2DMSArray, float tx, uint params + g_tTex2dmsf4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); + + // 2DMSArray, int tx, uint params + g_tTex2dmsi4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); + + // 2DMSArray, uint tx, uint params + g_tTex2dmsu4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF); #endif // OVERLOAD_FIX psout.Color = 1.0; diff --git a/Test/hlsl.load.2dms.dx10.frag b/Test/hlsl.load.2dms.dx10.frag new file mode 100644 index 00000000..29974f58 --- /dev/null +++ b/Test/hlsl.load.2dms.dx10.frag @@ -0,0 +1,56 @@ +SamplerState g_sSamp : register(s0); + +Texture2DMS g_tTex2dmsf4; +Texture2DMS g_tTex2dmsi4; +Texture2DMS g_tTex2dmsu4; + +Texture2DMSArray g_tTex2dmsf4a; +Texture2DMSArray g_tTex2dmsi4a; +Texture2DMSArray g_tTex2dmsu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 2DMS, no offset + g_tTex2dmsf4.Load(c2, 3); + g_tTex2dmsi4.Load(c2, 3); + g_tTex2dmsu4.Load(c2, 3); + + // 2DMS, offset + g_tTex2dmsf4.Load(c2, 3, o2); + g_tTex2dmsi4.Load(c2, 3, o2); + g_tTex2dmsu4.Load(c2, 3, o2); + + // 2DMSArray, no offset + g_tTex2dmsf4a.Load(c3, 3); + g_tTex2dmsi4a.Load(c3, 3); + g_tTex2dmsu4a.Load(c3, 3); + + // 2DMSArray, offset + g_tTex2dmsf4a.Load(c3, 3, o2); + g_tTex2dmsi4a.Load(c3, 3, o2); + g_tTex2dmsu4a.Load(c3, 3, o2); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} + diff --git a/Test/hlsl.load.basic.dx10.vert b/Test/hlsl.load.basic.dx10.vert new file mode 100644 index 00000000..750b9840 --- /dev/null +++ b/Test/hlsl.load.basic.dx10.vert @@ -0,0 +1,70 @@ +SamplerState g_sSamp : register(s0); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct VS_OUTPUT +{ + float4 Pos : SV_Position; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +VS_OUTPUT main() +{ + VS_OUTPUT vsout; + + // 1D + g_tTex1df4.Load(c2); + g_tTex1di4.Load(c2); + g_tTex1du4.Load(c2); + + // 2D + g_tTex2df4.Load(c3); + g_tTex2di4.Load(c3); + g_tTex2du4.Load(c3); + + // 3D + g_tTex3df4.Load(c4); + g_tTex3di4.Load(c4); + g_tTex3du4.Load(c4); + + // Offset has no Cube or CubeArray forms + + vsout.Pos = float4(0,0,0,0); + + return vsout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 37c92921..7717e092 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -102,8 +102,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.load.2dms.dx10.frag", "main"}, {"hlsl.load.array.dx10.frag", "main"}, {"hlsl.load.basic.dx10.frag", "main"}, + {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.pp.line.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9b9dd680..814a8480 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1007,7 +1007,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType ++numDims; // Establish whether we're querying mip levels - const bool mipQuery = numArgs > (numDims + 1); + const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample()); // AST assumes integer return. Will be converted to float if required. TIntermAggregate* sizeQuery = new TIntermAggregate(EOpTextureQuerySize); @@ -1063,6 +1063,19 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); } + // 2DMS formats query # samples, which needs a different query op + if (texSampler.isMultiSample()) { + TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); + + TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); + samplesQuery->getSequence().push_back(argTex); + samplesQuery->setType(TType(EbtUint, EvqTemporary, 1)); + samplesQuery->setLoc(loc); + + TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, samplesQuery, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); + } + compoundStatement->setOperator(EOpSequence); compoundStatement->setLoc(loc); compoundStatement->setType(TType(EbtVoid)); @@ -1146,7 +1159,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // Last component of coordinate is the mip level, for non-MS. we separate them here: if (isMS) { // MS has no LOD - coordSwizzle = argTex; + coordSwizzle = argCoord; } else { // Extract coordinate TVectorFields coordFields(0,1,2,3); @@ -1164,12 +1177,6 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const int numArgs = argAggregate->getSequence().size(); const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); - // Obtain offset arg, if there is one. - if (hasOffset) { - const int offsetPos = (isMS ? 3 : 2); - argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped(); - } - // Create texel fetch const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); @@ -1177,18 +1184,26 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TSamplerDim dim = argTex->getType().getSampler().dim; if (dim == EsdBuffer) // TODO: buffers assert(0); - if (isMS) // TODO: 2DMS sample number - assert(0); // Build up the fetch txfetch->getSequence().push_back(argTex); txfetch->getSequence().push_back(coordSwizzle); - if (!isMS) // MS has no LOD + if (isMS) { + // add 2DMS sample index + TIntermTyped* argSampleIdx = argAggregate->getSequence()[2]->getAsTyped(); + txfetch->getSequence().push_back(argSampleIdx); + } else { + // 2DMS has no LOD, but everything else does. txfetch->getSequence().push_back(lodComponent); + } - if (hasOffset) + // Obtain offset arg, if there is one. + if (hasOffset) { + const int offsetPos = (isMS ? 3 : 2); + argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped(); txfetch->getSequence().push_back(argOffset); + } txfetch->setType(node->getType()); txfetch->setLoc(loc); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 9f6af891..e78f4655 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -67,17 +67,17 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; } bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } -bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; } -// bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ... +bool IsTextureArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&'; } +bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } +bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder); } // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { const bool isArrayed = IsTextureArrayed(*argOrder); - // const bool isMS = IsTextureMS(*argOrder); + const bool isMS = IsTextureMS(*argOrder); // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) @@ -108,6 +108,10 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim if (name == "Load" && dim0 == 4) return true; // Load does not support any cubemaps, arrayed or not. + // Multisample formats are only 2D and 2Darray + if (isMS && dim0 != 2) + return true; + return false; } @@ -123,9 +127,9 @@ int CoordinateArgPos(const glslang::TString& name, bool isTexture) } // Some texture methods use an addition coordinate dimension for the mip -bool HasMipInCoord(const glslang::TString& name) +bool HasMipInCoord(const glslang::TString& name, bool isMS) { - return name == "Load"; + return name == "Load" && !isMS; } // Handle IO params marked with > or < @@ -151,6 +155,27 @@ void HandleRepeatArg(const char*& arg, const char*& prev, const char* current) prev = current; } +// Return true for the end of a single argument key, which can be the end of the string, or +// the comma separator. +inline bool IsEndOfArg(const char* arg) +{ + return arg == nullptr || *arg == '\0' || *arg == ','; +} + + +// If this is a fixed vector size, such as V3, return the size. Else return 0. +int FixedVecSize(const char* arg) +{ + while (!IsEndOfArg(arg)) { + if (isdigit(*arg)) + return *arg - '0'; + ++arg; + } + + return 0; // none found. +} + + // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. // @@ -165,7 +190,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); - //const bool isMS = IsTextureMS(argOrder[0]); + const bool isMS = IsTextureMS(argOrder[0]); char type = *argType; @@ -182,7 +207,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons type = 'u'; } - while (!isalpha(*argOrder)) + if (isTranspose || isMatMul) ++argOrder; char order = *argOrder; @@ -226,7 +251,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons } // handle fixed vector sizes, such as float3, and only ever 3. - const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0; + const int fixedVecSize = FixedVecSize(argOrder); if (fixedVecSize != 0) dim0 = dim1 = fixedVecSize; @@ -234,11 +259,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (isSampler || isTexture) { if (order == 'V' || isTexture) { switch (dim0) { - case 1: s += "1D"; break; - case 2: s += "2D"; break; - case 3: s += "3D"; break; - case 4: s += "Cube"; break; - default: s += "UNKNOWN_SAMPLER"; break; + case 1: s += "1D"; break; + case 2: s += (isMS ? "2DMS" : "2D"); break; + case 3: s += "3D"; break; + case 4: s += "Cube"; break; + default: s += "UNKNOWN_SAMPLER"; break; } } } else { @@ -263,6 +288,8 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons s += ('0' + char(dim1)); break; } + default: + break; } } @@ -305,14 +332,6 @@ inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char arg } -// Return true for the end of a single argument key, which can be the end of the string, or -// the comma separator. -inline bool IsEndOfArg(const char* arg) -{ - return arg == nullptr || *arg == '\0' || *arg == ','; -} - - // return position of end of argument specifier inline const char* FindEndOfArg(const char* arg) { @@ -322,19 +341,6 @@ inline const char* FindEndOfArg(const char* arg) return *arg == '\0' ? nullptr : arg; } -// If this is a fixed vector size, such as V3, return the size. Else return 0. -int FixedVecSize(const char* arg) -{ - while (!IsEndOfArg(arg)) { - if (isdigit(*arg)) - return *arg - '0'; - ++arg; - } - - return 0; // none found. -} - - // Return pointer to beginning of Nth argument specifier in the string. inline const char* NthArg(const char* arg, int n) { @@ -429,6 +435,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '#' as first letter of order sets rows=cols for mats // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) // '@' as first letter of order creates arrayed texture of given type + // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures static const struct { const char* name; // intrinsic name @@ -619,9 +626,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, - // TODO: MS variants of Load - // { "Load", /* +sampleidex*/ "V4", nullptr, "$V,V,S", "FIU,I,I", EShLangAll }, - // { "Load", /* +samplindex, offset*/ "V4", nullptr, "$V,V,S,V", "FIU,I,I,I", EShLangAll }, + { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, + { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS }, @@ -677,9 +683,12 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll }, { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll }, - // TODO: GetDimensions for Texture2DMS, Texture2DMSArray // UINT Width, UINT Height, UINT Samples // UINT Width, UINT Height, UINT Elements, UINT Samples + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, @@ -703,7 +712,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); const bool isArrayed = IsTextureArrayed(*argOrder); - const bool mipInCoord = HasMipInCoord(intrinsic.name); + const bool isMS = IsTextureMS(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS); const int fixedVecSize = FixedVecSize(argOrder); const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); From b783d712abd5d1a493e1f93a385539992f4bba9e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 27 Jul 2016 10:24:31 -0600 Subject: [PATCH 029/217] HLSL: Report failed assignments; some were silently not happening. Starting out with this turned off, so tests can be locally fixed, then will turn it on. --- glslang/Include/revision.h | 4 ++-- hlsl/hlslGrammar.cpp | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 5ab3596b..47da680b 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1340" -#define GLSLANG_DATE "26-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1348" +#define GLSLANG_DATE "27-Jul-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 37c8635c..be148eb3 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1585,6 +1585,9 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) } node = intermediate.addAssign(assignOp, node, rightNode, loc); + // TODO: Turn this on after tests are fixed for it: + //if (node == nullptr) + // parseContext.error(loc, "could not create assignment", "", ""); if (! peekTokenClass(EHTokComma)) return true; From 00957f8110208e567c041adbb476ca36d0bd68dc Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 27 Jul 2016 10:39:57 -0600 Subject: [PATCH 030/217] HLSL: Implement ?: grammar productions. Missing are implicit conversions between int/bool/etc. --- Test/baseResults/hlsl.conditional.frag.out | 357 +++++++++++++++++++++ Test/hlsl.conditional.frag | 16 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 55 +++- hlsl/hlslGrammar.h | 1 + 5 files changed, 423 insertions(+), 7 deletions(-) create mode 100755 Test/baseResults/hlsl.conditional.frag.out create mode 100644 Test/hlsl.conditional.frag diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out new file mode 100755 index 00000000..f5acec3b --- /dev/null +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -0,0 +1,357 @@ +hlsl.conditional.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp int) +0:3 'a' (temp int) +0:3 Constant: +0:3 5 (const int) +0:4 Sequence +0:4 move second child to first child (temp int) +0:4 'b' (temp int) +0:4 Constant: +0:4 6 (const int) +0:5 Sequence +0:5 move second child to first child (temp int) +0:5 'c' (temp int) +0:5 Constant: +0:5 7 (const int) +0:6 Sequence +0:6 move second child to first child (temp int) +0:6 'd' (temp int) +0:6 Constant: +0:6 7 (const int) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:7 'ret' (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (in 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:9 vector-scale (temp 4-component vector of float) +0:9 Convert int to float (temp float) +0:9 'c' (temp int) +0:9 'input' (in 4-component vector of float) +0:10 vector-scale (temp 4-component vector of float) +0:10 Convert int to float (temp float) +0:10 'd' (temp int) +0:10 'input' (in 4-component vector of float) +0:12 Comma (temp int) +0:12 move second child to first child (temp int) +0:12 'e' (temp int) +0:12 move second child to first child (temp int) +0:12 'a' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'b' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'c' (temp int) +0:12 'd' (temp int) +0:12 false case +0:12 Constant: +0:12 10 (const int) +0:12 move second child to first child (temp int) +0:12 'b' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'a' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'd' (temp int) +0:12 'c' (temp int) +0:12 false case +0:12 Constant: +0:12 11 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 'f' (temp 4-component vector of float) +0:14 Test condition and select (temp 4-component vector of float) +0:14 Condition +0:14 Compare Less Than (temp bool) +0:14 direct index (temp float) +0:14 'ret' (temp 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index (temp float) +0:14 'input' (in 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 true case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'c' (temp int) +0:14 'input' (in 4-component vector of float) +0:14 false case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'd' (temp int) +0:14 'input' (in 4-component vector of float) +0:15 Branch: Return with expression +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp int) +0:3 'a' (temp int) +0:3 Constant: +0:3 5 (const int) +0:4 Sequence +0:4 move second child to first child (temp int) +0:4 'b' (temp int) +0:4 Constant: +0:4 6 (const int) +0:5 Sequence +0:5 move second child to first child (temp int) +0:5 'c' (temp int) +0:5 Constant: +0:5 7 (const int) +0:6 Sequence +0:6 move second child to first child (temp int) +0:6 'd' (temp int) +0:6 Constant: +0:6 7 (const int) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:7 'ret' (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (in 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:9 vector-scale (temp 4-component vector of float) +0:9 Convert int to float (temp float) +0:9 'c' (temp int) +0:9 'input' (in 4-component vector of float) +0:10 vector-scale (temp 4-component vector of float) +0:10 Convert int to float (temp float) +0:10 'd' (temp int) +0:10 'input' (in 4-component vector of float) +0:12 Comma (temp int) +0:12 move second child to first child (temp int) +0:12 'e' (temp int) +0:12 move second child to first child (temp int) +0:12 'a' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'b' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'c' (temp int) +0:12 'd' (temp int) +0:12 false case +0:12 Constant: +0:12 10 (const int) +0:12 move second child to first child (temp int) +0:12 'b' (temp int) +0:12 Test condition and select (temp int) +0:12 Condition +0:12 'a' (temp int) +0:12 true case +0:12 move second child to first child (temp int) +0:12 'd' (temp int) +0:12 'c' (temp int) +0:12 false case +0:12 Constant: +0:12 11 (const int) +0:14 move second child to first child (temp 4-component vector of float) +0:14 'f' (temp 4-component vector of float) +0:14 Test condition and select (temp 4-component vector of float) +0:14 Condition +0:14 Compare Less Than (temp bool) +0:14 direct index (temp float) +0:14 'ret' (temp 4-component vector of float) +0:14 Constant: +0:14 0 (const int) +0:14 direct index (temp float) +0:14 'input' (in 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 true case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'c' (temp int) +0:14 'input' (in 4-component vector of float) +0:14 false case +0:14 vector-scale (temp 4-component vector of float) +0:14 Convert int to float (temp float) +0:14 'd' (temp int) +0:14 'input' (in 4-component vector of float) +0:15 Branch: Return with expression +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 89 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 22 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "a" + Name 10 "b" + Name 12 "c" + Name 14 "d" + Name 18 "ret" + Name 22 "input" + Name 40 "e" + Name 57 "f" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 5 + 11: 6(int) Constant 6 + 13: 6(int) Constant 7 + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Function 16(fvec4) + 21: TypePointer Input 16(fvec4) + 22(input): 21(ptr) Variable Input + 47: 6(int) Constant 10 + 55: 6(int) Constant 11 + 59: TypeInt 32 0 + 60: 59(int) Constant 0 + 61: TypePointer Function 15(float) + 64: 59(int) Constant 1 + 65: TypePointer Input 15(float) + 68: TypeBool +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 10(b): 7(ptr) Variable Function + 12(c): 7(ptr) Variable Function + 14(d): 7(ptr) Variable Function + 18(ret): 17(ptr) Variable Function + 40(e): 7(ptr) Variable Function + 41: 7(ptr) Variable Function + 49: 7(ptr) Variable Function + 57(f): 17(ptr) Variable Function + 58: 17(ptr) Variable Function + Store 8(a) 9 + Store 10(b) 11 + Store 12(c) 13 + Store 14(d) 13 + 19: 6(int) Load 8(a) + 20: 15(float) ConvertSToF 19 + 23: 16(fvec4) Load 22(input) + 24: 16(fvec4) VectorTimesScalar 23 20 + 25: 6(int) Load 10(b) + 26: 15(float) ConvertSToF 25 + 27: 16(fvec4) Load 22(input) + 28: 16(fvec4) VectorTimesScalar 27 26 + 29: 16(fvec4) FAdd 24 28 + 30: 6(int) Load 12(c) + 31: 15(float) ConvertSToF 30 + 32: 16(fvec4) Load 22(input) + 33: 16(fvec4) VectorTimesScalar 32 31 + 34: 6(int) Load 14(d) + 35: 15(float) ConvertSToF 34 + 36: 16(fvec4) Load 22(input) + 37: 16(fvec4) VectorTimesScalar 36 35 + 38: 16(fvec4) FAdd 33 37 + 39: 16(fvec4) FAdd 29 38 + Store 18(ret) 39 + 42: 6(int) Load 10(b) + SelectionMerge 44 None + BranchConditional 42 43 46 + 43: Label + 45: 6(int) Load 14(d) + Store 12(c) 45 + Store 41 45 + Branch 44 + 46: Label + Store 41 47 + Branch 44 + 44: Label + 48: 6(int) Load 41 + Store 8(a) 48 + Store 40(e) 48 + 50: 6(int) Load 8(a) + SelectionMerge 52 None + BranchConditional 50 51 54 + 51: Label + 53: 6(int) Load 12(c) + Store 14(d) 53 + Store 49 53 + Branch 52 + 54: Label + Store 49 55 + Branch 52 + 52: Label + 56: 6(int) Load 49 + Store 10(b) 56 + 62: 61(ptr) AccessChain 18(ret) 60 + 63: 15(float) Load 62 + 66: 65(ptr) AccessChain 22(input) 64 + 67: 15(float) Load 66 + 69: 68(bool) FOrdLessThan 63 67 + SelectionMerge 71 None + BranchConditional 69 70 76 + 70: Label + 72: 6(int) Load 12(c) + 73: 15(float) ConvertSToF 72 + 74: 16(fvec4) Load 22(input) + 75: 16(fvec4) VectorTimesScalar 74 73 + Store 58 75 + Branch 71 + 76: Label + 77: 6(int) Load 14(d) + 78: 15(float) ConvertSToF 77 + 79: 16(fvec4) Load 22(input) + 80: 16(fvec4) VectorTimesScalar 79 78 + Store 58 80 + Branch 71 + 71: Label + 81: 16(fvec4) Load 58 + Store 57(f) 81 + 82: 6(int) Load 40(e) + 83: 15(float) ConvertSToF 82 + 84: 16(fvec4) Load 18(ret) + 85: 16(fvec4) VectorTimesScalar 84 83 + 86: 16(fvec4) Load 57(f) + 87: 16(fvec4) FAdd 85 86 + ReturnValue 87 + FunctionEnd diff --git a/Test/hlsl.conditional.frag b/Test/hlsl.conditional.frag new file mode 100644 index 00000000..128c5931 --- /dev/null +++ b/Test/hlsl.conditional.frag @@ -0,0 +1,16 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + int a = 1 < 2 ? 3 < 4 ? 5 : 6 : 7; + int b = 1 < 2 ? 3 > 4 ? 5 : 6 : 7; + int c = 1 > 2 ? 3 > 4 ? 5 : 6 : 7; + int d = 1 > 2 ? 3 < 4 ? 5 : 6 : 7; + float4 ret = a * input + + b * input + + c * input + + d * input; + int e; + e = a = b ? c = d : 10, b = a ? d = c : 11; + float4 f; + f = ret.x < input.y ? c * input : d * input; + return e * ret + f; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 7717e092..2561af99 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -77,6 +77,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index be148eb3..3c965600 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1548,8 +1548,9 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) // a op (b op (c op d)) // // assigment_expression -// : binary_expression op binary_expression op binary_expression ... -// | initializer +// : initializer +// | conditional_expression +// | conditional_expression assign_op conditional_expression assign_op conditional_expression ... // bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) { @@ -1562,8 +1563,8 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) return false; } - // binary_expression - if (! acceptBinaryExpression(node, PlLogicalOr)) + // conditional_expression + if (! acceptConditionalExpression(node)) return false; // assignment operation? @@ -1571,12 +1572,12 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) if (assignOp == EOpNull) return true; - // assignment op + // assign_op TSourceLoc loc = token.loc; advanceToken(); - // binary_expression - // But, done by recursing this function, which automatically + // conditional_expression assign_op conditional_expression ... + // Done by recursing this function, which automatically // gets the right-to-left associativity. TIntermTyped* rightNode = nullptr; if (! acceptAssignmentExpression(rightNode)) { @@ -1595,6 +1596,46 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) return true; } +// Accept a conditional expression, which associates right-to-left, +// accomplished by the "true" expression calling down to lower +// precedence levels than this level. +// +// conditional_expression +// : binary_expression +// | binary_expression QUESTION expression COLON assignment_expression +// +bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node) +{ + // binary_expression + if (! acceptBinaryExpression(node, PlLogicalOr)) + return false; + + if (! acceptTokenClass(EHTokQuestion)) + return true; + + TIntermTyped* trueNode = nullptr; + if (! acceptExpression(trueNode)) { + expected("expression after ?"); + return false; + } + TSourceLoc loc = token.loc; + + if (! acceptTokenClass(EHTokColon)) { + expected(":"); + return false; + } + + TIntermTyped* falseNode = nullptr; + if (! acceptAssignmentExpression(falseNode)) { + expected("expression after :"); + return false; + } + + node = intermediate.addSelection(node, trueNode, falseNode, loc); + + return true; +} + // Accept a binary expression, for binary operations that // associate left-to-right. This is, it is implicit, for example // diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 9f224fef..c522df4c 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -83,6 +83,7 @@ namespace glslang { bool acceptExpression(TIntermTyped*&); bool acceptInitializer(TIntermTyped*&); bool acceptAssignmentExpression(TIntermTyped*&); + bool acceptConditionalExpression(TIntermTyped*&); bool acceptBinaryExpression(TIntermTyped*&, PrecedenceLevel); bool acceptUnaryExpression(TIntermTyped*&); bool acceptPostfixExpression(TIntermTyped*&); From 68f2c144e300bf9092018f9ba27afd75efa0f52a Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 26 Jul 2016 08:57:53 -0600 Subject: [PATCH 031/217] HLSL: Add CalculateLevelOfDetail, and unimplemented errors for *Unclamped and GetSamplePosition --- .../hlsl.calculatelod.dx10.frag.out | 494 ++++++++++++++++++ .../hlsl.calculatelodunclamped.dx10.frag.out | 308 +++++++++++ .../hlsl.getsampleposition.dx10.frag.out | 83 +++ Test/hlsl.calculatelod.dx10.frag | 44 ++ Test/hlsl.calculatelodunclamped.dx10.frag | 44 ++ Test/hlsl.getsampleposition.dx10.frag | 23 + gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslParseHelper.cpp | 32 ++ hlsl/hlslParseables.cpp | 19 +- 9 files changed, 1048 insertions(+), 2 deletions(-) create mode 100644 Test/baseResults/hlsl.calculatelod.dx10.frag.out create mode 100644 Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out create mode 100644 Test/baseResults/hlsl.getsampleposition.dx10.frag.out create mode 100644 Test/hlsl.calculatelod.dx10.frag create mode 100644 Test/hlsl.calculatelodunclamped.dx10.frag create mode 100644 Test/hlsl.getsampleposition.dx10.frag diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out new file mode 100644 index 00000000..a48351cd --- /dev/null +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -0,0 +1,494 @@ +hlsl.calculatelod.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'txval10' (temp float) +0:28 direct index (temp float) +0:? textureQueryLod (temp float) +0:28 Construct combined texture-sampler (temp sampler1DArray) +0:28 'g_tTex1df4a' (uniform texture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'txval11' (temp float) +0:29 direct index (temp float) +0:? textureQueryLod (temp float) +0:29 Construct combined texture-sampler (temp isampler1DArray) +0:29 'g_tTex1di4a' (uniform itexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'txval12' (temp float) +0:30 direct index (temp float) +0:? textureQueryLod (temp float) +0:30 Construct combined texture-sampler (temp usampler1DArray) +0:30 'g_tTex1du4a' (uniform utexture1DArray) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'txval20' (temp float) +0:32 direct index (temp float) +0:? textureQueryLod (temp float) +0:32 Construct combined texture-sampler (temp sampler2DArray) +0:32 'g_tTex2df4a' (uniform texture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'txval21' (temp float) +0:33 direct index (temp float) +0:? textureQueryLod (temp float) +0:33 Construct combined texture-sampler (temp isampler2DArray) +0:33 'g_tTex2di4a' (uniform itexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'txval22' (temp float) +0:34 direct index (temp float) +0:? textureQueryLod (temp float) +0:34 Construct combined texture-sampler (temp usampler2DArray) +0:34 'g_tTex2du4a' (uniform utexture2DArray) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp float) +0:36 'txval40' (temp float) +0:36 direct index (temp float) +0:? textureQueryLod (temp float) +0:36 Construct combined texture-sampler (temp samplerCubeArray) +0:36 'g_tTexcdf4a' (uniform textureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'txval41' (temp float) +0:37 direct index (temp float) +0:? textureQueryLod (temp float) +0:37 Construct combined texture-sampler (temp isamplerCubeArray) +0:37 'g_tTexcdi4a' (uniform itextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'txval42' (temp float) +0:38 direct index (temp float) +0:? textureQueryLod (temp float) +0:38 Construct combined texture-sampler (temp usamplerCubeArray) +0:38 'g_tTexcdu4a' (uniform utextureCubeArray) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'txval10' (temp float) +0:28 direct index (temp float) +0:? textureQueryLod (temp float) +0:28 Construct combined texture-sampler (temp sampler1DArray) +0:28 'g_tTex1df4a' (uniform texture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'txval11' (temp float) +0:29 direct index (temp float) +0:? textureQueryLod (temp float) +0:29 Construct combined texture-sampler (temp isampler1DArray) +0:29 'g_tTex1di4a' (uniform itexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'txval12' (temp float) +0:30 direct index (temp float) +0:? textureQueryLod (temp float) +0:30 Construct combined texture-sampler (temp usampler1DArray) +0:30 'g_tTex1du4a' (uniform utexture1DArray) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'txval20' (temp float) +0:32 direct index (temp float) +0:? textureQueryLod (temp float) +0:32 Construct combined texture-sampler (temp sampler2DArray) +0:32 'g_tTex2df4a' (uniform texture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'txval21' (temp float) +0:33 direct index (temp float) +0:? textureQueryLod (temp float) +0:33 Construct combined texture-sampler (temp isampler2DArray) +0:33 'g_tTex2di4a' (uniform itexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'txval22' (temp float) +0:34 direct index (temp float) +0:? textureQueryLod (temp float) +0:34 Construct combined texture-sampler (temp usampler2DArray) +0:34 'g_tTex2du4a' (uniform utexture2DArray) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp float) +0:36 'txval40' (temp float) +0:36 direct index (temp float) +0:? textureQueryLod (temp float) +0:36 Construct combined texture-sampler (temp samplerCubeArray) +0:36 'g_tTexcdf4a' (uniform textureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'txval41' (temp float) +0:37 direct index (temp float) +0:? textureQueryLod (temp float) +0:37 Construct combined texture-sampler (temp isamplerCubeArray) +0:37 'g_tTexcdi4a' (uniform itextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'txval42' (temp float) +0:38 direct index (temp float) +0:? textureQueryLod (temp float) +0:38 Construct combined texture-sampler (temp usamplerCubeArray) +0:38 'g_tTexcdu4a' (uniform utextureCubeArray) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 140 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "txval10" + Name 11 "g_tTex1df4a" + Name 15 "g_sSamp" + Name 26 "txval11" + Name 29 "g_tTex1di4a" + Name 38 "txval12" + Name 42 "g_tTex1du4a" + Name 51 "txval20" + Name 54 "g_tTex2df4a" + Name 63 "txval21" + Name 66 "g_tTex2di4a" + Name 76 "txval22" + Name 79 "g_tTex2du4a" + Name 90 "txval40" + Name 93 "g_tTexcdf4a" + Name 103 "txval41" + Name 106 "g_tTexcdi4a" + Name 115 "txval42" + Name 118 "g_tTexcdu4a" + Name 131 "PS_OUTPUT" + MemberName 131(PS_OUTPUT) 0 "Color" + MemberName 131(PS_OUTPUT) 1 "Depth" + Name 133 "psout" + Name 139 "g_tTex1df4" + Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 29(g_tTex1di4a) DescriptorSet 0 + Decorate 42(g_tTex1du4a) DescriptorSet 0 + Decorate 54(g_tTex2df4a) DescriptorSet 0 + Decorate 66(g_tTex2di4a) DescriptorSet 0 + Decorate 79(g_tTex2du4a) DescriptorSet 0 + Decorate 93(g_tTexcdf4a) DescriptorSet 0 + Decorate 106(g_tTexcdi4a) DescriptorSet 0 + Decorate 118(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 139(g_tTex1df4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D array sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df4a): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeSampledImage 9 + 19: 6(float) Constant 1036831949 + 21: TypeVector 6(float) 2 + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 27: TypeImage 23(int) 1D array sampled format:Unknown + 28: TypePointer UniformConstant 27 + 29(g_tTex1di4a): 28(ptr) Variable UniformConstant + 32: TypeSampledImage 27 + 34: 6(float) Constant 1045220557 + 39: TypeInt 32 0 + 40: TypeImage 39(int) 1D array sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4a): 41(ptr) Variable UniformConstant + 45: TypeSampledImage 40 + 47: 6(float) Constant 1050253722 + 52: TypeImage 6(float) 2D array sampled format:Unknown + 53: TypePointer UniformConstant 52 + 54(g_tTex2df4a): 53(ptr) Variable UniformConstant + 57: TypeSampledImage 52 + 59: 21(fvec2) ConstantComposite 19 34 + 64: TypeImage 23(int) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4a): 65(ptr) Variable UniformConstant + 69: TypeSampledImage 64 + 71: 6(float) Constant 1053609165 + 72: 21(fvec2) ConstantComposite 47 71 + 77: TypeImage 39(int) 2D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2du4a): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: 6(float) Constant 1056964608 + 85: 6(float) Constant 1058642330 + 86: 21(fvec2) ConstantComposite 84 85 + 91: TypeImage 6(float) Cube array sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTexcdf4a): 92(ptr) Variable UniformConstant + 96: TypeSampledImage 91 + 98: TypeVector 6(float) 3 + 99: 98(fvec3) ConstantComposite 19 34 47 + 104: TypeImage 23(int) Cube array sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(g_tTexcdi4a): 105(ptr) Variable UniformConstant + 109: TypeSampledImage 104 + 111: 98(fvec3) ConstantComposite 71 84 85 + 116: TypeImage 39(int) Cube array sampled format:Unknown + 117: TypePointer UniformConstant 116 +118(g_tTexcdu4a): 117(ptr) Variable UniformConstant + 121: TypeSampledImage 116 + 123: 6(float) Constant 1060320051 + 124: 6(float) Constant 1061997773 + 125: 6(float) Constant 1063675494 + 126: 98(fvec3) ConstantComposite 123 124 125 + 130: TypeVector 6(float) 4 + 131(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) + 132: TypePointer Function 131(PS_OUTPUT) + 134: 23(int) Constant 1 + 135: 6(float) Constant 1065353216 + 139(g_tTex1df4): 10(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(txval10): 7(ptr) Variable Function + 26(txval11): 7(ptr) Variable Function + 38(txval12): 7(ptr) Variable Function + 51(txval20): 7(ptr) Variable Function + 63(txval21): 7(ptr) Variable Function + 76(txval22): 7(ptr) Variable Function + 90(txval40): 7(ptr) Variable Function + 103(txval41): 7(ptr) Variable Function + 115(txval42): 7(ptr) Variable Function + 133(psout): 132(ptr) Variable Function + 12: 9 Load 11(g_tTex1df4a) + 16: 13 Load 15(g_sSamp) + 18: 17 SampledImage 12 16 + 20: 9 Image 18 + 22: 21(fvec2) ImageQueryLod 20 19 + 25: 6(float) CompositeExtract 22 0 + Store 8(txval10) 25 + 30: 27 Load 29(g_tTex1di4a) + 31: 13 Load 15(g_sSamp) + 33: 32 SampledImage 30 31 + 35: 27 Image 33 + 36: 21(fvec2) ImageQueryLod 35 34 + 37: 6(float) CompositeExtract 36 0 + Store 26(txval11) 37 + 43: 40 Load 42(g_tTex1du4a) + 44: 13 Load 15(g_sSamp) + 46: 45 SampledImage 43 44 + 48: 40 Image 46 + 49: 21(fvec2) ImageQueryLod 48 47 + 50: 6(float) CompositeExtract 49 0 + Store 38(txval12) 50 + 55: 52 Load 54(g_tTex2df4a) + 56: 13 Load 15(g_sSamp) + 58: 57 SampledImage 55 56 + 60: 52 Image 58 + 61: 21(fvec2) ImageQueryLod 60 59 + 62: 6(float) CompositeExtract 61 0 + Store 51(txval20) 62 + 67: 64 Load 66(g_tTex2di4a) + 68: 13 Load 15(g_sSamp) + 70: 69 SampledImage 67 68 + 73: 64 Image 70 + 74: 21(fvec2) ImageQueryLod 73 72 + 75: 6(float) CompositeExtract 74 0 + Store 63(txval21) 75 + 80: 77 Load 79(g_tTex2du4a) + 81: 13 Load 15(g_sSamp) + 83: 82 SampledImage 80 81 + 87: 77 Image 83 + 88: 21(fvec2) ImageQueryLod 87 86 + 89: 6(float) CompositeExtract 88 0 + Store 76(txval22) 89 + 94: 91 Load 93(g_tTexcdf4a) + 95: 13 Load 15(g_sSamp) + 97: 96 SampledImage 94 95 + 100: 91 Image 97 + 101: 21(fvec2) ImageQueryLod 100 99 + 102: 6(float) CompositeExtract 101 0 + Store 90(txval40) 102 + 107: 104 Load 106(g_tTexcdi4a) + 108: 13 Load 15(g_sSamp) + 110: 109 SampledImage 107 108 + 112: 104 Image 110 + 113: 21(fvec2) ImageQueryLod 112 111 + 114: 6(float) CompositeExtract 113 0 + Store 103(txval41) 114 + 119: 116 Load 118(g_tTexcdu4a) + 120: 13 Load 15(g_sSamp) + 122: 121 SampledImage 119 120 + 127: 116 Image 122 + 128: 21(fvec2) ImageQueryLod 127 126 + 129: 6(float) CompositeExtract 128 0 + Store 115(txval42) 129 + 136: 7(ptr) AccessChain 133(psout) 134 + Store 136 135 + 137:131(PS_OUTPUT) Load 133(psout) + ReturnValue 137 + FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out new file mode 100644 index 00000000..11a52b58 --- /dev/null +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -0,0 +1,308 @@ +hlsl.calculatelodunclamped.dx10.frag +ERROR: 0:28: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:29: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:30: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:32: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:33: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:34: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:36: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:37: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped +ERROR: 9 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'txval10' (temp float) +0:28 direct index (temp float) +0:? textureQueryLod (temp float) +0:28 Construct combined texture-sampler (temp sampler1DArray) +0:28 'g_tTex1df4a' (uniform texture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'txval11' (temp float) +0:29 direct index (temp float) +0:? textureQueryLod (temp float) +0:29 Construct combined texture-sampler (temp isampler1DArray) +0:29 'g_tTex1di4a' (uniform itexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'txval12' (temp float) +0:30 direct index (temp float) +0:? textureQueryLod (temp float) +0:30 Construct combined texture-sampler (temp usampler1DArray) +0:30 'g_tTex1du4a' (uniform utexture1DArray) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'txval20' (temp float) +0:32 direct index (temp float) +0:? textureQueryLod (temp float) +0:32 Construct combined texture-sampler (temp sampler2DArray) +0:32 'g_tTex2df4a' (uniform texture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'txval21' (temp float) +0:33 direct index (temp float) +0:? textureQueryLod (temp float) +0:33 Construct combined texture-sampler (temp isampler2DArray) +0:33 'g_tTex2di4a' (uniform itexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'txval22' (temp float) +0:34 direct index (temp float) +0:? textureQueryLod (temp float) +0:34 Construct combined texture-sampler (temp usampler2DArray) +0:34 'g_tTex2du4a' (uniform utexture2DArray) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp float) +0:36 'txval40' (temp float) +0:36 direct index (temp float) +0:? textureQueryLod (temp float) +0:36 Construct combined texture-sampler (temp samplerCubeArray) +0:36 'g_tTexcdf4a' (uniform textureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'txval41' (temp float) +0:37 direct index (temp float) +0:? textureQueryLod (temp float) +0:37 Construct combined texture-sampler (temp isamplerCubeArray) +0:37 'g_tTexcdi4a' (uniform itextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'txval42' (temp float) +0:38 direct index (temp float) +0:? textureQueryLod (temp float) +0:38 Construct combined texture-sampler (temp usamplerCubeArray) +0:38 'g_tTexcdu4a' (uniform utextureCubeArray) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'txval10' (temp float) +0:28 direct index (temp float) +0:? textureQueryLod (temp float) +0:28 Construct combined texture-sampler (temp sampler1DArray) +0:28 'g_tTex1df4a' (uniform texture1DArray) +0:28 'g_sSamp' (uniform sampler) +0:28 Constant: +0:28 0.100000 +0:28 Constant: +0:28 0 (const int) +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'txval11' (temp float) +0:29 direct index (temp float) +0:? textureQueryLod (temp float) +0:29 Construct combined texture-sampler (temp isampler1DArray) +0:29 'g_tTex1di4a' (uniform itexture1DArray) +0:29 'g_sSamp' (uniform sampler) +0:29 Constant: +0:29 0.200000 +0:29 Constant: +0:29 0 (const int) +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'txval12' (temp float) +0:30 direct index (temp float) +0:? textureQueryLod (temp float) +0:30 Construct combined texture-sampler (temp usampler1DArray) +0:30 'g_tTex1du4a' (uniform utexture1DArray) +0:30 'g_sSamp' (uniform sampler) +0:30 Constant: +0:30 0.300000 +0:30 Constant: +0:30 0 (const int) +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'txval20' (temp float) +0:32 direct index (temp float) +0:? textureQueryLod (temp float) +0:32 Construct combined texture-sampler (temp sampler2DArray) +0:32 'g_tTex2df4a' (uniform texture2DArray) +0:32 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'txval21' (temp float) +0:33 direct index (temp float) +0:? textureQueryLod (temp float) +0:33 Construct combined texture-sampler (temp isampler2DArray) +0:33 'g_tTex2di4a' (uniform itexture2DArray) +0:33 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.300000 +0:? 0.400000 +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'txval22' (temp float) +0:34 direct index (temp float) +0:? textureQueryLod (temp float) +0:34 Construct combined texture-sampler (temp usampler2DArray) +0:34 'g_tTex2du4a' (uniform utexture2DArray) +0:34 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.500000 +0:? 0.600000 +0:34 Constant: +0:34 0 (const int) +0:36 Sequence +0:36 move second child to first child (temp float) +0:36 'txval40' (temp float) +0:36 direct index (temp float) +0:? textureQueryLod (temp float) +0:36 Construct combined texture-sampler (temp samplerCubeArray) +0:36 'g_tTexcdf4a' (uniform textureCubeArray) +0:36 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.100000 +0:? 0.200000 +0:? 0.300000 +0:36 Constant: +0:36 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp float) +0:37 'txval41' (temp float) +0:37 direct index (temp float) +0:? textureQueryLod (temp float) +0:37 Construct combined texture-sampler (temp isamplerCubeArray) +0:37 'g_tTexcdi4a' (uniform itextureCubeArray) +0:37 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.400000 +0:? 0.500000 +0:? 0.600000 +0:37 Constant: +0:37 0 (const int) +0:38 Sequence +0:38 move second child to first child (temp float) +0:38 'txval42' (temp float) +0:38 direct index (temp float) +0:? textureQueryLod (temp float) +0:38 Construct combined texture-sampler (temp usamplerCubeArray) +0:38 'g_tTexcdu4a' (uniform utextureCubeArray) +0:38 'g_sSamp' (uniform sampler) +0:? Constant: +0:? 0.700000 +0:? 0.800000 +0:? 0.900000 +0:38 Constant: +0:38 0 (const int) +0:41 move second child to first child (temp float) +0:41 Depth: direct index for structure (temp float FragDepth) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Constant: +0:41 1 (const int) +0:41 Constant: +0:41 1.000000 +0:43 Branch: Return with expression +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out new file mode 100644 index 00000000..ae9d3aef --- /dev/null +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -0,0 +1,83 @@ +hlsl.getsampleposition.dx10.frag +ERROR: 0:16: '' : unimplemented: GetSamplePosition +ERROR: 0:17: '' : unimplemented: GetSamplePosition +ERROR: 2 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of float) +0:16 'r00' (temp 2-component vector of float) +0:16 ERROR: Bad aggregation op + (global 2-component vector of float) +0:16 'g_tTex2dmsf4' (uniform texture2DMS) +0:16 Constant: +0:16 1 (const int) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 'r01' (temp 2-component vector of float) +0:17 ERROR: Bad aggregation op + (global 2-component vector of float) +0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:17 Constant: +0:17 2 (const int) +0:20 move second child to first child (temp float) +0:20 Depth: direct index for structure (temp float FragDepth) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1.000000 +0:22 Branch: Return with expression +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of float) +0:16 'r00' (temp 2-component vector of float) +0:16 ERROR: Bad aggregation op + (global 2-component vector of float) +0:16 'g_tTex2dmsf4' (uniform texture2DMS) +0:16 Constant: +0:16 1 (const int) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 'r01' (temp 2-component vector of float) +0:17 ERROR: Bad aggregation op + (global 2-component vector of float) +0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:17 Constant: +0:17 2 (const int) +0:20 move second child to first child (temp float) +0:20 Depth: direct index for structure (temp float FragDepth) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 1.000000 +0:22 Branch: Return with expression +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex2dmsf4' (uniform texture2DMS) +0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) + +SPIR-V is not generated for failed compile or link diff --git a/Test/hlsl.calculatelod.dx10.frag b/Test/hlsl.calculatelod.dx10.frag new file mode 100644 index 00000000..0fb76072 --- /dev/null +++ b/Test/hlsl.calculatelod.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // LOD queries do not pass array level in coordinate. + float txval10 = g_tTex1df4a . CalculateLevelOfDetail(g_sSamp, 0.1); + float txval11 = g_tTex1di4a . CalculateLevelOfDetail(g_sSamp, 0.2); + float txval12 = g_tTex1du4a . CalculateLevelOfDetail(g_sSamp, 0.3); + + float txval20 = g_tTex2df4a . CalculateLevelOfDetail(g_sSamp, float2(0.1, 0.2)); + float txval21 = g_tTex2di4a . CalculateLevelOfDetail(g_sSamp, float2(0.3, 0.4)); + float txval22 = g_tTex2du4a . CalculateLevelOfDetail(g_sSamp, float2(0.5, 0.6)); + + float txval40 = g_tTexcdf4a . CalculateLevelOfDetail(g_sSamp, float3(0.1, 0.2, 0.3)); + float txval41 = g_tTexcdi4a . CalculateLevelOfDetail(g_sSamp, float3(0.4, 0.5, 0.6)); + float txval42 = g_tTexcdu4a . CalculateLevelOfDetail(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.calculatelodunclamped.dx10.frag b/Test/hlsl.calculatelodunclamped.dx10.frag new file mode 100644 index 00000000..4c79aed8 --- /dev/null +++ b/Test/hlsl.calculatelodunclamped.dx10.frag @@ -0,0 +1,44 @@ +SamplerState g_sSamp : register(s0); + +Texture1DArray g_tTex1df4a : register(t1); + +uniform Texture1DArray g_tTex1df4 : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // LOD queries do not pass array level in coordinate. + float txval10 = g_tTex1df4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.1); + float txval11 = g_tTex1di4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.2); + float txval12 = g_tTex1du4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.3); + + float txval20 = g_tTex2df4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.1, 0.2)); + float txval21 = g_tTex2di4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.3, 0.4)); + float txval22 = g_tTex2du4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.5, 0.6)); + + float txval40 = g_tTexcdf4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.1, 0.2, 0.3)); + float txval41 = g_tTexcdi4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.4, 0.5, 0.6)); + float txval42 = g_tTexcdu4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.getsampleposition.dx10.frag b/Test/hlsl.getsampleposition.dx10.frag new file mode 100644 index 00000000..a7a93b37 --- /dev/null +++ b/Test/hlsl.getsampleposition.dx10.frag @@ -0,0 +1,23 @@ +SamplerState g_sSamp : register(s0); + +Texture2DMS g_tTex2dmsf4; +Texture2DMSArray g_tTex2dmsf4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float2 r00 = g_tTex2dmsf4.GetSamplePosition(1); + float2 r01 = g_tTex2dmsf4a.GetSamplePosition(2); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2561af99..e4cb4b06 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -76,6 +76,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, + {"hlsl.calculatelod.dx10.frag", "main"}, + {"hlsl.calculatelodunclamped.dx10.frag", "main"}, {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, @@ -90,6 +92,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.gather.offsetarray.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, + {"hlsl.getsampleposition.dx10.frag", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 814a8480..d695ca17 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1273,6 +1273,38 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodCalculateLevelOfDetail: + case EOpMethodCalculateLevelOfDetailUnclamped: + { + TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* txquerylod = new TIntermAggregate(EOpTextureQueryLod); + + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + txquerylod->getSequence().push_back(txcombine); + txquerylod->getSequence().push_back(argCoord); + + TIntermTyped* lodComponent = intermediate.addConstantUnion(0, loc, true); + TIntermTyped* lodComponentIdx = intermediate.addIndex(EOpIndexDirect, txquerylod, lodComponent, loc); + lodComponentIdx->setType(TType(EbtFloat, EvqTemporary, 1)); + + node = lodComponentIdx; + + // We cannot currently obtain the unclamped LOD + if (op == EOpMethodCalculateLevelOfDetailUnclamped) + error(loc, "unimplemented: CalculateLevelOfDetailUnclamped", "", ""); + + break; + } + + case EOpMethodGetSamplePosition: + { + error(loc, "unimplemented: GetSamplePosition", "", ""); + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index e78f4655..edfba9cb 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -132,6 +132,12 @@ bool HasMipInCoord(const glslang::TString& name, bool isMS) return name == "Load" && !isMS; } +// LOD calculations don't pass the array level in the coordinate. +bool NoArrayCoord(const glslang::TString& name) +{ + return name == "CalculateLevelOfDetail" || name == "CalculateLevelOfDetailUnclamped"; +} + // Handle IO params marked with > or < const char* IoParam(glslang::TString& s, const char* nthArgOrder) { @@ -632,6 +638,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS }, + { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, + { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, + + { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS }, + // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx // // UINT Width @@ -770,8 +781,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // In case the repeated arg has its own I/O marker nthArgOrder = IoParam(s, nthArgOrder); - // arrayed textures have one extra coordinate dimension - if (isArrayed && arg == coordArg) + // arrayed textures have one extra coordinate dimension, except for + // the CalculateLevelOfDetail family. + if (isArrayed && arg == coordArg && !NoArrayCoord(intrinsic.name)) argDim0++; // Some texture methods use an addition arg dimension to hold mip @@ -982,7 +994,10 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel); symbolTable.relateToOperator("Load", EOpMethodLoad); symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions); + symbolTable.relateToOperator("GetSamplePosition", EOpMethodGetSamplePosition); symbolTable.relateToOperator("Gather", EOpMethodGather); + symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); + symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); } // From e15509e450b8d0cf383b76b43a3e134fe858f685 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 27 Jul 2016 13:14:36 -0600 Subject: [PATCH 032/217] Infrastructure: Address issue #414, build instructions. --- README.md | 15 +++++++++++---- glslang/Include/revision.h | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 010af5c7..63ffdee1 100644 --- a/README.md +++ b/README.md @@ -57,14 +57,21 @@ Building ### Build steps -#### 1) Check-Out External Projects +#### 1) Check-Out this project ```bash -cd +cd +git clone git@github.com:KhronosGroup/glslang.git +``` + +#### 2) Check-Out External Projects + +```bash +cd git clone https://github.com/google/googletest.git External/googletest ``` -#### 2) Configure +#### 3) Configure Assume the source directory is `$SOURCE_DIR` and the build directory is `$BUILD_DIR`: @@ -87,7 +94,7 @@ cmake $SOURCE_DIR -DCMAKE_INSTALL_PREFIX=`pwd`/install The CMake GUI also works for Windows (version 3.4.1 tested). -#### 3) Build and Install +#### 4) Build and Install ```bash # for Linux: diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 47da680b..55f45274 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1348" +#define GLSLANG_REVISION "SPIRV99.1351" #define GLSLANG_DATE "27-Jul-2016" From 414f735443de27653f8b385dc279c3a1a00d06dd Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 27 Jul 2016 14:43:01 -0600 Subject: [PATCH 033/217] Front-end: Fix issue #409, check for implicitly-sized binding arrays. --- Test/420.vert | 4 +++- Test/baseResults/420.vert.out | 3 +++ glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 9 +++++++-- glslang/MachineIndependent/linkValidate.cpp | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Test/420.vert b/Test/420.vert index 49035ea4..ab28140e 100644 --- a/Test/420.vert +++ b/Test/420.vert @@ -156,4 +156,6 @@ void qlod() levels = textureQueryLevels(samp1D); // ERROR, not until 430 levels = textureQueryLevels(samp1Ds); // ERROR, not until 430 -} \ No newline at end of file +} + +layout(binding=0) writeonly uniform image1D badArray[]; diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index 0f5110cb..a234970c 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -51,6 +51,7 @@ ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int' ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int' +WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for implicitly-sized array ERROR: 50 compilation errors. No code generated. @@ -299,6 +300,7 @@ ERROR: node is still EOpNull! 0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo}) 0:? 'samp1D' (uniform sampler1D) 0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'badArray' (layout(binding=0 ) writeonly uniform implicitly-sized array of image1D) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) @@ -551,6 +553,7 @@ ERROR: node is still EOpNull! 0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo}) 0:? 'samp1D' (uniform sampler1D) 0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'badArray' (layout(binding=0 ) writeonly uniform 1-element array of image1D) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 55f45274..c3344c1c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1351" +#define GLSLANG_REVISION "SPIRV99.1353" #define GLSLANG_DATE "27-Jul-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 274f919c..173969a0 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4544,8 +4544,13 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", ""); if (type.getBasicType() == EbtSampler) { int lastBinding = qualifier.layoutBinding; - if (type.isArray()) - lastBinding += type.getCumulativeArraySize(); + if (type.isArray()) { + if (type.isImplicitlySizedArray()) { + lastBinding += 1; + warn(loc, "assuming array size of one for compile-time checking of binding numbers for implicitly-sized array", "[]", ""); + } else + lastBinding += type.getCumulativeArraySize(); + } if (lastBinding >= resources.maxCombinedTextureImageUnits) error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : ""); } diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index af21fbba..0bc1d918 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -651,7 +651,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ int size; if (qualifier.isUniformOrBuffer()) { - if (type.isArray()) + if (type.isExplicitlySizedArray()) size = type.getCumulativeArraySize(); else size = 1; From d53f717fd3490b790f43e0af2037a0b23612c400 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 27 Jul 2016 15:46:48 -0600 Subject: [PATCH 034/217] HLSL: add Buffer support for Load method --- .../hlsl.load.buffer.dx10.frag.out | 204 ++++++++++++++++++ Test/hlsl.load.buffer.dx10.frag | 38 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 21 +- hlsl/hlslParseHelper.cpp | 13 +- hlsl/hlslParseables.cpp | 67 +++--- 6 files changed, 309 insertions(+), 35 deletions(-) create mode 100644 Test/baseResults/hlsl.load.buffer.dx10.frag.out create mode 100644 Test/hlsl.load.buffer.dx10.frag diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out new file mode 100644 index 00000000..13d00f79 --- /dev/null +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -0,0 +1,204 @@ +hlsl.load.buffer.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of float) +0:28 'r00' (temp 4-component vector of float) +0:28 textureFetch (global 4-component vector of float) +0:28 'g_tTexbf4' (uniform samplerBuffer) +0:28 'c1' (uniform int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of int) +0:29 'r01' (temp 4-component vector of int) +0:29 textureFetch (global 4-component vector of int) +0:29 'g_tTexbi4' (uniform isamplerBuffer) +0:29 'c1' (uniform int) +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of uint) +0:30 'r02' (temp 4-component vector of uint) +0:30 textureFetch (global 4-component vector of uint) +0:30 'g_tTexbu4' (uniform usamplerBuffer) +0:30 'c1' (uniform int) +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float FragDepth) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_tTexbf4_test' (uniform samplerBuffer) +0:? 'g_tTexbf4' (uniform samplerBuffer) +0:? 'g_tTexbi4' (uniform isamplerBuffer) +0:? 'g_tTexbu4' (uniform usamplerBuffer) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of float) +0:28 'r00' (temp 4-component vector of float) +0:28 textureFetch (global 4-component vector of float) +0:28 'g_tTexbf4' (uniform samplerBuffer) +0:28 'c1' (uniform int) +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of int) +0:29 'r01' (temp 4-component vector of int) +0:29 textureFetch (global 4-component vector of int) +0:29 'g_tTexbi4' (uniform isamplerBuffer) +0:29 'c1' (uniform int) +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of uint) +0:30 'r02' (temp 4-component vector of uint) +0:30 textureFetch (global 4-component vector of uint) +0:30 'g_tTexbu4' (uniform usamplerBuffer) +0:30 'c1' (uniform int) +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float FragDepth) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Branch: Return with expression +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_tTexbf4_test' (uniform samplerBuffer) +0:? 'g_tTexbf4' (uniform samplerBuffer) +0:? 'g_tTexbi4' (uniform isamplerBuffer) +0:? 'g_tTexbu4' (uniform usamplerBuffer) +0:? 'c1' (uniform int) +0:? 'c2' (uniform 2-component vector of int) +0:? 'c3' (uniform 3-component vector of int) +0:? 'c4' (uniform 4-component vector of int) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 66 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "r00" + Name 13 "g_tTexbf4" + Name 17 "c1" + Name 23 "r01" + Name 27 "g_tTexbi4" + Name 35 "r02" + Name 39 "g_tTexbu4" + Name 44 "PS_OUTPUT" + MemberName 44(PS_OUTPUT) 0 "Color" + MemberName 44(PS_OUTPUT) 1 "Depth" + Name 46 "psout" + Name 53 "g_tTexbf4_test" + Name 56 "c2" + Name 59 "c3" + Name 61 "c4" + Name 62 "o1" + Name 63 "o2" + Name 64 "o3" + Name 65 "o4" + Decorate 13(g_tTexbf4) DescriptorSet 0 + Decorate 27(g_tTexbi4) DescriptorSet 0 + Decorate 39(g_tTexbu4) DescriptorSet 0 + MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 53(g_tTexbf4_test) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) Buffer sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(g_tTexbf4): 12(ptr) Variable UniformConstant + 15: TypeInt 32 1 + 16: TypePointer UniformConstant 15(int) + 17(c1): 16(ptr) Variable UniformConstant + 21: TypeVector 15(int) 4 + 22: TypePointer Function 21(ivec4) + 24: TypeImage 15(int) Buffer sampled format:Unknown + 25: TypeSampledImage 24 + 26: TypePointer UniformConstant 25 + 27(g_tTexbi4): 26(ptr) Variable UniformConstant + 32: TypeInt 32 0 + 33: TypeVector 32(int) 4 + 34: TypePointer Function 33(ivec4) + 36: TypeImage 32(int) Buffer sampled format:Unknown + 37: TypeSampledImage 36 + 38: TypePointer UniformConstant 37 + 39(g_tTexbu4): 38(ptr) Variable UniformConstant + 44(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 45: TypePointer Function 44(PS_OUTPUT) + 47: 15(int) Constant 1 + 48: 6(float) Constant 1065353216 + 49: TypePointer Function 6(float) +53(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 54: TypeVector 15(int) 2 + 55: TypePointer UniformConstant 54(ivec2) + 56(c2): 55(ptr) Variable UniformConstant + 57: TypeVector 15(int) 3 + 58: TypePointer UniformConstant 57(ivec3) + 59(c3): 58(ptr) Variable UniformConstant + 60: TypePointer UniformConstant 21(ivec4) + 61(c4): 60(ptr) Variable UniformConstant + 62(o1): 16(ptr) Variable UniformConstant + 63(o2): 55(ptr) Variable UniformConstant + 64(o3): 58(ptr) Variable UniformConstant + 65(o4): 60(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 23(r01): 22(ptr) Variable Function + 35(r02): 34(ptr) Variable Function + 46(psout): 45(ptr) Variable Function + 14: 11 Load 13(g_tTexbf4) + 18: 15(int) Load 17(c1) + 19: 10 Image 14 + 20: 7(fvec4) ImageFetch 19 18 + Store 9(r00) 20 + 28: 25 Load 27(g_tTexbi4) + 29: 15(int) Load 17(c1) + 30: 24 Image 28 + 31: 21(ivec4) ImageFetch 30 29 + Store 23(r01) 31 + 40: 37 Load 39(g_tTexbu4) + 41: 15(int) Load 17(c1) + 42: 36 Image 40 + 43: 33(ivec4) ImageFetch 42 41 + Store 35(r02) 43 + 50: 49(ptr) AccessChain 46(psout) 47 + Store 50 48 + 51:44(PS_OUTPUT) Load 46(psout) + ReturnValue 51 + FunctionEnd diff --git a/Test/hlsl.load.buffer.dx10.frag b/Test/hlsl.load.buffer.dx10.frag new file mode 100644 index 00000000..60a61df6 --- /dev/null +++ b/Test/hlsl.load.buffer.dx10.frag @@ -0,0 +1,38 @@ +uniform Buffer g_tTexbf4_test : register(t0); + +Buffer g_tTexbf4; // default is float4 +Buffer g_tTexbi4; +Buffer g_tTexbu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Buffer + float4 r00 = g_tTexbf4.Load(c1); + int4 r01 = g_tTexbi4.Load(c1); + uint4 r02 = g_tTexbu4.Load(c1); + + // TODO: other types that can be put in sampler buffers, like float2x2, and float3. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index e4cb4b06..e9d37886 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -110,6 +110,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.array.dx10.frag", "main"}, {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.basic.dx10.vert", "main"}, + {"hlsl.load.buffer.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.pp.line.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3c965600..fd81916d 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -754,6 +754,18 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } + // Buffers can handle small mats if they fit in 4 components + if (dim == EsdBuffer && txType.isMatrix()) { + if ((txType.getMatrixCols() * txType.getMatrixRows()) > 4) { + expected("components < 4 in matrix buffer type"); + return false; + } + + // TODO: except we don't handle it yet... + unimplemented("matrix type in buffer"); + return false; + } + if (!txType.isScalar() && !txType.isVector()) { expected("scalar or vector type"); return false; @@ -789,7 +801,14 @@ bool HlslGrammar::acceptTextureType(TType& type) const bool shadow = txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1); TSampler sampler; - sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + + // Buffers are combined. + if (dim == EsdBuffer) { + sampler.set(txType.getBasicType(), dim, array); + } else { + // DX10 textures are separated. TODO: DX9. + sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + } type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d695ca17..c95616d7 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1154,11 +1154,12 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* coordSwizzle = nullptr; const bool isMS = argTex->getType().getSampler().isMultiSample(); + const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer; const TBasicType coordBaseType = argCoord->getType().getBasicType(); // Last component of coordinate is the mip level, for non-MS. we separate them here: - if (isMS) { - // MS has no LOD + if (isMS || isBuffer) { + // MS and Buffer have no LOD coordSwizzle = argCoord; } else { // Extract coordinate @@ -1181,10 +1182,6 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); - const TSamplerDim dim = argTex->getType().getSampler().dim; - if (dim == EsdBuffer) // TODO: buffers - assert(0); - // Build up the fetch txfetch->getSequence().push_back(argTex); txfetch->getSequence().push_back(coordSwizzle); @@ -1193,8 +1190,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // add 2DMS sample index TIntermTyped* argSampleIdx = argAggregate->getSequence()[2]->getAsTyped(); txfetch->getSequence().push_back(argSampleIdx); + } else if (isBuffer) { + // Nothing else to do for buffers. } else { - // 2DMS has no LOD, but everything else does. + // 2DMS and buffer have no LOD, but everything else does. txfetch->getSequence().push_back(lodComponent); } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index edfba9cb..1d184a19 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -70,7 +70,11 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } bool IsTextureArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&'; } bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } -bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder); } +bool IsBuffer(const char argOrder) { return argOrder == '*'; } +bool IsTextureType(const char argOrder) +{ + return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder); +} // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. @@ -78,6 +82,7 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim { const bool isArrayed = IsTextureArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); + const bool isBuffer = IsBuffer(*argOrder); // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) @@ -112,6 +117,10 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim if (isMS && dim0 != 2) return true; + // Buffer are only 1D + if (isBuffer && dim0 != 1) + return true; + return false; } @@ -127,9 +136,9 @@ int CoordinateArgPos(const glslang::TString& name, bool isTexture) } // Some texture methods use an addition coordinate dimension for the mip -bool HasMipInCoord(const glslang::TString& name, bool isMS) +bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer) { - return name == "Load" && !isMS; + return name == "Load" && !isMS && !isBuffer; } // LOD calculations don't pass the array level in the coordinate. @@ -197,6 +206,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons const bool isArrayed = IsTextureArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); const bool isMS = IsTextureMS(argOrder[0]); + const bool isBuffer = IsBuffer(argOrder[0]); char type = *argType; @@ -219,37 +229,38 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons char order = *argOrder; if (UseHlslTypes) { + // TODO: handle sub-vec4 returns switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 's': s += "SamplerComparisonState"; break; - case 'T': s += "Texture"; break; - case 'i': s += "Texture "; break; - case 'u': s += "Texture "; break; - default: s += "UNKNOWN_TYPE"; break; + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; + case 'T': s += (isBuffer ? "Buffer" : "Texture"); break; + case 'i': s += (isBuffer ? "Buffer " : "Texture "); break; + case 'u': s += (isBuffer ? "Buffer " : "Texture "); break; + default: s += "UNKNOWN_TYPE"; break; } } else { switch (type) { case '-': s += "void"; break; - case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break; - case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break; - case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break; - case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; - case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; - case 'S': s += "sampler"; break; - case 's': s += "samplerShadow"; break; + case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break; + case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break; + case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break; + case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; + case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; + case 'S': s += "sampler"; break; + case 's': s += "samplerShadow"; break; case 'T': // fall through case 'i': // ... case 'u': // ... - if (type != 'T') + if (type != 'T') // create itexture, utexture, etc s += type; - s += "texture"; + s += (isBuffer ? "samplerBuffer" : "texture"); break; default: s += "UNKNOWN_TYPE"; break; @@ -263,7 +274,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons // Add sampler dimensions if (isSampler || isTexture) { - if (order == 'V' || isTexture) { + if ((order == 'V' || isTexture) && !isBuffer) { switch (dim0) { case 1: s += "1D"; break; case 2: s += (isMS ? "2DMS" : "2D"); break; @@ -442,6 +453,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) // '@' as first letter of order creates arrayed texture of given type // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures + // '*' as first letter of order creates buffer object static const struct { const char* name; // intrinsic name @@ -630,7 +642,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll }, { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, - { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, + { "Load", /*!O*/ "V4", nullptr, "%@*,V", "FIU,I", EShLangAll }, { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, @@ -724,7 +736,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c const bool isTexture = IsTextureType(*argOrder); const bool isArrayed = IsTextureArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); - const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS); + const bool isBuffer = IsBuffer(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer); const int fixedVecSize = FixedVecSize(argOrder); const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); From cf57c04401d700ce5f19a9862d6f207627d4b516 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 28 Jul 2016 13:20:57 -0600 Subject: [PATCH 035/217] HLSL: add missing vec,vec,scalar form of lerp(), + test --- Test/baseResults/hlsl.intrinsics.frag.out | 9078 +++++++++++---------- Test/hlsl.intrinsics.frag | 1 + hlsl/hlslParseables.cpp | 3 +- 3 files changed, 4554 insertions(+), 4528 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index f6c41475..f4e2434f 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -733,7 +733,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -970,1162 +970,1170 @@ gl_FragCoord origin is upper left 0:225 'inF1' (in 3-component vector of float) 0:225 'inF2' (in 3-component vector of float) 0:226 Sequence -0:226 move second child to first child (temp float) -0:226 'r043' (temp float) -0:226 length (global float) +0:226 move second child to first child (temp 3-component vector of float) +0:226 'r039b' (temp 3-component vector of float) +0:226 mix (global 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) +0:226 'inF1' (in 3-component vector of float) +0:226 Constant: +0:226 0.300000 0:227 Sequence -0:227 move second child to first child (temp 3-component vector of float) -0:227 'r044' (temp 3-component vector of float) -0:227 log (global 3-component vector of float) +0:227 move second child to first child (temp float) +0:227 'r043' (temp float) +0:227 length (global float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) -0:228 'r045' (temp 3-component vector of float) -0:228 vector-scale (temp 3-component vector of float) -0:228 log2 (temp 3-component vector of float) -0:228 'inF0' (in 3-component vector of float) -0:228 Constant: -0:228 0.301030 +0:228 'r044' (temp 3-component vector of float) +0:228 log (global 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) -0:229 'r046' (temp 3-component vector of float) -0:229 log2 (global 3-component vector of float) -0:229 'inF0' (in 3-component vector of float) +0:229 'r045' (temp 3-component vector of float) +0:229 vector-scale (temp 3-component vector of float) +0:229 log2 (temp 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) +0:229 Constant: +0:229 0.301030 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) -0:230 'r047' (temp 3-component vector of float) -0:230 max (global 3-component vector of float) +0:230 'r046' (temp 3-component vector of float) +0:230 log2 (global 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) -0:230 'inF1' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) -0:231 'r048' (temp 3-component vector of float) -0:231 min (global 3-component vector of float) +0:231 'r047' (temp 3-component vector of float) +0:231 max (global 3-component vector of float) 0:231 'inF0' (in 3-component vector of float) 0:231 'inF1' (in 3-component vector of float) 0:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) -0:232 'r049' (temp 3-component vector of float) -0:232 normalize (global 3-component vector of float) +0:232 'r048' (temp 3-component vector of float) +0:232 min (global 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) +0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) -0:233 'r050' (temp 3-component vector of float) -0:233 pow (global 3-component vector of float) +0:233 'r049' (temp 3-component vector of float) +0:233 normalize (global 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) -0:233 'inF1' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) -0:234 'r051' (temp 3-component vector of float) -0:234 radians (global 3-component vector of float) +0:234 'r050' (temp 3-component vector of float) +0:234 pow (global 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) +0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) -0:235 'r052' (temp 3-component vector of float) -0:235 divide (temp 3-component vector of float) -0:235 Constant: -0:235 1.000000 +0:235 'r051' (temp 3-component vector of float) +0:235 radians (global 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) -0:236 'r053' (temp 3-component vector of float) -0:236 reflect (global 3-component vector of float) +0:236 'r052' (temp 3-component vector of float) +0:236 divide (temp 3-component vector of float) +0:236 Constant: +0:236 1.000000 0:236 'inF0' (in 3-component vector of float) -0:236 'inF1' (in 3-component vector of float) 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) -0:237 'r054' (temp 3-component vector of float) -0:237 refract (global 3-component vector of float) +0:237 'r053' (temp 3-component vector of float) +0:237 reflect (global 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (in 3-component vector of float) -0:237 Constant: -0:237 2.000000 0:238 Sequence -0:238 move second child to first child (temp 3-component vector of uint) -0:238 'r055' (temp 3-component vector of uint) +0:238 move second child to first child (temp 3-component vector of float) +0:238 'r054' (temp 3-component vector of float) +0:238 refract (global 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) +0:238 'inF1' (in 3-component vector of float) +0:238 Constant: +0:238 2.000000 +0:239 Sequence +0:239 move second child to first child (temp 3-component vector of uint) +0:239 'r055' (temp 3-component vector of uint) 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:239 Sequence -0:239 move second child to first child (temp 3-component vector of float) -0:239 'r056' (temp 3-component vector of float) -0:239 roundEven (global 3-component vector of float) -0:239 'inF0' (in 3-component vector of float) 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) -0:240 'r057' (temp 3-component vector of float) -0:240 inverse sqrt (global 3-component vector of float) +0:240 'r056' (temp 3-component vector of float) +0:240 roundEven (global 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) -0:241 'r058' (temp 3-component vector of float) -0:241 clamp (temp 3-component vector of float) +0:241 'r057' (temp 3-component vector of float) +0:241 inverse sqrt (global 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) -0:241 Constant: -0:241 0.000000 -0:241 Constant: -0:241 1.000000 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) -0:242 'r059' (temp 3-component vector of float) -0:242 Sign (global 3-component vector of float) +0:242 'r058' (temp 3-component vector of float) +0:242 clamp (temp 3-component vector of float) 0:242 'inF0' (in 3-component vector of float) +0:242 Constant: +0:242 0.000000 +0:242 Constant: +0:242 1.000000 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) -0:243 'r060' (temp 3-component vector of float) -0:243 sine (global 3-component vector of float) +0:243 'r059' (temp 3-component vector of float) +0:243 Sign (global 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) -0:244 'inF1' (in 3-component vector of float) -0:244 sine (temp 3-component vector of float) -0:244 'inF0' (in 3-component vector of float) -0:244 move second child to first child (temp 3-component vector of float) -0:244 'inF2' (in 3-component vector of float) -0:244 cosine (temp 3-component vector of float) +0:244 'r060' (temp 3-component vector of float) +0:244 sine (global 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) -0:245 'r061' (temp 3-component vector of float) -0:245 hyp. sine (global 3-component vector of float) +0:245 'inF1' (in 3-component vector of float) +0:245 sine (temp 3-component vector of float) +0:245 'inF0' (in 3-component vector of float) +0:245 move second child to first child (temp 3-component vector of float) +0:245 'inF2' (in 3-component vector of float) +0:245 cosine (temp 3-component vector of float) 0:245 'inF0' (in 3-component vector of float) 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) -0:246 'r062' (temp 3-component vector of float) -0:246 smoothstep (global 3-component vector of float) +0:246 'r061' (temp 3-component vector of float) +0:246 hyp. sine (global 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) -0:246 'inF1' (in 3-component vector of float) -0:246 'inF2' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) -0:247 'r063' (temp 3-component vector of float) -0:247 sqrt (global 3-component vector of float) +0:247 'r062' (temp 3-component vector of float) +0:247 smoothstep (global 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) +0:247 'inF1' (in 3-component vector of float) +0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) -0:248 'r064' (temp 3-component vector of float) -0:248 step (global 3-component vector of float) +0:248 'r063' (temp 3-component vector of float) +0:248 sqrt (global 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) -0:248 'inF1' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) -0:249 'r065' (temp 3-component vector of float) -0:249 tangent (global 3-component vector of float) +0:249 'r064' (temp 3-component vector of float) +0:249 step (global 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) +0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) -0:250 'r066' (temp 3-component vector of float) -0:250 hyp. tangent (global 3-component vector of float) +0:250 'r065' (temp 3-component vector of float) +0:250 tangent (global 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) -0:252 Sequence -0:252 move second child to first child (temp 3-component vector of float) -0:252 'r067' (temp 3-component vector of float) -0:252 trunc (global 3-component vector of float) -0:252 'inF0' (in 3-component vector of float) -0:255 Branch: Return with expression +0:251 Sequence +0:251 move second child to first child (temp 3-component vector of float) +0:251 'r066' (temp 3-component vector of float) +0:251 hyp. tangent (global 3-component vector of float) +0:251 'inF0' (in 3-component vector of float) +0:253 Sequence +0:253 move second child to first child (temp 3-component vector of float) +0:253 'r067' (temp 3-component vector of float) +0:253 trunc (global 3-component vector of float) +0:253 'inF0' (in 3-component vector of float) +0:256 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) -0:259 Function Parameters: -0:259 'inF0' (in 4-component vector of float) -0:259 'inF1' (in 4-component vector of float) -0:259 'inF2' (in 4-component vector of float) -0:259 'inU0' (in 4-component vector of uint) -0:259 'inU1' (in 4-component vector of uint) +0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Parameters: +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 'inF2' (in 4-component vector of float) +0:260 'inU0' (in 4-component vector of uint) +0:260 'inU1' (in 4-component vector of uint) 0:? Sequence -0:262 Sequence -0:262 move second child to first child (temp bool) -0:262 'r000' (temp bool) -0:262 all (global bool) -0:262 'inF0' (in 4-component vector of float) 0:263 Sequence -0:263 move second child to first child (temp 4-component vector of float) -0:263 'r001' (temp 4-component vector of float) -0:263 Absolute value (global 4-component vector of float) +0:263 move second child to first child (temp bool) +0:263 'r000' (temp bool) +0:263 all (global bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) -0:264 'r002' (temp 4-component vector of float) -0:264 arc cosine (global 4-component vector of float) +0:264 'r001' (temp 4-component vector of float) +0:264 Absolute value (global 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence -0:265 move second child to first child (temp bool) -0:265 'r003' (temp bool) -0:265 any (global bool) +0:265 move second child to first child (temp 4-component vector of float) +0:265 'r002' (temp 4-component vector of float) +0:265 arc cosine (global 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence -0:266 move second child to first child (temp 4-component vector of float) -0:266 'r004' (temp 4-component vector of float) -0:266 arc sine (global 4-component vector of float) +0:266 move second child to first child (temp bool) +0:266 'r003' (temp bool) +0:266 any (global bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence -0:267 move second child to first child (temp 4-component vector of int) -0:267 'r005' (temp 4-component vector of int) -0:267 floatBitsToInt (global 4-component vector of int) +0:267 move second child to first child (temp 4-component vector of float) +0:267 'r004' (temp 4-component vector of float) +0:267 arc sine (global 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence -0:268 move second child to first child (temp 4-component vector of uint) -0:268 'r006' (temp 4-component vector of uint) -0:268 floatBitsToUint (global 4-component vector of uint) +0:268 move second child to first child (temp 4-component vector of int) +0:268 'r005' (temp 4-component vector of int) +0:268 floatBitsToInt (global 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence -0:269 move second child to first child (temp 4-component vector of float) -0:269 'r007' (temp 4-component vector of float) -0:269 intBitsToFloat (global 4-component vector of float) -0:269 'inU0' (in 4-component vector of uint) -0:271 Sequence -0:271 move second child to first child (temp 4-component vector of float) -0:271 'r009' (temp 4-component vector of float) -0:271 arc tangent (global 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) +0:269 move second child to first child (temp 4-component vector of uint) +0:269 'r006' (temp 4-component vector of uint) +0:269 floatBitsToUint (global 4-component vector of uint) +0:269 'inF0' (in 4-component vector of float) +0:270 Sequence +0:270 move second child to first child (temp 4-component vector of float) +0:270 'r007' (temp 4-component vector of float) +0:270 intBitsToFloat (global 4-component vector of float) +0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) -0:272 'r010' (temp 4-component vector of float) +0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:272 'inF1' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) -0:273 'r011' (temp 4-component vector of float) -0:273 Ceiling (global 4-component vector of float) +0:273 'r010' (temp 4-component vector of float) +0:273 arc tangent (global 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) +0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) -0:274 'r012' (temp 4-component vector of float) -0:274 clamp (global 4-component vector of float) +0:274 'r011' (temp 4-component vector of float) +0:274 Ceiling (global 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) -0:274 'inF1' (in 4-component vector of float) -0:274 'inF2' (in 4-component vector of float) -0:275 Test condition and select (temp void) -0:275 Condition -0:275 any (temp bool) -0:275 Compare Less Than (temp 4-component vector of bool) +0:275 Sequence +0:275 move second child to first child (temp 4-component vector of float) +0:275 'r012' (temp 4-component vector of float) +0:275 clamp (global 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) -0:275 Constant: -0:275 0.000000 -0:275 0.000000 -0:275 0.000000 -0:275 0.000000 -0:275 true case -0:275 Branch: Kill -0:276 Sequence -0:276 move second child to first child (temp 4-component vector of float) -0:276 'r013' (temp 4-component vector of float) -0:276 cosine (global 4-component vector of float) +0:275 'inF1' (in 4-component vector of float) +0:275 'inF2' (in 4-component vector of float) +0:276 Test condition and select (temp void) +0:276 Condition +0:276 any (temp bool) +0:276 Compare Less Than (temp 4-component vector of bool) 0:276 'inF0' (in 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 true case +0:276 Branch: Kill 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) -0:277 'r014' (temp 4-component vector of float) -0:277 hyp. cosine (global 4-component vector of float) +0:277 'r013' (temp 4-component vector of float) +0:277 cosine (global 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence -0:278 move second child to first child (temp 4-component vector of uint) -0:278 'r015' (temp 4-component vector of uint) +0:278 move second child to first child (temp 4-component vector of float) +0:278 'r014' (temp 4-component vector of float) +0:278 hyp. cosine (global 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of uint) +0:279 'r015' (temp 4-component vector of uint) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:279 'r016' (temp 4-component vector of float) -0:279 dPdx (global 4-component vector of float) -0:279 'inF0' (in 4-component vector of float) 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) -0:280 'r017' (temp 4-component vector of float) -0:280 dPdxCoarse (global 4-component vector of float) +0:280 'r016' (temp 4-component vector of float) +0:280 dPdx (global 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) -0:281 'r018' (temp 4-component vector of float) -0:281 dPdxFine (global 4-component vector of float) +0:281 'r017' (temp 4-component vector of float) +0:281 dPdxCoarse (global 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) -0:282 'r019' (temp 4-component vector of float) -0:282 dPdy (global 4-component vector of float) +0:282 'r018' (temp 4-component vector of float) +0:282 dPdxFine (global 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) -0:283 'r020' (temp 4-component vector of float) -0:283 dPdyCoarse (global 4-component vector of float) +0:283 'r019' (temp 4-component vector of float) +0:283 dPdy (global 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) -0:284 'r021' (temp 4-component vector of float) -0:284 dPdyFine (global 4-component vector of float) +0:284 'r020' (temp 4-component vector of float) +0:284 dPdyCoarse (global 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) -0:285 'r022' (temp 4-component vector of float) -0:285 degrees (global 4-component vector of float) +0:285 'r021' (temp 4-component vector of float) +0:285 dPdyFine (global 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence -0:286 move second child to first child (temp float) -0:286 'r023' (temp float) -0:286 distance (global float) +0:286 move second child to first child (temp 4-component vector of float) +0:286 'r022' (temp 4-component vector of float) +0:286 degrees (global 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) -0:286 'inF1' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) -0:287 'r024' (temp float) -0:287 dot-product (global float) +0:287 'r023' (temp float) +0:287 distance (global float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence -0:288 move second child to first child (temp 4-component vector of float) -0:288 'r025' (temp 4-component vector of float) -0:288 Construct vec4 (temp 4-component vector of float) -0:288 Constant: -0:288 1.000000 -0:288 component-wise multiply (temp float) -0:288 direct index (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 Constant: -0:288 1 (const int) -0:288 direct index (temp float) -0:288 'inF1' (in 4-component vector of float) -0:288 Constant: -0:288 1 (const int) -0:288 direct index (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 Constant: -0:288 2 (const int) -0:288 direct index (temp float) -0:288 'inF1' (in 4-component vector of float) -0:288 Constant: -0:288 3 (const int) -0:292 Sequence -0:292 move second child to first child (temp 4-component vector of float) -0:292 'r029' (temp 4-component vector of float) -0:292 exp (global 4-component vector of float) -0:292 'inF0' (in 4-component vector of float) +0:288 move second child to first child (temp float) +0:288 'r024' (temp float) +0:288 dot-product (global float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) +0:289 Sequence +0:289 move second child to first child (temp 4-component vector of float) +0:289 'r025' (temp 4-component vector of float) +0:289 Construct vec4 (temp 4-component vector of float) +0:289 Constant: +0:289 1.000000 +0:289 component-wise multiply (temp float) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 2 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) -0:293 'r030' (temp 4-component vector of float) -0:293 exp2 (global 4-component vector of float) +0:293 'r029' (temp 4-component vector of float) +0:293 exp (global 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) -0:294 'r031' (temp 4-component vector of float) -0:294 face-forward (global 4-component vector of float) +0:294 'r030' (temp 4-component vector of float) +0:294 exp2 (global 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) -0:294 'inF1' (in 4-component vector of float) -0:294 'inF2' (in 4-component vector of float) 0:295 Sequence -0:295 move second child to first child (temp 4-component vector of uint) -0:295 'r032' (temp 4-component vector of uint) +0:295 move second child to first child (temp 4-component vector of float) +0:295 'r031' (temp 4-component vector of float) +0:295 face-forward (global 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r032' (temp 4-component vector of uint) 0:? findMSB (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) -0:296 Sequence -0:296 move second child to first child (temp 4-component vector of uint) -0:296 'r033' (temp 4-component vector of uint) +0:297 Sequence +0:297 move second child to first child (temp 4-component vector of uint) +0:297 'r033' (temp 4-component vector of uint) 0:? findLSB (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) -0:297 Sequence -0:297 move second child to first child (temp 4-component vector of float) -0:297 'r034' (temp 4-component vector of float) -0:297 Floor (global 4-component vector of float) -0:297 'inF0' (in 4-component vector of float) -0:299 Sequence -0:299 move second child to first child (temp 4-component vector of float) -0:299 'r036' (temp 4-component vector of float) -0:299 mod (global 4-component vector of float) -0:299 'inF0' (in 4-component vector of float) -0:299 'inF1' (in 4-component vector of float) +0:298 Sequence +0:298 move second child to first child (temp 4-component vector of float) +0:298 'r034' (temp 4-component vector of float) +0:298 Floor (global 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) -0:300 'r037' (temp 4-component vector of float) -0:300 Fraction (global 4-component vector of float) +0:300 'r036' (temp 4-component vector of float) +0:300 mod (global 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) -0:301 'r038' (temp 4-component vector of float) -0:301 frexp (global 4-component vector of float) +0:301 'r037' (temp 4-component vector of float) +0:301 Fraction (global 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) -0:301 'inF1' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) -0:302 'r039' (temp 4-component vector of float) -0:302 fwidth (global 4-component vector of float) +0:302 'r038' (temp 4-component vector of float) +0:302 frexp (global 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) 0:303 Sequence -0:303 move second child to first child (temp 4-component vector of bool) -0:303 'r040' (temp 4-component vector of bool) -0:303 isinf (global 4-component vector of bool) +0:303 move second child to first child (temp 4-component vector of float) +0:303 'r039' (temp 4-component vector of float) +0:303 fwidth (global 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) -0:304 'r041' (temp 4-component vector of bool) -0:304 isnan (global 4-component vector of bool) +0:304 'r040' (temp 4-component vector of bool) +0:304 isinf (global 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence -0:305 move second child to first child (temp 4-component vector of float) -0:305 'r042' (temp 4-component vector of float) -0:305 ldexp (global 4-component vector of float) +0:305 move second child to first child (temp 4-component vector of bool) +0:305 'r041' (temp 4-component vector of bool) +0:305 isnan (global 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) -0:305 'inF1' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) -0:306 'r039a' (temp 4-component vector of float) -0:306 mix (global 4-component vector of float) +0:306 'r042' (temp 4-component vector of float) +0:306 ldexp (global 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) -0:306 'inF2' (in 4-component vector of float) 0:307 Sequence -0:307 move second child to first child (temp float) -0:307 'r043' (temp float) -0:307 length (global float) +0:307 move second child to first child (temp 4-component vector of float) +0:307 'r039a' (temp 4-component vector of float) +0:307 mix (global 4-component vector of float) 0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) +0:307 'inF2' (in 4-component vector of float) 0:308 Sequence -0:308 move second child to first child (temp 4-component vector of float) -0:308 'r044' (temp 4-component vector of float) -0:308 log (global 4-component vector of float) +0:308 move second child to first child (temp float) +0:308 'r043' (temp float) +0:308 length (global float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) -0:309 'r045' (temp 4-component vector of float) -0:309 vector-scale (temp 4-component vector of float) -0:309 log2 (temp 4-component vector of float) -0:309 'inF0' (in 4-component vector of float) -0:309 Constant: -0:309 0.301030 +0:309 'r044' (temp 4-component vector of float) +0:309 log (global 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) -0:310 'r046' (temp 4-component vector of float) -0:310 log2 (global 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) +0:310 'r045' (temp 4-component vector of float) +0:310 vector-scale (temp 4-component vector of float) +0:310 log2 (temp 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:310 Constant: +0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) -0:311 'r047' (temp 4-component vector of float) -0:311 max (global 4-component vector of float) +0:311 'r046' (temp 4-component vector of float) +0:311 log2 (global 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) -0:311 'inF1' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) -0:312 'r048' (temp 4-component vector of float) -0:312 min (global 4-component vector of float) +0:312 'r047' (temp 4-component vector of float) +0:312 max (global 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) -0:313 'r049' (temp 4-component vector of float) -0:313 normalize (global 4-component vector of float) +0:313 'r048' (temp 4-component vector of float) +0:313 min (global 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) +0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) -0:314 'r050' (temp 4-component vector of float) -0:314 pow (global 4-component vector of float) +0:314 'r049' (temp 4-component vector of float) +0:314 normalize (global 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) -0:314 'inF1' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) -0:315 'r051' (temp 4-component vector of float) -0:315 radians (global 4-component vector of float) +0:315 'r050' (temp 4-component vector of float) +0:315 pow (global 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) +0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) -0:316 'r052' (temp 4-component vector of float) -0:316 divide (temp 4-component vector of float) -0:316 Constant: -0:316 1.000000 +0:316 'r051' (temp 4-component vector of float) +0:316 radians (global 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) -0:317 'r053' (temp 4-component vector of float) -0:317 reflect (global 4-component vector of float) +0:317 'r052' (temp 4-component vector of float) +0:317 divide (temp 4-component vector of float) +0:317 Constant: +0:317 1.000000 0:317 'inF0' (in 4-component vector of float) -0:317 'inF1' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'r054' (temp 4-component vector of float) -0:318 refract (global 4-component vector of float) +0:318 'r053' (temp 4-component vector of float) +0:318 reflect (global 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) -0:318 Constant: -0:318 2.000000 0:319 Sequence -0:319 move second child to first child (temp 4-component vector of uint) -0:319 'r055' (temp 4-component vector of uint) +0:319 move second child to first child (temp 4-component vector of float) +0:319 'r054' (temp 4-component vector of float) +0:319 refract (global 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) +0:319 'inF1' (in 4-component vector of float) +0:319 Constant: +0:319 2.000000 +0:320 Sequence +0:320 move second child to first child (temp 4-component vector of uint) +0:320 'r055' (temp 4-component vector of uint) 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:320 Sequence -0:320 move second child to first child (temp 4-component vector of float) -0:320 'r056' (temp 4-component vector of float) -0:320 roundEven (global 4-component vector of float) -0:320 'inF0' (in 4-component vector of float) 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) -0:321 'r057' (temp 4-component vector of float) -0:321 inverse sqrt (global 4-component vector of float) +0:321 'r056' (temp 4-component vector of float) +0:321 roundEven (global 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) -0:322 'r058' (temp 4-component vector of float) -0:322 clamp (temp 4-component vector of float) +0:322 'r057' (temp 4-component vector of float) +0:322 inverse sqrt (global 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) -0:322 Constant: -0:322 0.000000 -0:322 Constant: -0:322 1.000000 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) -0:323 'r059' (temp 4-component vector of float) -0:323 Sign (global 4-component vector of float) +0:323 'r058' (temp 4-component vector of float) +0:323 clamp (temp 4-component vector of float) 0:323 'inF0' (in 4-component vector of float) +0:323 Constant: +0:323 0.000000 +0:323 Constant: +0:323 1.000000 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) -0:324 'r060' (temp 4-component vector of float) -0:324 sine (global 4-component vector of float) +0:324 'r059' (temp 4-component vector of float) +0:324 Sign (global 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) -0:325 'inF1' (in 4-component vector of float) -0:325 sine (temp 4-component vector of float) -0:325 'inF0' (in 4-component vector of float) -0:325 move second child to first child (temp 4-component vector of float) -0:325 'inF2' (in 4-component vector of float) -0:325 cosine (temp 4-component vector of float) +0:325 'r060' (temp 4-component vector of float) +0:325 sine (global 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'r061' (temp 4-component vector of float) -0:326 hyp. sine (global 4-component vector of float) +0:326 'inF1' (in 4-component vector of float) +0:326 sine (temp 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) +0:326 move second child to first child (temp 4-component vector of float) +0:326 'inF2' (in 4-component vector of float) +0:326 cosine (temp 4-component vector of float) 0:326 'inF0' (in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) -0:327 'r062' (temp 4-component vector of float) -0:327 smoothstep (global 4-component vector of float) +0:327 'r061' (temp 4-component vector of float) +0:327 hyp. sine (global 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) -0:327 'inF1' (in 4-component vector of float) -0:327 'inF2' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) -0:328 'r063' (temp 4-component vector of float) -0:328 sqrt (global 4-component vector of float) +0:328 'r062' (temp 4-component vector of float) +0:328 smoothstep (global 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) +0:328 'inF1' (in 4-component vector of float) +0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) -0:329 'r064' (temp 4-component vector of float) -0:329 step (global 4-component vector of float) +0:329 'r063' (temp 4-component vector of float) +0:329 sqrt (global 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) -0:329 'inF1' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) -0:330 'r065' (temp 4-component vector of float) -0:330 tangent (global 4-component vector of float) +0:330 'r064' (temp 4-component vector of float) +0:330 step (global 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) +0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) -0:331 'r066' (temp 4-component vector of float) -0:331 hyp. tangent (global 4-component vector of float) +0:331 'r065' (temp 4-component vector of float) +0:331 tangent (global 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) -0:333 Sequence -0:333 move second child to first child (temp 4-component vector of float) -0:333 'r067' (temp 4-component vector of float) -0:333 trunc (global 4-component vector of float) -0:333 'inF0' (in 4-component vector of float) -0:336 Branch: Return with expression +0:332 Sequence +0:332 move second child to first child (temp 4-component vector of float) +0:332 'r066' (temp 4-component vector of float) +0:332 hyp. tangent (global 4-component vector of float) +0:332 'inF0' (in 4-component vector of float) +0:334 Sequence +0:334 move second child to first child (temp 4-component vector of float) +0:334 'r067' (temp 4-component vector of float) +0:334 trunc (global 4-component vector of float) +0:334 'inF0' (in 4-component vector of float) +0:337 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) -0:400 Function Parameters: -0:400 'inF0' (in 2X2 matrix of float) -0:400 'inF1' (in 2X2 matrix of float) -0:400 'inF2' (in 2X2 matrix of float) +0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Parameters: +0:401 'inF0' (in 2X2 matrix of float) +0:401 'inF1' (in 2X2 matrix of float) +0:401 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:402 Sequence -0:402 move second child to first child (temp bool) -0:402 'r000' (temp bool) -0:402 all (global bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r001' (temp 2X2 matrix of float) -0:402 Absolute value (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 arc cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp bool) -0:402 'r003' (temp bool) -0:402 any (global bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r004' (temp 2X2 matrix of float) -0:402 arc sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r005' (temp 2X2 matrix of float) -0:402 arc tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r006' (temp 2X2 matrix of float) -0:402 arc tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r007' (temp 2X2 matrix of float) -0:402 Ceiling (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Test condition and select (temp void) -0:402 Condition -0:402 any (temp bool) -0:402 Compare Less Than (temp 2X2 matrix of bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.000000 -0:402 0.000000 -0:402 0.000000 -0:402 0.000000 -0:402 true case -0:402 Branch: Kill -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r008' (temp 2X2 matrix of float) -0:402 clamp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r009' (temp 2X2 matrix of float) -0:402 cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r010' (temp 2X2 matrix of float) -0:402 hyp. cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r011' (temp 2X2 matrix of float) -0:402 dPdx (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r012' (temp 2X2 matrix of float) -0:402 dPdxCoarse (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r013' (temp 2X2 matrix of float) -0:402 dPdxFine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r014' (temp 2X2 matrix of float) -0:402 dPdy (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r015' (temp 2X2 matrix of float) -0:402 dPdyCoarse (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r016' (temp 2X2 matrix of float) -0:402 dPdyFine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r017' (temp 2X2 matrix of float) -0:402 degrees (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp float) -0:402 'r018' (temp float) -0:402 determinant (global float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r019' (temp 2X2 matrix of float) -0:402 exp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'R020' (temp 2X2 matrix of float) -0:402 exp2 (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r021' (temp 2X2 matrix of float) -0:402 Floor (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r022' (temp 2X2 matrix of float) -0:402 mod (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r023' (temp 2X2 matrix of float) -0:402 Fraction (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r024' (temp 2X2 matrix of float) -0:402 frexp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r025' (temp 2X2 matrix of float) -0:402 fwidth (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r026' (temp 2X2 matrix of float) -0:402 ldexp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r026a' (temp 2X2 matrix of float) -0:402 mix (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r027' (temp 2X2 matrix of float) -0:402 log (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r028' (temp 2X2 matrix of float) -0:402 matrix-scale (temp 2X2 matrix of float) -0:402 log2 (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.301030 -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r029' (temp 2X2 matrix of float) -0:402 log2 (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r030' (temp 2X2 matrix of float) -0:402 max (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r031' (temp 2X2 matrix of float) -0:402 min (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r032' (temp 2X2 matrix of float) -0:402 pow (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r033' (temp 2X2 matrix of float) -0:402 radians (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r034' (temp 2X2 matrix of float) -0:402 roundEven (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r035' (temp 2X2 matrix of float) -0:402 inverse sqrt (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r036' (temp 2X2 matrix of float) -0:402 clamp (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.000000 -0:402 Constant: -0:402 1.000000 -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r037' (temp 2X2 matrix of float) -0:402 Sign (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r038' (temp 2X2 matrix of float) -0:402 sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 sine (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 cosine (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r039' (temp 2X2 matrix of float) -0:402 hyp. sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r049' (temp 2X2 matrix of float) -0:402 smoothstep (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r041' (temp 2X2 matrix of float) -0:402 sqrt (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r042' (temp 2X2 matrix of float) -0:402 step (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r043' (temp 2X2 matrix of float) -0:402 tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r044' (temp 2X2 matrix of float) -0:402 hyp. tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 transpose (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r046' (temp 2X2 matrix of float) -0:402 trunc (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:405 Branch: Return with expression +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r000' (temp bool) +0:403 all (global bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r001' (temp 2X2 matrix of float) +0:403 Absolute value (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 arc cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r003' (temp bool) +0:403 any (global bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r004' (temp 2X2 matrix of float) +0:403 arc sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r005' (temp 2X2 matrix of float) +0:403 arc tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r006' (temp 2X2 matrix of float) +0:403 arc tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r007' (temp 2X2 matrix of float) +0:403 Ceiling (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Test condition and select (temp void) +0:403 Condition +0:403 any (temp bool) +0:403 Compare Less Than (temp 2X2 matrix of bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 true case +0:403 Branch: Kill +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r008' (temp 2X2 matrix of float) +0:403 clamp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r009' (temp 2X2 matrix of float) +0:403 cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r010' (temp 2X2 matrix of float) +0:403 hyp. cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r011' (temp 2X2 matrix of float) +0:403 dPdx (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r012' (temp 2X2 matrix of float) +0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r013' (temp 2X2 matrix of float) +0:403 dPdxFine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r014' (temp 2X2 matrix of float) +0:403 dPdy (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r015' (temp 2X2 matrix of float) +0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r016' (temp 2X2 matrix of float) +0:403 dPdyFine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r017' (temp 2X2 matrix of float) +0:403 degrees (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp float) +0:403 'r018' (temp float) +0:403 determinant (global float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r019' (temp 2X2 matrix of float) +0:403 exp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'R020' (temp 2X2 matrix of float) +0:403 exp2 (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r021' (temp 2X2 matrix of float) +0:403 Floor (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r022' (temp 2X2 matrix of float) +0:403 mod (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r023' (temp 2X2 matrix of float) +0:403 Fraction (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r024' (temp 2X2 matrix of float) +0:403 frexp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r025' (temp 2X2 matrix of float) +0:403 fwidth (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026' (temp 2X2 matrix of float) +0:403 ldexp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026a' (temp 2X2 matrix of float) +0:403 mix (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r027' (temp 2X2 matrix of float) +0:403 log (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r028' (temp 2X2 matrix of float) +0:403 matrix-scale (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.301030 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r029' (temp 2X2 matrix of float) +0:403 log2 (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r030' (temp 2X2 matrix of float) +0:403 max (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r031' (temp 2X2 matrix of float) +0:403 min (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r032' (temp 2X2 matrix of float) +0:403 pow (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r033' (temp 2X2 matrix of float) +0:403 radians (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r034' (temp 2X2 matrix of float) +0:403 roundEven (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r035' (temp 2X2 matrix of float) +0:403 inverse sqrt (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r036' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 Constant: +0:403 1.000000 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r037' (temp 2X2 matrix of float) +0:403 Sign (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r038' (temp 2X2 matrix of float) +0:403 sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r039' (temp 2X2 matrix of float) +0:403 hyp. sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r049' (temp 2X2 matrix of float) +0:403 smoothstep (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r041' (temp 2X2 matrix of float) +0:403 sqrt (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r042' (temp 2X2 matrix of float) +0:403 step (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r043' (temp 2X2 matrix of float) +0:403 tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r044' (temp 2X2 matrix of float) +0:403 hyp. tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 transpose (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r046' (temp 2X2 matrix of float) +0:403 trunc (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:406 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) -0:409 Function Parameters: -0:409 'inF0' (in 3X3 matrix of float) -0:409 'inF1' (in 3X3 matrix of float) -0:409 'inF2' (in 3X3 matrix of float) +0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Parameters: +0:410 'inF0' (in 3X3 matrix of float) +0:410 'inF1' (in 3X3 matrix of float) +0:410 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:411 Sequence -0:411 move second child to first child (temp bool) -0:411 'r000' (temp bool) -0:411 all (global bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r001' (temp 3X3 matrix of float) -0:411 Absolute value (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 arc cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp bool) -0:411 'r003' (temp bool) -0:411 any (global bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r004' (temp 3X3 matrix of float) -0:411 arc sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r005' (temp 3X3 matrix of float) -0:411 arc tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r006' (temp 3X3 matrix of float) -0:411 arc tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r007' (temp 3X3 matrix of float) -0:411 Ceiling (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Test condition and select (temp void) -0:411 Condition -0:411 any (temp bool) -0:411 Compare Less Than (temp 3X3 matrix of bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 true case -0:411 Branch: Kill -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r008' (temp 3X3 matrix of float) -0:411 clamp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r009' (temp 3X3 matrix of float) -0:411 cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r010' (temp 3X3 matrix of float) -0:411 hyp. cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r011' (temp 3X3 matrix of float) -0:411 dPdx (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r012' (temp 3X3 matrix of float) -0:411 dPdxCoarse (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r013' (temp 3X3 matrix of float) -0:411 dPdxFine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r014' (temp 3X3 matrix of float) -0:411 dPdy (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r015' (temp 3X3 matrix of float) -0:411 dPdyCoarse (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r016' (temp 3X3 matrix of float) -0:411 dPdyFine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r017' (temp 3X3 matrix of float) -0:411 degrees (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp float) -0:411 'r018' (temp float) -0:411 determinant (global float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r019' (temp 3X3 matrix of float) -0:411 exp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'R020' (temp 3X3 matrix of float) -0:411 exp2 (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r021' (temp 3X3 matrix of float) -0:411 Floor (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r022' (temp 3X3 matrix of float) -0:411 mod (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r023' (temp 3X3 matrix of float) -0:411 Fraction (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r024' (temp 3X3 matrix of float) -0:411 frexp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r025' (temp 3X3 matrix of float) -0:411 fwidth (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r026' (temp 3X3 matrix of float) -0:411 ldexp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r026a' (temp 3X3 matrix of float) -0:411 mix (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r027' (temp 3X3 matrix of float) -0:411 log (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r028' (temp 3X3 matrix of float) -0:411 matrix-scale (temp 3X3 matrix of float) -0:411 log2 (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.301030 -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r029' (temp 3X3 matrix of float) -0:411 log2 (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r030' (temp 3X3 matrix of float) -0:411 max (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r031' (temp 3X3 matrix of float) -0:411 min (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r032' (temp 3X3 matrix of float) -0:411 pow (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r033' (temp 3X3 matrix of float) -0:411 radians (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r034' (temp 3X3 matrix of float) -0:411 roundEven (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r035' (temp 3X3 matrix of float) -0:411 inverse sqrt (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r036' (temp 3X3 matrix of float) -0:411 clamp (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.000000 -0:411 Constant: -0:411 1.000000 -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r037' (temp 3X3 matrix of float) -0:411 Sign (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r038' (temp 3X3 matrix of float) -0:411 sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 sine (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 cosine (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r039' (temp 3X3 matrix of float) -0:411 hyp. sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r049' (temp 3X3 matrix of float) -0:411 smoothstep (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r041' (temp 3X3 matrix of float) -0:411 sqrt (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r042' (temp 3X3 matrix of float) -0:411 step (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r043' (temp 3X3 matrix of float) -0:411 tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r044' (temp 3X3 matrix of float) -0:411 hyp. tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 transpose (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r046' (temp 3X3 matrix of float) -0:411 trunc (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:414 Branch: Return with expression +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r000' (temp bool) +0:412 all (global bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r001' (temp 3X3 matrix of float) +0:412 Absolute value (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 arc cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r003' (temp bool) +0:412 any (global bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r004' (temp 3X3 matrix of float) +0:412 arc sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r005' (temp 3X3 matrix of float) +0:412 arc tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r006' (temp 3X3 matrix of float) +0:412 arc tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r007' (temp 3X3 matrix of float) +0:412 Ceiling (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Test condition and select (temp void) +0:412 Condition +0:412 any (temp bool) +0:412 Compare Less Than (temp 3X3 matrix of bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 true case +0:412 Branch: Kill +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r008' (temp 3X3 matrix of float) +0:412 clamp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r009' (temp 3X3 matrix of float) +0:412 cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r010' (temp 3X3 matrix of float) +0:412 hyp. cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r011' (temp 3X3 matrix of float) +0:412 dPdx (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r012' (temp 3X3 matrix of float) +0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r013' (temp 3X3 matrix of float) +0:412 dPdxFine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r014' (temp 3X3 matrix of float) +0:412 dPdy (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r015' (temp 3X3 matrix of float) +0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r016' (temp 3X3 matrix of float) +0:412 dPdyFine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r017' (temp 3X3 matrix of float) +0:412 degrees (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp float) +0:412 'r018' (temp float) +0:412 determinant (global float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r019' (temp 3X3 matrix of float) +0:412 exp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'R020' (temp 3X3 matrix of float) +0:412 exp2 (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r021' (temp 3X3 matrix of float) +0:412 Floor (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r022' (temp 3X3 matrix of float) +0:412 mod (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r023' (temp 3X3 matrix of float) +0:412 Fraction (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r024' (temp 3X3 matrix of float) +0:412 frexp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r025' (temp 3X3 matrix of float) +0:412 fwidth (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026' (temp 3X3 matrix of float) +0:412 ldexp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026a' (temp 3X3 matrix of float) +0:412 mix (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r027' (temp 3X3 matrix of float) +0:412 log (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r028' (temp 3X3 matrix of float) +0:412 matrix-scale (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.301030 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r029' (temp 3X3 matrix of float) +0:412 log2 (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r030' (temp 3X3 matrix of float) +0:412 max (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r031' (temp 3X3 matrix of float) +0:412 min (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r032' (temp 3X3 matrix of float) +0:412 pow (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r033' (temp 3X3 matrix of float) +0:412 radians (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r034' (temp 3X3 matrix of float) +0:412 roundEven (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r035' (temp 3X3 matrix of float) +0:412 inverse sqrt (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r036' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 Constant: +0:412 1.000000 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r037' (temp 3X3 matrix of float) +0:412 Sign (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r038' (temp 3X3 matrix of float) +0:412 sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r039' (temp 3X3 matrix of float) +0:412 hyp. sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r049' (temp 3X3 matrix of float) +0:412 smoothstep (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r041' (temp 3X3 matrix of float) +0:412 sqrt (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r042' (temp 3X3 matrix of float) +0:412 step (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r043' (temp 3X3 matrix of float) +0:412 tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r044' (temp 3X3 matrix of float) +0:412 hyp. tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 transpose (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r046' (temp 3X3 matrix of float) +0:412 trunc (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:415 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -2136,301 +2144,301 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) -0:418 Function Parameters: -0:418 'inF0' (in 4X4 matrix of float) -0:418 'inF1' (in 4X4 matrix of float) -0:418 'inF2' (in 4X4 matrix of float) +0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Parameters: +0:419 'inF0' (in 4X4 matrix of float) +0:419 'inF1' (in 4X4 matrix of float) +0:419 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:420 Sequence -0:420 move second child to first child (temp bool) -0:420 'r000' (temp bool) -0:420 all (global bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r001' (temp 4X4 matrix of float) -0:420 Absolute value (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 arc cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp bool) -0:420 'r003' (temp bool) -0:420 any (global bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r004' (temp 4X4 matrix of float) -0:420 arc sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r005' (temp 4X4 matrix of float) -0:420 arc tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r006' (temp 4X4 matrix of float) -0:420 arc tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r007' (temp 4X4 matrix of float) -0:420 Ceiling (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Test condition and select (temp void) -0:420 Condition -0:420 any (temp bool) -0:420 Compare Less Than (temp 4X4 matrix of bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 true case -0:420 Branch: Kill -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r008' (temp 4X4 matrix of float) -0:420 clamp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r009' (temp 4X4 matrix of float) -0:420 cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r010' (temp 4X4 matrix of float) -0:420 hyp. cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r011' (temp 4X4 matrix of float) -0:420 dPdx (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r012' (temp 4X4 matrix of float) -0:420 dPdxCoarse (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r013' (temp 4X4 matrix of float) -0:420 dPdxFine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r014' (temp 4X4 matrix of float) -0:420 dPdy (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r015' (temp 4X4 matrix of float) -0:420 dPdyCoarse (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r016' (temp 4X4 matrix of float) -0:420 dPdyFine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r017' (temp 4X4 matrix of float) -0:420 degrees (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp float) -0:420 'r018' (temp float) -0:420 determinant (global float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r019' (temp 4X4 matrix of float) -0:420 exp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'R020' (temp 4X4 matrix of float) -0:420 exp2 (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r021' (temp 4X4 matrix of float) -0:420 Floor (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r022' (temp 4X4 matrix of float) -0:420 mod (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r023' (temp 4X4 matrix of float) -0:420 Fraction (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r024' (temp 4X4 matrix of float) -0:420 frexp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r025' (temp 4X4 matrix of float) -0:420 fwidth (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r026' (temp 4X4 matrix of float) -0:420 ldexp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r026a' (temp 4X4 matrix of float) -0:420 mix (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r027' (temp 4X4 matrix of float) -0:420 log (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r028' (temp 4X4 matrix of float) -0:420 matrix-scale (temp 4X4 matrix of float) -0:420 log2 (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.301030 -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r029' (temp 4X4 matrix of float) -0:420 log2 (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r030' (temp 4X4 matrix of float) -0:420 max (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r031' (temp 4X4 matrix of float) -0:420 min (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r032' (temp 4X4 matrix of float) -0:420 pow (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r033' (temp 4X4 matrix of float) -0:420 radians (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r034' (temp 4X4 matrix of float) -0:420 roundEven (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r035' (temp 4X4 matrix of float) -0:420 inverse sqrt (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r036' (temp 4X4 matrix of float) -0:420 clamp (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.000000 -0:420 Constant: -0:420 1.000000 -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r037' (temp 4X4 matrix of float) -0:420 Sign (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r038' (temp 4X4 matrix of float) -0:420 sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 sine (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 cosine (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r039' (temp 4X4 matrix of float) -0:420 hyp. sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r049' (temp 4X4 matrix of float) -0:420 smoothstep (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r041' (temp 4X4 matrix of float) -0:420 sqrt (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r042' (temp 4X4 matrix of float) -0:420 step (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r043' (temp 4X4 matrix of float) -0:420 tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r044' (temp 4X4 matrix of float) -0:420 hyp. tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 transpose (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r046' (temp 4X4 matrix of float) -0:420 trunc (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:423 Branch: Return with expression +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r000' (temp bool) +0:421 all (global bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r001' (temp 4X4 matrix of float) +0:421 Absolute value (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 arc cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r003' (temp bool) +0:421 any (global bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r004' (temp 4X4 matrix of float) +0:421 arc sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r005' (temp 4X4 matrix of float) +0:421 arc tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r006' (temp 4X4 matrix of float) +0:421 arc tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r007' (temp 4X4 matrix of float) +0:421 Ceiling (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Test condition and select (temp void) +0:421 Condition +0:421 any (temp bool) +0:421 Compare Less Than (temp 4X4 matrix of bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 true case +0:421 Branch: Kill +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r008' (temp 4X4 matrix of float) +0:421 clamp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r009' (temp 4X4 matrix of float) +0:421 cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r010' (temp 4X4 matrix of float) +0:421 hyp. cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r011' (temp 4X4 matrix of float) +0:421 dPdx (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r012' (temp 4X4 matrix of float) +0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r013' (temp 4X4 matrix of float) +0:421 dPdxFine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r014' (temp 4X4 matrix of float) +0:421 dPdy (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r015' (temp 4X4 matrix of float) +0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r016' (temp 4X4 matrix of float) +0:421 dPdyFine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r017' (temp 4X4 matrix of float) +0:421 degrees (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp float) +0:421 'r018' (temp float) +0:421 determinant (global float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r019' (temp 4X4 matrix of float) +0:421 exp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'R020' (temp 4X4 matrix of float) +0:421 exp2 (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r021' (temp 4X4 matrix of float) +0:421 Floor (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r022' (temp 4X4 matrix of float) +0:421 mod (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r023' (temp 4X4 matrix of float) +0:421 Fraction (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r024' (temp 4X4 matrix of float) +0:421 frexp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r025' (temp 4X4 matrix of float) +0:421 fwidth (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026' (temp 4X4 matrix of float) +0:421 ldexp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026a' (temp 4X4 matrix of float) +0:421 mix (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r027' (temp 4X4 matrix of float) +0:421 log (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r028' (temp 4X4 matrix of float) +0:421 matrix-scale (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.301030 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r029' (temp 4X4 matrix of float) +0:421 log2 (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r030' (temp 4X4 matrix of float) +0:421 max (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r031' (temp 4X4 matrix of float) +0:421 min (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r032' (temp 4X4 matrix of float) +0:421 pow (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r033' (temp 4X4 matrix of float) +0:421 radians (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r034' (temp 4X4 matrix of float) +0:421 roundEven (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r035' (temp 4X4 matrix of float) +0:421 inverse sqrt (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r036' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 Constant: +0:421 1.000000 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r037' (temp 4X4 matrix of float) +0:421 Sign (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r038' (temp 4X4 matrix of float) +0:421 sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r039' (temp 4X4 matrix of float) +0:421 hyp. sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r049' (temp 4X4 matrix of float) +0:421 smoothstep (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r041' (temp 4X4 matrix of float) +0:421 sqrt (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r042' (temp 4X4 matrix of float) +0:421 step (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r043' (temp 4X4 matrix of float) +0:421 tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r044' (temp 4X4 matrix of float) +0:421 hyp. tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 transpose (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r046' (temp 4X4 matrix of float) +0:421 trunc (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:424 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -2448,309 +2456,309 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) -0:441 Function Parameters: -0:441 'inF0' (in float) -0:441 'inF1' (in float) -0:441 'inFV0' (in 2-component vector of float) -0:441 'inFV1' (in 2-component vector of float) -0:441 'inFM0' (in 2X2 matrix of float) -0:441 'inFM1' (in 2X2 matrix of float) +0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Parameters: +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:442 Sequence -0:442 move second child to first child (temp float) -0:442 'r0' (temp float) -0:442 component-wise multiply (temp float) -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r1' (temp 2-component vector of float) -0:442 vector-scale (temp 2-component vector of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inF0' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r2' (temp 2-component vector of float) -0:442 vector-scale (temp 2-component vector of float) -0:442 'inF0' (in float) -0:442 'inFV0' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp float) -0:442 'r3' (temp float) -0:442 dot-product (global float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFV1' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r4' (temp 2-component vector of float) -0:442 matrix-times-vector (temp 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r5' (temp 2-component vector of float) -0:442 vector-times-matrix (temp 2-component vector of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r6' (temp 2X2 matrix of float) -0:442 matrix-scale (temp 2X2 matrix of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inF0' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r7' (temp 2X2 matrix of float) -0:442 matrix-scale (temp 2X2 matrix of float) -0:442 'inF0' (in float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r8' (temp 2X2 matrix of float) -0:442 matrix-multiply (temp 2X2 matrix of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFM1' (in 2X2 matrix of float) -0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) -0:448 Function Parameters: -0:448 'inF0' (in float) -0:448 'inF1' (in float) -0:448 'inFV0' (in 3-component vector of float) -0:448 'inFV1' (in 3-component vector of float) -0:448 'inFM0' (in 3X3 matrix of float) -0:448 'inFM1' (in 3X3 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF0' (in float) +0:443 'inF1' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r1' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r2' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (global float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFV1' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r4' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 vector-times-matrix (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r6' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r7' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r8' (temp 2X2 matrix of float) +0:443 matrix-multiply (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFM1' (in 2X2 matrix of float) +0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Parameters: +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:449 Sequence -0:449 move second child to first child (temp float) -0:449 'r0' (temp float) -0:449 component-wise multiply (temp float) -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r1' (temp 3-component vector of float) -0:449 vector-scale (temp 3-component vector of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inF0' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r2' (temp 3-component vector of float) -0:449 vector-scale (temp 3-component vector of float) -0:449 'inF0' (in float) -0:449 'inFV0' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp float) -0:449 'r3' (temp float) -0:449 dot-product (global float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFV1' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r4' (temp 3-component vector of float) -0:449 matrix-times-vector (temp 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r5' (temp 3-component vector of float) -0:449 vector-times-matrix (temp 3-component vector of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r6' (temp 3X3 matrix of float) -0:449 matrix-scale (temp 3X3 matrix of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inF0' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r7' (temp 3X3 matrix of float) -0:449 matrix-scale (temp 3X3 matrix of float) -0:449 'inF0' (in float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r8' (temp 3X3 matrix of float) -0:449 matrix-multiply (temp 3X3 matrix of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFM1' (in 3X3 matrix of float) -0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) -0:455 Function Parameters: -0:455 'inF0' (in float) -0:455 'inF1' (in float) -0:455 'inFV0' (in 4-component vector of float) -0:455 'inFV1' (in 4-component vector of float) -0:455 'inFM0' (in 4X4 matrix of float) -0:455 'inFM1' (in 4X4 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF0' (in float) +0:450 'inF1' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r1' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r2' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (global float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFV1' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r4' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 vector-times-matrix (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r6' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r7' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r8' (temp 3X3 matrix of float) +0:450 matrix-multiply (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFM1' (in 3X3 matrix of float) +0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Parameters: +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:456 Sequence -0:456 move second child to first child (temp float) -0:456 'r0' (temp float) -0:456 component-wise multiply (temp float) -0:456 'inF0' (in float) -0:456 'inF1' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r1' (temp 4-component vector of float) -0:456 vector-scale (temp 4-component vector of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inF0' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r2' (temp 4-component vector of float) -0:456 vector-scale (temp 4-component vector of float) -0:456 'inF0' (in float) -0:456 'inFV0' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp float) -0:456 'r3' (temp float) -0:456 dot-product (global float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFV1' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r4' (temp 4-component vector of float) -0:456 matrix-times-vector (temp 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r5' (temp 4-component vector of float) -0:456 vector-times-matrix (temp 4-component vector of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r6' (temp 4X4 matrix of float) -0:456 matrix-scale (temp 4X4 matrix of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inF0' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r7' (temp 4X4 matrix of float) -0:456 matrix-scale (temp 4X4 matrix of float) -0:456 'inF0' (in float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r8' (temp 4X4 matrix of float) -0:456 matrix-multiply (temp 4X4 matrix of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFM1' (in 4X4 matrix of float) -0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) -0:465 Function Parameters: -0:465 'inF0' (in float) -0:465 'inF1' (in float) -0:465 'inFV2' (in 2-component vector of float) -0:465 'inFV3' (in 3-component vector of float) -0:465 'inFM2x3' (in 3X2 matrix of float) -0:465 'inFM3x2' (in 2X3 matrix of float) -0:465 'inFM3x3' (in 3X3 matrix of float) -0:465 'inFM3x4' (in 4X3 matrix of float) -0:465 'inFM2x4' (in 4X2 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r0' (temp float) +0:457 component-wise multiply (temp float) +0:457 'inF0' (in float) +0:457 'inF1' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r1' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r2' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r3' (temp float) +0:457 dot-product (global float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFV1' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r4' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 vector-times-matrix (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r6' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r7' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r8' (temp 4X4 matrix of float) +0:457 matrix-multiply (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFM1' (in 4X4 matrix of float) +0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:466 Function Parameters: +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:466 'inFV2' (in 2-component vector of float) +0:466 'inFV3' (in 3-component vector of float) +0:466 'inFM2x3' (in 3X2 matrix of float) +0:466 'inFM3x2' (in 2X3 matrix of float) +0:466 'inFM3x3' (in 3X3 matrix of float) +0:466 'inFM3x4' (in 4X3 matrix of float) +0:466 'inFM2x4' (in 4X2 matrix of float) 0:? Sequence -0:466 Sequence -0:466 move second child to first child (temp float) -0:466 'r00' (temp float) -0:466 component-wise multiply (temp float) -0:466 'inF0' (in float) -0:466 'inF1' (in float) 0:467 Sequence -0:467 move second child to first child (temp 2-component vector of float) -0:467 'r01' (temp 2-component vector of float) -0:467 vector-scale (temp 2-component vector of float) -0:467 'inFV2' (in 2-component vector of float) +0:467 move second child to first child (temp float) +0:467 'r00' (temp float) +0:467 component-wise multiply (temp float) 0:467 'inF0' (in float) +0:467 'inF1' (in float) 0:468 Sequence -0:468 move second child to first child (temp 3-component vector of float) -0:468 'r02' (temp 3-component vector of float) -0:468 vector-scale (temp 3-component vector of float) -0:468 'inFV3' (in 3-component vector of float) +0:468 move second child to first child (temp 2-component vector of float) +0:468 'r01' (temp 2-component vector of float) +0:468 vector-scale (temp 2-component vector of float) +0:468 'inFV2' (in 2-component vector of float) 0:468 'inF0' (in float) 0:469 Sequence -0:469 move second child to first child (temp 2-component vector of float) -0:469 'r03' (temp 2-component vector of float) -0:469 vector-scale (temp 2-component vector of float) +0:469 move second child to first child (temp 3-component vector of float) +0:469 'r02' (temp 3-component vector of float) +0:469 vector-scale (temp 3-component vector of float) +0:469 'inFV3' (in 3-component vector of float) 0:469 'inF0' (in float) -0:469 'inFV2' (in 2-component vector of float) 0:470 Sequence -0:470 move second child to first child (temp 3-component vector of float) -0:470 'r04' (temp 3-component vector of float) -0:470 vector-scale (temp 3-component vector of float) +0:470 move second child to first child (temp 2-component vector of float) +0:470 'r03' (temp 2-component vector of float) +0:470 vector-scale (temp 2-component vector of float) 0:470 'inF0' (in float) -0:470 'inFV3' (in 3-component vector of float) +0:470 'inFV2' (in 2-component vector of float) 0:471 Sequence -0:471 move second child to first child (temp float) -0:471 'r05' (temp float) -0:471 dot-product (global float) -0:471 'inFV2' (in 2-component vector of float) -0:471 'inFV2' (in 2-component vector of float) +0:471 move second child to first child (temp 3-component vector of float) +0:471 'r04' (temp 3-component vector of float) +0:471 vector-scale (temp 3-component vector of float) +0:471 'inF0' (in float) +0:471 'inFV3' (in 3-component vector of float) 0:472 Sequence 0:472 move second child to first child (temp float) -0:472 'r06' (temp float) +0:472 'r05' (temp float) 0:472 dot-product (global float) -0:472 'inFV3' (in 3-component vector of float) -0:472 'inFV3' (in 3-component vector of float) +0:472 'inFV2' (in 2-component vector of float) +0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence -0:473 move second child to first child (temp 3-component vector of float) -0:473 'r07' (temp 3-component vector of float) -0:473 vector-times-matrix (temp 3-component vector of float) -0:473 'inFV2' (in 2-component vector of float) -0:473 'inFM2x3' (in 3X2 matrix of float) +0:473 move second child to first child (temp float) +0:473 'r06' (temp float) +0:473 dot-product (global float) +0:473 'inFV3' (in 3-component vector of float) +0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence -0:474 move second child to first child (temp 2-component vector of float) -0:474 'r08' (temp 2-component vector of float) -0:474 vector-times-matrix (temp 2-component vector of float) -0:474 'inFV3' (in 3-component vector of float) -0:474 'inFM3x2' (in 2X3 matrix of float) +0:474 move second child to first child (temp 3-component vector of float) +0:474 'r07' (temp 3-component vector of float) +0:474 vector-times-matrix (temp 3-component vector of float) +0:474 'inFV2' (in 2-component vector of float) +0:474 'inFM2x3' (in 3X2 matrix of float) 0:475 Sequence 0:475 move second child to first child (temp 2-component vector of float) -0:475 'r09' (temp 2-component vector of float) -0:475 matrix-times-vector (temp 2-component vector of float) -0:475 'inFM2x3' (in 3X2 matrix of float) +0:475 'r08' (temp 2-component vector of float) +0:475 vector-times-matrix (temp 2-component vector of float) 0:475 'inFV3' (in 3-component vector of float) +0:475 'inFM3x2' (in 2X3 matrix of float) 0:476 Sequence -0:476 move second child to first child (temp 3-component vector of float) -0:476 'r10' (temp 3-component vector of float) -0:476 matrix-times-vector (temp 3-component vector of float) -0:476 'inFM3x2' (in 2X3 matrix of float) -0:476 'inFV2' (in 2-component vector of float) +0:476 move second child to first child (temp 2-component vector of float) +0:476 'r09' (temp 2-component vector of float) +0:476 matrix-times-vector (temp 2-component vector of float) +0:476 'inFM2x3' (in 3X2 matrix of float) +0:476 'inFV3' (in 3-component vector of float) 0:477 Sequence -0:477 move second child to first child (temp 3X2 matrix of float) -0:477 'r11' (temp 3X2 matrix of float) -0:477 matrix-scale (temp 3X2 matrix of float) -0:477 'inFM2x3' (in 3X2 matrix of float) -0:477 'inF0' (in float) +0:477 move second child to first child (temp 3-component vector of float) +0:477 'r10' (temp 3-component vector of float) +0:477 matrix-times-vector (temp 3-component vector of float) +0:477 'inFM3x2' (in 2X3 matrix of float) +0:477 'inFV2' (in 2-component vector of float) 0:478 Sequence -0:478 move second child to first child (temp 2X3 matrix of float) -0:478 'r12' (temp 2X3 matrix of float) -0:478 matrix-scale (temp 2X3 matrix of float) -0:478 'inFM3x2' (in 2X3 matrix of float) +0:478 move second child to first child (temp 3X2 matrix of float) +0:478 'r11' (temp 3X2 matrix of float) +0:478 matrix-scale (temp 3X2 matrix of float) +0:478 'inFM2x3' (in 3X2 matrix of float) 0:478 'inF0' (in float) 0:479 Sequence -0:479 move second child to first child (temp 2X2 matrix of float) -0:479 'r13' (temp 2X2 matrix of float) -0:479 matrix-multiply (temp 2X2 matrix of float) -0:479 'inFM2x3' (in 3X2 matrix of float) +0:479 move second child to first child (temp 2X3 matrix of float) +0:479 'r12' (temp 2X3 matrix of float) +0:479 matrix-scale (temp 2X3 matrix of float) 0:479 'inFM3x2' (in 2X3 matrix of float) +0:479 'inF0' (in float) 0:480 Sequence -0:480 move second child to first child (temp 3X2 matrix of float) -0:480 'r14' (temp 3X2 matrix of float) -0:480 matrix-multiply (temp 3X2 matrix of float) +0:480 move second child to first child (temp 2X2 matrix of float) +0:480 'r13' (temp 2X2 matrix of float) +0:480 matrix-multiply (temp 2X2 matrix of float) 0:480 'inFM2x3' (in 3X2 matrix of float) -0:480 'inFM3x3' (in 3X3 matrix of float) +0:480 'inFM3x2' (in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child (temp 4X2 matrix of float) -0:481 'r15' (temp 4X2 matrix of float) -0:481 matrix-multiply (temp 4X2 matrix of float) +0:481 move second child to first child (temp 3X2 matrix of float) +0:481 'r14' (temp 3X2 matrix of float) +0:481 matrix-multiply (temp 3X2 matrix of float) 0:481 'inFM2x3' (in 3X2 matrix of float) -0:481 'inFM3x4' (in 4X3 matrix of float) +0:481 'inFM3x3' (in 3X3 matrix of float) 0:482 Sequence -0:482 move second child to first child (temp 4X3 matrix of float) -0:482 'r16' (temp 4X3 matrix of float) -0:482 matrix-multiply (temp 4X3 matrix of float) -0:482 'inFM3x2' (in 2X3 matrix of float) -0:482 'inFM2x4' (in 4X2 matrix of float) +0:482 move second child to first child (temp 4X2 matrix of float) +0:482 'r15' (temp 4X2 matrix of float) +0:482 matrix-multiply (temp 4X2 matrix of float) +0:482 'inFM2x3' (in 3X2 matrix of float) +0:482 'inFM3x4' (in 4X3 matrix of float) +0:483 Sequence +0:483 move second child to first child (temp 4X3 matrix of float) +0:483 'r16' (temp 4X3 matrix of float) +0:483 matrix-multiply (temp 4X3 matrix of float) +0:483 'inFM3x2' (in 2X3 matrix of float) +0:483 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -3503,7 +3511,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -3740,1162 +3748,1170 @@ gl_FragCoord origin is upper left 0:225 'inF1' (in 3-component vector of float) 0:225 'inF2' (in 3-component vector of float) 0:226 Sequence -0:226 move second child to first child (temp float) -0:226 'r043' (temp float) -0:226 length (global float) +0:226 move second child to first child (temp 3-component vector of float) +0:226 'r039b' (temp 3-component vector of float) +0:226 mix (global 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) +0:226 'inF1' (in 3-component vector of float) +0:226 Constant: +0:226 0.300000 0:227 Sequence -0:227 move second child to first child (temp 3-component vector of float) -0:227 'r044' (temp 3-component vector of float) -0:227 log (global 3-component vector of float) +0:227 move second child to first child (temp float) +0:227 'r043' (temp float) +0:227 length (global float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) -0:228 'r045' (temp 3-component vector of float) -0:228 vector-scale (temp 3-component vector of float) -0:228 log2 (temp 3-component vector of float) -0:228 'inF0' (in 3-component vector of float) -0:228 Constant: -0:228 0.301030 +0:228 'r044' (temp 3-component vector of float) +0:228 log (global 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) -0:229 'r046' (temp 3-component vector of float) -0:229 log2 (global 3-component vector of float) -0:229 'inF0' (in 3-component vector of float) +0:229 'r045' (temp 3-component vector of float) +0:229 vector-scale (temp 3-component vector of float) +0:229 log2 (temp 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) +0:229 Constant: +0:229 0.301030 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) -0:230 'r047' (temp 3-component vector of float) -0:230 max (global 3-component vector of float) +0:230 'r046' (temp 3-component vector of float) +0:230 log2 (global 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) -0:230 'inF1' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) -0:231 'r048' (temp 3-component vector of float) -0:231 min (global 3-component vector of float) +0:231 'r047' (temp 3-component vector of float) +0:231 max (global 3-component vector of float) 0:231 'inF0' (in 3-component vector of float) 0:231 'inF1' (in 3-component vector of float) 0:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) -0:232 'r049' (temp 3-component vector of float) -0:232 normalize (global 3-component vector of float) +0:232 'r048' (temp 3-component vector of float) +0:232 min (global 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) +0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) -0:233 'r050' (temp 3-component vector of float) -0:233 pow (global 3-component vector of float) +0:233 'r049' (temp 3-component vector of float) +0:233 normalize (global 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) -0:233 'inF1' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) -0:234 'r051' (temp 3-component vector of float) -0:234 radians (global 3-component vector of float) +0:234 'r050' (temp 3-component vector of float) +0:234 pow (global 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) +0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) -0:235 'r052' (temp 3-component vector of float) -0:235 divide (temp 3-component vector of float) -0:235 Constant: -0:235 1.000000 +0:235 'r051' (temp 3-component vector of float) +0:235 radians (global 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) -0:236 'r053' (temp 3-component vector of float) -0:236 reflect (global 3-component vector of float) +0:236 'r052' (temp 3-component vector of float) +0:236 divide (temp 3-component vector of float) +0:236 Constant: +0:236 1.000000 0:236 'inF0' (in 3-component vector of float) -0:236 'inF1' (in 3-component vector of float) 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) -0:237 'r054' (temp 3-component vector of float) -0:237 refract (global 3-component vector of float) +0:237 'r053' (temp 3-component vector of float) +0:237 reflect (global 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (in 3-component vector of float) -0:237 Constant: -0:237 2.000000 0:238 Sequence -0:238 move second child to first child (temp 3-component vector of uint) -0:238 'r055' (temp 3-component vector of uint) +0:238 move second child to first child (temp 3-component vector of float) +0:238 'r054' (temp 3-component vector of float) +0:238 refract (global 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) +0:238 'inF1' (in 3-component vector of float) +0:238 Constant: +0:238 2.000000 +0:239 Sequence +0:239 move second child to first child (temp 3-component vector of uint) +0:239 'r055' (temp 3-component vector of uint) 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:239 Sequence -0:239 move second child to first child (temp 3-component vector of float) -0:239 'r056' (temp 3-component vector of float) -0:239 roundEven (global 3-component vector of float) -0:239 'inF0' (in 3-component vector of float) 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) -0:240 'r057' (temp 3-component vector of float) -0:240 inverse sqrt (global 3-component vector of float) +0:240 'r056' (temp 3-component vector of float) +0:240 roundEven (global 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) -0:241 'r058' (temp 3-component vector of float) -0:241 clamp (temp 3-component vector of float) +0:241 'r057' (temp 3-component vector of float) +0:241 inverse sqrt (global 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) -0:241 Constant: -0:241 0.000000 -0:241 Constant: -0:241 1.000000 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) -0:242 'r059' (temp 3-component vector of float) -0:242 Sign (global 3-component vector of float) +0:242 'r058' (temp 3-component vector of float) +0:242 clamp (temp 3-component vector of float) 0:242 'inF0' (in 3-component vector of float) +0:242 Constant: +0:242 0.000000 +0:242 Constant: +0:242 1.000000 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) -0:243 'r060' (temp 3-component vector of float) -0:243 sine (global 3-component vector of float) +0:243 'r059' (temp 3-component vector of float) +0:243 Sign (global 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) -0:244 'inF1' (in 3-component vector of float) -0:244 sine (temp 3-component vector of float) -0:244 'inF0' (in 3-component vector of float) -0:244 move second child to first child (temp 3-component vector of float) -0:244 'inF2' (in 3-component vector of float) -0:244 cosine (temp 3-component vector of float) +0:244 'r060' (temp 3-component vector of float) +0:244 sine (global 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) -0:245 'r061' (temp 3-component vector of float) -0:245 hyp. sine (global 3-component vector of float) +0:245 'inF1' (in 3-component vector of float) +0:245 sine (temp 3-component vector of float) +0:245 'inF0' (in 3-component vector of float) +0:245 move second child to first child (temp 3-component vector of float) +0:245 'inF2' (in 3-component vector of float) +0:245 cosine (temp 3-component vector of float) 0:245 'inF0' (in 3-component vector of float) 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) -0:246 'r062' (temp 3-component vector of float) -0:246 smoothstep (global 3-component vector of float) +0:246 'r061' (temp 3-component vector of float) +0:246 hyp. sine (global 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) -0:246 'inF1' (in 3-component vector of float) -0:246 'inF2' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) -0:247 'r063' (temp 3-component vector of float) -0:247 sqrt (global 3-component vector of float) +0:247 'r062' (temp 3-component vector of float) +0:247 smoothstep (global 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) +0:247 'inF1' (in 3-component vector of float) +0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) -0:248 'r064' (temp 3-component vector of float) -0:248 step (global 3-component vector of float) +0:248 'r063' (temp 3-component vector of float) +0:248 sqrt (global 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) -0:248 'inF1' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) -0:249 'r065' (temp 3-component vector of float) -0:249 tangent (global 3-component vector of float) +0:249 'r064' (temp 3-component vector of float) +0:249 step (global 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) +0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) -0:250 'r066' (temp 3-component vector of float) -0:250 hyp. tangent (global 3-component vector of float) +0:250 'r065' (temp 3-component vector of float) +0:250 tangent (global 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) -0:252 Sequence -0:252 move second child to first child (temp 3-component vector of float) -0:252 'r067' (temp 3-component vector of float) -0:252 trunc (global 3-component vector of float) -0:252 'inF0' (in 3-component vector of float) -0:255 Branch: Return with expression +0:251 Sequence +0:251 move second child to first child (temp 3-component vector of float) +0:251 'r066' (temp 3-component vector of float) +0:251 hyp. tangent (global 3-component vector of float) +0:251 'inF0' (in 3-component vector of float) +0:253 Sequence +0:253 move second child to first child (temp 3-component vector of float) +0:253 'r067' (temp 3-component vector of float) +0:253 trunc (global 3-component vector of float) +0:253 'inF0' (in 3-component vector of float) +0:256 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) -0:259 Function Parameters: -0:259 'inF0' (in 4-component vector of float) -0:259 'inF1' (in 4-component vector of float) -0:259 'inF2' (in 4-component vector of float) -0:259 'inU0' (in 4-component vector of uint) -0:259 'inU1' (in 4-component vector of uint) +0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Parameters: +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 'inF2' (in 4-component vector of float) +0:260 'inU0' (in 4-component vector of uint) +0:260 'inU1' (in 4-component vector of uint) 0:? Sequence -0:262 Sequence -0:262 move second child to first child (temp bool) -0:262 'r000' (temp bool) -0:262 all (global bool) -0:262 'inF0' (in 4-component vector of float) 0:263 Sequence -0:263 move second child to first child (temp 4-component vector of float) -0:263 'r001' (temp 4-component vector of float) -0:263 Absolute value (global 4-component vector of float) +0:263 move second child to first child (temp bool) +0:263 'r000' (temp bool) +0:263 all (global bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) -0:264 'r002' (temp 4-component vector of float) -0:264 arc cosine (global 4-component vector of float) +0:264 'r001' (temp 4-component vector of float) +0:264 Absolute value (global 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence -0:265 move second child to first child (temp bool) -0:265 'r003' (temp bool) -0:265 any (global bool) +0:265 move second child to first child (temp 4-component vector of float) +0:265 'r002' (temp 4-component vector of float) +0:265 arc cosine (global 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence -0:266 move second child to first child (temp 4-component vector of float) -0:266 'r004' (temp 4-component vector of float) -0:266 arc sine (global 4-component vector of float) +0:266 move second child to first child (temp bool) +0:266 'r003' (temp bool) +0:266 any (global bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence -0:267 move second child to first child (temp 4-component vector of int) -0:267 'r005' (temp 4-component vector of int) -0:267 floatBitsToInt (global 4-component vector of int) +0:267 move second child to first child (temp 4-component vector of float) +0:267 'r004' (temp 4-component vector of float) +0:267 arc sine (global 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence -0:268 move second child to first child (temp 4-component vector of uint) -0:268 'r006' (temp 4-component vector of uint) -0:268 floatBitsToUint (global 4-component vector of uint) +0:268 move second child to first child (temp 4-component vector of int) +0:268 'r005' (temp 4-component vector of int) +0:268 floatBitsToInt (global 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence -0:269 move second child to first child (temp 4-component vector of float) -0:269 'r007' (temp 4-component vector of float) -0:269 intBitsToFloat (global 4-component vector of float) -0:269 'inU0' (in 4-component vector of uint) -0:271 Sequence -0:271 move second child to first child (temp 4-component vector of float) -0:271 'r009' (temp 4-component vector of float) -0:271 arc tangent (global 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) +0:269 move second child to first child (temp 4-component vector of uint) +0:269 'r006' (temp 4-component vector of uint) +0:269 floatBitsToUint (global 4-component vector of uint) +0:269 'inF0' (in 4-component vector of float) +0:270 Sequence +0:270 move second child to first child (temp 4-component vector of float) +0:270 'r007' (temp 4-component vector of float) +0:270 intBitsToFloat (global 4-component vector of float) +0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) -0:272 'r010' (temp 4-component vector of float) +0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:272 'inF1' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) -0:273 'r011' (temp 4-component vector of float) -0:273 Ceiling (global 4-component vector of float) +0:273 'r010' (temp 4-component vector of float) +0:273 arc tangent (global 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) +0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) -0:274 'r012' (temp 4-component vector of float) -0:274 clamp (global 4-component vector of float) +0:274 'r011' (temp 4-component vector of float) +0:274 Ceiling (global 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) -0:274 'inF1' (in 4-component vector of float) -0:274 'inF2' (in 4-component vector of float) -0:275 Test condition and select (temp void) -0:275 Condition -0:275 any (temp bool) -0:275 Compare Less Than (temp 4-component vector of bool) +0:275 Sequence +0:275 move second child to first child (temp 4-component vector of float) +0:275 'r012' (temp 4-component vector of float) +0:275 clamp (global 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) -0:275 Constant: -0:275 0.000000 -0:275 0.000000 -0:275 0.000000 -0:275 0.000000 -0:275 true case -0:275 Branch: Kill -0:276 Sequence -0:276 move second child to first child (temp 4-component vector of float) -0:276 'r013' (temp 4-component vector of float) -0:276 cosine (global 4-component vector of float) +0:275 'inF1' (in 4-component vector of float) +0:275 'inF2' (in 4-component vector of float) +0:276 Test condition and select (temp void) +0:276 Condition +0:276 any (temp bool) +0:276 Compare Less Than (temp 4-component vector of bool) 0:276 'inF0' (in 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 0.000000 +0:276 true case +0:276 Branch: Kill 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) -0:277 'r014' (temp 4-component vector of float) -0:277 hyp. cosine (global 4-component vector of float) +0:277 'r013' (temp 4-component vector of float) +0:277 cosine (global 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence -0:278 move second child to first child (temp 4-component vector of uint) -0:278 'r015' (temp 4-component vector of uint) +0:278 move second child to first child (temp 4-component vector of float) +0:278 'r014' (temp 4-component vector of float) +0:278 hyp. cosine (global 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of uint) +0:279 'r015' (temp 4-component vector of uint) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:279 'r016' (temp 4-component vector of float) -0:279 dPdx (global 4-component vector of float) -0:279 'inF0' (in 4-component vector of float) 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) -0:280 'r017' (temp 4-component vector of float) -0:280 dPdxCoarse (global 4-component vector of float) +0:280 'r016' (temp 4-component vector of float) +0:280 dPdx (global 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) -0:281 'r018' (temp 4-component vector of float) -0:281 dPdxFine (global 4-component vector of float) +0:281 'r017' (temp 4-component vector of float) +0:281 dPdxCoarse (global 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) -0:282 'r019' (temp 4-component vector of float) -0:282 dPdy (global 4-component vector of float) +0:282 'r018' (temp 4-component vector of float) +0:282 dPdxFine (global 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) -0:283 'r020' (temp 4-component vector of float) -0:283 dPdyCoarse (global 4-component vector of float) +0:283 'r019' (temp 4-component vector of float) +0:283 dPdy (global 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) -0:284 'r021' (temp 4-component vector of float) -0:284 dPdyFine (global 4-component vector of float) +0:284 'r020' (temp 4-component vector of float) +0:284 dPdyCoarse (global 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) -0:285 'r022' (temp 4-component vector of float) -0:285 degrees (global 4-component vector of float) +0:285 'r021' (temp 4-component vector of float) +0:285 dPdyFine (global 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence -0:286 move second child to first child (temp float) -0:286 'r023' (temp float) -0:286 distance (global float) +0:286 move second child to first child (temp 4-component vector of float) +0:286 'r022' (temp 4-component vector of float) +0:286 degrees (global 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) -0:286 'inF1' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) -0:287 'r024' (temp float) -0:287 dot-product (global float) +0:287 'r023' (temp float) +0:287 distance (global float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence -0:288 move second child to first child (temp 4-component vector of float) -0:288 'r025' (temp 4-component vector of float) -0:288 Construct vec4 (temp 4-component vector of float) -0:288 Constant: -0:288 1.000000 -0:288 component-wise multiply (temp float) -0:288 direct index (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 Constant: -0:288 1 (const int) -0:288 direct index (temp float) -0:288 'inF1' (in 4-component vector of float) -0:288 Constant: -0:288 1 (const int) -0:288 direct index (temp float) -0:288 'inF0' (in 4-component vector of float) -0:288 Constant: -0:288 2 (const int) -0:288 direct index (temp float) -0:288 'inF1' (in 4-component vector of float) -0:288 Constant: -0:288 3 (const int) -0:292 Sequence -0:292 move second child to first child (temp 4-component vector of float) -0:292 'r029' (temp 4-component vector of float) -0:292 exp (global 4-component vector of float) -0:292 'inF0' (in 4-component vector of float) +0:288 move second child to first child (temp float) +0:288 'r024' (temp float) +0:288 dot-product (global float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) +0:289 Sequence +0:289 move second child to first child (temp 4-component vector of float) +0:289 'r025' (temp 4-component vector of float) +0:289 Construct vec4 (temp 4-component vector of float) +0:289 Constant: +0:289 1.000000 +0:289 component-wise multiply (temp float) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 1 (const int) +0:289 direct index (temp float) +0:289 'inF0' (in 4-component vector of float) +0:289 Constant: +0:289 2 (const int) +0:289 direct index (temp float) +0:289 'inF1' (in 4-component vector of float) +0:289 Constant: +0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) -0:293 'r030' (temp 4-component vector of float) -0:293 exp2 (global 4-component vector of float) +0:293 'r029' (temp 4-component vector of float) +0:293 exp (global 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) -0:294 'r031' (temp 4-component vector of float) -0:294 face-forward (global 4-component vector of float) +0:294 'r030' (temp 4-component vector of float) +0:294 exp2 (global 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) -0:294 'inF1' (in 4-component vector of float) -0:294 'inF2' (in 4-component vector of float) 0:295 Sequence -0:295 move second child to first child (temp 4-component vector of uint) -0:295 'r032' (temp 4-component vector of uint) +0:295 move second child to first child (temp 4-component vector of float) +0:295 'r031' (temp 4-component vector of float) +0:295 face-forward (global 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r032' (temp 4-component vector of uint) 0:? findMSB (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) -0:296 Sequence -0:296 move second child to first child (temp 4-component vector of uint) -0:296 'r033' (temp 4-component vector of uint) +0:297 Sequence +0:297 move second child to first child (temp 4-component vector of uint) +0:297 'r033' (temp 4-component vector of uint) 0:? findLSB (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) -0:297 Sequence -0:297 move second child to first child (temp 4-component vector of float) -0:297 'r034' (temp 4-component vector of float) -0:297 Floor (global 4-component vector of float) -0:297 'inF0' (in 4-component vector of float) -0:299 Sequence -0:299 move second child to first child (temp 4-component vector of float) -0:299 'r036' (temp 4-component vector of float) -0:299 mod (global 4-component vector of float) -0:299 'inF0' (in 4-component vector of float) -0:299 'inF1' (in 4-component vector of float) +0:298 Sequence +0:298 move second child to first child (temp 4-component vector of float) +0:298 'r034' (temp 4-component vector of float) +0:298 Floor (global 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) -0:300 'r037' (temp 4-component vector of float) -0:300 Fraction (global 4-component vector of float) +0:300 'r036' (temp 4-component vector of float) +0:300 mod (global 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) -0:301 'r038' (temp 4-component vector of float) -0:301 frexp (global 4-component vector of float) +0:301 'r037' (temp 4-component vector of float) +0:301 Fraction (global 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) -0:301 'inF1' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) -0:302 'r039' (temp 4-component vector of float) -0:302 fwidth (global 4-component vector of float) +0:302 'r038' (temp 4-component vector of float) +0:302 frexp (global 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) 0:303 Sequence -0:303 move second child to first child (temp 4-component vector of bool) -0:303 'r040' (temp 4-component vector of bool) -0:303 isinf (global 4-component vector of bool) +0:303 move second child to first child (temp 4-component vector of float) +0:303 'r039' (temp 4-component vector of float) +0:303 fwidth (global 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) -0:304 'r041' (temp 4-component vector of bool) -0:304 isnan (global 4-component vector of bool) +0:304 'r040' (temp 4-component vector of bool) +0:304 isinf (global 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence -0:305 move second child to first child (temp 4-component vector of float) -0:305 'r042' (temp 4-component vector of float) -0:305 ldexp (global 4-component vector of float) +0:305 move second child to first child (temp 4-component vector of bool) +0:305 'r041' (temp 4-component vector of bool) +0:305 isnan (global 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) -0:305 'inF1' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) -0:306 'r039a' (temp 4-component vector of float) -0:306 mix (global 4-component vector of float) +0:306 'r042' (temp 4-component vector of float) +0:306 ldexp (global 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) -0:306 'inF2' (in 4-component vector of float) 0:307 Sequence -0:307 move second child to first child (temp float) -0:307 'r043' (temp float) -0:307 length (global float) +0:307 move second child to first child (temp 4-component vector of float) +0:307 'r039a' (temp 4-component vector of float) +0:307 mix (global 4-component vector of float) 0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) +0:307 'inF2' (in 4-component vector of float) 0:308 Sequence -0:308 move second child to first child (temp 4-component vector of float) -0:308 'r044' (temp 4-component vector of float) -0:308 log (global 4-component vector of float) +0:308 move second child to first child (temp float) +0:308 'r043' (temp float) +0:308 length (global float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) -0:309 'r045' (temp 4-component vector of float) -0:309 vector-scale (temp 4-component vector of float) -0:309 log2 (temp 4-component vector of float) -0:309 'inF0' (in 4-component vector of float) -0:309 Constant: -0:309 0.301030 +0:309 'r044' (temp 4-component vector of float) +0:309 log (global 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) -0:310 'r046' (temp 4-component vector of float) -0:310 log2 (global 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) +0:310 'r045' (temp 4-component vector of float) +0:310 vector-scale (temp 4-component vector of float) +0:310 log2 (temp 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:310 Constant: +0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) -0:311 'r047' (temp 4-component vector of float) -0:311 max (global 4-component vector of float) +0:311 'r046' (temp 4-component vector of float) +0:311 log2 (global 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) -0:311 'inF1' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) -0:312 'r048' (temp 4-component vector of float) -0:312 min (global 4-component vector of float) +0:312 'r047' (temp 4-component vector of float) +0:312 max (global 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) -0:313 'r049' (temp 4-component vector of float) -0:313 normalize (global 4-component vector of float) +0:313 'r048' (temp 4-component vector of float) +0:313 min (global 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) +0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) -0:314 'r050' (temp 4-component vector of float) -0:314 pow (global 4-component vector of float) +0:314 'r049' (temp 4-component vector of float) +0:314 normalize (global 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) -0:314 'inF1' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) -0:315 'r051' (temp 4-component vector of float) -0:315 radians (global 4-component vector of float) +0:315 'r050' (temp 4-component vector of float) +0:315 pow (global 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) +0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) -0:316 'r052' (temp 4-component vector of float) -0:316 divide (temp 4-component vector of float) -0:316 Constant: -0:316 1.000000 +0:316 'r051' (temp 4-component vector of float) +0:316 radians (global 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) -0:317 'r053' (temp 4-component vector of float) -0:317 reflect (global 4-component vector of float) +0:317 'r052' (temp 4-component vector of float) +0:317 divide (temp 4-component vector of float) +0:317 Constant: +0:317 1.000000 0:317 'inF0' (in 4-component vector of float) -0:317 'inF1' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'r054' (temp 4-component vector of float) -0:318 refract (global 4-component vector of float) +0:318 'r053' (temp 4-component vector of float) +0:318 reflect (global 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) -0:318 Constant: -0:318 2.000000 0:319 Sequence -0:319 move second child to first child (temp 4-component vector of uint) -0:319 'r055' (temp 4-component vector of uint) +0:319 move second child to first child (temp 4-component vector of float) +0:319 'r054' (temp 4-component vector of float) +0:319 refract (global 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) +0:319 'inF1' (in 4-component vector of float) +0:319 Constant: +0:319 2.000000 +0:320 Sequence +0:320 move second child to first child (temp 4-component vector of uint) +0:320 'r055' (temp 4-component vector of uint) 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:320 Sequence -0:320 move second child to first child (temp 4-component vector of float) -0:320 'r056' (temp 4-component vector of float) -0:320 roundEven (global 4-component vector of float) -0:320 'inF0' (in 4-component vector of float) 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) -0:321 'r057' (temp 4-component vector of float) -0:321 inverse sqrt (global 4-component vector of float) +0:321 'r056' (temp 4-component vector of float) +0:321 roundEven (global 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) -0:322 'r058' (temp 4-component vector of float) -0:322 clamp (temp 4-component vector of float) +0:322 'r057' (temp 4-component vector of float) +0:322 inverse sqrt (global 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) -0:322 Constant: -0:322 0.000000 -0:322 Constant: -0:322 1.000000 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) -0:323 'r059' (temp 4-component vector of float) -0:323 Sign (global 4-component vector of float) +0:323 'r058' (temp 4-component vector of float) +0:323 clamp (temp 4-component vector of float) 0:323 'inF0' (in 4-component vector of float) +0:323 Constant: +0:323 0.000000 +0:323 Constant: +0:323 1.000000 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) -0:324 'r060' (temp 4-component vector of float) -0:324 sine (global 4-component vector of float) +0:324 'r059' (temp 4-component vector of float) +0:324 Sign (global 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) -0:325 'inF1' (in 4-component vector of float) -0:325 sine (temp 4-component vector of float) -0:325 'inF0' (in 4-component vector of float) -0:325 move second child to first child (temp 4-component vector of float) -0:325 'inF2' (in 4-component vector of float) -0:325 cosine (temp 4-component vector of float) +0:325 'r060' (temp 4-component vector of float) +0:325 sine (global 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'r061' (temp 4-component vector of float) -0:326 hyp. sine (global 4-component vector of float) +0:326 'inF1' (in 4-component vector of float) +0:326 sine (temp 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) +0:326 move second child to first child (temp 4-component vector of float) +0:326 'inF2' (in 4-component vector of float) +0:326 cosine (temp 4-component vector of float) 0:326 'inF0' (in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) -0:327 'r062' (temp 4-component vector of float) -0:327 smoothstep (global 4-component vector of float) +0:327 'r061' (temp 4-component vector of float) +0:327 hyp. sine (global 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) -0:327 'inF1' (in 4-component vector of float) -0:327 'inF2' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) -0:328 'r063' (temp 4-component vector of float) -0:328 sqrt (global 4-component vector of float) +0:328 'r062' (temp 4-component vector of float) +0:328 smoothstep (global 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) +0:328 'inF1' (in 4-component vector of float) +0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) -0:329 'r064' (temp 4-component vector of float) -0:329 step (global 4-component vector of float) +0:329 'r063' (temp 4-component vector of float) +0:329 sqrt (global 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) -0:329 'inF1' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) -0:330 'r065' (temp 4-component vector of float) -0:330 tangent (global 4-component vector of float) +0:330 'r064' (temp 4-component vector of float) +0:330 step (global 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) +0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) -0:331 'r066' (temp 4-component vector of float) -0:331 hyp. tangent (global 4-component vector of float) +0:331 'r065' (temp 4-component vector of float) +0:331 tangent (global 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) -0:333 Sequence -0:333 move second child to first child (temp 4-component vector of float) -0:333 'r067' (temp 4-component vector of float) -0:333 trunc (global 4-component vector of float) -0:333 'inF0' (in 4-component vector of float) -0:336 Branch: Return with expression +0:332 Sequence +0:332 move second child to first child (temp 4-component vector of float) +0:332 'r066' (temp 4-component vector of float) +0:332 hyp. tangent (global 4-component vector of float) +0:332 'inF0' (in 4-component vector of float) +0:334 Sequence +0:334 move second child to first child (temp 4-component vector of float) +0:334 'r067' (temp 4-component vector of float) +0:334 trunc (global 4-component vector of float) +0:334 'inF0' (in 4-component vector of float) +0:337 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) -0:400 Function Parameters: -0:400 'inF0' (in 2X2 matrix of float) -0:400 'inF1' (in 2X2 matrix of float) -0:400 'inF2' (in 2X2 matrix of float) +0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Parameters: +0:401 'inF0' (in 2X2 matrix of float) +0:401 'inF1' (in 2X2 matrix of float) +0:401 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:402 Sequence -0:402 move second child to first child (temp bool) -0:402 'r000' (temp bool) -0:402 all (global bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r001' (temp 2X2 matrix of float) -0:402 Absolute value (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 arc cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp bool) -0:402 'r003' (temp bool) -0:402 any (global bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r004' (temp 2X2 matrix of float) -0:402 arc sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r005' (temp 2X2 matrix of float) -0:402 arc tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r006' (temp 2X2 matrix of float) -0:402 arc tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r007' (temp 2X2 matrix of float) -0:402 Ceiling (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Test condition and select (temp void) -0:402 Condition -0:402 any (temp bool) -0:402 Compare Less Than (temp 2X2 matrix of bool) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.000000 -0:402 0.000000 -0:402 0.000000 -0:402 0.000000 -0:402 true case -0:402 Branch: Kill -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r008' (temp 2X2 matrix of float) -0:402 clamp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r009' (temp 2X2 matrix of float) -0:402 cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r010' (temp 2X2 matrix of float) -0:402 hyp. cosine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r011' (temp 2X2 matrix of float) -0:402 dPdx (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r012' (temp 2X2 matrix of float) -0:402 dPdxCoarse (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r013' (temp 2X2 matrix of float) -0:402 dPdxFine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r014' (temp 2X2 matrix of float) -0:402 dPdy (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r015' (temp 2X2 matrix of float) -0:402 dPdyCoarse (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r016' (temp 2X2 matrix of float) -0:402 dPdyFine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r017' (temp 2X2 matrix of float) -0:402 degrees (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp float) -0:402 'r018' (temp float) -0:402 determinant (global float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r019' (temp 2X2 matrix of float) -0:402 exp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'R020' (temp 2X2 matrix of float) -0:402 exp2 (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r021' (temp 2X2 matrix of float) -0:402 Floor (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r022' (temp 2X2 matrix of float) -0:402 mod (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r023' (temp 2X2 matrix of float) -0:402 Fraction (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r024' (temp 2X2 matrix of float) -0:402 frexp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r025' (temp 2X2 matrix of float) -0:402 fwidth (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r026' (temp 2X2 matrix of float) -0:402 ldexp (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r026a' (temp 2X2 matrix of float) -0:402 mix (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r027' (temp 2X2 matrix of float) -0:402 log (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r028' (temp 2X2 matrix of float) -0:402 matrix-scale (temp 2X2 matrix of float) -0:402 log2 (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.301030 -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r029' (temp 2X2 matrix of float) -0:402 log2 (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r030' (temp 2X2 matrix of float) -0:402 max (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r031' (temp 2X2 matrix of float) -0:402 min (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r032' (temp 2X2 matrix of float) -0:402 pow (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r033' (temp 2X2 matrix of float) -0:402 radians (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r034' (temp 2X2 matrix of float) -0:402 roundEven (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r035' (temp 2X2 matrix of float) -0:402 inverse sqrt (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r036' (temp 2X2 matrix of float) -0:402 clamp (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Constant: -0:402 0.000000 -0:402 Constant: -0:402 1.000000 -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r037' (temp 2X2 matrix of float) -0:402 Sign (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r038' (temp 2X2 matrix of float) -0:402 sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 sine (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 cosine (temp 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r039' (temp 2X2 matrix of float) -0:402 hyp. sine (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r049' (temp 2X2 matrix of float) -0:402 smoothstep (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 'inF2' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r041' (temp 2X2 matrix of float) -0:402 sqrt (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r042' (temp 2X2 matrix of float) -0:402 step (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 'inF1' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r043' (temp 2X2 matrix of float) -0:402 tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r044' (temp 2X2 matrix of float) -0:402 hyp. tangent (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 transpose (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:402 Sequence -0:402 move second child to first child (temp 2X2 matrix of float) -0:402 'r046' (temp 2X2 matrix of float) -0:402 trunc (global 2X2 matrix of float) -0:402 'inF0' (in 2X2 matrix of float) -0:405 Branch: Return with expression +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r000' (temp bool) +0:403 all (global bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r001' (temp 2X2 matrix of float) +0:403 Absolute value (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 arc cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp bool) +0:403 'r003' (temp bool) +0:403 any (global bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r004' (temp 2X2 matrix of float) +0:403 arc sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r005' (temp 2X2 matrix of float) +0:403 arc tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r006' (temp 2X2 matrix of float) +0:403 arc tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r007' (temp 2X2 matrix of float) +0:403 Ceiling (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Test condition and select (temp void) +0:403 Condition +0:403 any (temp bool) +0:403 Compare Less Than (temp 2X2 matrix of bool) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 0.000000 +0:403 true case +0:403 Branch: Kill +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r008' (temp 2X2 matrix of float) +0:403 clamp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r009' (temp 2X2 matrix of float) +0:403 cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r010' (temp 2X2 matrix of float) +0:403 hyp. cosine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r011' (temp 2X2 matrix of float) +0:403 dPdx (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r012' (temp 2X2 matrix of float) +0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r013' (temp 2X2 matrix of float) +0:403 dPdxFine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r014' (temp 2X2 matrix of float) +0:403 dPdy (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r015' (temp 2X2 matrix of float) +0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r016' (temp 2X2 matrix of float) +0:403 dPdyFine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r017' (temp 2X2 matrix of float) +0:403 degrees (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp float) +0:403 'r018' (temp float) +0:403 determinant (global float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r019' (temp 2X2 matrix of float) +0:403 exp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'R020' (temp 2X2 matrix of float) +0:403 exp2 (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r021' (temp 2X2 matrix of float) +0:403 Floor (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r022' (temp 2X2 matrix of float) +0:403 mod (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r023' (temp 2X2 matrix of float) +0:403 Fraction (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r024' (temp 2X2 matrix of float) +0:403 frexp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r025' (temp 2X2 matrix of float) +0:403 fwidth (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026' (temp 2X2 matrix of float) +0:403 ldexp (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r026a' (temp 2X2 matrix of float) +0:403 mix (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r027' (temp 2X2 matrix of float) +0:403 log (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r028' (temp 2X2 matrix of float) +0:403 matrix-scale (temp 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.301030 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r029' (temp 2X2 matrix of float) +0:403 log2 (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r030' (temp 2X2 matrix of float) +0:403 max (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r031' (temp 2X2 matrix of float) +0:403 min (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r032' (temp 2X2 matrix of float) +0:403 pow (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r033' (temp 2X2 matrix of float) +0:403 radians (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r034' (temp 2X2 matrix of float) +0:403 roundEven (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r035' (temp 2X2 matrix of float) +0:403 inverse sqrt (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r036' (temp 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Constant: +0:403 0.000000 +0:403 Constant: +0:403 1.000000 +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r037' (temp 2X2 matrix of float) +0:403 Sign (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r038' (temp 2X2 matrix of float) +0:403 sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r039' (temp 2X2 matrix of float) +0:403 hyp. sine (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r049' (temp 2X2 matrix of float) +0:403 smoothstep (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 'inF2' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r041' (temp 2X2 matrix of float) +0:403 sqrt (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r042' (temp 2X2 matrix of float) +0:403 step (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 'inF1' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r043' (temp 2X2 matrix of float) +0:403 tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r044' (temp 2X2 matrix of float) +0:403 hyp. tangent (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 transpose (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:403 Sequence +0:403 move second child to first child (temp 2X2 matrix of float) +0:403 'r046' (temp 2X2 matrix of float) +0:403 trunc (global 2X2 matrix of float) +0:403 'inF0' (in 2X2 matrix of float) +0:406 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) -0:409 Function Parameters: -0:409 'inF0' (in 3X3 matrix of float) -0:409 'inF1' (in 3X3 matrix of float) -0:409 'inF2' (in 3X3 matrix of float) +0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Parameters: +0:410 'inF0' (in 3X3 matrix of float) +0:410 'inF1' (in 3X3 matrix of float) +0:410 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:411 Sequence -0:411 move second child to first child (temp bool) -0:411 'r000' (temp bool) -0:411 all (global bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r001' (temp 3X3 matrix of float) -0:411 Absolute value (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 arc cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp bool) -0:411 'r003' (temp bool) -0:411 any (global bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r004' (temp 3X3 matrix of float) -0:411 arc sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r005' (temp 3X3 matrix of float) -0:411 arc tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r006' (temp 3X3 matrix of float) -0:411 arc tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r007' (temp 3X3 matrix of float) -0:411 Ceiling (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Test condition and select (temp void) -0:411 Condition -0:411 any (temp bool) -0:411 Compare Less Than (temp 3X3 matrix of bool) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 0.000000 -0:411 true case -0:411 Branch: Kill -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r008' (temp 3X3 matrix of float) -0:411 clamp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r009' (temp 3X3 matrix of float) -0:411 cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r010' (temp 3X3 matrix of float) -0:411 hyp. cosine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r011' (temp 3X3 matrix of float) -0:411 dPdx (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r012' (temp 3X3 matrix of float) -0:411 dPdxCoarse (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r013' (temp 3X3 matrix of float) -0:411 dPdxFine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r014' (temp 3X3 matrix of float) -0:411 dPdy (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r015' (temp 3X3 matrix of float) -0:411 dPdyCoarse (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r016' (temp 3X3 matrix of float) -0:411 dPdyFine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r017' (temp 3X3 matrix of float) -0:411 degrees (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp float) -0:411 'r018' (temp float) -0:411 determinant (global float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r019' (temp 3X3 matrix of float) -0:411 exp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'R020' (temp 3X3 matrix of float) -0:411 exp2 (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r021' (temp 3X3 matrix of float) -0:411 Floor (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r022' (temp 3X3 matrix of float) -0:411 mod (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r023' (temp 3X3 matrix of float) -0:411 Fraction (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r024' (temp 3X3 matrix of float) -0:411 frexp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r025' (temp 3X3 matrix of float) -0:411 fwidth (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r026' (temp 3X3 matrix of float) -0:411 ldexp (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r026a' (temp 3X3 matrix of float) -0:411 mix (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r027' (temp 3X3 matrix of float) -0:411 log (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r028' (temp 3X3 matrix of float) -0:411 matrix-scale (temp 3X3 matrix of float) -0:411 log2 (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.301030 -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r029' (temp 3X3 matrix of float) -0:411 log2 (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r030' (temp 3X3 matrix of float) -0:411 max (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r031' (temp 3X3 matrix of float) -0:411 min (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r032' (temp 3X3 matrix of float) -0:411 pow (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r033' (temp 3X3 matrix of float) -0:411 radians (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r034' (temp 3X3 matrix of float) -0:411 roundEven (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r035' (temp 3X3 matrix of float) -0:411 inverse sqrt (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r036' (temp 3X3 matrix of float) -0:411 clamp (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Constant: -0:411 0.000000 -0:411 Constant: -0:411 1.000000 -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r037' (temp 3X3 matrix of float) -0:411 Sign (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r038' (temp 3X3 matrix of float) -0:411 sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 sine (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 cosine (temp 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r039' (temp 3X3 matrix of float) -0:411 hyp. sine (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r049' (temp 3X3 matrix of float) -0:411 smoothstep (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 'inF2' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r041' (temp 3X3 matrix of float) -0:411 sqrt (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r042' (temp 3X3 matrix of float) -0:411 step (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 'inF1' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r043' (temp 3X3 matrix of float) -0:411 tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r044' (temp 3X3 matrix of float) -0:411 hyp. tangent (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 transpose (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:411 Sequence -0:411 move second child to first child (temp 3X3 matrix of float) -0:411 'r046' (temp 3X3 matrix of float) -0:411 trunc (global 3X3 matrix of float) -0:411 'inF0' (in 3X3 matrix of float) -0:414 Branch: Return with expression +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r000' (temp bool) +0:412 all (global bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r001' (temp 3X3 matrix of float) +0:412 Absolute value (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 arc cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp bool) +0:412 'r003' (temp bool) +0:412 any (global bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r004' (temp 3X3 matrix of float) +0:412 arc sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r005' (temp 3X3 matrix of float) +0:412 arc tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r006' (temp 3X3 matrix of float) +0:412 arc tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r007' (temp 3X3 matrix of float) +0:412 Ceiling (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Test condition and select (temp void) +0:412 Condition +0:412 any (temp bool) +0:412 Compare Less Than (temp 3X3 matrix of bool) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 0.000000 +0:412 true case +0:412 Branch: Kill +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r008' (temp 3X3 matrix of float) +0:412 clamp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r009' (temp 3X3 matrix of float) +0:412 cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r010' (temp 3X3 matrix of float) +0:412 hyp. cosine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r011' (temp 3X3 matrix of float) +0:412 dPdx (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r012' (temp 3X3 matrix of float) +0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r013' (temp 3X3 matrix of float) +0:412 dPdxFine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r014' (temp 3X3 matrix of float) +0:412 dPdy (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r015' (temp 3X3 matrix of float) +0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r016' (temp 3X3 matrix of float) +0:412 dPdyFine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r017' (temp 3X3 matrix of float) +0:412 degrees (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp float) +0:412 'r018' (temp float) +0:412 determinant (global float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r019' (temp 3X3 matrix of float) +0:412 exp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'R020' (temp 3X3 matrix of float) +0:412 exp2 (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r021' (temp 3X3 matrix of float) +0:412 Floor (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r022' (temp 3X3 matrix of float) +0:412 mod (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r023' (temp 3X3 matrix of float) +0:412 Fraction (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r024' (temp 3X3 matrix of float) +0:412 frexp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r025' (temp 3X3 matrix of float) +0:412 fwidth (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026' (temp 3X3 matrix of float) +0:412 ldexp (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r026a' (temp 3X3 matrix of float) +0:412 mix (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r027' (temp 3X3 matrix of float) +0:412 log (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r028' (temp 3X3 matrix of float) +0:412 matrix-scale (temp 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.301030 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r029' (temp 3X3 matrix of float) +0:412 log2 (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r030' (temp 3X3 matrix of float) +0:412 max (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r031' (temp 3X3 matrix of float) +0:412 min (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r032' (temp 3X3 matrix of float) +0:412 pow (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r033' (temp 3X3 matrix of float) +0:412 radians (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r034' (temp 3X3 matrix of float) +0:412 roundEven (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r035' (temp 3X3 matrix of float) +0:412 inverse sqrt (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r036' (temp 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Constant: +0:412 0.000000 +0:412 Constant: +0:412 1.000000 +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r037' (temp 3X3 matrix of float) +0:412 Sign (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r038' (temp 3X3 matrix of float) +0:412 sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r039' (temp 3X3 matrix of float) +0:412 hyp. sine (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r049' (temp 3X3 matrix of float) +0:412 smoothstep (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 'inF2' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r041' (temp 3X3 matrix of float) +0:412 sqrt (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r042' (temp 3X3 matrix of float) +0:412 step (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 'inF1' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r043' (temp 3X3 matrix of float) +0:412 tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r044' (temp 3X3 matrix of float) +0:412 hyp. tangent (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 transpose (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:412 Sequence +0:412 move second child to first child (temp 3X3 matrix of float) +0:412 'r046' (temp 3X3 matrix of float) +0:412 trunc (global 3X3 matrix of float) +0:412 'inF0' (in 3X3 matrix of float) +0:415 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -4906,301 +4922,301 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) -0:418 Function Parameters: -0:418 'inF0' (in 4X4 matrix of float) -0:418 'inF1' (in 4X4 matrix of float) -0:418 'inF2' (in 4X4 matrix of float) +0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Parameters: +0:419 'inF0' (in 4X4 matrix of float) +0:419 'inF1' (in 4X4 matrix of float) +0:419 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:420 Sequence -0:420 move second child to first child (temp bool) -0:420 'r000' (temp bool) -0:420 all (global bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r001' (temp 4X4 matrix of float) -0:420 Absolute value (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 arc cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp bool) -0:420 'r003' (temp bool) -0:420 any (global bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r004' (temp 4X4 matrix of float) -0:420 arc sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r005' (temp 4X4 matrix of float) -0:420 arc tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r006' (temp 4X4 matrix of float) -0:420 arc tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r007' (temp 4X4 matrix of float) -0:420 Ceiling (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Test condition and select (temp void) -0:420 Condition -0:420 any (temp bool) -0:420 Compare Less Than (temp 4X4 matrix of bool) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 0.000000 -0:420 true case -0:420 Branch: Kill -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r008' (temp 4X4 matrix of float) -0:420 clamp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r009' (temp 4X4 matrix of float) -0:420 cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r010' (temp 4X4 matrix of float) -0:420 hyp. cosine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r011' (temp 4X4 matrix of float) -0:420 dPdx (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r012' (temp 4X4 matrix of float) -0:420 dPdxCoarse (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r013' (temp 4X4 matrix of float) -0:420 dPdxFine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r014' (temp 4X4 matrix of float) -0:420 dPdy (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r015' (temp 4X4 matrix of float) -0:420 dPdyCoarse (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r016' (temp 4X4 matrix of float) -0:420 dPdyFine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r017' (temp 4X4 matrix of float) -0:420 degrees (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp float) -0:420 'r018' (temp float) -0:420 determinant (global float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r019' (temp 4X4 matrix of float) -0:420 exp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'R020' (temp 4X4 matrix of float) -0:420 exp2 (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r021' (temp 4X4 matrix of float) -0:420 Floor (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r022' (temp 4X4 matrix of float) -0:420 mod (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r023' (temp 4X4 matrix of float) -0:420 Fraction (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r024' (temp 4X4 matrix of float) -0:420 frexp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r025' (temp 4X4 matrix of float) -0:420 fwidth (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r026' (temp 4X4 matrix of float) -0:420 ldexp (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r026a' (temp 4X4 matrix of float) -0:420 mix (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r027' (temp 4X4 matrix of float) -0:420 log (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r028' (temp 4X4 matrix of float) -0:420 matrix-scale (temp 4X4 matrix of float) -0:420 log2 (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.301030 -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r029' (temp 4X4 matrix of float) -0:420 log2 (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r030' (temp 4X4 matrix of float) -0:420 max (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r031' (temp 4X4 matrix of float) -0:420 min (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r032' (temp 4X4 matrix of float) -0:420 pow (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r033' (temp 4X4 matrix of float) -0:420 radians (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r034' (temp 4X4 matrix of float) -0:420 roundEven (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r035' (temp 4X4 matrix of float) -0:420 inverse sqrt (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r036' (temp 4X4 matrix of float) -0:420 clamp (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Constant: -0:420 0.000000 -0:420 Constant: -0:420 1.000000 -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r037' (temp 4X4 matrix of float) -0:420 Sign (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r038' (temp 4X4 matrix of float) -0:420 sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 sine (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 cosine (temp 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r039' (temp 4X4 matrix of float) -0:420 hyp. sine (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r049' (temp 4X4 matrix of float) -0:420 smoothstep (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 'inF2' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r041' (temp 4X4 matrix of float) -0:420 sqrt (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r042' (temp 4X4 matrix of float) -0:420 step (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 'inF1' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r043' (temp 4X4 matrix of float) -0:420 tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r044' (temp 4X4 matrix of float) -0:420 hyp. tangent (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 transpose (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:420 Sequence -0:420 move second child to first child (temp 4X4 matrix of float) -0:420 'r046' (temp 4X4 matrix of float) -0:420 trunc (global 4X4 matrix of float) -0:420 'inF0' (in 4X4 matrix of float) -0:423 Branch: Return with expression +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r000' (temp bool) +0:421 all (global bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r001' (temp 4X4 matrix of float) +0:421 Absolute value (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 arc cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp bool) +0:421 'r003' (temp bool) +0:421 any (global bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r004' (temp 4X4 matrix of float) +0:421 arc sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r005' (temp 4X4 matrix of float) +0:421 arc tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r006' (temp 4X4 matrix of float) +0:421 arc tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r007' (temp 4X4 matrix of float) +0:421 Ceiling (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Test condition and select (temp void) +0:421 Condition +0:421 any (temp bool) +0:421 Compare Less Than (temp 4X4 matrix of bool) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 0.000000 +0:421 true case +0:421 Branch: Kill +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r008' (temp 4X4 matrix of float) +0:421 clamp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r009' (temp 4X4 matrix of float) +0:421 cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r010' (temp 4X4 matrix of float) +0:421 hyp. cosine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r011' (temp 4X4 matrix of float) +0:421 dPdx (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r012' (temp 4X4 matrix of float) +0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r013' (temp 4X4 matrix of float) +0:421 dPdxFine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r014' (temp 4X4 matrix of float) +0:421 dPdy (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r015' (temp 4X4 matrix of float) +0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r016' (temp 4X4 matrix of float) +0:421 dPdyFine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r017' (temp 4X4 matrix of float) +0:421 degrees (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp float) +0:421 'r018' (temp float) +0:421 determinant (global float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r019' (temp 4X4 matrix of float) +0:421 exp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'R020' (temp 4X4 matrix of float) +0:421 exp2 (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r021' (temp 4X4 matrix of float) +0:421 Floor (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r022' (temp 4X4 matrix of float) +0:421 mod (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r023' (temp 4X4 matrix of float) +0:421 Fraction (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r024' (temp 4X4 matrix of float) +0:421 frexp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r025' (temp 4X4 matrix of float) +0:421 fwidth (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026' (temp 4X4 matrix of float) +0:421 ldexp (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r026a' (temp 4X4 matrix of float) +0:421 mix (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r027' (temp 4X4 matrix of float) +0:421 log (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r028' (temp 4X4 matrix of float) +0:421 matrix-scale (temp 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.301030 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r029' (temp 4X4 matrix of float) +0:421 log2 (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r030' (temp 4X4 matrix of float) +0:421 max (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r031' (temp 4X4 matrix of float) +0:421 min (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r032' (temp 4X4 matrix of float) +0:421 pow (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r033' (temp 4X4 matrix of float) +0:421 radians (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r034' (temp 4X4 matrix of float) +0:421 roundEven (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r035' (temp 4X4 matrix of float) +0:421 inverse sqrt (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r036' (temp 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Constant: +0:421 0.000000 +0:421 Constant: +0:421 1.000000 +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r037' (temp 4X4 matrix of float) +0:421 Sign (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r038' (temp 4X4 matrix of float) +0:421 sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r039' (temp 4X4 matrix of float) +0:421 hyp. sine (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r049' (temp 4X4 matrix of float) +0:421 smoothstep (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 'inF2' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r041' (temp 4X4 matrix of float) +0:421 sqrt (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r042' (temp 4X4 matrix of float) +0:421 step (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 'inF1' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r043' (temp 4X4 matrix of float) +0:421 tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r044' (temp 4X4 matrix of float) +0:421 hyp. tangent (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 transpose (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:421 Sequence +0:421 move second child to first child (temp 4X4 matrix of float) +0:421 'r046' (temp 4X4 matrix of float) +0:421 trunc (global 4X4 matrix of float) +0:421 'inF0' (in 4X4 matrix of float) +0:424 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -5218,309 +5234,309 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) -0:441 Function Parameters: -0:441 'inF0' (in float) -0:441 'inF1' (in float) -0:441 'inFV0' (in 2-component vector of float) -0:441 'inFV1' (in 2-component vector of float) -0:441 'inFM0' (in 2X2 matrix of float) -0:441 'inFM1' (in 2X2 matrix of float) +0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Parameters: +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:442 Sequence -0:442 move second child to first child (temp float) -0:442 'r0' (temp float) -0:442 component-wise multiply (temp float) -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r1' (temp 2-component vector of float) -0:442 vector-scale (temp 2-component vector of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inF0' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r2' (temp 2-component vector of float) -0:442 vector-scale (temp 2-component vector of float) -0:442 'inF0' (in float) -0:442 'inFV0' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp float) -0:442 'r3' (temp float) -0:442 dot-product (global float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFV1' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r4' (temp 2-component vector of float) -0:442 matrix-times-vector (temp 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 Sequence -0:442 move second child to first child (temp 2-component vector of float) -0:442 'r5' (temp 2-component vector of float) -0:442 vector-times-matrix (temp 2-component vector of float) -0:442 'inFV0' (in 2-component vector of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r6' (temp 2X2 matrix of float) -0:442 matrix-scale (temp 2X2 matrix of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inF0' (in float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r7' (temp 2X2 matrix of float) -0:442 matrix-scale (temp 2X2 matrix of float) -0:442 'inF0' (in float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 Sequence -0:442 move second child to first child (temp 2X2 matrix of float) -0:442 'r8' (temp 2X2 matrix of float) -0:442 matrix-multiply (temp 2X2 matrix of float) -0:442 'inFM0' (in 2X2 matrix of float) -0:442 'inFM1' (in 2X2 matrix of float) -0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) -0:448 Function Parameters: -0:448 'inF0' (in float) -0:448 'inF1' (in float) -0:448 'inFV0' (in 3-component vector of float) -0:448 'inFV1' (in 3-component vector of float) -0:448 'inFM0' (in 3X3 matrix of float) -0:448 'inFM1' (in 3X3 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF0' (in float) +0:443 'inF1' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r1' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r2' (temp 2-component vector of float) +0:443 vector-scale (temp 2-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (global float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFV1' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r4' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 vector-times-matrix (temp 2-component vector of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r6' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r7' (temp 2X2 matrix of float) +0:443 matrix-scale (temp 2X2 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 Sequence +0:443 move second child to first child (temp 2X2 matrix of float) +0:443 'r8' (temp 2X2 matrix of float) +0:443 matrix-multiply (temp 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFM1' (in 2X2 matrix of float) +0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Parameters: +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:449 Sequence -0:449 move second child to first child (temp float) -0:449 'r0' (temp float) -0:449 component-wise multiply (temp float) -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r1' (temp 3-component vector of float) -0:449 vector-scale (temp 3-component vector of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inF0' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r2' (temp 3-component vector of float) -0:449 vector-scale (temp 3-component vector of float) -0:449 'inF0' (in float) -0:449 'inFV0' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp float) -0:449 'r3' (temp float) -0:449 dot-product (global float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFV1' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r4' (temp 3-component vector of float) -0:449 matrix-times-vector (temp 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 Sequence -0:449 move second child to first child (temp 3-component vector of float) -0:449 'r5' (temp 3-component vector of float) -0:449 vector-times-matrix (temp 3-component vector of float) -0:449 'inFV0' (in 3-component vector of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r6' (temp 3X3 matrix of float) -0:449 matrix-scale (temp 3X3 matrix of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inF0' (in float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r7' (temp 3X3 matrix of float) -0:449 matrix-scale (temp 3X3 matrix of float) -0:449 'inF0' (in float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 Sequence -0:449 move second child to first child (temp 3X3 matrix of float) -0:449 'r8' (temp 3X3 matrix of float) -0:449 matrix-multiply (temp 3X3 matrix of float) -0:449 'inFM0' (in 3X3 matrix of float) -0:449 'inFM1' (in 3X3 matrix of float) -0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) -0:455 Function Parameters: -0:455 'inF0' (in float) -0:455 'inF1' (in float) -0:455 'inFV0' (in 4-component vector of float) -0:455 'inFV1' (in 4-component vector of float) -0:455 'inFM0' (in 4X4 matrix of float) -0:455 'inFM1' (in 4X4 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF0' (in float) +0:450 'inF1' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r1' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r2' (temp 3-component vector of float) +0:450 vector-scale (temp 3-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (global float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFV1' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r4' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 vector-times-matrix (temp 3-component vector of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r6' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r7' (temp 3X3 matrix of float) +0:450 matrix-scale (temp 3X3 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 Sequence +0:450 move second child to first child (temp 3X3 matrix of float) +0:450 'r8' (temp 3X3 matrix of float) +0:450 matrix-multiply (temp 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFM1' (in 3X3 matrix of float) +0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Parameters: +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:456 Sequence -0:456 move second child to first child (temp float) -0:456 'r0' (temp float) -0:456 component-wise multiply (temp float) -0:456 'inF0' (in float) -0:456 'inF1' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r1' (temp 4-component vector of float) -0:456 vector-scale (temp 4-component vector of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inF0' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r2' (temp 4-component vector of float) -0:456 vector-scale (temp 4-component vector of float) -0:456 'inF0' (in float) -0:456 'inFV0' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp float) -0:456 'r3' (temp float) -0:456 dot-product (global float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFV1' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r4' (temp 4-component vector of float) -0:456 matrix-times-vector (temp 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 Sequence -0:456 move second child to first child (temp 4-component vector of float) -0:456 'r5' (temp 4-component vector of float) -0:456 vector-times-matrix (temp 4-component vector of float) -0:456 'inFV0' (in 4-component vector of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r6' (temp 4X4 matrix of float) -0:456 matrix-scale (temp 4X4 matrix of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inF0' (in float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r7' (temp 4X4 matrix of float) -0:456 matrix-scale (temp 4X4 matrix of float) -0:456 'inF0' (in float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 Sequence -0:456 move second child to first child (temp 4X4 matrix of float) -0:456 'r8' (temp 4X4 matrix of float) -0:456 matrix-multiply (temp 4X4 matrix of float) -0:456 'inFM0' (in 4X4 matrix of float) -0:456 'inFM1' (in 4X4 matrix of float) -0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) -0:465 Function Parameters: -0:465 'inF0' (in float) -0:465 'inF1' (in float) -0:465 'inFV2' (in 2-component vector of float) -0:465 'inFV3' (in 3-component vector of float) -0:465 'inFM2x3' (in 3X2 matrix of float) -0:465 'inFM3x2' (in 2X3 matrix of float) -0:465 'inFM3x3' (in 3X3 matrix of float) -0:465 'inFM3x4' (in 4X3 matrix of float) -0:465 'inFM2x4' (in 4X2 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r0' (temp float) +0:457 component-wise multiply (temp float) +0:457 'inF0' (in float) +0:457 'inF1' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r1' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r2' (temp 4-component vector of float) +0:457 vector-scale (temp 4-component vector of float) +0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp float) +0:457 'r3' (temp float) +0:457 dot-product (global float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFV1' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r4' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 vector-times-matrix (temp 4-component vector of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r6' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r7' (temp 4X4 matrix of float) +0:457 matrix-scale (temp 4X4 matrix of float) +0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 Sequence +0:457 move second child to first child (temp 4X4 matrix of float) +0:457 'r8' (temp 4X4 matrix of float) +0:457 matrix-multiply (temp 4X4 matrix of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFM1' (in 4X4 matrix of float) +0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:466 Function Parameters: +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:466 'inFV2' (in 2-component vector of float) +0:466 'inFV3' (in 3-component vector of float) +0:466 'inFM2x3' (in 3X2 matrix of float) +0:466 'inFM3x2' (in 2X3 matrix of float) +0:466 'inFM3x3' (in 3X3 matrix of float) +0:466 'inFM3x4' (in 4X3 matrix of float) +0:466 'inFM2x4' (in 4X2 matrix of float) 0:? Sequence -0:466 Sequence -0:466 move second child to first child (temp float) -0:466 'r00' (temp float) -0:466 component-wise multiply (temp float) -0:466 'inF0' (in float) -0:466 'inF1' (in float) 0:467 Sequence -0:467 move second child to first child (temp 2-component vector of float) -0:467 'r01' (temp 2-component vector of float) -0:467 vector-scale (temp 2-component vector of float) -0:467 'inFV2' (in 2-component vector of float) +0:467 move second child to first child (temp float) +0:467 'r00' (temp float) +0:467 component-wise multiply (temp float) 0:467 'inF0' (in float) +0:467 'inF1' (in float) 0:468 Sequence -0:468 move second child to first child (temp 3-component vector of float) -0:468 'r02' (temp 3-component vector of float) -0:468 vector-scale (temp 3-component vector of float) -0:468 'inFV3' (in 3-component vector of float) +0:468 move second child to first child (temp 2-component vector of float) +0:468 'r01' (temp 2-component vector of float) +0:468 vector-scale (temp 2-component vector of float) +0:468 'inFV2' (in 2-component vector of float) 0:468 'inF0' (in float) 0:469 Sequence -0:469 move second child to first child (temp 2-component vector of float) -0:469 'r03' (temp 2-component vector of float) -0:469 vector-scale (temp 2-component vector of float) +0:469 move second child to first child (temp 3-component vector of float) +0:469 'r02' (temp 3-component vector of float) +0:469 vector-scale (temp 3-component vector of float) +0:469 'inFV3' (in 3-component vector of float) 0:469 'inF0' (in float) -0:469 'inFV2' (in 2-component vector of float) 0:470 Sequence -0:470 move second child to first child (temp 3-component vector of float) -0:470 'r04' (temp 3-component vector of float) -0:470 vector-scale (temp 3-component vector of float) +0:470 move second child to first child (temp 2-component vector of float) +0:470 'r03' (temp 2-component vector of float) +0:470 vector-scale (temp 2-component vector of float) 0:470 'inF0' (in float) -0:470 'inFV3' (in 3-component vector of float) +0:470 'inFV2' (in 2-component vector of float) 0:471 Sequence -0:471 move second child to first child (temp float) -0:471 'r05' (temp float) -0:471 dot-product (global float) -0:471 'inFV2' (in 2-component vector of float) -0:471 'inFV2' (in 2-component vector of float) +0:471 move second child to first child (temp 3-component vector of float) +0:471 'r04' (temp 3-component vector of float) +0:471 vector-scale (temp 3-component vector of float) +0:471 'inF0' (in float) +0:471 'inFV3' (in 3-component vector of float) 0:472 Sequence 0:472 move second child to first child (temp float) -0:472 'r06' (temp float) +0:472 'r05' (temp float) 0:472 dot-product (global float) -0:472 'inFV3' (in 3-component vector of float) -0:472 'inFV3' (in 3-component vector of float) +0:472 'inFV2' (in 2-component vector of float) +0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence -0:473 move second child to first child (temp 3-component vector of float) -0:473 'r07' (temp 3-component vector of float) -0:473 vector-times-matrix (temp 3-component vector of float) -0:473 'inFV2' (in 2-component vector of float) -0:473 'inFM2x3' (in 3X2 matrix of float) +0:473 move second child to first child (temp float) +0:473 'r06' (temp float) +0:473 dot-product (global float) +0:473 'inFV3' (in 3-component vector of float) +0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence -0:474 move second child to first child (temp 2-component vector of float) -0:474 'r08' (temp 2-component vector of float) -0:474 vector-times-matrix (temp 2-component vector of float) -0:474 'inFV3' (in 3-component vector of float) -0:474 'inFM3x2' (in 2X3 matrix of float) +0:474 move second child to first child (temp 3-component vector of float) +0:474 'r07' (temp 3-component vector of float) +0:474 vector-times-matrix (temp 3-component vector of float) +0:474 'inFV2' (in 2-component vector of float) +0:474 'inFM2x3' (in 3X2 matrix of float) 0:475 Sequence 0:475 move second child to first child (temp 2-component vector of float) -0:475 'r09' (temp 2-component vector of float) -0:475 matrix-times-vector (temp 2-component vector of float) -0:475 'inFM2x3' (in 3X2 matrix of float) +0:475 'r08' (temp 2-component vector of float) +0:475 vector-times-matrix (temp 2-component vector of float) 0:475 'inFV3' (in 3-component vector of float) +0:475 'inFM3x2' (in 2X3 matrix of float) 0:476 Sequence -0:476 move second child to first child (temp 3-component vector of float) -0:476 'r10' (temp 3-component vector of float) -0:476 matrix-times-vector (temp 3-component vector of float) -0:476 'inFM3x2' (in 2X3 matrix of float) -0:476 'inFV2' (in 2-component vector of float) +0:476 move second child to first child (temp 2-component vector of float) +0:476 'r09' (temp 2-component vector of float) +0:476 matrix-times-vector (temp 2-component vector of float) +0:476 'inFM2x3' (in 3X2 matrix of float) +0:476 'inFV3' (in 3-component vector of float) 0:477 Sequence -0:477 move second child to first child (temp 3X2 matrix of float) -0:477 'r11' (temp 3X2 matrix of float) -0:477 matrix-scale (temp 3X2 matrix of float) -0:477 'inFM2x3' (in 3X2 matrix of float) -0:477 'inF0' (in float) +0:477 move second child to first child (temp 3-component vector of float) +0:477 'r10' (temp 3-component vector of float) +0:477 matrix-times-vector (temp 3-component vector of float) +0:477 'inFM3x2' (in 2X3 matrix of float) +0:477 'inFV2' (in 2-component vector of float) 0:478 Sequence -0:478 move second child to first child (temp 2X3 matrix of float) -0:478 'r12' (temp 2X3 matrix of float) -0:478 matrix-scale (temp 2X3 matrix of float) -0:478 'inFM3x2' (in 2X3 matrix of float) +0:478 move second child to first child (temp 3X2 matrix of float) +0:478 'r11' (temp 3X2 matrix of float) +0:478 matrix-scale (temp 3X2 matrix of float) +0:478 'inFM2x3' (in 3X2 matrix of float) 0:478 'inF0' (in float) 0:479 Sequence -0:479 move second child to first child (temp 2X2 matrix of float) -0:479 'r13' (temp 2X2 matrix of float) -0:479 matrix-multiply (temp 2X2 matrix of float) -0:479 'inFM2x3' (in 3X2 matrix of float) +0:479 move second child to first child (temp 2X3 matrix of float) +0:479 'r12' (temp 2X3 matrix of float) +0:479 matrix-scale (temp 2X3 matrix of float) 0:479 'inFM3x2' (in 2X3 matrix of float) +0:479 'inF0' (in float) 0:480 Sequence -0:480 move second child to first child (temp 3X2 matrix of float) -0:480 'r14' (temp 3X2 matrix of float) -0:480 matrix-multiply (temp 3X2 matrix of float) +0:480 move second child to first child (temp 2X2 matrix of float) +0:480 'r13' (temp 2X2 matrix of float) +0:480 matrix-multiply (temp 2X2 matrix of float) 0:480 'inFM2x3' (in 3X2 matrix of float) -0:480 'inFM3x3' (in 3X3 matrix of float) +0:480 'inFM3x2' (in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child (temp 4X2 matrix of float) -0:481 'r15' (temp 4X2 matrix of float) -0:481 matrix-multiply (temp 4X2 matrix of float) +0:481 move second child to first child (temp 3X2 matrix of float) +0:481 'r14' (temp 3X2 matrix of float) +0:481 matrix-multiply (temp 3X2 matrix of float) 0:481 'inFM2x3' (in 3X2 matrix of float) -0:481 'inFM3x4' (in 4X3 matrix of float) +0:481 'inFM3x3' (in 3X3 matrix of float) 0:482 Sequence -0:482 move second child to first child (temp 4X3 matrix of float) -0:482 'r16' (temp 4X3 matrix of float) -0:482 matrix-multiply (temp 4X3 matrix of float) -0:482 'inFM3x2' (in 2X3 matrix of float) -0:482 'inFM2x4' (in 4X2 matrix of float) +0:482 move second child to first child (temp 4X2 matrix of float) +0:482 'r15' (temp 4X2 matrix of float) +0:482 matrix-multiply (temp 4X2 matrix of float) +0:482 'inFM2x3' (in 3X2 matrix of float) +0:482 'inFM3x4' (in 4X3 matrix of float) +0:483 Sequence +0:483 move second child to first child (temp 4X3 matrix of float) +0:483 'r16' (temp 4X3 matrix of float) +0:483 matrix-multiply (temp 4X3 matrix of float) +0:483 'inFM3x2' (in 2X3 matrix of float) +0:483 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -5537,13 +5553,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1806 +// Id's are bound by 1812 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 804 831 839 848 + EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -5773,297 +5789,298 @@ gl_FragCoord origin is upper left Name 695 "r041" Name 698 "r042" Name 702 "r039a" - Name 707 "r043" - Name 710 "r044" - Name 713 "r045" - Name 717 "r046" - Name 720 "r047" - Name 724 "r048" - Name 728 "r049" - Name 731 "r050" - Name 735 "r051" - Name 738 "r052" - Name 742 "r053" - Name 746 "r054" - Name 750 "r055" - Name 753 "r056" - Name 756 "r057" - Name 759 "r058" - Name 764 "r059" - Name 767 "r060" - Name 774 "r061" - Name 777 "r062" - Name 782 "r063" - Name 785 "r064" - Name 789 "r065" - Name 792 "r066" - Name 795 "r067" - Name 802 "r000" - Name 804 "inF0" - Name 807 "r001" - Name 810 "r002" - Name 813 "r003" - Name 816 "r004" - Name 821 "r005" - Name 826 "r006" - Name 829 "r007" - Name 831 "inU0" - Name 834 "r009" - Name 837 "r010" - Name 839 "inF1" - Name 842 "r011" - Name 845 "r012" - Name 848 "inF2" - Name 859 "r013" - Name 862 "r014" - Name 865 "r015" - Name 868 "r016" - Name 871 "r017" - Name 874 "r018" - Name 877 "r019" - Name 880 "r020" - Name 883 "r021" - Name 886 "r022" - Name 889 "r023" - Name 893 "r024" - Name 897 "r025" - Name 909 "r029" - Name 912 "r030" - Name 915 "r031" - Name 920 "r032" - Name 925 "r033" - Name 927 "r034" - Name 930 "r036" - Name 934 "r037" - Name 937 "r038" - Name 939 "ResType" - Name 943 "r039" - Name 947 "r040" - Name 950 "r041" - Name 953 "r042" - Name 957 "r039a" - Name 962 "r043" - Name 965 "r044" - Name 968 "r045" - Name 972 "r046" - Name 975 "r047" - Name 979 "r048" - Name 983 "r049" - Name 986 "r050" - Name 990 "r051" - Name 993 "r052" - Name 997 "r053" - Name 1001 "r054" - Name 1005 "r055" - Name 1008 "r056" - Name 1011 "r057" - Name 1014 "r058" - Name 1019 "r059" - Name 1022 "r060" - Name 1029 "r061" - Name 1032 "r062" - Name 1037 "r063" - Name 1040 "r064" - Name 1044 "r065" - Name 1047 "r066" - Name 1050 "r067" - Name 1056 "r000" - Name 1059 "r001" - Name 1064 "r003" - Name 1067 "r004" - Name 1070 "r005" - Name 1073 "r006" - Name 1077 "r007" - Name 1088 "r008" - Name 1093 "r009" - Name 1096 "r010" - Name 1099 "r011" - Name 1102 "r012" - Name 1105 "r013" - Name 1108 "r014" - Name 1111 "r015" - Name 1114 "r016" - Name 1117 "r017" - Name 1120 "r018" - Name 1123 "r019" - Name 1126 "R020" - Name 1129 "r021" - Name 1132 "r022" - Name 1142 "r023" - Name 1145 "r024" - Name 1147 "ResType" - Name 1151 "r025" - Name 1154 "r026" - Name 1158 "r026a" - Name 1163 "r027" - Name 1166 "r028" - Name 1170 "r029" - Name 1173 "r030" - Name 1177 "r031" - Name 1181 "r032" - Name 1185 "r033" - Name 1188 "r034" - Name 1191 "r035" - Name 1194 "r036" - Name 1199 "r037" - Name 1202 "r038" - Name 1209 "r039" - Name 1212 "r049" - Name 1217 "r041" - Name 1220 "r042" - Name 1224 "r043" - Name 1227 "r044" - Name 1232 "r046" - Name 1239 "r000" - Name 1242 "r001" - Name 1247 "r003" - Name 1250 "r004" - Name 1253 "r005" - Name 1256 "r006" - Name 1260 "r007" - Name 1271 "r008" - Name 1276 "r009" - Name 1279 "r010" - Name 1282 "r011" - Name 1285 "r012" - Name 1288 "r013" - Name 1291 "r014" - Name 1294 "r015" - Name 1297 "r016" - Name 1300 "r017" - Name 1303 "r018" - Name 1306 "r019" - Name 1309 "R020" - Name 1312 "r021" - Name 1315 "r022" - Name 1328 "r023" - Name 1331 "r024" - Name 1333 "ResType" - Name 1337 "r025" - Name 1340 "r026" - Name 1344 "r026a" - Name 1349 "r027" - Name 1352 "r028" - Name 1356 "r029" - Name 1359 "r030" - Name 1363 "r031" - Name 1367 "r032" - Name 1371 "r033" - Name 1374 "r034" - Name 1377 "r035" - Name 1380 "r036" - Name 1385 "r037" - Name 1388 "r038" - Name 1395 "r039" - Name 1398 "r049" - Name 1403 "r041" - Name 1406 "r042" - Name 1410 "r043" - Name 1413 "r044" - Name 1418 "r046" - Name 1425 "r000" - Name 1428 "r001" - Name 1433 "r003" - Name 1436 "r004" - Name 1439 "r005" - Name 1442 "r006" - Name 1446 "r007" - Name 1457 "r008" - Name 1462 "r009" - Name 1465 "r010" - Name 1468 "r011" - Name 1471 "r012" - Name 1474 "r013" - Name 1477 "r014" - Name 1480 "r015" - Name 1483 "r016" - Name 1486 "r017" - Name 1489 "r018" - Name 1492 "r019" - Name 1495 "R020" - Name 1498 "r021" - Name 1501 "r022" - Name 1517 "r023" - Name 1520 "r024" - Name 1522 "ResType" - Name 1526 "r025" - Name 1529 "r026" - Name 1533 "r026a" - Name 1538 "r027" - Name 1541 "r028" - Name 1545 "r029" - Name 1548 "r030" - Name 1552 "r031" - Name 1556 "r032" - Name 1560 "r033" - Name 1563 "r034" - Name 1566 "r035" - Name 1569 "r036" - Name 1574 "r037" - Name 1577 "r038" - Name 1584 "r039" - Name 1587 "r049" - Name 1592 "r041" - Name 1595 "r042" - Name 1599 "r043" - Name 1602 "r044" - Name 1607 "r046" - Name 1614 "r0" - Name 1618 "r1" - Name 1622 "r2" - Name 1626 "r3" - Name 1630 "r4" - Name 1634 "r5" - Name 1638 "r6" - Name 1642 "r7" - Name 1646 "r8" - Name 1650 "r0" - Name 1654 "r1" - Name 1658 "r2" - Name 1662 "r3" - Name 1666 "r4" - Name 1670 "r5" - Name 1674 "r6" - Name 1678 "r7" - Name 1682 "r8" - Name 1686 "r0" - Name 1690 "r1" - Name 1694 "r2" - Name 1698 "r3" - Name 1702 "r4" - Name 1706 "r5" - Name 1710 "r6" - Name 1714 "r7" - Name 1718 "r8" - Name 1722 "r00" - Name 1726 "r01" - Name 1730 "r02" - Name 1734 "r03" - Name 1738 "r04" - Name 1742 "r05" - Name 1746 "r06" - Name 1750 "r07" - Name 1754 "r08" - Name 1758 "r09" - Name 1762 "r10" - Name 1766 "r11" - Name 1770 "r12" - Name 1774 "r13" - Name 1778 "r14" - Name 1782 "r15" - Name 1786 "r16" - Name 1791 "gs_ua" - Name 1792 "gs_ub" - Name 1793 "gs_uc" - Name 1795 "gs_ua2" - Name 1796 "gs_ub2" - Name 1797 "gs_uc2" - Name 1799 "gs_ua3" - Name 1800 "gs_ub3" - Name 1801 "gs_uc3" - Name 1803 "gs_ua4" - Name 1804 "gs_ub4" - Name 1805 "gs_uc4" + Name 707 "r039b" + Name 713 "r043" + Name 716 "r044" + Name 719 "r045" + Name 723 "r046" + Name 726 "r047" + Name 730 "r048" + Name 734 "r049" + Name 737 "r050" + Name 741 "r051" + Name 744 "r052" + Name 748 "r053" + Name 752 "r054" + Name 756 "r055" + Name 759 "r056" + Name 762 "r057" + Name 765 "r058" + Name 770 "r059" + Name 773 "r060" + Name 780 "r061" + Name 783 "r062" + Name 788 "r063" + Name 791 "r064" + Name 795 "r065" + Name 798 "r066" + Name 801 "r067" + Name 808 "r000" + Name 810 "inF0" + Name 813 "r001" + Name 816 "r002" + Name 819 "r003" + Name 822 "r004" + Name 827 "r005" + Name 832 "r006" + Name 835 "r007" + Name 837 "inU0" + Name 840 "r009" + Name 843 "r010" + Name 845 "inF1" + Name 848 "r011" + Name 851 "r012" + Name 854 "inF2" + Name 865 "r013" + Name 868 "r014" + Name 871 "r015" + Name 874 "r016" + Name 877 "r017" + Name 880 "r018" + Name 883 "r019" + Name 886 "r020" + Name 889 "r021" + Name 892 "r022" + Name 895 "r023" + Name 899 "r024" + Name 903 "r025" + Name 915 "r029" + Name 918 "r030" + Name 921 "r031" + Name 926 "r032" + Name 931 "r033" + Name 933 "r034" + Name 936 "r036" + Name 940 "r037" + Name 943 "r038" + Name 945 "ResType" + Name 949 "r039" + Name 953 "r040" + Name 956 "r041" + Name 959 "r042" + Name 963 "r039a" + Name 968 "r043" + Name 971 "r044" + Name 974 "r045" + Name 978 "r046" + Name 981 "r047" + Name 985 "r048" + Name 989 "r049" + Name 992 "r050" + Name 996 "r051" + Name 999 "r052" + Name 1003 "r053" + Name 1007 "r054" + Name 1011 "r055" + Name 1014 "r056" + Name 1017 "r057" + Name 1020 "r058" + Name 1025 "r059" + Name 1028 "r060" + Name 1035 "r061" + Name 1038 "r062" + Name 1043 "r063" + Name 1046 "r064" + Name 1050 "r065" + Name 1053 "r066" + Name 1056 "r067" + Name 1062 "r000" + Name 1065 "r001" + Name 1070 "r003" + Name 1073 "r004" + Name 1076 "r005" + Name 1079 "r006" + Name 1083 "r007" + Name 1094 "r008" + Name 1099 "r009" + Name 1102 "r010" + Name 1105 "r011" + Name 1108 "r012" + Name 1111 "r013" + Name 1114 "r014" + Name 1117 "r015" + Name 1120 "r016" + Name 1123 "r017" + Name 1126 "r018" + Name 1129 "r019" + Name 1132 "R020" + Name 1135 "r021" + Name 1138 "r022" + Name 1148 "r023" + Name 1151 "r024" + Name 1153 "ResType" + Name 1157 "r025" + Name 1160 "r026" + Name 1164 "r026a" + Name 1169 "r027" + Name 1172 "r028" + Name 1176 "r029" + Name 1179 "r030" + Name 1183 "r031" + Name 1187 "r032" + Name 1191 "r033" + Name 1194 "r034" + Name 1197 "r035" + Name 1200 "r036" + Name 1205 "r037" + Name 1208 "r038" + Name 1215 "r039" + Name 1218 "r049" + Name 1223 "r041" + Name 1226 "r042" + Name 1230 "r043" + Name 1233 "r044" + Name 1238 "r046" + Name 1245 "r000" + Name 1248 "r001" + Name 1253 "r003" + Name 1256 "r004" + Name 1259 "r005" + Name 1262 "r006" + Name 1266 "r007" + Name 1277 "r008" + Name 1282 "r009" + Name 1285 "r010" + Name 1288 "r011" + Name 1291 "r012" + Name 1294 "r013" + Name 1297 "r014" + Name 1300 "r015" + Name 1303 "r016" + Name 1306 "r017" + Name 1309 "r018" + Name 1312 "r019" + Name 1315 "R020" + Name 1318 "r021" + Name 1321 "r022" + Name 1334 "r023" + Name 1337 "r024" + Name 1339 "ResType" + Name 1343 "r025" + Name 1346 "r026" + Name 1350 "r026a" + Name 1355 "r027" + Name 1358 "r028" + Name 1362 "r029" + Name 1365 "r030" + Name 1369 "r031" + Name 1373 "r032" + Name 1377 "r033" + Name 1380 "r034" + Name 1383 "r035" + Name 1386 "r036" + Name 1391 "r037" + Name 1394 "r038" + Name 1401 "r039" + Name 1404 "r049" + Name 1409 "r041" + Name 1412 "r042" + Name 1416 "r043" + Name 1419 "r044" + Name 1424 "r046" + Name 1431 "r000" + Name 1434 "r001" + Name 1439 "r003" + Name 1442 "r004" + Name 1445 "r005" + Name 1448 "r006" + Name 1452 "r007" + Name 1463 "r008" + Name 1468 "r009" + Name 1471 "r010" + Name 1474 "r011" + Name 1477 "r012" + Name 1480 "r013" + Name 1483 "r014" + Name 1486 "r015" + Name 1489 "r016" + Name 1492 "r017" + Name 1495 "r018" + Name 1498 "r019" + Name 1501 "R020" + Name 1504 "r021" + Name 1507 "r022" + Name 1523 "r023" + Name 1526 "r024" + Name 1528 "ResType" + Name 1532 "r025" + Name 1535 "r026" + Name 1539 "r026a" + Name 1544 "r027" + Name 1547 "r028" + Name 1551 "r029" + Name 1554 "r030" + Name 1558 "r031" + Name 1562 "r032" + Name 1566 "r033" + Name 1569 "r034" + Name 1572 "r035" + Name 1575 "r036" + Name 1580 "r037" + Name 1583 "r038" + Name 1590 "r039" + Name 1593 "r049" + Name 1598 "r041" + Name 1601 "r042" + Name 1605 "r043" + Name 1608 "r044" + Name 1613 "r046" + Name 1620 "r0" + Name 1624 "r1" + Name 1628 "r2" + Name 1632 "r3" + Name 1636 "r4" + Name 1640 "r5" + Name 1644 "r6" + Name 1648 "r7" + Name 1652 "r8" + Name 1656 "r0" + Name 1660 "r1" + Name 1664 "r2" + Name 1668 "r3" + Name 1672 "r4" + Name 1676 "r5" + Name 1680 "r6" + Name 1684 "r7" + Name 1688 "r8" + Name 1692 "r0" + Name 1696 "r1" + Name 1700 "r2" + Name 1704 "r3" + Name 1708 "r4" + Name 1712 "r5" + Name 1716 "r6" + Name 1720 "r7" + Name 1724 "r8" + Name 1728 "r00" + Name 1732 "r01" + Name 1736 "r02" + Name 1740 "r03" + Name 1744 "r04" + Name 1748 "r05" + Name 1752 "r06" + Name 1756 "r07" + Name 1760 "r08" + Name 1764 "r09" + Name 1768 "r10" + Name 1772 "r11" + Name 1776 "r12" + Name 1780 "r13" + Name 1784 "r14" + Name 1788 "r15" + Name 1792 "r16" + Name 1797 "gs_ua" + Name 1798 "gs_ub" + Name 1799 "gs_uc" + Name 1801 "gs_ua2" + Name 1802 "gs_ub2" + Name 1803 "gs_uc2" + Name 1805 "gs_ua3" + Name 1806 "gs_ub3" + Name 1807 "gs_uc3" + Name 1809 "gs_ua4" + Name 1810 "gs_ub4" + Name 1811 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6140,365 +6157,366 @@ gl_FragCoord origin is upper left 668: 38(ivec3) ConstantComposite 278 383 667 684(ResType): TypeStruct 36(fvec3) 578(ivec3) 691: TypePointer Function 606(bvec3) - 751: 38(ivec3) ConstantComposite 512 278 383 - 798: 6(float) Constant 1077936128 - 799: 36(fvec3) ConstantComposite 274 509 798 - 803: TypePointer Input 64(fvec4) - 804(inF0): 803(ptr) Variable Input - 819: TypeVector 138(int) 4 - 820: TypePointer Function 819(ivec4) - 824: TypeVector 8(int) 4 - 825: TypePointer Function 824(ivec4) - 830: TypePointer Input 824(ivec4) - 831(inU0): 830(ptr) Variable Input - 839(inF1): 803(ptr) Variable Input - 848(inF2): 803(ptr) Variable Input - 852: 64(fvec4) ConstantComposite 165 165 165 165 - 853: TypeVector 121(bool) 4 - 866: 824(ivec4) ConstantComposite 177 383 619 278 - 898: TypePointer Input 6(float) - 921: 8(int) Constant 9 - 922: 8(int) Constant 10 - 923: 824(ivec4) ConstantComposite 177 427 921 922 - 939(ResType): TypeStruct 64(fvec4) 819(ivec4) - 946: TypePointer Function 853(bvec4) - 1006: 824(ivec4) ConstantComposite 512 278 383 667 - 1053: 6(float) Constant 1082130432 - 1054: 64(fvec4) ConstantComposite 274 509 798 1053 - 1081: 48 ConstantComposite 369 369 - 1082: TypeMatrix 370(bvec2) 2 - 1147(ResType): TypeStruct 48 342(ivec2) - 1235: 24(fvec2) ConstantComposite 509 509 - 1236: 48 ConstantComposite 1235 1235 - 1264: 56 ConstantComposite 605 605 605 - 1265: TypeMatrix 606(bvec3) 3 - 1333(ResType): TypeStruct 56 578(ivec3) - 1421: 36(fvec3) ConstantComposite 798 798 798 - 1422: 56 ConstantComposite 1421 1421 1421 - 1450: 65 ConstantComposite 852 852 852 852 - 1451: TypeMatrix 853(bvec4) 4 - 1522(ResType): TypeStruct 65 819(ivec4) - 1610: 64(fvec4) ConstantComposite 1053 1053 1053 1053 - 1611: 65 ConstantComposite 1610 1610 1610 1610 - 1790: TypePointer Private 8(int) - 1791(gs_ua): 1790(ptr) Variable Private - 1792(gs_ub): 1790(ptr) Variable Private - 1793(gs_uc): 1790(ptr) Variable Private - 1794: TypePointer Private 26(ivec2) - 1795(gs_ua2): 1794(ptr) Variable Private - 1796(gs_ub2): 1794(ptr) Variable Private - 1797(gs_uc2): 1794(ptr) Variable Private - 1798: TypePointer Private 38(ivec3) - 1799(gs_ua3): 1798(ptr) Variable Private - 1800(gs_ub3): 1798(ptr) Variable Private - 1801(gs_uc3): 1798(ptr) Variable Private - 1802: TypePointer Private 824(ivec4) - 1803(gs_ua4): 1802(ptr) Variable Private - 1804(gs_ub4): 1802(ptr) Variable Private - 1805(gs_uc4): 1802(ptr) Variable Private + 710: 6(float) Constant 1050253722 + 757: 38(ivec3) ConstantComposite 512 278 383 + 804: 6(float) Constant 1077936128 + 805: 36(fvec3) ConstantComposite 274 509 804 + 809: TypePointer Input 64(fvec4) + 810(inF0): 809(ptr) Variable Input + 825: TypeVector 138(int) 4 + 826: TypePointer Function 825(ivec4) + 830: TypeVector 8(int) 4 + 831: TypePointer Function 830(ivec4) + 836: TypePointer Input 830(ivec4) + 837(inU0): 836(ptr) Variable Input + 845(inF1): 809(ptr) Variable Input + 854(inF2): 809(ptr) Variable Input + 858: 64(fvec4) ConstantComposite 165 165 165 165 + 859: TypeVector 121(bool) 4 + 872: 830(ivec4) ConstantComposite 177 383 619 278 + 904: TypePointer Input 6(float) + 927: 8(int) Constant 9 + 928: 8(int) Constant 10 + 929: 830(ivec4) ConstantComposite 177 427 927 928 + 945(ResType): TypeStruct 64(fvec4) 825(ivec4) + 952: TypePointer Function 859(bvec4) + 1012: 830(ivec4) ConstantComposite 512 278 383 667 + 1059: 6(float) Constant 1082130432 + 1060: 64(fvec4) ConstantComposite 274 509 804 1059 + 1087: 48 ConstantComposite 369 369 + 1088: TypeMatrix 370(bvec2) 2 + 1153(ResType): TypeStruct 48 342(ivec2) + 1241: 24(fvec2) ConstantComposite 509 509 + 1242: 48 ConstantComposite 1241 1241 + 1270: 56 ConstantComposite 605 605 605 + 1271: TypeMatrix 606(bvec3) 3 + 1339(ResType): TypeStruct 56 578(ivec3) + 1427: 36(fvec3) ConstantComposite 804 804 804 + 1428: 56 ConstantComposite 1427 1427 1427 + 1456: 65 ConstantComposite 858 858 858 858 + 1457: TypeMatrix 859(bvec4) 4 + 1528(ResType): TypeStruct 65 825(ivec4) + 1616: 64(fvec4) ConstantComposite 1059 1059 1059 1059 + 1617: 65 ConstantComposite 1616 1616 1616 1616 + 1796: TypePointer Private 8(int) + 1797(gs_ua): 1796(ptr) Variable Private + 1798(gs_ub): 1796(ptr) Variable Private + 1799(gs_uc): 1796(ptr) Variable Private + 1800: TypePointer Private 26(ivec2) + 1801(gs_ua2): 1800(ptr) Variable Private + 1802(gs_ub2): 1800(ptr) Variable Private + 1803(gs_uc2): 1800(ptr) Variable Private + 1804: TypePointer Private 38(ivec3) + 1805(gs_ua3): 1804(ptr) Variable Private + 1806(gs_ub3): 1804(ptr) Variable Private + 1807(gs_uc3): 1804(ptr) Variable Private + 1808: TypePointer Private 830(ivec4) + 1809(gs_ua4): 1808(ptr) Variable Private + 1810(gs_ub4): 1808(ptr) Variable Private + 1811(gs_uc4): 1808(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label - 802(r000): 122(ptr) Variable Function - 807(r001): 91(ptr) Variable Function - 810(r002): 91(ptr) Variable Function - 813(r003): 122(ptr) Variable Function - 816(r004): 91(ptr) Variable Function - 821(r005): 820(ptr) Variable Function - 826(r006): 825(ptr) Variable Function - 829(r007): 91(ptr) Variable Function - 834(r009): 91(ptr) Variable Function - 837(r010): 91(ptr) Variable Function - 842(r011): 91(ptr) Variable Function - 845(r012): 91(ptr) Variable Function - 859(r013): 91(ptr) Variable Function - 862(r014): 91(ptr) Variable Function - 865(r015): 825(ptr) Variable Function - 868(r016): 91(ptr) Variable Function - 871(r017): 91(ptr) Variable Function - 874(r018): 91(ptr) Variable Function - 877(r019): 91(ptr) Variable Function - 880(r020): 91(ptr) Variable Function - 883(r021): 91(ptr) Variable Function - 886(r022): 91(ptr) Variable Function - 889(r023): 7(ptr) Variable Function - 893(r024): 7(ptr) Variable Function - 897(r025): 91(ptr) Variable Function - 909(r029): 91(ptr) Variable Function - 912(r030): 91(ptr) Variable Function - 915(r031): 91(ptr) Variable Function - 920(r032): 825(ptr) Variable Function - 925(r033): 825(ptr) Variable Function - 927(r034): 91(ptr) Variable Function - 930(r036): 91(ptr) Variable Function - 934(r037): 91(ptr) Variable Function - 937(r038): 91(ptr) Variable Function - 943(r039): 91(ptr) Variable Function - 947(r040): 946(ptr) Variable Function - 950(r041): 946(ptr) Variable Function - 953(r042): 91(ptr) Variable Function - 957(r039a): 91(ptr) Variable Function - 962(r043): 7(ptr) Variable Function - 965(r044): 91(ptr) Variable Function - 968(r045): 91(ptr) Variable Function - 972(r046): 91(ptr) Variable Function - 975(r047): 91(ptr) Variable Function - 979(r048): 91(ptr) Variable Function - 983(r049): 91(ptr) Variable Function - 986(r050): 91(ptr) Variable Function - 990(r051): 91(ptr) Variable Function - 993(r052): 91(ptr) Variable Function - 997(r053): 91(ptr) Variable Function - 1001(r054): 91(ptr) Variable Function - 1005(r055): 825(ptr) Variable Function - 1008(r056): 91(ptr) Variable Function - 1011(r057): 91(ptr) Variable Function - 1014(r058): 91(ptr) Variable Function - 1019(r059): 91(ptr) Variable Function - 1022(r060): 91(ptr) Variable Function - 1029(r061): 91(ptr) Variable Function - 1032(r062): 91(ptr) Variable Function - 1037(r063): 91(ptr) Variable Function - 1040(r064): 91(ptr) Variable Function - 1044(r065): 91(ptr) Variable Function - 1047(r066): 91(ptr) Variable Function - 1050(r067): 91(ptr) Variable Function - 805: 64(fvec4) Load 804(inF0) - 806: 121(bool) All 805 - Store 802(r000) 806 - 808: 64(fvec4) Load 804(inF0) - 809: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 808 - Store 807(r001) 809 - 811: 64(fvec4) Load 804(inF0) - 812: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 811 - Store 810(r002) 812 - 814: 64(fvec4) Load 804(inF0) - 815: 121(bool) Any 814 - Store 813(r003) 815 - 817: 64(fvec4) Load 804(inF0) - 818: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 817 - Store 816(r004) 818 - 822: 64(fvec4) Load 804(inF0) - 823: 819(ivec4) Bitcast 822 - Store 821(r005) 823 - 827: 64(fvec4) Load 804(inF0) - 828: 824(ivec4) Bitcast 827 - Store 826(r006) 828 - 832: 824(ivec4) Load 831(inU0) - 833: 64(fvec4) Bitcast 832 - Store 829(r007) 833 - 835: 64(fvec4) Load 804(inF0) - 836: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 835 - Store 834(r009) 836 - 838: 64(fvec4) Load 804(inF0) - 840: 64(fvec4) Load 839(inF1) - 841: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 838 840 - Store 837(r010) 841 - 843: 64(fvec4) Load 804(inF0) - 844: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 843 - Store 842(r011) 844 - 846: 64(fvec4) Load 804(inF0) - 847: 64(fvec4) Load 839(inF1) - 849: 64(fvec4) Load 848(inF2) - 850: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 846 847 849 - Store 845(r012) 850 - 851: 64(fvec4) Load 804(inF0) - 854: 853(bvec4) FOrdLessThan 851 852 - 855: 121(bool) Any 854 - SelectionMerge 857 None - BranchConditional 855 856 857 - 856: Label + 808(r000): 122(ptr) Variable Function + 813(r001): 91(ptr) Variable Function + 816(r002): 91(ptr) Variable Function + 819(r003): 122(ptr) Variable Function + 822(r004): 91(ptr) Variable Function + 827(r005): 826(ptr) Variable Function + 832(r006): 831(ptr) Variable Function + 835(r007): 91(ptr) Variable Function + 840(r009): 91(ptr) Variable Function + 843(r010): 91(ptr) Variable Function + 848(r011): 91(ptr) Variable Function + 851(r012): 91(ptr) Variable Function + 865(r013): 91(ptr) Variable Function + 868(r014): 91(ptr) Variable Function + 871(r015): 831(ptr) Variable Function + 874(r016): 91(ptr) Variable Function + 877(r017): 91(ptr) Variable Function + 880(r018): 91(ptr) Variable Function + 883(r019): 91(ptr) Variable Function + 886(r020): 91(ptr) Variable Function + 889(r021): 91(ptr) Variable Function + 892(r022): 91(ptr) Variable Function + 895(r023): 7(ptr) Variable Function + 899(r024): 7(ptr) Variable Function + 903(r025): 91(ptr) Variable Function + 915(r029): 91(ptr) Variable Function + 918(r030): 91(ptr) Variable Function + 921(r031): 91(ptr) Variable Function + 926(r032): 831(ptr) Variable Function + 931(r033): 831(ptr) Variable Function + 933(r034): 91(ptr) Variable Function + 936(r036): 91(ptr) Variable Function + 940(r037): 91(ptr) Variable Function + 943(r038): 91(ptr) Variable Function + 949(r039): 91(ptr) Variable Function + 953(r040): 952(ptr) Variable Function + 956(r041): 952(ptr) Variable Function + 959(r042): 91(ptr) Variable Function + 963(r039a): 91(ptr) Variable Function + 968(r043): 7(ptr) Variable Function + 971(r044): 91(ptr) Variable Function + 974(r045): 91(ptr) Variable Function + 978(r046): 91(ptr) Variable Function + 981(r047): 91(ptr) Variable Function + 985(r048): 91(ptr) Variable Function + 989(r049): 91(ptr) Variable Function + 992(r050): 91(ptr) Variable Function + 996(r051): 91(ptr) Variable Function + 999(r052): 91(ptr) Variable Function + 1003(r053): 91(ptr) Variable Function + 1007(r054): 91(ptr) Variable Function + 1011(r055): 831(ptr) Variable Function + 1014(r056): 91(ptr) Variable Function + 1017(r057): 91(ptr) Variable Function + 1020(r058): 91(ptr) Variable Function + 1025(r059): 91(ptr) Variable Function + 1028(r060): 91(ptr) Variable Function + 1035(r061): 91(ptr) Variable Function + 1038(r062): 91(ptr) Variable Function + 1043(r063): 91(ptr) Variable Function + 1046(r064): 91(ptr) Variable Function + 1050(r065): 91(ptr) Variable Function + 1053(r066): 91(ptr) Variable Function + 1056(r067): 91(ptr) Variable Function + 811: 64(fvec4) Load 810(inF0) + 812: 121(bool) All 811 + Store 808(r000) 812 + 814: 64(fvec4) Load 810(inF0) + 815: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 814 + Store 813(r001) 815 + 817: 64(fvec4) Load 810(inF0) + 818: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 817 + Store 816(r002) 818 + 820: 64(fvec4) Load 810(inF0) + 821: 121(bool) Any 820 + Store 819(r003) 821 + 823: 64(fvec4) Load 810(inF0) + 824: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 823 + Store 822(r004) 824 + 828: 64(fvec4) Load 810(inF0) + 829: 825(ivec4) Bitcast 828 + Store 827(r005) 829 + 833: 64(fvec4) Load 810(inF0) + 834: 830(ivec4) Bitcast 833 + Store 832(r006) 834 + 838: 830(ivec4) Load 837(inU0) + 839: 64(fvec4) Bitcast 838 + Store 835(r007) 839 + 841: 64(fvec4) Load 810(inF0) + 842: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 841 + Store 840(r009) 842 + 844: 64(fvec4) Load 810(inF0) + 846: 64(fvec4) Load 845(inF1) + 847: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 844 846 + Store 843(r010) 847 + 849: 64(fvec4) Load 810(inF0) + 850: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 849 + Store 848(r011) 850 + 852: 64(fvec4) Load 810(inF0) + 853: 64(fvec4) Load 845(inF1) + 855: 64(fvec4) Load 854(inF2) + 856: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 852 853 855 + Store 851(r012) 856 + 857: 64(fvec4) Load 810(inF0) + 860: 859(bvec4) FOrdLessThan 857 858 + 861: 121(bool) Any 860 + SelectionMerge 863 None + BranchConditional 861 862 863 + 862: Label Kill - 857: Label - 860: 64(fvec4) Load 804(inF0) - 861: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 860 - Store 859(r013) 861 - 863: 64(fvec4) Load 804(inF0) - 864: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 863 - Store 862(r014) 864 - 867: 824(ivec4) BitCount 866 - Store 865(r015) 867 - 869: 64(fvec4) Load 804(inF0) - 870: 64(fvec4) DPdx 869 - Store 868(r016) 870 - 872: 64(fvec4) Load 804(inF0) - 873: 64(fvec4) DPdxCoarse 872 - Store 871(r017) 873 - 875: 64(fvec4) Load 804(inF0) - 876: 64(fvec4) DPdxFine 875 - Store 874(r018) 876 - 878: 64(fvec4) Load 804(inF0) - 879: 64(fvec4) DPdy 878 - Store 877(r019) 879 - 881: 64(fvec4) Load 804(inF0) - 882: 64(fvec4) DPdyCoarse 881 - Store 880(r020) 882 - 884: 64(fvec4) Load 804(inF0) - 885: 64(fvec4) DPdyFine 884 - Store 883(r021) 885 - 887: 64(fvec4) Load 804(inF0) - 888: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 887 - Store 886(r022) 888 - 890: 64(fvec4) Load 804(inF0) - 891: 64(fvec4) Load 839(inF1) - 892: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 890 891 - Store 889(r023) 892 - 894: 64(fvec4) Load 804(inF0) - 895: 64(fvec4) Load 839(inF1) - 896: 6(float) Dot 894 895 - Store 893(r024) 896 - 899: 898(ptr) AccessChain 804(inF0) 512 - 900: 6(float) Load 899 - 901: 898(ptr) AccessChain 839(inF1) 512 - 902: 6(float) Load 901 - 903: 6(float) FMul 900 902 - 904: 898(ptr) AccessChain 804(inF0) 278 - 905: 6(float) Load 904 - 906: 898(ptr) AccessChain 839(inF1) 383 - 907: 6(float) Load 906 - 908: 64(fvec4) CompositeConstruct 274 903 905 907 - Store 897(r025) 908 - 910: 64(fvec4) Load 804(inF0) - 911: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 910 - Store 909(r029) 911 - 913: 64(fvec4) Load 804(inF0) - 914: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 913 - Store 912(r030) 914 - 916: 64(fvec4) Load 804(inF0) - 917: 64(fvec4) Load 839(inF1) - 918: 64(fvec4) Load 848(inF2) - 919: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 916 917 918 - Store 915(r031) 919 - 924: 824(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 923 - Store 920(r032) 924 - 926: 824(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 923 - Store 925(r033) 926 - 928: 64(fvec4) Load 804(inF0) - 929: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 928 - Store 927(r034) 929 - 931: 64(fvec4) Load 804(inF0) - 932: 64(fvec4) Load 839(inF1) - 933: 64(fvec4) FMod 931 932 - Store 930(r036) 933 - 935: 64(fvec4) Load 804(inF0) - 936: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 935 - Store 934(r037) 936 - 938: 64(fvec4) Load 804(inF0) - 940:939(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 938 - 941: 819(ivec4) CompositeExtract 940 1 - Store 839(inF1) 941 - 942: 64(fvec4) CompositeExtract 940 0 - Store 937(r038) 942 - 944: 64(fvec4) Load 804(inF0) - 945: 64(fvec4) Fwidth 944 - Store 943(r039) 945 - 948: 64(fvec4) Load 804(inF0) - 949: 853(bvec4) IsInf 948 - Store 947(r040) 949 - 951: 64(fvec4) Load 804(inF0) - 952: 853(bvec4) IsNan 951 - Store 950(r041) 952 - 954: 64(fvec4) Load 804(inF0) - 955: 64(fvec4) Load 839(inF1) - 956: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 954 955 - Store 953(r042) 956 - 958: 64(fvec4) Load 804(inF0) - 959: 64(fvec4) Load 839(inF1) - 960: 64(fvec4) Load 848(inF2) - 961: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 958 959 960 - Store 957(r039a) 961 - 963: 64(fvec4) Load 804(inF0) - 964: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 963 - Store 962(r043) 964 - 966: 64(fvec4) Load 804(inF0) - 967: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 966 - Store 965(r044) 967 - 969: 64(fvec4) Load 804(inF0) - 970: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 969 - 971: 64(fvec4) VectorTimesScalar 970 253 - Store 968(r045) 971 - 973: 64(fvec4) Load 804(inF0) - 974: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 973 - Store 972(r046) 974 - 976: 64(fvec4) Load 804(inF0) - 977: 64(fvec4) Load 839(inF1) - 978: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 976 977 - Store 975(r047) 978 - 980: 64(fvec4) Load 804(inF0) - 981: 64(fvec4) Load 839(inF1) - 982: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 980 981 - Store 979(r048) 982 - 984: 64(fvec4) Load 804(inF0) - 985: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 984 - Store 983(r049) 985 - 987: 64(fvec4) Load 804(inF0) - 988: 64(fvec4) Load 839(inF1) - 989: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 987 988 - Store 986(r050) 989 - 991: 64(fvec4) Load 804(inF0) - 992: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 991 - Store 990(r051) 992 - 994: 64(fvec4) Load 804(inF0) - 995: 64(fvec4) CompositeConstruct 274 274 274 274 - 996: 64(fvec4) FDiv 995 994 - Store 993(r052) 996 - 998: 64(fvec4) Load 804(inF0) - 999: 64(fvec4) Load 839(inF1) - 1000: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 998 999 - Store 997(r053) 1000 - 1002: 64(fvec4) Load 804(inF0) - 1003: 64(fvec4) Load 839(inF1) - 1004: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1002 1003 509 - Store 1001(r054) 1004 - 1007: 824(ivec4) BitReverse 1006 - Store 1005(r055) 1007 - 1009: 64(fvec4) Load 804(inF0) - 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1009 - Store 1008(r056) 1010 - 1012: 64(fvec4) Load 804(inF0) - 1013: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012 - Store 1011(r057) 1013 - 1015: 64(fvec4) Load 804(inF0) - 1016: 64(fvec4) CompositeConstruct 165 165 165 165 - 1017: 64(fvec4) CompositeConstruct 274 274 274 274 - 1018: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1015 1016 1017 - Store 1014(r058) 1018 - 1020: 64(fvec4) Load 804(inF0) - 1021: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1020 - Store 1019(r059) 1021 - 1023: 64(fvec4) Load 804(inF0) - 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1023 - Store 1022(r060) 1024 - 1025: 64(fvec4) Load 804(inF0) - 1026: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1025 - Store 839(inF1) 1026 - 1027: 64(fvec4) Load 804(inF0) - 1028: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1027 - Store 848(inF2) 1028 - 1030: 64(fvec4) Load 804(inF0) - 1031: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1030 - Store 1029(r061) 1031 - 1033: 64(fvec4) Load 804(inF0) - 1034: 64(fvec4) Load 839(inF1) - 1035: 64(fvec4) Load 848(inF2) - 1036: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1033 1034 1035 - Store 1032(r062) 1036 - 1038: 64(fvec4) Load 804(inF0) - 1039: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1038 - Store 1037(r063) 1039 - 1041: 64(fvec4) Load 804(inF0) - 1042: 64(fvec4) Load 839(inF1) - 1043: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1041 1042 - Store 1040(r064) 1043 - 1045: 64(fvec4) Load 804(inF0) - 1046: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1045 - Store 1044(r065) 1046 - 1048: 64(fvec4) Load 804(inF0) - 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1048 - Store 1047(r066) 1049 - 1051: 64(fvec4) Load 804(inF0) - 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1051 - Store 1050(r067) 1052 - ReturnValue 1054 + 863: Label + 866: 64(fvec4) Load 810(inF0) + 867: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 866 + Store 865(r013) 867 + 869: 64(fvec4) Load 810(inF0) + 870: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 869 + Store 868(r014) 870 + 873: 830(ivec4) BitCount 872 + Store 871(r015) 873 + 875: 64(fvec4) Load 810(inF0) + 876: 64(fvec4) DPdx 875 + Store 874(r016) 876 + 878: 64(fvec4) Load 810(inF0) + 879: 64(fvec4) DPdxCoarse 878 + Store 877(r017) 879 + 881: 64(fvec4) Load 810(inF0) + 882: 64(fvec4) DPdxFine 881 + Store 880(r018) 882 + 884: 64(fvec4) Load 810(inF0) + 885: 64(fvec4) DPdy 884 + Store 883(r019) 885 + 887: 64(fvec4) Load 810(inF0) + 888: 64(fvec4) DPdyCoarse 887 + Store 886(r020) 888 + 890: 64(fvec4) Load 810(inF0) + 891: 64(fvec4) DPdyFine 890 + Store 889(r021) 891 + 893: 64(fvec4) Load 810(inF0) + 894: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 893 + Store 892(r022) 894 + 896: 64(fvec4) Load 810(inF0) + 897: 64(fvec4) Load 845(inF1) + 898: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 896 897 + Store 895(r023) 898 + 900: 64(fvec4) Load 810(inF0) + 901: 64(fvec4) Load 845(inF1) + 902: 6(float) Dot 900 901 + Store 899(r024) 902 + 905: 904(ptr) AccessChain 810(inF0) 512 + 906: 6(float) Load 905 + 907: 904(ptr) AccessChain 845(inF1) 512 + 908: 6(float) Load 907 + 909: 6(float) FMul 906 908 + 910: 904(ptr) AccessChain 810(inF0) 278 + 911: 6(float) Load 910 + 912: 904(ptr) AccessChain 845(inF1) 383 + 913: 6(float) Load 912 + 914: 64(fvec4) CompositeConstruct 274 909 911 913 + Store 903(r025) 914 + 916: 64(fvec4) Load 810(inF0) + 917: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 916 + Store 915(r029) 917 + 919: 64(fvec4) Load 810(inF0) + 920: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 919 + Store 918(r030) 920 + 922: 64(fvec4) Load 810(inF0) + 923: 64(fvec4) Load 845(inF1) + 924: 64(fvec4) Load 854(inF2) + 925: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 922 923 924 + Store 921(r031) 925 + 930: 830(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 929 + Store 926(r032) 930 + 932: 830(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 929 + Store 931(r033) 932 + 934: 64(fvec4) Load 810(inF0) + 935: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 934 + Store 933(r034) 935 + 937: 64(fvec4) Load 810(inF0) + 938: 64(fvec4) Load 845(inF1) + 939: 64(fvec4) FMod 937 938 + Store 936(r036) 939 + 941: 64(fvec4) Load 810(inF0) + 942: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 941 + Store 940(r037) 942 + 944: 64(fvec4) Load 810(inF0) + 946:945(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 944 + 947: 825(ivec4) CompositeExtract 946 1 + Store 845(inF1) 947 + 948: 64(fvec4) CompositeExtract 946 0 + Store 943(r038) 948 + 950: 64(fvec4) Load 810(inF0) + 951: 64(fvec4) Fwidth 950 + Store 949(r039) 951 + 954: 64(fvec4) Load 810(inF0) + 955: 859(bvec4) IsInf 954 + Store 953(r040) 955 + 957: 64(fvec4) Load 810(inF0) + 958: 859(bvec4) IsNan 957 + Store 956(r041) 958 + 960: 64(fvec4) Load 810(inF0) + 961: 64(fvec4) Load 845(inF1) + 962: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 960 961 + Store 959(r042) 962 + 964: 64(fvec4) Load 810(inF0) + 965: 64(fvec4) Load 845(inF1) + 966: 64(fvec4) Load 854(inF2) + 967: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 964 965 966 + Store 963(r039a) 967 + 969: 64(fvec4) Load 810(inF0) + 970: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 969 + Store 968(r043) 970 + 972: 64(fvec4) Load 810(inF0) + 973: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 972 + Store 971(r044) 973 + 975: 64(fvec4) Load 810(inF0) + 976: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 975 + 977: 64(fvec4) VectorTimesScalar 976 253 + Store 974(r045) 977 + 979: 64(fvec4) Load 810(inF0) + 980: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 + Store 978(r046) 980 + 982: 64(fvec4) Load 810(inF0) + 983: 64(fvec4) Load 845(inF1) + 984: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 982 983 + Store 981(r047) 984 + 986: 64(fvec4) Load 810(inF0) + 987: 64(fvec4) Load 845(inF1) + 988: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 986 987 + Store 985(r048) 988 + 990: 64(fvec4) Load 810(inF0) + 991: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 990 + Store 989(r049) 991 + 993: 64(fvec4) Load 810(inF0) + 994: 64(fvec4) Load 845(inF1) + 995: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 993 994 + Store 992(r050) 995 + 997: 64(fvec4) Load 810(inF0) + 998: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 997 + Store 996(r051) 998 + 1000: 64(fvec4) Load 810(inF0) + 1001: 64(fvec4) CompositeConstruct 274 274 274 274 + 1002: 64(fvec4) FDiv 1001 1000 + Store 999(r052) 1002 + 1004: 64(fvec4) Load 810(inF0) + 1005: 64(fvec4) Load 845(inF1) + 1006: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1004 1005 + Store 1003(r053) 1006 + 1008: 64(fvec4) Load 810(inF0) + 1009: 64(fvec4) Load 845(inF1) + 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1008 1009 509 + Store 1007(r054) 1010 + 1013: 830(ivec4) BitReverse 1012 + Store 1011(r055) 1013 + 1015: 64(fvec4) Load 810(inF0) + 1016: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1015 + Store 1014(r056) 1016 + 1018: 64(fvec4) Load 810(inF0) + 1019: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1018 + Store 1017(r057) 1019 + 1021: 64(fvec4) Load 810(inF0) + 1022: 64(fvec4) CompositeConstruct 165 165 165 165 + 1023: 64(fvec4) CompositeConstruct 274 274 274 274 + 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1021 1022 1023 + Store 1020(r058) 1024 + 1026: 64(fvec4) Load 810(inF0) + 1027: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1026 + Store 1025(r059) 1027 + 1029: 64(fvec4) Load 810(inF0) + 1030: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1029 + Store 1028(r060) 1030 + 1031: 64(fvec4) Load 810(inF0) + 1032: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1031 + Store 845(inF1) 1032 + 1033: 64(fvec4) Load 810(inF0) + 1034: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1033 + Store 854(inF2) 1034 + 1036: 64(fvec4) Load 810(inF0) + 1037: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1036 + Store 1035(r061) 1037 + 1039: 64(fvec4) Load 810(inF0) + 1040: 64(fvec4) Load 845(inF1) + 1041: 64(fvec4) Load 854(inF2) + 1042: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1039 1040 1041 + Store 1038(r062) 1042 + 1044: 64(fvec4) Load 810(inF0) + 1045: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1044 + Store 1043(r063) 1045 + 1047: 64(fvec4) Load 810(inF0) + 1048: 64(fvec4) Load 845(inF1) + 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1047 1048 + Store 1046(r064) 1049 + 1051: 64(fvec4) Load 810(inF0) + 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1051 + Store 1050(r065) 1052 + 1054: 64(fvec4) Load 810(inF0) + 1055: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1054 + Store 1053(r066) 1055 + 1057: 64(fvec4) Load 810(inF0) + 1058: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1057 + Store 1056(r067) 1058 + ReturnValue 1060 FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -7111,31 +7129,32 @@ gl_FragCoord origin is upper left 695(r041): 691(ptr) Variable Function 698(r042): 37(ptr) Variable Function 702(r039a): 37(ptr) Variable Function - 707(r043): 7(ptr) Variable Function - 710(r044): 37(ptr) Variable Function - 713(r045): 37(ptr) Variable Function - 717(r046): 37(ptr) Variable Function - 720(r047): 37(ptr) Variable Function - 724(r048): 37(ptr) Variable Function - 728(r049): 37(ptr) Variable Function - 731(r050): 37(ptr) Variable Function - 735(r051): 37(ptr) Variable Function - 738(r052): 37(ptr) Variable Function - 742(r053): 37(ptr) Variable Function - 746(r054): 37(ptr) Variable Function - 750(r055): 39(ptr) Variable Function - 753(r056): 37(ptr) Variable Function - 756(r057): 37(ptr) Variable Function - 759(r058): 37(ptr) Variable Function - 764(r059): 37(ptr) Variable Function - 767(r060): 37(ptr) Variable Function - 774(r061): 37(ptr) Variable Function - 777(r062): 37(ptr) Variable Function - 782(r063): 37(ptr) Variable Function - 785(r064): 37(ptr) Variable Function - 789(r065): 37(ptr) Variable Function - 792(r066): 37(ptr) Variable Function - 795(r067): 37(ptr) Variable Function + 707(r039b): 37(ptr) Variable Function + 713(r043): 7(ptr) Variable Function + 716(r044): 37(ptr) Variable Function + 719(r045): 37(ptr) Variable Function + 723(r046): 37(ptr) Variable Function + 726(r047): 37(ptr) Variable Function + 730(r048): 37(ptr) Variable Function + 734(r049): 37(ptr) Variable Function + 737(r050): 37(ptr) Variable Function + 741(r051): 37(ptr) Variable Function + 744(r052): 37(ptr) Variable Function + 748(r053): 37(ptr) Variable Function + 752(r054): 37(ptr) Variable Function + 756(r055): 39(ptr) Variable Function + 759(r056): 37(ptr) Variable Function + 762(r057): 37(ptr) Variable Function + 765(r058): 37(ptr) Variable Function + 770(r059): 37(ptr) Variable Function + 773(r060): 37(ptr) Variable Function + 780(r061): 37(ptr) Variable Function + 783(r062): 37(ptr) Variable Function + 788(r063): 37(ptr) Variable Function + 791(r064): 37(ptr) Variable Function + 795(r065): 37(ptr) Variable Function + 798(r066): 37(ptr) Variable Function + 801(r067): 37(ptr) Variable Function 564: 36(fvec3) Load 41(inF0) 565: 121(bool) All 564 Store 563(r000) 565 @@ -7274,809 +7293,814 @@ gl_FragCoord origin is upper left 706: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 703 704 705 Store 702(r039a) 706 708: 36(fvec3) Load 41(inF0) - 709: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 708 - Store 707(r043) 709 - 711: 36(fvec3) Load 41(inF0) - 712: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 711 - Store 710(r044) 712 + 709: 36(fvec3) Load 42(inF1) + 711: 36(fvec3) CompositeConstruct 710 710 710 + 712: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 708 709 711 + Store 707(r039b) 712 714: 36(fvec3) Load 41(inF0) - 715: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 714 - 716: 36(fvec3) VectorTimesScalar 715 253 - Store 713(r045) 716 - 718: 36(fvec3) Load 41(inF0) - 719: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 718 - Store 717(r046) 719 - 721: 36(fvec3) Load 41(inF0) - 722: 36(fvec3) Load 42(inF1) - 723: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 721 722 - Store 720(r047) 723 - 725: 36(fvec3) Load 41(inF0) - 726: 36(fvec3) Load 42(inF1) - 727: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 725 726 - Store 724(r048) 727 - 729: 36(fvec3) Load 41(inF0) - 730: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 729 - Store 728(r049) 730 - 732: 36(fvec3) Load 41(inF0) - 733: 36(fvec3) Load 42(inF1) - 734: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 732 733 - Store 731(r050) 734 - 736: 36(fvec3) Load 41(inF0) - 737: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 736 - Store 735(r051) 737 - 739: 36(fvec3) Load 41(inF0) - 740: 36(fvec3) CompositeConstruct 274 274 274 - 741: 36(fvec3) FDiv 740 739 - Store 738(r052) 741 - 743: 36(fvec3) Load 41(inF0) - 744: 36(fvec3) Load 42(inF1) - 745: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 743 744 - Store 742(r053) 745 - 747: 36(fvec3) Load 41(inF0) - 748: 36(fvec3) Load 42(inF1) - 749: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 747 748 509 - Store 746(r054) 749 - 752: 38(ivec3) BitReverse 751 - Store 750(r055) 752 - 754: 36(fvec3) Load 41(inF0) - 755: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 754 - Store 753(r056) 755 - 757: 36(fvec3) Load 41(inF0) - 758: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 757 - Store 756(r057) 758 + 715: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 714 + Store 713(r043) 715 + 717: 36(fvec3) Load 41(inF0) + 718: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 717 + Store 716(r044) 718 + 720: 36(fvec3) Load 41(inF0) + 721: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 720 + 722: 36(fvec3) VectorTimesScalar 721 253 + Store 719(r045) 722 + 724: 36(fvec3) Load 41(inF0) + 725: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 724 + Store 723(r046) 725 + 727: 36(fvec3) Load 41(inF0) + 728: 36(fvec3) Load 42(inF1) + 729: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 727 728 + Store 726(r047) 729 + 731: 36(fvec3) Load 41(inF0) + 732: 36(fvec3) Load 42(inF1) + 733: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 731 732 + Store 730(r048) 733 + 735: 36(fvec3) Load 41(inF0) + 736: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 735 + Store 734(r049) 736 + 738: 36(fvec3) Load 41(inF0) + 739: 36(fvec3) Load 42(inF1) + 740: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 738 739 + Store 737(r050) 740 + 742: 36(fvec3) Load 41(inF0) + 743: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 742 + Store 741(r051) 743 + 745: 36(fvec3) Load 41(inF0) + 746: 36(fvec3) CompositeConstruct 274 274 274 + 747: 36(fvec3) FDiv 746 745 + Store 744(r052) 747 + 749: 36(fvec3) Load 41(inF0) + 750: 36(fvec3) Load 42(inF1) + 751: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 749 750 + Store 748(r053) 751 + 753: 36(fvec3) Load 41(inF0) + 754: 36(fvec3) Load 42(inF1) + 755: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 753 754 509 + Store 752(r054) 755 + 758: 38(ivec3) BitReverse 757 + Store 756(r055) 758 760: 36(fvec3) Load 41(inF0) - 761: 36(fvec3) CompositeConstruct 165 165 165 - 762: 36(fvec3) CompositeConstruct 274 274 274 - 763: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 760 761 762 - Store 759(r058) 763 - 765: 36(fvec3) Load 41(inF0) - 766: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 765 - Store 764(r059) 766 - 768: 36(fvec3) Load 41(inF0) - 769: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 768 - Store 767(r060) 769 - 770: 36(fvec3) Load 41(inF0) - 771: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 770 - Store 42(inF1) 771 - 772: 36(fvec3) Load 41(inF0) - 773: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 772 - Store 43(inF2) 773 - 775: 36(fvec3) Load 41(inF0) - 776: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 775 - Store 774(r061) 776 + 761: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 760 + Store 759(r056) 761 + 763: 36(fvec3) Load 41(inF0) + 764: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 763 + Store 762(r057) 764 + 766: 36(fvec3) Load 41(inF0) + 767: 36(fvec3) CompositeConstruct 165 165 165 + 768: 36(fvec3) CompositeConstruct 274 274 274 + 769: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 766 767 768 + Store 765(r058) 769 + 771: 36(fvec3) Load 41(inF0) + 772: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 771 + Store 770(r059) 772 + 774: 36(fvec3) Load 41(inF0) + 775: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 774 + Store 773(r060) 775 + 776: 36(fvec3) Load 41(inF0) + 777: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 776 + Store 42(inF1) 777 778: 36(fvec3) Load 41(inF0) - 779: 36(fvec3) Load 42(inF1) - 780: 36(fvec3) Load 43(inF2) - 781: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 778 779 780 - Store 777(r062) 781 - 783: 36(fvec3) Load 41(inF0) - 784: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 783 - Store 782(r063) 784 - 786: 36(fvec3) Load 41(inF0) - 787: 36(fvec3) Load 42(inF1) - 788: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 786 787 - Store 785(r064) 788 - 790: 36(fvec3) Load 41(inF0) - 791: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 790 - Store 789(r065) 791 - 793: 36(fvec3) Load 41(inF0) - 794: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 793 - Store 792(r066) 794 + 779: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 778 + Store 43(inF2) 779 + 781: 36(fvec3) Load 41(inF0) + 782: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 781 + Store 780(r061) 782 + 784: 36(fvec3) Load 41(inF0) + 785: 36(fvec3) Load 42(inF1) + 786: 36(fvec3) Load 43(inF2) + 787: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 784 785 786 + Store 783(r062) 787 + 789: 36(fvec3) Load 41(inF0) + 790: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 789 + Store 788(r063) 790 + 792: 36(fvec3) Load 41(inF0) + 793: 36(fvec3) Load 42(inF1) + 794: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 792 793 + Store 791(r064) 794 796: 36(fvec3) Load 41(inF0) - 797: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 796 - Store 795(r067) 797 - ReturnValue 799 + 797: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 796 + Store 795(r065) 797 + 799: 36(fvec3) Load 41(inF0) + 800: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 799 + Store 798(r066) 800 + 802: 36(fvec3) Load 41(inF0) + 803: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 802 + Store 801(r067) 803 + ReturnValue 805 FunctionEnd 54(PixelShaderFunction2x2(mf22;mf22;mf22;): 48 Function None 50 51(inF0): 49(ptr) FunctionParameter 52(inF1): 49(ptr) FunctionParameter 53(inF2): 49(ptr) FunctionParameter 55: Label - 1056(r000): 122(ptr) Variable Function - 1059(r001): 49(ptr) Variable Function - 1064(r003): 122(ptr) Variable Function - 1067(r004): 49(ptr) Variable Function - 1070(r005): 49(ptr) Variable Function - 1073(r006): 49(ptr) Variable Function - 1077(r007): 49(ptr) Variable Function - 1088(r008): 49(ptr) Variable Function - 1093(r009): 49(ptr) Variable Function - 1096(r010): 49(ptr) Variable Function - 1099(r011): 49(ptr) Variable Function - 1102(r012): 49(ptr) Variable Function - 1105(r013): 49(ptr) Variable Function - 1108(r014): 49(ptr) Variable Function - 1111(r015): 49(ptr) Variable Function - 1114(r016): 49(ptr) Variable Function - 1117(r017): 49(ptr) Variable Function - 1120(r018): 7(ptr) Variable Function - 1123(r019): 49(ptr) Variable Function - 1126(R020): 49(ptr) Variable Function - 1129(r021): 49(ptr) Variable Function - 1132(r022): 49(ptr) Variable Function - 1142(r023): 49(ptr) Variable Function - 1145(r024): 49(ptr) Variable Function - 1151(r025): 49(ptr) Variable Function - 1154(r026): 49(ptr) Variable Function - 1158(r026a): 49(ptr) Variable Function - 1163(r027): 49(ptr) Variable Function - 1166(r028): 49(ptr) Variable Function - 1170(r029): 49(ptr) Variable Function - 1173(r030): 49(ptr) Variable Function - 1177(r031): 49(ptr) Variable Function - 1181(r032): 49(ptr) Variable Function - 1185(r033): 49(ptr) Variable Function - 1188(r034): 49(ptr) Variable Function - 1191(r035): 49(ptr) Variable Function - 1194(r036): 49(ptr) Variable Function - 1199(r037): 49(ptr) Variable Function - 1202(r038): 49(ptr) Variable Function - 1209(r039): 49(ptr) Variable Function - 1212(r049): 49(ptr) Variable Function - 1217(r041): 49(ptr) Variable Function - 1220(r042): 49(ptr) Variable Function - 1224(r043): 49(ptr) Variable Function - 1227(r044): 49(ptr) Variable Function - 1232(r046): 49(ptr) Variable Function - 1057: 48 Load 51(inF0) - 1058: 121(bool) All 1057 - Store 1056(r000) 1058 - 1060: 48 Load 51(inF0) - 1061: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1060 - Store 1059(r001) 1061 - 1062: 48 Load 51(inF0) - 1063: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1062 - 1065: 48 Load 51(inF0) - 1066: 121(bool) Any 1065 - Store 1064(r003) 1066 + 1062(r000): 122(ptr) Variable Function + 1065(r001): 49(ptr) Variable Function + 1070(r003): 122(ptr) Variable Function + 1073(r004): 49(ptr) Variable Function + 1076(r005): 49(ptr) Variable Function + 1079(r006): 49(ptr) Variable Function + 1083(r007): 49(ptr) Variable Function + 1094(r008): 49(ptr) Variable Function + 1099(r009): 49(ptr) Variable Function + 1102(r010): 49(ptr) Variable Function + 1105(r011): 49(ptr) Variable Function + 1108(r012): 49(ptr) Variable Function + 1111(r013): 49(ptr) Variable Function + 1114(r014): 49(ptr) Variable Function + 1117(r015): 49(ptr) Variable Function + 1120(r016): 49(ptr) Variable Function + 1123(r017): 49(ptr) Variable Function + 1126(r018): 7(ptr) Variable Function + 1129(r019): 49(ptr) Variable Function + 1132(R020): 49(ptr) Variable Function + 1135(r021): 49(ptr) Variable Function + 1138(r022): 49(ptr) Variable Function + 1148(r023): 49(ptr) Variable Function + 1151(r024): 49(ptr) Variable Function + 1157(r025): 49(ptr) Variable Function + 1160(r026): 49(ptr) Variable Function + 1164(r026a): 49(ptr) Variable Function + 1169(r027): 49(ptr) Variable Function + 1172(r028): 49(ptr) Variable Function + 1176(r029): 49(ptr) Variable Function + 1179(r030): 49(ptr) Variable Function + 1183(r031): 49(ptr) Variable Function + 1187(r032): 49(ptr) Variable Function + 1191(r033): 49(ptr) Variable Function + 1194(r034): 49(ptr) Variable Function + 1197(r035): 49(ptr) Variable Function + 1200(r036): 49(ptr) Variable Function + 1205(r037): 49(ptr) Variable Function + 1208(r038): 49(ptr) Variable Function + 1215(r039): 49(ptr) Variable Function + 1218(r049): 49(ptr) Variable Function + 1223(r041): 49(ptr) Variable Function + 1226(r042): 49(ptr) Variable Function + 1230(r043): 49(ptr) Variable Function + 1233(r044): 49(ptr) Variable Function + 1238(r046): 49(ptr) Variable Function + 1063: 48 Load 51(inF0) + 1064: 121(bool) All 1063 + Store 1062(r000) 1064 + 1066: 48 Load 51(inF0) + 1067: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1066 + Store 1065(r001) 1067 1068: 48 Load 51(inF0) - 1069: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1068 - Store 1067(r004) 1069 + 1069: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1068 1071: 48 Load 51(inF0) - 1072: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1071 - Store 1070(r005) 1072 + 1072: 121(bool) Any 1071 + Store 1070(r003) 1072 1074: 48 Load 51(inF0) - 1075: 48 Load 52(inF1) - 1076: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1074 1075 - Store 1073(r006) 1076 - 1078: 48 Load 51(inF0) - 1079: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1078 - Store 1077(r007) 1079 + 1075: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1074 + Store 1073(r004) 1075 + 1077: 48 Load 51(inF0) + 1078: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1077 + Store 1076(r005) 1078 1080: 48 Load 51(inF0) - 1083: 1082 FOrdLessThan 1080 1081 - 1084: 121(bool) Any 1083 - SelectionMerge 1086 None - BranchConditional 1084 1085 1086 - 1085: Label + 1081: 48 Load 52(inF1) + 1082: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1080 1081 + Store 1079(r006) 1082 + 1084: 48 Load 51(inF0) + 1085: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1084 + Store 1083(r007) 1085 + 1086: 48 Load 51(inF0) + 1089: 1088 FOrdLessThan 1086 1087 + 1090: 121(bool) Any 1089 + SelectionMerge 1092 None + BranchConditional 1090 1091 1092 + 1091: Label Kill - 1086: Label - 1089: 48 Load 51(inF0) - 1090: 48 Load 52(inF1) - 1091: 48 Load 53(inF2) - 1092: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1089 1090 1091 - Store 1088(r008) 1092 - 1094: 48 Load 51(inF0) - 1095: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1094 - Store 1093(r009) 1095 - 1097: 48 Load 51(inF0) - 1098: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1097 - Store 1096(r010) 1098 + 1092: Label + 1095: 48 Load 51(inF0) + 1096: 48 Load 52(inF1) + 1097: 48 Load 53(inF2) + 1098: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1095 1096 1097 + Store 1094(r008) 1098 1100: 48 Load 51(inF0) - 1101: 48 DPdx 1100 - Store 1099(r011) 1101 + 1101: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1100 + Store 1099(r009) 1101 1103: 48 Load 51(inF0) - 1104: 48 DPdxCoarse 1103 - Store 1102(r012) 1104 + 1104: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1103 + Store 1102(r010) 1104 1106: 48 Load 51(inF0) - 1107: 48 DPdxFine 1106 - Store 1105(r013) 1107 + 1107: 48 DPdx 1106 + Store 1105(r011) 1107 1109: 48 Load 51(inF0) - 1110: 48 DPdy 1109 - Store 1108(r014) 1110 + 1110: 48 DPdxCoarse 1109 + Store 1108(r012) 1110 1112: 48 Load 51(inF0) - 1113: 48 DPdyCoarse 1112 - Store 1111(r015) 1113 + 1113: 48 DPdxFine 1112 + Store 1111(r013) 1113 1115: 48 Load 51(inF0) - 1116: 48 DPdyFine 1115 - Store 1114(r016) 1116 + 1116: 48 DPdy 1115 + Store 1114(r014) 1116 1118: 48 Load 51(inF0) - 1119: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1118 - Store 1117(r017) 1119 + 1119: 48 DPdyCoarse 1118 + Store 1117(r015) 1119 1121: 48 Load 51(inF0) - 1122: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1121 - Store 1120(r018) 1122 + 1122: 48 DPdyFine 1121 + Store 1120(r016) 1122 1124: 48 Load 51(inF0) - 1125: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1124 - Store 1123(r019) 1125 + 1125: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1124 + Store 1123(r017) 1125 1127: 48 Load 51(inF0) - 1128: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1127 - Store 1126(R020) 1128 + 1128: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1127 + Store 1126(r018) 1128 1130: 48 Load 51(inF0) - 1131: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1130 - Store 1129(r021) 1131 + 1131: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1130 + Store 1129(r019) 1131 1133: 48 Load 51(inF0) - 1134: 48 Load 52(inF1) - 1135: 24(fvec2) CompositeExtract 1133 0 - 1136: 24(fvec2) CompositeExtract 1134 0 - 1137: 24(fvec2) FMod 1135 1136 - 1138: 24(fvec2) CompositeExtract 1133 1 - 1139: 24(fvec2) CompositeExtract 1134 1 - 1140: 24(fvec2) FMod 1138 1139 - 1141: 48 CompositeConstruct 1137 1140 - Store 1132(r022) 1141 - 1143: 48 Load 51(inF0) - 1144: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1143 - Store 1142(r023) 1144 - 1146: 48 Load 51(inF0) - 1148:1147(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1146 - 1149: 342(ivec2) CompositeExtract 1148 1 - Store 52(inF1) 1149 - 1150: 48 CompositeExtract 1148 0 - Store 1145(r024) 1150 + 1134: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1133 + Store 1132(R020) 1134 + 1136: 48 Load 51(inF0) + 1137: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1136 + Store 1135(r021) 1137 + 1139: 48 Load 51(inF0) + 1140: 48 Load 52(inF1) + 1141: 24(fvec2) CompositeExtract 1139 0 + 1142: 24(fvec2) CompositeExtract 1140 0 + 1143: 24(fvec2) FMod 1141 1142 + 1144: 24(fvec2) CompositeExtract 1139 1 + 1145: 24(fvec2) CompositeExtract 1140 1 + 1146: 24(fvec2) FMod 1144 1145 + 1147: 48 CompositeConstruct 1143 1146 + Store 1138(r022) 1147 + 1149: 48 Load 51(inF0) + 1150: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1149 + Store 1148(r023) 1150 1152: 48 Load 51(inF0) - 1153: 48 Fwidth 1152 - Store 1151(r025) 1153 - 1155: 48 Load 51(inF0) - 1156: 48 Load 52(inF1) - 1157: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1155 1156 - Store 1154(r026) 1157 - 1159: 48 Load 51(inF0) - 1160: 48 Load 52(inF1) - 1161: 48 Load 53(inF2) - 1162: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1159 1160 1161 - Store 1158(r026a) 1162 - 1164: 48 Load 51(inF0) - 1165: 48 ExtInst 1(GLSL.std.450) 28(Log) 1164 - Store 1163(r027) 1165 - 1167: 48 Load 51(inF0) - 1168: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1167 - 1169: 48 MatrixTimesScalar 1168 253 - Store 1166(r028) 1169 - 1171: 48 Load 51(inF0) - 1172: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1171 - Store 1170(r029) 1172 - 1174: 48 Load 51(inF0) - 1175: 48 Load 52(inF1) - 1176: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1174 1175 - Store 1173(r030) 1176 - 1178: 48 Load 51(inF0) - 1179: 48 Load 52(inF1) - 1180: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1178 1179 - Store 1177(r031) 1180 - 1182: 48 Load 51(inF0) - 1183: 48 Load 52(inF1) - 1184: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1182 1183 - Store 1181(r032) 1184 - 1186: 48 Load 51(inF0) - 1187: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1186 - Store 1185(r033) 1187 - 1189: 48 Load 51(inF0) - 1190: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1189 - Store 1188(r034) 1190 + 1154:1153(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1152 + 1155: 342(ivec2) CompositeExtract 1154 1 + Store 52(inF1) 1155 + 1156: 48 CompositeExtract 1154 0 + Store 1151(r024) 1156 + 1158: 48 Load 51(inF0) + 1159: 48 Fwidth 1158 + Store 1157(r025) 1159 + 1161: 48 Load 51(inF0) + 1162: 48 Load 52(inF1) + 1163: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1161 1162 + Store 1160(r026) 1163 + 1165: 48 Load 51(inF0) + 1166: 48 Load 52(inF1) + 1167: 48 Load 53(inF2) + 1168: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1165 1166 1167 + Store 1164(r026a) 1168 + 1170: 48 Load 51(inF0) + 1171: 48 ExtInst 1(GLSL.std.450) 28(Log) 1170 + Store 1169(r027) 1171 + 1173: 48 Load 51(inF0) + 1174: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1173 + 1175: 48 MatrixTimesScalar 1174 253 + Store 1172(r028) 1175 + 1177: 48 Load 51(inF0) + 1178: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1177 + Store 1176(r029) 1178 + 1180: 48 Load 51(inF0) + 1181: 48 Load 52(inF1) + 1182: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1180 1181 + Store 1179(r030) 1182 + 1184: 48 Load 51(inF0) + 1185: 48 Load 52(inF1) + 1186: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1184 1185 + Store 1183(r031) 1186 + 1188: 48 Load 51(inF0) + 1189: 48 Load 52(inF1) + 1190: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1188 1189 + Store 1187(r032) 1190 1192: 48 Load 51(inF0) - 1193: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1192 - Store 1191(r035) 1193 + 1193: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1192 + Store 1191(r033) 1193 1195: 48 Load 51(inF0) - 1196: 24(fvec2) CompositeConstruct 165 165 - 1197: 24(fvec2) CompositeConstruct 274 274 - 1198: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1195 1196 1197 - Store 1194(r036) 1198 - 1200: 48 Load 51(inF0) - 1201: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1200 - Store 1199(r037) 1201 - 1203: 48 Load 51(inF0) - 1204: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1203 - Store 1202(r038) 1204 - 1205: 48 Load 51(inF0) - 1206: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1205 - Store 52(inF1) 1206 - 1207: 48 Load 51(inF0) - 1208: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1207 - Store 53(inF2) 1208 - 1210: 48 Load 51(inF0) - 1211: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1210 - Store 1209(r039) 1211 + 1196: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1195 + Store 1194(r034) 1196 + 1198: 48 Load 51(inF0) + 1199: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1198 + Store 1197(r035) 1199 + 1201: 48 Load 51(inF0) + 1202: 24(fvec2) CompositeConstruct 165 165 + 1203: 24(fvec2) CompositeConstruct 274 274 + 1204: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1201 1202 1203 + Store 1200(r036) 1204 + 1206: 48 Load 51(inF0) + 1207: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1206 + Store 1205(r037) 1207 + 1209: 48 Load 51(inF0) + 1210: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1209 + Store 1208(r038) 1210 + 1211: 48 Load 51(inF0) + 1212: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1211 + Store 52(inF1) 1212 1213: 48 Load 51(inF0) - 1214: 48 Load 52(inF1) - 1215: 48 Load 53(inF2) - 1216: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1213 1214 1215 - Store 1212(r049) 1216 - 1218: 48 Load 51(inF0) - 1219: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1218 - Store 1217(r041) 1219 - 1221: 48 Load 51(inF0) - 1222: 48 Load 52(inF1) - 1223: 48 ExtInst 1(GLSL.std.450) 48(Step) 1221 1222 - Store 1220(r042) 1223 - 1225: 48 Load 51(inF0) - 1226: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1225 - Store 1224(r043) 1226 - 1228: 48 Load 51(inF0) - 1229: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1228 - Store 1227(r044) 1229 - 1230: 48 Load 51(inF0) - 1231: 48 Transpose 1230 - 1233: 48 Load 51(inF0) - 1234: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1233 - Store 1232(r046) 1234 - ReturnValue 1236 + 1214: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1213 + Store 53(inF2) 1214 + 1216: 48 Load 51(inF0) + 1217: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1216 + Store 1215(r039) 1217 + 1219: 48 Load 51(inF0) + 1220: 48 Load 52(inF1) + 1221: 48 Load 53(inF2) + 1222: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1219 1220 1221 + Store 1218(r049) 1222 + 1224: 48 Load 51(inF0) + 1225: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1224 + Store 1223(r041) 1225 + 1227: 48 Load 51(inF0) + 1228: 48 Load 52(inF1) + 1229: 48 ExtInst 1(GLSL.std.450) 48(Step) 1227 1228 + Store 1226(r042) 1229 + 1231: 48 Load 51(inF0) + 1232: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1231 + Store 1230(r043) 1232 + 1234: 48 Load 51(inF0) + 1235: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1234 + Store 1233(r044) 1235 + 1236: 48 Load 51(inF0) + 1237: 48 Transpose 1236 + 1239: 48 Load 51(inF0) + 1240: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1239 + Store 1238(r046) 1240 + ReturnValue 1242 FunctionEnd 62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58 59(inF0): 57(ptr) FunctionParameter 60(inF1): 57(ptr) FunctionParameter 61(inF2): 57(ptr) FunctionParameter 63: Label - 1239(r000): 122(ptr) Variable Function - 1242(r001): 57(ptr) Variable Function - 1247(r003): 122(ptr) Variable Function - 1250(r004): 57(ptr) Variable Function - 1253(r005): 57(ptr) Variable Function - 1256(r006): 57(ptr) Variable Function - 1260(r007): 57(ptr) Variable Function - 1271(r008): 57(ptr) Variable Function - 1276(r009): 57(ptr) Variable Function - 1279(r010): 57(ptr) Variable Function - 1282(r011): 57(ptr) Variable Function - 1285(r012): 57(ptr) Variable Function - 1288(r013): 57(ptr) Variable Function - 1291(r014): 57(ptr) Variable Function - 1294(r015): 57(ptr) Variable Function - 1297(r016): 57(ptr) Variable Function - 1300(r017): 57(ptr) Variable Function - 1303(r018): 7(ptr) Variable Function - 1306(r019): 57(ptr) Variable Function - 1309(R020): 57(ptr) Variable Function - 1312(r021): 57(ptr) Variable Function - 1315(r022): 57(ptr) Variable Function - 1328(r023): 57(ptr) Variable Function - 1331(r024): 57(ptr) Variable Function - 1337(r025): 57(ptr) Variable Function - 1340(r026): 57(ptr) Variable Function - 1344(r026a): 57(ptr) Variable Function - 1349(r027): 57(ptr) Variable Function - 1352(r028): 57(ptr) Variable Function - 1356(r029): 57(ptr) Variable Function - 1359(r030): 57(ptr) Variable Function - 1363(r031): 57(ptr) Variable Function - 1367(r032): 57(ptr) Variable Function - 1371(r033): 57(ptr) Variable Function - 1374(r034): 57(ptr) Variable Function - 1377(r035): 57(ptr) Variable Function - 1380(r036): 57(ptr) Variable Function - 1385(r037): 57(ptr) Variable Function - 1388(r038): 57(ptr) Variable Function - 1395(r039): 57(ptr) Variable Function - 1398(r049): 57(ptr) Variable Function - 1403(r041): 57(ptr) Variable Function - 1406(r042): 57(ptr) Variable Function - 1410(r043): 57(ptr) Variable Function - 1413(r044): 57(ptr) Variable Function - 1418(r046): 57(ptr) Variable Function - 1240: 56 Load 59(inF0) - 1241: 121(bool) All 1240 - Store 1239(r000) 1241 - 1243: 56 Load 59(inF0) - 1244: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1243 - Store 1242(r001) 1244 - 1245: 56 Load 59(inF0) - 1246: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1245 - 1248: 56 Load 59(inF0) - 1249: 121(bool) Any 1248 - Store 1247(r003) 1249 + 1245(r000): 122(ptr) Variable Function + 1248(r001): 57(ptr) Variable Function + 1253(r003): 122(ptr) Variable Function + 1256(r004): 57(ptr) Variable Function + 1259(r005): 57(ptr) Variable Function + 1262(r006): 57(ptr) Variable Function + 1266(r007): 57(ptr) Variable Function + 1277(r008): 57(ptr) Variable Function + 1282(r009): 57(ptr) Variable Function + 1285(r010): 57(ptr) Variable Function + 1288(r011): 57(ptr) Variable Function + 1291(r012): 57(ptr) Variable Function + 1294(r013): 57(ptr) Variable Function + 1297(r014): 57(ptr) Variable Function + 1300(r015): 57(ptr) Variable Function + 1303(r016): 57(ptr) Variable Function + 1306(r017): 57(ptr) Variable Function + 1309(r018): 7(ptr) Variable Function + 1312(r019): 57(ptr) Variable Function + 1315(R020): 57(ptr) Variable Function + 1318(r021): 57(ptr) Variable Function + 1321(r022): 57(ptr) Variable Function + 1334(r023): 57(ptr) Variable Function + 1337(r024): 57(ptr) Variable Function + 1343(r025): 57(ptr) Variable Function + 1346(r026): 57(ptr) Variable Function + 1350(r026a): 57(ptr) Variable Function + 1355(r027): 57(ptr) Variable Function + 1358(r028): 57(ptr) Variable Function + 1362(r029): 57(ptr) Variable Function + 1365(r030): 57(ptr) Variable Function + 1369(r031): 57(ptr) Variable Function + 1373(r032): 57(ptr) Variable Function + 1377(r033): 57(ptr) Variable Function + 1380(r034): 57(ptr) Variable Function + 1383(r035): 57(ptr) Variable Function + 1386(r036): 57(ptr) Variable Function + 1391(r037): 57(ptr) Variable Function + 1394(r038): 57(ptr) Variable Function + 1401(r039): 57(ptr) Variable Function + 1404(r049): 57(ptr) Variable Function + 1409(r041): 57(ptr) Variable Function + 1412(r042): 57(ptr) Variable Function + 1416(r043): 57(ptr) Variable Function + 1419(r044): 57(ptr) Variable Function + 1424(r046): 57(ptr) Variable Function + 1246: 56 Load 59(inF0) + 1247: 121(bool) All 1246 + Store 1245(r000) 1247 + 1249: 56 Load 59(inF0) + 1250: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1249 + Store 1248(r001) 1250 1251: 56 Load 59(inF0) - 1252: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1251 - Store 1250(r004) 1252 + 1252: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1251 1254: 56 Load 59(inF0) - 1255: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1254 - Store 1253(r005) 1255 + 1255: 121(bool) Any 1254 + Store 1253(r003) 1255 1257: 56 Load 59(inF0) - 1258: 56 Load 60(inF1) - 1259: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1257 1258 - Store 1256(r006) 1259 - 1261: 56 Load 59(inF0) - 1262: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1261 - Store 1260(r007) 1262 + 1258: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1257 + Store 1256(r004) 1258 + 1260: 56 Load 59(inF0) + 1261: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1260 + Store 1259(r005) 1261 1263: 56 Load 59(inF0) - 1266: 1265 FOrdLessThan 1263 1264 - 1267: 121(bool) Any 1266 - SelectionMerge 1269 None - BranchConditional 1267 1268 1269 - 1268: Label + 1264: 56 Load 60(inF1) + 1265: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1263 1264 + Store 1262(r006) 1265 + 1267: 56 Load 59(inF0) + 1268: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1267 + Store 1266(r007) 1268 + 1269: 56 Load 59(inF0) + 1272: 1271 FOrdLessThan 1269 1270 + 1273: 121(bool) Any 1272 + SelectionMerge 1275 None + BranchConditional 1273 1274 1275 + 1274: Label Kill - 1269: Label - 1272: 56 Load 59(inF0) - 1273: 56 Load 60(inF1) - 1274: 56 Load 61(inF2) - 1275: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1272 1273 1274 - Store 1271(r008) 1275 - 1277: 56 Load 59(inF0) - 1278: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1277 - Store 1276(r009) 1278 - 1280: 56 Load 59(inF0) - 1281: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1280 - Store 1279(r010) 1281 + 1275: Label + 1278: 56 Load 59(inF0) + 1279: 56 Load 60(inF1) + 1280: 56 Load 61(inF2) + 1281: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1278 1279 1280 + Store 1277(r008) 1281 1283: 56 Load 59(inF0) - 1284: 56 DPdx 1283 - Store 1282(r011) 1284 + 1284: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1283 + Store 1282(r009) 1284 1286: 56 Load 59(inF0) - 1287: 56 DPdxCoarse 1286 - Store 1285(r012) 1287 + 1287: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1286 + Store 1285(r010) 1287 1289: 56 Load 59(inF0) - 1290: 56 DPdxFine 1289 - Store 1288(r013) 1290 + 1290: 56 DPdx 1289 + Store 1288(r011) 1290 1292: 56 Load 59(inF0) - 1293: 56 DPdy 1292 - Store 1291(r014) 1293 + 1293: 56 DPdxCoarse 1292 + Store 1291(r012) 1293 1295: 56 Load 59(inF0) - 1296: 56 DPdyCoarse 1295 - Store 1294(r015) 1296 + 1296: 56 DPdxFine 1295 + Store 1294(r013) 1296 1298: 56 Load 59(inF0) - 1299: 56 DPdyFine 1298 - Store 1297(r016) 1299 + 1299: 56 DPdy 1298 + Store 1297(r014) 1299 1301: 56 Load 59(inF0) - 1302: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1301 - Store 1300(r017) 1302 + 1302: 56 DPdyCoarse 1301 + Store 1300(r015) 1302 1304: 56 Load 59(inF0) - 1305: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1304 - Store 1303(r018) 1305 + 1305: 56 DPdyFine 1304 + Store 1303(r016) 1305 1307: 56 Load 59(inF0) - 1308: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1307 - Store 1306(r019) 1308 + 1308: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1307 + Store 1306(r017) 1308 1310: 56 Load 59(inF0) - 1311: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1310 - Store 1309(R020) 1311 + 1311: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1310 + Store 1309(r018) 1311 1313: 56 Load 59(inF0) - 1314: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1313 - Store 1312(r021) 1314 + 1314: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1313 + Store 1312(r019) 1314 1316: 56 Load 59(inF0) - 1317: 56 Load 60(inF1) - 1318: 36(fvec3) CompositeExtract 1316 0 - 1319: 36(fvec3) CompositeExtract 1317 0 - 1320: 36(fvec3) FMod 1318 1319 - 1321: 36(fvec3) CompositeExtract 1316 1 - 1322: 36(fvec3) CompositeExtract 1317 1 - 1323: 36(fvec3) FMod 1321 1322 - 1324: 36(fvec3) CompositeExtract 1316 2 - 1325: 36(fvec3) CompositeExtract 1317 2 + 1317: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1316 + Store 1315(R020) 1317 + 1319: 56 Load 59(inF0) + 1320: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1319 + Store 1318(r021) 1320 + 1322: 56 Load 59(inF0) + 1323: 56 Load 60(inF1) + 1324: 36(fvec3) CompositeExtract 1322 0 + 1325: 36(fvec3) CompositeExtract 1323 0 1326: 36(fvec3) FMod 1324 1325 - 1327: 56 CompositeConstruct 1320 1323 1326 - Store 1315(r022) 1327 - 1329: 56 Load 59(inF0) - 1330: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1329 - Store 1328(r023) 1330 - 1332: 56 Load 59(inF0) - 1334:1333(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1332 - 1335: 578(ivec3) CompositeExtract 1334 1 - Store 60(inF1) 1335 - 1336: 56 CompositeExtract 1334 0 - Store 1331(r024) 1336 + 1327: 36(fvec3) CompositeExtract 1322 1 + 1328: 36(fvec3) CompositeExtract 1323 1 + 1329: 36(fvec3) FMod 1327 1328 + 1330: 36(fvec3) CompositeExtract 1322 2 + 1331: 36(fvec3) CompositeExtract 1323 2 + 1332: 36(fvec3) FMod 1330 1331 + 1333: 56 CompositeConstruct 1326 1329 1332 + Store 1321(r022) 1333 + 1335: 56 Load 59(inF0) + 1336: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1335 + Store 1334(r023) 1336 1338: 56 Load 59(inF0) - 1339: 56 Fwidth 1338 - Store 1337(r025) 1339 - 1341: 56 Load 59(inF0) - 1342: 56 Load 60(inF1) - 1343: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1341 1342 - Store 1340(r026) 1343 - 1345: 56 Load 59(inF0) - 1346: 56 Load 60(inF1) - 1347: 56 Load 61(inF2) - 1348: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1345 1346 1347 - Store 1344(r026a) 1348 - 1350: 56 Load 59(inF0) - 1351: 56 ExtInst 1(GLSL.std.450) 28(Log) 1350 - Store 1349(r027) 1351 - 1353: 56 Load 59(inF0) - 1354: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1353 - 1355: 56 MatrixTimesScalar 1354 253 - Store 1352(r028) 1355 - 1357: 56 Load 59(inF0) - 1358: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1357 - Store 1356(r029) 1358 - 1360: 56 Load 59(inF0) - 1361: 56 Load 60(inF1) - 1362: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1360 1361 - Store 1359(r030) 1362 - 1364: 56 Load 59(inF0) - 1365: 56 Load 60(inF1) - 1366: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1364 1365 - Store 1363(r031) 1366 - 1368: 56 Load 59(inF0) - 1369: 56 Load 60(inF1) - 1370: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1368 1369 - Store 1367(r032) 1370 - 1372: 56 Load 59(inF0) - 1373: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1372 - Store 1371(r033) 1373 - 1375: 56 Load 59(inF0) - 1376: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1375 - Store 1374(r034) 1376 + 1340:1339(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1338 + 1341: 578(ivec3) CompositeExtract 1340 1 + Store 60(inF1) 1341 + 1342: 56 CompositeExtract 1340 0 + Store 1337(r024) 1342 + 1344: 56 Load 59(inF0) + 1345: 56 Fwidth 1344 + Store 1343(r025) 1345 + 1347: 56 Load 59(inF0) + 1348: 56 Load 60(inF1) + 1349: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1347 1348 + Store 1346(r026) 1349 + 1351: 56 Load 59(inF0) + 1352: 56 Load 60(inF1) + 1353: 56 Load 61(inF2) + 1354: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1351 1352 1353 + Store 1350(r026a) 1354 + 1356: 56 Load 59(inF0) + 1357: 56 ExtInst 1(GLSL.std.450) 28(Log) 1356 + Store 1355(r027) 1357 + 1359: 56 Load 59(inF0) + 1360: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1359 + 1361: 56 MatrixTimesScalar 1360 253 + Store 1358(r028) 1361 + 1363: 56 Load 59(inF0) + 1364: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1363 + Store 1362(r029) 1364 + 1366: 56 Load 59(inF0) + 1367: 56 Load 60(inF1) + 1368: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1366 1367 + Store 1365(r030) 1368 + 1370: 56 Load 59(inF0) + 1371: 56 Load 60(inF1) + 1372: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1370 1371 + Store 1369(r031) 1372 + 1374: 56 Load 59(inF0) + 1375: 56 Load 60(inF1) + 1376: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1374 1375 + Store 1373(r032) 1376 1378: 56 Load 59(inF0) - 1379: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1378 - Store 1377(r035) 1379 + 1379: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1378 + Store 1377(r033) 1379 1381: 56 Load 59(inF0) - 1382: 36(fvec3) CompositeConstruct 165 165 165 - 1383: 36(fvec3) CompositeConstruct 274 274 274 - 1384: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1381 1382 1383 - Store 1380(r036) 1384 - 1386: 56 Load 59(inF0) - 1387: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1386 - Store 1385(r037) 1387 - 1389: 56 Load 59(inF0) - 1390: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1389 - Store 1388(r038) 1390 - 1391: 56 Load 59(inF0) - 1392: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1391 - Store 60(inF1) 1392 - 1393: 56 Load 59(inF0) - 1394: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1393 - Store 61(inF2) 1394 - 1396: 56 Load 59(inF0) - 1397: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1396 - Store 1395(r039) 1397 + 1382: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1381 + Store 1380(r034) 1382 + 1384: 56 Load 59(inF0) + 1385: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1384 + Store 1383(r035) 1385 + 1387: 56 Load 59(inF0) + 1388: 36(fvec3) CompositeConstruct 165 165 165 + 1389: 36(fvec3) CompositeConstruct 274 274 274 + 1390: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1387 1388 1389 + Store 1386(r036) 1390 + 1392: 56 Load 59(inF0) + 1393: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1392 + Store 1391(r037) 1393 + 1395: 56 Load 59(inF0) + 1396: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1395 + Store 1394(r038) 1396 + 1397: 56 Load 59(inF0) + 1398: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1397 + Store 60(inF1) 1398 1399: 56 Load 59(inF0) - 1400: 56 Load 60(inF1) - 1401: 56 Load 61(inF2) - 1402: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1399 1400 1401 - Store 1398(r049) 1402 - 1404: 56 Load 59(inF0) - 1405: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1404 - Store 1403(r041) 1405 - 1407: 56 Load 59(inF0) - 1408: 56 Load 60(inF1) - 1409: 56 ExtInst 1(GLSL.std.450) 48(Step) 1407 1408 - Store 1406(r042) 1409 - 1411: 56 Load 59(inF0) - 1412: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1411 - Store 1410(r043) 1412 - 1414: 56 Load 59(inF0) - 1415: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1414 - Store 1413(r044) 1415 - 1416: 56 Load 59(inF0) - 1417: 56 Transpose 1416 - 1419: 56 Load 59(inF0) - 1420: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1419 - Store 1418(r046) 1420 - ReturnValue 1422 + 1400: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1399 + Store 61(inF2) 1400 + 1402: 56 Load 59(inF0) + 1403: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1402 + Store 1401(r039) 1403 + 1405: 56 Load 59(inF0) + 1406: 56 Load 60(inF1) + 1407: 56 Load 61(inF2) + 1408: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1405 1406 1407 + Store 1404(r049) 1408 + 1410: 56 Load 59(inF0) + 1411: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1410 + Store 1409(r041) 1411 + 1413: 56 Load 59(inF0) + 1414: 56 Load 60(inF1) + 1415: 56 ExtInst 1(GLSL.std.450) 48(Step) 1413 1414 + Store 1412(r042) 1415 + 1417: 56 Load 59(inF0) + 1418: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1417 + Store 1416(r043) 1418 + 1420: 56 Load 59(inF0) + 1421: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1420 + Store 1419(r044) 1421 + 1422: 56 Load 59(inF0) + 1423: 56 Transpose 1422 + 1425: 56 Load 59(inF0) + 1426: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1425 + Store 1424(r046) 1426 + ReturnValue 1428 FunctionEnd 71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67 68(inF0): 66(ptr) FunctionParameter 69(inF1): 66(ptr) FunctionParameter 70(inF2): 66(ptr) FunctionParameter 72: Label - 1425(r000): 122(ptr) Variable Function - 1428(r001): 66(ptr) Variable Function - 1433(r003): 122(ptr) Variable Function - 1436(r004): 66(ptr) Variable Function - 1439(r005): 66(ptr) Variable Function - 1442(r006): 66(ptr) Variable Function - 1446(r007): 66(ptr) Variable Function - 1457(r008): 66(ptr) Variable Function - 1462(r009): 66(ptr) Variable Function - 1465(r010): 66(ptr) Variable Function - 1468(r011): 66(ptr) Variable Function - 1471(r012): 66(ptr) Variable Function - 1474(r013): 66(ptr) Variable Function - 1477(r014): 66(ptr) Variable Function - 1480(r015): 66(ptr) Variable Function - 1483(r016): 66(ptr) Variable Function - 1486(r017): 66(ptr) Variable Function - 1489(r018): 7(ptr) Variable Function - 1492(r019): 66(ptr) Variable Function - 1495(R020): 66(ptr) Variable Function - 1498(r021): 66(ptr) Variable Function - 1501(r022): 66(ptr) Variable Function - 1517(r023): 66(ptr) Variable Function - 1520(r024): 66(ptr) Variable Function - 1526(r025): 66(ptr) Variable Function - 1529(r026): 66(ptr) Variable Function - 1533(r026a): 66(ptr) Variable Function - 1538(r027): 66(ptr) Variable Function - 1541(r028): 66(ptr) Variable Function - 1545(r029): 66(ptr) Variable Function - 1548(r030): 66(ptr) Variable Function - 1552(r031): 66(ptr) Variable Function - 1556(r032): 66(ptr) Variable Function - 1560(r033): 66(ptr) Variable Function - 1563(r034): 66(ptr) Variable Function - 1566(r035): 66(ptr) Variable Function - 1569(r036): 66(ptr) Variable Function - 1574(r037): 66(ptr) Variable Function - 1577(r038): 66(ptr) Variable Function - 1584(r039): 66(ptr) Variable Function - 1587(r049): 66(ptr) Variable Function - 1592(r041): 66(ptr) Variable Function - 1595(r042): 66(ptr) Variable Function - 1599(r043): 66(ptr) Variable Function - 1602(r044): 66(ptr) Variable Function - 1607(r046): 66(ptr) Variable Function - 1426: 65 Load 68(inF0) - 1427: 121(bool) All 1426 - Store 1425(r000) 1427 - 1429: 65 Load 68(inF0) - 1430: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1429 - Store 1428(r001) 1430 - 1431: 65 Load 68(inF0) - 1432: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1431 - 1434: 65 Load 68(inF0) - 1435: 121(bool) Any 1434 - Store 1433(r003) 1435 + 1431(r000): 122(ptr) Variable Function + 1434(r001): 66(ptr) Variable Function + 1439(r003): 122(ptr) Variable Function + 1442(r004): 66(ptr) Variable Function + 1445(r005): 66(ptr) Variable Function + 1448(r006): 66(ptr) Variable Function + 1452(r007): 66(ptr) Variable Function + 1463(r008): 66(ptr) Variable Function + 1468(r009): 66(ptr) Variable Function + 1471(r010): 66(ptr) Variable Function + 1474(r011): 66(ptr) Variable Function + 1477(r012): 66(ptr) Variable Function + 1480(r013): 66(ptr) Variable Function + 1483(r014): 66(ptr) Variable Function + 1486(r015): 66(ptr) Variable Function + 1489(r016): 66(ptr) Variable Function + 1492(r017): 66(ptr) Variable Function + 1495(r018): 7(ptr) Variable Function + 1498(r019): 66(ptr) Variable Function + 1501(R020): 66(ptr) Variable Function + 1504(r021): 66(ptr) Variable Function + 1507(r022): 66(ptr) Variable Function + 1523(r023): 66(ptr) Variable Function + 1526(r024): 66(ptr) Variable Function + 1532(r025): 66(ptr) Variable Function + 1535(r026): 66(ptr) Variable Function + 1539(r026a): 66(ptr) Variable Function + 1544(r027): 66(ptr) Variable Function + 1547(r028): 66(ptr) Variable Function + 1551(r029): 66(ptr) Variable Function + 1554(r030): 66(ptr) Variable Function + 1558(r031): 66(ptr) Variable Function + 1562(r032): 66(ptr) Variable Function + 1566(r033): 66(ptr) Variable Function + 1569(r034): 66(ptr) Variable Function + 1572(r035): 66(ptr) Variable Function + 1575(r036): 66(ptr) Variable Function + 1580(r037): 66(ptr) Variable Function + 1583(r038): 66(ptr) Variable Function + 1590(r039): 66(ptr) Variable Function + 1593(r049): 66(ptr) Variable Function + 1598(r041): 66(ptr) Variable Function + 1601(r042): 66(ptr) Variable Function + 1605(r043): 66(ptr) Variable Function + 1608(r044): 66(ptr) Variable Function + 1613(r046): 66(ptr) Variable Function + 1432: 65 Load 68(inF0) + 1433: 121(bool) All 1432 + Store 1431(r000) 1433 + 1435: 65 Load 68(inF0) + 1436: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1435 + Store 1434(r001) 1436 1437: 65 Load 68(inF0) - 1438: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1437 - Store 1436(r004) 1438 + 1438: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1437 1440: 65 Load 68(inF0) - 1441: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1440 - Store 1439(r005) 1441 + 1441: 121(bool) Any 1440 + Store 1439(r003) 1441 1443: 65 Load 68(inF0) - 1444: 65 Load 69(inF1) - 1445: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1443 1444 - Store 1442(r006) 1445 - 1447: 65 Load 68(inF0) - 1448: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1447 - Store 1446(r007) 1448 + 1444: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1443 + Store 1442(r004) 1444 + 1446: 65 Load 68(inF0) + 1447: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1446 + Store 1445(r005) 1447 1449: 65 Load 68(inF0) - 1452: 1451 FOrdLessThan 1449 1450 - 1453: 121(bool) Any 1452 - SelectionMerge 1455 None - BranchConditional 1453 1454 1455 - 1454: Label + 1450: 65 Load 69(inF1) + 1451: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1449 1450 + Store 1448(r006) 1451 + 1453: 65 Load 68(inF0) + 1454: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1453 + Store 1452(r007) 1454 + 1455: 65 Load 68(inF0) + 1458: 1457 FOrdLessThan 1455 1456 + 1459: 121(bool) Any 1458 + SelectionMerge 1461 None + BranchConditional 1459 1460 1461 + 1460: Label Kill - 1455: Label - 1458: 65 Load 68(inF0) - 1459: 65 Load 69(inF1) - 1460: 65 Load 70(inF2) - 1461: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1458 1459 1460 - Store 1457(r008) 1461 - 1463: 65 Load 68(inF0) - 1464: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1463 - Store 1462(r009) 1464 - 1466: 65 Load 68(inF0) - 1467: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1466 - Store 1465(r010) 1467 + 1461: Label + 1464: 65 Load 68(inF0) + 1465: 65 Load 69(inF1) + 1466: 65 Load 70(inF2) + 1467: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1464 1465 1466 + Store 1463(r008) 1467 1469: 65 Load 68(inF0) - 1470: 65 DPdx 1469 - Store 1468(r011) 1470 + 1470: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1469 + Store 1468(r009) 1470 1472: 65 Load 68(inF0) - 1473: 65 DPdxCoarse 1472 - Store 1471(r012) 1473 + 1473: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1472 + Store 1471(r010) 1473 1475: 65 Load 68(inF0) - 1476: 65 DPdxFine 1475 - Store 1474(r013) 1476 + 1476: 65 DPdx 1475 + Store 1474(r011) 1476 1478: 65 Load 68(inF0) - 1479: 65 DPdy 1478 - Store 1477(r014) 1479 + 1479: 65 DPdxCoarse 1478 + Store 1477(r012) 1479 1481: 65 Load 68(inF0) - 1482: 65 DPdyCoarse 1481 - Store 1480(r015) 1482 + 1482: 65 DPdxFine 1481 + Store 1480(r013) 1482 1484: 65 Load 68(inF0) - 1485: 65 DPdyFine 1484 - Store 1483(r016) 1485 + 1485: 65 DPdy 1484 + Store 1483(r014) 1485 1487: 65 Load 68(inF0) - 1488: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1487 - Store 1486(r017) 1488 + 1488: 65 DPdyCoarse 1487 + Store 1486(r015) 1488 1490: 65 Load 68(inF0) - 1491: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1490 - Store 1489(r018) 1491 + 1491: 65 DPdyFine 1490 + Store 1489(r016) 1491 1493: 65 Load 68(inF0) - 1494: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1493 - Store 1492(r019) 1494 + 1494: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1493 + Store 1492(r017) 1494 1496: 65 Load 68(inF0) - 1497: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1496 - Store 1495(R020) 1497 + 1497: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1496 + Store 1495(r018) 1497 1499: 65 Load 68(inF0) - 1500: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1499 - Store 1498(r021) 1500 + 1500: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1499 + Store 1498(r019) 1500 1502: 65 Load 68(inF0) - 1503: 65 Load 69(inF1) - 1504: 64(fvec4) CompositeExtract 1502 0 - 1505: 64(fvec4) CompositeExtract 1503 0 - 1506: 64(fvec4) FMod 1504 1505 - 1507: 64(fvec4) CompositeExtract 1502 1 - 1508: 64(fvec4) CompositeExtract 1503 1 - 1509: 64(fvec4) FMod 1507 1508 - 1510: 64(fvec4) CompositeExtract 1502 2 - 1511: 64(fvec4) CompositeExtract 1503 2 + 1503: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1502 + Store 1501(R020) 1503 + 1505: 65 Load 68(inF0) + 1506: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1505 + Store 1504(r021) 1506 + 1508: 65 Load 68(inF0) + 1509: 65 Load 69(inF1) + 1510: 64(fvec4) CompositeExtract 1508 0 + 1511: 64(fvec4) CompositeExtract 1509 0 1512: 64(fvec4) FMod 1510 1511 - 1513: 64(fvec4) CompositeExtract 1502 3 - 1514: 64(fvec4) CompositeExtract 1503 3 + 1513: 64(fvec4) CompositeExtract 1508 1 + 1514: 64(fvec4) CompositeExtract 1509 1 1515: 64(fvec4) FMod 1513 1514 - 1516: 65 CompositeConstruct 1506 1509 1512 1515 - Store 1501(r022) 1516 - 1518: 65 Load 68(inF0) - 1519: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1518 - Store 1517(r023) 1519 - 1521: 65 Load 68(inF0) - 1523:1522(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1521 - 1524: 819(ivec4) CompositeExtract 1523 1 - Store 69(inF1) 1524 - 1525: 65 CompositeExtract 1523 0 - Store 1520(r024) 1525 + 1516: 64(fvec4) CompositeExtract 1508 2 + 1517: 64(fvec4) CompositeExtract 1509 2 + 1518: 64(fvec4) FMod 1516 1517 + 1519: 64(fvec4) CompositeExtract 1508 3 + 1520: 64(fvec4) CompositeExtract 1509 3 + 1521: 64(fvec4) FMod 1519 1520 + 1522: 65 CompositeConstruct 1512 1515 1518 1521 + Store 1507(r022) 1522 + 1524: 65 Load 68(inF0) + 1525: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1524 + Store 1523(r023) 1525 1527: 65 Load 68(inF0) - 1528: 65 Fwidth 1527 - Store 1526(r025) 1528 - 1530: 65 Load 68(inF0) - 1531: 65 Load 69(inF1) - 1532: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1530 1531 - Store 1529(r026) 1532 - 1534: 65 Load 68(inF0) - 1535: 65 Load 69(inF1) - 1536: 65 Load 70(inF2) - 1537: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1534 1535 1536 - Store 1533(r026a) 1537 - 1539: 65 Load 68(inF0) - 1540: 65 ExtInst 1(GLSL.std.450) 28(Log) 1539 - Store 1538(r027) 1540 - 1542: 65 Load 68(inF0) - 1543: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1542 - 1544: 65 MatrixTimesScalar 1543 253 - Store 1541(r028) 1544 - 1546: 65 Load 68(inF0) - 1547: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1546 - Store 1545(r029) 1547 - 1549: 65 Load 68(inF0) - 1550: 65 Load 69(inF1) - 1551: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1549 1550 - Store 1548(r030) 1551 - 1553: 65 Load 68(inF0) - 1554: 65 Load 69(inF1) - 1555: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1553 1554 - Store 1552(r031) 1555 - 1557: 65 Load 68(inF0) - 1558: 65 Load 69(inF1) - 1559: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1557 1558 - Store 1556(r032) 1559 - 1561: 65 Load 68(inF0) - 1562: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1561 - Store 1560(r033) 1562 - 1564: 65 Load 68(inF0) - 1565: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1564 - Store 1563(r034) 1565 + 1529:1528(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1527 + 1530: 825(ivec4) CompositeExtract 1529 1 + Store 69(inF1) 1530 + 1531: 65 CompositeExtract 1529 0 + Store 1526(r024) 1531 + 1533: 65 Load 68(inF0) + 1534: 65 Fwidth 1533 + Store 1532(r025) 1534 + 1536: 65 Load 68(inF0) + 1537: 65 Load 69(inF1) + 1538: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1536 1537 + Store 1535(r026) 1538 + 1540: 65 Load 68(inF0) + 1541: 65 Load 69(inF1) + 1542: 65 Load 70(inF2) + 1543: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1540 1541 1542 + Store 1539(r026a) 1543 + 1545: 65 Load 68(inF0) + 1546: 65 ExtInst 1(GLSL.std.450) 28(Log) 1545 + Store 1544(r027) 1546 + 1548: 65 Load 68(inF0) + 1549: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1548 + 1550: 65 MatrixTimesScalar 1549 253 + Store 1547(r028) 1550 + 1552: 65 Load 68(inF0) + 1553: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1552 + Store 1551(r029) 1553 + 1555: 65 Load 68(inF0) + 1556: 65 Load 69(inF1) + 1557: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1555 1556 + Store 1554(r030) 1557 + 1559: 65 Load 68(inF0) + 1560: 65 Load 69(inF1) + 1561: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1559 1560 + Store 1558(r031) 1561 + 1563: 65 Load 68(inF0) + 1564: 65 Load 69(inF1) + 1565: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1563 1564 + Store 1562(r032) 1565 1567: 65 Load 68(inF0) - 1568: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1567 - Store 1566(r035) 1568 + 1568: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1567 + Store 1566(r033) 1568 1570: 65 Load 68(inF0) - 1571: 64(fvec4) CompositeConstruct 165 165 165 165 - 1572: 64(fvec4) CompositeConstruct 274 274 274 274 - 1573: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1570 1571 1572 - Store 1569(r036) 1573 - 1575: 65 Load 68(inF0) - 1576: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1575 - Store 1574(r037) 1576 - 1578: 65 Load 68(inF0) - 1579: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1578 - Store 1577(r038) 1579 - 1580: 65 Load 68(inF0) - 1581: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1580 - Store 69(inF1) 1581 - 1582: 65 Load 68(inF0) - 1583: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1582 - Store 70(inF2) 1583 - 1585: 65 Load 68(inF0) - 1586: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1585 - Store 1584(r039) 1586 + 1571: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1570 + Store 1569(r034) 1571 + 1573: 65 Load 68(inF0) + 1574: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1573 + Store 1572(r035) 1574 + 1576: 65 Load 68(inF0) + 1577: 64(fvec4) CompositeConstruct 165 165 165 165 + 1578: 64(fvec4) CompositeConstruct 274 274 274 274 + 1579: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1576 1577 1578 + Store 1575(r036) 1579 + 1581: 65 Load 68(inF0) + 1582: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1581 + Store 1580(r037) 1582 + 1584: 65 Load 68(inF0) + 1585: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1584 + Store 1583(r038) 1585 + 1586: 65 Load 68(inF0) + 1587: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1586 + Store 69(inF1) 1587 1588: 65 Load 68(inF0) - 1589: 65 Load 69(inF1) - 1590: 65 Load 70(inF2) - 1591: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1588 1589 1590 - Store 1587(r049) 1591 - 1593: 65 Load 68(inF0) - 1594: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1593 - Store 1592(r041) 1594 - 1596: 65 Load 68(inF0) - 1597: 65 Load 69(inF1) - 1598: 65 ExtInst 1(GLSL.std.450) 48(Step) 1596 1597 - Store 1595(r042) 1598 - 1600: 65 Load 68(inF0) - 1601: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1600 - Store 1599(r043) 1601 - 1603: 65 Load 68(inF0) - 1604: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1603 - Store 1602(r044) 1604 - 1605: 65 Load 68(inF0) - 1606: 65 Transpose 1605 - 1608: 65 Load 68(inF0) - 1609: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1608 - Store 1607(r046) 1609 - ReturnValue 1611 + 1589: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1588 + Store 70(inF2) 1589 + 1591: 65 Load 68(inF0) + 1592: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1591 + Store 1590(r039) 1592 + 1594: 65 Load 68(inF0) + 1595: 65 Load 69(inF1) + 1596: 65 Load 70(inF2) + 1597: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1594 1595 1596 + Store 1593(r049) 1597 + 1599: 65 Load 68(inF0) + 1600: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1599 + Store 1598(r041) 1600 + 1602: 65 Load 68(inF0) + 1603: 65 Load 69(inF1) + 1604: 65 ExtInst 1(GLSL.std.450) 48(Step) 1602 1603 + Store 1601(r042) 1604 + 1606: 65 Load 68(inF0) + 1607: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1606 + Store 1605(r043) 1607 + 1609: 65 Load 68(inF0) + 1610: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1609 + Store 1608(r044) 1610 + 1611: 65 Load 68(inF0) + 1612: 65 Transpose 1611 + 1614: 65 Load 68(inF0) + 1615: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1614 + Store 1613(r046) 1615 + ReturnValue 1617 FunctionEnd 80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73 74(inF0): 7(ptr) FunctionParameter @@ -8086,51 +8110,51 @@ gl_FragCoord origin is upper left 78(inFM0): 49(ptr) FunctionParameter 79(inFM1): 49(ptr) FunctionParameter 81: Label - 1614(r0): 7(ptr) Variable Function - 1618(r1): 25(ptr) Variable Function - 1622(r2): 25(ptr) Variable Function - 1626(r3): 7(ptr) Variable Function - 1630(r4): 25(ptr) Variable Function - 1634(r5): 25(ptr) Variable Function - 1638(r6): 49(ptr) Variable Function - 1642(r7): 49(ptr) Variable Function - 1646(r8): 49(ptr) Variable Function - 1615: 6(float) Load 74(inF0) - 1616: 6(float) Load 75(inF1) - 1617: 6(float) FMul 1615 1616 - Store 1614(r0) 1617 - 1619: 24(fvec2) Load 76(inFV0) - 1620: 6(float) Load 74(inF0) - 1621: 24(fvec2) VectorTimesScalar 1619 1620 - Store 1618(r1) 1621 - 1623: 6(float) Load 74(inF0) - 1624: 24(fvec2) Load 76(inFV0) - 1625: 24(fvec2) VectorTimesScalar 1624 1623 - Store 1622(r2) 1625 - 1627: 24(fvec2) Load 76(inFV0) - 1628: 24(fvec2) Load 77(inFV1) - 1629: 6(float) Dot 1627 1628 - Store 1626(r3) 1629 - 1631: 48 Load 78(inFM0) - 1632: 24(fvec2) Load 76(inFV0) - 1633: 24(fvec2) MatrixTimesVector 1631 1632 - Store 1630(r4) 1633 - 1635: 24(fvec2) Load 76(inFV0) - 1636: 48 Load 78(inFM0) - 1637: 24(fvec2) VectorTimesMatrix 1635 1636 - Store 1634(r5) 1637 - 1639: 48 Load 78(inFM0) - 1640: 6(float) Load 74(inF0) - 1641: 48 MatrixTimesScalar 1639 1640 - Store 1638(r6) 1641 - 1643: 6(float) Load 74(inF0) - 1644: 48 Load 78(inFM0) - 1645: 48 MatrixTimesScalar 1644 1643 - Store 1642(r7) 1645 - 1647: 48 Load 78(inFM0) - 1648: 48 Load 79(inFM1) - 1649: 48 MatrixTimesMatrix 1647 1648 - Store 1646(r8) 1649 + 1620(r0): 7(ptr) Variable Function + 1624(r1): 25(ptr) Variable Function + 1628(r2): 25(ptr) Variable Function + 1632(r3): 7(ptr) Variable Function + 1636(r4): 25(ptr) Variable Function + 1640(r5): 25(ptr) Variable Function + 1644(r6): 49(ptr) Variable Function + 1648(r7): 49(ptr) Variable Function + 1652(r8): 49(ptr) Variable Function + 1621: 6(float) Load 74(inF0) + 1622: 6(float) Load 75(inF1) + 1623: 6(float) FMul 1621 1622 + Store 1620(r0) 1623 + 1625: 24(fvec2) Load 76(inFV0) + 1626: 6(float) Load 74(inF0) + 1627: 24(fvec2) VectorTimesScalar 1625 1626 + Store 1624(r1) 1627 + 1629: 6(float) Load 74(inF0) + 1630: 24(fvec2) Load 76(inFV0) + 1631: 24(fvec2) VectorTimesScalar 1630 1629 + Store 1628(r2) 1631 + 1633: 24(fvec2) Load 76(inFV0) + 1634: 24(fvec2) Load 77(inFV1) + 1635: 6(float) Dot 1633 1634 + Store 1632(r3) 1635 + 1637: 48 Load 78(inFM0) + 1638: 24(fvec2) Load 76(inFV0) + 1639: 24(fvec2) MatrixTimesVector 1637 1638 + Store 1636(r4) 1639 + 1641: 24(fvec2) Load 76(inFV0) + 1642: 48 Load 78(inFM0) + 1643: 24(fvec2) VectorTimesMatrix 1641 1642 + Store 1640(r5) 1643 + 1645: 48 Load 78(inFM0) + 1646: 6(float) Load 74(inF0) + 1647: 48 MatrixTimesScalar 1645 1646 + Store 1644(r6) 1647 + 1649: 6(float) Load 74(inF0) + 1650: 48 Load 78(inFM0) + 1651: 48 MatrixTimesScalar 1650 1649 + Store 1648(r7) 1651 + 1653: 48 Load 78(inFM0) + 1654: 48 Load 79(inFM1) + 1655: 48 MatrixTimesMatrix 1653 1654 + Store 1652(r8) 1655 Return FunctionEnd 89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82 @@ -8141,51 +8165,51 @@ gl_FragCoord origin is upper left 87(inFM0): 57(ptr) FunctionParameter 88(inFM1): 57(ptr) FunctionParameter 90: Label - 1650(r0): 7(ptr) Variable Function - 1654(r1): 37(ptr) Variable Function - 1658(r2): 37(ptr) Variable Function - 1662(r3): 7(ptr) Variable Function - 1666(r4): 37(ptr) Variable Function - 1670(r5): 37(ptr) Variable Function - 1674(r6): 57(ptr) Variable Function - 1678(r7): 57(ptr) Variable Function - 1682(r8): 57(ptr) Variable Function - 1651: 6(float) Load 83(inF0) - 1652: 6(float) Load 84(inF1) - 1653: 6(float) FMul 1651 1652 - Store 1650(r0) 1653 - 1655: 36(fvec3) Load 85(inFV0) - 1656: 6(float) Load 83(inF0) - 1657: 36(fvec3) VectorTimesScalar 1655 1656 - Store 1654(r1) 1657 - 1659: 6(float) Load 83(inF0) - 1660: 36(fvec3) Load 85(inFV0) - 1661: 36(fvec3) VectorTimesScalar 1660 1659 - Store 1658(r2) 1661 - 1663: 36(fvec3) Load 85(inFV0) - 1664: 36(fvec3) Load 86(inFV1) - 1665: 6(float) Dot 1663 1664 - Store 1662(r3) 1665 - 1667: 56 Load 87(inFM0) - 1668: 36(fvec3) Load 85(inFV0) - 1669: 36(fvec3) MatrixTimesVector 1667 1668 - Store 1666(r4) 1669 - 1671: 36(fvec3) Load 85(inFV0) - 1672: 56 Load 87(inFM0) - 1673: 36(fvec3) VectorTimesMatrix 1671 1672 - Store 1670(r5) 1673 - 1675: 56 Load 87(inFM0) - 1676: 6(float) Load 83(inF0) - 1677: 56 MatrixTimesScalar 1675 1676 - Store 1674(r6) 1677 - 1679: 6(float) Load 83(inF0) - 1680: 56 Load 87(inFM0) - 1681: 56 MatrixTimesScalar 1680 1679 - Store 1678(r7) 1681 - 1683: 56 Load 87(inFM0) - 1684: 56 Load 88(inFM1) - 1685: 56 MatrixTimesMatrix 1683 1684 - Store 1682(r8) 1685 + 1656(r0): 7(ptr) Variable Function + 1660(r1): 37(ptr) Variable Function + 1664(r2): 37(ptr) Variable Function + 1668(r3): 7(ptr) Variable Function + 1672(r4): 37(ptr) Variable Function + 1676(r5): 37(ptr) Variable Function + 1680(r6): 57(ptr) Variable Function + 1684(r7): 57(ptr) Variable Function + 1688(r8): 57(ptr) Variable Function + 1657: 6(float) Load 83(inF0) + 1658: 6(float) Load 84(inF1) + 1659: 6(float) FMul 1657 1658 + Store 1656(r0) 1659 + 1661: 36(fvec3) Load 85(inFV0) + 1662: 6(float) Load 83(inF0) + 1663: 36(fvec3) VectorTimesScalar 1661 1662 + Store 1660(r1) 1663 + 1665: 6(float) Load 83(inF0) + 1666: 36(fvec3) Load 85(inFV0) + 1667: 36(fvec3) VectorTimesScalar 1666 1665 + Store 1664(r2) 1667 + 1669: 36(fvec3) Load 85(inFV0) + 1670: 36(fvec3) Load 86(inFV1) + 1671: 6(float) Dot 1669 1670 + Store 1668(r3) 1671 + 1673: 56 Load 87(inFM0) + 1674: 36(fvec3) Load 85(inFV0) + 1675: 36(fvec3) MatrixTimesVector 1673 1674 + Store 1672(r4) 1675 + 1677: 36(fvec3) Load 85(inFV0) + 1678: 56 Load 87(inFM0) + 1679: 36(fvec3) VectorTimesMatrix 1677 1678 + Store 1676(r5) 1679 + 1681: 56 Load 87(inFM0) + 1682: 6(float) Load 83(inF0) + 1683: 56 MatrixTimesScalar 1681 1682 + Store 1680(r6) 1683 + 1685: 6(float) Load 83(inF0) + 1686: 56 Load 87(inFM0) + 1687: 56 MatrixTimesScalar 1686 1685 + Store 1684(r7) 1687 + 1689: 56 Load 87(inFM0) + 1690: 56 Load 88(inFM1) + 1691: 56 MatrixTimesMatrix 1689 1690 + Store 1688(r8) 1691 Return FunctionEnd 99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92 @@ -8196,51 +8220,51 @@ gl_FragCoord origin is upper left 97(inFM0): 66(ptr) FunctionParameter 98(inFM1): 66(ptr) FunctionParameter 100: Label - 1686(r0): 7(ptr) Variable Function - 1690(r1): 91(ptr) Variable Function - 1694(r2): 91(ptr) Variable Function - 1698(r3): 7(ptr) Variable Function - 1702(r4): 91(ptr) Variable Function - 1706(r5): 91(ptr) Variable Function - 1710(r6): 66(ptr) Variable Function - 1714(r7): 66(ptr) Variable Function - 1718(r8): 66(ptr) Variable Function - 1687: 6(float) Load 93(inF0) - 1688: 6(float) Load 94(inF1) - 1689: 6(float) FMul 1687 1688 - Store 1686(r0) 1689 - 1691: 64(fvec4) Load 95(inFV0) - 1692: 6(float) Load 93(inF0) - 1693: 64(fvec4) VectorTimesScalar 1691 1692 - Store 1690(r1) 1693 - 1695: 6(float) Load 93(inF0) - 1696: 64(fvec4) Load 95(inFV0) - 1697: 64(fvec4) VectorTimesScalar 1696 1695 - Store 1694(r2) 1697 - 1699: 64(fvec4) Load 95(inFV0) - 1700: 64(fvec4) Load 96(inFV1) - 1701: 6(float) Dot 1699 1700 - Store 1698(r3) 1701 - 1703: 65 Load 97(inFM0) - 1704: 64(fvec4) Load 95(inFV0) - 1705: 64(fvec4) MatrixTimesVector 1703 1704 - Store 1702(r4) 1705 - 1707: 64(fvec4) Load 95(inFV0) - 1708: 65 Load 97(inFM0) - 1709: 64(fvec4) VectorTimesMatrix 1707 1708 - Store 1706(r5) 1709 - 1711: 65 Load 97(inFM0) - 1712: 6(float) Load 93(inF0) - 1713: 65 MatrixTimesScalar 1711 1712 - Store 1710(r6) 1713 - 1715: 6(float) Load 93(inF0) - 1716: 65 Load 97(inFM0) - 1717: 65 MatrixTimesScalar 1716 1715 - Store 1714(r7) 1717 - 1719: 65 Load 97(inFM0) - 1720: 65 Load 98(inFM1) - 1721: 65 MatrixTimesMatrix 1719 1720 - Store 1718(r8) 1721 + 1692(r0): 7(ptr) Variable Function + 1696(r1): 91(ptr) Variable Function + 1700(r2): 91(ptr) Variable Function + 1704(r3): 7(ptr) Variable Function + 1708(r4): 91(ptr) Variable Function + 1712(r5): 91(ptr) Variable Function + 1716(r6): 66(ptr) Variable Function + 1720(r7): 66(ptr) Variable Function + 1724(r8): 66(ptr) Variable Function + 1693: 6(float) Load 93(inF0) + 1694: 6(float) Load 94(inF1) + 1695: 6(float) FMul 1693 1694 + Store 1692(r0) 1695 + 1697: 64(fvec4) Load 95(inFV0) + 1698: 6(float) Load 93(inF0) + 1699: 64(fvec4) VectorTimesScalar 1697 1698 + Store 1696(r1) 1699 + 1701: 6(float) Load 93(inF0) + 1702: 64(fvec4) Load 95(inFV0) + 1703: 64(fvec4) VectorTimesScalar 1702 1701 + Store 1700(r2) 1703 + 1705: 64(fvec4) Load 95(inFV0) + 1706: 64(fvec4) Load 96(inFV1) + 1707: 6(float) Dot 1705 1706 + Store 1704(r3) 1707 + 1709: 65 Load 97(inFM0) + 1710: 64(fvec4) Load 95(inFV0) + 1711: 64(fvec4) MatrixTimesVector 1709 1710 + Store 1708(r4) 1711 + 1713: 64(fvec4) Load 95(inFV0) + 1714: 65 Load 97(inFM0) + 1715: 64(fvec4) VectorTimesMatrix 1713 1714 + Store 1712(r5) 1715 + 1717: 65 Load 97(inFM0) + 1718: 6(float) Load 93(inF0) + 1719: 65 MatrixTimesScalar 1717 1718 + Store 1716(r6) 1719 + 1721: 6(float) Load 93(inF0) + 1722: 65 Load 97(inFM0) + 1723: 65 MatrixTimesScalar 1722 1721 + Store 1720(r7) 1723 + 1725: 65 Load 97(inFM0) + 1726: 65 Load 98(inFM1) + 1727: 65 MatrixTimesMatrix 1725 1726 + Store 1724(r8) 1727 Return FunctionEnd 119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109 @@ -8254,90 +8278,90 @@ gl_FragCoord origin is upper left 117(inFM3x4): 106(ptr) FunctionParameter 118(inFM2x4): 108(ptr) FunctionParameter 120: Label - 1722(r00): 7(ptr) Variable Function - 1726(r01): 25(ptr) Variable Function - 1730(r02): 37(ptr) Variable Function - 1734(r03): 25(ptr) Variable Function - 1738(r04): 37(ptr) Variable Function - 1742(r05): 7(ptr) Variable Function - 1746(r06): 7(ptr) Variable Function - 1750(r07): 37(ptr) Variable Function - 1754(r08): 25(ptr) Variable Function - 1758(r09): 25(ptr) Variable Function - 1762(r10): 37(ptr) Variable Function - 1766(r11): 102(ptr) Variable Function - 1770(r12): 104(ptr) Variable Function - 1774(r13): 49(ptr) Variable Function - 1778(r14): 102(ptr) Variable Function - 1782(r15): 108(ptr) Variable Function - 1786(r16): 106(ptr) Variable Function - 1723: 6(float) Load 110(inF0) - 1724: 6(float) Load 111(inF1) - 1725: 6(float) FMul 1723 1724 - Store 1722(r00) 1725 - 1727: 24(fvec2) Load 112(inFV2) - 1728: 6(float) Load 110(inF0) - 1729: 24(fvec2) VectorTimesScalar 1727 1728 - Store 1726(r01) 1729 - 1731: 36(fvec3) Load 113(inFV3) - 1732: 6(float) Load 110(inF0) - 1733: 36(fvec3) VectorTimesScalar 1731 1732 - Store 1730(r02) 1733 - 1735: 6(float) Load 110(inF0) - 1736: 24(fvec2) Load 112(inFV2) - 1737: 24(fvec2) VectorTimesScalar 1736 1735 - Store 1734(r03) 1737 - 1739: 6(float) Load 110(inF0) - 1740: 36(fvec3) Load 113(inFV3) - 1741: 36(fvec3) VectorTimesScalar 1740 1739 - Store 1738(r04) 1741 - 1743: 24(fvec2) Load 112(inFV2) - 1744: 24(fvec2) Load 112(inFV2) - 1745: 6(float) Dot 1743 1744 - Store 1742(r05) 1745 - 1747: 36(fvec3) Load 113(inFV3) - 1748: 36(fvec3) Load 113(inFV3) - 1749: 6(float) Dot 1747 1748 - Store 1746(r06) 1749 - 1751: 24(fvec2) Load 112(inFV2) - 1752: 101 Load 114(inFM2x3) - 1753: 36(fvec3) VectorTimesMatrix 1751 1752 - Store 1750(r07) 1753 - 1755: 36(fvec3) Load 113(inFV3) - 1756: 103 Load 115(inFM3x2) - 1757: 24(fvec2) VectorTimesMatrix 1755 1756 - Store 1754(r08) 1757 - 1759: 101 Load 114(inFM2x3) - 1760: 36(fvec3) Load 113(inFV3) - 1761: 24(fvec2) MatrixTimesVector 1759 1760 - Store 1758(r09) 1761 - 1763: 103 Load 115(inFM3x2) - 1764: 24(fvec2) Load 112(inFV2) - 1765: 36(fvec3) MatrixTimesVector 1763 1764 - Store 1762(r10) 1765 - 1767: 101 Load 114(inFM2x3) - 1768: 6(float) Load 110(inF0) - 1769: 101 MatrixTimesScalar 1767 1768 - Store 1766(r11) 1769 - 1771: 103 Load 115(inFM3x2) - 1772: 6(float) Load 110(inF0) - 1773: 103 MatrixTimesScalar 1771 1772 - Store 1770(r12) 1773 - 1775: 101 Load 114(inFM2x3) - 1776: 103 Load 115(inFM3x2) - 1777: 48 MatrixTimesMatrix 1775 1776 - Store 1774(r13) 1777 - 1779: 101 Load 114(inFM2x3) - 1780: 56 Load 116(inFM3x3) - 1781: 101 MatrixTimesMatrix 1779 1780 - Store 1778(r14) 1781 - 1783: 101 Load 114(inFM2x3) - 1784: 105 Load 117(inFM3x4) - 1785: 107 MatrixTimesMatrix 1783 1784 - Store 1782(r15) 1785 - 1787: 103 Load 115(inFM3x2) - 1788: 107 Load 118(inFM2x4) - 1789: 105 MatrixTimesMatrix 1787 1788 - Store 1786(r16) 1789 + 1728(r00): 7(ptr) Variable Function + 1732(r01): 25(ptr) Variable Function + 1736(r02): 37(ptr) Variable Function + 1740(r03): 25(ptr) Variable Function + 1744(r04): 37(ptr) Variable Function + 1748(r05): 7(ptr) Variable Function + 1752(r06): 7(ptr) Variable Function + 1756(r07): 37(ptr) Variable Function + 1760(r08): 25(ptr) Variable Function + 1764(r09): 25(ptr) Variable Function + 1768(r10): 37(ptr) Variable Function + 1772(r11): 102(ptr) Variable Function + 1776(r12): 104(ptr) Variable Function + 1780(r13): 49(ptr) Variable Function + 1784(r14): 102(ptr) Variable Function + 1788(r15): 108(ptr) Variable Function + 1792(r16): 106(ptr) Variable Function + 1729: 6(float) Load 110(inF0) + 1730: 6(float) Load 111(inF1) + 1731: 6(float) FMul 1729 1730 + Store 1728(r00) 1731 + 1733: 24(fvec2) Load 112(inFV2) + 1734: 6(float) Load 110(inF0) + 1735: 24(fvec2) VectorTimesScalar 1733 1734 + Store 1732(r01) 1735 + 1737: 36(fvec3) Load 113(inFV3) + 1738: 6(float) Load 110(inF0) + 1739: 36(fvec3) VectorTimesScalar 1737 1738 + Store 1736(r02) 1739 + 1741: 6(float) Load 110(inF0) + 1742: 24(fvec2) Load 112(inFV2) + 1743: 24(fvec2) VectorTimesScalar 1742 1741 + Store 1740(r03) 1743 + 1745: 6(float) Load 110(inF0) + 1746: 36(fvec3) Load 113(inFV3) + 1747: 36(fvec3) VectorTimesScalar 1746 1745 + Store 1744(r04) 1747 + 1749: 24(fvec2) Load 112(inFV2) + 1750: 24(fvec2) Load 112(inFV2) + 1751: 6(float) Dot 1749 1750 + Store 1748(r05) 1751 + 1753: 36(fvec3) Load 113(inFV3) + 1754: 36(fvec3) Load 113(inFV3) + 1755: 6(float) Dot 1753 1754 + Store 1752(r06) 1755 + 1757: 24(fvec2) Load 112(inFV2) + 1758: 101 Load 114(inFM2x3) + 1759: 36(fvec3) VectorTimesMatrix 1757 1758 + Store 1756(r07) 1759 + 1761: 36(fvec3) Load 113(inFV3) + 1762: 103 Load 115(inFM3x2) + 1763: 24(fvec2) VectorTimesMatrix 1761 1762 + Store 1760(r08) 1763 + 1765: 101 Load 114(inFM2x3) + 1766: 36(fvec3) Load 113(inFV3) + 1767: 24(fvec2) MatrixTimesVector 1765 1766 + Store 1764(r09) 1767 + 1769: 103 Load 115(inFM3x2) + 1770: 24(fvec2) Load 112(inFV2) + 1771: 36(fvec3) MatrixTimesVector 1769 1770 + Store 1768(r10) 1771 + 1773: 101 Load 114(inFM2x3) + 1774: 6(float) Load 110(inF0) + 1775: 101 MatrixTimesScalar 1773 1774 + Store 1772(r11) 1775 + 1777: 103 Load 115(inFM3x2) + 1778: 6(float) Load 110(inF0) + 1779: 103 MatrixTimesScalar 1777 1778 + Store 1776(r12) 1779 + 1781: 101 Load 114(inFM2x3) + 1782: 103 Load 115(inFM3x2) + 1783: 48 MatrixTimesMatrix 1781 1782 + Store 1780(r13) 1783 + 1785: 101 Load 114(inFM2x3) + 1786: 56 Load 116(inFM3x3) + 1787: 101 MatrixTimesMatrix 1785 1786 + Store 1784(r14) 1787 + 1789: 101 Load 114(inFM2x3) + 1790: 105 Load 117(inFM3x4) + 1791: 107 MatrixTimesMatrix 1789 1790 + Store 1788(r15) 1791 + 1793: 103 Load 115(inFM3x2) + 1794: 107 Load 118(inFM2x4) + 1795: 105 MatrixTimesMatrix 1793 1794 + Store 1792(r16) 1795 Return FunctionEnd diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index dd417a10..b55c2428 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -223,6 +223,7 @@ float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u bool3 r041 = isnan(inF0); float3 r042 = ldexp(inF0, inF1); float3 r039a = lerp(inF0, inF1, inF2); + float3 r039b = lerp(inF0, inF1, 0.3); // test vec,vec,scalar lerp float r043 = length(inF0); float3 r044 = log(inF0); float3 r045 = log10(inF0); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index edfba9cb..5876715b 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -531,7 +531,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "length", "S", "F", "V", "F", EShLangAll }, - { "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, + { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll }, + { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll }, { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, From 2de329112b8e214602db6524017a8da1b1ad4533 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 28 Jul 2016 14:49:48 -0600 Subject: [PATCH 036/217] HLSL: allow uint literals, and add test for numeric suffixes --- .../baseResults/hlsl.numericsuffixes.frag.out | 181 ++++++++++++++++++ Test/hlsl.numericsuffixes.frag | 20 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 3 + hlsl/hlslParseHelper.h | 1 - 5 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 Test/baseResults/hlsl.numericsuffixes.frag.out create mode 100644 Test/hlsl.numericsuffixes.frag diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out new file mode 100644 index 00000000..46fcddbf --- /dev/null +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -0,0 +1,181 @@ +hlsl.numericsuffixes.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child (temp float) +0:7 'r00' (temp float) +0:7 Constant: +0:7 1.000000 +0:8 Sequence +0:8 move second child to first child (temp uint) +0:8 'r01' (temp uint) +0:8 Constant: +0:8 1 (const uint) +0:9 Sequence +0:9 move second child to first child (temp uint) +0:9 'r02' (temp uint) +0:9 Constant: +0:9 2 (const uint) +0:10 Sequence +0:10 move second child to first child (temp uint) +0:10 'r03' (temp uint) +0:10 Constant: +0:10 2748 (const uint) +0:11 Sequence +0:11 move second child to first child (temp uint) +0:11 'r04' (temp uint) +0:11 Constant: +0:11 2748 (const uint) +0:12 Sequence +0:12 move second child to first child (temp int) +0:12 'r05' (temp int) +0:12 Constant: +0:12 5 (const int) +0:13 Sequence +0:13 move second child to first child (temp int) +0:13 'r06' (temp int) +0:13 Constant: +0:13 6 (const int) +0:14 Sequence +0:14 move second child to first child (temp int) +0:14 'r07' (temp int) +0:14 Constant: +0:14 57 (const int) +0:15 Sequence +0:15 move second child to first child (temp uint) +0:15 'r08' (temp uint) +0:15 Constant: +0:15 58 (const uint) +0:19 Branch: Return with expression +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Parameters: +0:? Sequence +0:7 Sequence +0:7 move second child to first child (temp float) +0:7 'r00' (temp float) +0:7 Constant: +0:7 1.000000 +0:8 Sequence +0:8 move second child to first child (temp uint) +0:8 'r01' (temp uint) +0:8 Constant: +0:8 1 (const uint) +0:9 Sequence +0:9 move second child to first child (temp uint) +0:9 'r02' (temp uint) +0:9 Constant: +0:9 2 (const uint) +0:10 Sequence +0:10 move second child to first child (temp uint) +0:10 'r03' (temp uint) +0:10 Constant: +0:10 2748 (const uint) +0:11 Sequence +0:11 move second child to first child (temp uint) +0:11 'r04' (temp uint) +0:11 Constant: +0:11 2748 (const uint) +0:12 Sequence +0:12 move second child to first child (temp int) +0:12 'r05' (temp int) +0:12 Constant: +0:12 5 (const int) +0:13 Sequence +0:13 move second child to first child (temp int) +0:13 'r06' (temp int) +0:13 Constant: +0:13 6 (const int) +0:14 Sequence +0:14 move second child to first child (temp int) +0:14 'r07' (temp int) +0:14 Constant: +0:14 57 (const int) +0:15 Sequence +0:15 move second child to first child (temp uint) +0:15 'r08' (temp uint) +0:15 Constant: +0:15 58 (const uint) +0:19 Branch: Return with expression +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "r00" + Name 12 "r01" + Name 14 "r02" + Name 16 "r03" + Name 18 "r04" + Name 21 "r05" + Name 23 "r06" + Name 25 "r07" + Name 27 "r08" + Name 30 "PS_OUTPUT" + MemberName 30(PS_OUTPUT) 0 "color" + Name 32 "ps_output" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1065353216 + 10: TypeInt 32 0 + 11: TypePointer Function 10(int) + 13: 10(int) Constant 1 + 15: 10(int) Constant 2 + 17: 10(int) Constant 2748 + 19: TypeInt 32 1 + 20: TypePointer Function 19(int) + 22: 19(int) Constant 5 + 24: 19(int) Constant 6 + 26: 19(int) Constant 57 + 28: 10(int) Constant 58 + 29: TypeVector 6(float) 4 + 30(PS_OUTPUT): TypeStruct 29(fvec4) + 31: TypePointer Function 30(PS_OUTPUT) + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 12(r01): 11(ptr) Variable Function + 14(r02): 11(ptr) Variable Function + 16(r03): 11(ptr) Variable Function + 18(r04): 11(ptr) Variable Function + 21(r05): 20(ptr) Variable Function + 23(r06): 20(ptr) Variable Function + 25(r07): 20(ptr) Variable Function + 27(r08): 11(ptr) Variable Function + 32(ps_output): 31(ptr) Variable Function + Store 8(r00) 9 + Store 12(r01) 13 + Store 14(r02) 15 + Store 16(r03) 17 + Store 18(r04) 17 + Store 21(r05) 22 + Store 23(r06) 24 + Store 25(r07) 26 + Store 27(r08) 28 + 33:30(PS_OUTPUT) Load 32(ps_output) + ReturnValue 33 + FunctionEnd diff --git a/Test/hlsl.numericsuffixes.frag b/Test/hlsl.numericsuffixes.frag new file mode 100644 index 00000000..60b2572f --- /dev/null +++ b/Test/hlsl.numericsuffixes.frag @@ -0,0 +1,20 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + // Test numeric suffixes + float r00 = 1.0f; // float + uint r01 = 1u; // lower uint + uint r02 = 2U; // upper uint + uint r03 = 0xabcu; // lower hex uint + uint r04 = 0xABCU; // upper hex uint (upper 0X is not accepted) + int r05 = 5l; // lower long int + int r06 = 6L; // upper long int + int r07 = 071; // octal + uint r08 = 072u; // unsigned octal + + PS_OUTPUT ps_output; + ps_output.color = r07; // gets 71 octal = 57 decimal + return ps_output; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index e4cb4b06..6128585b 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -112,6 +112,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3c965600..48e2672a 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1960,6 +1960,9 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) case EHTokIntConstant: node = intermediate.addConstantUnion(token.i, token.loc, true); break; + case EHTokUintConstant: + node = intermediate.addConstantUnion(token.u, token.loc, true); + break; case EHTokFloatConstant: node = intermediate.addConstantUnion(token.d, EbtFloat, token.loc, true); break; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index a3ca85bb..a5e7f723 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -51,7 +51,6 @@ public: void setLimits(const TBuiltInResource&); bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); - void getPreamble(std::string&); void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...); From a26a5170a3b79df97b96d607ddcbe42fa222028d Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 28 Jul 2016 15:29:35 -0600 Subject: [PATCH 037/217] Non-functional: Rationalize location and use of mapTypeToConstructor(). --- glslang/Include/revision.h | 4 +- glslang/MachineIndependent/Intermediate.cpp | 144 ++++++++++++++++ glslang/MachineIndependent/ParseHelper.cpp | 157 +----------------- glslang/MachineIndependent/ParseHelper.h | 3 +- .../MachineIndependent/localintermediate.h | 1 + hlsl/hlslParseHelper.cpp | 139 +--------------- hlsl/hlslParseHelper.h | 3 +- 7 files changed, 163 insertions(+), 288 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index c3344c1c..62bce053 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1353" -#define GLSLANG_DATE "27-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1354" +#define GLSLANG_DATE "28-Jul-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 02681ac5..de83e441 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -751,6 +751,150 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to) const } } +// +// Given a type, find what operation would fully construct it. +// +TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const +{ + TOperator op = EOpNull; + + switch (type.getBasicType()) { + case EbtStruct: + op = EOpConstructStruct; + break; + case EbtSampler: + if (type.getSampler().combined) + op = EOpConstructTextureSampler; + break; + case EbtFloat: + if (type.isMatrix()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructMat2x2; break; + case 3: op = EOpConstructMat2x3; break; + case 4: op = EOpConstructMat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructMat3x2; break; + case 3: op = EOpConstructMat3x3; break; + case 4: op = EOpConstructMat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructMat4x2; break; + case 3: op = EOpConstructMat4x3; break; + case 4: op = EOpConstructMat4x4; break; + default: break; // some compilers want this + } + break; + default: break; // some compilers want this + } + } else { + switch(type.getVectorSize()) { + case 1: op = EOpConstructFloat; break; + case 2: op = EOpConstructVec2; break; + case 3: op = EOpConstructVec3; break; + case 4: op = EOpConstructVec4; break; + default: break; // some compilers want this + } + } + break; + case EbtDouble: + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructDMat2x2; break; + case 3: op = EOpConstructDMat2x3; break; + case 4: op = EOpConstructDMat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructDMat3x2; break; + case 3: op = EOpConstructDMat3x3; break; + case 4: op = EOpConstructDMat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructDMat4x2; break; + case 3: op = EOpConstructDMat4x3; break; + case 4: op = EOpConstructDMat4x4; break; + default: break; // some compilers want this + } + break; + } + } else { + switch(type.getVectorSize()) { + case 1: op = EOpConstructDouble; break; + case 2: op = EOpConstructDVec2; break; + case 3: op = EOpConstructDVec3; break; + case 4: op = EOpConstructDVec4; break; + default: break; // some compilers want this + } + } + break; + case EbtInt: + switch(type.getVectorSize()) { + case 1: op = EOpConstructInt; break; + case 2: op = EOpConstructIVec2; break; + case 3: op = EOpConstructIVec3; break; + case 4: op = EOpConstructIVec4; break; + default: break; // some compilers want this + } + break; + case EbtUint: + switch(type.getVectorSize()) { + case 1: op = EOpConstructUint; break; + case 2: op = EOpConstructUVec2; break; + case 3: op = EOpConstructUVec3; break; + case 4: op = EOpConstructUVec4; break; + default: break; // some compilers want this + } + break; + case EbtInt64: + switch(type.getVectorSize()) { + case 1: op = EOpConstructInt64; break; + case 2: op = EOpConstructI64Vec2; break; + case 3: op = EOpConstructI64Vec3; break; + case 4: op = EOpConstructI64Vec4; break; + default: break; // some compilers want this + } + break; + case EbtUint64: + switch(type.getVectorSize()) { + case 1: op = EOpConstructUint64; break; + case 2: op = EOpConstructU64Vec2; break; + case 3: op = EOpConstructU64Vec3; break; + case 4: op = EOpConstructU64Vec4; break; + default: break; // some compilers want this + } + break; + case EbtBool: + switch(type.getVectorSize()) { + case 1: op = EOpConstructBool; break; + case 2: op = EOpConstructBVec2; break; + case 3: op = EOpConstructBVec3; break; + case 4: op = EOpConstructBVec4; break; + default: break; // some compilers want this + } + break; + default: + break; + } + + return op; +} + // // Safe way to combine two nodes into an aggregate. Works with null pointers, // a node that's not a aggregate yet, etc. diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 173969a0..c2bf7a38 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -850,7 +850,7 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm // Swizzle operations propagate specialization-constantness if (base->getQualifier().isSpecConstant()) type.getQualifier().makeSpecConstant(); - return addConstructor(loc, base, type, mapTypeToConstructorOp(type)); + return addConstructor(loc, base, type); } } @@ -1092,7 +1092,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction // // It's a constructor, of type 'type'. // - result = addConstructor(loc, arguments, type, op); + result = addConstructor(loc, arguments, type); if (result == nullptr) error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), ""); } @@ -1736,7 +1736,7 @@ TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPu profileRequires(loc, EEsProfile, 300, nullptr, "arrayed constructor"); } - TOperator op = mapTypeToConstructorOp(type); + TOperator op = intermediate.mapTypeToConstructorOp(type); if (op == EOpNull) { error(loc, "cannot construct this type", type.getBasicString(), ""); @@ -1750,150 +1750,6 @@ TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPu return new TFunction(&empty, type, op); } -// -// Given a type, find what operation would fully construct it. -// -TOperator TParseContext::mapTypeToConstructorOp(const TType& type) const -{ - TOperator op = EOpNull; - - switch (type.getBasicType()) { - case EbtStruct: - op = EOpConstructStruct; - break; - case EbtSampler: - if (type.getSampler().combined) - op = EOpConstructTextureSampler; - break; - case EbtFloat: - if (type.isMatrix()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat2x2; break; - case 3: op = EOpConstructMat2x3; break; - case 4: op = EOpConstructMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat3x2; break; - case 3: op = EOpConstructMat3x3; break; - case 4: op = EOpConstructMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat4x2; break; - case 3: op = EOpConstructMat4x3; break; - case 4: op = EOpConstructMat4x4; break; - default: break; // some compilers want this - } - break; - default: break; // some compilers want this - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructFloat; break; - case 2: op = EOpConstructVec2; break; - case 3: op = EOpConstructVec3; break; - case 4: op = EOpConstructVec4; break; - default: break; // some compilers want this - } - } - break; - case EbtDouble: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat2x2; break; - case 3: op = EOpConstructDMat2x3; break; - case 4: op = EOpConstructDMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat3x2; break; - case 3: op = EOpConstructDMat3x3; break; - case 4: op = EOpConstructDMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat4x2; break; - case 3: op = EOpConstructDMat4x3; break; - case 4: op = EOpConstructDMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch(type.getVectorSize()) { - case 1: op = EOpConstructDouble; break; - case 2: op = EOpConstructDVec2; break; - case 3: op = EOpConstructDVec3; break; - case 4: op = EOpConstructDVec4; break; - default: break; // some compilers want this - } - } - break; - case EbtInt: - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt; break; - case 2: op = EOpConstructIVec2; break; - case 3: op = EOpConstructIVec3; break; - case 4: op = EOpConstructIVec4; break; - default: break; // some compilers want this - } - break; - case EbtUint: - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint; break; - case 2: op = EOpConstructUVec2; break; - case 3: op = EOpConstructUVec3; break; - case 4: op = EOpConstructUVec4; break; - default: break; // some compilers want this - } - break; - case EbtInt64: - switch(type.getVectorSize()) { - case 1: op = EOpConstructInt64; break; - case 2: op = EOpConstructI64Vec2; break; - case 3: op = EOpConstructI64Vec3; break; - case 4: op = EOpConstructI64Vec4; break; - default: break; // some compilers want this - } - break; - case EbtUint64: - switch(type.getVectorSize()) { - case 1: op = EOpConstructUint64; break; - case 2: op = EOpConstructU64Vec2; break; - case 3: op = EOpConstructU64Vec3; break; - case 4: op = EOpConstructU64Vec4; break; - default: break; // some compilers want this - } - break; - case EbtBool: - switch(type.getVectorSize()) { - case 1: op = EOpConstructBool; break; - case 2: op = EOpConstructBVec2; break; - case 3: op = EOpConstructBVec3; break; - case 4: op = EOpConstructBVec4; break; - default: break; // some compilers want this - } - break; - default: - break; - } - - return op; -} - // // Same error message for all places assignments don't work. // @@ -5257,7 +5113,7 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const return nullptr; } - return addConstructor(loc, initList, arrayType, mapTypeToConstructorOp(arrayType)); + return addConstructor(loc, initList, arrayType); } else if (type.isStruct()) { if (type.getStruct()->size() != initList->getSequence().size()) { error(loc, "wrong number of structure members", "initializer list", ""); @@ -5290,7 +5146,7 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const } // now that the subtree is processed, process this node - return addConstructor(loc, initList, type, mapTypeToConstructorOp(type)); + return addConstructor(loc, initList, type); } // @@ -5299,13 +5155,14 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const // // Returns nullptr for an error or the constructed node (aggregate or typed) for no error. // -TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type, TOperator op) +TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) { if (node == nullptr || node->getAsTyped() == nullptr) return nullptr; rValueErrorCheck(loc, "constructor", node->getAsTyped()); TIntermAggregate* aggrNode = node->getAsAggregate(); + TOperator op = intermediate.mapTypeToConstructorOp(type); // Combined texture-sampler constructors are completely semantic checked // in constructorTextureSamplerError() diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 2f5e0953..25b9ff52 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -276,7 +276,7 @@ public: const TFunction* findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypeDefaults(const TSourceLoc&, const TPublicType&); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); - TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator); + TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0); @@ -302,7 +302,6 @@ protected: void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); - TOperator mapTypeToConstructorOp(const TType&) const; void finalErrorCheck(); void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 6fe5c4ad..2081d0f0 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -189,6 +189,7 @@ public: TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc); TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType); bool canImplicitlyPromote(TBasicType from, TBasicType to) const; + TOperator mapTypeToConstructorOp(const TType&) const; TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right); TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); TIntermAggregate* makeAggregate(TIntermNode* node); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index c95616d7..2f728172 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -624,7 +624,7 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; else { TType type(base->getBasicType(), EvqTemporary, fields.num); - return addConstructor(loc, base, type, mapTypeToConstructorOp(type)); + return addConstructor(loc, base, type); } } @@ -1684,7 +1684,7 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // // It's a constructor, of type 'type'. // - result = addConstructor(loc, arguments, type, op); + result = addConstructor(loc, arguments, type); if (result == nullptr) error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), ""); } @@ -2090,7 +2090,7 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn // TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const TType& type) { - TOperator op = mapTypeToConstructorOp(type); + TOperator op = intermediate.mapTypeToConstructorOp(type); if (op == EOpNull) { error(loc, "cannot construct this type", type.getBasicString(), ""); @@ -2134,132 +2134,6 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) type.getQualifier().builtIn = EbvViewportIndex; } -// -// Given a type, find what operation would fully construct it. -// -TOperator HlslParseContext::mapTypeToConstructorOp(const TType& type) const -{ - TOperator op = EOpNull; - - switch (type.getBasicType()) { - case EbtStruct: - op = EOpConstructStruct; - break; - case EbtSampler: - if (type.getSampler().combined) - op = EOpConstructTextureSampler; - break; - case EbtFloat: - if (type.isMatrix()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat2x2; break; - case 3: op = EOpConstructMat2x3; break; - case 4: op = EOpConstructMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat3x2; break; - case 3: op = EOpConstructMat3x3; break; - case 4: op = EOpConstructMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructMat4x2; break; - case 3: op = EOpConstructMat4x3; break; - case 4: op = EOpConstructMat4x4; break; - default: break; // some compilers want this - } - break; - default: break; // some compilers want this - } - } else { - switch (type.getVectorSize()) { - case 1: op = EOpConstructFloat; break; - case 2: op = EOpConstructVec2; break; - case 3: op = EOpConstructVec3; break; - case 4: op = EOpConstructVec4; break; - default: break; // some compilers want this - } - } - break; - case EbtDouble: - if (type.getMatrixCols()) { - switch (type.getMatrixCols()) { - case 2: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat2x2; break; - case 3: op = EOpConstructDMat2x3; break; - case 4: op = EOpConstructDMat2x4; break; - default: break; // some compilers want this - } - break; - case 3: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat3x2; break; - case 3: op = EOpConstructDMat3x3; break; - case 4: op = EOpConstructDMat3x4; break; - default: break; // some compilers want this - } - break; - case 4: - switch (type.getMatrixRows()) { - case 2: op = EOpConstructDMat4x2; break; - case 3: op = EOpConstructDMat4x3; break; - case 4: op = EOpConstructDMat4x4; break; - default: break; // some compilers want this - } - break; - } - } else { - switch (type.getVectorSize()) { - case 1: op = EOpConstructDouble; break; - case 2: op = EOpConstructDVec2; break; - case 3: op = EOpConstructDVec3; break; - case 4: op = EOpConstructDVec4; break; - default: break; // some compilers want this - } - } - break; - case EbtInt: - switch (type.getVectorSize()) { - case 1: op = EOpConstructInt; break; - case 2: op = EOpConstructIVec2; break; - case 3: op = EOpConstructIVec3; break; - case 4: op = EOpConstructIVec4; break; - default: break; // some compilers want this - } - break; - case EbtUint: - switch (type.getVectorSize()) { - case 1: op = EOpConstructUint; break; - case 2: op = EOpConstructUVec2; break; - case 3: op = EOpConstructUVec3; break; - case 4: op = EOpConstructUVec4; break; - default: break; // some compilers want this - } - break; - case EbtBool: - switch (type.getVectorSize()) { - case 1: op = EOpConstructBool; break; - case 2: op = EOpConstructBVec2; break; - case 3: op = EOpConstructBVec3; break; - case 4: op = EOpConstructBVec4; break; - default: break; // some compilers want this - } - break; - default: - break; - } - - return op; -} - // // Same error message for all places assignments don't work. // @@ -3744,7 +3618,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co return nullptr; } - return addConstructor(loc, initList, arrayType, mapTypeToConstructorOp(arrayType)); + return addConstructor(loc, initList, arrayType); } else if (type.isStruct()) { if (type.getStruct()->size() != initList->getSequence().size()) { error(loc, "wrong number of structure members", "initializer list", ""); @@ -3777,7 +3651,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } // now that the subtree is processed, process this node - return addConstructor(loc, initList, type, mapTypeToConstructorOp(type)); + return addConstructor(loc, initList, type); } // @@ -3786,12 +3660,13 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // // Returns nullptr for an error or the constructed node (aggregate or typed) for no error. // -TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type, TOperator op) +TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type) { if (node == nullptr || node->getAsTyped() == nullptr) return nullptr; TIntermAggregate* aggrNode = node->getAsAggregate(); + TOperator op = intermediate.mapTypeToConstructorOp(type); // Combined texture-sampler constructors are completely semantic checked // in constructorTextureSamplerError() diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index a5e7f723..979e4a48 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -131,7 +131,7 @@ public: const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); - TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator); + TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0); @@ -161,7 +161,6 @@ protected: void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); - TOperator mapTypeToConstructorOp(const TType&) const; TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, From fea226ba43e12b349e9e6a1966827fcf1d3c6eac Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 28 Jul 2016 17:53:56 -0600 Subject: [PATCH 038/217] HLSL: Add shape conversions for scalar -> vector assigments. Also, this allows turning on the error check for a failed assigment when parsing. This makes 39 HLSL tests have a working assignment that was previously silently dropped, due to lack of this functionality. --- .../hlsl.calculatelod.dx10.frag.out | 44 +++- .../hlsl.calculatelodunclamped.dx10.frag.out | 20 ++ .../hlsl.gather.array.dx10.frag.out | 73 ++++-- .../hlsl.gather.basic.dx10.frag.out | 111 +++++---- .../hlsl.gather.offset.dx10.frag.out | 131 +++++----- .../hlsl.gather.offsetarray.dx10.frag.out | 71 ++++-- .../hlsl.getdimensions.dx10.frag.out | 49 +++- .../hlsl.getsampleposition.dx10.frag.out | 20 ++ Test/baseResults/hlsl.load.2dms.dx10.frag.out | 73 ++++-- .../baseResults/hlsl.load.array.dx10.frag.out | 225 ++++++++++-------- .../baseResults/hlsl.load.basic.dx10.frag.out | 189 ++++++++------- .../hlsl.load.buffer.dx10.frag.out | 82 ++++--- .../hlsl.load.offset.dx10.frag.out | 177 ++++++++------ .../hlsl.load.offsetarray.dx10.frag.out | 215 +++++++++-------- .../baseResults/hlsl.numericsuffixes.frag.out | 29 ++- .../hlsl.sample.array.dx10.frag.out | 44 +++- .../hlsl.sample.basic.dx10.frag.out | 53 +++-- .../hlsl.sample.offset.dx10.frag.out | 71 ++++-- .../hlsl.sample.offsetarray.dx10.frag.out | 41 +++- .../hlsl.samplebias.array.dx10.frag.out | 44 +++- .../hlsl.samplebias.basic.dx10.frag.out | 44 +++- .../hlsl.samplebias.offset.dx10.frag.out | 71 ++++-- .../hlsl.samplebias.offsetarray.dx10.frag.out | 41 +++- .../hlsl.samplecmp.array.dx10.frag.out | 157 +++++++----- .../hlsl.samplecmp.basic.dx10.frag.out | 157 +++++++----- .../hlsl.samplecmp.offset.dx10.frag.out | 187 ++++++++------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 187 ++++++++------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 157 +++++++----- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 157 +++++++----- ...sl.samplecmplevelzero.offset.dx10.frag.out | 187 ++++++++------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 187 ++++++++------- .../hlsl.samplegrad.array.dx10.frag.out | 44 +++- .../hlsl.samplegrad.basic.dx10.frag.out | 44 +++- .../hlsl.samplegrad.offset.dx10.frag.out | 71 ++++-- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 71 ++++-- .../hlsl.samplelevel.array.dx10.frag.out | 44 +++- .../hlsl.samplelevel.basic.dx10.frag.out | 50 +++- .../hlsl.samplelevel.offset.dx10.frag.out | 71 ++++-- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 41 +++- Test/baseResults/hlsl.shapeConv.frag.out | 152 ++++++++++++ Test/hlsl.shapeConv.frag | 13 + glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 74 +++++- .../MachineIndependent/localintermediate.h | 1 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 11 +- 46 files changed, 2571 insertions(+), 1413 deletions(-) create mode 100755 Test/baseResults/hlsl.shapeConv.frag.out create mode 100644 Test/hlsl.shapeConv.frag diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index a48351cd..7319a196 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:38 Constant: 0:38 0 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -271,6 +281,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:38 Constant: 0:38 0 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -295,7 +315,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 140 +// Id's are bound by 143 Capability Shader Capability Sampled1D @@ -330,7 +350,7 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 139 "g_tTex1df4" + Name 142 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 @@ -342,7 +362,7 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 142(g_tTex1df4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -409,9 +429,11 @@ gl_FragCoord origin is upper left 130: TypeVector 6(float) 4 131(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) 132: TypePointer Function 131(PS_OUTPUT) - 134: 23(int) Constant 1 - 135: 6(float) Constant 1065353216 - 139(g_tTex1df4): 10(ptr) Variable UniformConstant + 134: 6(float) Constant 1065353216 + 135: 130(fvec4) ConstantComposite 134 134 134 134 + 136: TypePointer Function 130(fvec4) + 138: 23(int) Constant 1 + 142(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -487,8 +509,10 @@ gl_FragCoord origin is upper left 128: 21(fvec2) ImageQueryLod 127 126 129: 6(float) CompositeExtract 128 0 Store 115(txval42) 129 - 136: 7(ptr) AccessChain 133(psout) 134 - Store 136 135 - 137:131(PS_OUTPUT) Load 133(psout) - ReturnValue 137 + 137: 136(ptr) AccessChain 133(psout) 24 + Store 137 135 + 139: 7(ptr) AccessChain 133(psout) 138 + Store 139 134 + 140:131(PS_OUTPUT) Load 133(psout) + ReturnValue 140 FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 11a52b58..b55a36be 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -134,6 +134,16 @@ ERROR: node is still EOpNull! 0:? 0.900000 0:38 Constant: 0:38 0 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -283,6 +293,16 @@ ERROR: node is still EOpNull! 0:? 0.900000 0:38 Constant: 0:38 0 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 041af2d4..e63ab53c 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -74,6 +74,16 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:? 1.000000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -175,6 +185,16 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:? 1.000000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -199,7 +219,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 108 +// Id's are bound by 110 Capability Shader Capability Sampled1D @@ -227,10 +247,10 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 100 "g_tTex1df4a" - Name 101 "g_tTex1df4" - Name 104 "g_tTex1di4a" - Name 107 "g_tTex1du4a" + Name 102 "g_tTex1df4a" + Name 103 "g_tTex1df4" + Name 106 "g_tTex1di4a" + Name 109 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex2di4a) DescriptorSet 0 @@ -239,10 +259,10 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 100(g_tTex1df4a) DescriptorSet 0 - Decorate 101(g_tTex1df4) DescriptorSet 0 - Decorate 104(g_tTex1di4a) DescriptorSet 0 - Decorate 107(g_tTex1du4a) DescriptorSet 0 + Decorate 102(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4) DescriptorSet 0 + Decorate 106(g_tTex1di4a) DescriptorSet 0 + Decorate 109(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -301,18 +321,19 @@ gl_FragCoord origin is upper left 88: 7(fvec4) ConstantComposite 54 85 86 87 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 91: TypePointer Function 90(PS_OUTPUT) - 93: 25(int) Constant 1 - 94: TypePointer Function 6(float) - 98: TypeImage 6(float) 1D array sampled format:Unknown - 99: TypePointer UniformConstant 98 -100(g_tTex1df4a): 99(ptr) Variable UniformConstant - 101(g_tTex1df4): 99(ptr) Variable UniformConstant - 102: TypeImage 25(int) 1D array sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1di4a): 103(ptr) Variable UniformConstant - 105: TypeImage 42(int) 1D array sampled format:Unknown - 106: TypePointer UniformConstant 105 -107(g_tTex1du4a): 106(ptr) Variable UniformConstant + 93: 7(fvec4) ConstantComposite 87 87 87 87 + 95: 25(int) Constant 1 + 96: TypePointer Function 6(float) + 100: TypeImage 6(float) 1D array sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex1df4a): 101(ptr) Variable UniformConstant + 103(g_tTex1df4): 101(ptr) Variable UniformConstant + 104: TypeImage 25(int) 1D array sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(g_tTex1di4a): 105(ptr) Variable UniformConstant + 107: TypeImage 42(int) 1D array sampled format:Unknown + 108: TypePointer UniformConstant 107 +109(g_tTex1du4a): 108(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -352,8 +373,10 @@ gl_FragCoord origin is upper left 84: 83 SampledImage 81 82 89: 43(ivec4) ImageGather 84 88 26 Store 77(txval42) 89 - 95: 94(ptr) AccessChain 92(psout) 93 - Store 95 87 - 96:90(PS_OUTPUT) Load 92(psout) - ReturnValue 96 + 94: 8(ptr) AccessChain 92(psout) 26 + Store 94 93 + 97: 96(ptr) AccessChain 92(psout) 95 + Store 97 87 + 98:90(PS_OUTPUT) Load 92(psout) + ReturnValue 98 FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 1e51f292..f4918049 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -68,6 +68,16 @@ gl_FragCoord origin is upper left 0:? 0.700000 0:? 0.800000 0:? 0.900000 +0:44 move second child to first child (temp 4-component vector of float) +0:44 Color: direct index for structure (temp 4-component vector of float) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) 0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -167,6 +177,16 @@ gl_FragCoord origin is upper left 0:? 0.700000 0:? 0.800000 0:? 0.900000 +0:44 move second child to first child (temp 4-component vector of float) +0:44 Color: direct index for structure (temp 4-component vector of float) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Constant: +0:44 0 (const int) +0:44 Constant: +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 +0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) 0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -195,7 +215,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 119 +// Id's are bound by 121 Capability Shader Capability Sampled1D @@ -222,14 +242,14 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 99 "g_sSamp2d" - Name 102 "g_tTex1df4a" - Name 103 "g_tTex1df4" - Name 106 "g_tTex1di4" - Name 109 "g_tTex1du4" - Name 112 "g_tTex3df4" - Name 115 "g_tTex3di4" - Name 118 "g_tTex3du4" + Name 101 "g_sSamp2d" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4" + Name 111 "g_tTex1du4" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 32(g_tTex2di4) DescriptorSet 0 @@ -238,14 +258,14 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 99(g_sSamp2d) DescriptorSet 0 - Decorate 102(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4) DescriptorSet 0 - Decorate 106(g_tTex1di4) DescriptorSet 0 - Decorate 109(g_tTex1du4) DescriptorSet 0 - Decorate 112(g_tTex3df4) DescriptorSet 0 - Decorate 115(g_tTex3di4) DescriptorSet 0 - Decorate 118(g_tTex3du4) DescriptorSet 0 + Decorate 101(g_sSamp2d) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 108(g_tTex1di4) DescriptorSet 0 + Decorate 111(g_tTex1du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -304,29 +324,30 @@ gl_FragCoord origin is upper left 88: 64(fvec3) ConstantComposite 85 86 87 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 91: TypePointer Function 90(PS_OUTPUT) - 93: 24(int) Constant 1 - 94: 6(float) Constant 1065353216 - 95: TypePointer Function 6(float) - 99(g_sSamp2d): 15(ptr) Variable UniformConstant - 100: TypeImage 6(float) 1D sampled format:Unknown - 101: TypePointer UniformConstant 100 -102(g_tTex1df4a): 101(ptr) Variable UniformConstant - 103(g_tTex1df4): 101(ptr) Variable UniformConstant - 104: TypeImage 24(int) 1D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex1di4): 105(ptr) Variable UniformConstant - 107: TypeImage 41(int) 1D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex1du4): 108(ptr) Variable UniformConstant - 110: TypeImage 6(float) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3df4): 111(ptr) Variable UniformConstant - 113: TypeImage 24(int) 3D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex3di4): 114(ptr) Variable UniformConstant - 116: TypeImage 41(int) 3D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex3du4): 117(ptr) Variable UniformConstant + 93: 6(float) Constant 1065353216 + 94: 7(fvec4) ConstantComposite 93 93 93 93 + 96: 24(int) Constant 1 + 97: TypePointer Function 6(float) + 101(g_sSamp2d): 15(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 24(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1di4): 107(ptr) Variable UniformConstant + 109: TypeImage 41(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 24(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 41(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -366,8 +387,10 @@ gl_FragCoord origin is upper left 84: 83 SampledImage 81 82 89: 42(ivec4) ImageGather 84 88 25 Store 77(txval42) 89 - 96: 95(ptr) AccessChain 92(psout) 93 - Store 96 94 - 97:90(PS_OUTPUT) Load 92(psout) - ReturnValue 97 + 95: 8(ptr) AccessChain 92(psout) 25 + Store 95 94 + 98: 97(ptr) AccessChain 92(psout) 96 + Store 98 93 + 99:90(PS_OUTPUT) Load 92(psout) + ReturnValue 99 FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index d818d45b..7a081653 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -44,6 +44,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -118,6 +128,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) +0:40 move second child to first child (temp 4-component vector of float) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Constant: +0:40 0 (const int) +0:40 Constant: +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 +0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) 0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -145,7 +165,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 98 +// Id's are bound by 100 Capability Shader Capability Sampled1D @@ -166,31 +186,31 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 72 "g_tTex1df4a" - Name 73 "g_tTex1df4" - Name 76 "g_tTex1di4" - Name 79 "g_tTex1du4" - Name 82 "g_tTex3df4" - Name 85 "g_tTex3di4" - Name 88 "g_tTex3du4" - Name 91 "g_tTexcdf4" - Name 94 "g_tTexcdi4" - Name 97 "g_tTexcdu4" + Name 74 "g_tTex1df4a" + Name 75 "g_tTex1df4" + Name 78 "g_tTex1di4" + Name 81 "g_tTex1du4" + Name 84 "g_tTex3df4" + Name 87 "g_tTex3di4" + Name 90 "g_tTex3du4" + Name 93 "g_tTexcdf4" + Name 96 "g_tTexcdi4" + Name 99 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 72(g_tTex1df4a) DescriptorSet 0 - Decorate 73(g_tTex1df4) DescriptorSet 0 - Decorate 76(g_tTex1di4) DescriptorSet 0 - Decorate 79(g_tTex1du4) DescriptorSet 0 - Decorate 82(g_tTex3df4) DescriptorSet 0 - Decorate 85(g_tTex3di4) DescriptorSet 0 - Decorate 88(g_tTex3du4) DescriptorSet 0 - Decorate 91(g_tTexcdf4) DescriptorSet 0 - Decorate 94(g_tTexcdi4) DescriptorSet 0 - Decorate 97(g_tTexcdu4) DescriptorSet 0 + Decorate 74(g_tTex1df4a) DescriptorSet 0 + Decorate 75(g_tTex1df4) DescriptorSet 0 + Decorate 78(g_tTex1di4) DescriptorSet 0 + Decorate 81(g_tTex1du4) DescriptorSet 0 + Decorate 84(g_tTex3df4) DescriptorSet 0 + Decorate 87(g_tTex3di4) DescriptorSet 0 + Decorate 90(g_tTex3du4) DescriptorSet 0 + Decorate 93(g_tTexcdf4) DescriptorSet 0 + Decorate 96(g_tTexcdi4) DescriptorSet 0 + Decorate 99(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -237,35 +257,36 @@ gl_FragCoord origin is upper left 62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 63: TypePointer Function 62(PS_OUTPUT) 65: 6(float) Constant 1065353216 - 66: TypePointer Function 6(float) - 70: TypeImage 6(float) 1D sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex1df4a): 71(ptr) Variable UniformConstant - 73(g_tTex1df4): 71(ptr) Variable UniformConstant - 74: TypeImage 24(int) 1D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex1di4): 75(ptr) Variable UniformConstant - 77: TypeImage 45(int) 1D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex1du4): 78(ptr) Variable UniformConstant - 80: TypeImage 6(float) 3D sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex3df4): 81(ptr) Variable UniformConstant - 83: TypeImage 24(int) 3D sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex3di4): 84(ptr) Variable UniformConstant - 86: TypeImage 45(int) 3D sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex3du4): 87(ptr) Variable UniformConstant - 89: TypeImage 6(float) Cube sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4): 90(ptr) Variable UniformConstant - 92: TypeImage 24(int) Cube sampled format:Unknown - 93: TypePointer UniformConstant 92 - 94(g_tTexcdi4): 93(ptr) Variable UniformConstant - 95: TypeImage 45(int) Cube sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTexcdu4): 96(ptr) Variable UniformConstant + 66: 7(fvec4) ConstantComposite 65 65 65 65 + 68: TypePointer Function 6(float) + 72: TypeImage 6(float) 1D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex1df4a): 73(ptr) Variable UniformConstant + 75(g_tTex1df4): 73(ptr) Variable UniformConstant + 76: TypeImage 24(int) 1D sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex1di4): 77(ptr) Variable UniformConstant + 79: TypeImage 45(int) 1D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1du4): 80(ptr) Variable UniformConstant + 82: TypeImage 6(float) 3D sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex3df4): 83(ptr) Variable UniformConstant + 85: TypeImage 24(int) 3D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex3di4): 86(ptr) Variable UniformConstant + 88: TypeImage 45(int) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3du4): 89(ptr) Variable UniformConstant + 91: TypeImage 6(float) Cube sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTexcdf4): 92(ptr) Variable UniformConstant + 94: TypeImage 24(int) Cube sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTexcdi4): 95(ptr) Variable UniformConstant + 97: TypeImage 45(int) Cube sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdu4): 98(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -287,8 +308,10 @@ gl_FragCoord origin is upper left 55: 54 SampledImage 52 53 61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60 Store 48(txval22) 61 - 67: 66(ptr) AccessChain 64(psout) 26 - Store 67 65 - 68:62(PS_OUTPUT) Load 64(psout) - ReturnValue 68 + 67: 8(ptr) AccessChain 64(psout) 27 + Store 67 66 + 69: 68(ptr) AccessChain 64(psout) 26 + Store 69 65 + 70:62(PS_OUTPUT) Load 64(psout) + ReturnValue 70 FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 8d00a592..73143987 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -47,6 +47,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) 0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -118,6 +128,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 +0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) 0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -139,7 +159,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 81 +// Id's are bound by 83 Capability Shader Capability Sampled1D @@ -160,19 +180,19 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 73 "g_tTex1df4a" - Name 74 "g_tTex1df4" - Name 77 "g_tTex1di4" - Name 80 "g_tTex1du4" + Name 75 "g_tTex1df4a" + Name 76 "g_tTex1df4" + Name 79 "g_tTex1di4" + Name 82 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 73(g_tTex1df4a) DescriptorSet 0 - Decorate 74(g_tTex1df4) DescriptorSet 0 - Decorate 77(g_tTex1di4) DescriptorSet 0 - Decorate 80(g_tTex1du4) DescriptorSet 0 + Decorate 75(g_tTex1df4a) DescriptorSet 0 + Decorate 76(g_tTex1df4) DescriptorSet 0 + Decorate 79(g_tTex1di4) DescriptorSet 0 + Decorate 82(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -220,17 +240,18 @@ gl_FragCoord origin is upper left 63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 64: TypePointer Function 63(PS_OUTPUT) 66: 6(float) Constant 1065353216 - 67: TypePointer Function 6(float) - 71: TypeImage 6(float) 1D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex1df4a): 72(ptr) Variable UniformConstant - 74(g_tTex1df4): 72(ptr) Variable UniformConstant - 75: TypeImage 25(int) 1D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex1di4): 76(ptr) Variable UniformConstant - 78: TypeImage 45(int) 1D array sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTex1du4): 79(ptr) Variable UniformConstant + 67: 7(fvec4) ConstantComposite 66 66 66 66 + 69: TypePointer Function 6(float) + 73: TypeImage 6(float) 1D array sampled format:Unknown + 74: TypePointer UniformConstant 73 + 75(g_tTex1df4a): 74(ptr) Variable UniformConstant + 76(g_tTex1df4): 74(ptr) Variable UniformConstant + 77: TypeImage 25(int) 1D array sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex1di4): 78(ptr) Variable UniformConstant + 80: TypeImage 45(int) 1D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex1du4): 81(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -252,8 +273,10 @@ gl_FragCoord origin is upper left 55: 54 SampledImage 52 53 62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61 Store 48(txval22) 62 - 68: 67(ptr) AccessChain 65(psout) 27 - Store 68 66 - 69:63(PS_OUTPUT) Load 65(psout) - ReturnValue 69 + 68: 8(ptr) AccessChain 65(psout) 28 + Store 68 67 + 70: 69(ptr) AccessChain 65(psout) 27 + Store 70 66 + 71:63(PS_OUTPUT) Load 65(psout) + ReturnValue 71 FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index e0c8662d..56d83be9 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1043,6 +1043,16 @@ gl_FragCoord origin is upper left 0:164 'NumberOfSamplesU' (temp uint) 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:276 move second child to first child (temp 4-component vector of float) +0:276 Color: direct index for structure (temp 4-component vector of float) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Constant: +0:276 0 (const int) +0:276 Constant: +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) 0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -2130,6 +2140,16 @@ gl_FragCoord origin is upper left 0:164 'NumberOfSamplesU' (temp uint) 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:276 move second child to first child (temp 4-component vector of float) +0:276 Color: direct index for structure (temp 4-component vector of float) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Constant: +0:276 0 (const int) +0:276 Constant: +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 +0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) 0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -2171,7 +2191,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 534 +// Id's are bound by 538 Capability Shader Capability Sampled1D @@ -2269,7 +2289,7 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 533 "g_sSamp" + Name 537 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 @@ -2298,7 +2318,7 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 533(g_sSamp) DescriptorSet 0 + Decorate 537(g_sSamp) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2399,12 +2419,15 @@ gl_FragCoord origin is upper left 521: TypeVector 9(float) 4 522(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) 523: TypePointer Function 522(PS_OUTPUT) - 525: 14(int) Constant 1 + 525: 14(int) Constant 0 526: 9(float) Constant 1065353216 - 527: TypePointer Function 9(float) - 531: TypeSampler - 532: TypePointer UniformConstant 531 - 533(g_sSamp): 532(ptr) Variable UniformConstant + 527: 521(fvec4) ConstantComposite 526 526 526 526 + 528: TypePointer Function 521(fvec4) + 530: 14(int) Constant 1 + 531: TypePointer Function 9(float) + 535: TypeSampler + 536: TypePointer UniformConstant 535 + 537(g_sSamp): 536(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3014,8 +3037,10 @@ gl_FragCoord origin is upper left 519: 508 Load 510(g_tTex2dmsu4a) 520: 14(int) ImageQuerySamples 519 Store 452(NumberOfSamplesU) 520 - 528: 527(ptr) AccessChain 524(psout) 525 - Store 528 526 - 529:522(PS_OUTPUT) Load 524(psout) - ReturnValue 529 + 529: 528(ptr) AccessChain 524(psout) 525 + Store 529 527 + 532: 531(ptr) AccessChain 524(psout) 530 + Store 532 526 + 533:522(PS_OUTPUT) Load 524(psout) + ReturnValue 533 FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index ae9d3aef..c1bb40ec 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -26,6 +26,16 @@ ERROR: node is still EOpNull! 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) +0:19 move second child to first child (temp 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) 0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -66,6 +76,16 @@ ERROR: node is still EOpNull! 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) +0:19 move second child to first child (temp 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Constant: +0:19 0 (const int) +0:19 Constant: +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 +0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) 0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 41cdb4a6..969bd7ff 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -71,6 +71,16 @@ gl_FragCoord origin is upper left 0:49 Constant: 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) +0:51 move second child to first child (temp 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) 0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -173,6 +183,16 @@ gl_FragCoord origin is upper left 0:49 Constant: 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) +0:51 move second child to first child (temp 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 Constant: +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 +0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) 0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -201,7 +221,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 99 +// Id's are bound by 103 Capability Shader Capability ImageGatherExtended @@ -225,12 +245,12 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 91 "g_sSamp" - Name 93 "c1" - Name 95 "c4" - Name 96 "o1" - Name 97 "o3" - Name 98 "o4" + Name 95 "g_sSamp" + Name 97 "c1" + Name 99 "c4" + Name 100 "o1" + Name 101 "o3" + Name 102 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -238,7 +258,7 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 91(g_sSamp) DescriptorSet 0 + Decorate 95(g_sSamp) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -275,19 +295,22 @@ gl_FragCoord origin is upper left 64(g_tTex2dmsu4a): 63(ptr) Variable UniformConstant 80(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) 81: TypePointer Function 80(PS_OUTPUT) - 83: 11(int) Constant 1 + 83: 11(int) Constant 0 84: 6(float) Constant 1065353216 - 85: TypePointer Function 6(float) - 89: TypeSampler - 90: TypePointer UniformConstant 89 - 91(g_sSamp): 90(ptr) Variable UniformConstant - 92: TypePointer UniformConstant 11(int) - 93(c1): 92(ptr) Variable UniformConstant - 94: TypePointer UniformConstant 24(ivec4) - 95(c4): 94(ptr) Variable UniformConstant - 96(o1): 92(ptr) Variable UniformConstant - 97(o3): 52(ptr) Variable UniformConstant - 98(o4): 94(ptr) Variable UniformConstant + 85: 17(fvec4) ConstantComposite 84 84 84 84 + 86: TypePointer Function 17(fvec4) + 88: 11(int) Constant 1 + 89: TypePointer Function 6(float) + 93: TypeSampler + 94: TypePointer UniformConstant 93 + 95(g_sSamp): 94(ptr) Variable UniformConstant + 96: TypePointer UniformConstant 11(int) + 97(c1): 96(ptr) Variable UniformConstant + 98: TypePointer UniformConstant 24(ivec4) + 99(c4): 98(ptr) Variable UniformConstant + 100(o1): 96(ptr) Variable UniformConstant + 101(o3): 52(ptr) Variable UniformConstant + 102(o4): 98(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -333,8 +356,10 @@ gl_FragCoord origin is upper left 77: 51(ivec3) Load 53(c3) 78: 12(ivec2) Load 36(o2) 79: 32(ivec4) ImageFetch 76 77 Offset Sample 78 16 - 86: 85(ptr) AccessChain 82(psout) 83 - Store 86 84 - 87:80(PS_OUTPUT) Load 82(psout) - ReturnValue 87 + 87: 86(ptr) AccessChain 82(psout) 83 + Store 87 85 + 90: 89(ptr) AccessChain 82(psout) 88 + Store 90 84 + 91:80(PS_OUTPUT) Load 82(psout) + ReturnValue 91 FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index ecb43ca8..16e30662 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -89,6 +89,16 @@ gl_FragCoord origin is upper left 0:59 'c4' (uniform 4-component vector of int) 0:59 Constant: 0:59 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -224,6 +234,16 @@ gl_FragCoord origin is upper left 0:59 'c4' (uniform 4-component vector of int) 0:59 Constant: 0:59 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -267,7 +287,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 139 +// Id's are bound by 143 Capability Shader Capability Sampled1D @@ -290,28 +310,28 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 86 "g_sSamp" - Name 89 "g_tTex1df4" - Name 92 "g_tTex1di4" - Name 95 "g_tTex1du4" - Name 98 "g_tTex2df4" - Name 101 "g_tTex2di4" - Name 104 "g_tTex2du4" - Name 107 "g_tTex3df4" - Name 110 "g_tTex3di4" - Name 113 "g_tTex3du4" - Name 116 "g_tTexcdf4" - Name 119 "g_tTexcdi4" - Name 122 "g_tTexcdu4" - Name 125 "g_tTexcdf4a" - Name 128 "g_tTexcdi4a" - Name 131 "g_tTexcdu4a" - Name 132 "c1" - Name 134 "c2" - Name 135 "o1" - Name 136 "o2" - Name 137 "o3" - Name 138 "o4" + Name 90 "g_sSamp" + Name 93 "g_tTex1df4" + Name 96 "g_tTex1di4" + Name 99 "g_tTex1du4" + Name 102 "g_tTex2df4" + Name 105 "g_tTex2di4" + Name 108 "g_tTex2du4" + Name 111 "g_tTex3df4" + Name 114 "g_tTex3di4" + Name 117 "g_tTex3du4" + Name 120 "g_tTexcdf4" + Name 123 "g_tTexcdi4" + Name 126 "g_tTexcdu4" + Name 129 "g_tTexcdf4a" + Name 132 "g_tTexcdi4a" + Name 135 "g_tTexcdu4a" + Name 136 "c1" + Name 138 "c2" + Name 139 "o1" + Name 140 "o2" + Name 141 "o3" + Name 142 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -319,22 +339,22 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 86(g_sSamp) DescriptorSet 0 - Decorate 89(g_tTex1df4) DescriptorSet 0 - Decorate 92(g_tTex1di4) DescriptorSet 0 - Decorate 95(g_tTex1du4) DescriptorSet 0 - Decorate 98(g_tTex2df4) DescriptorSet 0 - Decorate 101(g_tTex2di4) DescriptorSet 0 - Decorate 104(g_tTex2du4) DescriptorSet 0 - Decorate 107(g_tTex3df4) DescriptorSet 0 - Decorate 110(g_tTex3di4) DescriptorSet 0 - Decorate 113(g_tTex3du4) DescriptorSet 0 - Decorate 116(g_tTexcdf4) DescriptorSet 0 - Decorate 119(g_tTexcdi4) DescriptorSet 0 - Decorate 122(g_tTexcdu4) DescriptorSet 0 - Decorate 125(g_tTexcdf4a) DescriptorSet 0 - Decorate 128(g_tTexcdi4a) DescriptorSet 0 - Decorate 131(g_tTexcdu4a) DescriptorSet 0 + Decorate 90(g_sSamp) DescriptorSet 0 + Decorate 93(g_tTex1df4) DescriptorSet 0 + Decorate 96(g_tTex1di4) DescriptorSet 0 + Decorate 99(g_tTex1du4) DescriptorSet 0 + Decorate 102(g_tTex2df4) DescriptorSet 0 + Decorate 105(g_tTex2di4) DescriptorSet 0 + Decorate 108(g_tTex2du4) DescriptorSet 0 + Decorate 111(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 117(g_tTex3du4) DescriptorSet 0 + Decorate 120(g_tTexcdf4) DescriptorSet 0 + Decorate 123(g_tTexcdi4) DescriptorSet 0 + Decorate 126(g_tTexcdu4) DescriptorSet 0 + Decorate 129(g_tTexcdf4a) DescriptorSet 0 + Decorate 132(g_tTexcdi4a) DescriptorSet 0 + Decorate 135(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -372,64 +392,67 @@ gl_FragCoord origin is upper left 68(g_tTex2du4a): 67(ptr) Variable UniformConstant 75(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) 76: TypePointer Function 75(PS_OUTPUT) - 78: 11(int) Constant 1 + 78: 11(int) Constant 0 79: 6(float) Constant 1065353216 - 80: TypePointer Function 6(float) - 84: TypeSampler - 85: TypePointer UniformConstant 84 - 86(g_sSamp): 85(ptr) Variable UniformConstant - 87: TypeImage 6(float) 1D sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex1df4): 88(ptr) Variable UniformConstant - 90: TypeImage 11(int) 1D sampled format:Unknown - 91: TypePointer UniformConstant 90 - 92(g_tTex1di4): 91(ptr) Variable UniformConstant - 93: TypeImage 18(int) 1D sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTex1du4): 94(ptr) Variable UniformConstant - 96: TypeImage 6(float) 2D sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex2df4): 97(ptr) Variable UniformConstant - 99: TypeImage 11(int) 2D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex2di4): 100(ptr) Variable UniformConstant - 102: TypeImage 18(int) 2D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex2du4): 103(ptr) Variable UniformConstant - 105: TypeImage 6(float) 3D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex3df4): 106(ptr) Variable UniformConstant - 108: TypeImage 11(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3di4): 109(ptr) Variable UniformConstant - 111: TypeImage 18(int) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) Cube sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTexcdf4): 115(ptr) Variable UniformConstant - 117: TypeImage 11(int) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdi4): 118(ptr) Variable UniformConstant - 120: TypeImage 18(int) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdu4): 121(ptr) Variable UniformConstant - 123: TypeImage 6(float) Cube array sampled format:Unknown - 124: TypePointer UniformConstant 123 -125(g_tTexcdf4a): 124(ptr) Variable UniformConstant - 126: TypeImage 11(int) Cube array sampled format:Unknown - 127: TypePointer UniformConstant 126 -128(g_tTexcdi4a): 127(ptr) Variable UniformConstant - 129: TypeImage 18(int) Cube array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTexcdu4a): 130(ptr) Variable UniformConstant - 132(c1): 20(ptr) Variable UniformConstant - 133: TypePointer UniformConstant 15(ivec2) - 134(c2): 133(ptr) Variable UniformConstant - 135(o1): 20(ptr) Variable UniformConstant - 136(o2): 133(ptr) Variable UniformConstant - 137(o3): 13(ptr) Variable UniformConstant - 138(o4): 49(ptr) Variable UniformConstant + 80: 23(fvec4) ConstantComposite 79 79 79 79 + 81: TypePointer Function 23(fvec4) + 83: 11(int) Constant 1 + 84: TypePointer Function 6(float) + 88: TypeSampler + 89: TypePointer UniformConstant 88 + 90(g_sSamp): 89(ptr) Variable UniformConstant + 91: TypeImage 6(float) 1D sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex1df4): 92(ptr) Variable UniformConstant + 94: TypeImage 11(int) 1D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex1di4): 95(ptr) Variable UniformConstant + 97: TypeImage 18(int) 1D sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex1du4): 98(ptr) Variable UniformConstant + 100: TypeImage 6(float) 2D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex2df4): 101(ptr) Variable UniformConstant + 103: TypeImage 11(int) 2D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex2di4): 104(ptr) Variable UniformConstant + 106: TypeImage 18(int) 2D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex2du4): 107(ptr) Variable UniformConstant + 109: TypeImage 6(float) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3df4): 110(ptr) Variable UniformConstant + 112: TypeImage 11(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 115: TypeImage 18(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 118: TypeImage 6(float) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdf4): 119(ptr) Variable UniformConstant + 121: TypeImage 11(int) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdi4): 122(ptr) Variable UniformConstant + 124: TypeImage 18(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdu4): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) Cube array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTexcdf4a): 128(ptr) Variable UniformConstant + 130: TypeImage 11(int) Cube array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTexcdi4a): 131(ptr) Variable UniformConstant + 133: TypeImage 18(int) Cube array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTexcdu4a): 134(ptr) Variable UniformConstant + 136(c1): 20(ptr) Variable UniformConstant + 137: TypePointer UniformConstant 15(ivec2) + 138(c2): 137(ptr) Variable UniformConstant + 139(o1): 20(ptr) Variable UniformConstant + 140(o2): 137(ptr) Variable UniformConstant + 141(o3): 13(ptr) Variable UniformConstant + 142(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -469,8 +492,10 @@ gl_FragCoord origin is upper left 72: 20(ptr) AccessChain 50(c4) 53 73: 11(int) Load 72 74: 43(ivec4) ImageFetch 69 71 Lod 73 - 81: 80(ptr) AccessChain 77(psout) 78 - Store 81 79 - 82:75(PS_OUTPUT) Load 77(psout) - ReturnValue 82 + 82: 81(ptr) AccessChain 77(psout) 78 + Store 82 80 + 85: 84(ptr) AccessChain 77(psout) 83 + Store 85 79 + 86:75(PS_OUTPUT) Load 77(psout) + ReturnValue 86 FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index e069ffbe..bae29aa1 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:64 'c4' (uniform 4-component vector of int) 0:64 Constant: 0:64 3 (const int) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) 0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -290,6 +300,16 @@ gl_FragCoord origin is upper left 0:64 'c4' (uniform 4-component vector of int) 0:64 Constant: 0:64 3 (const int) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) 0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -333,7 +353,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 159 +// Id's are bound by 163 Capability Shader Capability Sampled1D @@ -360,24 +380,24 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 117 "g_sSamp" - Name 120 "g_tTexcdf4" - Name 123 "g_tTexcdi4" - Name 126 "g_tTexcdu4" - Name 129 "g_tTex1df4a" - Name 132 "g_tTex1di4a" - Name 135 "g_tTex1du4a" - Name 138 "g_tTex2df4a" - Name 141 "g_tTex2di4a" - Name 144 "g_tTex2du4a" - Name 147 "g_tTexcdf4a" - Name 150 "g_tTexcdi4a" - Name 153 "g_tTexcdu4a" - Name 154 "c1" - Name 155 "o1" - Name 156 "o2" - Name 157 "o3" - Name 158 "o4" + Name 121 "g_sSamp" + Name 124 "g_tTexcdf4" + Name 127 "g_tTexcdi4" + Name 130 "g_tTexcdu4" + Name 133 "g_tTex1df4a" + Name 136 "g_tTex1di4a" + Name 139 "g_tTex1du4a" + Name 142 "g_tTex2df4a" + Name 145 "g_tTex2di4a" + Name 148 "g_tTex2du4a" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" + Name 158 "c1" + Name 159 "o1" + Name 160 "o2" + Name 161 "o3" + Name 162 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 27(g_tTex1di4) DescriptorSet 0 Decorate 37(g_tTex1du4) DescriptorSet 0 @@ -388,19 +408,19 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 117(g_sSamp) DescriptorSet 0 - Decorate 120(g_tTexcdf4) DescriptorSet 0 - Decorate 123(g_tTexcdi4) DescriptorSet 0 - Decorate 126(g_tTexcdu4) DescriptorSet 0 - Decorate 129(g_tTex1df4a) DescriptorSet 0 - Decorate 132(g_tTex1di4a) DescriptorSet 0 - Decorate 135(g_tTex1du4a) DescriptorSet 0 - Decorate 138(g_tTex2df4a) DescriptorSet 0 - Decorate 141(g_tTex2di4a) DescriptorSet 0 - Decorate 144(g_tTex2du4a) DescriptorSet 0 - Decorate 147(g_tTexcdf4a) DescriptorSet 0 - Decorate 150(g_tTexcdi4a) DescriptorSet 0 - Decorate 153(g_tTexcdu4a) DescriptorSet 0 + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 127(g_tTexcdi4) DescriptorSet 0 + Decorate 130(g_tTexcdu4) DescriptorSet 0 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 136(g_tTex1di4a) DescriptorSet 0 + Decorate 139(g_tTex1du4a) DescriptorSet 0 + Decorate 142(g_tTex2df4a) DescriptorSet 0 + Decorate 145(g_tTex2di4a) DescriptorSet 0 + Decorate 148(g_tTex2du4a) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -451,53 +471,56 @@ gl_FragCoord origin is upper left 99(g_tTex3du4): 98(ptr) Variable UniformConstant 106(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) 107: TypePointer Function 106(PS_OUTPUT) - 109: 11(int) Constant 1 + 109: 11(int) Constant 0 110: 6(float) Constant 1065353216 - 111: TypePointer Function 6(float) - 115: TypeSampler - 116: TypePointer UniformConstant 115 - 117(g_sSamp): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdf4): 119(ptr) Variable UniformConstant - 121: TypeImage 11(int) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdi4): 122(ptr) Variable UniformConstant - 124: TypeImage 15(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdu4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) 1D array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTex1df4a): 128(ptr) Variable UniformConstant - 130: TypeImage 11(int) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1di4a): 131(ptr) Variable UniformConstant - 133: TypeImage 15(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1du4a): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) 2D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex2df4a): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2di4a): 140(ptr) Variable UniformConstant - 142: TypeImage 15(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2du4a): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTexcdf4a): 146(ptr) Variable UniformConstant - 148: TypeImage 11(int) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdi4a): 149(ptr) Variable UniformConstant - 151: TypeImage 15(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdu4a): 152(ptr) Variable UniformConstant - 154(c1): 17(ptr) Variable UniformConstant - 155(o1): 17(ptr) Variable UniformConstant - 156(o2): 13(ptr) Variable UniformConstant - 157(o3): 50(ptr) Variable UniformConstant - 158(o4): 80(ptr) Variable UniformConstant + 111: 23(fvec4) ConstantComposite 110 110 110 110 + 112: TypePointer Function 23(fvec4) + 114: 11(int) Constant 1 + 115: TypePointer Function 6(float) + 119: TypeSampler + 120: TypePointer UniformConstant 119 + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdi4): 126(ptr) Variable UniformConstant + 128: TypeImage 15(int) Cube sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdu4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1df4a): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 1D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex1di4a): 135(ptr) Variable UniformConstant + 137: TypeImage 15(int) 1D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex1du4a): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex2di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 15(int) 2D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex2du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 15(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 158(c1): 17(ptr) Variable UniformConstant + 159(o1): 17(ptr) Variable UniformConstant + 160(o2): 13(ptr) Variable UniformConstant + 161(o3): 50(ptr) Variable UniformConstant + 162(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -555,8 +578,10 @@ gl_FragCoord origin is upper left 103: 17(ptr) AccessChain 81(c4) 84 104: 11(int) Load 103 105: 43(ivec4) ImageFetch 100 102 Lod 104 - 112: 111(ptr) AccessChain 108(psout) 109 - Store 112 110 - 113:106(PS_OUTPUT) Load 108(psout) - ReturnValue 113 + 113: 112(ptr) AccessChain 108(psout) 109 + Store 113 111 + 116: 115(ptr) AccessChain 108(psout) 114 + Store 116 110 + 117:106(PS_OUTPUT) Load 108(psout) + ReturnValue 117 FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 13d00f79..f00962bc 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -23,6 +23,16 @@ gl_FragCoord origin is upper left 0:30 textureFetch (global 4-component vector of uint) 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -74,6 +84,16 @@ gl_FragCoord origin is upper left 0:30 textureFetch (global 4-component vector of uint) 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -99,7 +119,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 69 Capability Shader Capability SampledBuffer @@ -120,19 +140,19 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 53 "g_tTexbf4_test" - Name 56 "c2" - Name 59 "c3" - Name 61 "c4" - Name 62 "o1" - Name 63 "o2" - Name 64 "o3" - Name 65 "o4" + Name 56 "g_tTexbf4_test" + Name 59 "c2" + Name 62 "c3" + Name 64 "c4" + Name 65 "o1" + Name 66 "o2" + Name 67 "o3" + Name 68 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 53(g_tTexbf4_test) DescriptorSet 0 + Decorate 56(g_tTexbf4_test) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -160,22 +180,24 @@ gl_FragCoord origin is upper left 39(g_tTexbu4): 38(ptr) Variable UniformConstant 44(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 45: TypePointer Function 44(PS_OUTPUT) - 47: 15(int) Constant 1 + 47: 15(int) Constant 0 48: 6(float) Constant 1065353216 - 49: TypePointer Function 6(float) -53(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 54: TypeVector 15(int) 2 - 55: TypePointer UniformConstant 54(ivec2) - 56(c2): 55(ptr) Variable UniformConstant - 57: TypeVector 15(int) 3 - 58: TypePointer UniformConstant 57(ivec3) - 59(c3): 58(ptr) Variable UniformConstant - 60: TypePointer UniformConstant 21(ivec4) - 61(c4): 60(ptr) Variable UniformConstant - 62(o1): 16(ptr) Variable UniformConstant - 63(o2): 55(ptr) Variable UniformConstant - 64(o3): 58(ptr) Variable UniformConstant - 65(o4): 60(ptr) Variable UniformConstant + 49: 7(fvec4) ConstantComposite 48 48 48 48 + 51: 15(int) Constant 1 + 52: TypePointer Function 6(float) +56(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 57: TypeVector 15(int) 2 + 58: TypePointer UniformConstant 57(ivec2) + 59(c2): 58(ptr) Variable UniformConstant + 60: TypeVector 15(int) 3 + 61: TypePointer UniformConstant 60(ivec3) + 62(c3): 61(ptr) Variable UniformConstant + 63: TypePointer UniformConstant 21(ivec4) + 64(c4): 63(ptr) Variable UniformConstant + 65(o1): 16(ptr) Variable UniformConstant + 66(o2): 58(ptr) Variable UniformConstant + 67(o3): 61(ptr) Variable UniformConstant + 68(o4): 63(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -197,8 +219,10 @@ gl_FragCoord origin is upper left 42: 36 Image 40 43: 33(ivec4) ImageFetch 42 41 Store 35(r02) 43 - 50: 49(ptr) AccessChain 46(psout) 47 - Store 50 48 - 51:44(PS_OUTPUT) Load 46(psout) - ReturnValue 51 + 50: 8(ptr) AccessChain 46(psout) 47 + Store 50 49 + 53: 52(ptr) AccessChain 46(psout) 51 + Store 53 48 + 54:44(PS_OUTPUT) Load 46(psout) + ReturnValue 54 FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 5def1f80..fe7330ac 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -131,6 +131,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) 0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -308,6 +318,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) +0:72 move second child to first child (temp 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Constant: +0:72 0 (const int) +0:72 Constant: +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 +0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) 0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -351,7 +371,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 168 +// Id's are bound by 172 Capability Shader Capability ImageGatherExtended @@ -382,21 +402,21 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 129 "g_sSamp" - Name 132 "g_tTexcdf4" - Name 135 "g_tTexcdi4" - Name 138 "g_tTexcdu4" - Name 141 "g_tTex1df4a" - Name 144 "g_tTex1di4a" - Name 147 "g_tTex1du4a" - Name 150 "g_tTex2df4a" - Name 153 "g_tTex2di4a" - Name 156 "g_tTex2du4a" - Name 159 "g_tTexcdf4a" - Name 162 "g_tTexcdi4a" - Name 165 "g_tTexcdu4a" - Name 166 "c1" - Name 167 "o4" + Name 133 "g_sSamp" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTex1df4a" + Name 148 "g_tTex1di4a" + Name 151 "g_tTex1du4a" + Name 154 "g_tTex2df4a" + Name 157 "g_tTex2di4a" + Name 160 "g_tTex2du4a" + Name 163 "g_tTexcdf4a" + Name 166 "g_tTexcdi4a" + Name 169 "g_tTexcdu4a" + Name 170 "c1" + Name 171 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 40(g_tTex1du4) DescriptorSet 0 @@ -407,19 +427,19 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 129(g_sSamp) DescriptorSet 0 - Decorate 132(g_tTexcdf4) DescriptorSet 0 - Decorate 135(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 141(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1di4a) DescriptorSet 0 - Decorate 147(g_tTex1du4a) DescriptorSet 0 - Decorate 150(g_tTex2df4a) DescriptorSet 0 - Decorate 153(g_tTex2di4a) DescriptorSet 0 - Decorate 156(g_tTex2du4a) DescriptorSet 0 - Decorate 159(g_tTexcdf4a) DescriptorSet 0 - Decorate 162(g_tTexcdi4a) DescriptorSet 0 - Decorate 165(g_tTexcdu4a) DescriptorSet 0 + Decorate 133(g_sSamp) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 148(g_tTex1di4a) DescriptorSet 0 + Decorate 151(g_tTex1du4a) DescriptorSet 0 + Decorate 154(g_tTex2df4a) DescriptorSet 0 + Decorate 157(g_tTex2di4a) DescriptorSet 0 + Decorate 160(g_tTex2du4a) DescriptorSet 0 + Decorate 163(g_tTexcdf4a) DescriptorSet 0 + Decorate 166(g_tTexcdi4a) DescriptorSet 0 + Decorate 169(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -473,50 +493,53 @@ gl_FragCoord origin is upper left 110(g_tTex3du4): 109(ptr) Variable UniformConstant 118(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) 119: TypePointer Function 118(PS_OUTPUT) - 121: 11(int) Constant 1 + 121: 11(int) Constant 0 122: 6(float) Constant 1065353216 - 123: TypePointer Function 6(float) - 127: TypeSampler - 128: TypePointer UniformConstant 127 - 129(g_sSamp): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdf4): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdi4): 134(ptr) Variable UniformConstant - 136: TypeImage 15(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 1D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex1df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 11(int) 1D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex1di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 15(int) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) 2D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex2df4a): 149(ptr) Variable UniformConstant - 151: TypeImage 11(int) 2D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex2di4a): 152(ptr) Variable UniformConstant - 154: TypeImage 15(int) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2du4a): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) Cube array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTexcdf4a): 158(ptr) Variable UniformConstant - 160: TypeImage 11(int) Cube array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTexcdi4a): 161(ptr) Variable UniformConstant - 163: TypeImage 15(int) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdu4a): 164(ptr) Variable UniformConstant - 166(c1): 17(ptr) Variable UniformConstant - 167(o4): 88(ptr) Variable UniformConstant + 123: 25(fvec4) ConstantComposite 122 122 122 122 + 124: TypePointer Function 25(fvec4) + 126: 11(int) Constant 1 + 127: TypePointer Function 6(float) + 131: TypeSampler + 132: TypePointer UniformConstant 131 + 133(g_sSamp): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 15(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1df4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1di4a): 147(ptr) Variable UniformConstant + 149: TypeImage 15(int) 1D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex1du4a): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2df4a): 153(ptr) Variable UniformConstant + 155: TypeImage 11(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2di4a): 156(ptr) Variable UniformConstant + 158: TypeImage 15(int) 2D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex2du4a): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdf4a): 162(ptr) Variable UniformConstant + 164: TypeImage 11(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdi4a): 165(ptr) Variable UniformConstant + 167: TypeImage 15(int) Cube array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTexcdu4a): 168(ptr) Variable UniformConstant + 170(c1): 17(ptr) Variable UniformConstant + 171(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -583,8 +606,10 @@ gl_FragCoord origin is upper left 115: 11(int) Load 114 116: 53(ivec3) Load 95(o3) 117: 47(ivec4) ImageFetch 111 113 Lod Offset 115 116 - 124: 123(ptr) AccessChain 120(psout) 121 - Store 124 122 - 125:118(PS_OUTPUT) Load 120(psout) - ReturnValue 125 + 125: 124(ptr) AccessChain 120(psout) 121 + Store 125 123 + 128: 127(ptr) AccessChain 120(psout) 126 + Store 128 122 + 129:118(PS_OUTPUT) Load 120(psout) + ReturnValue 129 FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 13332f2c..16c64a83 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -95,6 +95,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) +0:65 move second child to first child (temp 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -236,6 +246,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) +0:65 move second child to first child (temp 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 Constant: +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 +0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -279,7 +299,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 149 Capability Shader Capability ImageGatherExtended @@ -305,26 +325,26 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 95 "g_sSamp" - Name 98 "g_tTex1df4" - Name 101 "g_tTex1di4" - Name 104 "g_tTex1du4" - Name 107 "g_tTex2df4" - Name 110 "g_tTex2di4" - Name 113 "g_tTex2du4" - Name 116 "g_tTex3df4" - Name 119 "g_tTex3di4" - Name 122 "g_tTex3du4" - Name 125 "g_tTexcdf4" - Name 128 "g_tTexcdi4" - Name 131 "g_tTexcdu4" - Name 134 "g_tTexcdf4a" - Name 137 "g_tTexcdi4a" - Name 140 "g_tTexcdu4a" - Name 141 "c1" - Name 142 "c2" - Name 143 "o3" - Name 144 "o4" + Name 99 "g_sSamp" + Name 102 "g_tTex1df4" + Name 105 "g_tTex1di4" + Name 108 "g_tTex1du4" + Name 111 "g_tTex2df4" + Name 114 "g_tTex2di4" + Name 117 "g_tTex2du4" + Name 120 "g_tTex3df4" + Name 123 "g_tTex3di4" + Name 126 "g_tTex3du4" + Name 129 "g_tTexcdf4" + Name 132 "g_tTexcdi4" + Name 135 "g_tTexcdu4" + Name 138 "g_tTexcdf4a" + Name 141 "g_tTexcdi4a" + Name 144 "g_tTexcdu4a" + Name 145 "c1" + Name 146 "c2" + Name 147 "o3" + Name 148 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -332,22 +352,22 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 95(g_sSamp) DescriptorSet 0 - Decorate 98(g_tTex1df4) DescriptorSet 0 - Decorate 101(g_tTex1di4) DescriptorSet 0 - Decorate 104(g_tTex1du4) DescriptorSet 0 - Decorate 107(g_tTex2df4) DescriptorSet 0 - Decorate 110(g_tTex2di4) DescriptorSet 0 - Decorate 113(g_tTex2du4) DescriptorSet 0 - Decorate 116(g_tTex3df4) DescriptorSet 0 - Decorate 119(g_tTex3di4) DescriptorSet 0 - Decorate 122(g_tTex3du4) DescriptorSet 0 - Decorate 125(g_tTexcdf4) DescriptorSet 0 - Decorate 128(g_tTexcdi4) DescriptorSet 0 - Decorate 131(g_tTexcdu4) DescriptorSet 0 - Decorate 134(g_tTexcdf4a) DescriptorSet 0 - Decorate 137(g_tTexcdi4a) DescriptorSet 0 - Decorate 140(g_tTexcdu4a) DescriptorSet 0 + Decorate 99(g_sSamp) DescriptorSet 0 + Decorate 102(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1di4) DescriptorSet 0 + Decorate 108(g_tTex1du4) DescriptorSet 0 + Decorate 111(g_tTex2df4) DescriptorSet 0 + Decorate 114(g_tTex2di4) DescriptorSet 0 + Decorate 117(g_tTex2du4) DescriptorSet 0 + Decorate 120(g_tTex3df4) DescriptorSet 0 + Decorate 123(g_tTex3di4) DescriptorSet 0 + Decorate 126(g_tTex3du4) DescriptorSet 0 + Decorate 129(g_tTexcdf4) DescriptorSet 0 + Decorate 132(g_tTexcdi4) DescriptorSet 0 + Decorate 135(g_tTexcdu4) DescriptorSet 0 + Decorate 138(g_tTexcdf4a) DescriptorSet 0 + Decorate 141(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -388,61 +408,64 @@ gl_FragCoord origin is upper left 76(g_tTex2du4a): 75(ptr) Variable UniformConstant 84(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) 85: TypePointer Function 84(PS_OUTPUT) - 87: 11(int) Constant 1 + 87: 11(int) Constant 0 88: 6(float) Constant 1065353216 - 89: TypePointer Function 6(float) - 93: TypeSampler - 94: TypePointer UniformConstant 93 - 95(g_sSamp): 94(ptr) Variable UniformConstant - 96: TypeImage 6(float) 1D sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex1df4): 97(ptr) Variable UniformConstant - 99: TypeImage 11(int) 1D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex1di4): 100(ptr) Variable UniformConstant - 102: TypeImage 18(int) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex1du4): 103(ptr) Variable UniformConstant - 105: TypeImage 6(float) 2D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex2df4): 106(ptr) Variable UniformConstant - 108: TypeImage 11(int) 2D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex2di4): 109(ptr) Variable UniformConstant - 111: TypeImage 18(int) 2D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex2du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3df4): 115(ptr) Variable UniformConstant - 117: TypeImage 11(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3di4): 118(ptr) Variable UniformConstant - 120: TypeImage 18(int) 3D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex3du4): 121(ptr) Variable UniformConstant - 123: TypeImage 6(float) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdf4): 124(ptr) Variable UniformConstant - 126: TypeImage 11(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdi4): 127(ptr) Variable UniformConstant - 129: TypeImage 18(int) Cube sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTexcdu4): 130(ptr) Variable UniformConstant - 132: TypeImage 6(float) Cube array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTexcdf4a): 133(ptr) Variable UniformConstant - 135: TypeImage 11(int) Cube array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTexcdi4a): 136(ptr) Variable UniformConstant - 138: TypeImage 18(int) Cube array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTexcdu4a): 139(ptr) Variable UniformConstant - 141(c1): 20(ptr) Variable UniformConstant - 142(c2): 60(ptr) Variable UniformConstant - 143(o3): 13(ptr) Variable UniformConstant - 144(o4): 53(ptr) Variable UniformConstant + 89: 25(fvec4) ConstantComposite 88 88 88 88 + 90: TypePointer Function 25(fvec4) + 92: 11(int) Constant 1 + 93: TypePointer Function 6(float) + 97: TypeSampler + 98: TypePointer UniformConstant 97 + 99(g_sSamp): 98(ptr) Variable UniformConstant + 100: TypeImage 6(float) 1D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex1df4): 101(ptr) Variable UniformConstant + 103: TypeImage 11(int) 1D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex1di4): 104(ptr) Variable UniformConstant + 106: TypeImage 18(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1du4): 107(ptr) Variable UniformConstant + 109: TypeImage 6(float) 2D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex2df4): 110(ptr) Variable UniformConstant + 112: TypeImage 11(int) 2D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex2di4): 113(ptr) Variable UniformConstant + 115: TypeImage 18(int) 2D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex2du4): 116(ptr) Variable UniformConstant + 118: TypeImage 6(float) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3df4): 119(ptr) Variable UniformConstant + 121: TypeImage 11(int) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3di4): 122(ptr) Variable UniformConstant + 124: TypeImage 18(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3du4): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdf4): 128(ptr) Variable UniformConstant + 130: TypeImage 11(int) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdi4): 131(ptr) Variable UniformConstant + 133: TypeImage 18(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdu4): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTexcdf4a): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTexcdi4a): 140(ptr) Variable UniformConstant + 142: TypeImage 18(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 145(c1): 20(ptr) Variable UniformConstant + 146(c2): 60(ptr) Variable UniformConstant + 147(o3): 13(ptr) Variable UniformConstant + 148(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -488,8 +511,10 @@ gl_FragCoord origin is upper left 81: 11(int) Load 80 82: 15(ivec2) Load 61(o2) 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 - 90: 89(ptr) AccessChain 86(psout) 87 - Store 90 88 - 91:84(PS_OUTPUT) Load 86(psout) - ReturnValue 91 + 91: 90(ptr) AccessChain 86(psout) 87 + Store 91 89 + 94: 93(ptr) AccessChain 86(psout) 92 + Store 94 88 + 95:84(PS_OUTPUT) Load 86(psout) + ReturnValue 95 FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 46fcddbf..5ba5831f 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -50,6 +50,14 @@ gl_FragCoord origin is upper left 0:15 'r08' (temp uint) 0:15 Constant: 0:15 58 (const uint) +0:18 move second child to first child (temp 4-component vector of float) +0:18 color: direct index for structure (temp 4-component vector of float) +0:18 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 Constant: +0:18 0 (const int) +0:18 Construct vec4 (temp 4-component vector of float) +0:18 Convert int to float (temp float) +0:18 'r07' (temp int) 0:19 Branch: Return with expression 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:? Linker Objects @@ -109,13 +117,21 @@ gl_FragCoord origin is upper left 0:15 'r08' (temp uint) 0:15 Constant: 0:15 58 (const uint) +0:18 move second child to first child (temp 4-component vector of float) +0:18 color: direct index for structure (temp 4-component vector of float) +0:18 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 Constant: +0:18 0 (const int) +0:18 Construct vec4 (temp 4-component vector of float) +0:18 Convert int to float (temp float) +0:18 'r07' (temp int) 0:19 Branch: Return with expression 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 35 +// Id's are bound by 41 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -155,6 +171,8 @@ gl_FragCoord origin is upper left 29: TypeVector 6(float) 4 30(PS_OUTPUT): TypeStruct 29(fvec4) 31: TypePointer Function 30(PS_OUTPUT) + 33: 19(int) Constant 0 + 37: TypePointer Function 29(fvec4) 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -176,6 +194,11 @@ gl_FragCoord origin is upper left Store 23(r06) 24 Store 25(r07) 26 Store 27(r08) 28 - 33:30(PS_OUTPUT) Load 32(ps_output) - ReturnValue 33 + 34: 19(int) Load 25(r07) + 35: 6(float) ConvertSToF 34 + 36: 29(fvec4) CompositeConstruct 35 35 35 35 + 38: 37(ptr) AccessChain 32(ps_output) 33 + Store 38 36 + 39:30(PS_OUTPUT) Load 32(ps_output) + ReturnValue 39 FunctionEnd diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 99784de3..8e0cd618 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -104,6 +104,16 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:? 1.000000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -235,6 +245,16 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:? 1.000000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -259,7 +279,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 129 +// Id's are bound by 132 Capability Shader Capability Sampled1D @@ -293,7 +313,7 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 128 "g_tTex1df4a" + Name 131 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 31(g_tTex1di4) DescriptorSet 0 @@ -305,7 +325,7 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 128(g_tTex1df4a) DescriptorSet 0 + Decorate 131(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -379,9 +399,11 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 84 115 116 117 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 121: TypePointer Function 120(PS_OUTPUT) - 123: 25(int) Constant 1 - 124: TypePointer Function 6(float) -128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123: 25(int) Constant 0 + 124: 7(fvec4) ConstantComposite 117 117 117 117 + 126: 25(int) Constant 1 + 127: TypePointer Function 6(float) +131(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -439,8 +461,10 @@ gl_FragCoord origin is upper left 114: 113 SampledImage 111 112 119: 40(ivec4) ImageSampleImplicitLod 114 118 Store 107(txval42) 119 - 125: 124(ptr) AccessChain 122(psout) 123 - Store 125 117 - 126:120(PS_OUTPUT) Load 122(psout) - ReturnValue 126 + 125: 8(ptr) AccessChain 122(psout) 123 + Store 125 124 + 128: 127(ptr) AccessChain 122(psout) 126 + Store 128 117 + 129:120(PS_OUTPUT) Load 122(psout) + ReturnValue 129 FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 234e3888..3a94ee52 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -214,6 +214,16 @@ gl_FragCoord origin is upper left 0:? 0.700000 0:? 0.800000 0:? 0.900000 +0:86 move second child to first child (temp 4-component vector of float) +0:86 Color: direct index for structure (temp 4-component vector of float) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) 0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -458,6 +468,16 @@ gl_FragCoord origin is upper left 0:? 0.700000 0:? 0.800000 0:? 0.900000 +0:86 move second child to first child (temp 4-component vector of float) +0:86 Color: direct index for structure (temp 4-component vector of float) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Constant: +0:86 0 (const int) +0:86 Constant: +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 +0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) 0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -487,7 +507,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 184 Capability Shader Capability Sampled1D @@ -540,9 +560,9 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 179 "g_sSamp2d" - Name 180 "g_sSamp2D_b" - Name 181 "g_tTex1df4a" + Name 181 "g_sSamp2d" + Name 182 "g_sSamp2D_b" + Name 183 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 45(g_sSamp) DescriptorSet 0 Decorate 56(g_tTex1di4) DescriptorSet 0 @@ -557,9 +577,9 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 179(g_sSamp2d) DescriptorSet 0 - Decorate 180(g_sSamp2D_b) DescriptorSet 0 - Decorate 181(g_tTex1df4a) DescriptorSet 0 + Decorate 181(g_sSamp2d) DescriptorSet 0 + Decorate 182(g_sSamp2D_b) DescriptorSet 0 + Decorate 183(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -657,10 +677,11 @@ gl_FragCoord origin is upper left 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) 172: TypePointer Function 171(PS_OUTPUT) 174: 35(float) Constant 1065353216 - 175: TypePointer Function 35(float) - 179(g_sSamp2d): 44(ptr) Variable UniformConstant -180(g_sSamp2D_b): 44(ptr) Variable UniformConstant -181(g_tTex1df4a): 40(ptr) Variable UniformConstant + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 181(g_sSamp2d): 44(ptr) Variable UniformConstant +182(g_sSamp2D_b): 44(ptr) Variable UniformConstant +183(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -761,8 +782,10 @@ gl_FragCoord origin is upper left 169: 168 SampledImage 166 167 170: 64(ivec4) ImageSampleImplicitLod 169 142 Store 162(txval42) 170 - 176: 175(ptr) AccessChain 173(psout) 10 - Store 176 174 - 177:171(PS_OUTPUT) Load 173(psout) - ReturnValue 177 + 176: 37(ptr) AccessChain 173(psout) 23 + Store 176 175 + 178: 177(ptr) AccessChain 173(psout) 10 + Store 178 174 + 179:171(PS_OUTPUT) Load 173(psout) + ReturnValue 179 FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 09e94a7a..42fe084d 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -274,6 +284,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -301,7 +321,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 147 Capability Shader Capability Sampled1D @@ -334,10 +354,10 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 135 "g_tTex1df4a" - Name 138 "g_tTexcdf4" - Name 141 "g_tTexcdi4" - Name 144 "g_tTexcdu4" + Name 137 "g_tTex1df4a" + Name 140 "g_tTexcdf4" + Name 143 "g_tTexcdi4" + Name 146 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -349,10 +369,10 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 135(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTexcdf4) DescriptorSet 0 - Decorate 141(g_tTexcdi4) DescriptorSet 0 - Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 137(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTexcdf4) DescriptorSet 0 + Decorate 143(g_tTexcdi4) DescriptorSet 0 + Decorate 146(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -434,17 +454,18 @@ gl_FragCoord origin is upper left 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 128: TypePointer Function 127(PS_OUTPUT) 130: 6(float) Constant 1065353216 - 131: TypePointer Function 6(float) -135(g_tTex1df4a): 11(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdf4): 137(ptr) Variable UniformConstant - 139: TypeImage 21(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdi4): 140(ptr) Variable UniformConstant - 142: TypeImage 36(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 131: 7(fvec4) ConstantComposite 130 130 130 130 + 133: TypePointer Function 6(float) +137(g_tTex1df4a): 11(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTexcdf4): 139(ptr) Variable UniformConstant + 141: TypeImage 21(int) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdi4): 142(ptr) Variable UniformConstant + 144: TypeImage 36(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdu4): 145(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -502,8 +523,10 @@ gl_FragCoord origin is upper left 120: 119 SampledImage 117 118 126: 37(ivec4) ImageSampleImplicitLod 120 124 ConstOffset 125 Store 113(txval32) 126 - 132: 131(ptr) AccessChain 129(psout) 22 - Store 132 130 - 133:127(PS_OUTPUT) Load 129(psout) - ReturnValue 133 + 132: 8(ptr) AccessChain 129(psout) 60 + Store 132 131 + 134: 133(ptr) AccessChain 129(psout) 22 + Store 134 130 + 135:127(PS_OUTPUT) Load 129(psout) + ReturnValue 135 FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 38119f76..ed3838ff 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -83,6 +83,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -190,6 +200,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -211,7 +231,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 102 +// Id's are bound by 104 Capability Shader Capability Sampled1D @@ -238,7 +258,7 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 101 "g_tTex1df4a" + Name 103 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 32(g_tTex1di4) DescriptorSet 0 @@ -247,7 +267,7 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -310,8 +330,9 @@ gl_FragCoord origin is upper left 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 94: TypePointer Function 93(PS_OUTPUT) 96: 6(float) Constant 1065353216 - 97: TypePointer Function 6(float) -101(g_tTex1df4a): 11(ptr) Variable UniformConstant + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 99: TypePointer Function 6(float) +103(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -351,8 +372,10 @@ gl_FragCoord origin is upper left 87: 86 SampledImage 84 85 92: 42(ivec4) ImageSampleImplicitLod 87 90 ConstOffset 91 Store 80(txval22) 92 - 98: 97(ptr) AccessChain 95(psout) 39 - Store 98 96 - 99:93(PS_OUTPUT) Load 95(psout) - ReturnValue 99 + 98: 8(ptr) AccessChain 95(psout) 25 + Store 98 97 + 100: 99(ptr) AccessChain 95(psout) 39 + Store 100 96 + 101:93(PS_OUTPUT) Load 95(psout) + ReturnValue 101 FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 96d9be7c..37022698 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:37 Constant: 0:37 0.500000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -271,6 +281,16 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:37 Constant: 0:37 0.500000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -295,7 +315,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 129 +// Id's are bound by 132 Capability Shader Capability Sampled1D @@ -329,7 +349,7 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 128 "g_tTex1df4a" + Name 131 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 32(g_tTex1di4) DescriptorSet 0 @@ -341,7 +361,7 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 128(g_tTex1df4a) DescriptorSet 0 + Decorate 131(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -415,9 +435,11 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 84 115 116 117 120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 121: TypePointer Function 120(PS_OUTPUT) - 123: 26(int) Constant 1 - 124: TypePointer Function 6(float) -128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123: 26(int) Constant 0 + 124: 7(fvec4) ConstantComposite 117 117 117 117 + 126: 26(int) Constant 1 + 127: TypePointer Function 6(float) +131(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -475,8 +497,10 @@ gl_FragCoord origin is upper left 114: 113 SampledImage 111 112 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24 Store 107(txval42) 119 - 125: 124(ptr) AccessChain 122(psout) 123 - Store 125 117 - 126:120(PS_OUTPUT) Load 122(psout) - ReturnValue 126 + 125: 8(ptr) AccessChain 122(psout) 123 + Store 125 124 + 128: 127(ptr) AccessChain 122(psout) 126 + Store 128 117 + 129:120(PS_OUTPUT) Load 122(psout) + ReturnValue 129 FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 3fb36ee5..97d756e7 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -152,6 +152,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:45 Constant: 0:45 0.500000 +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -334,6 +344,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:45 Constant: 0:45 0.500000 +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -361,7 +381,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 153 +// Id's are bound by 156 Capability Shader Capability Sampled1D @@ -400,7 +420,7 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 152 "g_tTex1df4a" + Name 155 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -415,7 +435,7 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -497,10 +517,12 @@ gl_FragCoord origin is upper left 140: TypeSampledImage 135 143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 144: TypePointer Function 143(PS_OUTPUT) - 146: 23(int) Constant 1 + 146: 23(int) Constant 0 147: 6(float) Constant 1065353216 - 148: TypePointer Function 6(float) -152(g_tTex1df4a): 11(ptr) Variable UniformConstant + 148: 7(fvec4) ConstantComposite 147 147 147 147 + 150: 23(int) Constant 1 + 151: TypePointer Function 6(float) +155(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -576,8 +598,10 @@ gl_FragCoord origin is upper left 141: 140 SampledImage 138 139 142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21 Store 134(txval42) 142 - 149: 148(ptr) AccessChain 145(psout) 146 - Store 149 147 - 150:143(PS_OUTPUT) Load 145(psout) - ReturnValue 150 + 149: 8(ptr) AccessChain 145(psout) 146 + Store 149 148 + 152: 151(ptr) AccessChain 145(psout) 150 + Store 152 147 + 153:143(PS_OUTPUT) Load 145(psout) + ReturnValue 153 FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 8faab19d..4219bbcd 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -140,6 +140,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -310,6 +320,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -337,7 +357,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 147 Capability Shader Capability Sampled1D @@ -370,10 +390,10 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 135 "g_tTex1df4a" - Name 138 "g_tTexcdf4" - Name 141 "g_tTexcdi4" - Name 144 "g_tTexcdu4" + Name 137 "g_tTex1df4a" + Name 140 "g_tTexcdf4" + Name 143 "g_tTexcdi4" + Name 146 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 30(g_tTex1di4) DescriptorSet 0 @@ -385,10 +405,10 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 135(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTexcdf4) DescriptorSet 0 - Decorate 141(g_tTexcdi4) DescriptorSet 0 - Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 137(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTexcdf4) DescriptorSet 0 + Decorate 143(g_tTexcdi4) DescriptorSet 0 + Decorate 146(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -470,17 +490,18 @@ gl_FragCoord origin is upper left 127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 128: TypePointer Function 127(PS_OUTPUT) 130: 6(float) Constant 1065353216 - 131: TypePointer Function 6(float) -135(g_tTex1df4a): 11(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdf4): 137(ptr) Variable UniformConstant - 139: TypeImage 22(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdi4): 140(ptr) Variable UniformConstant - 142: TypeImage 37(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 131: 7(fvec4) ConstantComposite 130 130 130 130 + 133: TypePointer Function 6(float) +137(g_tTex1df4a): 11(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTexcdf4): 139(ptr) Variable UniformConstant + 141: TypeImage 22(int) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdi4): 142(ptr) Variable UniformConstant + 144: TypeImage 37(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdu4): 145(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -538,8 +559,10 @@ gl_FragCoord origin is upper left 120: 119 SampledImage 117 118 126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21 Store 113(txval32) 126 - 132: 131(ptr) AccessChain 129(psout) 23 - Store 132 130 - 133:127(PS_OUTPUT) Load 129(psout) - ReturnValue 133 + 132: 8(ptr) AccessChain 129(psout) 61 + Store 132 131 + 134: 133(ptr) AccessChain 129(psout) 23 + Store 134 130 + 135:127(PS_OUTPUT) Load 129(psout) + ReturnValue 135 FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 51f61235..925c40ec 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -95,6 +95,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -214,6 +224,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -235,7 +255,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 102 +// Id's are bound by 104 Capability Shader Capability Sampled1D @@ -262,7 +282,7 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 101 "g_tTex1df4a" + Name 103 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex1di4) DescriptorSet 0 @@ -271,7 +291,7 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -334,8 +354,9 @@ gl_FragCoord origin is upper left 93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 94: TypePointer Function 93(PS_OUTPUT) 96: 6(float) Constant 1065353216 - 97: TypePointer Function 6(float) -101(g_tTex1df4a): 11(ptr) Variable UniformConstant + 97: 7(fvec4) ConstantComposite 96 96 96 96 + 99: TypePointer Function 6(float) +103(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -375,8 +396,10 @@ gl_FragCoord origin is upper left 87: 86 SampledImage 84 85 92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24 Store 80(txval22) 92 - 98: 97(ptr) AccessChain 95(psout) 40 - Store 98 96 - 99:93(PS_OUTPUT) Load 95(psout) - ReturnValue 99 + 98: 8(ptr) AccessChain 95(psout) 26 + Store 98 97 + 100: 99(ptr) AccessChain 95(psout) 40 + Store 100 96 + 101:93(PS_OUTPUT) Load 95(psout) + ReturnValue 101 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index da404c48..6114c0f9 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -131,6 +131,16 @@ gl_FragCoord origin is upper left 0:? 0.400000 0:54 Constant: 0:54 0.750000 +0:56 move second child to first child (temp 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) 0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -300,6 +310,16 @@ gl_FragCoord origin is upper left 0:? 0.400000 0:54 Constant: 0:54 0.750000 +0:56 move second child to first child (temp 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) 0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -335,7 +355,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 173 +// Id's are bound by 177 Capability Shader Capability Sampled1D @@ -369,18 +389,18 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 139 "g_tTex1df4" - Name 142 "g_tTex1di4" - Name 145 "g_tTex1du4" - Name 148 "g_tTex2df4" - Name 151 "g_tTex2di4" - Name 154 "g_tTex2du4" - Name 157 "g_tTex3df4" - Name 160 "g_tTex3di4" - Name 163 "g_tTex3du4" - Name 166 "g_tTexcdf4" - Name 169 "g_tTexcdi4" - Name 172 "g_tTexcdu4" + Name 143 "g_tTex1df4" + Name 146 "g_tTex1di4" + Name 149 "g_tTex1du4" + Name 152 "g_tTex2df4" + Name 155 "g_tTex2di4" + Name 158 "g_tTex2du4" + Name 161 "g_tTex3df4" + Name 164 "g_tTex3di4" + Name 167 "g_tTex3du4" + Name 170 "g_tTexcdf4" + Name 173 "g_tTexcdi4" + Name 176 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 32(g_tTex1di4a) DescriptorSet 0 @@ -392,18 +412,18 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4) DescriptorSet 0 - Decorate 142(g_tTex1di4) DescriptorSet 0 - Decorate 145(g_tTex1du4) DescriptorSet 0 - Decorate 148(g_tTex2df4) DescriptorSet 0 - Decorate 151(g_tTex2di4) DescriptorSet 0 - Decorate 154(g_tTex2du4) DescriptorSet 0 - Decorate 157(g_tTex3df4) DescriptorSet 0 - Decorate 160(g_tTex3di4) DescriptorSet 0 - Decorate 163(g_tTex3du4) DescriptorSet 0 - Decorate 166(g_tTexcdf4) DescriptorSet 0 - Decorate 169(g_tTexcdi4) DescriptorSet 0 - Decorate 172(g_tTexcdu4) DescriptorSet 0 + Decorate 143(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1di4) DescriptorSet 0 + Decorate 149(g_tTex1du4) DescriptorSet 0 + Decorate 152(g_tTex2df4) DescriptorSet 0 + Decorate 155(g_tTex2di4) DescriptorSet 0 + Decorate 158(g_tTex2du4) DescriptorSet 0 + Decorate 161(g_tTex3df4) DescriptorSet 0 + Decorate 164(g_tTex3di4) DescriptorSet 0 + Decorate 167(g_tTex3du4) DescriptorSet 0 + Decorate 170(g_tTexcdf4) DescriptorSet 0 + Decorate 173(g_tTexcdi4) DescriptorSet 0 + Decorate 176(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -471,44 +491,47 @@ gl_FragCoord origin is upper left 125: TypeSampledImage 124 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) 130: TypePointer Function 129(PS_OUTPUT) - 132: 29(int) Constant 1 + 132: 29(int) Constant 0 133: 6(float) Constant 1065353216 - 137: TypeImage 6(float) 1D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex1df4): 138(ptr) Variable UniformConstant - 140: TypeImage 29(int) 1D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex1di4): 141(ptr) Variable UniformConstant - 143: TypeImage 42(int) 1D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex1du4): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) 2D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex2df4): 147(ptr) Variable UniformConstant - 149: TypeImage 29(int) 2D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex2di4): 150(ptr) Variable UniformConstant - 152: TypeImage 42(int) 2D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex2du4): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) 3D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex3df4): 156(ptr) Variable UniformConstant - 158: TypeImage 29(int) 3D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex3di4): 159(ptr) Variable UniformConstant - 161: TypeImage 42(int) 3D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex3du4): 162(ptr) Variable UniformConstant - 164: TypeImage 6(float) Cube sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTexcdf4): 165(ptr) Variable UniformConstant - 167: TypeImage 29(int) Cube sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTexcdi4): 168(ptr) Variable UniformConstant - 170: TypeImage 42(int) Cube sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTexcdu4): 171(ptr) Variable UniformConstant + 134: 102(fvec4) ConstantComposite 133 133 133 133 + 135: TypePointer Function 102(fvec4) + 137: 29(int) Constant 1 + 141: TypeImage 6(float) 1D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex1df4): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1di4): 145(ptr) Variable UniformConstant + 147: TypeImage 42(int) 1D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex1du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 2D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex2df4): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2di4): 154(ptr) Variable UniformConstant + 156: TypeImage 42(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex2du4): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) 3D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex3df4): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3di4): 163(ptr) Variable UniformConstant + 165: TypeImage 42(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3du4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTexcdf4): 169(ptr) Variable UniformConstant + 171: TypeImage 29(int) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdi4): 172(ptr) Variable UniformConstant + 174: TypeImage 42(int) Cube sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTexcdu4): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -581,8 +604,10 @@ gl_FragCoord origin is upper left 127: 6(float) CompositeExtract 104 0 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 Store 118(r64) 128 - 134: 7(ptr) AccessChain 131(psout) 132 - Store 134 133 - 135:129(PS_OUTPUT) Load 131(psout) - ReturnValue 135 + 136: 135(ptr) AccessChain 131(psout) 132 + Store 136 134 + 138: 7(ptr) AccessChain 131(psout) 137 + Store 138 133 + 139:129(PS_OUTPUT) Load 131(psout) + ReturnValue 139 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index b4b60d99..f0528de3 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:? 0.300000 0:55 Constant: 0:55 0.750000 +0:57 move second child to first child (temp 4-component vector of float) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) 0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -282,6 +292,16 @@ gl_FragCoord origin is upper left 0:? 0.300000 0:55 Constant: 0:55 0.750000 +0:57 move second child to first child (temp 4-component vector of float) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) 0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -317,7 +337,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 171 +// Id's are bound by 175 Capability Shader Capability Sampled1D @@ -351,18 +371,18 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "g_tTex3df4" - Name 140 "g_tTex3di4" - Name 143 "g_tTex3du4" - Name 146 "g_tTex1df4a" - Name 149 "g_tTex1di4a" - Name 152 "g_tTex1du4a" - Name 155 "g_tTex2df4a" - Name 158 "g_tTex2di4a" - Name 161 "g_tTex2du4a" - Name 164 "g_tTexcdf4a" - Name 167 "g_tTexcdi4a" - Name 170 "g_tTexcdu4a" + Name 141 "g_tTex3df4" + Name 144 "g_tTex3di4" + Name 147 "g_tTex3du4" + Name 150 "g_tTex1df4a" + Name 153 "g_tTex1di4a" + Name 156 "g_tTex1du4a" + Name 159 "g_tTex2df4a" + Name 162 "g_tTex2di4a" + Name 165 "g_tTex2du4a" + Name 168 "g_tTexcdf4a" + Name 171 "g_tTexcdi4a" + Name 174 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 28(g_tTex1di4) DescriptorSet 0 @@ -374,18 +394,18 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(g_tTex3df4) DescriptorSet 0 - Decorate 140(g_tTex3di4) DescriptorSet 0 - Decorate 143(g_tTex3du4) DescriptorSet 0 - Decorate 146(g_tTex1df4a) DescriptorSet 0 - Decorate 149(g_tTex1di4a) DescriptorSet 0 - Decorate 152(g_tTex1du4a) DescriptorSet 0 - Decorate 155(g_tTex2df4a) DescriptorSet 0 - Decorate 158(g_tTex2di4a) DescriptorSet 0 - Decorate 161(g_tTex2du4a) DescriptorSet 0 - Decorate 164(g_tTexcdf4a) DescriptorSet 0 - Decorate 167(g_tTexcdi4a) DescriptorSet 0 - Decorate 170(g_tTexcdu4a) DescriptorSet 0 + Decorate 141(g_tTex3df4) DescriptorSet 0 + Decorate 144(g_tTex3di4) DescriptorSet 0 + Decorate 147(g_tTex3du4) DescriptorSet 0 + Decorate 150(g_tTex1df4a) DescriptorSet 0 + Decorate 153(g_tTex1di4a) DescriptorSet 0 + Decorate 156(g_tTex1du4a) DescriptorSet 0 + Decorate 159(g_tTex2df4a) DescriptorSet 0 + Decorate 162(g_tTex2di4a) DescriptorSet 0 + Decorate 165(g_tTex2du4a) DescriptorSet 0 + Decorate 168(g_tTexcdf4a) DescriptorSet 0 + Decorate 171(g_tTexcdi4a) DescriptorSet 0 + Decorate 174(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -451,44 +471,47 @@ gl_FragCoord origin is upper left 126: TypeVector 6(float) 4 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) 128: TypePointer Function 127(PS_OUTPUT) - 130: 25(int) Constant 1 + 130: 25(int) Constant 0 131: 6(float) Constant 1065353216 - 135: TypeImage 6(float) 3D sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTex3df4): 136(ptr) Variable UniformConstant - 138: TypeImage 25(int) 3D sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTex3di4): 139(ptr) Variable UniformConstant - 141: TypeImage 37(int) 3D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex3du4): 142(ptr) Variable UniformConstant - 144: TypeImage 6(float) 1D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex1df4a): 145(ptr) Variable UniformConstant - 147: TypeImage 25(int) 1D array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTex1di4a): 148(ptr) Variable UniformConstant - 150: TypeImage 37(int) 1D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex1du4a): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) 2D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex2df4a): 154(ptr) Variable UniformConstant - 156: TypeImage 25(int) 2D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex2di4a): 157(ptr) Variable UniformConstant - 159: TypeImage 37(int) 2D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex2du4a): 160(ptr) Variable UniformConstant - 162: TypeImage 6(float) Cube array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTexcdf4a): 163(ptr) Variable UniformConstant - 165: TypeImage 25(int) Cube array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTexcdi4a): 166(ptr) Variable UniformConstant - 168: TypeImage 37(int) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdu4a): 169(ptr) Variable UniformConstant + 132: 126(fvec4) ConstantComposite 131 131 131 131 + 133: TypePointer Function 126(fvec4) + 135: 25(int) Constant 1 + 139: TypeImage 6(float) 3D sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTex3df4): 140(ptr) Variable UniformConstant + 142: TypeImage 25(int) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3di4): 143(ptr) Variable UniformConstant + 145: TypeImage 37(int) 3D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex3du4): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 25(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 37(int) 1D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex1du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2df4a): 158(ptr) Variable UniformConstant + 160: TypeImage 25(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2di4a): 161(ptr) Variable UniformConstant + 163: TypeImage 37(int) 2D array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTex2du4a): 164(ptr) Variable UniformConstant + 166: TypeImage 6(float) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdf4a): 167(ptr) Variable UniformConstant + 169: TypeImage 25(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdi4a): 170(ptr) Variable UniformConstant + 172: TypeImage 37(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdu4a): 173(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -561,8 +584,10 @@ gl_FragCoord origin is upper left 124: 6(float) CompositeExtract 123 0 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 Store 114(r54) 125 - 132: 7(ptr) AccessChain 129(psout) 130 - Store 132 131 - 133:127(PS_OUTPUT) Load 129(psout) - ReturnValue 133 + 134: 133(ptr) AccessChain 129(psout) 130 + Store 134 132 + 136: 7(ptr) AccessChain 129(psout) 135 + Store 136 131 + 137:127(PS_OUTPUT) Load 129(psout) + ReturnValue 137 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index e4cd0a41..04d5972e 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -95,6 +95,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:62 move second child to first child (temp 4-component vector of float) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) 0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -228,6 +238,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:62 move second child to first child (temp 4-component vector of float) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) 0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -263,7 +283,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 149 Capability Shader Capability Sampled1D @@ -291,21 +311,21 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 102 "g_tTex3df4" - Name 105 "g_tTex3di4" - Name 108 "g_tTex3du4" - Name 111 "g_tTexcdf4" - Name 114 "g_tTexcdi4" - Name 117 "g_tTexcdu4" - Name 120 "g_tTex1df4a" - Name 123 "g_tTex1di4a" - Name 126 "g_tTex1du4a" - Name 129 "g_tTex2df4a" - Name 132 "g_tTex2di4a" - Name 135 "g_tTex2du4a" - Name 138 "g_tTexcdf4a" - Name 141 "g_tTexcdi4a" - Name 144 "g_tTexcdu4a" + Name 106 "g_tTex3df4" + Name 109 "g_tTex3di4" + Name 112 "g_tTex3du4" + Name 115 "g_tTexcdf4" + Name 118 "g_tTexcdi4" + Name 121 "g_tTexcdu4" + Name 124 "g_tTex1df4a" + Name 127 "g_tTex1di4a" + Name 130 "g_tTex1du4a" + Name 133 "g_tTex2df4a" + Name 136 "g_tTex2di4a" + Name 139 "g_tTex2du4a" + Name 142 "g_tTexcdf4a" + Name 145 "g_tTexcdi4a" + Name 148 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -314,21 +334,21 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(g_tTex3df4) DescriptorSet 0 - Decorate 105(g_tTex3di4) DescriptorSet 0 - Decorate 108(g_tTex3du4) DescriptorSet 0 - Decorate 111(g_tTexcdf4) DescriptorSet 0 - Decorate 114(g_tTexcdi4) DescriptorSet 0 - Decorate 117(g_tTexcdu4) DescriptorSet 0 - Decorate 120(g_tTex1df4a) DescriptorSet 0 - Decorate 123(g_tTex1di4a) DescriptorSet 0 - Decorate 126(g_tTex1du4a) DescriptorSet 0 - Decorate 129(g_tTex2df4a) DescriptorSet 0 - Decorate 132(g_tTex2di4a) DescriptorSet 0 - Decorate 135(g_tTex2du4a) DescriptorSet 0 - Decorate 138(g_tTexcdf4a) DescriptorSet 0 - Decorate 141(g_tTexcdi4a) DescriptorSet 0 - Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 106(g_tTex3df4) DescriptorSet 0 + Decorate 109(g_tTex3di4) DescriptorSet 0 + Decorate 112(g_tTex3du4) DescriptorSet 0 + Decorate 115(g_tTexcdf4) DescriptorSet 0 + Decorate 118(g_tTexcdi4) DescriptorSet 0 + Decorate 121(g_tTexcdu4) DescriptorSet 0 + Decorate 124(g_tTex1df4a) DescriptorSet 0 + Decorate 127(g_tTex1di4a) DescriptorSet 0 + Decorate 130(g_tTex1du4a) DescriptorSet 0 + Decorate 133(g_tTex2df4a) DescriptorSet 0 + Decorate 136(g_tTex2di4a) DescriptorSet 0 + Decorate 139(g_tTex2du4a) DescriptorSet 0 + Decorate 142(g_tTexcdf4a) DescriptorSet 0 + Decorate 145(g_tTexcdi4a) DescriptorSet 0 + Decorate 148(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -380,53 +400,56 @@ gl_FragCoord origin is upper left 91: TypeVector 6(float) 4 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) 93: TypePointer Function 92(PS_OUTPUT) - 95: 22(int) Constant 1 + 95: 22(int) Constant 0 96: 6(float) Constant 1065353216 - 100: TypeImage 6(float) 3D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex3df4): 101(ptr) Variable UniformConstant - 103: TypeImage 22(int) 3D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex3di4): 104(ptr) Variable UniformConstant - 106: TypeImage 38(int) 3D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex3du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) Cube sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTexcdf4): 110(ptr) Variable UniformConstant - 112: TypeImage 22(int) Cube sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTexcdi4): 113(ptr) Variable UniformConstant - 115: TypeImage 38(int) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdu4): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) 1D array sampled format:Unknown - 119: TypePointer UniformConstant 118 -120(g_tTex1df4a): 119(ptr) Variable UniformConstant - 121: TypeImage 22(int) 1D array sampled format:Unknown - 122: TypePointer UniformConstant 121 -123(g_tTex1di4a): 122(ptr) Variable UniformConstant - 124: TypeImage 38(int) 1D array sampled format:Unknown - 125: TypePointer UniformConstant 124 -126(g_tTex1du4a): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) 2D array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTex2df4a): 128(ptr) Variable UniformConstant - 130: TypeImage 22(int) 2D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex2di4a): 131(ptr) Variable UniformConstant - 133: TypeImage 38(int) 2D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex2du4a): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTexcdf4a): 137(ptr) Variable UniformConstant - 139: TypeImage 22(int) Cube array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTexcdi4a): 140(ptr) Variable UniformConstant - 142: TypeImage 38(int) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 97: 91(fvec4) ConstantComposite 96 96 96 96 + 98: TypePointer Function 91(fvec4) + 100: 22(int) Constant 1 + 104: TypeImage 6(float) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3df4): 105(ptr) Variable UniformConstant + 107: TypeImage 22(int) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3di4): 108(ptr) Variable UniformConstant + 110: TypeImage 38(int) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3du4): 111(ptr) Variable UniformConstant + 113: TypeImage 6(float) Cube sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTexcdf4): 114(ptr) Variable UniformConstant + 116: TypeImage 22(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdi4): 117(ptr) Variable UniformConstant + 119: TypeImage 38(int) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdu4): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 1D array sampled format:Unknown + 123: TypePointer UniformConstant 122 +124(g_tTex1df4a): 123(ptr) Variable UniformConstant + 125: TypeImage 22(int) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1di4a): 126(ptr) Variable UniformConstant + 128: TypeImage 38(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1du4a): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 2D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex2df4a): 132(ptr) Variable UniformConstant + 134: TypeImage 22(int) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2di4a): 135(ptr) Variable UniformConstant + 137: TypeImage 38(int) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2du4a): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTexcdf4a): 141(ptr) Variable UniformConstant + 143: TypeImage 22(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdi4a): 144(ptr) Variable UniformConstant + 146: TypeImage 38(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdu4a): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -475,8 +498,10 @@ gl_FragCoord origin is upper left 89: 6(float) CompositeExtract 88 0 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 Store 79(r25) 90 - 97: 7(ptr) AccessChain 94(psout) 95 - Store 97 96 - 98:92(PS_OUTPUT) Load 94(psout) - ReturnValue 98 + 99: 98(ptr) AccessChain 94(psout) 95 + Store 99 97 + 101: 7(ptr) AccessChain 94(psout) 100 + Store 101 96 + 102:92(PS_OUTPUT) Load 94(psout) + ReturnValue 102 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 479be6a7..ebafd9ed 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -101,6 +101,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:63 move second child to first child (temp 4-component vector of float) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) 0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -240,6 +250,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:63 move second child to first child (temp 4-component vector of float) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) 0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -275,7 +295,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 155 Capability Shader Capability Sampled1D @@ -303,21 +323,21 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 108 "g_tTex1df4" - Name 111 "g_tTex1di4" - Name 114 "g_tTex1du4" - Name 117 "g_tTex2df4" - Name 120 "g_tTex2di4" - Name 123 "g_tTex2du4" - Name 126 "g_tTex3df4" - Name 129 "g_tTex3di4" - Name 132 "g_tTex3du4" - Name 135 "g_tTexcdf4" - Name 138 "g_tTexcdi4" - Name 141 "g_tTexcdu4" - Name 144 "g_tTexcdf4a" - Name 147 "g_tTexcdi4a" - Name 150 "g_tTexcdu4a" + Name 112 "g_tTex1df4" + Name 115 "g_tTex1di4" + Name 118 "g_tTex1du4" + Name 121 "g_tTex2df4" + Name 124 "g_tTex2di4" + Name 127 "g_tTex2du4" + Name 130 "g_tTex3df4" + Name 133 "g_tTex3di4" + Name 136 "g_tTex3du4" + Name 139 "g_tTexcdf4" + Name 142 "g_tTexcdi4" + Name 145 "g_tTexcdu4" + Name 148 "g_tTexcdf4a" + Name 151 "g_tTexcdi4a" + Name 154 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex1di4a) DescriptorSet 0 @@ -326,21 +346,21 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 108(g_tTex1df4) DescriptorSet 0 - Decorate 111(g_tTex1di4) DescriptorSet 0 - Decorate 114(g_tTex1du4) DescriptorSet 0 - Decorate 117(g_tTex2df4) DescriptorSet 0 - Decorate 120(g_tTex2di4) DescriptorSet 0 - Decorate 123(g_tTex2du4) DescriptorSet 0 - Decorate 126(g_tTex3df4) DescriptorSet 0 - Decorate 129(g_tTex3di4) DescriptorSet 0 - Decorate 132(g_tTex3du4) DescriptorSet 0 - Decorate 135(g_tTexcdf4) DescriptorSet 0 - Decorate 138(g_tTexcdi4) DescriptorSet 0 - Decorate 141(g_tTexcdu4) DescriptorSet 0 - Decorate 144(g_tTexcdf4a) DescriptorSet 0 - Decorate 147(g_tTexcdi4a) DescriptorSet 0 - Decorate 150(g_tTexcdu4a) DescriptorSet 0 + Decorate 112(g_tTex1df4) DescriptorSet 0 + Decorate 115(g_tTex1di4) DescriptorSet 0 + Decorate 118(g_tTex1du4) DescriptorSet 0 + Decorate 121(g_tTex2df4) DescriptorSet 0 + Decorate 124(g_tTex2di4) DescriptorSet 0 + Decorate 127(g_tTex2du4) DescriptorSet 0 + Decorate 130(g_tTex3df4) DescriptorSet 0 + Decorate 133(g_tTex3di4) DescriptorSet 0 + Decorate 136(g_tTex3du4) DescriptorSet 0 + Decorate 139(g_tTexcdf4) DescriptorSet 0 + Decorate 142(g_tTexcdi4) DescriptorSet 0 + Decorate 145(g_tTexcdu4) DescriptorSet 0 + Decorate 148(g_tTexcdf4a) DescriptorSet 0 + Decorate 151(g_tTexcdi4a) DescriptorSet 0 + Decorate 154(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -395,53 +415,56 @@ gl_FragCoord origin is upper left 97: TypeVector 6(float) 4 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) 99: TypePointer Function 98(PS_OUTPUT) - 101: 26(int) Constant 1 + 101: 26(int) Constant 0 102: 6(float) Constant 1065353216 - 106: TypeImage 6(float) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1df4): 107(ptr) Variable UniformConstant - 109: TypeImage 26(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1di4): 110(ptr) Variable UniformConstant - 112: TypeImage 43(int) 1D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex1du4): 113(ptr) Variable UniformConstant - 115: TypeImage 6(float) 2D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex2df4): 116(ptr) Variable UniformConstant - 118: TypeImage 26(int) 2D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex2di4): 119(ptr) Variable UniformConstant - 121: TypeImage 43(int) 2D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex2du4): 122(ptr) Variable UniformConstant - 124: TypeImage 6(float) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3df4): 125(ptr) Variable UniformConstant - 127: TypeImage 26(int) 3D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex3di4): 128(ptr) Variable UniformConstant - 130: TypeImage 43(int) 3D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex3du4): 131(ptr) Variable UniformConstant - 133: TypeImage 6(float) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdf4): 134(ptr) Variable UniformConstant - 136: TypeImage 26(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdi4): 137(ptr) Variable UniformConstant - 139: TypeImage 43(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdu4): 140(ptr) Variable UniformConstant - 142: TypeImage 6(float) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdf4a): 143(ptr) Variable UniformConstant - 145: TypeImage 26(int) Cube array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTexcdi4a): 146(ptr) Variable UniformConstant - 148: TypeImage 43(int) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 103: 97(fvec4) ConstantComposite 102 102 102 102 + 104: TypePointer Function 97(fvec4) + 106: 26(int) Constant 1 + 110: TypeImage 6(float) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex1df4): 111(ptr) Variable UniformConstant + 113: TypeImage 26(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1di4): 114(ptr) Variable UniformConstant + 116: TypeImage 43(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1du4): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) 2D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex2df4): 120(ptr) Variable UniformConstant + 122: TypeImage 26(int) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2di4): 123(ptr) Variable UniformConstant + 125: TypeImage 43(int) 2D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex2du4): 126(ptr) Variable UniformConstant + 128: TypeImage 6(float) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3df4): 129(ptr) Variable UniformConstant + 131: TypeImage 26(int) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3di4): 132(ptr) Variable UniformConstant + 134: TypeImage 43(int) 3D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex3du4): 135(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdf4): 138(ptr) Variable UniformConstant + 140: TypeImage 26(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdi4): 141(ptr) Variable UniformConstant + 143: TypeImage 43(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdu4): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdf4a): 147(ptr) Variable UniformConstant + 149: TypeImage 26(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdi4a): 150(ptr) Variable UniformConstant + 152: TypeImage 43(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdu4a): 153(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -493,8 +516,10 @@ gl_FragCoord origin is upper left 95: 6(float) CompositeExtract 94 0 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 Store 85(r35) 96 - 103: 7(ptr) AccessChain 100(psout) 101 - Store 103 102 - 104:98(PS_OUTPUT) Load 100(psout) - ReturnValue 104 + 105: 104(ptr) AccessChain 100(psout) 101 + Store 105 103 + 107: 7(ptr) AccessChain 100(psout) 106 + Store 107 102 + 108:98(PS_OUTPUT) Load 100(psout) + ReturnValue 108 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 7f9b42e5..afe088ff 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -149,6 +149,16 @@ gl_FragCoord origin is upper left 0:54 0.750000 0:54 Constant: 0:54 0.000000 +0:56 move second child to first child (temp 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) 0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -336,6 +346,16 @@ gl_FragCoord origin is upper left 0:54 0.750000 0:54 Constant: 0:54 0.000000 +0:56 move second child to first child (temp 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 Constant: +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 +0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) 0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -371,7 +391,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 174 +// Id's are bound by 178 Capability Shader Capability Sampled1D @@ -405,18 +425,18 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 140 "g_tTex1df4" - Name 143 "g_tTex1di4" - Name 146 "g_tTex1du4" - Name 149 "g_tTex2df4" - Name 152 "g_tTex2di4" - Name 155 "g_tTex2du4" - Name 158 "g_tTex3df4" - Name 161 "g_tTex3di4" - Name 164 "g_tTex3du4" - Name 167 "g_tTexcdf4" - Name 170 "g_tTexcdi4" - Name 173 "g_tTexcdu4" + Name 144 "g_tTex1df4" + Name 147 "g_tTex1di4" + Name 150 "g_tTex1du4" + Name 153 "g_tTex2df4" + Name 156 "g_tTex2di4" + Name 159 "g_tTex2du4" + Name 162 "g_tTex3df4" + Name 165 "g_tTex3di4" + Name 168 "g_tTex3du4" + Name 171 "g_tTexcdf4" + Name 174 "g_tTexcdi4" + Name 177 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex1di4a) DescriptorSet 0 @@ -428,18 +448,18 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(g_tTex1df4) DescriptorSet 0 - Decorate 143(g_tTex1di4) DescriptorSet 0 - Decorate 146(g_tTex1du4) DescriptorSet 0 - Decorate 149(g_tTex2df4) DescriptorSet 0 - Decorate 152(g_tTex2di4) DescriptorSet 0 - Decorate 155(g_tTex2du4) DescriptorSet 0 - Decorate 158(g_tTex3df4) DescriptorSet 0 - Decorate 161(g_tTex3di4) DescriptorSet 0 - Decorate 164(g_tTex3du4) DescriptorSet 0 - Decorate 167(g_tTexcdf4) DescriptorSet 0 - Decorate 170(g_tTexcdi4) DescriptorSet 0 - Decorate 173(g_tTexcdu4) DescriptorSet 0 + Decorate 144(g_tTex1df4) DescriptorSet 0 + Decorate 147(g_tTex1di4) DescriptorSet 0 + Decorate 150(g_tTex1du4) DescriptorSet 0 + Decorate 153(g_tTex2df4) DescriptorSet 0 + Decorate 156(g_tTex2di4) DescriptorSet 0 + Decorate 159(g_tTex2du4) DescriptorSet 0 + Decorate 162(g_tTex3df4) DescriptorSet 0 + Decorate 165(g_tTex3di4) DescriptorSet 0 + Decorate 168(g_tTex3du4) DescriptorSet 0 + Decorate 171(g_tTexcdf4) DescriptorSet 0 + Decorate 174(g_tTexcdi4) DescriptorSet 0 + Decorate 177(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -508,44 +528,47 @@ gl_FragCoord origin is upper left 126: TypeSampledImage 125 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) 131: TypePointer Function 130(PS_OUTPUT) - 133: 30(int) Constant 1 + 133: 30(int) Constant 0 134: 6(float) Constant 1065353216 - 138: TypeImage 6(float) 1D sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTex1df4): 139(ptr) Variable UniformConstant - 141: TypeImage 30(int) 1D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex1di4): 142(ptr) Variable UniformConstant - 144: TypeImage 43(int) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1du4): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) 2D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex2df4): 148(ptr) Variable UniformConstant - 150: TypeImage 30(int) 2D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex2di4): 151(ptr) Variable UniformConstant - 153: TypeImage 43(int) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2du4): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) 3D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex3df4): 157(ptr) Variable UniformConstant - 159: TypeImage 30(int) 3D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex3di4): 160(ptr) Variable UniformConstant - 162: TypeImage 43(int) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3du4): 163(ptr) Variable UniformConstant - 165: TypeImage 6(float) Cube sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTexcdf4): 166(ptr) Variable UniformConstant - 168: TypeImage 30(int) Cube sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTexcdi4): 169(ptr) Variable UniformConstant - 171: TypeImage 43(int) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdu4): 172(ptr) Variable UniformConstant + 135: 103(fvec4) ConstantComposite 134 134 134 134 + 136: TypePointer Function 103(fvec4) + 138: 30(int) Constant 1 + 142: TypeImage 6(float) 1D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex1df4): 143(ptr) Variable UniformConstant + 145: TypeImage 30(int) 1D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex1di4): 146(ptr) Variable UniformConstant + 148: TypeImage 43(int) 1D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex1du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 2D sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTex2df4): 152(ptr) Variable UniformConstant + 154: TypeImage 30(int) 2D sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTex2di4): 155(ptr) Variable UniformConstant + 157: TypeImage 43(int) 2D sampled format:Unknown + 158: TypePointer UniformConstant 157 + 159(g_tTex2du4): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) 3D sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTex3df4): 161(ptr) Variable UniformConstant + 163: TypeImage 30(int) 3D sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTex3di4): 164(ptr) Variable UniformConstant + 166: TypeImage 43(int) 3D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex3du4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube sampled format:Unknown + 170: TypePointer UniformConstant 169 + 171(g_tTexcdf4): 170(ptr) Variable UniformConstant + 172: TypeImage 30(int) Cube sampled format:Unknown + 173: TypePointer UniformConstant 172 + 174(g_tTexcdi4): 173(ptr) Variable UniformConstant + 175: TypeImage 43(int) Cube sampled format:Unknown + 176: TypePointer UniformConstant 175 + 177(g_tTexcdu4): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -618,8 +641,10 @@ gl_FragCoord origin is upper left 128: 6(float) CompositeExtract 105 0 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 Store 119(r64) 129 - 135: 7(ptr) AccessChain 132(psout) 133 - Store 135 134 - 136:130(PS_OUTPUT) Load 132(psout) - ReturnValue 136 + 137: 136(ptr) AccessChain 132(psout) 133 + Store 137 135 + 139: 7(ptr) AccessChain 132(psout) 138 + Store 139 134 + 140:130(PS_OUTPUT) Load 132(psout) + ReturnValue 140 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index a9f57339..324db087 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -140,6 +140,16 @@ gl_FragCoord origin is upper left 0:55 0.750000 0:55 Constant: 0:55 0.000000 +0:57 move second child to first child (temp 4-component vector of float) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) 0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -318,6 +328,16 @@ gl_FragCoord origin is upper left 0:55 0.750000 0:55 Constant: 0:55 0.000000 +0:57 move second child to first child (temp 4-component vector of float) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Constant: +0:57 0 (const int) +0:57 Constant: +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 +0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) 0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -353,7 +373,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 172 +// Id's are bound by 176 Capability Shader Capability Sampled1D @@ -387,18 +407,18 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 138 "g_tTex3df4" - Name 141 "g_tTex3di4" - Name 144 "g_tTex3du4" - Name 147 "g_tTex1df4a" - Name 150 "g_tTex1di4a" - Name 153 "g_tTex1du4a" - Name 156 "g_tTex2df4a" - Name 159 "g_tTex2di4a" - Name 162 "g_tTex2du4a" - Name 165 "g_tTexcdf4a" - Name 168 "g_tTexcdi4a" - Name 171 "g_tTexcdu4a" + Name 142 "g_tTex3df4" + Name 145 "g_tTex3di4" + Name 148 "g_tTex3du4" + Name 151 "g_tTex1df4a" + Name 154 "g_tTex1di4a" + Name 157 "g_tTex1du4a" + Name 160 "g_tTex2df4a" + Name 163 "g_tTex2di4a" + Name 166 "g_tTex2du4a" + Name 169 "g_tTexcdf4a" + Name 172 "g_tTexcdi4a" + Name 175 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -410,18 +430,18 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 138(g_tTex3df4) DescriptorSet 0 - Decorate 141(g_tTex3di4) DescriptorSet 0 - Decorate 144(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTex1df4a) DescriptorSet 0 - Decorate 150(g_tTex1di4a) DescriptorSet 0 - Decorate 153(g_tTex1du4a) DescriptorSet 0 - Decorate 156(g_tTex2df4a) DescriptorSet 0 - Decorate 159(g_tTex2di4a) DescriptorSet 0 - Decorate 162(g_tTex2du4a) DescriptorSet 0 - Decorate 165(g_tTexcdf4a) DescriptorSet 0 - Decorate 168(g_tTexcdi4a) DescriptorSet 0 - Decorate 171(g_tTexcdu4a) DescriptorSet 0 + Decorate 142(g_tTex3df4) DescriptorSet 0 + Decorate 145(g_tTex3di4) DescriptorSet 0 + Decorate 148(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTex1df4a) DescriptorSet 0 + Decorate 154(g_tTex1di4a) DescriptorSet 0 + Decorate 157(g_tTex1du4a) DescriptorSet 0 + Decorate 160(g_tTex2df4a) DescriptorSet 0 + Decorate 163(g_tTex2di4a) DescriptorSet 0 + Decorate 166(g_tTex2du4a) DescriptorSet 0 + Decorate 169(g_tTexcdf4a) DescriptorSet 0 + Decorate 172(g_tTexcdi4a) DescriptorSet 0 + Decorate 175(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -488,44 +508,47 @@ gl_FragCoord origin is upper left 127: TypeVector 6(float) 4 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) 129: TypePointer Function 128(PS_OUTPUT) - 131: 26(int) Constant 1 + 131: 26(int) Constant 0 132: 6(float) Constant 1065353216 - 136: TypeImage 6(float) 3D sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTex3df4): 137(ptr) Variable UniformConstant - 139: TypeImage 26(int) 3D sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTex3di4): 140(ptr) Variable UniformConstant - 142: TypeImage 38(int) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3du4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1df4a): 146(ptr) Variable UniformConstant - 148: TypeImage 26(int) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1di4a): 149(ptr) Variable UniformConstant - 151: TypeImage 38(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1du4a): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2df4a): 155(ptr) Variable UniformConstant - 157: TypeImage 26(int) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2di4a): 158(ptr) Variable UniformConstant - 160: TypeImage 38(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2du4a): 161(ptr) Variable UniformConstant - 163: TypeImage 6(float) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdf4a): 164(ptr) Variable UniformConstant - 166: TypeImage 26(int) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdi4a): 167(ptr) Variable UniformConstant - 169: TypeImage 38(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 133: 127(fvec4) ConstantComposite 132 132 132 132 + 134: TypePointer Function 127(fvec4) + 136: 26(int) Constant 1 + 140: TypeImage 6(float) 3D sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTex3df4): 141(ptr) Variable UniformConstant + 143: TypeImage 26(int) 3D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex3di4): 144(ptr) Variable UniformConstant + 146: TypeImage 38(int) 3D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex3du4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 1D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex1df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 26(int) 1D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex1di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 38(int) 1D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex1du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) 2D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex2df4a): 159(ptr) Variable UniformConstant + 161: TypeImage 26(int) 2D array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTex2di4a): 162(ptr) Variable UniformConstant + 164: TypeImage 38(int) 2D array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTex2du4a): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) Cube array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTexcdf4a): 168(ptr) Variable UniformConstant + 170: TypeImage 26(int) Cube array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTexcdi4a): 171(ptr) Variable UniformConstant + 173: TypeImage 38(int) Cube array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTexcdu4a): 174(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -598,8 +621,10 @@ gl_FragCoord origin is upper left 125: 6(float) CompositeExtract 124 0 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 Store 115(r54) 126 - 133: 7(ptr) AccessChain 130(psout) 131 - Store 133 132 - 134:128(PS_OUTPUT) Load 130(psout) - ReturnValue 134 + 135: 134(ptr) AccessChain 130(psout) 131 + Store 135 133 + 137: 7(ptr) AccessChain 130(psout) 136 + Store 137 132 + 138:128(PS_OUTPUT) Load 130(psout) + ReturnValue 138 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 4e2b3b54..0da8ef0c 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -107,6 +107,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:62 move second child to first child (temp 4-component vector of float) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) 0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -252,6 +262,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:62 move second child to first child (temp 4-component vector of float) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Constant: +0:62 0 (const int) +0:62 Constant: +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 +0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) 0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -287,7 +307,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 146 +// Id's are bound by 150 Capability Shader Capability Sampled1D @@ -315,21 +335,21 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "g_tTex3df4" - Name 106 "g_tTex3di4" - Name 109 "g_tTex3du4" - Name 112 "g_tTexcdf4" - Name 115 "g_tTexcdi4" - Name 118 "g_tTexcdu4" - Name 121 "g_tTex1df4a" - Name 124 "g_tTex1di4a" - Name 127 "g_tTex1du4a" - Name 130 "g_tTex2df4a" - Name 133 "g_tTex2di4a" - Name 136 "g_tTex2du4a" - Name 139 "g_tTexcdf4a" - Name 142 "g_tTexcdi4a" - Name 145 "g_tTexcdu4a" + Name 107 "g_tTex3df4" + Name 110 "g_tTex3di4" + Name 113 "g_tTex3du4" + Name 116 "g_tTexcdf4" + Name 119 "g_tTexcdi4" + Name 122 "g_tTexcdu4" + Name 125 "g_tTex1df4a" + Name 128 "g_tTex1di4a" + Name 131 "g_tTex1du4a" + Name 134 "g_tTex2df4a" + Name 137 "g_tTex2di4a" + Name 140 "g_tTex2du4a" + Name 143 "g_tTexcdf4a" + Name 146 "g_tTexcdi4a" + Name 149 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 30(g_tTex1di4) DescriptorSet 0 @@ -338,21 +358,21 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_tTex3df4) DescriptorSet 0 - Decorate 106(g_tTex3di4) DescriptorSet 0 - Decorate 109(g_tTex3du4) DescriptorSet 0 - Decorate 112(g_tTexcdf4) DescriptorSet 0 - Decorate 115(g_tTexcdi4) DescriptorSet 0 - Decorate 118(g_tTexcdu4) DescriptorSet 0 - Decorate 121(g_tTex1df4a) DescriptorSet 0 - Decorate 124(g_tTex1di4a) DescriptorSet 0 - Decorate 127(g_tTex1du4a) DescriptorSet 0 - Decorate 130(g_tTex2df4a) DescriptorSet 0 - Decorate 133(g_tTex2di4a) DescriptorSet 0 - Decorate 136(g_tTex2du4a) DescriptorSet 0 - Decorate 139(g_tTexcdf4a) DescriptorSet 0 - Decorate 142(g_tTexcdi4a) DescriptorSet 0 - Decorate 145(g_tTexcdu4a) DescriptorSet 0 + Decorate 107(g_tTex3df4) DescriptorSet 0 + Decorate 110(g_tTex3di4) DescriptorSet 0 + Decorate 113(g_tTex3du4) DescriptorSet 0 + Decorate 116(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 122(g_tTexcdu4) DescriptorSet 0 + Decorate 125(g_tTex1df4a) DescriptorSet 0 + Decorate 128(g_tTex1di4a) DescriptorSet 0 + Decorate 131(g_tTex1du4a) DescriptorSet 0 + Decorate 134(g_tTex2df4a) DescriptorSet 0 + Decorate 137(g_tTex2di4a) DescriptorSet 0 + Decorate 140(g_tTex2du4a) DescriptorSet 0 + Decorate 143(g_tTexcdf4a) DescriptorSet 0 + Decorate 146(g_tTexcdi4a) DescriptorSet 0 + Decorate 149(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -405,53 +425,56 @@ gl_FragCoord origin is upper left 92: TypeVector 6(float) 4 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) 94: TypePointer Function 93(PS_OUTPUT) - 96: 23(int) Constant 1 + 96: 23(int) Constant 0 97: 6(float) Constant 1065353216 - 101: TypeImage 6(float) 3D sampled format:Unknown - 102: TypePointer UniformConstant 101 - 103(g_tTex3df4): 102(ptr) Variable UniformConstant - 104: TypeImage 23(int) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3di4): 105(ptr) Variable UniformConstant - 107: TypeImage 39(int) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3du4): 108(ptr) Variable UniformConstant - 110: TypeImage 6(float) Cube sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTexcdf4): 111(ptr) Variable UniformConstant - 113: TypeImage 23(int) Cube sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTexcdi4): 114(ptr) Variable UniformConstant - 116: TypeImage 39(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdu4): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) 1D array sampled format:Unknown - 120: TypePointer UniformConstant 119 -121(g_tTex1df4a): 120(ptr) Variable UniformConstant - 122: TypeImage 23(int) 1D array sampled format:Unknown - 123: TypePointer UniformConstant 122 -124(g_tTex1di4a): 123(ptr) Variable UniformConstant - 125: TypeImage 39(int) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1du4a): 126(ptr) Variable UniformConstant - 128: TypeImage 6(float) 2D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex2df4a): 129(ptr) Variable UniformConstant - 131: TypeImage 23(int) 2D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex2di4a): 132(ptr) Variable UniformConstant - 134: TypeImage 39(int) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2du4a): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) Cube array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTexcdf4a): 138(ptr) Variable UniformConstant - 140: TypeImage 23(int) Cube array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTexcdi4a): 141(ptr) Variable UniformConstant - 143: TypeImage 39(int) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 98: 92(fvec4) ConstantComposite 97 97 97 97 + 99: TypePointer Function 92(fvec4) + 101: 23(int) Constant 1 + 105: TypeImage 6(float) 3D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex3df4): 106(ptr) Variable UniformConstant + 108: TypeImage 23(int) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3di4): 109(ptr) Variable UniformConstant + 111: TypeImage 39(int) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) Cube sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTexcdf4): 115(ptr) Variable UniformConstant + 117: TypeImage 23(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 120: TypeImage 39(int) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdu4): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) 1D array sampled format:Unknown + 124: TypePointer UniformConstant 123 +125(g_tTex1df4a): 124(ptr) Variable UniformConstant + 126: TypeImage 23(int) 1D array sampled format:Unknown + 127: TypePointer UniformConstant 126 +128(g_tTex1di4a): 127(ptr) Variable UniformConstant + 129: TypeImage 39(int) 1D array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTex1du4a): 130(ptr) Variable UniformConstant + 132: TypeImage 6(float) 2D array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTex2df4a): 133(ptr) Variable UniformConstant + 135: TypeImage 23(int) 2D array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTex2di4a): 136(ptr) Variable UniformConstant + 138: TypeImage 39(int) 2D array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTex2du4a): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTexcdf4a): 142(ptr) Variable UniformConstant + 144: TypeImage 23(int) Cube array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTexcdi4a): 145(ptr) Variable UniformConstant + 147: TypeImage 39(int) Cube array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTexcdu4a): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -500,8 +523,10 @@ gl_FragCoord origin is upper left 90: 6(float) CompositeExtract 89 0 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 Store 80(r25) 91 - 98: 7(ptr) AccessChain 95(psout) 96 - Store 98 97 - 99:93(PS_OUTPUT) Load 95(psout) - ReturnValue 99 + 100: 99(ptr) AccessChain 95(psout) 96 + Store 100 98 + 102: 7(ptr) AccessChain 95(psout) 101 + Store 102 97 + 103:93(PS_OUTPUT) Load 95(psout) + ReturnValue 103 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 16aac578..0e26ce44 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -113,6 +113,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:63 move second child to first child (temp 4-component vector of float) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) 0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -264,6 +274,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) +0:63 move second child to first child (temp 4-component vector of float) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Constant: +0:63 0 (const int) +0:63 Constant: +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 +0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) 0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -299,7 +319,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 156 Capability Shader Capability Sampled1D @@ -327,21 +347,21 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 109 "g_tTex1df4" - Name 112 "g_tTex1di4" - Name 115 "g_tTex1du4" - Name 118 "g_tTex2df4" - Name 121 "g_tTex2di4" - Name 124 "g_tTex2du4" - Name 127 "g_tTex3df4" - Name 130 "g_tTex3di4" - Name 133 "g_tTex3du4" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" + Name 113 "g_tTex1df4" + Name 116 "g_tTex1di4" + Name 119 "g_tTex1du4" + Name 122 "g_tTex2df4" + Name 125 "g_tTex2di4" + Name 128 "g_tTex2du4" + Name 131 "g_tTex3df4" + Name 134 "g_tTex3di4" + Name 137 "g_tTex3du4" + Name 140 "g_tTexcdf4" + Name 143 "g_tTexcdi4" + Name 146 "g_tTexcdu4" + Name 149 "g_tTexcdf4a" + Name 152 "g_tTexcdi4a" + Name 155 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 34(g_tTex1di4a) DescriptorSet 0 @@ -350,21 +370,21 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 109(g_tTex1df4) DescriptorSet 0 - Decorate 112(g_tTex1di4) DescriptorSet 0 - Decorate 115(g_tTex1du4) DescriptorSet 0 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 121(g_tTex2di4) DescriptorSet 0 - Decorate 124(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTex3df4) DescriptorSet 0 - Decorate 130(g_tTex3di4) DescriptorSet 0 - Decorate 133(g_tTex3du4) DescriptorSet 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + Decorate 113(g_tTex1df4) DescriptorSet 0 + Decorate 116(g_tTex1di4) DescriptorSet 0 + Decorate 119(g_tTex1du4) DescriptorSet 0 + Decorate 122(g_tTex2df4) DescriptorSet 0 + Decorate 125(g_tTex2di4) DescriptorSet 0 + Decorate 128(g_tTex2du4) DescriptorSet 0 + Decorate 131(g_tTex3df4) DescriptorSet 0 + Decorate 134(g_tTex3di4) DescriptorSet 0 + Decorate 137(g_tTex3du4) DescriptorSet 0 + Decorate 140(g_tTexcdf4) DescriptorSet 0 + Decorate 143(g_tTexcdi4) DescriptorSet 0 + Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 149(g_tTexcdf4a) DescriptorSet 0 + Decorate 152(g_tTexcdi4a) DescriptorSet 0 + Decorate 155(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -420,53 +440,56 @@ gl_FragCoord origin is upper left 98: TypeVector 6(float) 4 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) 100: TypePointer Function 99(PS_OUTPUT) - 102: 27(int) Constant 1 + 102: 27(int) Constant 0 103: 6(float) Constant 1065353216 - 107: TypeImage 6(float) 1D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex1df4): 108(ptr) Variable UniformConstant - 110: TypeImage 27(int) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1di4): 111(ptr) Variable UniformConstant - 113: TypeImage 44(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 2D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex2df4): 117(ptr) Variable UniformConstant - 119: TypeImage 27(int) 2D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex2di4): 120(ptr) Variable UniformConstant - 122: TypeImage 44(int) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 3D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex3df4): 126(ptr) Variable UniformConstant - 128: TypeImage 27(int) 3D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex3di4): 129(ptr) Variable UniformConstant - 131: TypeImage 44(int) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3du4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 27(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 44(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 27(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 44(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 104: 98(fvec4) ConstantComposite 103 103 103 103 + 105: TypePointer Function 98(fvec4) + 107: 27(int) Constant 1 + 111: TypeImage 6(float) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex1df4): 112(ptr) Variable UniformConstant + 114: TypeImage 27(int) 1D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex1di4): 115(ptr) Variable UniformConstant + 117: TypeImage 44(int) 1D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex1du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) 2D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex2df4): 121(ptr) Variable UniformConstant + 123: TypeImage 27(int) 2D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex2di4): 124(ptr) Variable UniformConstant + 126: TypeImage 44(int) 2D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex2du4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) 3D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex3df4): 130(ptr) Variable UniformConstant + 132: TypeImage 27(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3di4): 133(ptr) Variable UniformConstant + 135: TypeImage 44(int) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3du4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTexcdf4): 139(ptr) Variable UniformConstant + 141: TypeImage 27(int) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdi4): 142(ptr) Variable UniformConstant + 144: TypeImage 44(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) Cube array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTexcdf4a): 148(ptr) Variable UniformConstant + 150: TypeImage 27(int) Cube array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTexcdi4a): 151(ptr) Variable UniformConstant + 153: TypeImage 44(int) Cube array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTexcdu4a): 154(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -518,8 +541,10 @@ gl_FragCoord origin is upper left 96: 6(float) CompositeExtract 95 0 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 Store 86(r35) 97 - 104: 7(ptr) AccessChain 101(psout) 102 - Store 104 103 - 105:99(PS_OUTPUT) Load 101(psout) - ReturnValue 105 + 106: 105(ptr) AccessChain 101(psout) 102 + Store 106 104 + 108: 7(ptr) AccessChain 101(psout) 107 + Store 108 103 + 109:99(PS_OUTPUT) Load 101(psout) + ReturnValue 109 FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 4d3a096b..0fbb4134 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -158,6 +158,16 @@ gl_FragCoord origin is upper left 0:? 1.100000 0:? 1.200000 0:? 1.300000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -343,6 +353,16 @@ gl_FragCoord origin is upper left 0:? 1.100000 0:? 1.200000 0:? 1.300000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -367,7 +387,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 123 +// Id's are bound by 126 Capability Shader Capability Sampled1D @@ -401,7 +421,7 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 122 "g_tTex1df4a" + Name 125 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex1di4) DescriptorSet 0 @@ -413,7 +433,7 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 122(g_tTex1df4a) DescriptorSet 0 + Decorate 125(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -480,10 +500,12 @@ gl_FragCoord origin is upper left 110: TypeSampledImage 105 113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 114: TypePointer Function 113(PS_OUTPUT) - 116: 27(int) Constant 1 + 116: 27(int) Constant 0 117: 6(float) Constant 1065353216 - 118: TypePointer Function 6(float) -122(g_tTex1df4a): 11(ptr) Variable UniformConstant + 118: 7(fvec4) ConstantComposite 117 117 117 117 + 120: 27(int) Constant 1 + 121: TypePointer Function 6(float) +125(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -541,8 +563,10 @@ gl_FragCoord origin is upper left 111: 110 SampledImage 108 109 112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93 Store 104(txval42) 112 - 119: 118(ptr) AccessChain 115(psout) 116 - Store 119 117 - 120:113(PS_OUTPUT) Load 115(psout) - ReturnValue 120 + 119: 8(ptr) AccessChain 115(psout) 116 + Store 119 118 + 122: 121(ptr) AccessChain 115(psout) 120 + Store 122 117 + 123:113(PS_OUTPUT) Load 115(psout) + ReturnValue 123 FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index ac5442e6..97b08f7c 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -206,6 +206,16 @@ gl_FragCoord origin is upper left 0:? 1.100000 0:? 1.200000 0:? 1.300000 +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -442,6 +452,16 @@ gl_FragCoord origin is upper left 0:? 1.100000 0:? 1.200000 0:? 1.300000 +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 +0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -469,7 +489,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 161 Capability Shader Capability Sampled1D @@ -508,7 +528,7 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 157 "g_tTex1df4a" + Name 160 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 30(g_tTex1di4) DescriptorSet 0 @@ -523,7 +543,7 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -610,10 +630,12 @@ gl_FragCoord origin is upper left 145: TypeSampledImage 140 148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 149: TypePointer Function 148(PS_OUTPUT) - 151: 24(int) Constant 1 + 151: 24(int) Constant 0 152: 6(float) Constant 1065353216 - 153: TypePointer Function 6(float) -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 153: 7(fvec4) ConstantComposite 152 152 152 152 + 155: 24(int) Constant 1 + 156: TypePointer Function 6(float) +160(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -689,8 +711,10 @@ gl_FragCoord origin is upper left 146: 145 SampledImage 143 144 147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96 Store 139(txval42) 147 - 154: 153(ptr) AccessChain 150(psout) 151 - Store 154 152 - 155:148(PS_OUTPUT) Load 150(psout) - ReturnValue 155 + 154: 8(ptr) AccessChain 150(psout) 151 + Store 154 153 + 157: 156(ptr) AccessChain 150(psout) 155 + Store 157 152 + 158:148(PS_OUTPUT) Load 150(psout) + ReturnValue 158 FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 30f5d06d..6751d1ea 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -176,6 +176,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -382,6 +392,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -409,7 +429,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 152 Capability Shader Capability Sampled1D @@ -442,10 +462,10 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 140 "g_tTex1df4a" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTexcdf4" + Name 148 "g_tTexcdi4" + Name 151 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 31(g_tTex1di4) DescriptorSet 0 @@ -457,10 +477,10 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTexcdf4) DescriptorSet 0 + Decorate 148(g_tTexcdi4) DescriptorSet 0 + Decorate 151(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -547,17 +567,18 @@ gl_FragCoord origin is upper left 132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 133: TypePointer Function 132(PS_OUTPUT) 135: 6(float) Constant 1065353216 - 136: TypePointer Function 6(float) -140(g_tTex1df4a): 11(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 23(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 38(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 136: 7(fvec4) ConstantComposite 135 135 135 135 + 138: TypePointer Function 6(float) +142(g_tTex1df4a): 11(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdf4): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdi4): 147(ptr) Variable UniformConstant + 149: TypeImage 38(int) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdu4): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -615,8 +636,10 @@ gl_FragCoord origin is upper left 125: 124 SampledImage 122 123 131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130 Store 118(txval32) 131 - 137: 136(ptr) AccessChain 134(psout) 24 - Store 137 135 - 138:132(PS_OUTPUT) Load 134(psout) - ReturnValue 138 + 137: 8(ptr) AccessChain 134(psout) 63 + Store 137 136 + 139: 138(ptr) AccessChain 134(psout) 24 + Store 139 135 + 140:132(PS_OUTPUT) Load 134(psout) + ReturnValue 140 FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index e568f44b..ce80880f 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -113,6 +113,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) +0:35 move second child to first child (temp 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -253,6 +263,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) +0:35 move second child to first child (temp 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 Constant: +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 +0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -277,7 +297,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 104 +// Id's are bound by 106 Capability Shader Capability Sampled1D @@ -305,10 +325,10 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 94 "g_tTex1df4a" - Name 97 "g_tTexcdf4" - Name 100 "g_tTexcdi4" - Name 103 "g_tTexcdu4" + Name 96 "g_tTex1df4a" + Name 99 "g_tTexcdf4" + Name 102 "g_tTexcdi4" + Name 105 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 34(g_tTex1di4) DescriptorSet 0 @@ -317,10 +337,10 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 94(g_tTex1df4a) DescriptorSet 0 - Decorate 97(g_tTexcdf4) DescriptorSet 0 - Decorate 100(g_tTexcdi4) DescriptorSet 0 - Decorate 103(g_tTexcdu4) DescriptorSet 0 + Decorate 96(g_tTex1df4a) DescriptorSet 0 + Decorate 99(g_tTexcdf4) DescriptorSet 0 + Decorate 102(g_tTexcdi4) DescriptorSet 0 + Decorate 105(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -376,17 +396,18 @@ gl_FragCoord origin is upper left 86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 87: TypePointer Function 86(PS_OUTPUT) 89: 6(float) Constant 1065353216 - 90: TypePointer Function 6(float) - 94(g_tTex1df4a): 11(ptr) Variable UniformConstant - 95: TypeImage 6(float) Cube array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTexcdf4): 96(ptr) Variable UniformConstant - 98: TypeImage 26(int) Cube array sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTexcdi4): 99(ptr) Variable UniformConstant - 101: TypeImage 40(int) Cube array sampled format:Unknown - 102: TypePointer UniformConstant 101 - 103(g_tTexcdu4): 102(ptr) Variable UniformConstant + 90: 7(fvec4) ConstantComposite 89 89 89 89 + 92: TypePointer Function 6(float) + 96(g_tTex1df4a): 11(ptr) Variable UniformConstant + 97: TypeImage 6(float) Cube array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdf4): 98(ptr) Variable UniformConstant + 100: TypeImage 26(int) Cube array sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTexcdi4): 101(ptr) Variable UniformConstant + 103: TypeImage 40(int) Cube array sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTexcdu4): 104(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -426,8 +447,10 @@ gl_FragCoord origin is upper left 84: 83 SampledImage 81 82 85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66 Store 77(txval22) 85 - 91: 90(ptr) AccessChain 88(psout) 27 - Store 91 89 - 92:86(PS_OUTPUT) Load 88(psout) - ReturnValue 92 + 91: 8(ptr) AccessChain 88(psout) 65 + Store 91 90 + 93: 92(ptr) AccessChain 88(psout) 27 + Store 93 89 + 94:86(PS_OUTPUT) Load 88(psout) + ReturnValue 94 FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index aaf20fb1..9d667492 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -122,6 +122,16 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:37 Constant: 0:37 0.750000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -271,6 +281,16 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:37 Constant: 0:37 0.750000 +0:39 move second child to first child (temp 4-component vector of float) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Constant: +0:39 0 (const int) +0:39 Constant: +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 +0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) 0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -295,7 +315,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 130 +// Id's are bound by 133 Capability Shader Capability Sampled1D @@ -329,7 +349,7 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 129 "g_tTex1df4" + Name 132 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 32(g_tTex1di4a) DescriptorSet 0 @@ -341,7 +361,7 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 129(g_tTex1df4) DescriptorSet 0 + Decorate 132(g_tTex1df4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -416,9 +436,11 @@ gl_FragCoord origin is upper left 119: 7(fvec4) ConstantComposite 85 116 117 118 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 122: TypePointer Function 121(PS_OUTPUT) - 124: 26(int) Constant 1 - 125: TypePointer Function 6(float) - 129(g_tTex1df4): 11(ptr) Variable UniformConstant + 124: 26(int) Constant 0 + 125: 7(fvec4) ConstantComposite 118 118 118 118 + 127: 26(int) Constant 1 + 128: TypePointer Function 6(float) + 132(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -476,8 +498,10 @@ gl_FragCoord origin is upper left 115: 114 SampledImage 112 113 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24 Store 108(txval42) 120 - 126: 125(ptr) AccessChain 123(psout) 124 - Store 126 118 - 127:121(PS_OUTPUT) Load 123(psout) - ReturnValue 127 + 126: 8(ptr) AccessChain 123(psout) 124 + Store 126 125 + 129: 128(ptr) AccessChain 123(psout) 127 + Store 129 118 + 130:121(PS_OUTPUT) Load 123(psout) + ReturnValue 130 FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 38089d14..d0005dfe 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -152,6 +152,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:46 Constant: 0:46 0.750000 +0:48 move second child to first child (temp 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) 0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -335,6 +345,16 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:46 Constant: 0:46 0.750000 +0:48 move second child to first child (temp 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 Constant: +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 +0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) 0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -363,7 +383,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 158 Capability Shader Capability Sampled1D @@ -402,8 +422,8 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 153 "g_sSamp2d" - Name 154 "g_tTex1df4a" + Name 156 "g_sSamp2d" + Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -418,8 +438,8 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 153(g_sSamp2d) DescriptorSet 0 - Decorate 154(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_sSamp2d) DescriptorSet 0 + Decorate 157(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -502,11 +522,13 @@ gl_FragCoord origin is upper left 141: TypeSampledImage 136 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 145: TypePointer Function 144(PS_OUTPUT) - 147: 23(int) Constant 1 + 147: 23(int) Constant 0 148: 6(float) Constant 1065353216 - 149: TypePointer Function 6(float) - 153(g_sSamp2d): 15(ptr) Variable UniformConstant -154(g_tTex1df4a): 11(ptr) Variable UniformConstant + 149: 7(fvec4) ConstantComposite 148 148 148 148 + 151: 23(int) Constant 1 + 152: TypePointer Function 6(float) + 156(g_sSamp2d): 15(ptr) Variable UniformConstant +157(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -582,8 +604,10 @@ gl_FragCoord origin is upper left 142: 141 SampledImage 139 140 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21 Store 135(txval42) 143 - 150: 149(ptr) AccessChain 146(psout) 147 - Store 150 148 - 151:144(PS_OUTPUT) Load 146(psout) - ReturnValue 151 + 150: 8(ptr) AccessChain 146(psout) 147 + Store 150 149 + 153: 152(ptr) AccessChain 146(psout) 151 + Store 153 148 + 154:144(PS_OUTPUT) Load 146(psout) + ReturnValue 154 FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index f2ca5ad1..25a77ca8 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -140,6 +140,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -310,6 +320,16 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) +0:45 move second child to first child (temp 4-component vector of float) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Constant: +0:45 0 (const int) +0:45 Constant: +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 +0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) 0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -337,7 +357,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 146 +// Id's are bound by 148 Capability Shader Capability Sampled1D @@ -370,10 +390,10 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 136 "g_tTex1df4a" - Name 139 "g_tTexcdf4" - Name 142 "g_tTexcdi4" - Name 145 "g_tTexcdu4" + Name 138 "g_tTex1df4a" + Name 141 "g_tTexcdf4" + Name 144 "g_tTexcdi4" + Name 147 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 30(g_tTex1di4) DescriptorSet 0 @@ -385,10 +405,10 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 136(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTexcdf4) DescriptorSet 0 - Decorate 142(g_tTexcdi4) DescriptorSet 0 - Decorate 145(g_tTexcdu4) DescriptorSet 0 + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 141(g_tTexcdf4) DescriptorSet 0 + Decorate 144(g_tTexcdi4) DescriptorSet 0 + Decorate 147(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -471,17 +491,18 @@ gl_FragCoord origin is upper left 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 129: TypePointer Function 128(PS_OUTPUT) 131: 6(float) Constant 1065353216 - 132: TypePointer Function 6(float) -136(g_tTex1df4a): 11(ptr) Variable UniformConstant - 137: TypeImage 6(float) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdf4): 138(ptr) Variable UniformConstant - 140: TypeImage 22(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdi4): 141(ptr) Variable UniformConstant - 143: TypeImage 37(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdu4): 144(ptr) Variable UniformConstant + 132: 7(fvec4) ConstantComposite 131 131 131 131 + 134: TypePointer Function 6(float) +138(g_tTex1df4a): 11(ptr) Variable UniformConstant + 139: TypeImage 6(float) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdf4): 140(ptr) Variable UniformConstant + 142: TypeImage 22(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdi4): 143(ptr) Variable UniformConstant + 145: TypeImage 37(int) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdu4): 146(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -539,8 +560,10 @@ gl_FragCoord origin is upper left 121: 120 SampledImage 118 119 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126 Store 114(txval32) 127 - 133: 132(ptr) AccessChain 130(psout) 23 - Store 133 131 - 134:128(PS_OUTPUT) Load 130(psout) - ReturnValue 134 + 133: 8(ptr) AccessChain 130(psout) 61 + Store 133 132 + 135: 134(ptr) AccessChain 130(psout) 23 + Store 135 131 + 136:128(PS_OUTPUT) Load 130(psout) + ReturnValue 136 FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 9677209c..7cdef7fa 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -95,6 +95,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -214,6 +224,16 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) +0:33 move second child to first child (temp 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 +0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) @@ -235,7 +255,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 103 +// Id's are bound by 105 Capability Shader Capability Sampled1D @@ -262,7 +282,7 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 102 "g_tTex1df4a" + Name 104 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 33(g_tTex1di4) DescriptorSet 0 @@ -271,7 +291,7 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -335,8 +355,9 @@ gl_FragCoord origin is upper left 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 95: TypePointer Function 94(PS_OUTPUT) 97: 6(float) Constant 1065353216 - 98: TypePointer Function 6(float) -102(g_tTex1df4a): 11(ptr) Variable UniformConstant + 98: 7(fvec4) ConstantComposite 97 97 97 97 + 100: TypePointer Function 6(float) +104(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -376,8 +397,10 @@ gl_FragCoord origin is upper left 88: 87 SampledImage 85 86 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92 Store 81(txval22) 93 - 99: 98(ptr) AccessChain 96(psout) 40 - Store 99 97 - 100:94(PS_OUTPUT) Load 96(psout) - ReturnValue 100 + 99: 8(ptr) AccessChain 96(psout) 26 + Store 99 98 + 101: 100(ptr) AccessChain 96(psout) 40 + Store 101 97 + 102:94(PS_OUTPUT) Load 96(psout) + ReturnValue 102 FunctionEnd diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out new file mode 100755 index 00000000..e9b73898 --- /dev/null +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -0,0 +1,152 @@ +hlsl.shapeConv.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:2 'f' (in float) +0:? Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:4 'v' (temp 4-component vector of float) +0:4 Constant: +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v' (temp 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:6 move second child to first child (temp 4-component vector of float) +0:6 'v' (temp 4-component vector of float) +0:6 Construct vec4 (temp 4-component vector of float) +0:6 'f' (in float) +0:8 move second child to first child (temp 3-component vector of float) +0:8 'u' (temp 3-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child (temp 3-component vector of float) +0:9 'u' (temp 3-component vector of float) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 3-component vector of float) +0:10 'u' (temp 3-component vector of float) +0:10 Construct vec3 (temp 3-component vector of float) +0:10 Construct float (temp float) +0:10 'f' (in float) +0:12 Branch: Return with expression +0:12 'input' (in 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:2 'f' (in float) +0:? Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:4 'v' (temp 4-component vector of float) +0:4 Constant: +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:4 1.000000 +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v' (temp 4-component vector of float) +0:5 Constant: +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:5 2.000000 +0:6 move second child to first child (temp 4-component vector of float) +0:6 'v' (temp 4-component vector of float) +0:6 Construct vec4 (temp 4-component vector of float) +0:6 'f' (in float) +0:8 move second child to first child (temp 3-component vector of float) +0:8 'u' (temp 3-component vector of float) +0:8 Constant: +0:8 1.000000 +0:8 1.000000 +0:8 1.000000 +0:9 move second child to first child (temp 3-component vector of float) +0:9 'u' (temp 3-component vector of float) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 3-component vector of float) +0:10 'u' (temp 3-component vector of float) +0:10 Construct vec3 (temp 3-component vector of float) +0:10 Construct float (temp float) +0:10 'f' (in float) +0:12 Branch: Return with expression +0:12 'input' (in 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 13 "PixelShaderFunction(vf4;f1;" + Name 11 "input" + Name 12 "f" + Name 15 "v" + Name 24 "u" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypePointer Function 6(float) + 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr) + 16: 6(float) Constant 1065353216 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: 6(float) Constant 1073741824 + 19: 7(fvec4) ConstantComposite 18 18 18 18 + 22: TypeVector 6(float) 3 + 23: TypePointer Function 22(fvec3) + 25: 22(fvec3) ConstantComposite 16 16 16 + 26: 22(fvec3) ConstantComposite 18 18 18 + 4(main): 2 Function None 3 + 5: Label + FunctionEnd +13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10 + 11(input): 8(ptr) FunctionParameter + 12(f): 9(ptr) FunctionParameter + 14: Label + 15(v): 8(ptr) Variable Function + 24(u): 23(ptr) Variable Function + Store 15(v) 17 + Store 15(v) 19 + 20: 6(float) Load 12(f) + 21: 7(fvec4) CompositeConstruct 20 20 20 20 + Store 15(v) 21 + Store 24(u) 25 + Store 24(u) 26 + 27: 6(float) Load 12(f) + 28: 22(fvec3) CompositeConstruct 27 27 27 + Store 24(u) 28 + 29: 7(fvec4) Load 11(input) + ReturnValue 29 + FunctionEnd diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag new file mode 100644 index 00000000..1e6dec65 --- /dev/null +++ b/Test/hlsl.shapeConv.frag @@ -0,0 +1,13 @@ +float4 PixelShaderFunction(float4 input, float f) : COLOR0 +{ + float4 v; + v = 1; + v = 2.0; + v = f; + float3 u; + u = float(1); + u = float(2.0); + u = float(f); + + return input; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 62bce053..fcc3d69c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1354" +#define GLSLANG_REVISION "SPIRV99.1361" #define GLSLANG_DATE "28-Jul-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index de83e441..31d0b165 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -98,6 +98,8 @@ TIntermSymbol* TIntermediate::addSymbol(const TType& type, const TSourceLoc& loc // // Returns the added node. // +// Returns nullptr if the working conversions and promotions could not be found. +// TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) { // No operations work on blocks @@ -161,29 +163,38 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // // Returns the added node. // +// Returns nullptr if the 'right' type could not be converted to match the 'left' type, +// or the resulting operation cannot be properly promoted. +// TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) { // No block assignment if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) - return 0; + return nullptr; // // Like adding binary math, except the conversion can only go // from right to left. // + + // convert base types, nullptr return means not possible + right = addConversion(op, left->getType(), right); + if (right == nullptr) + return nullptr; + + // convert shape + right = addShapeConversion(op, left->getType(), right); + + // build the node TIntermBinary* node = new TIntermBinary(op); if (loc.line == 0) loc = left->getLoc(); node->setLoc(loc); - - TIntermTyped* child = addConversion(op, left->getType(), right); - if (child == 0) - return 0; - node->setLeft(left); - node->setRight(child); + node->setRight(right); + if (! node->promote()) - return 0; + return nullptr; node->updatePrecision(); @@ -414,6 +425,9 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // Returns a node representing the conversion, which could be the same // node passed in if no conversion was needed. // +// Generally, this is focused on basic type conversion, not shape conversion. +// See addShapeConversion(). +// // Return 0 if a conversion can't be done. // TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const @@ -681,6 +695,50 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt return newNode; } +// Convert the node's shape of type for the given type, as allowed by the +// operation involved: 'op'. +// +// Generally, the AST represents allowed GLSL shapes, so this isn't needed +// for GLSL. Bad shapes are caught in conversion or promotion. +// +// Return 'node' if no conversion was done. Promotion handles final shape +// checking. +// +TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TIntermTyped* node) +{ + // some source languages don't do this + switch (source) { + case EShSourceHlsl: + break; + case EShSourceGlsl: + default: + return node; + } + + // some operations don't do this + switch (op) { + case EOpAssign: + break; + default: + return node; + } + + // structures and arrays don't change shape, either to or from + if (node->getType().isStruct() || node->getType().isArray() || + type.isStruct() || type.isArray()) + return node; + + // The new node that handles the conversion + TIntermTyped* conversionNode = node; + TOperator constructorOp = mapTypeToConstructorOp(type); + + // scalar -> smeared -> vector + if (type.isVector() && node->getType().isScalar()) + return setAggregateOperator(node, constructorOp, type, node->getLoc()); + + return node; +} + // // See if the 'from' type is allowed to be implicitly converted to the // 'to' type. This is not about vector/array/struct, only about basic type. diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 2081d0f0..7bd457d1 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -183,6 +183,7 @@ public: TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&); TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const; + TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*); TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4648b4ee..d14be677 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -141,6 +141,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, + {"hlsl.shapeConv.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 65d15b0d..3a56fe5b 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1605,9 +1605,10 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) } node = intermediate.addAssign(assignOp, node, rightNode, loc); - // TODO: Turn this on after tests are fixed for it: - //if (node == nullptr) - // parseContext.error(loc, "could not create assignment", "", ""); + if (node == nullptr) { + parseContext.error(loc, "could not create assignment", "", ""); + return false; + } if (! peekTokenClass(EHTokComma)) return true; @@ -1692,6 +1693,10 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr } node = intermediate.addBinaryMath(op, node, rightNode, loc); + if (node == nullptr) { + parseContext.error(loc, "Could not perform requested binary operation", "", ""); + return false; + } if (! peekTokenClass(EHTokComma)) return true; From 64076ed7e90956c892e7106a8989b5cd40c2370e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 28 Jul 2016 21:43:17 -0600 Subject: [PATCH 039/217] HLSL: Fix binary-expression associativity and termination issue. --- Test/baseResults/hlsl.array.frag.out | 156 ++++++++++----------- Test/baseResults/hlsl.assoc.frag.out | 22 +-- Test/baseResults/hlsl.buffer.frag.out | 70 ++++----- Test/baseResults/hlsl.conditional.frag.out | 72 +++++----- Test/baseResults/hlsl.precedence.frag.out | 86 ++++++++++-- Test/hlsl.precedence.frag | 2 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 13 +- 8 files changed, 243 insertions(+), 180 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 6f29aa20..abc7ebbf 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -11,38 +11,38 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 add (temp 4-component vector of float) -0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 Constant: 0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) 0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) +0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) @@ -63,38 +63,38 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 add (temp 4-component vector of float) -0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 Constant: 0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) 0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) +0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) @@ -114,9 +114,9 @@ gl_FragCoord origin is upper left Name 19 "i" Name 27 "input" Name 40 "b" - Name 51 "" - MemberName 51 0 "m" - Name 55 "s" + Name 52 "" + MemberName 52 0 "m" + Name 56 "s" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -142,14 +142,14 @@ gl_FragCoord origin is upper left 39: TypePointer Function 38 41: 13(int) Constant 5 42: TypePointer Function 7(fvec4) - 49: 8(int) Constant 7 - 50: TypeArray 7(fvec4) 49 - 51: TypeStruct 50 - 52: 8(int) Constant 11 - 53: TypeArray 51(struct) 52 - 54: TypePointer Private 53 - 55(s): 54(ptr) Variable Private - 57: 13(int) Constant 0 + 50: 8(int) Constant 7 + 51: TypeArray 7(fvec4) 50 + 52: TypeStruct 51 + 53: 8(int) Constant 11 + 54: TypeArray 52(struct) 53 + 55: TypePointer Private 54 + 56(s): 55(ptr) Variable Private + 58: 13(int) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label 40(b): 39(ptr) Variable Function @@ -161,22 +161,22 @@ gl_FragCoord origin is upper left 23: 7(fvec4) FAdd 17 22 30: 29(ptr) AccessChain 27(input) 28 31: 7(fvec4) Load 30 - 32: 13(int) Load 19(i) - 33: 29(ptr) AccessChain 27(input) 32 - 34: 7(fvec4) Load 33 - 35: 7(fvec4) FAdd 31 34 - 36: 7(fvec4) FAdd 23 35 + 32: 7(fvec4) FAdd 23 31 + 33: 13(int) Load 19(i) + 34: 29(ptr) AccessChain 27(input) 33 + 35: 7(fvec4) Load 34 + 36: 7(fvec4) FAdd 32 35 43: 42(ptr) AccessChain 40(b) 41 44: 7(fvec4) Load 43 - 45: 13(int) Load 19(i) - 46: 42(ptr) AccessChain 40(b) 45 - 47: 7(fvec4) Load 46 - 48: 7(fvec4) FAdd 44 47 - 56: 13(int) Load 19(i) - 58: 13(int) Load 19(i) - 59: 15(ptr) AccessChain 55(s) 56 57 58 - 60: 7(fvec4) Load 59 - 61: 7(fvec4) FAdd 48 60 - 62: 7(fvec4) FAdd 36 61 + 45: 7(fvec4) FAdd 36 44 + 46: 13(int) Load 19(i) + 47: 42(ptr) AccessChain 40(b) 46 + 48: 7(fvec4) Load 47 + 49: 7(fvec4) FAdd 45 48 + 57: 13(int) Load 19(i) + 59: 13(int) Load 19(i) + 60: 15(ptr) AccessChain 56(s) 57 58 59 + 61: 7(fvec4) Load 60 + 62: 7(fvec4) FAdd 49 61 ReturnValue 62 FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 251c7bec..89eea725 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -23,11 +23,11 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) 0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) 0:10 'a5' (in 4-component vector of float) 0:? Linker Objects @@ -59,11 +59,11 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) 0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) 0:10 'a5' (in 4-component vector of float) 0:? Linker Objects @@ -104,9 +104,9 @@ gl_FragCoord origin is upper left 16: 7(fvec4) Load 10(a2) 17: 7(fvec4) FAdd 15 16 18: 7(fvec4) Load 11(a3) - 19: 7(fvec4) Load 12(a4) - 20: 7(fvec4) FAdd 18 19 - 21: 7(fvec4) FAdd 17 20 + 19: 7(fvec4) FAdd 17 18 + 20: 7(fvec4) Load 12(a4) + 21: 7(fvec4) FAdd 19 20 22: 7(fvec4) Load 13(a5) 23: 7(fvec4) FAdd 21 22 ReturnValue 23 diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index a1452197..d03629cc 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -10,20 +10,20 @@ gl_FragCoord origin is upper left 0:21 add (temp 4-component vector of float) 0:21 add (temp 4-component vector of float) 0:21 add (temp 4-component vector of float) -0:21 'input' (in 4-component vector of float) -0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:21 Constant: -0:21 0 (const uint) -0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 'input' (in 4-component vector of float) +0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:21 Constant: +0:21 0 (const uint) 0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) 0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:21 Constant: 0:21 0 (const uint) -0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:21 Constant: -0:21 0 (const uint) +0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:21 Constant: +0:21 0 (const uint) 0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) 0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) 0:21 Constant: @@ -49,20 +49,20 @@ gl_FragCoord origin is upper left 0:21 add (temp 4-component vector of float) 0:21 add (temp 4-component vector of float) 0:21 add (temp 4-component vector of float) -0:21 'input' (in 4-component vector of float) -0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:21 Constant: -0:21 0 (const uint) -0:21 add (temp 4-component vector of float) +0:21 add (temp 4-component vector of float) +0:21 'input' (in 4-component vector of float) +0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:21 Constant: +0:21 0 (const uint) 0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) 0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:21 Constant: 0:21 0 (const uint) -0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:21 Constant: -0:21 0 (const uint) +0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) +0:21 Constant: +0:21 0 (const uint) 0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) 0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) 0:21 Constant: @@ -91,10 +91,10 @@ gl_FragCoord origin is upper left Name 20 "" MemberName 20 0 "v2" Name 22 "" - Name 25 "" - MemberName 25 0 "v3" - MemberName 25 1 "i3" - Name 27 "" + Name 26 "" + MemberName 26 0 "v3" + MemberName 26 1 "i3" + Name 28 "" Name 32 "" MemberName 32 0 "v4" MemberName 32 1 "i4" @@ -105,10 +105,10 @@ gl_FragCoord origin is upper left MemberDecorate 20 0 Offset 0 Decorate 20 BufferBlock Decorate 22 DescriptorSet 0 - MemberDecorate 25 0 Offset 0 - MemberDecorate 25 1 Offset 16 - Decorate 25 Block - Decorate 27 DescriptorSet 0 + MemberDecorate 26 0 Offset 0 + MemberDecorate 26 1 Offset 16 + Decorate 26 Block + Decorate 28 DescriptorSet 0 MemberDecorate 32 0 Offset 0 MemberDecorate 32 1 Offset 16 Decorate 32 BufferBlock @@ -128,9 +128,9 @@ gl_FragCoord origin is upper left 20: TypeStruct 7(fvec4) 21: TypePointer Uniform 20(struct) 22: 21(ptr) Variable Uniform - 25: TypeStruct 7(fvec4) 14(int) - 26: TypePointer Uniform 25(struct) - 27: 26(ptr) Variable Uniform + 26: TypeStruct 7(fvec4) 14(int) + 27: TypePointer Uniform 26(struct) + 28: 27(ptr) Variable Uniform 32: TypeStruct 7(fvec4) 14(int) 33: TypePointer Uniform 32(struct) 34: 33(ptr) Variable Uniform @@ -142,10 +142,10 @@ gl_FragCoord origin is upper left 19: 7(fvec4) FAdd 10 18 23: 16(ptr) AccessChain 22 15 24: 7(fvec4) Load 23 - 28: 16(ptr) AccessChain 27 15 - 29: 7(fvec4) Load 28 - 30: 7(fvec4) FAdd 24 29 - 31: 7(fvec4) FAdd 19 30 + 25: 7(fvec4) FAdd 19 24 + 29: 16(ptr) AccessChain 28 15 + 30: 7(fvec4) Load 29 + 31: 7(fvec4) FAdd 25 30 35: 16(ptr) AccessChain 34 15 36: 7(fvec4) Load 35 37: 7(fvec4) FAdd 31 36 diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index f5acec3b..1e62e9cf 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -29,25 +29,25 @@ gl_FragCoord origin is upper left 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:7 'ret' (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:7 add (temp 4-component vector of float) -0:7 vector-scale (temp 4-component vector of float) -0:7 Convert int to float (temp float) -0:7 'a' (temp int) -0:7 'input' (in 4-component vector of float) -0:8 vector-scale (temp 4-component vector of float) -0:8 Convert int to float (temp float) -0:8 'b' (temp int) -0:8 'input' (in 4-component vector of float) -0:9 add (temp 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (in 4-component vector of float) 0:9 vector-scale (temp 4-component vector of float) 0:9 Convert int to float (temp float) 0:9 'c' (temp int) 0:9 'input' (in 4-component vector of float) -0:10 vector-scale (temp 4-component vector of float) -0:10 Convert int to float (temp float) -0:10 'd' (temp int) -0:10 'input' (in 4-component vector of float) +0:10 vector-scale (temp 4-component vector of float) +0:10 Convert int to float (temp float) +0:10 'd' (temp int) +0:10 'input' (in 4-component vector of float) 0:12 Comma (temp int) 0:12 move second child to first child (temp int) 0:12 'e' (temp int) @@ -141,25 +141,25 @@ gl_FragCoord origin is upper left 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:7 'ret' (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:7 add (temp 4-component vector of float) -0:7 vector-scale (temp 4-component vector of float) -0:7 Convert int to float (temp float) -0:7 'a' (temp int) -0:7 'input' (in 4-component vector of float) -0:8 vector-scale (temp 4-component vector of float) -0:8 Convert int to float (temp float) -0:8 'b' (temp int) -0:8 'input' (in 4-component vector of float) -0:9 add (temp 4-component vector of float) +0:9 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:7 add (temp 4-component vector of float) +0:7 vector-scale (temp 4-component vector of float) +0:7 Convert int to float (temp float) +0:7 'a' (temp int) +0:7 'input' (in 4-component vector of float) +0:8 vector-scale (temp 4-component vector of float) +0:8 Convert int to float (temp float) +0:8 'b' (temp int) +0:8 'input' (in 4-component vector of float) 0:9 vector-scale (temp 4-component vector of float) 0:9 Convert int to float (temp float) 0:9 'c' (temp int) 0:9 'input' (in 4-component vector of float) -0:10 vector-scale (temp 4-component vector of float) -0:10 Convert int to float (temp float) -0:10 'd' (temp int) -0:10 'input' (in 4-component vector of float) +0:10 vector-scale (temp 4-component vector of float) +0:10 Convert int to float (temp float) +0:10 'd' (temp int) +0:10 'input' (in 4-component vector of float) 0:12 Comma (temp int) 0:12 move second child to first child (temp int) 0:12 'e' (temp int) @@ -287,12 +287,12 @@ gl_FragCoord origin is upper left 31: 15(float) ConvertSToF 30 32: 16(fvec4) Load 22(input) 33: 16(fvec4) VectorTimesScalar 32 31 - 34: 6(int) Load 14(d) - 35: 15(float) ConvertSToF 34 - 36: 16(fvec4) Load 22(input) - 37: 16(fvec4) VectorTimesScalar 36 35 - 38: 16(fvec4) FAdd 33 37 - 39: 16(fvec4) FAdd 29 38 + 34: 16(fvec4) FAdd 29 33 + 35: 6(int) Load 14(d) + 36: 15(float) ConvertSToF 35 + 37: 16(fvec4) Load 22(input) + 38: 16(fvec4) VectorTimesScalar 37 36 + 39: 16(fvec4) FAdd 34 38 Store 18(ret) 39 42: 6(int) Load 10(b) SelectionMerge 44 None diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index d3513538..2ad5ab5e 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -12,11 +12,36 @@ gl_FragCoord origin is upper left 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) 0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) 0:? Linker Objects @@ -36,16 +61,41 @@ gl_FragCoord origin is upper left 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) 0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 21 +// Id's are bound by 37 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -67,6 +117,10 @@ gl_FragCoord origin is upper left 11(a2): 8(ptr) Variable Input 13(a3): 8(ptr) Variable Input 17(a4): 8(ptr) Variable Input + 20: TypeVector 6(float) 3 + 26: TypeInt 32 0 + 27: 26(int) Constant 3 + 28: TypePointer Input 6(float) 4(PixelShaderFunction): 2 Function None 3 5: Label 10: 7(fvec4) Load 9(a1) @@ -76,5 +130,17 @@ gl_FragCoord origin is upper left 16: 7(fvec4) FAdd 10 15 18: 7(fvec4) Load 17(a4) 19: 7(fvec4) FAdd 16 18 - ReturnValue 19 + 21: 7(fvec4) Load 9(a1) + 22: 20(fvec3) VectorShuffle 21 21 0 1 2 + 23: 7(fvec4) Load 11(a2) + 24: 20(fvec3) VectorShuffle 23 23 0 1 2 + 25: 20(fvec3) FMul 22 24 + 29: 28(ptr) AccessChain 13(a3) 27 + 30: 6(float) Load 29 + 31: 6(float) CompositeExtract 25 0 + 32: 6(float) CompositeExtract 25 1 + 33: 6(float) CompositeExtract 25 2 + 34: 7(fvec4) CompositeConstruct 31 32 33 30 + 35: 7(fvec4) FAdd 19 34 + ReturnValue 35 FunctionEnd diff --git a/Test/hlsl.precedence.frag b/Test/hlsl.precedence.frag index eae0435e..6ed71739 100644 --- a/Test/hlsl.precedence.frag +++ b/Test/hlsl.precedence.frag @@ -5,5 +5,5 @@ float4 PixelShaderFunction( float4 a4 ) : COLOR0 { - return a1 + a2 * a3 + a4; + return a1 + a2 * a3 + a4 + float4(a1.rgb * a2.rgb, a3.a); } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index fcc3d69c..e77aff4c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1361" +#define GLSLANG_REVISION "SPIRV99.1362" #define GLSLANG_DATE "28-Jul-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3a56fe5b..c3825f83 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1675,12 +1675,12 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr if (! acceptBinaryExpression(node, (PrecedenceLevel)(precedenceLevel + 1))) return false; - TOperator op = HlslOpMap::binary(peek()); - PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op); - if (tokenLevel < precedenceLevel) - return true; - do { + TOperator op = HlslOpMap::binary(peek()); + PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op); + if (tokenLevel < precedenceLevel) + return true; + // ... op TSourceLoc loc = token.loc; advanceToken(); @@ -1697,9 +1697,6 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr parseContext.error(loc, "Could not perform requested binary operation", "", ""); return false; } - - if (! peekTokenClass(EHTokComma)) - return true; } while (true); } From ce31aea0d09f32914e1e01695b7b08bf5d7310a8 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 29 Jul 2016 16:13:04 +0800 Subject: [PATCH 040/217] SPV: Fix an issue of ++/-- for dvec/dmat. --- SPIRV/GlslangToSpv.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 26d2f4bc..470ed253 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -1174,6 +1174,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI spv::Id one = 0; if (node->getBasicType() == glslang::EbtFloat) one = builder.makeFloatConstant(1.0F); + else if (node->getBasicType() == glslang::EbtDouble) + one = builder.makeDoubleConstant(1.0); else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) one = builder.makeInt64Constant(1); else From 82d6baf86fc89f21370f145dbd2332cea69330fb Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 29 Jul 2016 13:03:05 -0600 Subject: [PATCH 041/217] HLSL: Implement packoffset production. --- Test/baseResults/hlsl.buffer.frag.out | 128 ++++++++++++++------------ Test/baseResults/hlsl.float4.frag.out | 15 +-- Test/baseResults/hlsl.struct.frag.out | 12 +-- Test/hlsl.buffer.frag | 8 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 18 +++- hlsl/hlslParseHelper.cpp | 40 ++++++++ hlsl/hlslParseHelper.h | 1 + 8 files changed, 147 insertions(+), 77 deletions(-) diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index d03629cc..a51be517 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -2,37 +2,37 @@ hlsl.buffer.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:20 Function Parameters: -0:20 'input' (in 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:26 Function Parameters: +0:26 'input' (in 4-component vector of float) 0:? Sequence -0:21 Branch: Return with expression -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 'input' (in 4-component vector of float) -0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:21 Constant: -0:21 0 (const uint) -0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:21 Constant: -0:21 0 (const uint) -0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:21 Constant: -0:21 0 (const uint) -0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) -0:21 Constant: -0:21 0 (const uint) +0:27 Branch: Return with expression +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 Constant: +0:27 0 (const uint) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 Constant: +0:27 0 (const uint) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:27 Constant: +0:27 0 (const uint) 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) +0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) Linked fragment stage: @@ -41,37 +41,37 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:20 Function Parameters: -0:20 'input' (in 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:26 Function Parameters: +0:26 'input' (in 4-component vector of float) 0:? Sequence -0:21 Branch: Return with expression -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 add (temp 4-component vector of float) -0:21 'input' (in 4-component vector of float) -0:21 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:21 Constant: -0:21 0 (const uint) -0:21 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:21 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:21 Constant: -0:21 0 (const uint) -0:21 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:21 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:21 Constant: -0:21 0 (const uint) -0:21 v4: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:21 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) -0:21 Constant: -0:21 0 (const uint) +0:27 Branch: Return with expression +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 Constant: +0:27 0 (const uint) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 Constant: +0:27 0 (const uint) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:27 Constant: +0:27 0 (const uint) 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 ) uniform int i3}) -0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v4, layout(column_major std430 ) buffer int i4}) +0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) // Module Version 10000 // Generated by (magic number): 80001 @@ -98,6 +98,12 @@ gl_FragCoord origin is upper left Name 32 "" MemberName 32 0 "v4" MemberName 32 1 "i4" + MemberName 32 2 "f1" + MemberName 32 3 "f3" + MemberName 32 4 "f4" + MemberName 32 5 "f5" + MemberName 32 6 "f6" + MemberName 32 7 "f7" Name 34 "" MemberDecorate 11 0 Offset 0 Decorate 11 Block @@ -106,11 +112,17 @@ gl_FragCoord origin is upper left Decorate 20 BufferBlock Decorate 22 DescriptorSet 0 MemberDecorate 26 0 Offset 0 - MemberDecorate 26 1 Offset 16 + MemberDecorate 26 1 Offset 20 Decorate 26 Block Decorate 28 DescriptorSet 0 - MemberDecorate 32 0 Offset 0 - MemberDecorate 32 1 Offset 16 + MemberDecorate 32 0 Offset 16 + MemberDecorate 32 1 Offset 48 + MemberDecorate 32 2 Offset 60 + MemberDecorate 32 3 Offset 64 + MemberDecorate 32 4 Offset 68 + MemberDecorate 32 5 Offset 72 + MemberDecorate 32 6 Offset 76 + MemberDecorate 32 7 Offset 80 Decorate 32 BufferBlock Decorate 34 DescriptorSet 0 2: TypeVoid @@ -131,7 +143,7 @@ gl_FragCoord origin is upper left 26: TypeStruct 7(fvec4) 14(int) 27: TypePointer Uniform 26(struct) 28: 27(ptr) Variable Uniform - 32: TypeStruct 7(fvec4) 14(int) + 32: TypeStruct 7(fvec4) 14(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 33: TypePointer Uniform 32(struct) 34: 33(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index a086d95e..481c9018 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -21,9 +21,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'AmbientColor' (global 4-component vector of float) 0:? 'ff1' (global bool Face) -0:? 'ff2' (global 4-component vector of float) -0:? 'ff3' (global 4-component vector of float) -0:? 'ff4' (global 4-component vector of float FragCoord) +0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) +0:? 'ff3' (layout(offset=4 ) global 4-component vector of float) +0:? 'ff4' (layout(offset=4 ) global 4-component vector of float FragCoord) Linked fragment stage: @@ -51,9 +51,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'AmbientColor' (global 4-component vector of float) 0:? 'ff1' (global bool Face) -0:? 'ff2' (global 4-component vector of float) -0:? 'ff3' (global 4-component vector of float) -0:? 'ff4' (global 4-component vector of float FragCoord) +0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) +0:? 'ff3' (layout(offset=4 ) global 4-component vector of float) +0:? 'ff4' (layout(offset=4 ) global 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 @@ -74,6 +74,9 @@ gl_FragCoord origin is upper left Name 28 "ff3" Name 29 "ff4" Decorate 26(ff1) BuiltIn FrontFacing + Decorate 27(ff2) Offset 4 + Decorate 28(ff3) Offset 4 + Decorate 29(ff4) Offset 4 Decorate 29(ff4) BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index a70bba60..684d4c88 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -14,8 +14,8 @@ gl_FragCoord origin is upper left 0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) -0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 ff4: direct index for structure (layout(offset=4 ) temp 4-component vector of float FragCoord) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) Linked fragment stage: @@ -44,8 +44,8 @@ gl_FragCoord origin is upper left 0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) -0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 ff4: direct index for structure (layout(offset=4 ) temp 4-component vector of float FragCoord) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag index fbfdc316..e01e4fcb 100644 --- a/Test/hlsl.buffer.frag +++ b/Test/hlsl.buffer.frag @@ -13,7 +13,13 @@ cbuffer cbufName : register(b2) { tbuffer tbufName : register(b8) { float4 v4 : packoffset(c1); - int i4 : packoffset(c3); + int i4 : packoffset(c3); + float f1 : packoffset(c3.w); + float f3 : packoffset(c4.x); + float f4 : packoffset(c4.y); + float f5 : packoffset(c4.z); + float f6 : packoffset(c); + float f7; }; float4 PixelShaderFunction(float4 input) : COLOR0 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index e77aff4c..fcaa435a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "SPIRV99.1362" -#define GLSLANG_DATE "28-Jul-2016" +#define GLSLANG_DATE "29-Jul-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c3825f83..a6c7ac96 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2537,15 +2537,23 @@ void HlslGrammar::acceptPostDecls(TType& type) expected("("); return; } - acceptTokenClass(EHTokIdentifier); - acceptTokenClass(EHTokDot); - acceptTokenClass(EHTokIdentifier); + HlslToken locationToken; + if (! acceptIdentifier(locationToken)) { + expected("c[subcomponent][.component]"); + return; + } + HlslToken componentToken; + if (acceptTokenClass(EHTokDot)) { + if (! acceptIdentifier(componentToken)) { + expected("component"); + return; + } + } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - // TODO: process the packoffset information - // c1.y means component y of location slot 1 + parseContext.handlePackOffset(locationToken.loc, type, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { expected("semantic or packoffset or register"); return; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2f728172..6022e7d9 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2134,6 +2134,46 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) type.getQualifier().builtIn = EbvViewportIndex; } +// +// Handle seeing something like ": packoffset( c[Subcomponent][.component] )" +// +// 'location' has the "c[Subcomponent]" part. +// 'component' points to the "component" part, or nullptr if not present. +// +void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, const glslang::TString& location, + const glslang::TString* component) +{ + if (location.size() == 0 || location[0] != 'c') { + error(loc, "expected 'c'", "packoffset", ""); + return; + } + if (location.size() == 1) + return; + if (! isdigit(location[1])) { + error(loc, "expected number after 'c'", "packoffset", ""); + return; + } + + type.getQualifier().layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); + if (component) { + int componentOffset = 0; + switch ((*component)[0]) { + case 'x': componentOffset = 0; break; + case 'y': componentOffset = 4; break; + case 'z': componentOffset = 8; break; + case 'w': componentOffset = 12; break; + default: + componentOffset = -1; + break; + } + if (componentOffset < 0 || component->size() > 1) { + error(loc, "expected {x, y, z, w} for component", "packoffset", ""); + return; + } + type.getQualifier().layoutOffset += componentOffset; + } +} + // // Same error message for all places assignments don't work. // diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 979e4a48..7a02ebb4 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -95,6 +95,7 @@ public: void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TType& type, const TString& semantic); + void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location, const glslang::TString* component); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); From 96e9f47cbb3d488ff1f12b0a3397c8bcef571f0e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 29 Jul 2016 14:28:39 -0600 Subject: [PATCH 042/217] HLSL: Implement the register production. --- .../hlsl.calculatelod.dx10.frag.out | 55 ++++++++------- .../hlsl.calculatelodunclamped.dx10.frag.out | 52 +++++++------- Test/baseResults/hlsl.float4.frag.out | 13 ++-- .../hlsl.gather.array.dx10.frag.out | 39 ++++++----- .../hlsl.gather.basic.dx10.frag.out | 39 ++++++----- .../hlsl.gather.basic.dx10.vert.out | 39 ++++++----- .../hlsl.gather.offset.dx10.frag.out | 27 ++++---- .../hlsl.gather.offsetarray.dx10.frag.out | 27 ++++---- .../hlsl.getdimensions.dx10.frag.out | 22 +++--- .../hlsl.getdimensions.dx10.vert.out | 22 +++--- .../hlsl.getsampleposition.dx10.frag.out | 4 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 5 +- .../baseResults/hlsl.load.array.dx10.frag.out | 10 +-- .../baseResults/hlsl.load.basic.dx10.frag.out | 14 ++-- .../baseResults/hlsl.load.basic.dx10.vert.out | 14 ++-- .../hlsl.load.buffer.dx10.frag.out | 5 +- .../hlsl.load.offset.dx10.frag.out | 14 ++-- .../hlsl.load.offsetarray.dx10.frag.out | 10 +-- .../hlsl.sample.array.dx10.frag.out | 55 ++++++++------- .../hlsl.sample.basic.dx10.frag.out | 67 ++++++++++--------- .../hlsl.sample.offset.dx10.frag.out | 55 ++++++++------- .../hlsl.sample.offsetarray.dx10.frag.out | 43 ++++++------ .../hlsl.samplebias.array.dx10.frag.out | 55 ++++++++------- .../hlsl.samplebias.basic.dx10.frag.out | 67 ++++++++++--------- .../hlsl.samplebias.offset.dx10.frag.out | 55 ++++++++------- .../hlsl.samplebias.offsetarray.dx10.frag.out | 43 ++++++------ .../hlsl.samplecmp.array.dx10.frag.out | 46 +++++++------ .../hlsl.samplecmp.basic.dx10.frag.out | 50 +++++++------- .../hlsl.samplecmp.offset.dx10.frag.out | 38 ++++++----- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 34 +++++----- ...lsl.samplecmplevelzero.array.dx10.frag.out | 46 +++++++------ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 50 +++++++------- ...sl.samplecmplevelzero.offset.dx10.frag.out | 38 ++++++----- ...mplecmplevelzero.offsetarray.dx10.frag.out | 34 +++++----- .../hlsl.samplegrad.array.dx10.frag.out | 55 ++++++++------- .../hlsl.samplegrad.basic.dx10.frag.out | 67 ++++++++++--------- .../hlsl.samplegrad.basic.dx10.vert.out | 67 ++++++++++--------- .../hlsl.samplegrad.offset.dx10.frag.out | 55 ++++++++------- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 43 ++++++------ .../hlsl.samplelevel.array.dx10.frag.out | 55 ++++++++------- .../hlsl.samplelevel.basic.dx10.frag.out | 67 ++++++++++--------- .../hlsl.samplelevel.basic.dx10.vert.out | 67 ++++++++++--------- .../hlsl.samplelevel.offset.dx10.frag.out | 55 ++++++++------- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 43 ++++++------ Test/baseResults/hlsl.struct.frag.out | 15 +++-- Test/hlsl.float4.frag | 4 +- Test/hlsl.struct.frag | 4 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 35 ++++++---- hlsl/hlslParseHelper.cpp | 39 ++++++++++- hlsl/hlslParseHelper.h | 1 + 51 files changed, 1009 insertions(+), 852 deletions(-) diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 7319a196..43232fba 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -11,8 +11,8 @@ gl_FragCoord origin is upper left 0:28 direct index (temp float) 0:? textureQueryLod (temp float) 0:28 Construct combined texture-sampler (temp sampler1DArray) -0:28 'g_tTex1df4a' (uniform texture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:29 Construct combined texture-sampler (temp isampler1DArray) 0:29 'g_tTex1di4a' (uniform itexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:30 Construct combined texture-sampler (temp usampler1DArray) 0:30 'g_tTex1du4a' (uniform utexture1DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:32 Construct combined texture-sampler (temp sampler2DArray) 0:32 'g_tTex2df4a' (uniform texture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:33 Construct combined texture-sampler (temp isampler2DArray) 0:33 'g_tTex2di4a' (uniform itexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:34 Construct combined texture-sampler (temp usampler2DArray) 0:34 'g_tTex2du4a' (uniform utexture2DArray) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:36 Construct combined texture-sampler (temp samplerCubeArray) 0:36 'g_tTexcdf4a' (uniform textureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:37 Construct combined texture-sampler (temp isamplerCubeArray) 0:37 'g_tTexcdi4a' (uniform itextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:38 Construct combined texture-sampler (temp usamplerCubeArray) 0:38 'g_tTexcdu4a' (uniform utextureCubeArray) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -142,9 +142,9 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -170,8 +170,8 @@ gl_FragCoord origin is upper left 0:28 direct index (temp float) 0:? textureQueryLod (temp float) 0:28 Construct combined texture-sampler (temp sampler1DArray) -0:28 'g_tTex1df4a' (uniform texture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: @@ -183,7 +183,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:29 Construct combined texture-sampler (temp isampler1DArray) 0:29 'g_tTex1di4a' (uniform itexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:30 Construct combined texture-sampler (temp usampler1DArray) 0:30 'g_tTex1du4a' (uniform utexture1DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:32 Construct combined texture-sampler (temp sampler2DArray) 0:32 'g_tTex2df4a' (uniform texture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -220,7 +220,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:33 Construct combined texture-sampler (temp isampler2DArray) 0:33 'g_tTex2di4a' (uniform itexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:34 Construct combined texture-sampler (temp usampler2DArray) 0:34 'g_tTex2du4a' (uniform utexture2DArray) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:36 Construct combined texture-sampler (temp samplerCubeArray) 0:36 'g_tTexcdf4a' (uniform textureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:37 Construct combined texture-sampler (temp isamplerCubeArray) 0:37 'g_tTexcdi4a' (uniform itextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -274,7 +274,7 @@ gl_FragCoord origin is upper left 0:? textureQueryLod (temp float) 0:38 Construct combined texture-sampler (temp usamplerCubeArray) 0:38 'g_tTexcdu4a' (uniform utextureCubeArray) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -301,9 +301,9 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -352,7 +352,9 @@ gl_FragCoord origin is upper left Name 133 "psout" Name 142 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 + Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 42(g_tTex1du4a) DescriptorSet 0 Decorate 54(g_tTex2df4a) DescriptorSet 0 @@ -363,6 +365,7 @@ gl_FragCoord origin is upper left Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 142(g_tTex1df4) DescriptorSet 0 + Decorate 142(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index b55a36be..e2dc1db7 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -23,8 +23,8 @@ ERROR: node is still EOpNull! 0:28 direct index (temp float) 0:? textureQueryLod (temp float) 0:28 Construct combined texture-sampler (temp sampler1DArray) -0:28 'g_tTex1df4a' (uniform texture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: @@ -36,7 +36,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:29 Construct combined texture-sampler (temp isampler1DArray) 0:29 'g_tTex1di4a' (uniform itexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: @@ -48,7 +48,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:30 Construct combined texture-sampler (temp usampler1DArray) 0:30 'g_tTex1du4a' (uniform utexture1DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: @@ -60,7 +60,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:32 Construct combined texture-sampler (temp sampler2DArray) 0:32 'g_tTex2df4a' (uniform texture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -73,7 +73,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:33 Construct combined texture-sampler (temp isampler2DArray) 0:33 'g_tTex2di4a' (uniform itexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -86,7 +86,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:34 Construct combined texture-sampler (temp usampler2DArray) 0:34 'g_tTex2du4a' (uniform utexture2DArray) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -99,7 +99,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:36 Construct combined texture-sampler (temp samplerCubeArray) 0:36 'g_tTexcdf4a' (uniform textureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -113,7 +113,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:37 Construct combined texture-sampler (temp isamplerCubeArray) 0:37 'g_tTexcdi4a' (uniform itextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -127,7 +127,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:38 Construct combined texture-sampler (temp usamplerCubeArray) 0:38 'g_tTexcdu4a' (uniform utextureCubeArray) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -154,9 +154,9 @@ ERROR: node is still EOpNull! 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -182,8 +182,8 @@ ERROR: node is still EOpNull! 0:28 direct index (temp float) 0:? textureQueryLod (temp float) 0:28 Construct combined texture-sampler (temp sampler1DArray) -0:28 'g_tTex1df4a' (uniform texture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: @@ -195,7 +195,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:29 Construct combined texture-sampler (temp isampler1DArray) 0:29 'g_tTex1di4a' (uniform itexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: @@ -207,7 +207,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:30 Construct combined texture-sampler (temp usampler1DArray) 0:30 'g_tTex1du4a' (uniform utexture1DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: @@ -219,7 +219,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:32 Construct combined texture-sampler (temp sampler2DArray) 0:32 'g_tTex2df4a' (uniform texture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -232,7 +232,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:33 Construct combined texture-sampler (temp isampler2DArray) 0:33 'g_tTex2di4a' (uniform itexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -245,7 +245,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:34 Construct combined texture-sampler (temp usampler2DArray) 0:34 'g_tTex2du4a' (uniform utexture2DArray) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -258,7 +258,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:36 Construct combined texture-sampler (temp samplerCubeArray) 0:36 'g_tTexcdf4a' (uniform textureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -272,7 +272,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:37 Construct combined texture-sampler (temp isamplerCubeArray) 0:37 'g_tTexcdi4a' (uniform itextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -286,7 +286,7 @@ ERROR: node is still EOpNull! 0:? textureQueryLod (temp float) 0:38 Construct combined texture-sampler (temp usamplerCubeArray) 0:38 'g_tTexcdu4a' (uniform utextureCubeArray) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -313,9 +313,9 @@ ERROR: node is still EOpNull! 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 481c9018..370a5069 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -1,4 +1,7 @@ hlsl.float4.frag +WARNING: 0:5: 'register' : ignoring shader_profile +WARNING: 0:6: 'register' : ignoring shader_profile + Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence @@ -22,8 +25,8 @@ gl_FragCoord origin is upper left 0:? 'AmbientColor' (global 4-component vector of float) 0:? 'ff1' (global bool Face) 0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(offset=4 ) global 4-component vector of float FragCoord) +0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) +0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord) Linked fragment stage: @@ -52,8 +55,8 @@ gl_FragCoord origin is upper left 0:? 'AmbientColor' (global 4-component vector of float) 0:? 'ff1' (global bool Face) 0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(offset=4 ) global 4-component vector of float FragCoord) +0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) +0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 @@ -76,7 +79,9 @@ gl_FragCoord origin is upper left Decorate 26(ff1) BuiltIn FrontFacing Decorate 27(ff2) Offset 4 Decorate 28(ff3) Offset 4 + Decorate 28(ff3) Binding 0 Decorate 29(ff4) Offset 4 + Decorate 29(ff4) Binding 1 Decorate 29(ff4) BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index e63ab53c..70d1bf12 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:29 textureGather (global 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:30 textureGather (global 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:31 textureGather (global 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:35 textureGather (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:36 textureGather (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:37 textureGather (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -94,9 +94,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -122,7 +122,7 @@ gl_FragCoord origin is upper left 0:29 textureGather (global 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:30 textureGather (global 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -144,7 +144,7 @@ gl_FragCoord origin is upper left 0:31 textureGather (global 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -155,7 +155,7 @@ gl_FragCoord origin is upper left 0:35 textureGather (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -167,7 +167,7 @@ gl_FragCoord origin is upper left 0:36 textureGather (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -179,7 +179,7 @@ gl_FragCoord origin is upper left 0:37 textureGather (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -205,9 +205,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -253,6 +253,7 @@ gl_FragCoord origin is upper left Name 109 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 33(g_tTex2di4a) DescriptorSet 0 Decorate 48(g_tTex2du4a) DescriptorSet 0 Decorate 60(g_tTexcdf4a) DescriptorSet 0 @@ -260,7 +261,9 @@ gl_FragCoord origin is upper left Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 102(g_tTex1df4a) DescriptorSet 0 + Decorate 102(g_tTex1df4a) Binding 1 Decorate 103(g_tTex1df4) DescriptorSet 0 + Decorate 103(g_tTex1df4) Binding 0 Decorate 106(g_tTex1di4a) DescriptorSet 0 Decorate 109(g_tTex1du4a) DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index f4918049..c52d7cd4 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:34 textureGather (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:35 textureGather (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left 0:36 textureGather (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:40 textureGather (global 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -52,7 +52,7 @@ gl_FragCoord origin is upper left 0:41 textureGather (global 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:42 textureGather (global 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -88,10 +88,10 @@ gl_FragCoord origin is upper left 0:47 Branch: Return with expression 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:34 textureGather (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -130,7 +130,7 @@ gl_FragCoord origin is upper left 0:35 textureGather (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -140,7 +140,7 @@ gl_FragCoord origin is upper left 0:36 textureGather (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:40 textureGather (global 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -161,7 +161,7 @@ gl_FragCoord origin is upper left 0:41 textureGather (global 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:42 textureGather (global 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -197,10 +197,10 @@ gl_FragCoord origin is upper left 0:47 Branch: Return with expression 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -252,6 +252,7 @@ gl_FragCoord origin is upper left Name 120 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 32(g_tTex2di4) DescriptorSet 0 Decorate 47(g_tTex2du4) DescriptorSet 0 Decorate 59(g_tTexcdf4) DescriptorSet 0 @@ -260,7 +261,9 @@ gl_FragCoord origin is upper left MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 101(g_sSamp2d) DescriptorSet 0 Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 Decorate 108(g_tTex1di4) DescriptorSet 0 Decorate 111(g_tTex1du4) DescriptorSet 0 Decorate 114(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 9cc0bfd1..667c39f8 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -10,7 +10,7 @@ Shader version: 450 0:33 textureGather (global 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -20,7 +20,7 @@ Shader version: 450 0:34 textureGather (global 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -30,7 +30,7 @@ Shader version: 450 0:35 textureGather (global 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -40,7 +40,7 @@ Shader version: 450 0:39 textureGather (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -51,7 +51,7 @@ Shader version: 450 0:40 textureGather (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -62,7 +62,7 @@ Shader version: 450 0:41 textureGather (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -80,10 +80,10 @@ Shader version: 450 0:45 Branch: Return with expression 0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -111,7 +111,7 @@ Shader version: 450 0:33 textureGather (global 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -121,7 +121,7 @@ Shader version: 450 0:34 textureGather (global 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -131,7 +131,7 @@ Shader version: 450 0:35 textureGather (global 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -141,7 +141,7 @@ Shader version: 450 0:39 textureGather (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -152,7 +152,7 @@ Shader version: 450 0:40 textureGather (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -163,7 +163,7 @@ Shader version: 450 0:41 textureGather (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -181,10 +181,10 @@ Shader version: 450 0:45 Branch: Return with expression 0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -234,6 +234,7 @@ Shader version: 450 Name 117 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 32(g_tTex2di4) DescriptorSet 0 Decorate 47(g_tTex2du4) DescriptorSet 0 Decorate 59(g_tTexcdf4) DescriptorSet 0 @@ -242,7 +243,9 @@ Shader version: 450 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord Decorate 98(g_sSamp2d) DescriptorSet 0 Decorate 101(g_tTex1df4a) DescriptorSet 0 + Decorate 101(g_tTex1df4a) Binding 1 Decorate 102(g_tTex1df4) DescriptorSet 0 + Decorate 102(g_tTex1df4) Binding 0 Decorate 105(g_tTex1di4) DescriptorSet 0 Decorate 108(g_tTex1du4) DescriptorSet 0 Decorate 111(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 7a081653..d5a39215 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:33 textureGatherOffset (global 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:34 textureGatherOffset (global 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:35 textureGatherOffset (global 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -64,9 +64,9 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:33 textureGatherOffset (global 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:34 textureGatherOffset (global 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:35 textureGatherOffset (global 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -148,9 +148,9 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -198,11 +198,14 @@ gl_FragCoord origin is upper left Name 99 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 74(g_tTex1df4a) DescriptorSet 0 + Decorate 74(g_tTex1df4a) Binding 1 Decorate 75(g_tTex1df4) DescriptorSet 0 + Decorate 75(g_tTex1df4) Binding 0 Decorate 78(g_tTex1di4) DescriptorSet 0 Decorate 81(g_tTex1du4) DescriptorSet 0 Decorate 84(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 73143987..a1f628aa 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:25 textureGatherOffset (global 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:26 textureGatherOffset (global 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) -0:26 'g_sSamp' (uniform sampler) +0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:27 textureGatherOffset (global 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -67,9 +67,9 @@ gl_FragCoord origin is upper left 0:35 Branch: Return with expression 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:25 textureGatherOffset (global 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:26 textureGatherOffset (global 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) -0:26 'g_sSamp' (uniform sampler) +0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:27 textureGatherOffset (global 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -148,9 +148,9 @@ gl_FragCoord origin is upper left 0:35 Branch: Return with expression 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -186,11 +186,14 @@ gl_FragCoord origin is upper left Name 82 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 75(g_tTex1df4a) DescriptorSet 0 + Decorate 75(g_tTex1df4a) Binding 1 Decorate 76(g_tTex1df4) DescriptorSet 0 + Decorate 76(g_tTex1df4) Binding 0 Decorate 79(g_tTex1di4) DescriptorSet 0 Decorate 82(g_tTex1du4) DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 56d83be9..dd47567a 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp uint) 0:65 'sizeQueryTemp' (temp uint) 0:65 textureSize (temp uint) -0:65 'g_tTex1df4' (uniform texture1D) +0:65 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:65 move second child to first child (temp uint) 0:65 'WidthU' (temp uint) 0:65 'sizeQueryTemp' (temp uint) @@ -17,7 +17,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'sizeQueryTemp' (temp uint) 0:66 textureSize (temp uint) -0:66 'g_tTex1df4' (uniform texture1D) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:66 Constant: 0:66 6 (const uint) 0:66 move second child to first child (temp uint) @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'NumberOfLevelsU' (temp uint) 0:66 textureQueryLevels (temp uint) -0:66 'g_tTex1df4' (uniform texture1D) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'sizeQueryTemp' (temp uint) @@ -1063,8 +1063,8 @@ gl_FragCoord origin is upper left 0:279 Branch: Return with expression 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -1106,7 +1106,7 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp uint) 0:65 'sizeQueryTemp' (temp uint) 0:65 textureSize (temp uint) -0:65 'g_tTex1df4' (uniform texture1D) +0:65 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:65 move second child to first child (temp uint) 0:65 'WidthU' (temp uint) 0:65 'sizeQueryTemp' (temp uint) @@ -1114,7 +1114,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'sizeQueryTemp' (temp uint) 0:66 textureSize (temp uint) -0:66 'g_tTex1df4' (uniform texture1D) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:66 Constant: 0:66 6 (const uint) 0:66 move second child to first child (temp uint) @@ -1123,7 +1123,7 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp uint) 0:66 'NumberOfLevelsU' (temp uint) 0:66 textureQueryLevels (temp uint) -0:66 'g_tTex1df4' (uniform texture1D) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'sizeQueryTemp' (temp uint) @@ -2160,8 +2160,8 @@ gl_FragCoord origin is upper left 0:279 Branch: Return with expression 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -2291,6 +2291,7 @@ gl_FragCoord origin is upper left Name 524 "psout" Name 537 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 57(g_tTex1df4a) DescriptorSet 0 @@ -2319,6 +2320,7 @@ gl_FragCoord origin is upper left Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 537(g_sSamp) DescriptorSet 0 + Decorate 537(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 27d4dbe1..9170402f 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -8,7 +8,7 @@ Shader version: 450 0:21 move second child to first child (temp uint) 0:21 'sizeQueryTemp' (temp uint) 0:21 textureSize (temp uint) -0:21 'g_tTex1df4' (uniform texture1D) +0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:21 move second child to first child (temp uint) 0:21 'WidthU' (temp uint) 0:21 'sizeQueryTemp' (temp uint) @@ -16,7 +16,7 @@ Shader version: 450 0:22 move second child to first child (temp uint) 0:22 'sizeQueryTemp' (temp uint) 0:22 textureSize (temp uint) -0:22 'g_tTex1df4' (uniform texture1D) +0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:22 Constant: 0:22 6 (const uint) 0:22 move second child to first child (temp uint) @@ -25,7 +25,7 @@ Shader version: 450 0:22 move second child to first child (temp uint) 0:22 'NumberOfLevelsU' (temp uint) 0:22 textureQueryLevels (temp uint) -0:22 'g_tTex1df4' (uniform texture1D) +0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) 0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) 0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) @@ -39,8 +39,8 @@ Shader version: 450 0:26 Branch: Return with expression 0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) Linked vertex stage: @@ -55,7 +55,7 @@ Shader version: 450 0:21 move second child to first child (temp uint) 0:21 'sizeQueryTemp' (temp uint) 0:21 textureSize (temp uint) -0:21 'g_tTex1df4' (uniform texture1D) +0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:21 move second child to first child (temp uint) 0:21 'WidthU' (temp uint) 0:21 'sizeQueryTemp' (temp uint) @@ -63,7 +63,7 @@ Shader version: 450 0:22 move second child to first child (temp uint) 0:22 'sizeQueryTemp' (temp uint) 0:22 textureSize (temp uint) -0:22 'g_tTex1df4' (uniform texture1D) +0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:22 Constant: 0:22 6 (const uint) 0:22 move second child to first child (temp uint) @@ -72,7 +72,7 @@ Shader version: 450 0:22 move second child to first child (temp uint) 0:22 'NumberOfLevelsU' (temp uint) 0:22 textureQueryLevels (temp uint) -0:22 'g_tTex1df4' (uniform texture1D) +0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) 0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) 0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) @@ -86,8 +86,8 @@ Shader version: 450 0:26 Branch: Return with expression 0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) // Module Version 10000 // Generated by (magic number): 80001 @@ -111,8 +111,10 @@ Shader version: 450 Name 29 "vsout" Name 39 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord Decorate 39(g_sSamp) DescriptorSet 0 + Decorate 39(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index c1bb40ec..e2cf6feb 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -46,7 +46,7 @@ ERROR: node is still EOpNull! 0:22 Branch: Return with expression 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) @@ -96,7 +96,7 @@ ERROR: node is still EOpNull! 0:22 Branch: Return with expression 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 969bd7ff..c9f4c91c 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:54 Branch: Return with expression 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) 0:? 'g_tTex2dmsu4' (uniform utexture2DMS) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:54 Branch: Return with expression 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) 0:? 'g_tTex2dmsu4' (uniform utexture2DMS) @@ -259,6 +259,7 @@ gl_FragCoord origin is upper left Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 95(g_sSamp) DescriptorSet 0 + Decorate 95(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 16e30662..ea7e3475 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -109,8 +109,8 @@ gl_FragCoord origin is upper left 0:70 Branch: Return with expression 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -254,8 +254,8 @@ gl_FragCoord origin is upper left 0:70 Branch: Return with expression 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -340,7 +340,9 @@ gl_FragCoord origin is upper left Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 90(g_sSamp) DescriptorSet 0 + Decorate 90(g_sSamp) Binding 0 Decorate 93(g_tTex1df4) DescriptorSet 0 + Decorate 93(g_tTex1df4) Binding 0 Decorate 96(g_tTex1di4) DescriptorSet 0 Decorate 99(g_tTex1du4) DescriptorSet 0 Decorate 102(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index bae29aa1..54f964e2 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -6,7 +6,7 @@ gl_FragCoord origin is upper left 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) -0:52 'g_tTex1df4' (uniform texture1D) +0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 'c2' (uniform 2-component vector of int) 0:52 Sequence @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:75 Branch: Return with expression 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) -0:52 'g_tTex1df4' (uniform texture1D) +0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 'c2' (uniform 2-component vector of int) 0:52 Sequence @@ -320,8 +320,8 @@ gl_FragCoord origin is upper left 0:75 Branch: Return with expression 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -399,6 +399,7 @@ gl_FragCoord origin is upper left Name 161 "o3" Name 162 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 Decorate 37(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex2df4) DescriptorSet 0 @@ -409,6 +410,7 @@ gl_FragCoord origin is upper left Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 127(g_tTexcdi4) DescriptorSet 0 Decorate 130(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index d393dba5..cd4fea53 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -5,7 +5,7 @@ Shader version: 450 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) -0:51 'g_tTex1df4' (uniform texture1D) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) 0:51 'c2' (uniform 2-component vector of int) 0:51 Sequence @@ -134,8 +134,8 @@ Shader version: 450 0:69 Branch: Return with expression 0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -175,7 +175,7 @@ Shader version: 450 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) -0:51 'g_tTex1df4' (uniform texture1D) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) 0:51 'c2' (uniform 2-component vector of int) 0:51 Sequence @@ -304,8 +304,8 @@ Shader version: 450 0:69 Branch: Return with expression 0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -381,6 +381,7 @@ Shader version: 450 Name 158 "o3" Name 159 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 Decorate 37(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex2df4) DescriptorSet 0 @@ -391,6 +392,7 @@ Shader version: 450 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord Decorate 118(g_sSamp) DescriptorSet 0 + Decorate 118(g_sSamp) Binding 0 Decorate 121(g_tTexcdf4) DescriptorSet 0 Decorate 124(g_tTexcdi4) DescriptorSet 0 Decorate 127(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index f00962bc..8c77675c 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:37 Branch: Return with expression 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_tTexbf4_test' (uniform samplerBuffer) +0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) 0:? 'g_tTexbi4' (uniform isamplerBuffer) 0:? 'g_tTexbu4' (uniform usamplerBuffer) @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:37 Branch: Return with expression 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_tTexbf4_test' (uniform samplerBuffer) +0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) 0:? 'g_tTexbi4' (uniform isamplerBuffer) 0:? 'g_tTexbu4' (uniform usamplerBuffer) @@ -153,6 +153,7 @@ gl_FragCoord origin is upper left Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 56(g_tTexbf4_test) DescriptorSet 0 + Decorate 56(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index fe7330ac..da9f2e43 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -6,7 +6,7 @@ gl_FragCoord origin is upper left 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) -0:52 'g_tTex1df4' (uniform texture1D) +0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 'c2' (uniform 2-component vector of int) 0:52 Sequence @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:75 Branch: Return with expression 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) -0:52 'g_tTex1df4' (uniform texture1D) +0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 'c2' (uniform 2-component vector of int) 0:52 Sequence @@ -338,8 +338,8 @@ gl_FragCoord origin is upper left 0:75 Branch: Return with expression 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -418,6 +418,7 @@ gl_FragCoord origin is upper left Name 170 "c1" Name 171 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 40(g_tTex1du4) DescriptorSet 0 Decorate 51(g_tTex2df4) DescriptorSet 0 @@ -428,6 +429,7 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 133(g_sSamp) DescriptorSet 0 + Decorate 133(g_sSamp) Binding 0 Decorate 136(g_tTexcdf4) DescriptorSet 0 Decorate 139(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 16c64a83..97c164cd 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -115,8 +115,8 @@ gl_FragCoord origin is upper left 0:68 Branch: Return with expression 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -266,8 +266,8 @@ gl_FragCoord origin is upper left 0:68 Branch: Return with expression 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -353,7 +353,9 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 99(g_sSamp) DescriptorSet 0 + Decorate 99(g_sSamp) Binding 0 Decorate 102(g_tTex1df4) DescriptorSet 0 + Decorate 102(g_tTex1df4) Binding 0 Decorate 105(g_tTex1di4) DescriptorSet 0 Decorate 108(g_tTex1du4) DescriptorSet 0 Decorate 111(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 8e0cd618..6336cfa2 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 texture (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:28 texture (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left 0:29 texture (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -52,7 +52,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -124,9 +124,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 texture (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:28 texture (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:29 texture (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -265,9 +265,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -315,7 +315,9 @@ gl_FragCoord origin is upper left Name 122 "psout" Name 131 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 31(g_tTex1di4) DescriptorSet 0 Decorate 45(g_tTex1du4) DescriptorSet 0 Decorate 56(g_tTex2df4) DescriptorSet 0 @@ -326,6 +328,7 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 131(g_tTex1df4a) DescriptorSet 0 + Decorate 131(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 3a94ee52..feb64613 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:70 'txval10' (temp 4-component vector of float) 0:70 texture (global 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) -0:70 'g_tTex1df4' (uniform texture1D) -0:70 'g_sSamp' (uniform sampler) +0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:70 Constant: 0:70 0.100000 0:71 Sequence @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:71 texture (global 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) -0:71 'g_sSamp' (uniform sampler) +0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:71 Constant: 0:71 0.200000 0:72 Sequence @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:72 texture (global 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) -0:72 'g_sSamp' (uniform sampler) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:72 Constant: 0:72 0.300000 0:74 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:74 texture (global 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) -0:74 'g_sSamp' (uniform sampler) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left 0:75 texture (global 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) -0:75 'g_sSamp' (uniform sampler) +0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -144,7 +144,7 @@ gl_FragCoord origin is upper left 0:76 texture (global 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) -0:76 'g_sSamp' (uniform sampler) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:78 texture (global 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) -0:78 'g_sSamp' (uniform sampler) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -165,7 +165,7 @@ gl_FragCoord origin is upper left 0:79 texture (global 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) -0:79 'g_sSamp' (uniform sampler) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:80 texture (global 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) -0:80 'g_sSamp' (uniform sampler) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -187,7 +187,7 @@ gl_FragCoord origin is upper left 0:82 texture (global 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) -0:82 'g_sSamp' (uniform sampler) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:83 texture (global 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) -0:83 'g_sSamp' (uniform sampler) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -209,7 +209,7 @@ gl_FragCoord origin is upper left 0:84 texture (global 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) -0:84 'g_sSamp' (uniform sampler) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -234,11 +234,11 @@ gl_FragCoord origin is upper left 0:89 Branch: Return with expression 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -350,8 +350,8 @@ gl_FragCoord origin is upper left 0:70 'txval10' (temp 4-component vector of float) 0:70 texture (global 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) -0:70 'g_tTex1df4' (uniform texture1D) -0:70 'g_sSamp' (uniform sampler) +0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:70 Constant: 0:70 0.100000 0:71 Sequence @@ -360,7 +360,7 @@ gl_FragCoord origin is upper left 0:71 texture (global 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) -0:71 'g_sSamp' (uniform sampler) +0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:71 Constant: 0:71 0.200000 0:72 Sequence @@ -369,7 +369,7 @@ gl_FragCoord origin is upper left 0:72 texture (global 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) -0:72 'g_sSamp' (uniform sampler) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:72 Constant: 0:72 0.300000 0:74 Sequence @@ -378,7 +378,7 @@ gl_FragCoord origin is upper left 0:74 texture (global 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) -0:74 'g_sSamp' (uniform sampler) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -388,7 +388,7 @@ gl_FragCoord origin is upper left 0:75 texture (global 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) -0:75 'g_sSamp' (uniform sampler) +0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -398,7 +398,7 @@ gl_FragCoord origin is upper left 0:76 texture (global 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) -0:76 'g_sSamp' (uniform sampler) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -408,7 +408,7 @@ gl_FragCoord origin is upper left 0:78 texture (global 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) -0:78 'g_sSamp' (uniform sampler) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -419,7 +419,7 @@ gl_FragCoord origin is upper left 0:79 texture (global 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) -0:79 'g_sSamp' (uniform sampler) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -430,7 +430,7 @@ gl_FragCoord origin is upper left 0:80 texture (global 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) -0:80 'g_sSamp' (uniform sampler) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -441,7 +441,7 @@ gl_FragCoord origin is upper left 0:82 texture (global 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) -0:82 'g_sSamp' (uniform sampler) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -452,7 +452,7 @@ gl_FragCoord origin is upper left 0:83 texture (global 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) -0:83 'g_sSamp' (uniform sampler) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -463,7 +463,7 @@ gl_FragCoord origin is upper left 0:84 texture (global 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) -0:84 'g_sSamp' (uniform sampler) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -488,11 +488,11 @@ gl_FragCoord origin is upper left 0:89 Branch: Return with expression 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -564,7 +564,9 @@ gl_FragCoord origin is upper left Name 182 "g_sSamp2D_b" Name 183 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 + Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 + Decorate 45(g_sSamp) Binding 0 Decorate 56(g_tTex1di4) DescriptorSet 0 Decorate 69(g_tTex1du4) DescriptorSet 0 Decorate 79(g_tTex2df4) DescriptorSet 0 @@ -580,6 +582,7 @@ gl_FragCoord origin is upper left Decorate 181(g_sSamp2d) DescriptorSet 0 Decorate 182(g_sSamp2D_b) DescriptorSet 0 Decorate 183(g_tTex1df4a) DescriptorSet 0 + Decorate 183(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 42fe084d..ce207773 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:32 textureOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:33 textureOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:35 textureOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:36 textureOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:37 textureOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:39 textureOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:40 textureOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:41 textureOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -142,9 +142,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -172,8 +172,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:32 textureOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:33 textureOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:35 textureOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -219,7 +219,7 @@ gl_FragCoord origin is upper left 0:36 textureOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:37 textureOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:39 textureOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:40 textureOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -275,7 +275,7 @@ gl_FragCoord origin is upper left 0:41 textureOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -304,9 +304,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -359,7 +359,9 @@ gl_FragCoord origin is upper left Name 143 "g_tTexcdi4" Name 146 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 @@ -370,6 +372,7 @@ gl_FragCoord origin is upper left Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 137(g_tTex1df4a) DescriptorSet 0 + Decorate 137(g_tTex1df4a) Binding 1 Decorate 140(g_tTexcdf4) DescriptorSet 0 Decorate 143(g_tTexcdi4) DescriptorSet 0 Decorate 146(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index ed3838ff..008ba944 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:24 textureOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:25 textureOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:27 textureOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:28 textureOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -75,7 +75,7 @@ gl_FragCoord origin is upper left 0:29 textureOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -103,9 +103,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -127,8 +127,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -140,7 +140,7 @@ gl_FragCoord origin is upper left 0:24 textureOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:25 textureOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:27 textureOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -178,7 +178,7 @@ gl_FragCoord origin is upper left 0:28 textureOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -192,7 +192,7 @@ gl_FragCoord origin is upper left 0:29 textureOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -220,9 +220,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -260,7 +260,9 @@ gl_FragCoord origin is upper left Name 95 "psout" Name 103 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 32(g_tTex1di4) DescriptorSet 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 59(g_tTex2df4) DescriptorSet 0 @@ -268,6 +270,7 @@ gl_FragCoord origin is upper left Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 37022698..b6725441 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 texture (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:28 texture (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:29 texture (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -142,9 +142,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 texture (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:28 texture (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:29 texture (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -219,7 +219,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -301,9 +301,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -351,7 +351,9 @@ gl_FragCoord origin is upper left Name 122 "psout" Name 131 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 32(g_tTex1di4) DescriptorSet 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 57(g_tTex2df4) DescriptorSet 0 @@ -362,6 +364,7 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 131(g_tTex1df4a) DescriptorSet 0 + Decorate 131(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 97d756e7..8161a59f 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:39 texture (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:40 texture (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:41 texture (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:43 texture (global 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:44 texture (global 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:45 texture (global 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -172,9 +172,9 @@ gl_FragCoord origin is upper left 0:50 Branch: Return with expression 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -202,8 +202,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 texture (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:32 texture (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -225,7 +225,7 @@ gl_FragCoord origin is upper left 0:33 texture (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -236,7 +236,7 @@ gl_FragCoord origin is upper left 0:35 texture (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:36 texture (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:37 texture (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:39 texture (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:40 texture (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:41 texture (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -311,7 +311,7 @@ gl_FragCoord origin is upper left 0:43 texture (global 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:44 texture (global 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:45 texture (global 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -364,9 +364,9 @@ gl_FragCoord origin is upper left 0:50 Branch: Return with expression 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -422,7 +422,9 @@ gl_FragCoord origin is upper left Name 145 "psout" Name 155 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 @@ -436,6 +438,7 @@ gl_FragCoord origin is upper left Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 155(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 4219bbcd..8c5726ce 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:32 textureOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:33 textureOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:35 textureOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:36 textureOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:37 textureOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:39 textureOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:40 textureOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:41 textureOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -160,9 +160,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -190,8 +190,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:32 textureOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:33 textureOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:35 textureOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:36 textureOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:37 textureOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -275,7 +275,7 @@ gl_FragCoord origin is upper left 0:39 textureOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -292,7 +292,7 @@ gl_FragCoord origin is upper left 0:40 textureOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -309,7 +309,7 @@ gl_FragCoord origin is upper left 0:41 textureOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -340,9 +340,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -395,7 +395,9 @@ gl_FragCoord origin is upper left Name 143 "g_tTexcdi4" Name 146 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 43(g_tTex1du4) DescriptorSet 0 Decorate 53(g_tTex2df4) DescriptorSet 0 @@ -406,6 +408,7 @@ gl_FragCoord origin is upper left Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 137(g_tTex1df4a) DescriptorSet 0 + Decorate 137(g_tTex1df4a) Binding 1 Decorate 140(g_tTexcdf4) DescriptorSet 0 Decorate 143(g_tTexcdi4) DescriptorSet 0 Decorate 146(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 925c40ec..09335947 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:24 textureOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:25 textureOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:27 textureOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:28 textureOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:29 textureOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -115,9 +115,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:24 textureOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -168,7 +168,7 @@ gl_FragCoord origin is upper left 0:25 textureOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:27 textureOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:28 textureOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:29 textureOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -244,9 +244,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -284,7 +284,9 @@ gl_FragCoord origin is upper left Name 95 "psout" Name 103 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 33(g_tTex1di4) DescriptorSet 0 Decorate 48(g_tTex1du4) DescriptorSet 0 Decorate 60(g_tTex2df4) DescriptorSet 0 @@ -292,6 +294,7 @@ gl_FragCoord origin is upper left Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 6114c0f9..1b2d27f2 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:42 texture (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:43 texture (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:44 texture (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:47 texture (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:48 texture (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:49 texture (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:52 texture (global float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) -0:52 'g_sSamp' (uniform sampler) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:52 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -107,7 +107,7 @@ gl_FragCoord origin is upper left 0:53 texture (global float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -122,7 +122,7 @@ gl_FragCoord origin is upper left 0:54 texture (global float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:59 Branch: Return with expression 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:42 texture (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:43 texture (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:44 texture (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:47 texture (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -243,7 +243,7 @@ gl_FragCoord origin is upper left 0:48 texture (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:49 texture (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:52 texture (global float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) -0:52 'g_sSamp' (uniform sampler) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:52 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -286,7 +286,7 @@ gl_FragCoord origin is upper left 0:53 texture (global float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -301,7 +301,7 @@ gl_FragCoord origin is upper left 0:54 texture (global float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -330,8 +330,8 @@ gl_FragCoord origin is upper left 0:59 Branch: Return with expression 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -403,6 +403,7 @@ gl_FragCoord origin is upper left Name 176 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 32(g_tTex1di4a) DescriptorSet 0 Decorate 45(g_tTex1du4a) DescriptorSet 0 Decorate 57(g_tTex2df4a) DescriptorSet 0 @@ -413,6 +414,7 @@ gl_FragCoord origin is upper left Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 143(g_tTex1df4) DescriptorSet 0 + Decorate 143(g_tTex1df4) Binding 0 Decorate 146(g_tTex1di4) DescriptorSet 0 Decorate 149(g_tTex1du4) DescriptorSet 0 Decorate 152(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index f0528de3..3068030d 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:42 'r00' (temp float) 0:42 texture (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:43 texture (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:44 texture (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:47 texture (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:48 texture (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:49 texture (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:53 texture (global float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:54 texture (global float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:55 texture (global float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) -0:55 'g_sSamp' (uniform sampler) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:55 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:60 Branch: Return with expression 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -180,8 +180,8 @@ gl_FragCoord origin is upper left 0:42 'r00' (temp float) 0:42 texture (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:43 texture (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:44 texture (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:47 texture (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:48 texture (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -243,7 +243,7 @@ gl_FragCoord origin is upper left 0:49 texture (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -256,7 +256,7 @@ gl_FragCoord origin is upper left 0:53 texture (global float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -270,7 +270,7 @@ gl_FragCoord origin is upper left 0:54 texture (global float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:55 texture (global float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) -0:55 'g_sSamp' (uniform sampler) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:55 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -312,8 +312,8 @@ gl_FragCoord origin is upper left 0:60 Branch: Return with expression 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -384,7 +384,9 @@ gl_FragCoord origin is upper left Name 171 "g_tTexcdi4a" Name 174 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 28(g_tTex1di4) DescriptorSet 0 Decorate 40(g_tTex1du4) DescriptorSet 0 Decorate 51(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 04d5972e..df298da0 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:42 'r01' (temp float) 0:42 textureOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:43 textureOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:44 textureOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:47 textureOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:48 textureOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:49 textureOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -115,8 +115,8 @@ gl_FragCoord origin is upper left 0:65 Branch: Return with expression 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -153,8 +153,8 @@ gl_FragCoord origin is upper left 0:42 'r01' (temp float) 0:42 textureOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -168,7 +168,7 @@ gl_FragCoord origin is upper left 0:43 textureOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:44 textureOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -196,7 +196,7 @@ gl_FragCoord origin is upper left 0:47 textureOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -212,7 +212,7 @@ gl_FragCoord origin is upper left 0:48 textureOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -228,7 +228,7 @@ gl_FragCoord origin is upper left 0:49 textureOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -258,8 +258,8 @@ gl_FragCoord origin is upper left 0:65 Branch: Return with expression 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -327,7 +327,9 @@ gl_FragCoord origin is upper left Name 145 "g_tTexcdi4a" Name 148 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 41(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index ebafd9ed..5d420730 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:42 textureOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 textureOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:44 textureOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:47 textureOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:48 textureOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:49 textureOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -121,8 +121,8 @@ gl_FragCoord origin is upper left 0:66 Branch: Return with expression 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -160,7 +160,7 @@ gl_FragCoord origin is upper left 0:42 textureOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -175,7 +175,7 @@ gl_FragCoord origin is upper left 0:43 textureOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:44 textureOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:47 textureOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -222,7 +222,7 @@ gl_FragCoord origin is upper left 0:48 textureOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:49 textureOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -270,8 +270,8 @@ gl_FragCoord origin is upper left 0:66 Branch: Return with expression 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -340,6 +340,7 @@ gl_FragCoord origin is upper left Name 154 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 33(g_tTex1di4a) DescriptorSet 0 Decorate 46(g_tTex1du4a) DescriptorSet 0 Decorate 58(g_tTex2df4a) DescriptorSet 0 @@ -347,6 +348,7 @@ gl_FragCoord origin is upper left Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 112(g_tTex1df4) DescriptorSet 0 + Decorate 112(g_tTex1df4) Binding 0 Decorate 115(g_tTex1di4) DescriptorSet 0 Decorate 118(g_tTex1du4) DescriptorSet 0 Decorate 121(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index afe088ff..c54e2d5e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:42 textureLod (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 textureLod (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:47 textureLod (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:48 textureLod (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -88,7 +88,7 @@ gl_FragCoord origin is upper left 0:49 textureLod (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:52 textureLod (global float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) -0:52 'g_sSamp' (uniform sampler) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:52 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:53 textureLod (global float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -138,7 +138,7 @@ gl_FragCoord origin is upper left 0:54 textureLod (global float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:59 Branch: Return with expression 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -208,7 +208,7 @@ gl_FragCoord origin is upper left 0:42 textureLod (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -223,7 +223,7 @@ gl_FragCoord origin is upper left 0:43 textureLod (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -238,7 +238,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -253,7 +253,7 @@ gl_FragCoord origin is upper left 0:47 textureLod (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:48 textureLod (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:49 textureLod (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -301,7 +301,7 @@ gl_FragCoord origin is upper left 0:52 textureLod (global float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) -0:52 'g_sSamp' (uniform sampler) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:52 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -318,7 +318,7 @@ gl_FragCoord origin is upper left 0:53 textureLod (global float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -335,7 +335,7 @@ gl_FragCoord origin is upper left 0:54 textureLod (global float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -366,8 +366,8 @@ gl_FragCoord origin is upper left 0:59 Branch: Return with expression 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -439,6 +439,7 @@ gl_FragCoord origin is upper left Name 177 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 33(g_tTex1di4a) DescriptorSet 0 Decorate 46(g_tTex1du4a) DescriptorSet 0 Decorate 58(g_tTex2df4a) DescriptorSet 0 @@ -449,6 +450,7 @@ gl_FragCoord origin is upper left Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex1df4) DescriptorSet 0 + Decorate 144(g_tTex1df4) Binding 0 Decorate 147(g_tTex1di4) DescriptorSet 0 Decorate 150(g_tTex1du4) DescriptorSet 0 Decorate 153(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 324db087..1fbdb489 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:42 'r00' (temp float) 0:42 textureLod (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:43 textureLod (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:47 textureLod (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:48 textureLod (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:49 textureLod (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:53 textureLod (global float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:54 textureLod (global float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -130,7 +130,7 @@ gl_FragCoord origin is upper left 0:55 textureLod (global float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) -0:55 'g_sSamp' (uniform sampler) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:55 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:60 Branch: Return with expression 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -198,8 +198,8 @@ gl_FragCoord origin is upper left 0:42 'r00' (temp float) 0:42 textureLod (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -213,7 +213,7 @@ gl_FragCoord origin is upper left 0:43 textureLod (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:47 textureLod (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -256,7 +256,7 @@ gl_FragCoord origin is upper left 0:48 textureLod (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:49 textureLod (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -286,7 +286,7 @@ gl_FragCoord origin is upper left 0:53 textureLod (global float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) -0:53 'g_sSamp' (uniform sampler) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:53 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:54 textureLod (global float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) -0:54 'g_sSamp' (uniform sampler) +0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:54 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -318,7 +318,7 @@ gl_FragCoord origin is upper left 0:55 textureLod (global float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) -0:55 'g_sSamp' (uniform sampler) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:55 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -348,8 +348,8 @@ gl_FragCoord origin is upper left 0:60 Branch: Return with expression 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -420,7 +420,9 @@ gl_FragCoord origin is upper left Name 172 "g_tTexcdi4a" Name 175 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 41(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 0da8ef0c..68d07d5d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:42 'r01' (temp float) 0:42 textureLodOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:43 textureLodOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:44 textureLodOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:47 textureLodOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:48 textureLodOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:49 textureLodOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -127,8 +127,8 @@ gl_FragCoord origin is upper left 0:65 Branch: Return with expression 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -165,8 +165,8 @@ gl_FragCoord origin is upper left 0:42 'r01' (temp float) 0:42 textureLodOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) -0:42 'g_tTex1df4' (uniform texture1D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec2 (temp float) 0:42 Constant: 0:42 0.100000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:43 textureLodOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec2 (temp float) 0:43 Constant: 0:43 0.100000 @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:44 textureLodOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec2 (temp float) 0:44 Constant: 0:44 0.100000 @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:47 textureLodOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:48 textureLodOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -250,7 +250,7 @@ gl_FragCoord origin is upper left 0:49 textureLodOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -282,8 +282,8 @@ gl_FragCoord origin is upper left 0:65 Branch: Return with expression 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -351,7 +351,9 @@ gl_FragCoord origin is upper left Name 146 "g_tTexcdi4a" Name 149 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 + Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 53(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 0e26ce44..627b0238 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:42 textureLodOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:43 textureLodOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -45,7 +45,7 @@ gl_FragCoord origin is upper left 0:44 textureLodOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:47 textureLodOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -81,7 +81,7 @@ gl_FragCoord origin is upper left 0:48 textureLodOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:49 textureLodOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:66 Branch: Return with expression 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:42 textureLodOffset (global float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:42 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -189,7 +189,7 @@ gl_FragCoord origin is upper left 0:43 textureLodOffset (global float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:43 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:44 textureLodOffset (global float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:44 Construct vec3 (temp float) 0:? Constant: 0:? 0.100000 @@ -223,7 +223,7 @@ gl_FragCoord origin is upper left 0:47 textureLodOffset (global float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) -0:47 'g_sSamp' (uniform sampler) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:47 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:48 textureLodOffset (global float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) -0:48 'g_sSamp' (uniform sampler) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:48 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:49 textureLodOffset (global float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) -0:49 'g_sSamp' (uniform sampler) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:49 Construct vec4 (temp float) 0:? Constant: 0:? 0.100000 @@ -294,8 +294,8 @@ gl_FragCoord origin is upper left 0:66 Branch: Return with expression 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -364,6 +364,7 @@ gl_FragCoord origin is upper left Name 155 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 Decorate 34(g_tTex1di4a) DescriptorSet 0 Decorate 47(g_tTex1du4a) DescriptorSet 0 Decorate 59(g_tTex2df4a) DescriptorSet 0 @@ -371,6 +372,7 @@ gl_FragCoord origin is upper left Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 113(g_tTex1df4) DescriptorSet 0 + Decorate 113(g_tTex1df4) Binding 0 Decorate 116(g_tTex1di4) DescriptorSet 0 Decorate 119(g_tTex1du4) DescriptorSet 0 Decorate 122(g_tTex2df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 0fbb4134..6da919a9 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureGrad (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:28 textureGrad (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:29 textureGrad (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:31 textureGrad (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:32 textureGrad (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:33 textureGrad (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:35 textureGrad (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:36 textureGrad (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -144,7 +144,7 @@ gl_FragCoord origin is upper left 0:37 textureGrad (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -178,9 +178,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -205,8 +205,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureGrad (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -220,7 +220,7 @@ gl_FragCoord origin is upper left 0:28 textureGrad (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -234,7 +234,7 @@ gl_FragCoord origin is upper left 0:29 textureGrad (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:31 textureGrad (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -265,7 +265,7 @@ gl_FragCoord origin is upper left 0:32 textureGrad (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:33 textureGrad (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -299,7 +299,7 @@ gl_FragCoord origin is upper left 0:35 textureGrad (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -319,7 +319,7 @@ gl_FragCoord origin is upper left 0:36 textureGrad (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -339,7 +339,7 @@ gl_FragCoord origin is upper left 0:37 textureGrad (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -373,9 +373,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -423,7 +423,9 @@ gl_FragCoord origin is upper left Name 115 "psout" Name 125 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 33(g_tTex1di4) DescriptorSet 0 Decorate 45(g_tTex1du4) DescriptorSet 0 Decorate 54(g_tTex2df4) DescriptorSet 0 @@ -434,6 +436,7 @@ gl_FragCoord origin is upper left Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 125(g_tTex1df4a) DescriptorSet 0 + Decorate 125(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 97b08f7c..0685dc2e 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureGrad (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:32 textureGrad (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:33 textureGrad (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:35 textureGrad (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:36 textureGrad (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:37 textureGrad (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:39 textureGrad (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -117,7 +117,7 @@ gl_FragCoord origin is upper left 0:40 textureGrad (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -136,7 +136,7 @@ gl_FragCoord origin is upper left 0:41 textureGrad (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -155,7 +155,7 @@ gl_FragCoord origin is upper left 0:43 textureGrad (global 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -174,7 +174,7 @@ gl_FragCoord origin is upper left 0:44 textureGrad (global 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:45 textureGrad (global 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -226,9 +226,9 @@ gl_FragCoord origin is upper left 0:50 Branch: Return with expression 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureGrad (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -270,7 +270,7 @@ gl_FragCoord origin is upper left 0:32 textureGrad (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -283,7 +283,7 @@ gl_FragCoord origin is upper left 0:33 textureGrad (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -296,7 +296,7 @@ gl_FragCoord origin is upper left 0:35 textureGrad (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -312,7 +312,7 @@ gl_FragCoord origin is upper left 0:36 textureGrad (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -328,7 +328,7 @@ gl_FragCoord origin is upper left 0:37 textureGrad (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -344,7 +344,7 @@ gl_FragCoord origin is upper left 0:39 textureGrad (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -363,7 +363,7 @@ gl_FragCoord origin is upper left 0:40 textureGrad (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -382,7 +382,7 @@ gl_FragCoord origin is upper left 0:41 textureGrad (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -401,7 +401,7 @@ gl_FragCoord origin is upper left 0:43 textureGrad (global 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -420,7 +420,7 @@ gl_FragCoord origin is upper left 0:44 textureGrad (global 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -439,7 +439,7 @@ gl_FragCoord origin is upper left 0:45 textureGrad (global 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -472,9 +472,9 @@ gl_FragCoord origin is upper left 0:50 Branch: Return with expression 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -530,7 +530,9 @@ gl_FragCoord origin is upper left Name 150 "psout" Name 160 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 43(g_tTex1du4) DescriptorSet 0 Decorate 53(g_tTex2df4) DescriptorSet 0 @@ -544,6 +546,7 @@ gl_FragCoord origin is upper left Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 160(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 7b4cbde9..eacddae8 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -9,8 +9,8 @@ Shader version: 450 0:30 'txval10' (temp 4-component vector of float) 0:30 textureGrad (global 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) -0:30 'g_tTex1df4' (uniform texture1D) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: @@ -23,7 +23,7 @@ Shader version: 450 0:31 textureGrad (global 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: @@ -36,7 +36,7 @@ Shader version: 450 0:32 textureGrad (global 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: @@ -49,7 +49,7 @@ Shader version: 450 0:34 textureGrad (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,7 +65,7 @@ Shader version: 450 0:35 textureGrad (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -81,7 +81,7 @@ Shader version: 450 0:36 textureGrad (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -97,7 +97,7 @@ Shader version: 450 0:38 textureGrad (global 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -116,7 +116,7 @@ Shader version: 450 0:39 textureGrad (global 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -135,7 +135,7 @@ Shader version: 450 0:40 textureGrad (global 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -154,7 +154,7 @@ Shader version: 450 0:42 textureGrad (global 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -173,7 +173,7 @@ Shader version: 450 0:43 textureGrad (global 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -192,7 +192,7 @@ Shader version: 450 0:44 textureGrad (global 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -218,9 +218,9 @@ Shader version: 450 0:48 Branch: Return with expression 0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -247,8 +247,8 @@ Shader version: 450 0:30 'txval10' (temp 4-component vector of float) 0:30 textureGrad (global 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) -0:30 'g_tTex1df4' (uniform texture1D) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: @@ -261,7 +261,7 @@ Shader version: 450 0:31 textureGrad (global 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: @@ -274,7 +274,7 @@ Shader version: 450 0:32 textureGrad (global 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: @@ -287,7 +287,7 @@ Shader version: 450 0:34 textureGrad (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -303,7 +303,7 @@ Shader version: 450 0:35 textureGrad (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -319,7 +319,7 @@ Shader version: 450 0:36 textureGrad (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -335,7 +335,7 @@ Shader version: 450 0:38 textureGrad (global 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -354,7 +354,7 @@ Shader version: 450 0:39 textureGrad (global 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -373,7 +373,7 @@ Shader version: 450 0:40 textureGrad (global 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -392,7 +392,7 @@ Shader version: 450 0:42 textureGrad (global 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -411,7 +411,7 @@ Shader version: 450 0:43 textureGrad (global 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -430,7 +430,7 @@ Shader version: 450 0:44 textureGrad (global 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -456,9 +456,9 @@ Shader version: 450 0:48 Branch: Return with expression 0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -512,7 +512,9 @@ Shader version: 450 Name 150 "vsout" Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 43(g_tTex1du4) DescriptorSet 0 Decorate 53(g_tTex2df4) DescriptorSet 0 @@ -526,6 +528,7 @@ Shader version: 450 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 6751d1ea..343babc0 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureGradOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:32 textureGradOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:33 textureGradOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:35 textureGradOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -75,7 +75,7 @@ gl_FragCoord origin is upper left 0:36 textureGradOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:37 textureGradOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:39 textureGradOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -136,7 +136,7 @@ gl_FragCoord origin is upper left 0:40 textureGradOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:41 textureGradOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -196,9 +196,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -226,8 +226,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureGradOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:32 textureGradOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:33 textureGradOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:35 textureGradOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -291,7 +291,7 @@ gl_FragCoord origin is upper left 0:36 textureGradOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -310,7 +310,7 @@ gl_FragCoord origin is upper left 0:37 textureGradOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -329,7 +329,7 @@ gl_FragCoord origin is upper left 0:39 textureGradOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -352,7 +352,7 @@ gl_FragCoord origin is upper left 0:40 textureGradOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -375,7 +375,7 @@ gl_FragCoord origin is upper left 0:41 textureGradOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -412,9 +412,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -467,7 +467,9 @@ gl_FragCoord origin is upper left Name 148 "g_tTexcdi4" Name 151 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 31(g_tTex1di4) DescriptorSet 0 Decorate 44(g_tTex1du4) DescriptorSet 0 Decorate 54(g_tTex2df4) DescriptorSet 0 @@ -478,6 +480,7 @@ gl_FragCoord origin is upper left Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 142(g_tTex1df4a) Binding 1 Decorate 145(g_tTexcdf4) DescriptorSet 0 Decorate 148(g_tTexcdi4) DescriptorSet 0 Decorate 151(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index ce80880f..3318e460 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureGradOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:28 textureGradOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:29 textureGradOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:31 textureGradOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:32 textureGradOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:33 textureGradOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -133,9 +133,9 @@ gl_FragCoord origin is upper left 0:38 Branch: Return with expression 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureGradOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:28 textureGradOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:29 textureGradOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -209,7 +209,7 @@ gl_FragCoord origin is upper left 0:31 textureGradOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:32 textureGradOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -249,7 +249,7 @@ gl_FragCoord origin is upper left 0:33 textureGradOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -283,9 +283,9 @@ gl_FragCoord origin is upper left 0:38 Branch: Return with expression 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -330,7 +330,9 @@ gl_FragCoord origin is upper left Name 102 "g_tTexcdi4" Name 105 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 34(g_tTex1di4) DescriptorSet 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 55(g_tTex2df4) DescriptorSet 0 @@ -338,6 +340,7 @@ gl_FragCoord origin is upper left Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 96(g_tTex1df4a) DescriptorSet 0 + Decorate 96(g_tTex1df4a) Binding 1 Decorate 99(g_tTexcdf4) DescriptorSet 0 Decorate 102(g_tTexcdi4) DescriptorSet 0 Decorate 105(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 9d667492..dd042de6 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureLod (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4a' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:28 textureLod (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:29 textureLod (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:31 textureLod (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:32 textureLod (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:33 textureLod (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:35 textureLod (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:36 textureLod (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:37 textureLod (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -142,9 +142,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:27 'txval10' (temp 4-component vector of float) 0:27 textureLod (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) -0:27 'g_tTex1df4a' (uniform texture1DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:28 textureLod (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:29 textureLod (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:31 textureLod (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -219,7 +219,7 @@ gl_FragCoord origin is upper left 0:32 textureLod (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:33 textureLod (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:35 textureLod (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:36 textureLod (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:37 textureLod (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -301,9 +301,9 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4a' (uniform itexture1DArray) 0:? 'g_tTex1du4a' (uniform utexture1DArray) 0:? 'g_tTex2df4a' (uniform texture2DArray) @@ -351,7 +351,9 @@ gl_FragCoord origin is upper left Name 123 "psout" Name 132 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 + Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 32(g_tTex1di4a) DescriptorSet 0 Decorate 46(g_tTex1du4a) DescriptorSet 0 Decorate 57(g_tTex2df4a) DescriptorSet 0 @@ -362,6 +364,7 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 132(g_tTex1df4) DescriptorSet 0 + Decorate 132(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index d0005dfe..52c635d4 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:32 'txval10' (temp 4-component vector of float) 0:32 textureLod (global 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) -0:32 'g_tTex1df4' (uniform texture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.100000 0:32 Constant: @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:33 textureLod (global 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.200000 0:33 Constant: @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:34 textureLod (global 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:34 Constant: 0:34 0.300000 0:34 Constant: @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:36 textureLod (global 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:37 textureLod (global 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:38 textureLod (global 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:40 textureLod (global 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:41 textureLod (global 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:42 textureLod (global 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:45 textureLod (global 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:46 textureLod (global 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) -0:46 'g_sSamp' (uniform sampler) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -172,10 +172,10 @@ gl_FragCoord origin is upper left 0:51 Branch: Return with expression 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -203,8 +203,8 @@ gl_FragCoord origin is upper left 0:32 'txval10' (temp 4-component vector of float) 0:32 textureLod (global 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) -0:32 'g_tTex1df4' (uniform texture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.100000 0:32 Constant: @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:33 textureLod (global 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.200000 0:33 Constant: @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:34 textureLod (global 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:34 Constant: 0:34 0.300000 0:34 Constant: @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:36 textureLod (global 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -249,7 +249,7 @@ gl_FragCoord origin is upper left 0:37 textureLod (global 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:38 textureLod (global 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:40 textureLod (global 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -286,7 +286,7 @@ gl_FragCoord origin is upper left 0:41 textureLod (global 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -299,7 +299,7 @@ gl_FragCoord origin is upper left 0:42 textureLod (global 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -312,7 +312,7 @@ gl_FragCoord origin is upper left 0:44 textureLod (global 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -325,7 +325,7 @@ gl_FragCoord origin is upper left 0:45 textureLod (global 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) -0:45 'g_sSamp' (uniform sampler) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -338,7 +338,7 @@ gl_FragCoord origin is upper left 0:46 textureLod (global 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) -0:46 'g_sSamp' (uniform sampler) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -365,10 +365,10 @@ gl_FragCoord origin is upper left 0:51 Branch: Return with expression 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -425,7 +425,9 @@ gl_FragCoord origin is upper left Name 156 "g_sSamp2d" Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 @@ -440,6 +442,7 @@ gl_FragCoord origin is upper left MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 156(g_sSamp2d) DescriptorSet 0 Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index b8b59027..4bef16d3 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -9,8 +9,8 @@ Shader version: 450 0:30 'txval10' (temp 4-component vector of float) 0:30 textureLod (global 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) -0:30 'g_tTex1df4' (uniform texture1D) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: @@ -21,7 +21,7 @@ Shader version: 450 0:31 textureLod (global 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: @@ -32,7 +32,7 @@ Shader version: 450 0:32 textureLod (global 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: @@ -43,7 +43,7 @@ Shader version: 450 0:34 textureLod (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -55,7 +55,7 @@ Shader version: 450 0:35 textureLod (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -67,7 +67,7 @@ Shader version: 450 0:36 textureLod (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -79,7 +79,7 @@ Shader version: 450 0:38 textureLod (global 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -92,7 +92,7 @@ Shader version: 450 0:39 textureLod (global 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -105,7 +105,7 @@ Shader version: 450 0:40 textureLod (global 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -118,7 +118,7 @@ Shader version: 450 0:42 textureLod (global 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -131,7 +131,7 @@ Shader version: 450 0:43 textureLod (global 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -144,7 +144,7 @@ Shader version: 450 0:44 textureLod (global 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -164,9 +164,9 @@ Shader version: 450 0:48 Branch: Return with expression 0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -193,8 +193,8 @@ Shader version: 450 0:30 'txval10' (temp 4-component vector of float) 0:30 textureLod (global 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) -0:30 'g_tTex1df4' (uniform texture1D) -0:30 'g_sSamp' (uniform sampler) +0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: @@ -205,7 +205,7 @@ Shader version: 450 0:31 textureLod (global 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: @@ -216,7 +216,7 @@ Shader version: 450 0:32 textureLod (global 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: @@ -227,7 +227,7 @@ Shader version: 450 0:34 textureLod (global 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) -0:34 'g_sSamp' (uniform sampler) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -239,7 +239,7 @@ Shader version: 450 0:35 textureLod (global 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -251,7 +251,7 @@ Shader version: 450 0:36 textureLod (global 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -263,7 +263,7 @@ Shader version: 450 0:38 textureLod (global 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) -0:38 'g_sSamp' (uniform sampler) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -276,7 +276,7 @@ Shader version: 450 0:39 textureLod (global 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -289,7 +289,7 @@ Shader version: 450 0:40 textureLod (global 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -302,7 +302,7 @@ Shader version: 450 0:42 textureLod (global 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) -0:42 'g_sSamp' (uniform sampler) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -315,7 +315,7 @@ Shader version: 450 0:43 textureLod (global 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) -0:43 'g_sSamp' (uniform sampler) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -328,7 +328,7 @@ Shader version: 450 0:44 textureLod (global 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) -0:44 'g_sSamp' (uniform sampler) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -348,9 +348,9 @@ Shader version: 450 0:48 Branch: Return with expression 0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -404,7 +404,9 @@ Shader version: 450 Name 146 "vsout" Name 153 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 Decorate 42(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex2df4) DescriptorSet 0 @@ -418,6 +420,7 @@ Shader version: 450 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord Decorate 153(g_tTex1df4a) DescriptorSet 0 + Decorate 153(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 25a77ca8..4f7a1a0d 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureLodOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:32 textureLodOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:33 textureLodOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:35 textureLodOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:36 textureLodOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:37 textureLodOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:39 textureLodOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:40 textureLodOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:41 textureLodOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -160,9 +160,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -190,8 +190,8 @@ gl_FragCoord origin is upper left 0:31 'txval10' (temp 4-component vector of float) 0:31 textureLodOffset (global 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) -0:31 'g_tTex1df4' (uniform texture1D) -0:31 'g_sSamp' (uniform sampler) +0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:32 textureLodOffset (global 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) -0:32 'g_sSamp' (uniform sampler) +0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:33 textureLodOffset (global 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) -0:33 'g_sSamp' (uniform sampler) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:35 textureLodOffset (global 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) -0:35 'g_sSamp' (uniform sampler) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:36 textureLodOffset (global 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) -0:36 'g_sSamp' (uniform sampler) +0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:37 textureLodOffset (global 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) -0:37 'g_sSamp' (uniform sampler) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -275,7 +275,7 @@ gl_FragCoord origin is upper left 0:39 textureLodOffset (global 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) -0:39 'g_sSamp' (uniform sampler) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -292,7 +292,7 @@ gl_FragCoord origin is upper left 0:40 textureLodOffset (global 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) -0:40 'g_sSamp' (uniform sampler) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 @@ -309,7 +309,7 @@ gl_FragCoord origin is upper left 0:41 textureLodOffset (global 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) -0:41 'g_sSamp' (uniform sampler) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 @@ -340,9 +340,9 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1D) -0:? 'g_tTex1df4' (uniform texture1D) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) 0:? 'g_tTex1du4' (uniform utexture1D) 0:? 'g_tTex2df4' (uniform texture2D) @@ -395,7 +395,9 @@ gl_FragCoord origin is upper left Name 144 "g_tTexcdi4" Name 147 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 43(g_tTex1du4) DescriptorSet 0 Decorate 53(g_tTex2df4) DescriptorSet 0 @@ -406,6 +408,7 @@ gl_FragCoord origin is upper left Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 Decorate 141(g_tTexcdf4) DescriptorSet 0 Decorate 144(g_tTexcdi4) DescriptorSet 0 Decorate 147(g_tTexcdu4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 7cdef7fa..0d18428a 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -10,8 +10,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureLodOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:24 textureLodOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:25 textureLodOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:27 textureLodOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:28 textureLodOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:29 textureLodOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -115,9 +115,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:23 'txval10' (temp 4-component vector of float) 0:23 textureLodOffset (global 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) -0:23 'g_tTex1df4' (uniform texture1DArray) -0:23 'g_sSamp' (uniform sampler) +0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) +0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:24 textureLodOffset (global 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) -0:24 'g_sSamp' (uniform sampler) +0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 @@ -168,7 +168,7 @@ gl_FragCoord origin is upper left 0:25 textureLodOffset (global 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) -0:25 'g_sSamp' (uniform sampler) +0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:27 textureLodOffset (global 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) -0:27 'g_sSamp' (uniform sampler) +0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:28 textureLodOffset (global 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) -0:28 'g_sSamp' (uniform sampler) +0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:29 textureLodOffset (global 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) -0:29 'g_sSamp' (uniform sampler) +0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 @@ -244,9 +244,9 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:? Linker Objects -0:? 'g_sSamp' (uniform sampler) -0:? 'g_tTex1df4a' (uniform texture1DArray) -0:? 'g_tTex1df4' (uniform texture1DArray) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:? 'g_tTex1di4' (uniform itexture1DArray) 0:? 'g_tTex1du4' (uniform utexture1DArray) 0:? 'g_tTex2df4' (uniform texture2DArray) @@ -284,7 +284,9 @@ gl_FragCoord origin is upper left Name 96 "psout" Name 104 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 Decorate 33(g_tTex1di4) DescriptorSet 0 Decorate 48(g_tTex1du4) DescriptorSet 0 Decorate 60(g_tTex2df4) DescriptorSet 0 @@ -292,6 +294,7 @@ gl_FragCoord origin is upper left Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 684d4c88..08b41930 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -1,4 +1,7 @@ hlsl.struct.frag +WARNING: 0:26: 'register' : ignoring shader_profile +WARNING: 0:27: 'register' : ignoring shader_profile + Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence @@ -14,8 +17,8 @@ gl_FragCoord origin is upper left 0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) -0:37 ff4: direct index for structure (layout(offset=4 ) temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:37 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression @@ -23,7 +26,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) Linked fragment stage: @@ -44,8 +47,8 @@ gl_FragCoord origin is upper left 0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) -0:37 ff4: direct index for structure (layout(offset=4 ) temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:37 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression @@ -53,7 +56,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(offset=4 ) temp bool ff3, layout(offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/hlsl.float4.frag b/Test/hlsl.float4.frag index df871225..5ae70db0 100644 --- a/Test/hlsl.float4.frag +++ b/Test/hlsl.float4.frag @@ -2,8 +2,8 @@ float4 AmbientColor = float4(1, 0.5, 0, 1); bool ff1 : SV_IsFrontFace; float4 ff2 : packoffset(c0.y); -float4 ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ; -float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) ; +float4 ff3 : packoffset(c0.y) : register(ps_5_0, s0) ; +float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s1) ; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 25c803d6..7989d253 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -23,8 +23,8 @@ struct { sample centroid float2 d; bool ff1 : SV_IsFrontFace; bool ff2 : packoffset(c0.y); - bool ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ; - float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) ; + bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ; + float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) ; } s4; float4 PixelShaderFunction(float4 input) : COLOR0 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index fcaa435a..f8fb2795 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1362" +#define GLSLANG_REVISION "SPIRV99.1365" #define GLSLANG_DATE "29-Jul-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index a6c7ac96..e3e5df73 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2521,10 +2521,10 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) } // post_decls -// : COLON semantic // optional -// COLON PACKOFFSET LEFT_PAREN ... RIGHT_PAREN // optional -// COLON REGISTER // optional -// annotations // optional +// : COLON semantic // optional +// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional +// COLON REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN // optional +// annotations // optional // void HlslGrammar::acceptPostDecls(TType& type) { @@ -2533,6 +2533,7 @@ void HlslGrammar::acceptPostDecls(TType& type) if (acceptTokenClass(EHTokColon)) { HlslToken idToken; if (acceptTokenClass(EHTokPackOffset)) { + // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return; @@ -2558,23 +2559,31 @@ void HlslGrammar::acceptPostDecls(TType& type) expected("semantic or packoffset or register"); return; } else if (*idToken.string == "register") { + // REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return; } - acceptTokenClass(EHTokIdentifier); - acceptTokenClass(EHTokComma); - acceptTokenClass(EHTokIdentifier); - acceptTokenClass(EHTokLeftBracket); - if (peekTokenClass(EHTokIntConstant)) - advanceToken(); - acceptTokenClass(EHTokRightBracket); + HlslToken registerDesc; + if (! acceptIdentifier(registerDesc)) { + expected("register number description"); + return; + } + HlslToken profile; + if (acceptTokenClass(EHTokComma)) { + // then we didn't really see the registerDesc yet, it was + // actually the profile + profile = registerDesc; + if (! acceptIdentifier(registerDesc)) { + expected("register number description"); + return; + } + } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - // TODO: process the register information - // b2 means buffer 2 + parseContext.handleRegister(registerDesc.loc, type, profile.string, *registerDesc.string); } else { // semantic, in idToken.string parseContext.handleSemantic(type, *idToken.string); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 6022e7d9..5989f298 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2135,7 +2135,7 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) } // -// Handle seeing something like ": packoffset( c[Subcomponent][.component] )" +// Handle seeing something like "PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN" // // 'location' has the "c[Subcomponent]" part. // 'component' points to the "component" part, or nullptr if not present. @@ -2155,7 +2155,7 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons } type.getQualifier().layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); - if (component) { + if (component != nullptr) { int componentOffset = 0; switch ((*component)[0]) { case 'x': componentOffset = 0; break; @@ -2174,6 +2174,41 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons } } +// +// Handle seeing something like "REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN" +// +// 'profile' points to the shader_profile part, or nullptr if not present. +// 'desc' is the type# part. +// +void HlslParseContext::handleRegister(const TSourceLoc& loc, TType& type, const glslang::TString* profile, + const glslang::TString& desc) +{ + if (profile != nullptr) + warn(loc, "ignoring shader_profile", "register", ""); + + if (desc.size() < 2) { + error(loc, "expected register type and number", "register", ""); + return; + } + + if (! isdigit(desc[1])) { + error(loc, "expected register number after register type", "register", ""); + return; + } + + switch (desc[0]) { + case 'b': + case 't': + case 'c': + case 's': + type.getQualifier().layoutBinding = atoi(desc.substr(1, desc.size()).c_str()); + break; + default: + warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]); + break; + } +} + // // Same error message for all places assignments don't work. // diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 7a02ebb4..40bf851b 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -96,6 +96,7 @@ public: TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TType& type, const TString& semantic); void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location, const glslang::TString* component); + void handleRegister(const TSourceLoc&, TType& type, const glslang::TString* profile, const glslang::TString& desc); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); From ff13213547a828566e90cda8a846a66f2314f509 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 29 Jul 2016 18:22:22 -0600 Subject: [PATCH 043/217] Front-ends GLSL/HLSL: Fix initializer lists for structs of one member. Single member structs initialized with an initializer list had an incorrect argument for constructor emulation. --- Test/420.tese | 12 + Test/baseResults/150.tesc.out | 234 ++++++++----- Test/baseResults/420.tese.out | 234 ++++++++----- Test/baseResults/hlsl.init.frag.out | 384 +++++++++++++-------- Test/hlsl.init.frag | 12 + glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 10 +- hlsl/hlslParseHelper.cpp | 10 +- 8 files changed, 567 insertions(+), 331 deletions(-) diff --git a/Test/420.tese b/Test/420.tese index 988a26d7..4c3693a8 100644 --- a/Test/420.tese +++ b/Test/420.tese @@ -51,6 +51,18 @@ struct S4 { S3 s[2]; }; +struct Single1 { int f; }; +Single1 single1 = { 10 }; + +struct Single2 { uvec2 v; }; +Single2 single2 = { { 1, 2 } }; + +struct Single3 { Single1 s1; }; +Single3 single3 = { { 3 } }; + +struct Single4 { Single2 s1; }; +Single4 single4 = { { { 4u, 5u } } }; + const S4 constructed = S4(uvec2(1, 2), S3[2](S3(3.0, mat2x3(4.0)), S3(5.0, mat2x3(6.0)))); diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out index 78020e12..1736bf0e 100644 --- a/Test/baseResults/150.tesc.out +++ b/Test/baseResults/150.tesc.out @@ -732,7 +732,7 @@ ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot con ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float' ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}' -ERROR: 0:58: 'initializer list' : wrong number of structure members +ERROR: 0:70: 'initializer list' : wrong number of structure members ERROR: 13 compilation errors. No code generated. @@ -770,51 +770,73 @@ ERROR: node is still EOpNull! 0:42 5.000000 0:42 5.200000 0:42 1.100000 -0:67 Sequence -0:67 move second child to first child (temp 3-component vector of float) -0:67 'av3' (global 3-component vector of float) -0:67 Construct vec3 (global 3-component vector of float) -0:67 'vc1' (global float) -0:67 'vc2' (global float) -0:67 'vc3' (global float) -0:68 Sequence -0:68 move second child to first child (temp 3-component vector of float) -0:68 'bv3' (global 3-component vector of float) -0:68 Construct vec3 (temp 3-component vector of float) -0:68 'vc1' (global float) -0:68 'vc2' (global float) -0:68 'vc3' (global float) -0:70 Function Definition: main( (global void) -0:70 Function Parameters: -0:72 Sequence -0:72 MemoryBarrier (global void) -0:74 Test condition and select (temp void) -0:74 Condition -0:74 Compare Equal (temp bool) -0:74 Constant: -0:74 1 (const uint) -0:74 2 (const uint) -0:74 3.000000 -0:74 4.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 4.000000 -0:74 0.000000 -0:74 5.000000 -0:74 6.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 6.000000 -0:74 0.000000 -0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) -0:74 true case is null -0:76 Test condition and select (temp void) -0:76 Condition -0:76 Constant: -0:76 true (const bool) -0:76 true case is null +0:55 Sequence +0:55 move second child to first child (temp structure{global int f}) +0:55 'single1' (global structure{global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child (temp structure{global 2-component vector of uint v}) +0:58 'single2' (global structure{global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child (temp structure{global structure{global int f} s1}) +0:61 'single3' (global structure{global structure{global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1}) +0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child (temp 3-component vector of float) +0:79 'av3' (global 3-component vector of float) +0:79 Construct vec3 (global 3-component vector of float) +0:79 'vc1' (global float) +0:79 'vc2' (global float) +0:79 'vc3' (global float) +0:80 Sequence +0:80 move second child to first child (temp 3-component vector of float) +0:80 'bv3' (global 3-component vector of float) +0:80 Construct vec3 (temp 3-component vector of float) +0:80 'vc1' (global float) +0:80 'vc2' (global float) +0:80 'vc3' (global float) +0:82 Function Definition: main( (global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier (global void) +0:86 Test condition and select (temp void) +0:86 Condition +0:86 Compare Equal (temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select (temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null 0:? Linker Objects 0:? 'a' (const 2X2 matrix of float) 0:? 1.000000 @@ -840,6 +862,10 @@ ERROR: node is still EOpNull! 0:? 'c3' (global 4X2 matrix of float) 0:? 'd2' (global implicitly-sized array of structure{global float s, global float t}) 0:? 'b5' (global 5-element array of float) +0:? 'single1' (global structure{global int f}) +0:? 'single2' (global structure{global 2-component vector of uint v}) +0:? 'single3' (global structure{global structure{global int f} s1}) +0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) 0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) @@ -1524,51 +1550,73 @@ ERROR: node is still EOpNull! 0:42 5.000000 0:42 5.200000 0:42 1.100000 -0:67 Sequence -0:67 move second child to first child (temp 3-component vector of float) -0:67 'av3' (global 3-component vector of float) -0:67 Construct vec3 (global 3-component vector of float) -0:67 'vc1' (global float) -0:67 'vc2' (global float) -0:67 'vc3' (global float) -0:68 Sequence -0:68 move second child to first child (temp 3-component vector of float) -0:68 'bv3' (global 3-component vector of float) -0:68 Construct vec3 (temp 3-component vector of float) -0:68 'vc1' (global float) -0:68 'vc2' (global float) -0:68 'vc3' (global float) -0:70 Function Definition: main( (global void) -0:70 Function Parameters: -0:72 Sequence -0:72 MemoryBarrier (global void) -0:74 Test condition and select (temp void) -0:74 Condition -0:74 Compare Equal (temp bool) -0:74 Constant: -0:74 1 (const uint) -0:74 2 (const uint) -0:74 3.000000 -0:74 4.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 4.000000 -0:74 0.000000 -0:74 5.000000 -0:74 6.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 6.000000 -0:74 0.000000 -0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) -0:74 true case is null -0:76 Test condition and select (temp void) -0:76 Condition -0:76 Constant: -0:76 true (const bool) -0:76 true case is null +0:55 Sequence +0:55 move second child to first child (temp structure{global int f}) +0:55 'single1' (global structure{global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child (temp structure{global 2-component vector of uint v}) +0:58 'single2' (global structure{global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child (temp structure{global structure{global int f} s1}) +0:61 'single3' (global structure{global structure{global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1}) +0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child (temp 3-component vector of float) +0:79 'av3' (global 3-component vector of float) +0:79 Construct vec3 (global 3-component vector of float) +0:79 'vc1' (global float) +0:79 'vc2' (global float) +0:79 'vc3' (global float) +0:80 Sequence +0:80 move second child to first child (temp 3-component vector of float) +0:80 'bv3' (global 3-component vector of float) +0:80 Construct vec3 (temp 3-component vector of float) +0:80 'vc1' (global float) +0:80 'vc2' (global float) +0:80 'vc3' (global float) +0:82 Function Definition: main( (global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier (global void) +0:86 Test condition and select (temp void) +0:86 Condition +0:86 Compare Equal (temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select (temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null 0:? Linker Objects 0:? 'patchIn' (patch in 4-component vector of float) 0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) @@ -1616,6 +1664,10 @@ ERROR: node is still EOpNull! 0:? 'c3' (global 4X2 matrix of float) 0:? 'd2' (global 1-element array of structure{global float s, global float t}) 0:? 'b5' (global 5-element array of float) +0:? 'single1' (global structure{global int f}) +0:? 'single2' (global structure{global 2-component vector of uint v}) +0:? 'single3' (global structure{global structure{global int f} s1}) +0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) 0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out index fb9bc201..b8379d15 100644 --- a/Test/baseResults/420.tese.out +++ b/Test/baseResults/420.tese.out @@ -12,7 +12,7 @@ ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot con ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float' ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}' -ERROR: 0:58: 'initializer list' : wrong number of structure members +ERROR: 0:70: 'initializer list' : wrong number of structure members ERROR: 13 compilation errors. No code generated. @@ -50,51 +50,73 @@ ERROR: node is still EOpNull! 0:42 5.000000 0:42 5.200000 0:42 1.100000 -0:67 Sequence -0:67 move second child to first child (temp 3-component vector of float) -0:67 'av3' (global 3-component vector of float) -0:67 Construct vec3 (global 3-component vector of float) -0:67 'vc1' (global float) -0:67 'vc2' (global float) -0:67 'vc3' (global float) -0:68 Sequence -0:68 move second child to first child (temp 3-component vector of float) -0:68 'bv3' (global 3-component vector of float) -0:68 Construct vec3 (temp 3-component vector of float) -0:68 'vc1' (global float) -0:68 'vc2' (global float) -0:68 'vc3' (global float) -0:70 Function Definition: main( (global void) -0:70 Function Parameters: -0:72 Sequence -0:72 MemoryBarrier (global void) -0:74 Test condition and select (temp void) -0:74 Condition -0:74 Compare Equal (temp bool) -0:74 Constant: -0:74 1 (const uint) -0:74 2 (const uint) -0:74 3.000000 -0:74 4.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 4.000000 -0:74 0.000000 -0:74 5.000000 -0:74 6.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 6.000000 -0:74 0.000000 -0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) -0:74 true case is null -0:76 Test condition and select (temp void) -0:76 Condition -0:76 Constant: -0:76 true (const bool) -0:76 true case is null +0:55 Sequence +0:55 move second child to first child (temp structure{global int f}) +0:55 'single1' (global structure{global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child (temp structure{global 2-component vector of uint v}) +0:58 'single2' (global structure{global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child (temp structure{global structure{global int f} s1}) +0:61 'single3' (global structure{global structure{global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1}) +0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child (temp 3-component vector of float) +0:79 'av3' (global 3-component vector of float) +0:79 Construct vec3 (global 3-component vector of float) +0:79 'vc1' (global float) +0:79 'vc2' (global float) +0:79 'vc3' (global float) +0:80 Sequence +0:80 move second child to first child (temp 3-component vector of float) +0:80 'bv3' (global 3-component vector of float) +0:80 Construct vec3 (temp 3-component vector of float) +0:80 'vc1' (global float) +0:80 'vc2' (global float) +0:80 'vc3' (global float) +0:82 Function Definition: main( (global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier (global void) +0:86 Test condition and select (temp void) +0:86 Condition +0:86 Compare Equal (temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select (temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null 0:? Linker Objects 0:? 'a' (const 2X2 matrix of float) 0:? 1.000000 @@ -120,6 +142,10 @@ ERROR: node is still EOpNull! 0:? 'c3' (global 4X2 matrix of float) 0:? 'd2' (global implicitly-sized array of structure{global float s, global float t}) 0:? 'b5' (global 5-element array of float) +0:? 'single1' (global structure{global int f}) +0:? 'single2' (global structure{global 2-component vector of uint v}) +0:? 'single3' (global structure{global structure{global int f} s1}) +0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) 0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) @@ -200,51 +226,73 @@ ERROR: node is still EOpNull! 0:42 5.000000 0:42 5.200000 0:42 1.100000 -0:67 Sequence -0:67 move second child to first child (temp 3-component vector of float) -0:67 'av3' (global 3-component vector of float) -0:67 Construct vec3 (global 3-component vector of float) -0:67 'vc1' (global float) -0:67 'vc2' (global float) -0:67 'vc3' (global float) -0:68 Sequence -0:68 move second child to first child (temp 3-component vector of float) -0:68 'bv3' (global 3-component vector of float) -0:68 Construct vec3 (temp 3-component vector of float) -0:68 'vc1' (global float) -0:68 'vc2' (global float) -0:68 'vc3' (global float) -0:70 Function Definition: main( (global void) -0:70 Function Parameters: -0:72 Sequence -0:72 MemoryBarrier (global void) -0:74 Test condition and select (temp void) -0:74 Condition -0:74 Compare Equal (temp bool) -0:74 Constant: -0:74 1 (const uint) -0:74 2 (const uint) -0:74 3.000000 -0:74 4.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 4.000000 -0:74 0.000000 -0:74 5.000000 -0:74 6.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 6.000000 -0:74 0.000000 -0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) -0:74 true case is null -0:76 Test condition and select (temp void) -0:76 Condition -0:76 Constant: -0:76 true (const bool) -0:76 true case is null +0:55 Sequence +0:55 move second child to first child (temp structure{global int f}) +0:55 'single1' (global structure{global int f}) +0:55 Constant: +0:55 10 (const int) +0:58 Sequence +0:58 move second child to first child (temp structure{global 2-component vector of uint v}) +0:58 'single2' (global structure{global 2-component vector of uint v}) +0:58 Constant: +0:58 1 (const uint) +0:58 2 (const uint) +0:61 Sequence +0:61 move second child to first child (temp structure{global structure{global int f} s1}) +0:61 'single3' (global structure{global structure{global int f} s1}) +0:61 Constant: +0:61 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1}) +0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) +0:64 Constant: +0:64 4 (const uint) +0:64 5 (const uint) +0:79 Sequence +0:79 move second child to first child (temp 3-component vector of float) +0:79 'av3' (global 3-component vector of float) +0:79 Construct vec3 (global 3-component vector of float) +0:79 'vc1' (global float) +0:79 'vc2' (global float) +0:79 'vc3' (global float) +0:80 Sequence +0:80 move second child to first child (temp 3-component vector of float) +0:80 'bv3' (global 3-component vector of float) +0:80 Construct vec3 (temp 3-component vector of float) +0:80 'vc1' (global float) +0:80 'vc2' (global float) +0:80 'vc3' (global float) +0:82 Function Definition: main( (global void) +0:82 Function Parameters: +0:84 Sequence +0:84 MemoryBarrier (global void) +0:86 Test condition and select (temp void) +0:86 Condition +0:86 Compare Equal (temp bool) +0:86 Constant: +0:86 1 (const uint) +0:86 2 (const uint) +0:86 3.000000 +0:86 4.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 4.000000 +0:86 0.000000 +0:86 5.000000 +0:86 6.000000 +0:86 0.000000 +0:86 0.000000 +0:86 0.000000 +0:86 6.000000 +0:86 0.000000 +0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) +0:86 true case is null +0:88 Test condition and select (temp void) +0:88 Condition +0:88 Constant: +0:88 true (const bool) +0:88 true case is null 0:? Linker Objects 0:? 'a' (const 2X2 matrix of float) 0:? 1.000000 @@ -270,6 +318,10 @@ ERROR: node is still EOpNull! 0:? 'c3' (global 4X2 matrix of float) 0:? 'd2' (global 1-element array of structure{global float s, global float t}) 0:? 'b5' (global 5-element array of float) +0:? 'single1' (global structure{global int f}) +0:? 'single2' (global structure{global 2-component vector of uint v}) +0:? 'single3' (global structure{global structure{global int f} s1}) +0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1}) 0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 1a4c8024..bc7c21b1 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -56,56 +56,78 @@ gl_FragCoord origin is upper left 0:6 'c5' (global float) 0:6 Constant: 0:6 1.500000 -0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) -0:9 Function Parameters: -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp structure{temp int f}) +0:9 'single1' (global structure{temp int f}) +0:9 Constant: +0:9 10 (const int) +0:12 Sequence +0:12 move second child to first child (temp structure{temp 2-component vector of uint v}) +0:12 'single2' (global structure{temp 2-component vector of uint v}) +0:12 Constant: +0:12 1 (const uint) +0:12 2 (const uint) +0:15 Sequence +0:15 move second child to first child (temp structure{temp structure{temp int f} s1}) +0:15 'single3' (global structure{temp structure{temp int f} s1}) +0:15 Constant: +0:15 3 (const int) +0:18 Sequence +0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1}) +0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) +0:18 Constant: +0:18 4 (const uint) +0:18 5 (const uint) +0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Parameters: +0:21 'input' (in 4-component vector of float) 0:? Sequence -0:10 Sequence -0:10 move second child to first child (temp 4-component vector of float) -0:10 'a2' (temp 4-component vector of float) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:22 'a2' (temp 4-component vector of float) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? 0.500000 -0:20 Sequence -0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Constant: -0:20 9 (const int) -0:20 'a5' (global float) -0:20 Construct structure (temp structure{temp float f, temp int i}) -0:20 Comma (temp float) -0:20 'a3' (global float) -0:20 'a4' (global float) -0:20 Constant: -0:20 12 (const int) -0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Sequence +0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' (global float) +0:32 Construct structure (temp structure{temp float f, temp int i}) +0:32 Comma (temp float) +0:32 'a3' (global float) +0:32 'a4' (global float) +0:32 Constant: +0:32 12 (const int) +0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) 0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Constant: -0:20 9 (const int) -0:20 'a5' (global float) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' (global float) 0:? Construct structure (temp structure{temp float f, temp int i}) -0:20 Comma (temp float) -0:20 'a3' (global float) -0:20 'a4' (global float) -0:20 Constant: -0:20 12 (const int) -0:21 Sequence -0:21 move second child to first child (temp float) -0:21 'a8' (temp float) -0:21 Comma (temp float) -0:21 'a2' (temp 4-component vector of float) -0:21 'b2' (global float) -0:21 move second child to first child (temp float) -0:21 'a9' (temp float) -0:21 'a5' (global float) -0:23 Branch: Return with expression -0:23 component-wise multiply (temp 4-component vector of float) -0:23 'input' (in 4-component vector of float) -0:23 'a1' (global 4-component vector of float) +0:32 Comma (temp float) +0:32 'a3' (global float) +0:32 'a4' (global float) +0:32 Constant: +0:32 12 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'a8' (temp float) +0:33 Comma (temp float) +0:33 'a2' (temp 4-component vector of float) +0:33 'b2' (global float) +0:33 move second child to first child (temp float) +0:33 'a9' (temp float) +0:33 'a5' (global float) +0:35 Branch: Return with expression +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -121,6 +143,10 @@ gl_FragCoord origin is upper left 0:? 'a5' (global float) 0:? 'b5' (global float) 0:? 'c5' (global float) +0:? 'single1' (global structure{temp int f}) +0:? 'single2' (global structure{temp 2-component vector of uint v}) +0:? 'single3' (global structure{temp structure{temp int f} s1}) +0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) Linked fragment stage: @@ -183,56 +209,78 @@ gl_FragCoord origin is upper left 0:6 'c5' (global float) 0:6 Constant: 0:6 1.500000 -0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) -0:9 Function Parameters: -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp structure{temp int f}) +0:9 'single1' (global structure{temp int f}) +0:9 Constant: +0:9 10 (const int) +0:12 Sequence +0:12 move second child to first child (temp structure{temp 2-component vector of uint v}) +0:12 'single2' (global structure{temp 2-component vector of uint v}) +0:12 Constant: +0:12 1 (const uint) +0:12 2 (const uint) +0:15 Sequence +0:15 move second child to first child (temp structure{temp structure{temp int f} s1}) +0:15 'single3' (global structure{temp structure{temp int f} s1}) +0:15 Constant: +0:15 3 (const int) +0:18 Sequence +0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1}) +0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) +0:18 Constant: +0:18 4 (const uint) +0:18 5 (const uint) +0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Parameters: +0:21 'input' (in 4-component vector of float) 0:? Sequence -0:10 Sequence -0:10 move second child to first child (temp 4-component vector of float) -0:10 'a2' (temp 4-component vector of float) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:22 'a2' (temp 4-component vector of float) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? 0.500000 -0:20 Sequence -0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Constant: -0:20 9 (const int) -0:20 'a5' (global float) -0:20 Construct structure (temp structure{temp float f, temp int i}) -0:20 Comma (temp float) -0:20 'a3' (global float) -0:20 'a4' (global float) -0:20 Constant: -0:20 12 (const int) -0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Sequence +0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' (global float) +0:32 Construct structure (temp structure{temp float f, temp int i}) +0:32 Comma (temp float) +0:32 'a3' (global float) +0:32 'a4' (global float) +0:32 Constant: +0:32 12 (const int) +0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) 0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) -0:20 Constant: -0:20 9 (const int) -0:20 'a5' (global float) +0:32 Constant: +0:32 9 (const int) +0:32 'a5' (global float) 0:? Construct structure (temp structure{temp float f, temp int i}) -0:20 Comma (temp float) -0:20 'a3' (global float) -0:20 'a4' (global float) -0:20 Constant: -0:20 12 (const int) -0:21 Sequence -0:21 move second child to first child (temp float) -0:21 'a8' (temp float) -0:21 Comma (temp float) -0:21 'a2' (temp 4-component vector of float) -0:21 'b2' (global float) -0:21 move second child to first child (temp float) -0:21 'a9' (temp float) -0:21 'a5' (global float) -0:23 Branch: Return with expression -0:23 component-wise multiply (temp 4-component vector of float) -0:23 'input' (in 4-component vector of float) -0:23 'a1' (global 4-component vector of float) +0:32 Comma (temp float) +0:32 'a3' (global float) +0:32 'a4' (global float) +0:32 Constant: +0:32 12 (const int) +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'a8' (temp float) +0:33 Comma (temp float) +0:33 'a2' (temp 4-component vector of float) +0:33 'b2' (global float) +0:33 move second child to first child (temp float) +0:33 'a9' (temp float) +0:33 'a5' (global float) +0:35 Branch: Return with expression +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -248,15 +296,19 @@ gl_FragCoord origin is upper left 0:? 'a5' (global float) 0:? 'b5' (global float) 0:? 'c5' (global float) +0:? 'single1' (global structure{temp int f}) +0:? 'single2' (global structure{temp 2-component vector of uint v}) +0:? 'single3' (global structure{temp structure{temp int f} s1}) +0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 67 +// Id's are bound by 95 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "ShaderFunction" 60 + EntryPoint Fragment 4 "ShaderFunction" 88 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "ShaderFunction" @@ -269,24 +321,36 @@ gl_FragCoord origin is upper left Name 27 "b4" Name 29 "a5" Name 30 "c5" - Name 33 "a2" - Name 36 "S1" - MemberName 36(S1) 0 "f" - MemberName 36(S1) 1 "i" - Name 37 "S2" - MemberName 37(S2) 0 "j" - MemberName 37(S2) 1 "g" - MemberName 37(S2) 2 "s1" - Name 39 "s2i" - Name 42 "a3" - Name 43 "a4" - Name 48 "s2" - Name 54 "a8" - Name 55 "b2" - Name 57 "a9" - Name 60 "input" - Name 65 "c4" - Name 66 "b5" + Name 33 "Single1" + MemberName 33(Single1) 0 "f" + Name 35 "single1" + Name 40 "Single2" + MemberName 40(Single2) 0 "v" + Name 42 "single2" + Name 47 "Single3" + MemberName 47(Single3) 0 "s1" + Name 49 "single3" + Name 53 "Single4" + MemberName 53(Single4) 0 "s1" + Name 55 "single4" + Name 62 "a2" + Name 64 "S1" + MemberName 64(S1) 0 "f" + MemberName 64(S1) 1 "i" + Name 65 "S2" + MemberName 65(S2) 0 "j" + MemberName 65(S2) 1 "g" + MemberName 65(S2) 2 "s1" + Name 67 "s2i" + Name 70 "a3" + Name 71 "a4" + Name 76 "s2" + Name 82 "a8" + Name 83 "b2" + Name 85 "a9" + Name 88 "input" + Name 93 "c4" + Name 94 "b5" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -315,29 +379,57 @@ gl_FragCoord origin is upper left 29(a5): 22(ptr) Variable Private 30(c5): 22(ptr) Variable Private 31: 6(float) Constant 1069547520 - 32: TypePointer Function 7(fvec4) - 34: 7(fvec4) ConstantComposite 24 26 28 11 - 35: TypeInt 32 1 - 36(S1): TypeStruct 6(float) 35(int) - 37(S2): TypeStruct 35(int) 6(float) 36(S1) - 38: TypePointer Function 37(S2) - 40: 35(int) Constant 9 - 42(a3): 22(ptr) Variable Private - 43(a4): 22(ptr) Variable Private - 45: 35(int) Constant 12 - 53: TypePointer Function 6(float) - 55(b2): 22(ptr) Variable Private - 59: TypePointer Input 7(fvec4) - 60(input): 59(ptr) Variable Input - 65(c4): 22(ptr) Variable Private - 66(b5): 22(ptr) Variable Private + 32: TypeInt 32 1 + 33(Single1): TypeStruct 32(int) + 34: TypePointer Private 33(Single1) + 35(single1): 34(ptr) Variable Private + 36: 32(int) Constant 10 + 37: 33(Single1) ConstantComposite 36 + 38: TypeInt 32 0 + 39: TypeVector 38(int) 2 + 40(Single2): TypeStruct 39(ivec2) + 41: TypePointer Private 40(Single2) + 42(single2): 41(ptr) Variable Private + 43: 38(int) Constant 1 + 44: 38(int) Constant 2 + 45: 39(ivec2) ConstantComposite 43 44 + 46: 40(Single2) ConstantComposite 45 + 47(Single3): TypeStruct 33(Single1) + 48: TypePointer Private 47(Single3) + 49(single3): 48(ptr) Variable Private + 50: 32(int) Constant 3 + 51: 33(Single1) ConstantComposite 50 + 52: 47(Single3) ConstantComposite 51 + 53(Single4): TypeStruct 40(Single2) + 54: TypePointer Private 53(Single4) + 55(single4): 54(ptr) Variable Private + 56: 38(int) Constant 4 + 57: 38(int) Constant 5 + 58: 39(ivec2) ConstantComposite 56 57 + 59: 40(Single2) ConstantComposite 58 + 60: 53(Single4) ConstantComposite 59 + 61: TypePointer Function 7(fvec4) + 63: 7(fvec4) ConstantComposite 24 26 28 11 + 64(S1): TypeStruct 6(float) 32(int) + 65(S2): TypeStruct 32(int) 6(float) 64(S1) + 66: TypePointer Function 65(S2) + 68: 32(int) Constant 9 + 70(a3): 22(ptr) Variable Private + 71(a4): 22(ptr) Variable Private + 73: 32(int) Constant 12 + 81: TypePointer Function 6(float) + 83(b2): 22(ptr) Variable Private + 87: TypePointer Input 7(fvec4) + 88(input): 87(ptr) Variable Input + 93(c4): 22(ptr) Variable Private + 94(b5): 22(ptr) Variable Private 4(ShaderFunction): 2 Function None 3 5: Label - 33(a2): 32(ptr) Variable Function - 39(s2i): 38(ptr) Variable Function - 48(s2): 38(ptr) Variable Function - 54(a8): 53(ptr) Variable Function - 57(a9): 53(ptr) Variable Function + 62(a2): 61(ptr) Variable Function + 67(s2i): 66(ptr) Variable Function + 76(s2): 66(ptr) Variable Function + 82(a8): 81(ptr) Variable Function + 85(a9): 81(ptr) Variable Function Store 9(a1) 13 Store 14(b1) 19 Store 20(a1i) 13 @@ -347,23 +439,27 @@ gl_FragCoord origin is upper left Store 27(b4) 28 Store 29(a5) 11 Store 30(c5) 31 - Store 33(a2) 34 - 41: 6(float) Load 29(a5) - 44: 6(float) Load 43(a4) - 46: 36(S1) CompositeConstruct 44 45 - 47: 37(S2) CompositeConstruct 40 41 46 - Store 39(s2i) 47 - 49: 6(float) Load 29(a5) - 50: 6(float) Load 43(a4) - 51: 36(S1) CompositeConstruct 50 45 - 52: 37(S2) CompositeConstruct 40 49 51 - Store 48(s2) 52 - 56: 6(float) Load 55(b2) - Store 54(a8) 56 - 58: 6(float) Load 29(a5) - Store 57(a9) 58 - 61: 7(fvec4) Load 60(input) - 62: 7(fvec4) Load 9(a1) - 63: 7(fvec4) FMul 61 62 - ReturnValue 63 + Store 35(single1) 37 + Store 42(single2) 46 + Store 49(single3) 52 + Store 55(single4) 60 + Store 62(a2) 63 + 69: 6(float) Load 29(a5) + 72: 6(float) Load 71(a4) + 74: 64(S1) CompositeConstruct 72 73 + 75: 65(S2) CompositeConstruct 68 69 74 + Store 67(s2i) 75 + 77: 6(float) Load 29(a5) + 78: 6(float) Load 71(a4) + 79: 64(S1) CompositeConstruct 78 73 + 80: 65(S2) CompositeConstruct 68 77 79 + Store 76(s2) 80 + 84: 6(float) Load 83(b2) + Store 82(a8) 84 + 86: 6(float) Load 29(a5) + Store 85(a9) 86 + 89: 7(fvec4) Load 88(input) + 90: 7(fvec4) Load 9(a1) + 91: 7(fvec4) FMul 89 90 + ReturnValue 91 FunctionEnd diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag index 5acf55df..c233d127 100644 --- a/Test/hlsl.init.frag +++ b/Test/hlsl.init.frag @@ -4,6 +4,18 @@ float a2 = 0.2, b2; float a3, b3 = 0.3; float a4, b4 = 0.4, c4; float a5 = 0.5, b5, c5 = 1.5; + +struct Single1 { int f; }; +Single1 single1 = { 10 }; + +struct Single2 { uint2 v; }; +Single2 single2 = { { 1, 2 } }; + +struct Single3 { Single1 s1; }; +Single3 single3 = { { 3 } }; + +struct Single4 { Single2 s1; }; +Single4 single4 = { { { 4u, 5u } } }; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index f8fb2795..5e83db78 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1365" +#define GLSLANG_REVISION "SPIRV99.1367" #define GLSLANG_DATE "29-Jul-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index c2bf7a38..25ab4ca3 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -5145,8 +5145,14 @@ TIntermTyped* TParseContext::convertInitializerList(const TSourceLoc& loc, const return nullptr; } - // now that the subtree is processed, process this node - return addConstructor(loc, initList, type); + // Now that the subtree is processed, process this node as if the + // initializer list is a set of arguments to a constructor. + TIntermNode* emulatedConstructorArguments; + if (initList->getSequence().size() == 1) + emulatedConstructorArguments = initList->getSequence()[0]; + else + emulatedConstructorArguments = initList; + return addConstructor(loc, emulatedConstructorArguments, type); } // diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5989f298..f9188524 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3725,8 +3725,14 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co return nullptr; } - // now that the subtree is processed, process this node - return addConstructor(loc, initList, type); + // Now that the subtree is processed, process this node as if the + // initializer list is a set of arguments to a constructor. + TIntermNode* emulatedConstructorArguments; + if (initList->getSequence().size() == 1) + emulatedConstructorArguments = initList->getSequence()[0]; + else + emulatedConstructorArguments = initList; + return addConstructor(loc, emulatedConstructorArguments, type); } // From 5964c64b2acd90e7403d61cc35303853fc60116c Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 30 Jul 2016 07:38:55 -0600 Subject: [PATCH 044/217] HLSL: Fix a grammar error related to constructors in parenthetical expressions --- Test/baseResults/hlsl.constructexpr.frag.out | 129 +++++++++++++++++++ Test/hlsl.constructexpr.frag | 17 +++ Test/hlsl.init2.frag | 23 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 42 +++--- hlsl/hlslTokenStream.cpp | 18 +-- hlsl/hlslTokenStream.h | 16 ++- 7 files changed, 212 insertions(+), 34 deletions(-) create mode 100644 Test/baseResults/hlsl.constructexpr.frag.out create mode 100644 Test/hlsl.constructexpr.frag create mode 100644 Test/hlsl.init2.frag diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out new file mode 100644 index 00000000..2eef7c0d --- /dev/null +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -0,0 +1,129 @@ +hlsl.constructexpr.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Parameters: +0:? Sequence +0:6 Constant: +0:6 3 (const int) +0:7 Constant: +0:7 4 (const int) +0:8 Constant: +0:8 5 (const int) +0:9 Constant: +0:9 6 (const int) +0:10 Constant: +0:10 7 (const int) +0:11 Constant: +0:11 8 (const int) +0:12 Comma (temp 2-component vector of float) +0:? Constant: +0:? 9.000000 +0:? 10.000000 +0:? Constant: +0:? 11.000000 +0:? 12.000000 +0:15 move second child to first child (temp 4-component vector of float) +0:15 color: direct index for structure (temp 4-component vector of float) +0:15 'ps_output' (temp structure{temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 Branch: Return with expression +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Parameters: +0:? Sequence +0:6 Constant: +0:6 3 (const int) +0:7 Constant: +0:7 4 (const int) +0:8 Constant: +0:8 5 (const int) +0:9 Constant: +0:9 6 (const int) +0:10 Constant: +0:10 7 (const int) +0:11 Constant: +0:11 8 (const int) +0:12 Comma (temp 2-component vector of float) +0:? Constant: +0:? 9.000000 +0:? 10.000000 +0:? Constant: +0:? 11.000000 +0:? 12.000000 +0:15 move second child to first child (temp 4-component vector of float) +0:15 color: direct index for structure (temp 4-component vector of float) +0:15 'ps_output' (temp structure{temp 4-component vector of float color}) +0:15 Constant: +0:15 0 (const int) +0:15 Constant: +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:15 1.000000 +0:16 Branch: Return with expression +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 22 "PS_OUTPUT" + MemberName 22(PS_OUTPUT) 0 "color" + Name 24 "ps_output" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: 6(int) Constant 3 + 8: 6(int) Constant 4 + 9: 6(int) Constant 5 + 10: 6(int) Constant 6 + 11: 6(int) Constant 7 + 12: 6(int) Constant 8 + 13: TypeFloat 32 + 14: TypeVector 13(float) 2 + 15: 13(float) Constant 1091567616 + 16: 13(float) Constant 1092616192 + 17: 14(fvec2) ConstantComposite 15 16 + 18: 13(float) Constant 1093664768 + 19: 13(float) Constant 1094713344 + 20: 14(fvec2) ConstantComposite 18 19 + 21: TypeVector 13(float) 4 + 22(PS_OUTPUT): TypeStruct 21(fvec4) + 23: TypePointer Function 22(PS_OUTPUT) + 25: 6(int) Constant 0 + 26: 13(float) Constant 1065353216 + 27: 21(fvec4) ConstantComposite 26 26 26 26 + 28: TypePointer Function 21(fvec4) + 4(main): 2 Function None 3 + 5: Label + 24(ps_output): 23(ptr) Variable Function + 29: 28(ptr) AccessChain 24(ps_output) 25 + Store 29 27 + 30:22(PS_OUTPUT) Load 24(ps_output) + ReturnValue 30 + FunctionEnd diff --git a/Test/hlsl.constructexpr.frag b/Test/hlsl.constructexpr.frag new file mode 100644 index 00000000..7048f62c --- /dev/null +++ b/Test/hlsl.constructexpr.frag @@ -0,0 +1,17 @@ +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + // Evaluates to a sequence: 3, 4, 5, 6, 7, 8, and a float2(9,10), float2(11,12) sequence + (int(3)); + (int(3) + int(1)); + (int(3) + int(1) + int(1)); + (((int(6)))); + (int(7.0)); + ((int((2)) ? 8 : 8)); + (float2(9, 10), float2(11, 12)); + + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} diff --git a/Test/hlsl.init2.frag b/Test/hlsl.init2.frag new file mode 100644 index 00000000..94be5ffe --- /dev/null +++ b/Test/hlsl.init2.frag @@ -0,0 +1,23 @@ + +void Test1() +{ + struct mystruct { float2 a; }; + mystruct test1 = { + { 1, 2, }, // test trailing commas + }; + + mystruct test2 = { + { { 1, 2, } }, // test unneeded levels + }; + + float test3 = { 1 } ; // test scalar initialization +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index d14be677..91aa9df2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -80,6 +80,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.calculatelodunclamped.dx10.frag", "main"}, {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, + {"hlsl.constructexpr.frag", "main"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e3e5df73..11b6dc15 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1718,27 +1718,29 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) if (acceptTokenClass(EHTokLeftParen)) { TType castType; if (acceptType(castType)) { - if (! acceptTokenClass(EHTokRightParen)) { - expected(")"); - return false; + if (acceptTokenClass(EHTokRightParen)) { + // We've matched "(type)" now, get the expression to cast + TSourceLoc loc = token.loc; + if (! acceptUnaryExpression(node)) + return false; + + // Hook it up like a constructor + TFunction* constructorFunction = parseContext.handleConstructorCall(loc, castType); + if (constructorFunction == nullptr) { + expected("type that can be constructed"); + return false; + } + TIntermTyped* arguments = nullptr; + parseContext.handleFunctionArgument(constructorFunction, arguments, node); + node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); + + return true; + } else { + // This could be a parenthesized constructor, ala (int(3)), and we just accepted + // the '(int' part. We must back up twice. + recedeToken(); + recedeToken(); } - - // We've matched "(type)" now, get the expression to cast - TSourceLoc loc = token.loc; - if (! acceptUnaryExpression(node)) - return false; - - // Hook it up like a constructor - TFunction* constructorFunction = parseContext.handleConstructorCall(loc, castType); - if (constructorFunction == nullptr) { - expected("type that can be constructed"); - return false; - } - TIntermTyped* arguments = nullptr; - parseContext.handleFunctionArgument(constructorFunction, arguments, node); - node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); - - return true; } else { // This isn't a type cast, but it still started "(", so if it is a // unary expression, it can only be a postfix_expression, so try that. diff --git a/hlsl/hlslTokenStream.cpp b/hlsl/hlslTokenStream.cpp index 47f779a8..c915e0b5 100755 --- a/hlsl/hlslTokenStream.cpp +++ b/hlsl/hlslTokenStream.cpp @@ -39,27 +39,29 @@ namespace glslang { void HlslTokenStream::pushPreToken(const HlslToken& tok) { - assert(preTokenStackSize == 0); - preTokenStack = tok; - ++preTokenStackSize; + assert(preTokenStackSize < tokenBufferSize); + preTokenStack[preTokenStackSize++] = tok; } HlslToken HlslTokenStream::popPreToken() { - assert(preTokenStackSize == 1); - --preTokenStackSize; + assert(preTokenStackSize > 0); - return preTokenStack; + return preTokenStack[--preTokenStackSize]; } void HlslTokenStream::pushTokenBuffer(const HlslToken& tok) { - tokenBuffer = tok; + tokenBuffer[tokenBufferPos] = tok; + tokenBufferPos = (tokenBufferPos+1) % tokenBufferSize; } HlslToken HlslTokenStream::popTokenBuffer() { - return tokenBuffer; + // Back up + tokenBufferPos = (tokenBufferPos+tokenBufferSize-1) % tokenBufferSize; + + return tokenBuffer[tokenBufferPos]; } // Load 'token' with the next token in the stream of tokens. diff --git a/hlsl/hlslTokenStream.h b/hlsl/hlslTokenStream.h index 12c2a2a0..ec428894 100755 --- a/hlsl/hlslTokenStream.h +++ b/hlsl/hlslTokenStream.h @@ -43,7 +43,7 @@ namespace glslang { class HlslTokenStream { public: explicit HlslTokenStream(HlslScanContext& scanner) - : scanner(scanner), preTokenStackSize(0) { } + : scanner(scanner), preTokenStackSize(0), tokenBufferPos(0) { } virtual ~HlslTokenStream() { } public: @@ -62,20 +62,24 @@ namespace glslang { HlslScanContext& scanner; // lexical scanner, to get next token + // This is the number of tokens we can recedeToken() over. + static const int tokenBufferSize = 2; + // Previously scanned tokens, returned for future advances, // so logically in front of the token stream. // Is logically a stack; needs last in last out semantics. - // Currently implemented as a stack of size 1. - HlslToken preTokenStack; + // Currently implemented as a stack of size 2. + HlslToken preTokenStack[tokenBufferSize]; int preTokenStackSize; void pushPreToken(const HlslToken&); HlslToken popPreToken(); - // Previously scanned tokens, not yet return for future advances, + // Previously scanned tokens, not yet returned for future advances, // but available for that. // Is logically a fifo for normal advances, and a stack for recession. - // Currently implemented with an intrinsic size of 1. - HlslToken tokenBuffer; + // Currently implemented with an intrinsic size of 2. + HlslToken tokenBuffer[tokenBufferSize]; + int tokenBufferPos; void pushTokenBuffer(const HlslToken&); HlslToken popTokenBuffer(); }; From b38f07160549d040742517e0093807bb16b4a9ed Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 30 Jul 2016 10:29:54 -0600 Subject: [PATCH 045/217] HLSL: Add back in the [subcomponent] part of a 'register' decl. --- Test/baseResults/hlsl.struct.frag.out | 85 ++++++++++++++++----------- Test/hlsl.struct.frag | 3 + glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 34 +++++++---- hlsl/hlslParseHelper.cpp | 21 ++++--- hlsl/hlslParseHelper.h | 6 +- 6 files changed, 96 insertions(+), 55 deletions(-) diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 08b41930..02eed4ee 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -1,32 +1,35 @@ hlsl.struct.frag WARNING: 0:26: 'register' : ignoring shader_profile WARNING: 0:27: 'register' : ignoring shader_profile +WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:31 Function Parameters: -0:31 'input' (in 4-component vector of float) +0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Parameters: +0:34 'input' (in 4-component vector of float) 0:? Sequence -0:36 Compare Equal (temp bool) -0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:37 move second child to first child (temp 4-component vector of float) -0:37 i: direct index for structure (temp 4-component vector of float) -0:37 's2' (global structure{temp 4-component vector of float i}) -0:37 Constant: -0:37 0 (const int) -0:37 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) -0:37 Constant: -0:37 7 (const int) -0:39 Branch: Return with expression -0:39 'input' (in 4-component vector of float) +0:39 Compare Equal (temp bool) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 Constant: +0:40 0 (const int) +0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) +0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:40 Constant: +0:40 7 (const int) +0:42 Branch: Return with expression +0:42 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) +0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) Linked fragment stage: @@ -35,32 +38,34 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:31 Function Parameters: -0:31 'input' (in 4-component vector of float) +0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Parameters: +0:34 'input' (in 4-component vector of float) 0:? Sequence -0:36 Compare Equal (temp bool) -0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:37 move second child to first child (temp 4-component vector of float) -0:37 i: direct index for structure (temp 4-component vector of float) -0:37 's2' (global structure{temp 4-component vector of float i}) -0:37 Constant: -0:37 0 (const int) -0:37 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) -0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) -0:37 Constant: -0:37 7 (const int) -0:39 Branch: Return with expression -0:39 'input' (in 4-component vector of float) +0:39 Compare Equal (temp bool) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:39 's3' (temp structure{temp 3-component vector of bool b3}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 Constant: +0:40 0 (const int) +0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) +0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:40 Constant: +0:40 7 (const int) +0:42 Branch: Return with expression +0:42 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) +0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 40 +// Id's are bound by 44 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -92,8 +97,14 @@ gl_FragCoord origin is upper left MemberName 37(myS) 2 "a" MemberName 37(myS) 3 "d" Name 39 "s1" + Name 42 "ff5" + Name 43 "ff6" MemberDecorate 25 4 BuiltIn FrontFacing MemberDecorate 25 7 BuiltIn FragCoord + Decorate 42(ff5) Offset 20 + Decorate 42(ff5) Binding 5 + Decorate 43(ff6) Offset 36 + Decorate 43(ff6) Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -118,6 +129,10 @@ gl_FragCoord origin is upper left 37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) 38: TypePointer Private 37(myS) 39(s1): 38(ptr) Variable Private + 40: TypeVector 17(float) 3 + 41: TypePointer Private 40(fvec3) + 42(ff5): 41(ptr) Variable Private + 43(ff6): 41(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 7989d253..c76f3349 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -27,6 +27,9 @@ struct { float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) ; } s4; +float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]); +float3 ff6 : packoffset(c2.y) : register(s3[5]); + float4 PixelShaderFunction(float4 input) : COLOR0 { struct FS { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 5e83db78..a400ee8b 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "SPIRV99.1367" -#define GLSLANG_DATE "29-Jul-2016" +#define GLSLANG_DATE "30-Jul-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 11b6dc15..e6ce9906 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2523,10 +2523,10 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) } // post_decls -// : COLON semantic // optional -// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional -// COLON REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN // optional -// annotations // optional +// : COLON semantic // optional +// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional +// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN // optional +// annotations // optional // void HlslGrammar::acceptPostDecls(TType& type) { @@ -2561,31 +2561,45 @@ void HlslGrammar::acceptPostDecls(TType& type) expected("semantic or packoffset or register"); return; } else if (*idToken.string == "register") { - // REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN + // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return; } - HlslToken registerDesc; + HlslToken registerDesc; // for Type# + HlslToken profile; if (! acceptIdentifier(registerDesc)) { expected("register number description"); return; } - HlslToken profile; if (acceptTokenClass(EHTokComma)) { - // then we didn't really see the registerDesc yet, it was - // actually the profile + // Then we didn't really see the registerDesc yet, it was + // actually the profile. Adjust... profile = registerDesc; if (! acceptIdentifier(registerDesc)) { expected("register number description"); return; } } + int subComponent = 0; + if (acceptTokenClass(EHTokLeftBracket)) { + // LEFT_BRACKET subcomponent RIGHT_BRACKET + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return; + } + subComponent = token.i; + advanceToken(); + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + break; + } + } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - parseContext.handleRegister(registerDesc.loc, type, profile.string, *registerDesc.string); + parseContext.handleRegister(registerDesc.loc, type, profile.string, *registerDesc.string, subComponent); } else { // semantic, in idToken.string parseContext.handleSemantic(type, *idToken.string); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index f9188524..5c7768bb 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2181,27 +2181,34 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons // 'desc' is the type# part. // void HlslParseContext::handleRegister(const TSourceLoc& loc, TType& type, const glslang::TString* profile, - const glslang::TString& desc) + const glslang::TString& desc, + int subComponent) { if (profile != nullptr) warn(loc, "ignoring shader_profile", "register", ""); - if (desc.size() < 2) { - error(loc, "expected register type and number", "register", ""); + if (desc.size() < 1) { + error(loc, "expected register type", "register", ""); return; } - if (! isdigit(desc[1])) { - error(loc, "expected register number after register type", "register", ""); - return; + int regNumber = 0; + if (desc.size() > 1) { + if (isdigit(desc[1])) + regNumber = atoi(desc.substr(1, desc.size()).c_str()); + else { + error(loc, "expected register number after register type", "register", ""); + return; + } } + // TODO: learn what all these really mean and how they interact with regNumber and subComponent switch (desc[0]) { case 'b': case 't': case 'c': case 's': - type.getQualifier().layoutBinding = atoi(desc.substr(1, desc.size()).c_str()); + type.getQualifier().layoutBinding = regNumber + subComponent; break; default: warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 40bf851b..92641a84 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -95,8 +95,10 @@ public: void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TType& type, const TString& semantic); - void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location, const glslang::TString* component); - void handleRegister(const TSourceLoc&, TType& type, const glslang::TString* profile, const glslang::TString& desc); + void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location, + const glslang::TString* component); + void handleRegister(const TSourceLoc&, TType& type, const glslang::TString* profile, const glslang::TString& desc, + int subComponent); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); From fe5a3ff2f3cf83c2eaccf5ca4c24a0bfe0e3e90b Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 30 Jul 2016 10:36:09 -0600 Subject: [PATCH 046/217] HLSL: allow trailing commas in initializer lists & scalar initialization --- Test/baseResults/hlsl.init2.frag.out | 176 +++++++++++++++++++++++++++ Test/hlsl.init2.frag | 15 ++- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 5 +- hlsl/hlslParseHelper.cpp | 7 +- 5 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 Test/baseResults/hlsl.init2.frag.out diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out new file mode 100644 index 00000000..439fd375 --- /dev/null +++ b/Test/baseResults/hlsl.init2.frag.out @@ -0,0 +1,176 @@ +hlsl.init2.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: Test1( (global void) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp structure{temp 2-component vector of float a}) +0:5 'test1' (temp structure{temp 2-component vector of float a}) +0:5 Constant: +0:5 1.000000 +0:5 2.000000 +0:9 Sequence +0:9 move second child to first child (temp structure{temp 2-component vector of float a}) +0:9 'test2' (temp structure{temp 2-component vector of float a}) +0:9 Constant: +0:9 3.000000 +0:9 4.000000 +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'test4' (temp float) +0:17 Constant: +0:17 7.000000 +0:20 Sequence +0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c}) +0:20 'test5' (temp structure{temp float a, temp float b, temp float c}) +0:20 Constant: +0:20 8.000000 +0:20 9.000000 +0:20 10.000000 +0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Parameters: +0:? Sequence +0:27 Function Call: Test1( (global void) +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:31 Branch: Return with expression +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: Test1( (global void) +0:3 Function Parameters: +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp structure{temp 2-component vector of float a}) +0:5 'test1' (temp structure{temp 2-component vector of float a}) +0:5 Constant: +0:5 1.000000 +0:5 2.000000 +0:9 Sequence +0:9 move second child to first child (temp structure{temp 2-component vector of float a}) +0:9 'test2' (temp structure{temp 2-component vector of float a}) +0:9 Constant: +0:9 3.000000 +0:9 4.000000 +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'test4' (temp float) +0:17 Constant: +0:17 7.000000 +0:20 Sequence +0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c}) +0:20 'test5' (temp structure{temp float a, temp float b, temp float c}) +0:20 Constant: +0:20 8.000000 +0:20 9.000000 +0:20 10.000000 +0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Parameters: +0:? Sequence +0:27 Function Call: Test1( (global void) +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:30 1.000000 +0:31 Branch: Return with expression +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 6 "Test1(" + Name 10 "mystruct" + MemberName 10(mystruct) 0 "a" + Name 12 "test1" + Name 17 "test2" + Name 23 "test4" + Name 25 "mystruct2" + MemberName 25(mystruct2) 0 "a" + MemberName 25(mystruct2) 1 "b" + MemberName 25(mystruct2) 2 "c" + Name 27 "test5" + Name 34 "PS_OUTPUT" + MemberName 34(PS_OUTPUT) 0 "color" + Name 36 "ps_output" + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 2 + 10(mystruct): TypeStruct 9(fvec2) + 11: TypePointer Function 10(mystruct) + 13: 8(float) Constant 1065353216 + 14: 8(float) Constant 1073741824 + 15: 9(fvec2) ConstantComposite 13 14 + 16:10(mystruct) ConstantComposite 15 + 18: 8(float) Constant 1077936128 + 19: 8(float) Constant 1082130432 + 20: 9(fvec2) ConstantComposite 18 19 + 21:10(mystruct) ConstantComposite 20 + 22: TypePointer Function 8(float) + 24: 8(float) Constant 1088421888 + 25(mystruct2): TypeStruct 8(float) 8(float) 8(float) + 26: TypePointer Function 25(mystruct2) + 28: 8(float) Constant 1090519040 + 29: 8(float) Constant 1091567616 + 30: 8(float) Constant 1092616192 + 31:25(mystruct2) ConstantComposite 28 29 30 + 33: TypeVector 8(float) 4 + 34(PS_OUTPUT): TypeStruct 33(fvec4) + 35: TypePointer Function 34(PS_OUTPUT) + 37: TypeInt 32 1 + 38: 37(int) Constant 0 + 39: 33(fvec4) ConstantComposite 13 13 13 13 + 40: TypePointer Function 33(fvec4) + 4(main): 2 Function None 3 + 5: Label + 36(ps_output): 35(ptr) Variable Function + 32: 2 FunctionCall 6(Test1() + 41: 40(ptr) AccessChain 36(ps_output) 38 + Store 41 39 + 42:34(PS_OUTPUT) Load 36(ps_output) + ReturnValue 42 + FunctionEnd + 6(Test1(): 2 Function None 3 + 7: Label + 12(test1): 11(ptr) Variable Function + 17(test2): 11(ptr) Variable Function + 23(test4): 22(ptr) Variable Function + 27(test5): 26(ptr) Variable Function + Store 12(test1) 16 + Store 17(test2) 21 + Store 23(test4) 24 + Store 27(test5) 31 + Return + FunctionEnd diff --git a/Test/hlsl.init2.frag b/Test/hlsl.init2.frag index 94be5ffe..789f1a06 100644 --- a/Test/hlsl.init2.frag +++ b/Test/hlsl.init2.frag @@ -3,20 +3,29 @@ void Test1() { struct mystruct { float2 a; }; mystruct test1 = { - { 1, 2, }, // test trailing commas + { 1, 2, }, // test trailing commas in list }; mystruct test2 = { - { { 1, 2, } }, // test unneeded levels + float2(3, 4), }; - float test3 = { 1 } ; // test scalar initialization + // mystruct test3 = { + // { { 5, 6, } }, // TODO: test unneeded levels + // }; + + float test4 = { 7, } ; // test scalar initialization + + struct mystruct2 { float a; float b; float c; }; + mystruct2 test5 = { {8,}, {9,}, {10}, }; } struct PS_OUTPUT { float4 color : SV_Target0; }; PS_OUTPUT main() { + Test1(); + PS_OUTPUT ps_output; ps_output.color = 1.0; return ps_output; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 91aa9df2..55c71391 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -97,6 +97,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, + {"hlsl.init2.frag", "main"}, {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.evalfns.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e6ce9906..37919c32 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1549,8 +1549,11 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) node = intermediate.growAggregate(node, expr, loc); // COMMA - if (acceptTokenClass(EHTokComma)) + if (acceptTokenClass(EHTokComma)) { + if (acceptTokenClass(EHTokRightBrace)) // allow trailing comma + return true; continue; + } // RIGHT_BRACE if (acceptTokenClass(EHTokRightBrace)) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5c7768bb..d509e1f5 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3727,7 +3727,12 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str()); return nullptr; } - } else { + } else if (type.isScalar()) { + if ((int)initList->getSequence().size() != 1) { + error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str()); + return nullptr; + } + } else { error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str()); return nullptr; } From 73d4fb5bc5f90aab99646680d8b36d8a2af52ede Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 30 Jul 2016 12:38:17 -0600 Subject: [PATCH 047/217] PP: Fix issue #408: # as last character in macro. This would look ahead for a second #, for token pasting, and if not found, backup one token. This is fine, unless at the end of line, which would backup the #, rather than the look ahead. --- Test/baseResults/cppBad.vert.out | 20 +++++++++++++++++++ Test/cppBad.vert | 2 ++ glslang/Include/revision.h | 2 +- .../preprocessor/PpTokens.cpp | 19 ++++++++++-------- gtests/AST.FromFile.cpp | 1 + 5 files changed, 35 insertions(+), 9 deletions(-) create mode 100755 Test/baseResults/cppBad.vert.out create mode 100644 Test/cppBad.vert diff --git a/Test/baseResults/cppBad.vert.out b/Test/baseResults/cppBad.vert.out new file mode 100755 index 00000000..bd7c1416 --- /dev/null +++ b/Test/baseResults/cppBad.vert.out @@ -0,0 +1,20 @@ +cppBad.vert +ERROR: 0:2: 'preprocessor evaluation' : bad expression +ERROR: 0:2: '#if' : unexpected tokens following directive +ERROR: 0:3: '' : missing #endif +ERROR: 3 compilation errors. No code generated. + + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point + +Shader version: 100 +ERROR: node is still EOpNull! +0:? Linker Objects + diff --git a/Test/cppBad.vert b/Test/cppBad.vert new file mode 100644 index 00000000..bb1626ea --- /dev/null +++ b/Test/cppBad.vert @@ -0,0 +1,2 @@ +#define m#0# +#if m diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index a400ee8b..7f09a09f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1367" +#define GLSLANG_REVISION "SPIRV99.1370" #define GLSLANG_DATE "30-Jul-2016" diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index 7a1a2447..61883c96 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -180,14 +180,17 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) ltoken += 128; switch (ltoken) { case '#': - if (lReadByte(pTok) == '#') { - parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); - parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); - parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", ""); - //return PpAtomPaste; - return ReadToken(pTok, ppToken); - } else - lUnreadByte(pTok); + // Check for ##, unless the current # is the last character + if (pTok->current < pTok->data.size()) { + if (lReadByte(pTok) == '#') { + parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); + parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", ""); + //return PpAtomPaste; + return ReadToken(pTok, ppToken); + } else + lUnreadByte(pTok); + } break; case PpAtomConstString: case PpAtomIdentifier: diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 6f4abef1..7c31df01 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -78,6 +78,7 @@ INSTANTIATE_TEST_CASE_P( "cppSimple.vert", "cppIndent.vert", "cppNest.vert", + "cppBad.vert", "cppComplexExpr.vert", "badChars.frag", "pointCoord.frag", From 7208473c6944ae4acaae864e38b38443bf89bf26 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 30 Jul 2016 13:25:33 -0600 Subject: [PATCH 048/217] PP: Non-functional; fix typos and blank spaces. --- Test/baseResults/numeral.frag.out | 4 ++-- Test/baseResults/specExamples.frag.out | 2 +- Test/baseResults/tokenLength.vert.out | 4 ++-- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Scan.cpp | 16 ++++++++-------- glslang/MachineIndependent/preprocessor/Pp.cpp | 12 ++++++------ .../preprocessor/PpScanner.cpp | 14 +++++++------- .../MachineIndependent/preprocessor/PpTokens.h | 2 +- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Test/baseResults/numeral.frag.out b/Test/baseResults/numeral.frag.out index 6f5595c8..e5b20410 100644 --- a/Test/baseResults/numeral.frag.out +++ b/Test/baseResults/numeral.frag.out @@ -7,8 +7,8 @@ ERROR: 0:17: '' : octal literal too big ERROR: 0:18: '' : octal literal too big ERROR: 0:23: '' : octal literal digit too large ERROR: 0:24: '' : octal literal digit too large -ERROR: 0:49: '' : bad digit in hexidecimal literal -ERROR: 0:50: '' : hexidecimal literal too big +ERROR: 0:49: '' : bad digit in hexadecimal literal +ERROR: 0:50: '' : hexadecimal literal too big ERROR: 0:88: '' : float literal needs a decimal point or exponent ERROR: 0:98: '' : numeric literal too big ERROR: 0:101: '' : numeric literal too big diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 464a2793..848839c6 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -2,7 +2,7 @@ specExamples.frag Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:6: '=' : cannot convert from 'const uint' to 'global int' ERROR: 0:20: '' : numeric literal too big -ERROR: 0:21: '' : hexidecimal literal too big +ERROR: 0:21: '' : hexadecimal literal too big ERROR: 0:37: 'view' : redefinition ERROR: 0:63: 'invariant' : can only apply to an output ERROR: 0:68: 'lightPosition' : redefinition diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out index 26dabf0c..11bdd4b5 100644 --- a/Test/baseResults/tokenLength.vert.out +++ b/Test/baseResults/tokenLength.vert.out @@ -2,10 +2,10 @@ tokenLength.vert ERROR: 0:9: '' : numeric literal too big ERROR: 0:10: '' : numeric literal too big ERROR: 0:13: '' : octal literal too big -ERROR: 0:14: '' : hexidecimal literal too big +ERROR: 0:14: '' : hexadecimal literal too big ERROR: 0:23: '' : float literal too long ERROR: 0:32: '' : name too long -ERROR: 0:33: '' : hexidecimal literal too big +ERROR: 0:33: '' : hexadecimal literal too big ERROR: 0:34: '' : numeric literal too long ERROR: 0:34: '' : octal literal too big ERROR: 0:35: '' : numeric literal too long diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 7f09a09f..88fc5531 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1370" +#define GLSLANG_REVISION "SPIRV99.1373" #define GLSLANG_DATE "30-Jul-2016" diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 0fcc52f5..7f60ddcc 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -55,7 +55,7 @@ // Required to avoid missing prototype warnings for some compilers int yylex(YYSTYPE*, glslang::TParseContext&); - + namespace glslang { // read past any white space @@ -564,7 +564,7 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["superp"] = SUPERP; ReservedSet = new std::unordered_set; - + ReservedSet->insert("common"); ReservedSet->insert("partition"); ReservedSet->insert("active"); @@ -678,7 +678,7 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case PpAtomDecrement: return DEC_OP; case PpAtomIncrement: return INC_OP; - + case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT; case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT; case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT; @@ -850,7 +850,7 @@ int TScanContext::tokenizeIdentifier() case MAT3X4: case MAT4X2: case MAT4X3: - case MAT4X4: + case MAT4X4: return matNxM(); case DMAT2: @@ -976,7 +976,7 @@ int TScanContext::tokenizeIdentifier() case USAMPLER2DARRAY: afterType = true; return nonreservedKeyword(300, 130); - + case ISAMPLER2DRECT: case USAMPLER2DRECT: afterType = true; @@ -994,7 +994,7 @@ int TScanContext::tokenizeIdentifier() if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer)) return keyword; return es30ReservedFromGLSL(140); - + case SAMPLER2DMS: case ISAMPLER2DMS: case USAMPLER2DMS: @@ -1113,7 +1113,7 @@ int TScanContext::tokenizeIdentifier() case NOPERSPECTIVE: return es30ReservedFromGLSL(130); - + case SMOOTH: if ((parseContext.profile == EEsProfile && parseContext.version < 300) || (parseContext.profile != EEsProfile && parseContext.version < 130)) @@ -1172,7 +1172,7 @@ int TScanContext::tokenizeIdentifier() bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130; return identifierOrReserved(reserved); } - + default: parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); return 0; diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index 35097588..d7710100 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -192,7 +192,7 @@ int TPpContext::CPPdefine(TPpToken* ppToken) do { int oldToken; TPpToken oldPpToken; - TPpToken newPpToken; + TPpToken newPpToken; oldToken = ReadToken(symb->mac.body, &oldPpToken); newToken = ReadToken(mac.body, &newPpToken); if (oldToken != newToken || oldPpToken != newPpToken) { @@ -250,7 +250,7 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) if (token != '#') { while (token != '\n' && token != EndOfInput) token = scanToken(ppToken); - + if (token == EndOfInput) return token; @@ -495,7 +495,7 @@ int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, boo if (op < 0 || binop[op].precedence <= precedence) break; int leftSide = res; - + // Setup short-circuiting, needed for ES, unless already in a short circuit. // (Once in a short-circuit, can't turn off again, until that whole subexpression is done. if (! shortCircuit) { @@ -756,7 +756,7 @@ int TPpContext::CPPpragma(TPpToken* ppToken) else parseContext.handlePragma(loc, tokens); - return token; + return token; } // #version: This is just for error checking: the version and profile are decided before preprocessing starts @@ -980,7 +980,7 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken) if (token == EndOfInput) mac->busy = 0; - + return token; } @@ -1060,7 +1060,7 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool if (sym->mac.args) { token = scanToken(ppToken); if (newLineOkay) { - while (token == '\n') + while (token == '\n') token = scanToken(ppToken); } if (token != '(') { diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index b3d1af6d..5ce5a03e 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -298,7 +298,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) ppToken->name[len++] = (char)ch; ch = getch(); if (ch == 'x' || ch == 'X') { - // must be hexidecimal + // must be hexadecimal bool isUnsigned = false; bool isInt64 = false; @@ -319,11 +319,11 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) } else if (ch >= 'a' && ch <= 'f') { ii = ch - 'a' + 10; } else - pp->parseContext.ppError(ppToken->loc, "bad digit in hexidecimal literal", "", ""); + pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); ival = (ival << 4) | ii; } else { if (! AlreadyComplained) { - pp->parseContext.ppError(ppToken->loc, "hexidecimal literal too big", "", ""); + pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", ""); AlreadyComplained = 1; } ival = 0xffffffffffffffffull; @@ -333,7 +333,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) (ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f')); } else { - pp->parseContext.ppError(ppToken->loc, "bad digit in hexidecimal literal", "", ""); + pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", ""); } if (ch == 'u' || ch == 'U') { if (len < MaxTokenLength) @@ -405,7 +405,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) } if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F') return pp->lFloatConst(len, ch, ppToken); - + // wasn't a float, so must be octal... if (nonOctal) pp->parseContext.ppError(ppToken->loc, "octal literal digit too large", "", ""); @@ -447,7 +447,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': - // can't be hexidecimal or octal, is either decimal or floating point + // can't be hexadecimal or octal, is either decimal or floating point do { if (len < MaxTokenLength) @@ -705,7 +705,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) // Return 0 when no more tokens. // const char* TPpContext::tokenize(TPpToken* ppToken) -{ +{ int token = '\n'; for(;;) { diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.h b/glslang/MachineIndependent/preprocessor/PpTokens.h index 87f0eb1a..fd4d4076 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.h +++ b/glslang/MachineIndependent/preprocessor/PpTokens.h @@ -125,7 +125,7 @@ enum EFixedAtoms { PpAtomConstDouble, PpAtomConstString, - // Indentifiers + // Identifiers PpAtomIdentifier, // preprocessor "keywords" From 11e1a073f33be9fdc1ff9194306179e3e60eb770 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 30 Jul 2016 13:39:52 -0600 Subject: [PATCH 049/217] PP: Fix issue #407; handle empty identifier. The sequence #define m() int m" creates a token of no length (a string of 0 size). Protect against a string of 0 size as well as the existing protect against a null string. --- Test/baseResults/cppBad.vert.out | 6 ++++-- Test/cppBad.vert | 3 +++ glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Scan.cpp | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Test/baseResults/cppBad.vert.out b/Test/baseResults/cppBad.vert.out index bd7c1416..6938af6a 100755 --- a/Test/baseResults/cppBad.vert.out +++ b/Test/baseResults/cppBad.vert.out @@ -1,8 +1,10 @@ cppBad.vert ERROR: 0:2: 'preprocessor evaluation' : bad expression ERROR: 0:2: '#if' : unexpected tokens following directive -ERROR: 0:3: '' : missing #endif -ERROR: 3 compilation errors. No code generated. +ERROR: 0:5: 'string' : End of line in string +ERROR: 0:5: 'macro expansion' : expected '(' following n +ERROR: 0:5: '' : syntax error +ERROR: 5 compilation errors. No code generated. Shader version: 100 diff --git a/Test/cppBad.vert b/Test/cppBad.vert index bb1626ea..49600f91 100644 --- a/Test/cppBad.vert +++ b/Test/cppBad.vert @@ -1,2 +1,5 @@ #define m#0# #if m + +#define n() +int n" \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 88fc5531..2badfd2d 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1373" +#define GLSLANG_REVISION "SPIRV99.1374" #define GLSLANG_DATE "30-Jul-2016" diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 7f60ddcc..e297e344 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -612,13 +612,15 @@ void TScanContext::deleteKeywordMap() ReservedSet = nullptr; } +// Called by yylex to get the next token. +// Returning 0 implies end of input. int TScanContext::tokenize(TPpContext* pp, TParserToken& token) { do { parserToken = &token; TPpToken ppToken; tokenText = pp->tokenize(&ppToken); - if (tokenText == nullptr) + if (tokenText == nullptr || tokenText[0] == 0) return 0; loc = ppToken.loc; From 1176530bf59096923b09e297cc304a337a915939 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 31 Jul 2016 12:39:46 -0600 Subject: [PATCH 050/217] SPV: Prevent issue #415 with better semantic checking. --- SPIRV/GlslangToSpv.cpp | 2 +- Test/baseResults/vulkan.frag.out | 7 +- Test/vulkan.frag | 22 +- glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 22 + glslang/MachineIndependent/ParseHelper.h | 2 + glslang/MachineIndependent/glslang.y | 1 + glslang/MachineIndependent/glslang_tab.cpp | 4961 ++++++++---------- glslang/MachineIndependent/glslang_tab.cpp.h | 597 ++- 9 files changed, 2681 insertions(+), 2937 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 470ed253..be266ac0 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2860,7 +2860,7 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg builder.clearAccessChain(); glslangArgs[a]->traverse(this); argTypes.push_back(¶mType); - // keep outputs as and opaque objects l-values, evaluate input-only as r-values + // keep outputs and opaque objects as l-values, evaluate input-only as r-values if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) { // save l-value lValues.push_back(builder.getAccessChain()); diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out index fe8b045b..01327596 100644 --- a/Test/baseResults/vulkan.frag.out +++ b/Test/baseResults/vulkan.frag.out @@ -33,7 +33,12 @@ ERROR: 0:67: 'uniform' : no qualifiers allowed for function return ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:73: 'texture' : no matching overloaded function found ERROR: 0:74: 'imageStore' : no matching overloaded function found -ERROR: 33 compilation errors. No code generated. +ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use +ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use +ERROR: 0:93: ',' : sampler constructor must appear at point of use +ERROR: 0:94: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type 'temp sampler2D' and a right operand of type 'temp sampler2D' (or there is no acceptable conversion) +ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use +ERROR: 38 compilation errors. No code generated. diff --git a/Test/vulkan.frag b/Test/vulkan.frag index 0148507f..fd9106cd 100644 --- a/Test/vulkan.frag +++ b/Test/vulkan.frag @@ -72,4 +72,24 @@ void fooTex() { texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture -} \ No newline at end of file +} + +precision highp float; + +layout(location=0) in vec2 vTexCoord; +layout(location=0) out vec4 FragColor; + +vec4 userTexture(mediump sampler2D samp, vec2 coord) +{ + return texture(samp, coord); +} + +bool cond; + +void callUserTexture() +{ + userTexture(sampler2D(t2d,s), vTexCoord); // ERROR, not point of use + userTexture((sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use + userTexture((sampler2D(t2d,s), sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use + userTexture(cond ? sampler2D(t2d,s) : sampler2D(t2d,s), vTexCoord); // ERROR, no ?:, not point of use +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2badfd2d..faaba8d5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1374" -#define GLSLANG_DATE "30-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1375" +#define GLSLANG_DATE "31-Jul-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 25ab4ca3..2ef0286b 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1181,6 +1181,8 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction if (builtIn) nonOpBuiltInCheck(loc, *fnCandidate, *call); + else + userFunctionCallCheck(loc, *call); } // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. @@ -1723,6 +1725,26 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn } } +// +// Do any extra checking for a user function call. +// +void TParseContext::userFunctionCallCheck(const TSourceLoc& loc, TIntermAggregate& callNode) +{ + TIntermSequence& arguments = callNode.getSequence(); + + for (int i = 0; i < (int)arguments.size(); ++i) + samplerConstructorLocationCheck(loc, "call argument", arguments[i]); +} + +// +// Emit an error if this is a sampler constructor +// +void TParseContext::samplerConstructorLocationCheck(const TSourceLoc& loc, const char* token, TIntermNode* node) +{ + if (node->getAsOperator() && node->getAsOperator()->getOp() == EOpConstructTextureSampler) + error(loc, "sampler constructor must appear at point of use", token, ""); +} + // // Handle seeing a built-in constructor in a grammar production. // diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 25b9ff52..a5e6f65e 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -204,6 +204,8 @@ public: TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); void nonOpBuiltInCheck(const TSourceLoc&, const TFunction&, TIntermAggregate&); + void userFunctionCallCheck(const TSourceLoc&, TIntermAggregate&); + void samplerConstructorLocationCheck(const TSourceLoc&, const char* token, TIntermNode*); TFunction* handleConstructorCall(const TSourceLoc&, const TPublicType&); bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 11ed070a..72bad947 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -691,6 +691,7 @@ expression $$ = $1; } | expression COMMA assignment_expression { + parseContext.samplerConstructorLocationCheck($2.loc, ",", $3); $$ = parseContext.intermediate.addComma($1, $3, $2.loc); if ($$ == 0) { parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(), $3->getCompleteString()); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 7ae7e70a..0d1dc433 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.7" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,8 +62,7 @@ /* Copy the first part of user declarations. */ -/* Line 371 of yacc.c */ -#line 41 "glslang.y" +#line 41 "MachineIndependent/glslang.y" /* yacc.c:339 */ /* Based on: @@ -88,14 +87,13 @@ Jutta Degener, 1995 using namespace glslang; -/* Line 371 of yacc.c */ -#line 93 "glslang_tab.cpp" +#line 91 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ -# ifndef YY_NULL +# ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# define YY_NULLPTR nullptr # else -# define YY_NULL 0 +# define YY_NULLPTR 0 # endif # endif @@ -109,9 +107,9 @@ using namespace glslang; /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -119,289 +117,288 @@ using namespace glslang; extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + enum yytokentype + { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + BREAK = 268, + CONTINUE = 269, + DO = 270, + ELSE = 271, + FOR = 272, + IF = 273, + DISCARD = 274, + RETURN = 275, + SWITCH = 276, + CASE = 277, + DEFAULT = 278, + SUBROUTINE = 279, + BVEC2 = 280, + BVEC3 = 281, + BVEC4 = 282, + IVEC2 = 283, + IVEC3 = 284, + IVEC4 = 285, + I64VEC2 = 286, + I64VEC3 = 287, + I64VEC4 = 288, + UVEC2 = 289, + UVEC3 = 290, + UVEC4 = 291, + U64VEC2 = 292, + U64VEC3 = 293, + U64VEC4 = 294, + VEC2 = 295, + VEC3 = 296, + VEC4 = 297, + MAT2 = 298, + MAT3 = 299, + MAT4 = 300, + CENTROID = 301, + IN = 302, + OUT = 303, + INOUT = 304, + UNIFORM = 305, + PATCH = 306, + SAMPLE = 307, + BUFFER = 308, + SHARED = 309, + COHERENT = 310, + VOLATILE = 311, + RESTRICT = 312, + READONLY = 313, + WRITEONLY = 314, + DVEC2 = 315, + DVEC3 = 316, + DVEC4 = 317, + DMAT2 = 318, + DMAT3 = 319, + DMAT4 = 320, + NOPERSPECTIVE = 321, + FLAT = 322, + SMOOTH = 323, + LAYOUT = 324, + __EXPLICITINTERPAMD = 325, + MAT2X2 = 326, + MAT2X3 = 327, + MAT2X4 = 328, + MAT3X2 = 329, + MAT3X3 = 330, + MAT3X4 = 331, + MAT4X2 = 332, + MAT4X3 = 333, + MAT4X4 = 334, + DMAT2X2 = 335, + DMAT2X3 = 336, + DMAT2X4 = 337, + DMAT3X2 = 338, + DMAT3X3 = 339, + DMAT3X4 = 340, + DMAT4X2 = 341, + DMAT4X3 = 342, + DMAT4X4 = 343, + ATOMIC_UINT = 344, + SAMPLER1D = 345, + SAMPLER2D = 346, + SAMPLER3D = 347, + SAMPLERCUBE = 348, + SAMPLER1DSHADOW = 349, + SAMPLER2DSHADOW = 350, + SAMPLERCUBESHADOW = 351, + SAMPLER1DARRAY = 352, + SAMPLER2DARRAY = 353, + SAMPLER1DARRAYSHADOW = 354, + SAMPLER2DARRAYSHADOW = 355, + ISAMPLER1D = 356, + ISAMPLER2D = 357, + ISAMPLER3D = 358, + ISAMPLERCUBE = 359, + ISAMPLER1DARRAY = 360, + ISAMPLER2DARRAY = 361, + USAMPLER1D = 362, + USAMPLER2D = 363, + USAMPLER3D = 364, + USAMPLERCUBE = 365, + USAMPLER1DARRAY = 366, + USAMPLER2DARRAY = 367, + SAMPLER2DRECT = 368, + SAMPLER2DRECTSHADOW = 369, + ISAMPLER2DRECT = 370, + USAMPLER2DRECT = 371, + SAMPLERBUFFER = 372, + ISAMPLERBUFFER = 373, + USAMPLERBUFFER = 374, + SAMPLERCUBEARRAY = 375, + SAMPLERCUBEARRAYSHADOW = 376, + ISAMPLERCUBEARRAY = 377, + USAMPLERCUBEARRAY = 378, + SAMPLER2DMS = 379, + ISAMPLER2DMS = 380, + USAMPLER2DMS = 381, + SAMPLER2DMSARRAY = 382, + ISAMPLER2DMSARRAY = 383, + USAMPLER2DMSARRAY = 384, + SAMPLEREXTERNALOES = 385, + SAMPLER = 386, + SAMPLERSHADOW = 387, + TEXTURE1D = 388, + TEXTURE2D = 389, + TEXTURE3D = 390, + TEXTURECUBE = 391, + TEXTURE1DARRAY = 392, + TEXTURE2DARRAY = 393, + ITEXTURE1D = 394, + ITEXTURE2D = 395, + ITEXTURE3D = 396, + ITEXTURECUBE = 397, + ITEXTURE1DARRAY = 398, + ITEXTURE2DARRAY = 399, + UTEXTURE1D = 400, + UTEXTURE2D = 401, + UTEXTURE3D = 402, + UTEXTURECUBE = 403, + UTEXTURE1DARRAY = 404, + UTEXTURE2DARRAY = 405, + TEXTURE2DRECT = 406, + ITEXTURE2DRECT = 407, + UTEXTURE2DRECT = 408, + TEXTUREBUFFER = 409, + ITEXTUREBUFFER = 410, + UTEXTUREBUFFER = 411, + TEXTURECUBEARRAY = 412, + ITEXTURECUBEARRAY = 413, + UTEXTURECUBEARRAY = 414, + TEXTURE2DMS = 415, + ITEXTURE2DMS = 416, + UTEXTURE2DMS = 417, + TEXTURE2DMSARRAY = 418, + ITEXTURE2DMSARRAY = 419, + UTEXTURE2DMSARRAY = 420, + SUBPASSINPUT = 421, + SUBPASSINPUTMS = 422, + ISUBPASSINPUT = 423, + ISUBPASSINPUTMS = 424, + USUBPASSINPUT = 425, + USUBPASSINPUTMS = 426, + IMAGE1D = 427, + IIMAGE1D = 428, + UIMAGE1D = 429, + IMAGE2D = 430, + IIMAGE2D = 431, + UIMAGE2D = 432, + IMAGE3D = 433, + IIMAGE3D = 434, + UIMAGE3D = 435, + IMAGE2DRECT = 436, + IIMAGE2DRECT = 437, + UIMAGE2DRECT = 438, + IMAGECUBE = 439, + IIMAGECUBE = 440, + UIMAGECUBE = 441, + IMAGEBUFFER = 442, + IIMAGEBUFFER = 443, + UIMAGEBUFFER = 444, + IMAGE1DARRAY = 445, + IIMAGE1DARRAY = 446, + UIMAGE1DARRAY = 447, + IMAGE2DARRAY = 448, + IIMAGE2DARRAY = 449, + UIMAGE2DARRAY = 450, + IMAGECUBEARRAY = 451, + IIMAGECUBEARRAY = 452, + UIMAGECUBEARRAY = 453, + IMAGE2DMS = 454, + IIMAGE2DMS = 455, + UIMAGE2DMS = 456, + IMAGE2DMSARRAY = 457, + IIMAGE2DMSARRAY = 458, + UIMAGE2DMSARRAY = 459, + STRUCT = 460, + VOID = 461, + WHILE = 462, + IDENTIFIER = 463, + TYPE_NAME = 464, + FLOATCONSTANT = 465, + DOUBLECONSTANT = 466, + INTCONSTANT = 467, + UINTCONSTANT = 468, + INT64CONSTANT = 469, + UINT64CONSTANT = 470, + BOOLCONSTANT = 471, + LEFT_OP = 472, + RIGHT_OP = 473, + INC_OP = 474, + DEC_OP = 475, + LE_OP = 476, + GE_OP = 477, + EQ_OP = 478, + NE_OP = 479, + AND_OP = 480, + OR_OP = 481, + XOR_OP = 482, + MUL_ASSIGN = 483, + DIV_ASSIGN = 484, + ADD_ASSIGN = 485, + MOD_ASSIGN = 486, + LEFT_ASSIGN = 487, + RIGHT_ASSIGN = 488, + AND_ASSIGN = 489, + XOR_ASSIGN = 490, + OR_ASSIGN = 491, + SUB_ASSIGN = 492, + LEFT_PAREN = 493, + RIGHT_PAREN = 494, + LEFT_BRACKET = 495, + RIGHT_BRACKET = 496, + LEFT_BRACE = 497, + RIGHT_BRACE = 498, + DOT = 499, + COMMA = 500, + COLON = 501, + EQUAL = 502, + SEMICOLON = 503, + BANG = 504, + DASH = 505, + TILDE = 506, + PLUS = 507, + STAR = 508, + SLASH = 509, + PERCENT = 510, + LEFT_ANGLE = 511, + RIGHT_ANGLE = 512, + VERTICAL_BAR = 513, + CARET = 514, + AMPERSAND = 515, + QUESTION = 516, + INVARIANT = 517, + PRECISE = 518, + HIGH_PRECISION = 519, + MEDIUM_PRECISION = 520, + LOW_PRECISION = 521, + PRECISION = 522, + PACKED = 523, + RESOURCE = 524, + SUPERP = 525 + }; #endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE + +union YYSTYPE { -/* Line 387 of yacc.c */ -#line 66 "glslang.y" +#line 66 "MachineIndependent/glslang.y" /* yacc.c:355 */ struct { glslang::TSourceLoc loc; @@ -435,35 +432,22 @@ typedef union YYSTYPE }; } interm; +#line 436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ +}; -/* Line 387 of yacc.c */ -#line 441 "glslang_tab.cpp" -} YYSTYPE; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (glslang::TParseContext* pParseContext); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ +int yyparse (glslang::TParseContext* pParseContext); + +#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ /* Copy the second part of user declarations. */ -/* Line 390 of yacc.c */ -#line 100 "glslang.y" +#line 100 "MachineIndependent/glslang.y" /* yacc.c:358 */ /* windows only pragma */ @@ -479,8 +463,7 @@ int yyparse (); extern int yylex(YYSTYPE*, TParseContext&); -/* Line 390 of yacc.c */ -#line 484 "glslang_tab.cpp" +#line 467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -494,11 +477,8 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; #else -typedef short int yytype_int8; +typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -518,8 +498,7 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -541,6 +520,33 @@ typedef short int yytype_int16; # endif #endif +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -548,23 +554,25 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(N) (N) +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int yyi) -#else -static int -YYID (yyi) - int yyi; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return yyi; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + #if ! defined yyoverflow || YYERROR_VERBOSE @@ -583,8 +591,7 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -596,8 +603,8 @@ YYID (yyi) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -613,7 +620,7 @@ YYID (yyi) # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -621,15 +628,13 @@ YYID (yyi) # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -639,7 +644,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -664,16 +669,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) #endif @@ -692,7 +697,7 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (YYID (0)) + while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@ -708,17 +713,19 @@ union yyalloc #define YYNNTS 100 /* YYNRULES -- Number of rules. */ #define YYNRULES 422 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 554 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 525 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -777,168 +784,7 @@ static const yytype_uint16 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, - 19, 21, 25, 27, 32, 34, 38, 41, 44, 46, - 48, 50, 53, 56, 59, 61, 64, 68, 71, 73, - 75, 77, 80, 83, 86, 88, 90, 92, 94, 96, - 100, 104, 108, 110, 114, 118, 120, 124, 128, 130, - 134, 138, 142, 146, 148, 152, 156, 158, 162, 164, - 168, 170, 174, 176, 180, 182, 186, 188, 192, 194, - 195, 202, 204, 208, 210, 212, 214, 216, 218, 220, - 222, 224, 226, 228, 230, 232, 236, 238, 241, 244, - 249, 252, 256, 261, 264, 268, 273, 274, 281, 284, - 288, 291, 293, 295, 298, 302, 306, 309, 313, 316, - 318, 321, 323, 325, 327, 331, 336, 343, 349, 351, - 354, 358, 364, 369, 371, 374, 376, 378, 380, 382, - 384, 389, 391, 395, 397, 401, 403, 405, 407, 410, - 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, - 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, - 452, 454, 456, 458, 463, 465, 469, 471, 474, 477, - 481, 485, 490, 492, 494, 496, 498, 500, 502, 504, - 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, - 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, - 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, - 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, - 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, - 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, - 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, - 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, - 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, - 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, - 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, - 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, - 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, - 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, - 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, - 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, - 826, 828, 830, 832, 834, 836, 838, 839, 846, 847, - 853, 855, 858, 862, 867, 869, 873, 875, 878, 880, - 884, 889, 891, 895, 897, 899, 901, 903, 905, 907, - 909, 911, 913, 915, 918, 919, 920, 926, 928, 930, - 931, 934, 935, 938, 941, 945, 947, 950, 952, 955, - 961, 965, 967, 969, 974, 975, 984, 985, 987, 991, - 994, 995, 1002, 1003, 1012, 1013, 1021, 1023, 1025, 1027, - 1028, 1031, 1035, 1038, 1041, 1044, 1048, 1051, 1053, 1056, - 1058, 1060, 1061 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 367, 0, -1, 208, -1, 272, -1, 212, -1, 213, - -1, 214, -1, 215, -1, 210, -1, 211, -1, 216, - -1, 238, 300, 239, -1, 273, -1, 274, 240, 275, - 241, -1, 276, -1, 274, 244, 208, -1, 274, 219, - -1, 274, 220, -1, 300, -1, 277, -1, 278, -1, - 280, 239, -1, 279, 239, -1, 281, 206, -1, 281, - -1, 281, 298, -1, 280, 245, 298, -1, 282, 238, - -1, 326, -1, 274, -1, 274, -1, 219, 283, -1, - 220, 283, -1, 284, 283, -1, 252, -1, 250, -1, - 249, -1, 251, -1, 283, -1, 285, 253, 283, -1, - 285, 254, 283, -1, 285, 255, 283, -1, 285, -1, - 286, 252, 285, -1, 286, 250, 285, -1, 286, -1, - 287, 217, 286, -1, 287, 218, 286, -1, 287, -1, - 288, 256, 287, -1, 288, 257, 287, -1, 288, 221, - 287, -1, 288, 222, 287, -1, 288, -1, 289, 223, - 288, -1, 289, 224, 288, -1, 289, -1, 290, 260, - 289, -1, 290, -1, 291, 259, 290, -1, 291, -1, - 292, 258, 291, -1, 292, -1, 293, 225, 292, -1, - 293, -1, 294, 227, 293, -1, 294, -1, 295, 226, - 294, -1, 295, -1, -1, 295, 261, 297, 300, 246, - 298, -1, 296, -1, 283, 299, 298, -1, 247, -1, - 228, -1, 229, -1, 231, -1, 230, -1, 237, -1, - 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, - 298, -1, 300, 245, 298, -1, 296, -1, 306, 248, - -1, 313, 248, -1, 267, 329, 326, 248, -1, 303, - 248, -1, 303, 208, 248, -1, 303, 208, 327, 248, - -1, 322, 248, -1, 322, 208, 248, -1, 322, 208, - 305, 248, -1, -1, 322, 208, 242, 304, 333, 243, - -1, 245, 208, -1, 305, 245, 208, -1, 307, 239, - -1, 309, -1, 308, -1, 309, 311, -1, 308, 245, - 311, -1, 315, 208, 238, -1, 326, 208, -1, 326, - 208, 327, -1, 322, 310, -1, 310, -1, 322, 312, - -1, 312, -1, 326, -1, 314, -1, 313, 245, 208, - -1, 313, 245, 208, 327, -1, 313, 245, 208, 327, - 247, 337, -1, 313, 245, 208, 247, 337, -1, 315, - -1, 315, 208, -1, 315, 208, 327, -1, 315, 208, - 327, 247, 337, -1, 315, 208, 247, 337, -1, 326, - -1, 322, 326, -1, 262, -1, 68, -1, 67, -1, - 66, -1, 70, -1, 69, 238, 319, 239, -1, 320, - -1, 319, 245, 320, -1, 208, -1, 208, 247, 301, - -1, 54, -1, 263, -1, 323, -1, 322, 323, -1, - 324, -1, 318, -1, 329, -1, 317, -1, 316, -1, - 321, -1, 5, -1, 3, -1, 4, -1, 49, -1, - 47, -1, 48, -1, 46, -1, 51, -1, 52, -1, - 50, -1, 53, -1, 54, -1, 55, -1, 56, -1, - 57, -1, 58, -1, 59, -1, 24, -1, 24, 238, - 325, 239, -1, 209, -1, 325, 245, 209, -1, 328, - -1, 328, 327, -1, 240, 241, -1, 240, 296, 241, - -1, 327, 240, 241, -1, 327, 240, 296, 241, -1, - 206, -1, 7, -1, 8, -1, 9, -1, 10, -1, - 11, -1, 12, -1, 6, -1, 40, -1, 41, -1, - 42, -1, 60, -1, 61, -1, 62, -1, 25, -1, - 26, -1, 27, -1, 28, -1, 29, -1, 30, -1, - 31, -1, 32, -1, 33, -1, 34, -1, 35, -1, - 36, -1, 37, -1, 38, -1, 39, -1, 43, -1, - 44, -1, 45, -1, 71, -1, 72, -1, 73, -1, - 74, -1, 75, -1, 76, -1, 77, -1, 78, -1, - 79, -1, 63, -1, 64, -1, 65, -1, 80, -1, - 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, - 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, - 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, - 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, - 120, -1, 121, -1, 101, -1, 102, -1, 103, -1, - 104, -1, 105, -1, 106, -1, 122, -1, 107, -1, - 108, -1, 109, -1, 110, -1, 111, -1, 112, -1, - 123, -1, 113, -1, 114, -1, 115, -1, 116, -1, - 117, -1, 118, -1, 119, -1, 124, -1, 125, -1, - 126, -1, 127, -1, 128, -1, 129, -1, 131, -1, - 132, -1, 133, -1, 134, -1, 135, -1, 136, -1, - 137, -1, 138, -1, 157, -1, 139, -1, 140, -1, - 141, -1, 142, -1, 143, -1, 144, -1, 158, -1, - 145, -1, 146, -1, 147, -1, 148, -1, 149, -1, - 150, -1, 159, -1, 151, -1, 152, -1, 153, -1, - 154, -1, 155, -1, 156, -1, 160, -1, 161, -1, - 162, -1, 163, -1, 164, -1, 165, -1, 172, -1, - 173, -1, 174, -1, 175, -1, 176, -1, 177, -1, - 178, -1, 179, -1, 180, -1, 181, -1, 182, -1, - 183, -1, 184, -1, 185, -1, 186, -1, 187, -1, - 188, -1, 189, -1, 190, -1, 191, -1, 192, -1, - 193, -1, 194, -1, 195, -1, 196, -1, 197, -1, - 198, -1, 199, -1, 200, -1, 201, -1, 202, -1, - 203, -1, 204, -1, 130, -1, 166, -1, 167, -1, - 168, -1, 169, -1, 170, -1, 171, -1, 330, -1, - 209, -1, 264, -1, 265, -1, 266, -1, -1, 205, - 208, 242, 331, 333, 243, -1, -1, 205, 242, 332, - 333, 243, -1, 334, -1, 333, 334, -1, 326, 335, - 248, -1, 322, 326, 335, 248, -1, 336, -1, 335, - 245, 336, -1, 208, -1, 208, 327, -1, 298, -1, - 242, 338, 243, -1, 242, 338, 245, 243, -1, 337, - -1, 338, 245, 337, -1, 302, -1, 342, -1, 341, - -1, 339, -1, 351, -1, 352, -1, 355, -1, 358, - -1, 359, -1, 366, -1, 242, 243, -1, -1, -1, - 242, 343, 350, 344, 243, -1, 349, -1, 341, -1, - -1, 347, 342, -1, -1, 348, 341, -1, 242, 243, - -1, 242, 350, 243, -1, 340, -1, 350, 340, -1, - 248, -1, 300, 248, -1, 18, 238, 300, 239, 353, - -1, 346, 16, 346, -1, 346, -1, 300, -1, 315, - 208, 247, 337, -1, -1, 21, 238, 300, 239, 356, - 242, 357, 243, -1, -1, 350, -1, 22, 300, 246, - -1, 23, 246, -1, -1, 207, 238, 360, 354, 239, - 345, -1, -1, 15, 361, 340, 207, 238, 300, 239, - 248, -1, -1, 17, 238, 362, 363, 365, 239, 345, - -1, 351, -1, 339, -1, 354, -1, -1, 364, 248, - -1, 364, 248, 300, -1, 14, 248, -1, 13, 248, - -1, 20, 248, -1, 20, 300, 248, -1, 19, 248, - -1, 368, -1, 367, 368, -1, 369, -1, 302, -1, - -1, 306, 370, 349, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 246, 246, 252, 255, 258, 262, 266, 270, 273, @@ -949,41 +795,41 @@ static const yytype_uint16 yyrline[] = 512, 517, 522, 530, 531, 539, 550, 551, 560, 561, 570, 571, 580, 581, 589, 590, 598, 599, 607, 608, 608, 626, 627, 642, 646, 650, 654, 659, 663, 667, - 671, 675, 679, 683, 690, 693, 703, 710, 715, 720, - 728, 732, 736, 740, 745, 750, 759, 759, 770, 774, - 781, 788, 791, 798, 806, 826, 844, 859, 882, 893, - 903, 913, 923, 932, 935, 939, 943, 948, 956, 961, - 966, 971, 976, 985, 996, 1023, 1032, 1039, 1046, 1053, - 1065, 1071, 1074, 1081, 1085, 1089, 1097, 1106, 1109, 1120, - 1123, 1126, 1129, 1133, 1137, 1144, 1148, 1160, 1174, 1179, - 1185, 1191, 1198, 1204, 1209, 1214, 1219, 1226, 1230, 1234, - 1238, 1242, 1246, 1252, 1264, 1267, 1272, 1276, 1285, 1290, - 1298, 1302, 1312, 1316, 1320, 1325, 1329, 1334, 1339, 1344, - 1348, 1353, 1358, 1363, 1369, 1375, 1381, 1386, 1391, 1396, - 1401, 1406, 1411, 1417, 1423, 1429, 1435, 1441, 1447, 1453, - 1459, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, - 1510, 1515, 1520, 1525, 1531, 1537, 1543, 1549, 1555, 1561, - 1567, 1573, 1579, 1585, 1591, 1597, 1602, 1607, 1612, 1617, - 1622, 1627, 1632, 1637, 1642, 1647, 1652, 1657, 1662, 1667, - 1672, 1677, 1682, 1687, 1692, 1697, 1702, 1707, 1712, 1717, - 1722, 1727, 1732, 1737, 1742, 1747, 1752, 1757, 1762, 1767, - 1772, 1777, 1782, 1787, 1792, 1797, 1802, 1807, 1812, 1817, - 1822, 1827, 1832, 1837, 1842, 1847, 1852, 1857, 1862, 1867, - 1872, 1877, 1882, 1887, 1892, 1897, 1902, 1907, 1912, 1917, - 1922, 1927, 1932, 1937, 1942, 1947, 1952, 1957, 1962, 1967, - 1972, 1977, 1982, 1987, 1992, 1997, 2002, 2007, 2012, 2017, - 2022, 2027, 2032, 2037, 2042, 2047, 2052, 2057, 2062, 2067, - 2072, 2077, 2082, 2087, 2092, 2097, 2102, 2107, 2112, 2117, - 2122, 2127, 2132, 2137, 2142, 2148, 2154, 2160, 2166, 2172, - 2178, 2184, 2189, 2205, 2211, 2217, 2226, 2226, 2237, 2237, - 2247, 2250, 2263, 2281, 2305, 2309, 2315, 2320, 2331, 2334, - 2340, 2349, 2352, 2358, 2362, 2363, 2369, 2370, 2371, 2372, - 2373, 2374, 2375, 2379, 2380, 2384, 2380, 2396, 2397, 2401, - 2401, 2408, 2408, 2422, 2425, 2433, 2441, 2452, 2453, 2457, - 2464, 2468, 2476, 2480, 2493, 2493, 2513, 2516, 2522, 2534, - 2546, 2546, 2561, 2561, 2577, 2577, 2598, 2601, 2607, 2610, - 2616, 2620, 2627, 2632, 2637, 2644, 2647, 2656, 2660, 2667, - 2670, 2676, 2676 + 671, 675, 679, 683, 690, 693, 704, 711, 716, 721, + 729, 733, 737, 741, 746, 751, 760, 760, 771, 775, + 782, 789, 792, 799, 807, 827, 845, 860, 883, 894, + 904, 914, 924, 933, 936, 940, 944, 949, 957, 962, + 967, 972, 977, 986, 997, 1024, 1033, 1040, 1047, 1054, + 1066, 1072, 1075, 1082, 1086, 1090, 1098, 1107, 1110, 1121, + 1124, 1127, 1130, 1134, 1138, 1145, 1149, 1161, 1175, 1180, + 1186, 1192, 1199, 1205, 1210, 1215, 1220, 1227, 1231, 1235, + 1239, 1243, 1247, 1253, 1265, 1268, 1273, 1277, 1286, 1291, + 1299, 1303, 1313, 1317, 1321, 1326, 1330, 1335, 1340, 1345, + 1349, 1354, 1359, 1364, 1370, 1376, 1382, 1387, 1392, 1397, + 1402, 1407, 1412, 1418, 1424, 1430, 1436, 1442, 1448, 1454, + 1460, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, 1506, + 1511, 1516, 1521, 1526, 1532, 1538, 1544, 1550, 1556, 1562, + 1568, 1574, 1580, 1586, 1592, 1598, 1603, 1608, 1613, 1618, + 1623, 1628, 1633, 1638, 1643, 1648, 1653, 1658, 1663, 1668, + 1673, 1678, 1683, 1688, 1693, 1698, 1703, 1708, 1713, 1718, + 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1758, 1763, 1768, + 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813, 1818, + 1823, 1828, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868, + 1873, 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918, + 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, 1968, + 1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018, + 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063, 2068, + 2073, 2078, 2083, 2088, 2093, 2098, 2103, 2108, 2113, 2118, + 2123, 2128, 2133, 2138, 2143, 2149, 2155, 2161, 2167, 2173, + 2179, 2185, 2190, 2206, 2212, 2218, 2227, 2227, 2238, 2238, + 2248, 2251, 2264, 2282, 2306, 2310, 2316, 2321, 2332, 2335, + 2341, 2350, 2353, 2359, 2363, 2364, 2370, 2371, 2372, 2373, + 2374, 2375, 2376, 2380, 2381, 2385, 2381, 2397, 2398, 2402, + 2402, 2409, 2409, 2423, 2426, 2434, 2442, 2453, 2454, 2458, + 2465, 2469, 2477, 2481, 2494, 2494, 2514, 2517, 2523, 2535, + 2547, 2547, 2562, 2562, 2578, 2578, 2599, 2602, 2608, 2611, + 2617, 2621, 2628, 2633, 2638, 2645, 2648, 2657, 2661, 2668, + 2671, 2677, 2677 }; #endif @@ -1079,13 +925,13 @@ static const char *const yytname[] = "switch_statement_list", "case_label", "iteration_statement", "$@10", "$@11", "$@12", "for_init_statement", "conditionopt", "for_rest_statement", "jump_statement", "translation_unit", - "external_declaration", "function_definition", "$@13", YY_NULL + "external_declaration", "function_definition", "$@13", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -1119,183 +965,18 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 271, 272, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 274, 274, 274, 274, 274, 274, 275, 276, - 277, 278, 278, 279, 279, 280, 280, 281, 282, 282, - 283, 283, 283, 283, 284, 284, 284, 284, 285, 285, - 285, 285, 286, 286, 286, 287, 287, 287, 288, 288, - 288, 288, 288, 289, 289, 289, 290, 290, 291, 291, - 292, 292, 293, 293, 294, 294, 295, 295, 296, 297, - 296, 298, 298, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 300, 300, 301, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 304, 303, 305, 305, - 306, 307, 307, 308, 308, 309, 310, 310, 311, 311, - 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, - 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, - 318, 319, 319, 320, 320, 320, 321, 322, 322, 323, - 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 325, 325, 326, 326, 327, 327, - 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 329, 329, 329, 331, 330, 332, 330, - 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, - 337, 338, 338, 339, 340, 340, 341, 341, 341, 341, - 341, 341, 341, 342, 343, 344, 342, 345, 345, 347, - 346, 348, 346, 349, 349, 350, 350, 351, 351, 352, - 353, 353, 354, 354, 356, 355, 357, 357, 358, 358, - 360, 359, 361, 359, 362, 359, 363, 363, 364, 364, - 365, 365, 366, 366, 366, 366, 366, 367, 367, 368, - 368, 370, 369 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, - 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, - 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, - 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, - 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, - 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, - 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, - 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 1, 3, 1, 2, 2, 3, - 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, - 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, - 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, - 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, - 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, - 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, - 1, 0, 3 -}; - -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 0, 146, 147, 145, 179, 173, 174, 175, 176, 177, - 178, 162, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 180, 181, 182, - 201, 202, 203, 151, 149, 150, 148, 154, 152, 153, - 155, 156, 157, 158, 159, 160, 161, 183, 184, 185, - 213, 214, 215, 128, 127, 126, 0, 129, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 239, 240, - 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, - 253, 254, 255, 256, 257, 258, 259, 237, 238, 245, - 252, 260, 261, 262, 263, 264, 265, 334, 266, 267, - 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, - 279, 280, 282, 283, 284, 285, 286, 287, 289, 290, - 291, 292, 293, 294, 274, 281, 288, 295, 296, 297, - 298, 299, 300, 335, 336, 337, 338, 339, 340, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 172, 342, 125, 136, 343, 344, 345, - 0, 420, 0, 421, 0, 102, 101, 0, 113, 118, - 143, 142, 140, 144, 0, 137, 139, 123, 166, 141, - 341, 0, 417, 419, 0, 0, 0, 348, 0, 0, - 90, 87, 0, 100, 0, 109, 103, 111, 0, 112, - 0, 88, 119, 0, 93, 138, 124, 0, 167, 1, - 418, 164, 0, 135, 133, 0, 131, 346, 0, 0, - 91, 0, 0, 422, 104, 108, 110, 106, 114, 105, - 0, 120, 96, 0, 94, 0, 2, 8, 9, 4, - 5, 6, 7, 10, 0, 0, 0, 168, 36, 35, - 37, 34, 3, 12, 30, 14, 19, 20, 0, 0, - 24, 0, 38, 0, 42, 45, 48, 53, 56, 58, - 60, 62, 64, 66, 68, 0, 28, 0, 163, 0, - 0, 130, 0, 0, 0, 0, 0, 350, 89, 92, - 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, - 0, 374, 383, 387, 38, 71, 84, 0, 363, 0, - 123, 366, 385, 365, 364, 0, 367, 368, 369, 370, - 371, 372, 107, 0, 115, 0, 358, 122, 0, 0, - 98, 0, 95, 31, 32, 0, 16, 17, 0, 0, - 22, 21, 0, 172, 25, 27, 33, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 169, 170, 0, - 165, 86, 134, 132, 0, 0, 356, 0, 354, 349, - 351, 413, 412, 0, 404, 0, 416, 414, 0, 0, - 0, 399, 400, 373, 0, 74, 75, 77, 76, 79, - 80, 81, 82, 83, 78, 73, 0, 0, 388, 384, - 386, 117, 0, 361, 0, 121, 0, 99, 11, 0, - 18, 15, 26, 39, 40, 41, 44, 43, 46, 47, - 51, 52, 49, 50, 54, 55, 57, 59, 61, 63, - 65, 67, 0, 171, 347, 0, 357, 0, 352, 0, - 0, 0, 415, 0, 398, 0, 375, 72, 85, 116, - 359, 0, 97, 13, 0, 353, 355, 0, 407, 406, - 409, 381, 394, 392, 0, 0, 0, 0, 360, 362, - 0, 0, 408, 0, 0, 391, 0, 0, 389, 0, - 0, 0, 376, 70, 0, 410, 0, 381, 380, 382, - 396, 0, 378, 401, 377, 0, 411, 405, 390, 397, - 0, 393, 403, 395 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 292, 293, 294, 459, 295, 296, 297, 298, 299, - 300, 301, 344, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 345, 482, 346, 446, 347, - 412, 348, 202, 369, 275, 349, 204, 205, 206, 235, - 236, 237, 207, 208, 209, 210, 211, 212, 255, 256, - 213, 214, 215, 216, 252, 316, 248, 218, 219, 220, - 323, 258, 326, 327, 417, 418, 367, 454, 351, 352, - 353, 354, 434, 517, 543, 525, 526, 527, 544, 355, - 356, 357, 528, 516, 358, 529, 550, 359, 360, 495, - 423, 490, 510, 523, 524, 361, 221, 222, 223, 232 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ #define YYPACT_NINF -495 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-495))) + +#define YYTABLE_NINF -380 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ static const yytype_int16 yypact[] = { 2402, -495, -495, -495, -495, -495, -495, -495, -495, -495, @@ -1356,7 +1037,70 @@ static const yytype_int16 yypact[] = -27, -495, -495, -495 }; -/* YYPGOTO[NTERM-NUM]. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 0, 146, 147, 145, 179, 173, 174, 175, 176, 177, + 178, 162, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 180, 181, 182, + 201, 202, 203, 151, 149, 150, 148, 154, 152, 153, + 155, 156, 157, 158, 159, 160, 161, 183, 184, 185, + 213, 214, 215, 128, 127, 126, 0, 129, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 239, 240, + 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, + 253, 254, 255, 256, 257, 258, 259, 237, 238, 245, + 252, 260, 261, 262, 263, 264, 265, 334, 266, 267, + 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, + 279, 280, 282, 283, 284, 285, 286, 287, 289, 290, + 291, 292, 293, 294, 274, 281, 288, 295, 296, 297, + 298, 299, 300, 335, 336, 337, 338, 339, 340, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 0, 172, 342, 125, 136, 343, 344, 345, + 0, 420, 0, 421, 0, 102, 101, 0, 113, 118, + 143, 142, 140, 144, 0, 137, 139, 123, 166, 141, + 341, 0, 417, 419, 0, 0, 0, 348, 0, 0, + 90, 87, 0, 100, 0, 109, 103, 111, 0, 112, + 0, 88, 119, 0, 93, 138, 124, 0, 167, 1, + 418, 164, 0, 135, 133, 0, 131, 346, 0, 0, + 91, 0, 0, 422, 104, 108, 110, 106, 114, 105, + 0, 120, 96, 0, 94, 0, 2, 8, 9, 4, + 5, 6, 7, 10, 0, 0, 0, 168, 36, 35, + 37, 34, 3, 12, 30, 14, 19, 20, 0, 0, + 24, 0, 38, 0, 42, 45, 48, 53, 56, 58, + 60, 62, 64, 66, 68, 0, 28, 0, 163, 0, + 0, 130, 0, 0, 0, 0, 0, 350, 89, 92, + 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 374, 383, 387, 38, 71, 84, 0, 363, 0, + 123, 366, 385, 365, 364, 0, 367, 368, 369, 370, + 371, 372, 107, 0, 115, 0, 358, 122, 0, 0, + 98, 0, 95, 31, 32, 0, 16, 17, 0, 0, + 22, 21, 0, 172, 25, 27, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 169, 170, 0, + 165, 86, 134, 132, 0, 0, 356, 0, 354, 349, + 351, 413, 412, 0, 404, 0, 416, 414, 0, 0, + 0, 399, 400, 373, 0, 74, 75, 77, 76, 79, + 80, 81, 82, 83, 78, 73, 0, 0, 388, 384, + 386, 117, 0, 361, 0, 121, 0, 99, 11, 0, + 18, 15, 26, 39, 40, 41, 44, 43, 46, 47, + 51, 52, 49, 50, 54, 55, 57, 59, 61, 63, + 65, 67, 0, 171, 347, 0, 357, 0, 352, 0, + 0, 0, 415, 0, 398, 0, 375, 72, 85, 116, + 359, 0, 97, 13, 0, 353, 355, 0, 407, 406, + 409, 381, 394, 392, 0, 0, 0, 0, 360, 362, + 0, 0, 408, 0, 0, 391, 0, 0, 389, 0, + 0, 0, 376, 70, 0, 410, 0, 381, 380, 382, + 396, 0, 378, 401, 377, 0, 411, 405, 390, 397, + 0, 393, 403, 395 +}; + + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, @@ -1371,10 +1115,24 @@ static const yytype_int16 yypgoto[] = -495, -495, -495, -495, -495, -495, -495, 27, -495, -495 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -380 + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 292, 293, 294, 459, 295, 296, 297, 298, 299, + 300, 301, 344, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 345, 482, 346, 446, 347, + 412, 348, 202, 369, 275, 349, 204, 205, 206, 235, + 236, 237, 207, 208, 209, 210, 211, 212, 255, 256, + 213, 214, 215, 216, 252, 316, 248, 218, 219, 220, + 323, 258, 326, 327, 417, 418, 367, 454, 351, 352, + 353, 354, 434, 517, 543, 525, 526, 527, 544, 355, + 356, 357, 528, 516, 358, 529, 550, 359, 360, 495, + 423, 490, 510, 523, 524, 361, 221, 222, 223, 232 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 217, 238, 245, 201, 366, 203, 375, 450, 261, 253, @@ -1976,12 +1734,6 @@ static const yytype_int16 yytable[] = 190, 191, 192, 193, 0, 0, 194 }; -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-495))) - -#define yytable_value_is_error(Yytable_value) \ - YYID (0) - static const yytype_int16 yycheck[] = { 0, 206, 214, 0, 270, 0, 286, 355, 229, 54, @@ -2583,8 +2335,8 @@ static const yytype_int16 yycheck[] = 203, 204, 205, 206, -1, -1, 209 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, @@ -2645,30 +2397,112 @@ static const yytype_uint16 yystos[] = 357, 337, 248, 243 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 271, 272, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 274, 274, 274, 274, 274, 274, 275, 276, + 277, 278, 278, 279, 279, 280, 280, 281, 282, 282, + 283, 283, 283, 283, 284, 284, 284, 284, 285, 285, + 285, 285, 286, 286, 286, 287, 287, 287, 288, 288, + 288, 288, 288, 289, 289, 289, 290, 290, 291, 291, + 292, 292, 293, 293, 294, 294, 295, 295, 296, 297, + 296, 298, 298, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 300, 300, 301, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 304, 303, 305, 305, + 306, 307, 307, 308, 308, 309, 310, 310, 311, 311, + 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, + 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, + 318, 319, 319, 320, 320, 320, 321, 322, 322, 323, + 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 325, 325, 326, 326, 327, 327, + 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 329, 329, 329, 331, 330, 332, 330, + 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, + 337, 338, 338, 339, 340, 340, 341, 341, 341, 341, + 341, 341, 341, 342, 343, 344, 342, 345, 345, 347, + 346, 348, 346, 349, 349, 350, 350, 351, 351, 352, + 353, 353, 354, 354, 356, 355, 357, 357, 358, 358, + 360, 359, 361, 359, 362, 359, 363, 363, 364, 364, + 365, 365, 366, 366, 366, 366, 366, 367, 367, 368, + 368, 370, 369 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, + 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, + 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, + 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, + 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, + 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, + 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 1, 3, 1, 2, 2, 3, + 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, + 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, + 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, + 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, + 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, + 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, + 1, 0, 3 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2685,27 +2519,15 @@ do \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) + YYERROR; \ + } \ +while (0) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval, parseContext) -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2715,58 +2537,47 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - glslang::TParseContext* pParseContext; -#endif { FILE *yyo = yyoutput; YYUSE (yyo); + YYUSE (pParseContext); if (!yyvaluep) return; - YYUSE (pParseContext); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -2774,23 +2585,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) | Print this symbol on YYOUTPUT. | `--------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; - glslang::TParseContext* pParseContext; -#endif { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); @@ -2801,16 +2600,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) -#else -static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; -#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2821,50 +2612,42 @@ yy_stack_print (yybottom, yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) -#else -static void -yy_reduce_print (yyvsp, yyrule, pParseContext) - YYSTYPE *yyvsp; - int yyrule; - glslang::TParseContext* pParseContext; -#endif +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) { + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule, pParseContext); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2878,7 +2661,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2901,15 +2684,8 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -2925,16 +2701,8 @@ yystrlen (yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2964,27 +2732,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -3007,11 +2775,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -3019,10 +2787,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: - - Assume YYFAIL is not used. It's too flawed to consider. See - - for details. YYERROR is fine as it does not invoke this - function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -3072,7 +2836,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -3139,33 +2903,18 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) -#else -static void -yydestruct (yymsg, yytype, yyvaluep, pParseContext) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; - glslang::TParseContext* pParseContext; -#endif { YYUSE (yyvaluep); YYUSE (pParseContext); - if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3175,56 +2924,18 @@ yydestruct (yymsg, yytype, yyvaluep, pParseContext) | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (glslang::TParseContext* pParseContext) -#else -int -yyparse (pParseContext) - glslang::TParseContext* pParseContext; -#endif -#endif { /* The lookahead symbol. */ int yychar; -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else +/* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -static YYSTYPE yyval_default; -# define YY_INITIAL_VALUE(Value) = Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -3234,8 +2945,8 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); int yyerrstatus; /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. + 'yyss': related to states. + 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3303,23 +3014,23 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3327,22 +3038,22 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3351,10 +3062,10 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3383,7 +3094,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + yychar = yylex (&yylval, parseContext); } if (yychar <= YYEOF) @@ -3448,7 +3159,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3462,248 +3173,247 @@ yyreduce: switch (yyn) { case 2: -/* Line 1792 of yacc.c */ -#line 246 "glslang.y" +#line 246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } +#line 3181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -/* Line 1792 of yacc.c */ -#line 252 "glslang.y" +#line 252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -/* Line 1792 of yacc.c */ -#line 255 "glslang.y" +#line 255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } +#line 3197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -/* Line 1792 of yacc.c */ -#line 258 "glslang.y" +#line 258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } +#line 3206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -/* Line 1792 of yacc.c */ -#line 262 "glslang.y" +#line 262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } +#line 3215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -/* Line 1792 of yacc.c */ -#line 266 "glslang.y" +#line 266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } +#line 3224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -/* Line 1792 of yacc.c */ -#line 270 "glslang.y" +#line 270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } +#line 3232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -/* Line 1792 of yacc.c */ -#line 273 "glslang.y" +#line 273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } +#line 3241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -/* Line 1792 of yacc.c */ -#line 277 "glslang.y" +#line 277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } +#line 3249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -/* Line 1792 of yacc.c */ -#line 280 "glslang.y" +#line 280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } +#line 3259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -/* Line 1792 of yacc.c */ -#line 288 "glslang.y" +#line 288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -/* Line 1792 of yacc.c */ -#line 291 "glslang.y" +#line 291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } +#line 3275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -/* Line 1792 of yacc.c */ -#line 294 "glslang.y" +#line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -/* Line 1792 of yacc.c */ -#line 297 "glslang.y" +#line 297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } +#line 3291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -/* Line 1792 of yacc.c */ -#line 300 "glslang.y" +#line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } +#line 3301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -/* Line 1792 of yacc.c */ -#line 305 "glslang.y" +#line 305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } +#line 3311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -/* Line 1792 of yacc.c */ -#line 313 "glslang.y" +#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -/* Line 1792 of yacc.c */ -#line 320 "glslang.y" +#line 320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); - delete (yyvsp[(1) - (1)].interm).function; + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); + delete (yyvsp[0].interm).function; } +#line 3329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -/* Line 1792 of yacc.c */ -#line 327 "glslang.y" +#line 327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); } +#line 3337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -/* Line 1792 of yacc.c */ -#line 333 "glslang.y" +#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm).loc = (yyvsp[0].lex).loc; } +#line 3346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -/* Line 1792 of yacc.c */ -#line 337 "glslang.y" +#line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm).loc = (yyvsp[0].lex).loc; } +#line 3355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -/* Line 1792 of yacc.c */ -#line 344 "glslang.y" +#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm) = (yyvsp[-1].interm); } +#line 3363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -/* Line 1792 of yacc.c */ -#line 347 "glslang.y" +#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); } +#line 3371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -/* Line 1792 of yacc.c */ -#line 353 "glslang.y" +#line 353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); - (yyvsp[(1) - (2)].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; - (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); + param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); + (yyvsp[-1].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[-1].interm).function; + (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } +#line 3383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -/* Line 1792 of yacc.c */ -#line 360 "glslang.y" +#line 360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); - (yyvsp[(1) - (3)].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); + (yyvsp[-2].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[-2].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); } +#line 3395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -/* Line 1792 of yacc.c */ -#line 370 "glslang.y" +#line 370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm) = (yyvsp[-1].interm); } +#line 3403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -/* Line 1792 of yacc.c */ -#line 378 "glslang.y" +#line 378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Constructor (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } +#line 3413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: -/* Line 1792 of yacc.c */ -#line 383 "glslang.y" +#line 383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -3711,18 +3421,18 @@ yyreduce: (yyval.interm).function = 0; (yyval.interm).intermNode = 0; - TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); + TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { - TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); + TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else - parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { @@ -3731,3710 +3441,3711 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } +#line 3445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: -/* Line 1792 of yacc.c */ -#line 413 "glslang.y" +#line 413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); + parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } +#line 3456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: -/* Line 1792 of yacc.c */ -#line 419 "glslang.y" +#line 419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } +#line 3465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: -/* Line 1792 of yacc.c */ -#line 423 "glslang.y" +#line 423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); } +#line 3474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: -/* Line 1792 of yacc.c */ -#line 427 "glslang.y" +#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (2)].interm).op != EOpNull) { + if ((yyvsp[-1].interm).op != EOpNull) { char errorOp[2] = {0, 0}; - switch((yyvsp[(1) - (2)].interm).op) { + switch((yyvsp[-1].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); } else { - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } +#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: -/* Line 1792 of yacc.c */ -#line 447 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } +#line 447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } +#line 3501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: -/* Line 1792 of yacc.c */ -#line 448 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } +#line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } +#line 3507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 36: -/* Line 1792 of yacc.c */ -#line 449 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } +#line 449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } +#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 37: -/* Line 1792 of yacc.c */ -#line 450 "glslang.y" - { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } +#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } +#line 3520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 38: -/* Line 1792 of yacc.c */ -#line 456 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 39: -/* Line 1792 of yacc.c */ -#line 457 "glslang.y" +#line 457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: -/* Line 1792 of yacc.c */ -#line 462 "glslang.y" +#line 462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -/* Line 1792 of yacc.c */ -#line 467 "glslang.y" +#line 467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -/* Line 1792 of yacc.c */ -#line 476 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: -/* Line 1792 of yacc.c */ -#line 477 "glslang.y" +#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: -/* Line 1792 of yacc.c */ -#line 482 "glslang.y" +#line 482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -/* Line 1792 of yacc.c */ -#line 490 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: -/* Line 1792 of yacc.c */ -#line 491 "glslang.y" +#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: -/* Line 1792 of yacc.c */ -#line 497 "glslang.y" +#line 497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -/* Line 1792 of yacc.c */ -#line 506 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: -/* Line 1792 of yacc.c */ -#line 507 "glslang.y" +#line 507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: -/* Line 1792 of yacc.c */ -#line 512 "glslang.y" +#line 512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -/* Line 1792 of yacc.c */ -#line 517 "glslang.y" +#line 517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -/* Line 1792 of yacc.c */ -#line 522 "glslang.y" +#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -/* Line 1792 of yacc.c */ -#line 530 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: -/* Line 1792 of yacc.c */ -#line 531 "glslang.y" +#line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: -/* Line 1792 of yacc.c */ -#line 539 "glslang.y" +#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -/* Line 1792 of yacc.c */ -#line 550 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: -/* Line 1792 of yacc.c */ -#line 551 "glslang.y" +#line 551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: -/* Line 1792 of yacc.c */ -#line 560 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: -/* Line 1792 of yacc.c */ -#line 561 "glslang.y" +#line 561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: -/* Line 1792 of yacc.c */ -#line 570 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: -/* Line 1792 of yacc.c */ -#line 571 "glslang.y" +#line 571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 3740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: -/* Line 1792 of yacc.c */ -#line 580 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: -/* Line 1792 of yacc.c */ -#line 581 "glslang.y" +#line 581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: -/* Line 1792 of yacc.c */ -#line 589 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: -/* Line 1792 of yacc.c */ -#line 590 "glslang.y" +#line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: -/* Line 1792 of yacc.c */ -#line 598 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: -/* Line 1792 of yacc.c */ -#line 599 "glslang.y" +#line 599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } +#line 3788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: -/* Line 1792 of yacc.c */ -#line 607 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: -/* Line 1792 of yacc.c */ -#line 608 "glslang.y" +#line 608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } +#line 3802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: -/* Line 1792 of yacc.c */ -#line 611 "glslang.y" +#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); + parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); + parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } +#line 3819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: -/* Line 1792 of yacc.c */ -#line 626 "glslang.y" - { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } +#line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: -/* Line 1792 of yacc.c */ -#line 627 "glslang.y" +#line 627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); + parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } +#line 3842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: -/* Line 1792 of yacc.c */ -#line 642 "glslang.y" +#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } +#line 3851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -/* Line 1792 of yacc.c */ -#line 646 "glslang.y" +#line 646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } +#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -/* Line 1792 of yacc.c */ -#line 650 "glslang.y" +#line 650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } +#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -/* Line 1792 of yacc.c */ -#line 654 "glslang.y" +#line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } +#line 3879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -/* Line 1792 of yacc.c */ -#line 659 "glslang.y" +#line 659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } +#line 3888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -/* Line 1792 of yacc.c */ -#line 663 "glslang.y" +#line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } +#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -/* Line 1792 of yacc.c */ -#line 667 "glslang.y" +#line 667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } +#line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -/* Line 1792 of yacc.c */ -#line 671 "glslang.y" +#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } +#line 3915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -/* Line 1792 of yacc.c */ -#line 675 "glslang.y" +#line 675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } +#line 3924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -/* Line 1792 of yacc.c */ -#line 679 "glslang.y" +#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } +#line 3933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -/* Line 1792 of yacc.c */ -#line 683 "glslang.y" +#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } +#line 3942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -/* Line 1792 of yacc.c */ -#line 690 "glslang.y" +#line 690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -/* Line 1792 of yacc.c */ -#line 693 "glslang.y" +#line 693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); + parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } +#line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -/* Line 1792 of yacc.c */ -#line 703 "glslang.y" +#line 704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 3972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -/* Line 1792 of yacc.c */ -#line 710 "glslang.y" +#line 711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); + parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } +#line 3982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -/* Line 1792 of yacc.c */ -#line 715 "glslang.y" +#line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) - (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; + if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) + (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } +#line 3992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -/* Line 1792 of yacc.c */ -#line 720 "glslang.y" +#line 721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); + parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); + parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } +#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -/* Line 1792 of yacc.c */ -#line 728 "glslang.y" +#line 729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); + parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } +#line 4014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -/* Line 1792 of yacc.c */ -#line 732 "glslang.y" +#line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); + parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } +#line 4023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -/* Line 1792 of yacc.c */ -#line 736 "glslang.y" +#line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); + parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } +#line 4032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -/* Line 1792 of yacc.c */ -#line 740 "glslang.y" +#line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } +#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -/* Line 1792 of yacc.c */ -#line 745 "glslang.y" +#line 746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); + parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } +#line 4052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -/* Line 1792 of yacc.c */ -#line 750 "glslang.y" +#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); - (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); - parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); + parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); + (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); + parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } +#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -/* Line 1792 of yacc.c */ -#line 759 "glslang.y" - { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } +#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } +#line 4069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: -/* Line 1792 of yacc.c */ -#line 759 "glslang.y" +#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[(2) - (6)].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; - (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); + parseContext.blockName = (yyvsp[-4].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[-5].interm.type).loc; + (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } +#line 4083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: -/* Line 1792 of yacc.c */ -#line 770 "glslang.y" +#line 771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); + (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } +#line 4092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -/* Line 1792 of yacc.c */ -#line 774 "glslang.y" +#line 775 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); + (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } +#line 4101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -/* Line 1792 of yacc.c */ -#line 781 "glslang.y" +#line 782 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + (yyval.interm).function = (yyvsp[-1].interm.function); + (yyval.interm).loc = (yyvsp[0].lex).loc; } +#line 4110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -/* Line 1792 of yacc.c */ -#line 788 "glslang.y" +#line 789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + (yyval.interm.function) = (yyvsp[0].interm.function); } +#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -/* Line 1792 of yacc.c */ -#line 791 "glslang.y" +#line 792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + (yyval.interm.function) = (yyvsp[0].interm.function); } +#line 4126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -/* Line 1792 of yacc.c */ -#line 798 "glslang.y" +#line 799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Add the parameter - (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); - if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); + (yyval.interm.function) = (yyvsp[-1].interm.function); + if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); else - delete (yyvsp[(2) - (2)].interm).param.type; + delete (yyvsp[0].interm).param.type; } +#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -/* Line 1792 of yacc.c */ -#line 806 "glslang.y" +#line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // - if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { + if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // - parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[(3) - (3)].interm).param.type; + parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[0].interm).param.type; } else { // Add the parameter - (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); - (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); + (yyval.interm.function) = (yyvsp[-2].interm.function); + (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } +#line 4161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: -/* Line 1792 of yacc.c */ -#line 826 "glslang.y" +#line 827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); + if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); } - if ((yyvsp[(1) - (3)].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + if ((yyvsp[-2].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; - TType type((yyvsp[(1) - (3)].interm.type)); - function = new TFunction((yyvsp[(2) - (3)].lex).string, type); + TType type((yyvsp[-2].interm.type)); + function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } +#line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: -/* Line 1792 of yacc.c */ -#line 844 "glslang.y" +#line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (2)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); + if ((yyvsp[-1].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); } - if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); + if ((yyvsp[-1].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); } - parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); + parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); - TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; - (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; + TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; + (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } +#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: -/* Line 1792 of yacc.c */ -#line 859 "glslang.y" +#line 860 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (3)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } - parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); + parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.type).arraySizes, (yyvsp[0].interm).arraySizes); - parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); + parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); - (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; + (yyvsp[-2].interm.type).arraySizes = (yyvsp[0].interm).arraySizes; - TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; - (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; + TParameter param = { (yyvsp[-1].lex).string, new TType((yyvsp[-2].interm.type))}; + (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } +#line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: -/* Line 1792 of yacc.c */ -#line 882 "glslang.y" +#line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(2) - (2)].interm); - if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + (yyval.interm) = (yyvsp[0].interm); + if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } +#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: -/* Line 1792 of yacc.c */ -#line 893 "glslang.y" +#line 894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); - parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); + parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } +#line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -/* Line 1792 of yacc.c */ -#line 903 "glslang.y" +#line 904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(2) - (2)].interm); - if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + (yyval.interm) = (yyvsp[0].interm); + if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } +#line 4265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -/* Line 1792 of yacc.c */ -#line 913 "glslang.y" +#line 914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); - parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); - parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); + parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } +#line 4277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -/* Line 1792 of yacc.c */ -#line 923 "glslang.y" +#line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; + TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; (yyval.interm).param = param; - if ((yyvsp[(1) - (1)].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); + if ((yyvsp[0].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } +#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -/* Line 1792 of yacc.c */ -#line 932 "glslang.y" +#line 933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (1)].interm); + (yyval.interm) = (yyvsp[0].interm); } +#line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -/* Line 1792 of yacc.c */ -#line 935 "glslang.y" +#line 936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (3)].interm); - parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); + (yyval.interm) = (yyvsp[-2].interm); + parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } +#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -/* Line 1792 of yacc.c */ -#line 939 "glslang.y" +#line 940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (4)].interm); - parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); + (yyval.interm) = (yyvsp[-3].interm); + parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } +#line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -/* Line 1792 of yacc.c */ -#line 943 "glslang.y" +#line 944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); + (yyval.interm).type = (yyvsp[-5].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } +#line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -/* Line 1792 of yacc.c */ -#line 948 "glslang.y" +#line 949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); + (yyval.interm).type = (yyvsp[-4].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } +#line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -/* Line 1792 of yacc.c */ -#line 956 "glslang.y" +#line 957 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); + (yyval.interm).type = (yyvsp[0].interm.type); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } +#line 4344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -/* Line 1792 of yacc.c */ -#line 961 "glslang.y" +#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); + (yyval.interm).type = (yyvsp[-1].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); + parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } +#line 4354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -/* Line 1792 of yacc.c */ -#line 966 "glslang.y" +#line 967 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); + (yyval.interm).type = (yyvsp[-2].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); + parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } +#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -/* Line 1792 of yacc.c */ -#line 971 "glslang.y" +#line 972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); + (yyval.interm).type = (yyvsp[-4].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } +#line 4374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -/* Line 1792 of yacc.c */ -#line 976 "glslang.y" +#line 977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); + (yyval.interm).type = (yyvsp[-3].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } +#line 4384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -/* Line 1792 of yacc.c */ -#line 985 "glslang.y" +#line 986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); - parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[(1) - (1)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[0].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } +#line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: -/* Line 1792 of yacc.c */ -#line 996 "glslang.y" +#line 997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); - if ((yyvsp[(2) - (2)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[0].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } - if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) - (yyvsp[(2) - (2)].interm.type).arraySizes = 0; + if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) + (yyvsp[0].interm.type).arraySizes = 0; - parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); - (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); + (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); - (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } +#line 4429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: -/* Line 1792 of yacc.c */ -#line 1023 "glslang.y" +#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); + parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } +#line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -/* Line 1792 of yacc.c */ -#line 1032 "glslang.y" +#line 1033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } +#line 4452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -/* Line 1792 of yacc.c */ -#line 1039 "glslang.y" +#line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } +#line 4464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -/* Line 1792 of yacc.c */ -#line 1046 "glslang.y" +#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); - parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); + parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } +#line 4476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -/* Line 1792 of yacc.c */ -#line 1053 "glslang.y" +#line 1054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { #ifdef AMD_EXTENSIONS - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.explicitInterp = true; #endif } +#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -/* Line 1792 of yacc.c */ -#line 1065 "glslang.y" +#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); + (yyval.interm.type) = (yyvsp[-1].interm.type); } +#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -/* Line 1792 of yacc.c */ -#line 1071 "glslang.y" +#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -/* Line 1792 of yacc.c */ -#line 1074 "glslang.y" +#line 1075 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[-2].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } +#line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -/* Line 1792 of yacc.c */ -#line 1081 "glslang.y" +#line 1082 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); - parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); + (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } +#line 4525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -/* Line 1792 of yacc.c */ -#line 1085 "glslang.y" +#line 1086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); - parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.type).init((yyvsp[-2].lex).loc); + parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } +#line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -/* Line 1792 of yacc.c */ -#line 1089 "glslang.y" +#line 1090 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); + parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } +#line 4544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -/* Line 1792 of yacc.c */ -#line 1097 "glslang.y" +#line 1098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } +#line 4555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -/* Line 1792 of yacc.c */ -#line 1106 "glslang.y" +#line 1107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -/* Line 1792 of yacc.c */ -#line 1109 "glslang.y" +#line 1110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; + (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } +#line 4576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -/* Line 1792 of yacc.c */ -#line 1120 "glslang.y" +#line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -/* Line 1792 of yacc.c */ -#line 1123 "glslang.y" +#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -/* Line 1792 of yacc.c */ -#line 1126 "glslang.y" +#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -/* Line 1792 of yacc.c */ -#line 1129 "glslang.y" +#line 1130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -/* Line 1792 of yacc.c */ -#line 1133 "glslang.y" +#line 1134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -/* Line 1792 of yacc.c */ -#line 1137 "glslang.y" +#line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); } +#line 4627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -/* Line 1792 of yacc.c */ -#line 1144 "glslang.y" +#line 1145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } +#line 4636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -/* Line 1792 of yacc.c */ -#line 1148 "glslang.y" +#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); + parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } +#line 4653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -/* Line 1792 of yacc.c */ -#line 1160 "glslang.y" +#line 1161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); + parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } +#line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -/* Line 1792 of yacc.c */ -#line 1174 "glslang.y" +#line 1175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } +#line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -/* Line 1792 of yacc.c */ -#line 1179 "glslang.y" +#line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } +#line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -/* Line 1792 of yacc.c */ -#line 1185 "glslang.y" +#line 1186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } +#line 4704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -/* Line 1792 of yacc.c */ -#line 1191 "glslang.y" +#line 1192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } +#line 4716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -/* Line 1792 of yacc.c */ -#line 1198 "glslang.y" +#line 1199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); + parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } +#line 4727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -/* Line 1792 of yacc.c */ -#line 1204 "glslang.y" +#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } +#line 4737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -/* Line 1792 of yacc.c */ -#line 1209 "glslang.y" +#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } +#line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -/* Line 1792 of yacc.c */ -#line 1214 "glslang.y" +#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } +#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -/* Line 1792 of yacc.c */ -#line 1219 "glslang.y" +#line 1220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } +#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -/* Line 1792 of yacc.c */ -#line 1226 "glslang.y" +#line 1227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } +#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -/* Line 1792 of yacc.c */ -#line 1230 "glslang.y" +#line 1231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } +#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -/* Line 1792 of yacc.c */ -#line 1234 "glslang.y" +#line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } +#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -/* Line 1792 of yacc.c */ -#line 1238 "glslang.y" +#line 1239 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } +#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -/* Line 1792 of yacc.c */ -#line 1242 "glslang.y" +#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } +#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -/* Line 1792 of yacc.c */ -#line 1246 "glslang.y" +#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } +#line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -/* Line 1792 of yacc.c */ -#line 1252 "glslang.y" +#line 1253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); + parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[-3].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } +#line 4839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -/* Line 1792 of yacc.c */ -#line 1264 "glslang.y" +#line 1265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO: 4.0 functionality: subroutine type to list } +#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -/* Line 1792 of yacc.c */ -#line 1267 "glslang.y" +#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { } +#line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -/* Line 1792 of yacc.c */ -#line 1272 "glslang.y" +#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } +#line 4863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -/* Line 1792 of yacc.c */ -#line 1276 "glslang.y" +#line 1277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); - (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0); + (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; + (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } +#line 4874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -/* Line 1792 of yacc.c */ -#line 1285 "glslang.y" +#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } +#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -/* Line 1792 of yacc.c */ -#line 1290 "glslang.y" +#line 1291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; + (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; TArraySize size; - parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); + parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } +#line 4897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -/* Line 1792 of yacc.c */ -#line 1298 "glslang.y" +#line 1299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (3)].interm); + (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } +#line 4906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -/* Line 1792 of yacc.c */ -#line 1302 "glslang.y" +#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm) = (yyvsp[(1) - (4)].interm); + (yyval.interm) = (yyvsp[-3].interm); TArraySize size; - parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); + parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } +#line 4918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -/* Line 1792 of yacc.c */ -#line 1312 "glslang.y" +#line 1313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } +#line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -/* Line 1792 of yacc.c */ -#line 1316 "glslang.y" +#line 1317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } +#line 4936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -/* Line 1792 of yacc.c */ -#line 1320 "glslang.y" +#line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } +#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -/* Line 1792 of yacc.c */ -#line 1325 "glslang.y" +#line 1326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } +#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -/* Line 1792 of yacc.c */ -#line 1329 "glslang.y" +#line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } +#line 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -/* Line 1792 of yacc.c */ -#line 1334 "glslang.y" +#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } +#line 4975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -/* Line 1792 of yacc.c */ -#line 1339 "glslang.y" +#line 1340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } +#line 4985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -/* Line 1792 of yacc.c */ -#line 1344 "glslang.y" +#line 1345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } +#line 4994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -/* Line 1792 of yacc.c */ -#line 1348 "glslang.y" +#line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } +#line 5004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -/* Line 1792 of yacc.c */ -#line 1353 "glslang.y" +#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } +#line 5014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -/* Line 1792 of yacc.c */ -#line 1358 "glslang.y" +#line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } +#line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -/* Line 1792 of yacc.c */ -#line 1363 "glslang.y" +#line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } +#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -/* Line 1792 of yacc.c */ -#line 1369 "glslang.y" +#line 1370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } +#line 5046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -/* Line 1792 of yacc.c */ -#line 1375 "glslang.y" +#line 1376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } +#line 5057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -/* Line 1792 of yacc.c */ -#line 1381 "glslang.y" +#line 1382 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } +#line 5067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -/* Line 1792 of yacc.c */ -#line 1386 "glslang.y" +#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } +#line 5077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -/* Line 1792 of yacc.c */ -#line 1391 "glslang.y" +#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } +#line 5087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -/* Line 1792 of yacc.c */ -#line 1396 "glslang.y" +#line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } +#line 5097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -/* Line 1792 of yacc.c */ -#line 1401 "glslang.y" +#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } +#line 5107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -/* Line 1792 of yacc.c */ -#line 1406 "glslang.y" +#line 1407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } +#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -/* Line 1792 of yacc.c */ -#line 1411 "glslang.y" +#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } +#line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -/* Line 1792 of yacc.c */ -#line 1417 "glslang.y" +#line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } +#line 5139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -/* Line 1792 of yacc.c */ -#line 1423 "glslang.y" +#line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } +#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -/* Line 1792 of yacc.c */ -#line 1429 "glslang.y" +#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } +#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -/* Line 1792 of yacc.c */ -#line 1435 "glslang.y" +#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } +#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -/* Line 1792 of yacc.c */ -#line 1441 "glslang.y" +#line 1442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } +#line 5183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -/* Line 1792 of yacc.c */ -#line 1447 "glslang.y" +#line 1448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } +#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -/* Line 1792 of yacc.c */ -#line 1453 "glslang.y" +#line 1454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } +#line 5205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -/* Line 1792 of yacc.c */ -#line 1459 "glslang.y" +#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } +#line 5216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -/* Line 1792 of yacc.c */ -#line 1465 "glslang.y" +#line 1466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } +#line 5226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -/* Line 1792 of yacc.c */ -#line 1470 "glslang.y" +#line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } +#line 5236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -/* Line 1792 of yacc.c */ -#line 1475 "glslang.y" +#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } +#line 5246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -/* Line 1792 of yacc.c */ -#line 1480 "glslang.y" +#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } +#line 5256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -/* Line 1792 of yacc.c */ -#line 1485 "glslang.y" +#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } +#line 5266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -/* Line 1792 of yacc.c */ -#line 1490 "glslang.y" +#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } +#line 5276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -/* Line 1792 of yacc.c */ -#line 1495 "glslang.y" +#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } +#line 5286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -/* Line 1792 of yacc.c */ -#line 1500 "glslang.y" +#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } +#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -/* Line 1792 of yacc.c */ -#line 1505 "glslang.y" +#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } +#line 5306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -/* Line 1792 of yacc.c */ -#line 1510 "glslang.y" +#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } +#line 5316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -/* Line 1792 of yacc.c */ -#line 1515 "glslang.y" +#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } +#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -/* Line 1792 of yacc.c */ -#line 1520 "glslang.y" +#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } +#line 5336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -/* Line 1792 of yacc.c */ -#line 1525 "glslang.y" +#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } +#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -/* Line 1792 of yacc.c */ -#line 1531 "glslang.y" +#line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } +#line 5358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -/* Line 1792 of yacc.c */ -#line 1537 "glslang.y" +#line 1538 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } +#line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -/* Line 1792 of yacc.c */ -#line 1543 "glslang.y" +#line 1544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } +#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -/* Line 1792 of yacc.c */ -#line 1549 "glslang.y" +#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } +#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -/* Line 1792 of yacc.c */ -#line 1555 "glslang.y" +#line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } +#line 5402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -/* Line 1792 of yacc.c */ -#line 1561 "glslang.y" +#line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } +#line 5413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -/* Line 1792 of yacc.c */ -#line 1567 "glslang.y" +#line 1568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } +#line 5424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -/* Line 1792 of yacc.c */ -#line 1573 "glslang.y" +#line 1574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } +#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -/* Line 1792 of yacc.c */ -#line 1579 "glslang.y" +#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } +#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -/* Line 1792 of yacc.c */ -#line 1585 "glslang.y" +#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } +#line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -/* Line 1792 of yacc.c */ -#line 1591 "glslang.y" +#line 1592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } +#line 5468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -/* Line 1792 of yacc.c */ -#line 1597 "glslang.y" +#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } +#line 5478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -/* Line 1792 of yacc.c */ -#line 1602 "glslang.y" +#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } +#line 5488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -/* Line 1792 of yacc.c */ -#line 1607 "glslang.y" +#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } +#line 5498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -/* Line 1792 of yacc.c */ -#line 1612 "glslang.y" +#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } +#line 5508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -/* Line 1792 of yacc.c */ -#line 1617 "glslang.y" +#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } +#line 5518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -/* Line 1792 of yacc.c */ -#line 1622 "glslang.y" +#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } +#line 5528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -/* Line 1792 of yacc.c */ -#line 1627 "glslang.y" +#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } +#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -/* Line 1792 of yacc.c */ -#line 1632 "glslang.y" +#line 1633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } +#line 5548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -/* Line 1792 of yacc.c */ -#line 1637 "glslang.y" +#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } +#line 5558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -/* Line 1792 of yacc.c */ -#line 1642 "glslang.y" +#line 1643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } +#line 5568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -/* Line 1792 of yacc.c */ -#line 1647 "glslang.y" +#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } +#line 5578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -/* Line 1792 of yacc.c */ -#line 1652 "glslang.y" +#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } +#line 5588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -/* Line 1792 of yacc.c */ -#line 1657 "glslang.y" +#line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } +#line 5598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -/* Line 1792 of yacc.c */ -#line 1662 "glslang.y" +#line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } +#line 5608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -/* Line 1792 of yacc.c */ -#line 1667 "glslang.y" +#line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } +#line 5618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -/* Line 1792 of yacc.c */ -#line 1672 "glslang.y" +#line 1673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } +#line 5628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -/* Line 1792 of yacc.c */ -#line 1677 "glslang.y" +#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } +#line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -/* Line 1792 of yacc.c */ -#line 1682 "glslang.y" +#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } +#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -/* Line 1792 of yacc.c */ -#line 1687 "glslang.y" +#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } +#line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -/* Line 1792 of yacc.c */ -#line 1692 "glslang.y" +#line 1693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } +#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -/* Line 1792 of yacc.c */ -#line 1697 "glslang.y" +#line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } +#line 5678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -/* Line 1792 of yacc.c */ -#line 1702 "glslang.y" +#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } +#line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -/* Line 1792 of yacc.c */ -#line 1707 "glslang.y" +#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } +#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -/* Line 1792 of yacc.c */ -#line 1712 "glslang.y" +#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } +#line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -/* Line 1792 of yacc.c */ -#line 1717 "glslang.y" +#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } +#line 5718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -/* Line 1792 of yacc.c */ -#line 1722 "glslang.y" +#line 1723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } +#line 5728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -/* Line 1792 of yacc.c */ -#line 1727 "glslang.y" +#line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } +#line 5738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -/* Line 1792 of yacc.c */ -#line 1732 "glslang.y" +#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } +#line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -/* Line 1792 of yacc.c */ -#line 1737 "glslang.y" +#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } +#line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -/* Line 1792 of yacc.c */ -#line 1742 "glslang.y" +#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } +#line 5768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -/* Line 1792 of yacc.c */ -#line 1747 "glslang.y" +#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } +#line 5778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -/* Line 1792 of yacc.c */ -#line 1752 "glslang.y" +#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } +#line 5788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -/* Line 1792 of yacc.c */ -#line 1757 "glslang.y" +#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } +#line 5798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -/* Line 1792 of yacc.c */ -#line 1762 "glslang.y" +#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } +#line 5808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -/* Line 1792 of yacc.c */ -#line 1767 "glslang.y" +#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } +#line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -/* Line 1792 of yacc.c */ -#line 1772 "glslang.y" +#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } +#line 5828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -/* Line 1792 of yacc.c */ -#line 1777 "glslang.y" +#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } +#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -/* Line 1792 of yacc.c */ -#line 1782 "glslang.y" +#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } +#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -/* Line 1792 of yacc.c */ -#line 1787 "glslang.y" +#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } +#line 5858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -/* Line 1792 of yacc.c */ -#line 1792 "glslang.y" +#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } +#line 5868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -/* Line 1792 of yacc.c */ -#line 1797 "glslang.y" +#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } +#line 5878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -/* Line 1792 of yacc.c */ -#line 1802 "glslang.y" +#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } +#line 5888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -/* Line 1792 of yacc.c */ -#line 1807 "glslang.y" +#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } +#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -/* Line 1792 of yacc.c */ -#line 1812 "glslang.y" +#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } +#line 5908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -/* Line 1792 of yacc.c */ -#line 1817 "glslang.y" +#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } +#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -/* Line 1792 of yacc.c */ -#line 1822 "glslang.y" +#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } +#line 5928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -/* Line 1792 of yacc.c */ -#line 1827 "glslang.y" +#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } +#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -/* Line 1792 of yacc.c */ -#line 1832 "glslang.y" +#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } +#line 5948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -/* Line 1792 of yacc.c */ -#line 1837 "glslang.y" +#line 1838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } +#line 5958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -/* Line 1792 of yacc.c */ -#line 1842 "glslang.y" +#line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } +#line 5968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -/* Line 1792 of yacc.c */ -#line 1847 "glslang.y" +#line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } +#line 5978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -/* Line 1792 of yacc.c */ -#line 1852 "glslang.y" +#line 1853 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } +#line 5988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -/* Line 1792 of yacc.c */ -#line 1857 "glslang.y" +#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } +#line 5998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -/* Line 1792 of yacc.c */ -#line 1862 "glslang.y" +#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } +#line 6008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -/* Line 1792 of yacc.c */ -#line 1867 "glslang.y" +#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } +#line 6018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -/* Line 1792 of yacc.c */ -#line 1872 "glslang.y" +#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } +#line 6028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -/* Line 1792 of yacc.c */ -#line 1877 "glslang.y" +#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } +#line 6038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -/* Line 1792 of yacc.c */ -#line 1882 "glslang.y" +#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } +#line 6048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -/* Line 1792 of yacc.c */ -#line 1887 "glslang.y" +#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } +#line 6058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -/* Line 1792 of yacc.c */ -#line 1892 "glslang.y" +#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } +#line 6068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -/* Line 1792 of yacc.c */ -#line 1897 "glslang.y" +#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } +#line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -/* Line 1792 of yacc.c */ -#line 1902 "glslang.y" +#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } +#line 6088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -/* Line 1792 of yacc.c */ -#line 1907 "glslang.y" +#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } +#line 6098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -/* Line 1792 of yacc.c */ -#line 1912 "glslang.y" +#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } +#line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -/* Line 1792 of yacc.c */ -#line 1917 "glslang.y" +#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } +#line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -/* Line 1792 of yacc.c */ -#line 1922 "glslang.y" +#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } +#line 6128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -/* Line 1792 of yacc.c */ -#line 1927 "glslang.y" +#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } +#line 6138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -/* Line 1792 of yacc.c */ -#line 1932 "glslang.y" +#line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } +#line 6148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -/* Line 1792 of yacc.c */ -#line 1937 "glslang.y" +#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } +#line 6158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -/* Line 1792 of yacc.c */ -#line 1942 "glslang.y" +#line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } +#line 6168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -/* Line 1792 of yacc.c */ -#line 1947 "glslang.y" +#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } +#line 6178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -/* Line 1792 of yacc.c */ -#line 1952 "glslang.y" +#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } +#line 6188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -/* Line 1792 of yacc.c */ -#line 1957 "glslang.y" +#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } +#line 6198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -/* Line 1792 of yacc.c */ -#line 1962 "glslang.y" +#line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } +#line 6208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -/* Line 1792 of yacc.c */ -#line 1967 "glslang.y" +#line 1968 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } +#line 6218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -/* Line 1792 of yacc.c */ -#line 1972 "glslang.y" +#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } +#line 6228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -/* Line 1792 of yacc.c */ -#line 1977 "glslang.y" +#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } +#line 6238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -/* Line 1792 of yacc.c */ -#line 1982 "glslang.y" +#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } +#line 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -/* Line 1792 of yacc.c */ -#line 1987 "glslang.y" +#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } +#line 6258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -/* Line 1792 of yacc.c */ -#line 1992 "glslang.y" +#line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } +#line 6268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -/* Line 1792 of yacc.c */ -#line 1997 "glslang.y" +#line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } +#line 6278 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -/* Line 1792 of yacc.c */ -#line 2002 "glslang.y" +#line 2003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } +#line 6288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -/* Line 1792 of yacc.c */ -#line 2007 "glslang.y" +#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } +#line 6298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -/* Line 1792 of yacc.c */ -#line 2012 "glslang.y" +#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } +#line 6308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -/* Line 1792 of yacc.c */ -#line 2017 "glslang.y" +#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } +#line 6318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -/* Line 1792 of yacc.c */ -#line 2022 "glslang.y" +#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } +#line 6328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -/* Line 1792 of yacc.c */ -#line 2027 "glslang.y" +#line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } +#line 6338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -/* Line 1792 of yacc.c */ -#line 2032 "glslang.y" +#line 2033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } +#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -/* Line 1792 of yacc.c */ -#line 2037 "glslang.y" +#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } +#line 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -/* Line 1792 of yacc.c */ -#line 2042 "glslang.y" +#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } +#line 6368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -/* Line 1792 of yacc.c */ -#line 2047 "glslang.y" +#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } +#line 6378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -/* Line 1792 of yacc.c */ -#line 2052 "glslang.y" +#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } +#line 6388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -/* Line 1792 of yacc.c */ -#line 2057 "glslang.y" +#line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } +#line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -/* Line 1792 of yacc.c */ -#line 2062 "glslang.y" +#line 2063 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } +#line 6408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -/* Line 1792 of yacc.c */ -#line 2067 "glslang.y" +#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } +#line 6418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -/* Line 1792 of yacc.c */ -#line 2072 "glslang.y" +#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } +#line 6428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -/* Line 1792 of yacc.c */ -#line 2077 "glslang.y" +#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } +#line 6438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -/* Line 1792 of yacc.c */ -#line 2082 "glslang.y" +#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } +#line 6448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -/* Line 1792 of yacc.c */ -#line 2087 "glslang.y" +#line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } +#line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -/* Line 1792 of yacc.c */ -#line 2092 "glslang.y" +#line 2093 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } +#line 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -/* Line 1792 of yacc.c */ -#line 2097 "glslang.y" +#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } +#line 6478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -/* Line 1792 of yacc.c */ -#line 2102 "glslang.y" +#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } +#line 6488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -/* Line 1792 of yacc.c */ -#line 2107 "glslang.y" +#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } +#line 6498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -/* Line 1792 of yacc.c */ -#line 2112 "glslang.y" +#line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } +#line 6508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -/* Line 1792 of yacc.c */ -#line 2117 "glslang.y" +#line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } +#line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -/* Line 1792 of yacc.c */ -#line 2122 "glslang.y" +#line 2123 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } +#line 6528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -/* Line 1792 of yacc.c */ -#line 2127 "glslang.y" +#line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } +#line 6538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -/* Line 1792 of yacc.c */ -#line 2132 "glslang.y" +#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } +#line 6548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -/* Line 1792 of yacc.c */ -#line 2137 "glslang.y" +#line 2138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } +#line 6558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -/* Line 1792 of yacc.c */ -#line 2142 "glslang.y" +#line 2143 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } +#line 6569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -/* Line 1792 of yacc.c */ -#line 2148 "glslang.y" +#line 2149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } +#line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -/* Line 1792 of yacc.c */ -#line 2154 "glslang.y" +#line 2155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } +#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -/* Line 1792 of yacc.c */ -#line 2160 "glslang.y" +#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } +#line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -/* Line 1792 of yacc.c */ -#line 2166 "glslang.y" +#line 2167 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } +#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -/* Line 1792 of yacc.c */ -#line 2172 "glslang.y" +#line 2173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } +#line 6624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -/* Line 1792 of yacc.c */ -#line 2178 "glslang.y" +#line 2179 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } +#line 6635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -/* Line 1792 of yacc.c */ -#line 2184 "glslang.y" +#line 2185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } +#line 6645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: -/* Line 1792 of yacc.c */ -#line 2189 "glslang.y" +#line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the // type. // - if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { + if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else - parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); + parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } +#line 6663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -/* Line 1792 of yacc.c */ -#line 2205 "glslang.y" +#line 2206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); if (parseContext.profile == EEsProfile) (yyval.interm.type).qualifier.precision = EpqHigh; } +#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: -/* Line 1792 of yacc.c */ -#line 2211 "glslang.y" +#line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); if (parseContext.profile == EEsProfile) (yyval.interm.type).qualifier.precision = EpqMedium; } +#line 6685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -/* Line 1792 of yacc.c */ -#line 2217 "glslang.y" +#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); if (parseContext.profile == EEsProfile) (yyval.interm.type).qualifier.precision = EpqLow; } +#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: -/* Line 1792 of yacc.c */ -#line 2226 "glslang.y" - { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } +#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } +#line 6702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: -/* Line 1792 of yacc.c */ -#line 2226 "glslang.y" +#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); - parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); + TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); + parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); + parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } +#line 6718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: -/* Line 1792 of yacc.c */ -#line 2237 "glslang.y" - { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } +#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } +#line 6724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: -/* Line 1792 of yacc.c */ -#line 2237 "glslang.y" +#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); + TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[-4].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } +#line 6736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -/* Line 1792 of yacc.c */ -#line 2247 "glslang.y" +#line 2248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } +#line 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -/* Line 1792 of yacc.c */ -#line 2250 "glslang.y" +#line 2251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); } - (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); + (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } +#line 6759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: -/* Line 1792 of yacc.c */ -#line 2263 "glslang.y" +#line 2264 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(1) - (3)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); + parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); + parseContext.arrayDimCheck((yyvsp[-2].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } +#line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: -/* Line 1792 of yacc.c */ -#line 2281 "glslang.y" +#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); - if ((yyvsp[(2) - (4)].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier); + if ((yyvsp[-2].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); + (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); - parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); + parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); + parseContext.arrayDimCheck((yyvsp[-3].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } +#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: -/* Line 1792 of yacc.c */ -#line 2305 "glslang.y" +#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } +#line 6817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: -/* Line 1792 of yacc.c */ -#line 2309 "glslang.y" +#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } +#line 6825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: -/* Line 1792 of yacc.c */ -#line 2315 "glslang.y" +#line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); + (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } +#line 6835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: -/* Line 1792 of yacc.c */ -#line 2320 "glslang.y" +#line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0); (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); - (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); + (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); + (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); } +#line 6848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: -/* Line 1792 of yacc.c */ -#line 2331 "glslang.y" +#line 2332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: -/* Line 1792 of yacc.c */ -#line 2334 "glslang.y" +#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } +#line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -/* Line 1792 of yacc.c */ -#line 2340 "glslang.y" +#line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } +#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -/* Line 1792 of yacc.c */ -#line 2349 "glslang.y" +#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } +#line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -/* Line 1792 of yacc.c */ -#line 2352 "glslang.y" +#line 2353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } +#line 6894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: -/* Line 1792 of yacc.c */ -#line 2358 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: -/* Line 1792 of yacc.c */ -#line 2362 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: -/* Line 1792 of yacc.c */ -#line 2363 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: -/* Line 1792 of yacc.c */ -#line 2369 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: -/* Line 1792 of yacc.c */ -#line 2370 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: -/* Line 1792 of yacc.c */ -#line 2371 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: -/* Line 1792 of yacc.c */ -#line 2372 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: -/* Line 1792 of yacc.c */ -#line 2373 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: -/* Line 1792 of yacc.c */ -#line 2374 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: -/* Line 1792 of yacc.c */ -#line 2375 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: -/* Line 1792 of yacc.c */ -#line 2379 "glslang.y" +#line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 6960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: -/* Line 1792 of yacc.c */ -#line 2380 "glslang.y" +#line 2381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } +#line 6969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: -/* Line 1792 of yacc.c */ -#line 2384 "glslang.y" +#line 2385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } +#line 6978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: -/* Line 1792 of yacc.c */ -#line 2388 "glslang.y" +#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) - (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); + if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) + (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } +#line 6988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: -/* Line 1792 of yacc.c */ -#line 2396 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 6994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: -/* Line 1792 of yacc.c */ -#line 2397 "glslang.y" - { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } +#line 2398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: -/* Line 1792 of yacc.c */ -#line 2401 "glslang.y" +#line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } +#line 7008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: -/* Line 1792 of yacc.c */ -#line 2404 "glslang.y" +#line 2405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: -/* Line 1792 of yacc.c */ -#line 2408 "glslang.y" +#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 7027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: -/* Line 1792 of yacc.c */ -#line 2413 "glslang.y" +#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: -/* Line 1792 of yacc.c */ -#line 2422 "glslang.y" +#line 2423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 7046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: -/* Line 1792 of yacc.c */ -#line 2425 "glslang.y" +#line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) - (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); + if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) + (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } +#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: -/* Line 1792 of yacc.c */ -#line 2433 "glslang.y" +#line 2434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); - if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); + if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } +#line 7069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: -/* Line 1792 of yacc.c */ -#line 2441 "glslang.y" +#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); + if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } +#line 7082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: -/* Line 1792 of yacc.c */ -#line 2452 "glslang.y" +#line 2453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 7088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: -/* Line 1792 of yacc.c */ -#line 2453 "glslang.y" - { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } +#line 2454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } +#line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: -/* Line 1792 of yacc.c */ -#line 2457 "glslang.y" +#line 2458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); + parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } +#line 7103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: -/* Line 1792 of yacc.c */ -#line 2464 "glslang.y" +#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } +#line 7112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: -/* Line 1792 of yacc.c */ -#line 2468 "glslang.y" +#line 2469 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } +#line 7121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: -/* Line 1792 of yacc.c */ -#line 2476 "glslang.y" +#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } +#line 7130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: -/* Line 1792 of yacc.c */ -#line 2480 "glslang.y" +#line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); + parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); - TType type((yyvsp[(1) - (4)].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + TType type((yyvsp[-3].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } +#line 7145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: -/* Line 1792 of yacc.c */ -#line 2493 "glslang.y" +#line 2494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7443,13 +7154,13 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } +#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: -/* Line 1792 of yacc.c */ -#line 2501 "glslang.y" +#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); @@ -7457,287 +7168,287 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: -/* Line 1792 of yacc.c */ -#line 2513 "glslang.y" +#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } +#line 7180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: -/* Line 1792 of yacc.c */ -#line 2516 "glslang.y" +#line 2517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: -/* Line 1792 of yacc.c */ -#line 2522 "glslang.y" +#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); + parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); + parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); else { - parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); + parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } +#line 7205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: -/* Line 1792 of yacc.c */ -#line 2534 "glslang.y" +#line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); + parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); + parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } +#line 7219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: -/* Line 1792 of yacc.c */ -#line 2546 "glslang.y" +#line 2547 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); + parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: -/* Line 1792 of yacc.c */ -#line 2554 "glslang.y" +#line 2555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 7244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: -/* Line 1792 of yacc.c */ -#line 2561 "glslang.y" +#line 2562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: -/* Line 1792 of yacc.c */ -#line 2566 "glslang.y" +#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); + parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); - parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); + parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 7270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: -/* Line 1792 of yacc.c */ -#line 2577 "glslang.y" +#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } +#line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: -/* Line 1792 of yacc.c */ -#line 2583 "glslang.y" +#line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); + parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } +#line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: -/* Line 1792 of yacc.c */ -#line 2598 "glslang.y" +#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: -/* Line 1792 of yacc.c */ -#line 2601 "glslang.y" +#line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: -/* Line 1792 of yacc.c */ -#line 2607 "glslang.y" +#line 2608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } +#line 7322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: -/* Line 1792 of yacc.c */ -#line 2610 "glslang.y" +#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } +#line 7330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: -/* Line 1792 of yacc.c */ -#line 2616 "glslang.y" +#line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } +#line 7339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: -/* Line 1792 of yacc.c */ -#line 2620 "glslang.y" +#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } +#line 7348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: -/* Line 1792 of yacc.c */ -#line 2627 "glslang.y" +#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); + parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } +#line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: -/* Line 1792 of yacc.c */ -#line 2632 "glslang.y" +#line 2633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); + parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } +#line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -/* Line 1792 of yacc.c */ -#line 2637 "glslang.y" +#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); + parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) parseContext.postMainReturn = true; } +#line 7380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -/* Line 1792 of yacc.c */ -#line 2644 "glslang.y" +#line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } +#line 7388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -/* Line 1792 of yacc.c */ -#line 2647 "glslang.y" +#line 2648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); + parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } +#line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -/* Line 1792 of yacc.c */ -#line 2656 "glslang.y" +#line 2657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } +#line 7406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -/* Line 1792 of yacc.c */ -#line 2660 "glslang.y" +#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } +#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -/* Line 1792 of yacc.c */ -#line 2667 "glslang.y" +#line 2668 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -/* Line 1792 of yacc.c */ -#line 2670 "glslang.y" +#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } +#line 7431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -/* Line 1792 of yacc.c */ -#line 2676 "glslang.y" +#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); - (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); + (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); + (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } +#line 7440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: -/* Line 1792 of yacc.c */ -#line 2680 "glslang.y" +#line 2681 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); + parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree @@ -7745,11 +7456,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } +#line 7460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -/* Line 1792 of yacc.c */ -#line 7753 "glslang_tab.cpp" +#line 7464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7771,7 +7482,7 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -7786,9 +7497,9 @@ yyreduce: goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -7839,20 +7550,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -7871,7 +7582,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7884,29 +7595,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); + yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -7957,14 +7668,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); + yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow @@ -7975,11 +7686,7 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - /* Make sure YYID is used. */ - return YYID (yyresult); + return yyresult; } - - -/* Line 2055 of yacc.c */ -#line 2697 "glslang.y" +#line 2698 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index 3c0dc7ba..2d8276af 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED -/* Enabling traces. */ +#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,289 +40,288 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + enum yytokentype + { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + BREAK = 268, + CONTINUE = 269, + DO = 270, + ELSE = 271, + FOR = 272, + IF = 273, + DISCARD = 274, + RETURN = 275, + SWITCH = 276, + CASE = 277, + DEFAULT = 278, + SUBROUTINE = 279, + BVEC2 = 280, + BVEC3 = 281, + BVEC4 = 282, + IVEC2 = 283, + IVEC3 = 284, + IVEC4 = 285, + I64VEC2 = 286, + I64VEC3 = 287, + I64VEC4 = 288, + UVEC2 = 289, + UVEC3 = 290, + UVEC4 = 291, + U64VEC2 = 292, + U64VEC3 = 293, + U64VEC4 = 294, + VEC2 = 295, + VEC3 = 296, + VEC4 = 297, + MAT2 = 298, + MAT3 = 299, + MAT4 = 300, + CENTROID = 301, + IN = 302, + OUT = 303, + INOUT = 304, + UNIFORM = 305, + PATCH = 306, + SAMPLE = 307, + BUFFER = 308, + SHARED = 309, + COHERENT = 310, + VOLATILE = 311, + RESTRICT = 312, + READONLY = 313, + WRITEONLY = 314, + DVEC2 = 315, + DVEC3 = 316, + DVEC4 = 317, + DMAT2 = 318, + DMAT3 = 319, + DMAT4 = 320, + NOPERSPECTIVE = 321, + FLAT = 322, + SMOOTH = 323, + LAYOUT = 324, + __EXPLICITINTERPAMD = 325, + MAT2X2 = 326, + MAT2X3 = 327, + MAT2X4 = 328, + MAT3X2 = 329, + MAT3X3 = 330, + MAT3X4 = 331, + MAT4X2 = 332, + MAT4X3 = 333, + MAT4X4 = 334, + DMAT2X2 = 335, + DMAT2X3 = 336, + DMAT2X4 = 337, + DMAT3X2 = 338, + DMAT3X3 = 339, + DMAT3X4 = 340, + DMAT4X2 = 341, + DMAT4X3 = 342, + DMAT4X4 = 343, + ATOMIC_UINT = 344, + SAMPLER1D = 345, + SAMPLER2D = 346, + SAMPLER3D = 347, + SAMPLERCUBE = 348, + SAMPLER1DSHADOW = 349, + SAMPLER2DSHADOW = 350, + SAMPLERCUBESHADOW = 351, + SAMPLER1DARRAY = 352, + SAMPLER2DARRAY = 353, + SAMPLER1DARRAYSHADOW = 354, + SAMPLER2DARRAYSHADOW = 355, + ISAMPLER1D = 356, + ISAMPLER2D = 357, + ISAMPLER3D = 358, + ISAMPLERCUBE = 359, + ISAMPLER1DARRAY = 360, + ISAMPLER2DARRAY = 361, + USAMPLER1D = 362, + USAMPLER2D = 363, + USAMPLER3D = 364, + USAMPLERCUBE = 365, + USAMPLER1DARRAY = 366, + USAMPLER2DARRAY = 367, + SAMPLER2DRECT = 368, + SAMPLER2DRECTSHADOW = 369, + ISAMPLER2DRECT = 370, + USAMPLER2DRECT = 371, + SAMPLERBUFFER = 372, + ISAMPLERBUFFER = 373, + USAMPLERBUFFER = 374, + SAMPLERCUBEARRAY = 375, + SAMPLERCUBEARRAYSHADOW = 376, + ISAMPLERCUBEARRAY = 377, + USAMPLERCUBEARRAY = 378, + SAMPLER2DMS = 379, + ISAMPLER2DMS = 380, + USAMPLER2DMS = 381, + SAMPLER2DMSARRAY = 382, + ISAMPLER2DMSARRAY = 383, + USAMPLER2DMSARRAY = 384, + SAMPLEREXTERNALOES = 385, + SAMPLER = 386, + SAMPLERSHADOW = 387, + TEXTURE1D = 388, + TEXTURE2D = 389, + TEXTURE3D = 390, + TEXTURECUBE = 391, + TEXTURE1DARRAY = 392, + TEXTURE2DARRAY = 393, + ITEXTURE1D = 394, + ITEXTURE2D = 395, + ITEXTURE3D = 396, + ITEXTURECUBE = 397, + ITEXTURE1DARRAY = 398, + ITEXTURE2DARRAY = 399, + UTEXTURE1D = 400, + UTEXTURE2D = 401, + UTEXTURE3D = 402, + UTEXTURECUBE = 403, + UTEXTURE1DARRAY = 404, + UTEXTURE2DARRAY = 405, + TEXTURE2DRECT = 406, + ITEXTURE2DRECT = 407, + UTEXTURE2DRECT = 408, + TEXTUREBUFFER = 409, + ITEXTUREBUFFER = 410, + UTEXTUREBUFFER = 411, + TEXTURECUBEARRAY = 412, + ITEXTURECUBEARRAY = 413, + UTEXTURECUBEARRAY = 414, + TEXTURE2DMS = 415, + ITEXTURE2DMS = 416, + UTEXTURE2DMS = 417, + TEXTURE2DMSARRAY = 418, + ITEXTURE2DMSARRAY = 419, + UTEXTURE2DMSARRAY = 420, + SUBPASSINPUT = 421, + SUBPASSINPUTMS = 422, + ISUBPASSINPUT = 423, + ISUBPASSINPUTMS = 424, + USUBPASSINPUT = 425, + USUBPASSINPUTMS = 426, + IMAGE1D = 427, + IIMAGE1D = 428, + UIMAGE1D = 429, + IMAGE2D = 430, + IIMAGE2D = 431, + UIMAGE2D = 432, + IMAGE3D = 433, + IIMAGE3D = 434, + UIMAGE3D = 435, + IMAGE2DRECT = 436, + IIMAGE2DRECT = 437, + UIMAGE2DRECT = 438, + IMAGECUBE = 439, + IIMAGECUBE = 440, + UIMAGECUBE = 441, + IMAGEBUFFER = 442, + IIMAGEBUFFER = 443, + UIMAGEBUFFER = 444, + IMAGE1DARRAY = 445, + IIMAGE1DARRAY = 446, + UIMAGE1DARRAY = 447, + IMAGE2DARRAY = 448, + IIMAGE2DARRAY = 449, + UIMAGE2DARRAY = 450, + IMAGECUBEARRAY = 451, + IIMAGECUBEARRAY = 452, + UIMAGECUBEARRAY = 453, + IMAGE2DMS = 454, + IIMAGE2DMS = 455, + UIMAGE2DMS = 456, + IMAGE2DMSARRAY = 457, + IIMAGE2DMSARRAY = 458, + UIMAGE2DMSARRAY = 459, + STRUCT = 460, + VOID = 461, + WHILE = 462, + IDENTIFIER = 463, + TYPE_NAME = 464, + FLOATCONSTANT = 465, + DOUBLECONSTANT = 466, + INTCONSTANT = 467, + UINTCONSTANT = 468, + INT64CONSTANT = 469, + UINT64CONSTANT = 470, + BOOLCONSTANT = 471, + LEFT_OP = 472, + RIGHT_OP = 473, + INC_OP = 474, + DEC_OP = 475, + LE_OP = 476, + GE_OP = 477, + EQ_OP = 478, + NE_OP = 479, + AND_OP = 480, + OR_OP = 481, + XOR_OP = 482, + MUL_ASSIGN = 483, + DIV_ASSIGN = 484, + ADD_ASSIGN = 485, + MOD_ASSIGN = 486, + LEFT_ASSIGN = 487, + RIGHT_ASSIGN = 488, + AND_ASSIGN = 489, + XOR_ASSIGN = 490, + OR_ASSIGN = 491, + SUB_ASSIGN = 492, + LEFT_PAREN = 493, + RIGHT_PAREN = 494, + LEFT_BRACKET = 495, + RIGHT_BRACKET = 496, + LEFT_BRACE = 497, + RIGHT_BRACE = 498, + DOT = 499, + COMMA = 500, + COLON = 501, + EQUAL = 502, + SEMICOLON = 503, + BANG = 504, + DASH = 505, + TILDE = 506, + PLUS = 507, + STAR = 508, + SLASH = 509, + PERCENT = 510, + LEFT_ANGLE = 511, + RIGHT_ANGLE = 512, + VERTICAL_BAR = 513, + CARET = 514, + AMPERSAND = 515, + QUESTION = 516, + INVARIANT = 517, + PRECISE = 518, + HIGH_PRECISION = 519, + MEDIUM_PRECISION = 520, + LOW_PRECISION = 521, + PRECISION = 522, + PACKED = 523, + RESOURCE = 524, + SUPERP = 525 + }; #endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE + +union YYSTYPE { -/* Line 2058 of yacc.c */ -#line 66 "glslang.y" +#line 66 "MachineIndependent/glslang.y" /* yacc.c:1909 */ struct { glslang::TSourceLoc loc; @@ -356,28 +355,16 @@ typedef union YYSTYPE }; } interm; +#line 359 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ +}; -/* Line 2058 of yacc.c */ -#line 362 "glslang_tab.cpp.h" -} YYSTYPE; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (glslang::TParseContext* pParseContext); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ +int yyparse (glslang::TParseContext* pParseContext); + +#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ From ac39cdc2f8574ce8a429208f8dd7fdc33a40d610 Mon Sep 17 00:00:00 2001 From: Wesley Griffin Date: Mon, 1 Aug 2016 15:36:15 -0400 Subject: [PATCH 051/217] bump required CMake version down to 2.8.11 since no features are required in cmake>2.8.11 and this allows building on stock CentOS 7 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7f09fb1..c03edd7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 2.8.11) set_property(GLOBAL PROPERTY USE_FOLDERS ON) option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF) From b49806b0bf48c69e589c60a98d1cb48e332441eb Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Tue, 2 Aug 2016 14:42:43 -0400 Subject: [PATCH 052/217] Fixing some casts that warn when compiled to 64 bit (size_t is 64 bit rather then 32 bit) --- hlsl/hlslParseHelper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d509e1f5..1f6c4a94 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -989,7 +989,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TSampler& texSampler = texType.getSampler(); const TSamplerDim dim = texSampler.dim; - const int numArgs = argAggregate->getSequence().size(); + const int numArgs = (int) argAggregate->getSequence().size(); int numDims = 0; @@ -1175,7 +1175,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); } - const int numArgs = argAggregate->getSequence().size(); + const int numArgs = (int) argAggregate->getSequence().size(); const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); // Create texel fetch @@ -1219,7 +1219,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; - const int numArgs = argAggregate->getSequence().size(); + const int numArgs = (int) argAggregate->getSequence().size(); if (numArgs == 5) // offset, if present argOffset = argAggregate->getSequence()[4]->getAsTyped(); From f6640761c46b42a996925de407c52295f3b3f6f0 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 1 Aug 2016 19:44:00 -0600 Subject: [PATCH 053/217] Front-end: Implement 2nd task of issue #400; precision of result and operation. From the ES spec + Bugzilla 15931 and GL_KHR_vulkan_glsl: - Update precision qualifiers for all built-in function prototypes. - Implement the new algorithm used to distinguish built-in function operation precisions from result precisions. Also add tracking of separate result and operation precisions, and use that in generating SPIR-V. (SPIR-V cares about precision of operation, while the front-end cares about precision of result, for propagation.) --- SPIRV/GlslangToSpv.cpp | 24 +- Test/baseResults/100.frag.out | 20 +- Test/baseResults/300.frag.out | 40 ++-- Test/baseResults/300.vert.out | 16 +- Test/baseResults/300BuiltIns.frag.out | 32 +-- Test/baseResults/310.comp.out | 12 +- Test/baseResults/310.frag.out | 20 +- Test/baseResults/310.vert.out | 68 +++--- Test/baseResults/310AofA.vert.out | 4 +- Test/baseResults/pointCoord.frag.out | 4 +- Test/baseResults/uint.frag.out | 12 +- glslang/Include/intermediate.h | 35 ++- glslang/Include/revision.h | 4 +- glslang/MachineIndependent/Initialize.cpp | 241 +++++++++++--------- glslang/MachineIndependent/Intermediate.cpp | 24 -- glslang/MachineIndependent/ParseHelper.cpp | 142 ++++++++++-- glslang/MachineIndependent/ParseHelper.h | 2 + hlsl/hlslParseHelper.cpp | 16 +- 18 files changed, 408 insertions(+), 308 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index be266ac0..6aec9e62 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -283,10 +283,10 @@ spv::Dim TranslateDimensionality(const glslang::TSampler& sampler) } } -// Translate glslang type to SPIR-V precision decorations. -spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) +// Translate glslang precision to SPIR-V precision decorations. +spv::Decoration TranslatePrecisionDecoration(glslang::TPrecisionQualifier glslangPrecision) { - switch (type.getQualifier().precision) { + switch (glslangPrecision) { case glslang::EpqLow: return spv::DecorationRelaxedPrecision; case glslang::EpqMedium: return spv::DecorationRelaxedPrecision; default: @@ -294,6 +294,12 @@ spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) } } +// Translate glslang type to SPIR-V precision decorations. +spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type) +{ + return TranslatePrecisionDecoration(type.getQualifier().precision); +} + // Translate glslang type to SPIR-V block decorations. spv::Decoration TranslateBlockDecoration(const glslang::TType& type) { @@ -940,7 +946,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id leftRValue = accessChainLoad(node->getLeft()->getType()); // do the operation - rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getType()), + rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), leftRValue, rValue, node->getType().getBasicType()); @@ -1065,7 +1071,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T spv::Id right = accessChainLoad(node->getRight()->getType()); // get result - spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getType()), + spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()), TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), left, right, node->getLeft()->getType().getBasicType()); @@ -1142,7 +1148,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else operand = accessChainLoad(node->getOperand()->getType()); - spv::Decoration precision = TranslatePrecisionDecoration(node->getType()); + spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); spv::Decoration noContraction = TranslateNoContractionDecoration(node->getType().getQualifier()); // it could be a conversion @@ -1187,7 +1193,7 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI else op = glslang::EOpSub; - spv::Id result = createBinaryOperation(op, TranslatePrecisionDecoration(node->getType()), + spv::Id result = createBinaryOperation(op, precision, TranslateNoContractionDecoration(node->getType().getQualifier()), convertGlslangToSpvType(node->getType()), operand, one, node->getType().getBasicType()); @@ -1249,7 +1255,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt assert(node->getOp()); - spv::Decoration precision = TranslatePrecisionDecoration(node->getType()); + spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); switch (node->getOp()) { case glslang::EOpSequence: @@ -2573,7 +2579,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO translateArguments(*node->getAsAggregate(), arguments); else translateArguments(*node->getAsUnaryNode(), arguments); - spv::Decoration precision = TranslatePrecisionDecoration(node->getType()); + spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision()); spv::Builder::TextureParameters params = { }; params.sampler = arguments[0]; diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 70b89349..edd65ab2 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -241,7 +241,7 @@ ERROR: node is still EOpNull! 0:122 'sExt' (uniform lowp samplerExternalOES) 0:122 Construct vec3 (temp lowp 3-component vector of float) 0:122 'f13' (invariant global mediump float) -0:123 textureProj (global lowp 4-component vector of float) +0:123 textureProj (global lowp 4-component vector of float, operation at mediump) 0:123 'sExt' (uniform lowp samplerExternalOES) 0:123 direct index (smooth temp mediump 4-component vector of float) 0:123 'v' (smooth in 3-element array of mediump 4-component vector of float) @@ -278,7 +278,7 @@ ERROR: node is still EOpNull! 0:145 'a' (in mediump int) 0:145 'b' (in mediump float) 0:147 Sequence -0:147 textureProjGrad (global lowp 4-component vector of float) +0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump) 0:147 's2Dg' (uniform lowp sampler2D) 0:147 Construct vec3 (temp mediump 3-component vector of float) 0:147 'f13' (invariant global mediump float) @@ -299,17 +299,17 @@ ERROR: node is still EOpNull! 0:158 Function Definition: foo323433( (global void) 0:158 Function Parameters: 0:160 Sequence -0:160 textureLod (global lowp 4-component vector of float) +0:160 textureLod (global lowp 4-component vector of float, operation at mediump) 0:160 's2Dg' (uniform lowp sampler2D) 0:160 'uv2' (invariant uniform mediump 2-component vector of float) 0:160 'f13' (invariant global mediump float) -0:161 textureProjGrad (global lowp 4-component vector of float) +0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump) 0:161 's2Dg' (uniform lowp sampler2D) 0:161 Construct vec3 (temp mediump 3-component vector of float) 0:161 'f13' (invariant global mediump float) 0:161 'uv2' (invariant uniform mediump 2-component vector of float) 0:161 'uv2' (invariant uniform mediump 2-component vector of float) -0:162 textureGrad (global lowp 4-component vector of float) +0:162 textureGrad (global lowp 4-component vector of float, operation at mediump) 0:162 's2Dg' (uniform lowp sampler2D) 0:162 'uv2' (invariant uniform mediump 2-component vector of float) 0:162 'uv2' (invariant uniform mediump 2-component vector of float) @@ -579,7 +579,7 @@ ERROR: node is still EOpNull! 0:122 'sExt' (uniform lowp samplerExternalOES) 0:122 Construct vec3 (temp lowp 3-component vector of float) 0:122 'f13' (invariant global mediump float) -0:123 textureProj (global lowp 4-component vector of float) +0:123 textureProj (global lowp 4-component vector of float, operation at mediump) 0:123 'sExt' (uniform lowp samplerExternalOES) 0:123 direct index (smooth temp mediump 4-component vector of float) 0:123 'v' (smooth in 3-element array of mediump 4-component vector of float) @@ -616,7 +616,7 @@ ERROR: node is still EOpNull! 0:145 'a' (in mediump int) 0:145 'b' (in mediump float) 0:147 Sequence -0:147 textureProjGrad (global lowp 4-component vector of float) +0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump) 0:147 's2Dg' (uniform lowp sampler2D) 0:147 Construct vec3 (temp mediump 3-component vector of float) 0:147 'f13' (invariant global mediump float) @@ -637,17 +637,17 @@ ERROR: node is still EOpNull! 0:158 Function Definition: foo323433( (global void) 0:158 Function Parameters: 0:160 Sequence -0:160 textureLod (global lowp 4-component vector of float) +0:160 textureLod (global lowp 4-component vector of float, operation at mediump) 0:160 's2Dg' (uniform lowp sampler2D) 0:160 'uv2' (invariant uniform mediump 2-component vector of float) 0:160 'f13' (invariant global mediump float) -0:161 textureProjGrad (global lowp 4-component vector of float) +0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump) 0:161 's2Dg' (uniform lowp sampler2D) 0:161 Construct vec3 (temp mediump 3-component vector of float) 0:161 'f13' (invariant global mediump float) 0:161 'uv2' (invariant uniform mediump 2-component vector of float) 0:161 'uv2' (invariant uniform mediump 2-component vector of float) -0:162 textureGrad (global lowp 4-component vector of float) +0:162 textureGrad (global lowp 4-component vector of float, operation at mediump) 0:162 's2Dg' (uniform lowp sampler2D) 0:162 'uv2' (invariant uniform mediump 2-component vector of float) 0:162 'uv2' (invariant uniform mediump 2-component vector of float) diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index a0c2615d..2a3341ac 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -72,20 +72,20 @@ ERROR: node is still EOpNull! 0:59 1.200000 0:60 move second child to first child (temp lowp float) 0:60 'f' (temp lowp float) -0:60 textureOffset (global lowp float) +0:60 textureOffset (global lowp float, operation at mediump) 0:60 's2DShadow' (uniform lowp sampler2DShadow) 0:60 'c3D' (smooth in lowp 3-component vector of float) 0:60 'ic2D' (flat in mediump 2-component vector of int) 0:60 'c1D' (smooth in lowp float) 0:61 move second child to first child (temp lowp 4-component vector of float) 0:61 'v' (temp lowp 4-component vector of float) -0:61 textureFetch (global lowp 4-component vector of float) +0:61 textureFetch (global lowp 4-component vector of float, operation at mediump) 0:61 's3D' (uniform lowp sampler3D) 0:61 'ic3D' (flat in mediump 3-component vector of int) 0:61 'ic1D' (flat in mediump int) 0:62 move second child to first child (temp lowp 4-component vector of float) 0:62 'v' (temp lowp 4-component vector of float) -0:62 textureFetchOffset (global lowp 4-component vector of float) +0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump) 0:62 direct index (temp lowp sampler2D) 0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D) 0:62 Constant: @@ -96,14 +96,14 @@ ERROR: node is still EOpNull! 0:62 'ic2D' (flat in mediump 2-component vector of int) 0:63 move second child to first child (temp lowp float) 0:63 'f' (temp lowp float) -0:63 textureLodOffset (global lowp float) +0:63 textureLodOffset (global lowp float, operation at mediump) 0:63 's2DShadow' (uniform lowp sampler2DShadow) 0:63 'c3D' (smooth in lowp 3-component vector of float) 0:63 'c1D' (smooth in lowp float) 0:63 'ic2D' (flat in mediump 2-component vector of int) 0:64 move second child to first child (temp lowp 4-component vector of float) 0:64 'v' (temp lowp 4-component vector of float) -0:64 textureProjLodOffset (global lowp 4-component vector of float) +0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump) 0:64 's2D' (uniform lowp sampler2D) 0:64 'c3D' (smooth in lowp 3-component vector of float) 0:64 'c1D' (smooth in lowp float) @@ -117,7 +117,7 @@ ERROR: node is still EOpNull! 0:65 'c3D' (smooth in lowp 3-component vector of float) 0:66 move second child to first child (temp lowp float) 0:66 'f' (temp lowp float) -0:66 textureGradOffset (global lowp float) +0:66 textureGradOffset (global lowp float, operation at mediump) 0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow) 0:66 'c4D' (smooth temp lowp 4-component vector of float) 0:66 'c2D' (smooth in lowp 2-component vector of float) @@ -132,7 +132,7 @@ ERROR: node is still EOpNull! 0:67 'c3D' (smooth in lowp 3-component vector of float) 0:68 move second child to first child (temp lowp 4-component vector of float) 0:68 'v' (temp lowp 4-component vector of float) -0:68 textureProjGradOffset (global lowp 4-component vector of float) +0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump) 0:68 's2D' (uniform lowp sampler2D) 0:68 'c3D' (smooth in lowp 3-component vector of float) 0:68 'c2D' (smooth in lowp 2-component vector of float) @@ -152,7 +152,7 @@ ERROR: node is still EOpNull! 0:72 'c2D' (smooth in lowp 2-component vector of float) 0:73 move second child to first child (temp mediump 4-component vector of int) 0:73 'iv' (temp mediump 4-component vector of int) -0:73 textureProjOffset (global lowp 4-component vector of int) +0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump) 0:73 'is2D' (uniform lowp isampler2D) 0:73 'c4D' (smooth temp lowp 4-component vector of float) 0:73 'ic2D' (flat in mediump 2-component vector of int) @@ -184,7 +184,7 @@ ERROR: node is still EOpNull! 0:77 'c1D' (smooth in lowp float) 0:78 move second child to first child (temp mediump 4-component vector of int) 0:78 'iv' (temp mediump 4-component vector of int) -0:78 textureFetch (global lowp 4-component vector of int) +0:78 textureFetch (global lowp 4-component vector of int, operation at mediump) 0:78 'is2DArray' (uniform lowp isampler2DArray) 0:78 'ic3D' (flat in mediump 3-component vector of int) 0:78 'ic1D' (flat in mediump int) @@ -196,7 +196,7 @@ ERROR: node is still EOpNull! 0:80 0 (const int) 0:80 Constant: 0:80 1 (const int) -0:80 textureSize (global highp 2-component vector of int) +0:80 textureSize (global highp 2-component vector of int, operation at lowp) 0:80 'sCubeShadow' (uniform lowp samplerCubeShadow) 0:80 Constant: 0:80 2 (const int) @@ -428,20 +428,20 @@ ERROR: node is still EOpNull! 0:59 1.200000 0:60 move second child to first child (temp lowp float) 0:60 'f' (temp lowp float) -0:60 textureOffset (global lowp float) +0:60 textureOffset (global lowp float, operation at mediump) 0:60 's2DShadow' (uniform lowp sampler2DShadow) 0:60 'c3D' (smooth in lowp 3-component vector of float) 0:60 'ic2D' (flat in mediump 2-component vector of int) 0:60 'c1D' (smooth in lowp float) 0:61 move second child to first child (temp lowp 4-component vector of float) 0:61 'v' (temp lowp 4-component vector of float) -0:61 textureFetch (global lowp 4-component vector of float) +0:61 textureFetch (global lowp 4-component vector of float, operation at mediump) 0:61 's3D' (uniform lowp sampler3D) 0:61 'ic3D' (flat in mediump 3-component vector of int) 0:61 'ic1D' (flat in mediump int) 0:62 move second child to first child (temp lowp 4-component vector of float) 0:62 'v' (temp lowp 4-component vector of float) -0:62 textureFetchOffset (global lowp 4-component vector of float) +0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump) 0:62 direct index (temp lowp sampler2D) 0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D) 0:62 Constant: @@ -452,14 +452,14 @@ ERROR: node is still EOpNull! 0:62 'ic2D' (flat in mediump 2-component vector of int) 0:63 move second child to first child (temp lowp float) 0:63 'f' (temp lowp float) -0:63 textureLodOffset (global lowp float) +0:63 textureLodOffset (global lowp float, operation at mediump) 0:63 's2DShadow' (uniform lowp sampler2DShadow) 0:63 'c3D' (smooth in lowp 3-component vector of float) 0:63 'c1D' (smooth in lowp float) 0:63 'ic2D' (flat in mediump 2-component vector of int) 0:64 move second child to first child (temp lowp 4-component vector of float) 0:64 'v' (temp lowp 4-component vector of float) -0:64 textureProjLodOffset (global lowp 4-component vector of float) +0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump) 0:64 's2D' (uniform lowp sampler2D) 0:64 'c3D' (smooth in lowp 3-component vector of float) 0:64 'c1D' (smooth in lowp float) @@ -473,7 +473,7 @@ ERROR: node is still EOpNull! 0:65 'c3D' (smooth in lowp 3-component vector of float) 0:66 move second child to first child (temp lowp float) 0:66 'f' (temp lowp float) -0:66 textureGradOffset (global lowp float) +0:66 textureGradOffset (global lowp float, operation at mediump) 0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow) 0:66 'c4D' (smooth temp lowp 4-component vector of float) 0:66 'c2D' (smooth in lowp 2-component vector of float) @@ -488,7 +488,7 @@ ERROR: node is still EOpNull! 0:67 'c3D' (smooth in lowp 3-component vector of float) 0:68 move second child to first child (temp lowp 4-component vector of float) 0:68 'v' (temp lowp 4-component vector of float) -0:68 textureProjGradOffset (global lowp 4-component vector of float) +0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump) 0:68 's2D' (uniform lowp sampler2D) 0:68 'c3D' (smooth in lowp 3-component vector of float) 0:68 'c2D' (smooth in lowp 2-component vector of float) @@ -508,7 +508,7 @@ ERROR: node is still EOpNull! 0:72 'c2D' (smooth in lowp 2-component vector of float) 0:73 move second child to first child (temp mediump 4-component vector of int) 0:73 'iv' (temp mediump 4-component vector of int) -0:73 textureProjOffset (global lowp 4-component vector of int) +0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump) 0:73 'is2D' (uniform lowp isampler2D) 0:73 'c4D' (smooth temp lowp 4-component vector of float) 0:73 'ic2D' (flat in mediump 2-component vector of int) @@ -540,7 +540,7 @@ ERROR: node is still EOpNull! 0:77 'c1D' (smooth in lowp float) 0:78 move second child to first child (temp mediump 4-component vector of int) 0:78 'iv' (temp mediump 4-component vector of int) -0:78 textureFetch (global lowp 4-component vector of int) +0:78 textureFetch (global lowp 4-component vector of int, operation at mediump) 0:78 'is2DArray' (uniform lowp isampler2DArray) 0:78 'ic3D' (flat in mediump 3-component vector of int) 0:78 'ic1D' (flat in mediump int) @@ -552,7 +552,7 @@ ERROR: node is still EOpNull! 0:80 0 (const int) 0:80 Constant: 0:80 1 (const int) -0:80 textureSize (global highp 2-component vector of int) +0:80 textureSize (global highp 2-component vector of int, operation at lowp) 0:80 'sCubeShadow' (uniform lowp samplerCubeShadow) 0:80 Constant: 0:80 2 (const int) diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index 80745abe..66a06517 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -175,7 +175,7 @@ ERROR: node is still EOpNull! 0:120 Sequence 0:120 move second child to first child (temp highp 2-component vector of int) 0:120 'x1' (temp highp 2-component vector of int) -0:120 textureSize (global highp 2-component vector of int) +0:120 textureSize (global highp 2-component vector of int, operation at lowp) 0:120 's2D' (uniform lowp sampler2D) 0:120 Constant: 0:120 2 (const int) @@ -184,7 +184,7 @@ ERROR: node is still EOpNull! 0:122 Sequence 0:122 move second child to first child (temp highp 3-component vector of int) 0:122 'x3' (temp highp 3-component vector of int) -0:122 textureSize (global highp 3-component vector of int) +0:122 textureSize (global highp 3-component vector of int, operation at lowp) 0:122 's2DAS' (uniform lowp sampler2DArrayShadow) 0:122 Constant: 0:122 -1 (const int) @@ -193,7 +193,7 @@ ERROR: node is still EOpNull! 0:124 Sequence 0:124 move second child to first child (temp highp 4-component vector of float) 0:124 'x4' (temp highp 4-component vector of float) -0:124 texture (global lowp 4-component vector of float) +0:124 texture (global lowp 4-component vector of float, operation at highp) 0:124 's2D' (uniform lowp sampler2D) 0:124 'c2D' (in highp 2-component vector of float) 0:125 Constant: @@ -217,7 +217,7 @@ ERROR: node is still EOpNull! 0:128 Sequence 0:128 move second child to first child (temp highp float) 0:128 'x6' (temp highp float) -0:128 textureProjGradOffset (global lowp float) +0:128 textureProjGradOffset (global lowp float, operation at highp) 0:128 's2DS' (uniform lowp sampler2DShadow) 0:128 'invIn' (invariant in highp 4-component vector of float) 0:128 Constant: @@ -459,7 +459,7 @@ ERROR: node is still EOpNull! 0:120 Sequence 0:120 move second child to first child (temp highp 2-component vector of int) 0:120 'x1' (temp highp 2-component vector of int) -0:120 textureSize (global highp 2-component vector of int) +0:120 textureSize (global highp 2-component vector of int, operation at lowp) 0:120 's2D' (uniform lowp sampler2D) 0:120 Constant: 0:120 2 (const int) @@ -468,7 +468,7 @@ ERROR: node is still EOpNull! 0:122 Sequence 0:122 move second child to first child (temp highp 3-component vector of int) 0:122 'x3' (temp highp 3-component vector of int) -0:122 textureSize (global highp 3-component vector of int) +0:122 textureSize (global highp 3-component vector of int, operation at lowp) 0:122 's2DAS' (uniform lowp sampler2DArrayShadow) 0:122 Constant: 0:122 -1 (const int) @@ -477,7 +477,7 @@ ERROR: node is still EOpNull! 0:124 Sequence 0:124 move second child to first child (temp highp 4-component vector of float) 0:124 'x4' (temp highp 4-component vector of float) -0:124 texture (global lowp 4-component vector of float) +0:124 texture (global lowp 4-component vector of float, operation at highp) 0:124 's2D' (uniform lowp sampler2D) 0:124 'c2D' (in highp 2-component vector of float) 0:125 Constant: @@ -501,7 +501,7 @@ ERROR: node is still EOpNull! 0:128 Sequence 0:128 move second child to first child (temp highp float) 0:128 'x6' (temp highp float) -0:128 textureProjGradOffset (global lowp float) +0:128 textureProjGradOffset (global lowp float, operation at highp) 0:128 's2DS' (uniform lowp sampler2DShadow) 0:128 'invIn' (invariant in highp 4-component vector of float) 0:128 Constant: diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out index c2f12c92..a3bab690 100644 --- a/Test/baseResults/300BuiltIns.frag.out +++ b/Test/baseResults/300BuiltIns.frag.out @@ -128,12 +128,12 @@ ERROR: node is still EOpNull! 0:52 Sequence 0:52 move second child to first child (temp 2-component vector of bool) 0:52 'b10' (temp 2-component vector of bool) -0:52 isnan (global 2-component vector of bool) +0:52 isnan (global 2-component vector of bool, operation at mediump) 0:52 'v2a' (global mediump 2-component vector of float) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of bool) 0:53 'b11' (temp 4-component vector of bool) -0:53 isinf (global 4-component vector of bool) +0:53 isinf (global 4-component vector of bool, operation at mediump) 0:53 'v4' (global mediump 4-component vector of float) 0:56 Sequence 0:56 move second child to first child (temp highp int) @@ -158,17 +158,17 @@ ERROR: node is still EOpNull! 0:62 Sequence 0:62 move second child to first child (temp highp uint) 0:62 'u19' (temp mediump uint) -0:62 packSnorm2x16 (global highp uint) +0:62 packSnorm2x16 (global highp uint, operation at mediump) 0:62 'v2a' (global mediump 2-component vector of float) 0:63 Sequence -0:63 move second child to first child (temp mediump 2-component vector of float) +0:63 move second child to first child (temp highp 2-component vector of float) 0:63 'v20' (temp mediump 2-component vector of float) -0:63 unpackSnorm2x16 (global mediump 2-component vector of float) +0:63 unpackSnorm2x16 (global highp 2-component vector of float) 0:63 'uy' (global mediump uint) 0:64 Sequence 0:64 move second child to first child (temp highp uint) 0:64 'u15' (temp mediump uint) -0:64 packUnorm2x16 (global highp uint) +0:64 packUnorm2x16 (global highp uint, operation at mediump) 0:64 'v2a' (global mediump 2-component vector of float) 0:65 Sequence 0:65 move second child to first child (temp highp 2-component vector of float) @@ -178,12 +178,12 @@ ERROR: node is still EOpNull! 0:66 Sequence 0:66 move second child to first child (temp highp uint) 0:66 'u17' (temp mediump uint) -0:66 packHalf2x16 (global highp uint) +0:66 packHalf2x16 (global highp uint, operation at mediump) 0:66 'v2b' (global mediump 2-component vector of float) 0:67 Sequence 0:67 move second child to first child (temp mediump 2-component vector of float) 0:67 'v18' (temp mediump 2-component vector of float) -0:67 unpackHalf2x16 (global mediump 2-component vector of float) +0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp) 0:67 'uy' (global mediump uint) 0:70 Constant: 0:70 0.000000 @@ -335,12 +335,12 @@ ERROR: node is still EOpNull! 0:52 Sequence 0:52 move second child to first child (temp 2-component vector of bool) 0:52 'b10' (temp 2-component vector of bool) -0:52 isnan (global 2-component vector of bool) +0:52 isnan (global 2-component vector of bool, operation at mediump) 0:52 'v2a' (global mediump 2-component vector of float) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of bool) 0:53 'b11' (temp 4-component vector of bool) -0:53 isinf (global 4-component vector of bool) +0:53 isinf (global 4-component vector of bool, operation at mediump) 0:53 'v4' (global mediump 4-component vector of float) 0:56 Sequence 0:56 move second child to first child (temp highp int) @@ -365,17 +365,17 @@ ERROR: node is still EOpNull! 0:62 Sequence 0:62 move second child to first child (temp highp uint) 0:62 'u19' (temp mediump uint) -0:62 packSnorm2x16 (global highp uint) +0:62 packSnorm2x16 (global highp uint, operation at mediump) 0:62 'v2a' (global mediump 2-component vector of float) 0:63 Sequence -0:63 move second child to first child (temp mediump 2-component vector of float) +0:63 move second child to first child (temp highp 2-component vector of float) 0:63 'v20' (temp mediump 2-component vector of float) -0:63 unpackSnorm2x16 (global mediump 2-component vector of float) +0:63 unpackSnorm2x16 (global highp 2-component vector of float) 0:63 'uy' (global mediump uint) 0:64 Sequence 0:64 move second child to first child (temp highp uint) 0:64 'u15' (temp mediump uint) -0:64 packUnorm2x16 (global highp uint) +0:64 packUnorm2x16 (global highp uint, operation at mediump) 0:64 'v2a' (global mediump 2-component vector of float) 0:65 Sequence 0:65 move second child to first child (temp highp 2-component vector of float) @@ -385,12 +385,12 @@ ERROR: node is still EOpNull! 0:66 Sequence 0:66 move second child to first child (temp highp uint) 0:66 'u17' (temp mediump uint) -0:66 packHalf2x16 (global highp uint) +0:66 packHalf2x16 (global highp uint, operation at mediump) 0:66 'v2b' (global mediump 2-component vector of float) 0:67 Sequence 0:67 move second child to first child (temp mediump 2-component vector of float) 0:67 'v18' (temp mediump 2-component vector of float) -0:67 unpackHalf2x16 (global mediump 2-component vector of float) +0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp) 0:67 'uy' (global mediump uint) 0:70 Constant: 0:70 0.000000 diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out index b56f0702..9a5e4e89 100644 --- a/Test/baseResults/310.comp.out +++ b/Test/baseResults/310.comp.out @@ -122,7 +122,7 @@ ERROR: node is still EOpNull! 0:61 2 (const int) 0:61 Constant: 0:61 4.700000 -0:62 array length (temp highp int) +0:62 array length (temp int) 0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) 0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) 0:62 Constant: @@ -178,9 +178,9 @@ ERROR: node is still EOpNull! 0:92 0 (const int) 0:92 0 (const int) 0:92 0 (const int) -0:93 imageLoad (global highp 4-component vector of float) +0:93 imageLoad (global mediump 4-component vector of float) 0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) -0:93 Construct ivec2 (temp highp 2-component vector of int) +0:93 Construct ivec2 (temp mediump 2-component vector of int) 0:93 'i' (temp highp int) 0:93 'i' (temp highp int) 0:94 imageLoad (global highp 4-component vector of int) @@ -549,7 +549,7 @@ ERROR: node is still EOpNull! 0:61 2 (const int) 0:61 Constant: 0:61 4.700000 -0:62 array length (temp highp int) +0:62 array length (temp int) 0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) 0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) 0:62 Constant: @@ -605,9 +605,9 @@ ERROR: node is still EOpNull! 0:92 0 (const int) 0:92 0 (const int) 0:92 0 (const int) -0:93 imageLoad (global highp 4-component vector of float) +0:93 imageLoad (global mediump 4-component vector of float) 0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) -0:93 Construct ivec2 (temp highp 2-component vector of int) +0:93 Construct ivec2 (temp mediump 2-component vector of int) 0:93 'i' (temp highp int) 0:93 'i' (temp highp int) 0:94 imageLoad (global highp 4-component vector of int) diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out index 905a9ca9..6cfd3f44 100644 --- a/Test/baseResults/310.frag.out +++ b/Test/baseResults/310.frag.out @@ -353,7 +353,7 @@ ERROR: node is still EOpNull! 0:101 3 (const int) 0:102 move second child to first child (temp highp 2-component vector of int) 0:102 'v2' (temp highp 2-component vector of int) -0:102 textureSize (global highp 2-component vector of int) +0:102 textureSize (global highp 2-component vector of int, operation at mediump) 0:102 's2dms' (uniform mediump sampler2DMS) 0:103 move second child to first child (temp highp 2-component vector of int) 0:103 'v2' (temp highp 2-component vector of int) @@ -361,19 +361,19 @@ ERROR: node is still EOpNull! 0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D) 0:104 move second child to first child (temp highp 3-component vector of int) 0:104 'v3' (temp highp 3-component vector of int) -0:104 imageQuerySize (global highp 3-component vector of int) +0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump) 0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D) 0:105 move second child to first child (temp highp 2-component vector of int) 0:105 'v2' (temp highp 2-component vector of int) -0:105 imageQuerySize (global highp 2-component vector of int) +0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump) 0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:106 move second child to first child (temp highp 3-component vector of int) 0:106 'v3' (temp highp 3-component vector of int) -0:106 imageQuerySize (global highp 3-component vector of int) +0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump) 0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray) 0:107 move second child to first child (temp highp 2-component vector of int) 0:107 'v2' (temp highp 2-component vector of int) -0:107 imageQuerySize (global highp 2-component vector of int) +0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump) 0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:165 Function Definition: fooIO( (global void) 0:165 Function Parameters: @@ -1234,7 +1234,7 @@ ERROR: node is still EOpNull! 0:101 3 (const int) 0:102 move second child to first child (temp highp 2-component vector of int) 0:102 'v2' (temp highp 2-component vector of int) -0:102 textureSize (global highp 2-component vector of int) +0:102 textureSize (global highp 2-component vector of int, operation at mediump) 0:102 's2dms' (uniform mediump sampler2DMS) 0:103 move second child to first child (temp highp 2-component vector of int) 0:103 'v2' (temp highp 2-component vector of int) @@ -1242,19 +1242,19 @@ ERROR: node is still EOpNull! 0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D) 0:104 move second child to first child (temp highp 3-component vector of int) 0:104 'v3' (temp highp 3-component vector of int) -0:104 imageQuerySize (global highp 3-component vector of int) +0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump) 0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D) 0:105 move second child to first child (temp highp 2-component vector of int) 0:105 'v2' (temp highp 2-component vector of int) -0:105 imageQuerySize (global highp 2-component vector of int) +0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump) 0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:106 move second child to first child (temp highp 3-component vector of int) 0:106 'v3' (temp highp 3-component vector of int) -0:106 imageQuerySize (global highp 3-component vector of int) +0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump) 0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray) 0:107 move second child to first child (temp highp 2-component vector of int) 0:107 'v2' (temp highp 2-component vector of int) -0:107 imageQuerySize (global highp 2-component vector of int) +0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump) 0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:165 Function Definition: fooIO( (global void) 0:165 Function Parameters: diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out index 678c3e12..84a50e89 100644 --- a/Test/baseResults/310.vert.out +++ b/Test/baseResults/310.vert.out @@ -125,12 +125,12 @@ ERROR: node is still EOpNull! 0:17 'u1' (temp highp uint) 0:17 'u1' (temp highp uint) 0:17 'u1' (temp highp uint) -0:19 uMulExtended (global void) +0:19 uMulExtended (global highp void) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) -0:21 iMulExtended (global void) +0:21 iMulExtended (global highp void) 0:21 'i4' (temp highp 4-component vector of int) 0:21 'i4' (temp highp 4-component vector of int) 0:21 'i4' (temp highp 4-component vector of int) @@ -179,27 +179,27 @@ ERROR: node is still EOpNull! 0:31 'u4' (temp highp 4-component vector of uint) 0:32 move second child to first child (temp highp int) 0:32 'i1' (temp highp int) -0:32 bitCount (global highp int) +0:32 bitCount (global lowp int, operation at highp) 0:32 'i1' (temp highp int) 0:33 move second child to first child (temp highp 3-component vector of int) 0:33 'i3' (temp highp 3-component vector of int) -0:33 bitCount (global highp 3-component vector of int) +0:33 bitCount (global lowp 3-component vector of int, operation at highp) 0:33 'u3' (temp highp 3-component vector of uint) 0:34 move second child to first child (temp highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) -0:34 findLSB (global highp 2-component vector of int) +0:34 findLSB (global lowp 2-component vector of int, operation at highp) 0:34 'i2' (temp highp 2-component vector of int) 0:35 move second child to first child (temp highp 4-component vector of int) 0:35 'i4' (temp highp 4-component vector of int) -0:35 findLSB (global highp 4-component vector of int) +0:35 findLSB (global lowp 4-component vector of int, operation at highp) 0:35 'u4' (temp highp 4-component vector of uint) 0:36 move second child to first child (temp highp int) 0:36 'i1' (temp highp int) -0:36 findMSB (global highp int) +0:36 findMSB (global lowp int, operation at highp) 0:36 'i1' (temp highp int) 0:37 move second child to first child (temp highp 2-component vector of int) 0:37 'i2' (temp highp 2-component vector of int) -0:37 findMSB (global highp 2-component vector of int) +0:37 findMSB (global lowp 2-component vector of int, operation at highp) 0:37 'u2' (temp highp 2-component vector of uint) 0:40 move second child to first child (temp highp 3-component vector of float) 0:40 'v3' (temp highp 3-component vector of float) @@ -213,19 +213,19 @@ ERROR: node is still EOpNull! 0:42 'i2' (temp highp 2-component vector of int) 0:45 move second child to first child (temp highp uint) 0:45 'u1' (temp highp uint) -0:45 PackUnorm4x8 (global highp uint) +0:45 PackUnorm4x8 (global highp uint, operation at mediump) 0:45 'v4' (temp mediump 4-component vector of float) 0:46 move second child to first child (temp highp uint) 0:46 'u1' (temp highp uint) -0:46 PackSnorm4x8 (global highp uint) +0:46 PackSnorm4x8 (global highp uint, operation at mediump) 0:46 'v4' (temp mediump 4-component vector of float) -0:47 move second child to first child (temp highp 4-component vector of float) +0:47 move second child to first child (temp mediump 4-component vector of float) 0:47 'v4' (temp mediump 4-component vector of float) -0:47 UnpackUnorm4x8 (global highp 4-component vector of float) +0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp) 0:47 'u1' (temp highp uint) -0:48 move second child to first child (temp highp 4-component vector of float) +0:48 move second child to first child (temp mediump 4-component vector of float) 0:48 'v4' (temp mediump 4-component vector of float) -0:48 UnpackSnorm4x8 (global highp 4-component vector of float) +0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp) 0:48 'u1' (temp highp uint) 0:60 Function Definition: foo( (global void) 0:60 Function Parameters: @@ -340,7 +340,7 @@ ERROR: node is still EOpNull! 0:165 0.100000 0:165 Convert float to int (temp lowp 2-component vector of int) 0:165 'inf' (in highp 2-component vector of float) -0:166 textureGatherOffsets (global lowp 4-component vector of float) +0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:166 direct index (temp lowp sampler2D) 0:166 'sArray' (uniform 4-element array of lowp sampler2D) 0:166 Constant: @@ -404,7 +404,7 @@ ERROR: node is still EOpNull! 0:180 0.100000 0:180 Convert float to int (temp lowp 2-component vector of int) 0:180 'inf' (in highp 2-component vector of float) -0:181 textureGatherOffsets (global lowp 4-component vector of float) +0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:181 direct index (temp lowp sampler2D) 0:181 'sArray' (uniform 4-element array of lowp sampler2D) 0:181 Constant: @@ -421,7 +421,7 @@ ERROR: node is still EOpNull! 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) -0:182 textureGatherOffsets (global lowp 4-component vector of float) +0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:182 direct index (temp lowp sampler2D) 0:182 'sArray' (uniform 4-element array of lowp sampler2D) 0:182 Constant: @@ -1056,12 +1056,12 @@ ERROR: node is still EOpNull! 0:17 'u1' (temp highp uint) 0:17 'u1' (temp highp uint) 0:17 'u1' (temp highp uint) -0:19 uMulExtended (global void) +0:19 uMulExtended (global highp void) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) 0:19 'u4' (temp highp 4-component vector of uint) -0:21 iMulExtended (global void) +0:21 iMulExtended (global highp void) 0:21 'i4' (temp highp 4-component vector of int) 0:21 'i4' (temp highp 4-component vector of int) 0:21 'i4' (temp highp 4-component vector of int) @@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull! 0:31 'u4' (temp highp 4-component vector of uint) 0:32 move second child to first child (temp highp int) 0:32 'i1' (temp highp int) -0:32 bitCount (global highp int) +0:32 bitCount (global lowp int, operation at highp) 0:32 'i1' (temp highp int) 0:33 move second child to first child (temp highp 3-component vector of int) 0:33 'i3' (temp highp 3-component vector of int) -0:33 bitCount (global highp 3-component vector of int) +0:33 bitCount (global lowp 3-component vector of int, operation at highp) 0:33 'u3' (temp highp 3-component vector of uint) 0:34 move second child to first child (temp highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) -0:34 findLSB (global highp 2-component vector of int) +0:34 findLSB (global lowp 2-component vector of int, operation at highp) 0:34 'i2' (temp highp 2-component vector of int) 0:35 move second child to first child (temp highp 4-component vector of int) 0:35 'i4' (temp highp 4-component vector of int) -0:35 findLSB (global highp 4-component vector of int) +0:35 findLSB (global lowp 4-component vector of int, operation at highp) 0:35 'u4' (temp highp 4-component vector of uint) 0:36 move second child to first child (temp highp int) 0:36 'i1' (temp highp int) -0:36 findMSB (global highp int) +0:36 findMSB (global lowp int, operation at highp) 0:36 'i1' (temp highp int) 0:37 move second child to first child (temp highp 2-component vector of int) 0:37 'i2' (temp highp 2-component vector of int) -0:37 findMSB (global highp 2-component vector of int) +0:37 findMSB (global lowp 2-component vector of int, operation at highp) 0:37 'u2' (temp highp 2-component vector of uint) 0:40 move second child to first child (temp highp 3-component vector of float) 0:40 'v3' (temp highp 3-component vector of float) @@ -1144,19 +1144,19 @@ ERROR: node is still EOpNull! 0:42 'i2' (temp highp 2-component vector of int) 0:45 move second child to first child (temp highp uint) 0:45 'u1' (temp highp uint) -0:45 PackUnorm4x8 (global highp uint) +0:45 PackUnorm4x8 (global highp uint, operation at mediump) 0:45 'v4' (temp mediump 4-component vector of float) 0:46 move second child to first child (temp highp uint) 0:46 'u1' (temp highp uint) -0:46 PackSnorm4x8 (global highp uint) +0:46 PackSnorm4x8 (global highp uint, operation at mediump) 0:46 'v4' (temp mediump 4-component vector of float) -0:47 move second child to first child (temp highp 4-component vector of float) +0:47 move second child to first child (temp mediump 4-component vector of float) 0:47 'v4' (temp mediump 4-component vector of float) -0:47 UnpackUnorm4x8 (global highp 4-component vector of float) +0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp) 0:47 'u1' (temp highp uint) -0:48 move second child to first child (temp highp 4-component vector of float) +0:48 move second child to first child (temp mediump 4-component vector of float) 0:48 'v4' (temp mediump 4-component vector of float) -0:48 UnpackSnorm4x8 (global highp 4-component vector of float) +0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp) 0:48 'u1' (temp highp uint) 0:60 Function Definition: foo( (global void) 0:60 Function Parameters: @@ -1271,7 +1271,7 @@ ERROR: node is still EOpNull! 0:165 0.100000 0:165 Convert float to int (temp lowp 2-component vector of int) 0:165 'inf' (in highp 2-component vector of float) -0:166 textureGatherOffsets (global lowp 4-component vector of float) +0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:166 direct index (temp lowp sampler2D) 0:166 'sArray' (uniform 4-element array of lowp sampler2D) 0:166 Constant: @@ -1335,7 +1335,7 @@ ERROR: node is still EOpNull! 0:180 0.100000 0:180 Convert float to int (temp lowp 2-component vector of int) 0:180 'inf' (in highp 2-component vector of float) -0:181 textureGatherOffsets (global lowp 4-component vector of float) +0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:181 direct index (temp lowp sampler2D) 0:181 'sArray' (uniform 4-element array of lowp sampler2D) 0:181 Constant: @@ -1352,7 +1352,7 @@ ERROR: node is still EOpNull! 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) -0:182 textureGatherOffsets (global lowp 4-component vector of float) +0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) 0:182 direct index (temp lowp sampler2D) 0:182 'sArray' (uniform 4-element array of lowp sampler2D) 0:182 Constant: diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out index 40c43218..83f105ca 100644 --- a/Test/baseResults/310AofA.vert.out +++ b/Test/baseResults/310AofA.vert.out @@ -310,7 +310,7 @@ ERROR: node is still EOpNull! 0:96 1 (const int) 0:98 Constant: 0:98 7 (const int) -0:99 array length (temp highp int) +0:99 array length (temp int) 0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float) 0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) 0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) @@ -622,7 +622,7 @@ ERROR: node is still EOpNull! 0:96 1 (const int) 0:98 Constant: 0:98 7 (const int) -0:99 array length (temp highp int) +0:99 array length (temp int) 0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float) 0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) 0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) diff --git a/Test/baseResults/pointCoord.frag.out b/Test/baseResults/pointCoord.frag.out index 633d8b9b..5d53aea1 100644 --- a/Test/baseResults/pointCoord.frag.out +++ b/Test/baseResults/pointCoord.frag.out @@ -14,7 +14,7 @@ Shader version: 100 0:9 true case 0:10 move second child to first child (temp highp 4-component vector of float) 0:10 'color' (temp highp 4-component vector of float) -0:10 texture (global lowp 4-component vector of float) +0:10 texture (global lowp 4-component vector of float, operation at mediump) 0:10 'sampler' (uniform lowp sampler2D) 0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord) 0:9 false case @@ -50,7 +50,7 @@ Shader version: 100 0:9 true case 0:10 move second child to first child (temp highp 4-component vector of float) 0:10 'color' (temp highp 4-component vector of float) -0:10 texture (global lowp 4-component vector of float) +0:10 texture (global lowp 4-component vector of float, operation at mediump) 0:10 'sampler' (uniform lowp sampler2D) 0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord) 0:9 false case diff --git a/Test/baseResults/uint.frag.out b/Test/baseResults/uint.frag.out index dbe9578d..1ee28254 100644 --- a/Test/baseResults/uint.frag.out +++ b/Test/baseResults/uint.frag.out @@ -113,7 +113,7 @@ ERROR: node is still EOpNull! 0:55 true case 0:56 move second child to first child (temp mediump 4-component vector of uint) 0:56 'c' (out mediump 4-component vector of uint) -0:56 texture (global lowp 4-component vector of uint) +0:56 texture (global lowp 4-component vector of uint, operation at highp) 0:56 'usampler' (uniform lowp usampler2D) 0:56 'tc' (smooth in highp 2-component vector of float) 0:57 Test condition and select (temp void) @@ -124,7 +124,7 @@ ERROR: node is still EOpNull! 0:57 true case 0:58 move second child to first child (temp mediump 4-component vector of uint) 0:58 'c' (out mediump 4-component vector of uint) -0:58 texture (global lowp 4-component vector of uint) +0:58 texture (global lowp 4-component vector of uint, operation at highp) 0:58 'usampler' (uniform lowp usampler2D) 0:58 add (temp highp 2-component vector of float) 0:58 'tc' (smooth in highp 2-component vector of float) @@ -139,7 +139,7 @@ ERROR: node is still EOpNull! 0:59 true case 0:60 move second child to first child (temp mediump 4-component vector of uint) 0:60 'c' (out mediump 4-component vector of uint) -0:60 texture (global lowp 4-component vector of uint) +0:60 texture (global lowp 4-component vector of uint, operation at highp) 0:60 'usampler' (uniform lowp usampler2D) 0:60 subtract (temp highp 2-component vector of float) 0:60 'tc' (smooth in highp 2-component vector of float) @@ -412,7 +412,7 @@ ERROR: node is still EOpNull! 0:55 true case 0:56 move second child to first child (temp mediump 4-component vector of uint) 0:56 'c' (out mediump 4-component vector of uint) -0:56 texture (global lowp 4-component vector of uint) +0:56 texture (global lowp 4-component vector of uint, operation at highp) 0:56 'usampler' (uniform lowp usampler2D) 0:56 'tc' (smooth in highp 2-component vector of float) 0:57 Test condition and select (temp void) @@ -423,7 +423,7 @@ ERROR: node is still EOpNull! 0:57 true case 0:58 move second child to first child (temp mediump 4-component vector of uint) 0:58 'c' (out mediump 4-component vector of uint) -0:58 texture (global lowp 4-component vector of uint) +0:58 texture (global lowp 4-component vector of uint, operation at highp) 0:58 'usampler' (uniform lowp usampler2D) 0:58 add (temp highp 2-component vector of float) 0:58 'tc' (smooth in highp 2-component vector of float) @@ -438,7 +438,7 @@ ERROR: node is still EOpNull! 0:59 true case 0:60 move second child to first child (temp mediump 4-component vector of uint) 0:60 'c' (out mediump 4-component vector of uint) -0:60 texture (global lowp 4-component vector of uint) +0:60 texture (global lowp 4-component vector of uint, operation at highp) 0:60 'usampler' (uniform lowp usampler2D) 0:60 subtract (temp highp 2-component vector of float) 0:60 'tc' (smooth in highp 2-component vector of float) diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 4d260f01..bbca9349 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -461,6 +461,9 @@ enum TOperator { EOpTextureQueryLod, EOpTextureQueryLevels, EOpTextureQuerySamples, + + EOpSamplingGuardBegin, + EOpTexture, EOpTextureProj, EOpTextureLod, @@ -503,7 +506,7 @@ enum TOperator { EOpSparseTextureGradOffsetClamp, EOpSparseTextureGuardEnd, - + EOpSamplingGuardEnd, EOpTextureGuardEnd, // @@ -799,11 +802,27 @@ public: virtual bool promote() { return true; } bool modifiesState() const; bool isConstructor() const; - bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } - bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; } + bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } + bool isSampling() const { return op > EOpSamplingGuardBegin && op < EOpSamplingGuardEnd; } + bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; } bool isSparseTexture() const { return op > EOpSparseTextureGuardBegin && op < EOpSparseTextureGuardEnd; } bool isSparseImage() const { return op == EOpSparseImageLoad; } + void setOperationPrecision(TPrecisionQualifier p) { operationPrecision = p; } + TPrecisionQualifier getOperationPrecision() const { return operationPrecision != EpqNone ? + operationPrecision : + type.getQualifier().precision; } + TString getCompleteString() const + { + TString cs = type.getCompleteString(); + if (getOperationPrecision() != type.getQualifier().precision) { + cs += ", operation at "; + cs += GetPrecisionQualifierString(getOperationPrecision()); + } + + return cs; + } + // Crack the op into the individual dimensions of texturing operation. void crackTexture(TSampler sampler, TCrackedTextureOp& cracked) const { @@ -935,9 +954,15 @@ public: } protected: - TIntermOperator(TOperator o) : TIntermTyped(EbtFloat), op(o) {} - TIntermOperator(TOperator o, TType& t) : TIntermTyped(t), op(o) {} + TIntermOperator(TOperator o) : TIntermTyped(EbtFloat), op(o), operationPrecision(EpqNone) {} + TIntermOperator(TOperator o, TType& t) : TIntermTyped(t), op(o), operationPrecision(EpqNone) {} TOperator op; + // The result precision is in the inherited TType, and is usually meant to be both + // the operation precision and the result precision. However, some more complex things, + // like built-in function calls, distinguish between the two, in which case non-EqpNone + // 'operationPrecision' overrides the result precision as far as operation precision + // is concerned. + TPrecisionQualifier operationPrecision; }; // diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index faaba8d5..3884d079 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1375" -#define GLSLANG_DATE "31-Jul-2016" +#define GLSLANG_REVISION "SPIRV99.1377" +#define GLSLANG_DATE "02-Aug-2016" diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 8523398d..0323c1be 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -934,25 +934,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile == EEsProfile && version >= 300) || (profile != EEsProfile && version >= 330)) { commonBuiltins.append( - "highp int floatBitsToInt(highp float value);" - "highp ivec2 floatBitsToInt(highp vec2 value);" - "highp ivec3 floatBitsToInt(highp vec3 value);" - "highp ivec4 floatBitsToInt(highp vec4 value);" - - "highp uint floatBitsToUint(highp float value);" - "highp uvec2 floatBitsToUint(highp vec2 value);" - "highp uvec3 floatBitsToUint(highp vec3 value);" - "highp uvec4 floatBitsToUint(highp vec4 value);" + "int floatBitsToInt(highp float value);" + "ivec2 floatBitsToInt(highp vec2 value);" + "ivec3 floatBitsToInt(highp vec3 value);" + "ivec4 floatBitsToInt(highp vec4 value);" - "highp float intBitsToFloat(highp int value);" - "highp vec2 intBitsToFloat(highp ivec2 value);" - "highp vec3 intBitsToFloat(highp ivec3 value);" - "highp vec4 intBitsToFloat(highp ivec4 value);" + "uint floatBitsToUint(highp float value);" + "uvec2 floatBitsToUint(highp vec2 value);" + "uvec3 floatBitsToUint(highp vec3 value);" + "uvec4 floatBitsToUint(highp vec4 value);" - "highp float uintBitsToFloat(highp uint value);" - "highp vec2 uintBitsToFloat(highp uvec2 value);" - "highp vec3 uintBitsToFloat(highp uvec3 value);" - "highp vec4 uintBitsToFloat(highp uvec4 value);" + "float intBitsToFloat(highp int value);" + "vec2 intBitsToFloat(highp ivec2 value);" + "vec3 intBitsToFloat(highp ivec3 value);" + "vec4 intBitsToFloat(highp ivec4 value);" + + "float uintBitsToFloat(highp uint value);" + "vec2 uintBitsToFloat(highp uvec2 value);" + "vec3 uintBitsToFloat(highp uvec3 value);" + "vec4 uintBitsToFloat(highp uvec4 value);" "\n"); } @@ -980,15 +980,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 400)) { commonBuiltins.append( - "highp float frexp(highp float, out highp int);" - "highp vec2 frexp(highp vec2, out highp ivec2);" - "highp vec3 frexp(highp vec3, out highp ivec3);" - "highp vec4 frexp(highp vec4, out highp ivec4);" + "float frexp(highp float, out highp int);" + "vec2 frexp(highp vec2, out highp ivec2);" + "vec3 frexp(highp vec3, out highp ivec3);" + "vec4 frexp(highp vec4, out highp ivec4);" - "highp float ldexp(highp float, highp int);" - "highp vec2 ldexp(highp vec2, highp ivec2);" - "highp vec3 ldexp(highp vec3, highp ivec3);" - "highp vec4 ldexp(highp vec4, highp ivec4);" + "float ldexp(highp float, highp int);" + "vec2 ldexp(highp vec2, highp ivec2);" + "vec3 ldexp(highp vec3, highp ivec3);" + "vec4 ldexp(highp vec4, highp ivec4);" "\n"); } @@ -1015,7 +1015,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV (profile != EEsProfile && version >= 400)) { commonBuiltins.append( "highp uint packUnorm2x16(vec2);" - "highp vec2 unpackUnorm2x16(highp uint);" + "vec2 unpackUnorm2x16(highp uint);" "\n"); } @@ -1024,18 +1024,37 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV commonBuiltins.append( "highp uint packSnorm2x16(vec2);" " vec2 unpackSnorm2x16(highp uint);" - "highp uint packHalf2x16(mediump vec2);" - " vec2 unpackHalf2x16(highp uint);" + "highp uint packHalf2x16(vec2);" + "\n"); + } + + if (profile == EEsProfile && version >= 300) { + commonBuiltins.append( + "mediump vec2 unpackHalf2x16(highp uint);" + "\n"); + } else if (profile != EEsProfile && version >= 420) { + commonBuiltins.append( + " vec2 unpackHalf2x16(highp uint);" "\n"); } if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 400)) { commonBuiltins.append( - "highp uint packSnorm4x8 (mediump vec4);" - " vec4 unpackSnorm4x8(highp uint);" - "highp uint packUnorm4x8 (mediump vec4);" - " vec4 unpackUnorm4x8(highp uint);" + "highp uint packSnorm4x8(vec4);" + "highp uint packUnorm4x8(vec4);" + "\n"); + } + + if (profile == EEsProfile && version >= 310) { + commonBuiltins.append( + "mediump vec4 unpackSnorm4x8(highp uint);" + "mediump vec4 unpackUnorm4x8(highp uint);" + "\n"); + } else if (profile != EEsProfile && version >= 400) { + commonBuiltins.append( + "vec4 unpackSnorm4x8(highp uint);" + "vec4 unpackUnorm4x8(highp uint);" "\n"); } @@ -1372,6 +1391,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 bitfieldInsert(uvec3 base, uvec3, int, int);" "uvec4 bitfieldInsert(uvec4 base, uvec4, int, int);" + "\n"); + } + + if (profile != EEsProfile && version >= 400) { + commonBuiltins.append( " int findLSB( int);" "ivec2 findLSB(ivec2);" "ivec3 findLSB(ivec3);" @@ -1383,95 +1407,23 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec4 findLSB(uvec4);" "\n"); - } - - if (profile != EEsProfile && version >= 400) { + } else if (profile == EEsProfile && version >= 310) { commonBuiltins.append( - " uint uaddCarry( uint, uint, out uint carry);" - "uvec2 uaddCarry(uvec2, uvec2, out uvec2 carry);" - "uvec3 uaddCarry(uvec3, uvec3, out uvec3 carry);" - "uvec4 uaddCarry(uvec4, uvec4, out uvec4 carry);" + "lowp int findLSB( int);" + "lowp ivec2 findLSB(ivec2);" + "lowp ivec3 findLSB(ivec3);" + "lowp ivec4 findLSB(ivec4);" - " uint usubBorrow( uint, uint, out uint borrow);" - "uvec2 usubBorrow(uvec2, uvec2, out uvec2 borrow);" - "uvec3 usubBorrow(uvec3, uvec3, out uvec3 borrow);" - "uvec4 usubBorrow(uvec4, uvec4, out uvec4 borrow);" - - "void umulExtended( uint, uint, out uint, out uint lsb);" - "void umulExtended(uvec2, uvec2, out uvec2, out uvec2 lsb);" - "void umulExtended(uvec3, uvec3, out uvec3, out uvec3 lsb);" - "void umulExtended(uvec4, uvec4, out uvec4, out uvec4 lsb);" - - "void imulExtended( int, int, out int, out int lsb);" - "void imulExtended(ivec2, ivec2, out ivec2, out ivec2 lsb);" - "void imulExtended(ivec3, ivec3, out ivec3, out ivec3 lsb);" - "void imulExtended(ivec4, ivec4, out ivec4, out ivec4 lsb);" - - " int bitfieldReverse( int);" - "ivec2 bitfieldReverse(ivec2);" - "ivec3 bitfieldReverse(ivec3);" - "ivec4 bitfieldReverse(ivec4);" - - " uint bitfieldReverse( uint);" - "uvec2 bitfieldReverse(uvec2);" - "uvec3 bitfieldReverse(uvec3);" - "uvec4 bitfieldReverse(uvec4);" - - " int bitCount( int);" - "ivec2 bitCount(ivec2);" - "ivec3 bitCount(ivec3);" - "ivec4 bitCount(ivec4);" - - " int bitCount( uint);" - "ivec2 bitCount(uvec2);" - "ivec3 bitCount(uvec3);" - "ivec4 bitCount(uvec4);" - - " int findMSB( int);" - "ivec2 findMSB(ivec2);" - "ivec3 findMSB(ivec3);" - "ivec4 findMSB(ivec4);" - - " int findMSB( uint);" - "ivec2 findMSB(uvec2);" - "ivec3 findMSB(uvec3);" - "ivec4 findMSB(uvec4);" + "lowp int findLSB( uint);" + "lowp ivec2 findLSB(uvec2);" + "lowp ivec3 findLSB(uvec3);" + "lowp ivec4 findLSB(uvec4);" "\n"); } - if (profile == EEsProfile && version >= 310) { + if (profile != EEsProfile && version >= 400) { commonBuiltins.append( - "highp uint uaddCarry(highp uint, highp uint, out lowp uint carry);" - "highp uvec2 uaddCarry(highp uvec2, highp uvec2, out lowp uvec2 carry);" - "highp uvec3 uaddCarry(highp uvec3, highp uvec3, out lowp uvec3 carry);" - "highp uvec4 uaddCarry(highp uvec4, highp uvec4, out lowp uvec4 carry);" - - "highp uint usubBorrow(highp uint, highp uint, out lowp uint borrow);" - "highp uvec2 usubBorrow(highp uvec2, highp uvec2, out lowp uvec2 borrow);" - "highp uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);" - "highp uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);" - - "void umulExtended(highp uint, highp uint, highp out uint, out highp uint lsb);" - "void umulExtended(highp uvec2, highp uvec2, highp out uvec2, out highp uvec2 lsb);" - "void umulExtended(highp uvec3, highp uvec3, highp out uvec3, out highp uvec3 lsb);" - "void umulExtended(highp uvec4, highp uvec4, highp out uvec4, out highp uvec4 lsb);" - - "void imulExtended(highp int, highp int, highp out int, out highp int lsb);" - "void imulExtended(highp ivec2, highp ivec2, highp out ivec2, out highp ivec2 lsb);" - "void imulExtended(highp ivec3, highp ivec3, highp out ivec3, out highp ivec3 lsb);" - "void imulExtended(highp ivec4, highp ivec4, highp out ivec4, out highp ivec4 lsb);" - - "highp int bitfieldReverse(highp int);" - "highp ivec2 bitfieldReverse(highp ivec2);" - "highp ivec3 bitfieldReverse(highp ivec3);" - "highp ivec4 bitfieldReverse(highp ivec4);" - - "highp uint bitfieldReverse(highp uint);" - "highp uvec2 bitfieldReverse(highp uvec2);" - "highp uvec3 bitfieldReverse(highp uvec3);" - "highp uvec4 bitfieldReverse(highp uvec4);" - " int bitCount( int);" "ivec2 bitCount(ivec2);" "ivec3 bitCount(ivec3);" @@ -1491,6 +1443,67 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "ivec2 findMSB(highp uvec2);" "ivec3 findMSB(highp uvec3);" "ivec4 findMSB(highp uvec4);" + + "\n"); + } + + if ((profile == EEsProfile && version >= 310) || + (profile != EEsProfile && version >= 400)) { + commonBuiltins.append( + " uint uaddCarry(highp uint, highp uint, out lowp uint carry);" + "uvec2 uaddCarry(highp uvec2, highp uvec2, out lowp uvec2 carry);" + "uvec3 uaddCarry(highp uvec3, highp uvec3, out lowp uvec3 carry);" + "uvec4 uaddCarry(highp uvec4, highp uvec4, out lowp uvec4 carry);" + + " uint usubBorrow(highp uint, highp uint, out lowp uint borrow);" + "uvec2 usubBorrow(highp uvec2, highp uvec2, out lowp uvec2 borrow);" + "uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);" + "uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);" + + "void umulExtended(highp uint, highp uint, highp out uint, out highp uint lsb);" + "void umulExtended(highp uvec2, highp uvec2, highp out uvec2, out highp uvec2 lsb);" + "void umulExtended(highp uvec3, highp uvec3, highp out uvec3, out highp uvec3 lsb);" + "void umulExtended(highp uvec4, highp uvec4, highp out uvec4, out highp uvec4 lsb);" + + "void imulExtended(highp int, highp int, highp out int, out highp int lsb);" + "void imulExtended(highp ivec2, highp ivec2, highp out ivec2, out highp ivec2 lsb);" + "void imulExtended(highp ivec3, highp ivec3, highp out ivec3, out highp ivec3 lsb);" + "void imulExtended(highp ivec4, highp ivec4, highp out ivec4, out highp ivec4 lsb);" + + " int bitfieldReverse(highp int);" + "ivec2 bitfieldReverse(highp ivec2);" + "ivec3 bitfieldReverse(highp ivec3);" + "ivec4 bitfieldReverse(highp ivec4);" + + " uint bitfieldReverse(highp uint);" + "uvec2 bitfieldReverse(highp uvec2);" + "uvec3 bitfieldReverse(highp uvec3);" + "uvec4 bitfieldReverse(highp uvec4);" + + "\n"); + } + + if (profile == EEsProfile && version >= 310) { + commonBuiltins.append( + "lowp int bitCount( int);" + "lowp ivec2 bitCount(ivec2);" + "lowp ivec3 bitCount(ivec3);" + "lowp ivec4 bitCount(ivec4);" + + "lowp int bitCount( uint);" + "lowp ivec2 bitCount(uvec2);" + "lowp ivec3 bitCount(uvec3);" + "lowp ivec4 bitCount(uvec4);" + + "lowp int findMSB(highp int);" + "lowp ivec2 findMSB(highp ivec2);" + "lowp ivec3 findMSB(highp ivec3);" + "lowp ivec4 findMSB(highp ivec4);" + + "lowp int findMSB(highp uint);" + "lowp ivec2 findMSB(highp uvec2);" + "lowp ivec3 findMSB(highp uvec3);" + "lowp ivec4 findMSB(highp uvec4);" "\n"); } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 31d0b165..be828e9c 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -341,35 +341,11 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper node->setOperand(child); node->setType(returnType); - // propagate precision up from child - if (profile == EEsProfile && returnType.getQualifier().precision == EpqNone && returnType.getBasicType() != EbtBool) - node->getQualifier().precision = child->getQualifier().precision; - - // propagate precision down to child - if (node->getQualifier().precision != EpqNone) - child->propagatePrecision(node->getQualifier().precision); - return node; } else { // setAggregateOperater() calls fold() for constant folding TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc); - // if not folded, we'll still have an aggregate node to propagate precision with - if (node->getAsAggregate()) { - TPrecisionQualifier correctPrecision = returnType.getQualifier().precision; - if (correctPrecision == EpqNone && profile == EEsProfile) { - // find the maximum precision from the arguments, for the built-in's return precision - TIntermSequence& sequence = node->getAsAggregate()->getSequence(); - for (unsigned int arg = 0; arg < sequence.size(); ++arg) - correctPrecision = std::max(correctPrecision, sequence[arg]->getAsTyped()->getQualifier().precision); - } - - // Propagate precision through this node and its children. That algorithm stops - // when a precision is found, so start by clearing this subroot precision - node->getQualifier().precision = EpqNone; - node->propagatePrecision(correctPrecision); - } - return node; } } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 2ef0286b..398de1b4 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1078,17 +1078,16 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction { TIntermTyped* result = nullptr; - TOperator op = function->getBuiltInOp(); - if (op == EOpArrayLength) + if (function->getBuiltInOp() == EOpArrayLength) result = handleLengthMethod(loc, function, arguments); - else if (op != EOpNull) { + else if (function->getBuiltInOp() != EOpNull) { // // Then this should be a constructor. // Don't go through the symbol table for constructors. // Their parameters will be verified algorithmically. // TType type(EbtVoid); // use this to get the type back - if (! constructorError(loc, arguments, *function, op, type)) { + if (! constructorError(loc, arguments, *function, function->getBuiltInOp(), type)) { // // It's a constructor, of type 'type'. // @@ -1149,18 +1148,9 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction addInputArgumentConversions(*fnCandidate, arguments); // arguments may be modified if it's just a single argument node } - op = fnCandidate->getBuiltInOp(); - if (builtIn && op != EOpNull) { + if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) { // A function call mapped to a built-in operation. - checkLocation(loc, op); - result = intermediate.addBuiltInFunctionCall(loc, op, fnCandidate->getParamCount() == 1, arguments, fnCandidate->getType()); - if (result == nullptr) { - error(arguments->getLoc(), " wrong operand type", "Internal Error", - "built in unary operator function. Type: %s", - static_cast(arguments)->getCompleteString().c_str()); - } else if (result->getAsOperator()) { - builtInOpCheck(loc, *fnCandidate, *result->getAsOperator()); - } + result = handleBuiltInFunctionCall(loc, *arguments, *fnCandidate); } else { // This is a function call not mapped to built-in operator. // It could still be a built-in function, but only if PureOperatorBuiltins == false. @@ -1207,6 +1197,118 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction return result; } +TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode& arguments, + const TFunction& function) +{ + checkLocation(loc, function.getBuiltInOp()); + TIntermTyped *result = intermediate.addBuiltInFunctionCall(loc, function.getBuiltInOp(), + function.getParamCount() == 1, + &arguments, function.getType()); + computeBuiltinPrecisions(*result, function); + if (result == nullptr) { + error(arguments.getLoc(), " wrong operand type", "Internal Error", + "built in unary operator function. Type: %s", + static_cast(&arguments)->getCompleteString().c_str()); + } else if (result->getAsOperator()) + builtInOpCheck(loc, function, *result->getAsOperator()); + + return result; +} + +// "The operation of a built-in function can have a different precision +// qualification than the precision qualification of the resulting value. +// These two precision qualifications are established as follows. +// +// The precision qualification of the operation of a built-in function is +// based on the precision qualification of its input arguments and formal +// parameters: When a formal parameter specifies a precision qualifier, +// that is used, otherwise, the precision qualification of the calling +// argument is used. The highest precision of these will be the precision +// qualification of the operation of the built-in function. Generally, +// this is applied across all arguments to a built-in function, with the +// exceptions being: +// - bitfieldExtract and bitfieldInsert ignore the 'offset' and 'bits' +// arguments. +// - interpolateAt* functions only look at the 'interpolant' argument. +// +// The precision qualification of the result of a built-in function is +// determined in one of the following ways: +// +// - For the texture sampling, image load, and image store functions, +// the precision of the return type matches the precision of the +// sampler type +// +// Otherwise: +// +// - For prototypes that do not specify a resulting precision qualifier, +// the precision will be the same as the precision of the operation. +// +// - For prototypes that do specify a resulting precision qualifier, +// the specified precision qualifier is the precision qualification of +// the result." +// +void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction& function) +{ + TPrecisionQualifier operationPrecision = EpqNone; + TPrecisionQualifier resultPrecision = EpqNone; + + if (profile != EEsProfile) + return; + + TIntermOperator* opNode = node.getAsOperator(); + if (opNode == nullptr) + return; + + if (TIntermUnary* unaryNode = node.getAsUnaryNode()) { + operationPrecision = std::max(function[0].type->getQualifier().precision, + unaryNode->getOperand()->getType().getQualifier().precision); + if (function.getType().getBasicType() != EbtBool) + resultPrecision = function.getType().getQualifier().precision == EpqNone ? + operationPrecision : + function.getType().getQualifier().precision; + } else if (TIntermAggregate* agg = node.getAsAggregate()) { + TIntermSequence& sequence = agg->getSequence(); + int numArgs = (int)sequence.size(); + switch (agg->getOp()) { + case EOpBitfieldExtract: + numArgs = 1; + break; + case EOpBitfieldInsert: + numArgs = 2; + break; + case EOpInterpolateAtCentroid: + case EOpInterpolateAtOffset: + case EOpInterpolateAtSample: + numArgs = 1; + break; + default: + break; + } + // find the maximum precision from the arguments and parameters + for (unsigned int arg = 0; arg < sequence.size(); ++arg) { + operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision); + operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); + } + // compute the result precision + if (agg->isSampling() || agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore) + resultPrecision = sequence[0]->getAsTyped()->getQualifier().precision; + else if (function.getType().getBasicType() != EbtBool) + resultPrecision = function.getType().getQualifier().precision == EpqNone ? + operationPrecision : + function.getType().getQualifier().precision; + } + + // Propagate precision through this node and its children. That algorithm stops + // when a precision is found, so start by clearing this subroot precision + opNode->getQualifier().precision = EpqNone; + if (operationPrecision != EpqNone) { + opNode->propagatePrecision(operationPrecision); + opNode->setOperationPrecision(operationPrecision); + } + // Now, set the result precision, which might not match + opNode->getQualifier().precision = resultPrecision; +} + TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { functionReturnsValue = true; @@ -1433,11 +1535,6 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan } const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr - // built-in texturing functions get their return value precision from the precision of the sampler - if (fnCandidate.getType().getQualifier().precision == EpqNone && - fnCandidate.getParamCount() > 0 && fnCandidate[0].type->getBasicType() == EbtSampler) - callNode.getQualifier().precision = arg0->getQualifier().precision; - switch (callNode.getOp()) { case EOpTextureGather: case EOpTextureGatherOffset: @@ -1569,11 +1666,6 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan case EOpInterpolateAtCentroid: case EOpInterpolateAtSample: case EOpInterpolateAtOffset: - // "For the interpolateAt* functions, the call will return a precision - // qualification matching the precision of the 'interpolant' argument to - // the function call." - callNode.getQualifier().precision = arg0->getQualifier().precision; - // Make sure the first argument is an interpolant, or an array element of an interpolant if (arg0->getType().getQualifier().storage != EvqVaryingIn) { // It might still be an array element. diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index a5e6f65e..544c3d30 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -197,6 +197,8 @@ public: TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); + TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode& arguments, const TFunction& function); + void computeBuiltinPrecisions(TIntermTyped&, const TFunction&); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void checkLocation(const TSourceLoc&, TOperator); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 1f6c4a94..fcbe12cd 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -634,7 +634,7 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt if (fields.num == 1) { TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc); result = intermediate.addIndex(EOpIndexDirect, base, index, loc); - result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision)); + result->setType(TType(base->getBasicType(), EvqTemporary)); } else { TString vectorString = field; TIntermTyped* index = intermediate.addSwizzle(fields, loc); @@ -1953,11 +1953,6 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn } const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr - // built-in texturing functions get their return value precision from the precision of the sampler - if (fnCandidate.getType().getQualifier().precision == EpqNone && - fnCandidate.getParamCount() > 0 && fnCandidate[0].type->getBasicType() == EbtSampler) - callNode.getQualifier().precision = arg0->getQualifier().precision; - switch (callNode.getOp()) { case EOpTextureGather: case EOpTextureGatherOffset: @@ -2060,11 +2055,6 @@ void HlslParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fn case EOpInterpolateAtCentroid: case EOpInterpolateAtSample: case EOpInterpolateAtOffset: - // "For the interpolateAt* functions, the call will return a precision - // qualification matching the precision of the 'interpolant' argument to - // the function call." - callNode.getQualifier().precision = arg0->getQualifier().precision; - // Make sure the first argument is an interpolant, or an array element of an interpolant if (arg0->getType().getQualifier().storage != EvqVaryingIn) { // It might still be an array element. @@ -2580,10 +2570,6 @@ void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, c else if (src.storage != EvqTemporary && src.storage != EvqGlobal) error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), ""); - // Precision qualifiers - if (dst.precision == EpqNone || (force && src.precision != EpqNone)) - dst.precision = src.precision; - // Layout qualifiers mergeObjectLayoutQualifiers(dst, src, false); From cb88de5e5e8135d2c282b9f11a71af56923ec484 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 3 Aug 2016 07:04:18 -0600 Subject: [PATCH 054/217] HLSL: allow semicolons between global scope declarations. --- Test/baseResults/hlsl.semicolons.frag.out | 96 +++++++++++++++++++++++ Test/hlsl.semicolons.frag | 19 +++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 5 ++ 4 files changed, 121 insertions(+) create mode 100644 Test/baseResults/hlsl.semicolons.frag.out create mode 100644 Test/hlsl.semicolons.frag diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out new file mode 100644 index 00000000..78a3a5a8 --- /dev/null +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -0,0 +1,96 @@ +hlsl.semicolons.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: MyFunc( (global void) +0:2 Function Parameters: +0:8 Function Definition: MyFunc2( (global void) +0:8 Function Parameters: +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Parameters: +0:? Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: MyFunc( (global void) +0:2 Function Parameters: +0:8 Function Definition: MyFunc2( (global void) +0:8 Function Parameters: +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Parameters: +0:? Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Branch: Return with expression +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 23 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 6 "MyFunc(" + Name 8 "MyFunc2(" + Name 12 "PS_OUTPUT" + MemberName 12(PS_OUTPUT) 0 "color" + Name 14 "ps_output" + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12(PS_OUTPUT): TypeStruct 11(fvec4) + 13: TypePointer Function 12(PS_OUTPUT) + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: 10(float) Constant 1065353216 + 18: 11(fvec4) ConstantComposite 17 17 17 17 + 19: TypePointer Function 11(fvec4) + 4(main): 2 Function None 3 + 5: Label + 14(ps_output): 13(ptr) Variable Function + 20: 19(ptr) AccessChain 14(ps_output) 16 + Store 20 18 + 21:12(PS_OUTPUT) Load 14(ps_output) + ReturnValue 21 + FunctionEnd + 6(MyFunc(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(MyFunc2(): 2 Function None 3 + 9: Label + Return + FunctionEnd diff --git a/Test/hlsl.semicolons.frag b/Test/hlsl.semicolons.frag new file mode 100644 index 00000000..28fdedd9 --- /dev/null +++ b/Test/hlsl.semicolons.frag @@ -0,0 +1,19 @@ + +void MyFunc() { } + +;;; +; +; ; ; // HLSL allows stray global scope semicolons. + +void MyFunc2() {;;;}; + +struct PS_OUTPUT { float4 color : SV_Target0; };;;;; + +;PS_OUTPUT main() +{ + PS_OUTPUT ps_output;;; + ; + ps_output.color = 1.0; + return ps_output; +}; + diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 55c71391..f9539ecd 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -143,6 +143,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, + {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 37919c32..64e8b9fb 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -89,12 +89,17 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken) // compilationUnit // : list of externalDeclaration +// | SEMICOLONS // bool HlslGrammar::acceptCompilationUnit() { TIntermNode* unitNode = nullptr; while (! peekTokenClass(EHTokNone)) { + // HLSL allows semicolons between global declarations, e.g, between functions. + if (acceptTokenClass(EHTokSemicolon)) + continue; + // externalDeclaration TIntermNode* declarationNode; if (! acceptDeclaration(declarationNode)) From 7dfcf4d1ad8e8a2756d00c8341e90bb3fd5aef21 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sun, 31 Jul 2016 10:37:02 -0600 Subject: [PATCH 055/217] HLSL: Add GatherRed/Green/Blue/Alpha methods, inc 4-offset forms --- .../hlsl.gatherRGBA.array.dx10.frag.out | 884 +++++++++++++ .../hlsl.gatherRGBA.basic.dx10.frag.out | 910 +++++++++++++ .../hlsl.gatherRGBA.offset.dx10.frag.out | 1148 +++++++++++++++++ .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 1122 ++++++++++++++++ Test/hlsl.gatherRGBA.array.dx10.frag | 71 + Test/hlsl.gatherRGBA.basic.dx10.frag | 77 ++ Test/hlsl.gatherRGBA.offset.dx10.frag | 116 ++ Test/hlsl.gatherRGBA.offsetarray.dx10.frag | 110 ++ Test/hlsl.gathercmpRGBA.array.dx10.frag | 70 + Test/hlsl.gathercmpRGBA.basic.dx10.frag | 76 ++ Test/hlsl.gathercmpRGBA.offset.dx10.frag | 115 ++ Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag | 109 ++ glslang/Include/intermediate.h | 11 + gtests/Hlsl.FromFile.cpp | 4 + hlsl/hlslParseHelper.cpp | 137 +- hlsl/hlslParseables.cpp | 97 +- 16 files changed, 5046 insertions(+), 11 deletions(-) create mode 100644 Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out create mode 100644 Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out create mode 100644 Test/hlsl.gatherRGBA.array.dx10.frag create mode 100644 Test/hlsl.gatherRGBA.basic.dx10.frag create mode 100644 Test/hlsl.gatherRGBA.offset.dx10.frag create mode 100644 Test/hlsl.gatherRGBA.offsetarray.dx10.frag create mode 100644 Test/hlsl.gathercmpRGBA.array.dx10.frag create mode 100644 Test/hlsl.gathercmpRGBA.basic.dx10.frag create mode 100644 Test/hlsl.gathercmpRGBA.offset.dx10.frag create mode 100644 Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out new file mode 100644 index 00000000..cad56b6c --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -0,0 +1,884 @@ +hlsl.gatherRGBA.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval00' (temp 4-component vector of float) +0:33 textureGather (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2DArray) +0:33 'g_tTex2df4a' (uniform texture2DArray) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:33 'c3' (uniform 3-component vector of float) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval01' (temp 4-component vector of int) +0:34 textureGather (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2DArray) +0:34 'g_tTex2di4a' (uniform itexture2DArray) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:34 'c3' (uniform 3-component vector of float) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval02' (temp 4-component vector of uint) +0:35 textureGather (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2DArray) +0:35 'g_tTex2du4a' (uniform utexture2DArray) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:35 'c3' (uniform 3-component vector of float) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:37 'txval10' (temp 4-component vector of float) +0:37 textureGather (global 4-component vector of float) +0:37 Construct combined texture-sampler (temp sampler2DArray) +0:37 'g_tTex2df4a' (uniform texture2DArray) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:37 'c3' (uniform 3-component vector of float) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of int) +0:38 'txval11' (temp 4-component vector of int) +0:38 textureGather (global 4-component vector of int) +0:38 Construct combined texture-sampler (temp isampler2DArray) +0:38 'g_tTex2di4a' (uniform itexture2DArray) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:38 'c3' (uniform 3-component vector of float) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of uint) +0:39 'txval12' (temp 4-component vector of uint) +0:39 textureGather (global 4-component vector of uint) +0:39 Construct combined texture-sampler (temp usampler2DArray) +0:39 'g_tTex2du4a' (uniform utexture2DArray) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:39 'c3' (uniform 3-component vector of float) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of float) +0:41 'txval20' (temp 4-component vector of float) +0:41 textureGather (global 4-component vector of float) +0:41 Construct combined texture-sampler (temp sampler2DArray) +0:41 'g_tTex2df4a' (uniform texture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'txval21' (temp 4-component vector of int) +0:42 textureGather (global 4-component vector of int) +0:42 Construct combined texture-sampler (temp isampler2DArray) +0:42 'g_tTex2di4a' (uniform itexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'txval22' (temp 4-component vector of uint) +0:43 textureGather (global 4-component vector of uint) +0:43 Construct combined texture-sampler (temp usampler2DArray) +0:43 'g_tTex2du4a' (uniform utexture2DArray) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:43 'c3' (uniform 3-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:45 'txval30' (temp 4-component vector of float) +0:45 textureGather (global 4-component vector of float) +0:45 Construct combined texture-sampler (temp sampler2DArray) +0:45 'g_tTex2df4a' (uniform texture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'txval31' (temp 4-component vector of int) +0:46 textureGather (global 4-component vector of int) +0:46 Construct combined texture-sampler (temp isampler2DArray) +0:46 'g_tTex2di4a' (uniform itexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'txval32' (temp 4-component vector of uint) +0:47 textureGather (global 4-component vector of uint) +0:47 Construct combined texture-sampler (temp usampler2DArray) +0:47 'g_tTex2du4a' (uniform utexture2DArray) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c3' (uniform 3-component vector of float) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval40' (temp 4-component vector of float) +0:51 textureGather (global 4-component vector of float) +0:51 Construct combined texture-sampler (temp samplerCubeArray) +0:51 'g_tTexcdf4a' (uniform textureCubeArray) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c4' (uniform 4-component vector of float) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval41' (temp 4-component vector of int) +0:52 textureGather (global 4-component vector of int) +0:52 Construct combined texture-sampler (temp isamplerCubeArray) +0:52 'g_tTexcdi4a' (uniform itextureCubeArray) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c4' (uniform 4-component vector of float) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval42' (temp 4-component vector of uint) +0:53 textureGather (global 4-component vector of uint) +0:53 Construct combined texture-sampler (temp usamplerCubeArray) +0:53 'g_tTexcdu4a' (uniform utextureCubeArray) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:53 'c4' (uniform 4-component vector of float) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'txval50' (temp 4-component vector of float) +0:55 textureGather (global 4-component vector of float) +0:55 Construct combined texture-sampler (temp samplerCubeArray) +0:55 'g_tTexcdf4a' (uniform textureCubeArray) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:55 'c4' (uniform 4-component vector of float) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'txval51' (temp 4-component vector of int) +0:56 textureGather (global 4-component vector of int) +0:56 Construct combined texture-sampler (temp isamplerCubeArray) +0:56 'g_tTexcdi4a' (uniform itextureCubeArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c4' (uniform 4-component vector of float) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'txval52' (temp 4-component vector of uint) +0:57 textureGather (global 4-component vector of uint) +0:57 Construct combined texture-sampler (temp usamplerCubeArray) +0:57 'g_tTexcdu4a' (uniform utextureCubeArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c4' (uniform 4-component vector of float) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'txval60' (temp 4-component vector of float) +0:59 textureGather (global 4-component vector of float) +0:59 Construct combined texture-sampler (temp samplerCubeArray) +0:59 'g_tTexcdf4a' (uniform textureCubeArray) +0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:59 'c4' (uniform 4-component vector of float) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'txval61' (temp 4-component vector of int) +0:60 textureGather (global 4-component vector of int) +0:60 Construct combined texture-sampler (temp isamplerCubeArray) +0:60 'g_tTexcdi4a' (uniform itextureCubeArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c4' (uniform 4-component vector of float) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'txval62' (temp 4-component vector of uint) +0:61 textureGather (global 4-component vector of uint) +0:61 Construct combined texture-sampler (temp usamplerCubeArray) +0:61 'g_tTexcdu4a' (uniform utextureCubeArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c4' (uniform 4-component vector of float) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of float) +0:63 'txval70' (temp 4-component vector of float) +0:63 textureGather (global 4-component vector of float) +0:63 Construct combined texture-sampler (temp samplerCubeArray) +0:63 'g_tTexcdf4a' (uniform textureCubeArray) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c4' (uniform 4-component vector of float) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of int) +0:64 'txval71' (temp 4-component vector of int) +0:64 textureGather (global 4-component vector of int) +0:64 Construct combined texture-sampler (temp isamplerCubeArray) +0:64 'g_tTexcdi4a' (uniform itextureCubeArray) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c4' (uniform 4-component vector of float) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of uint) +0:65 'txval72' (temp 4-component vector of uint) +0:65 textureGather (global 4-component vector of uint) +0:65 Construct combined texture-sampler (temp usamplerCubeArray) +0:65 'g_tTexcdu4a' (uniform utextureCubeArray) +0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:65 'c4' (uniform 4-component vector of float) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child (temp float) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Parameters: +0:? Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:33 'txval00' (temp 4-component vector of float) +0:33 textureGather (global 4-component vector of float) +0:33 Construct combined texture-sampler (temp sampler2DArray) +0:33 'g_tTex2df4a' (uniform texture2DArray) +0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:33 'c3' (uniform 3-component vector of float) +0:33 Constant: +0:33 0 (const int) +0:34 Sequence +0:34 move second child to first child (temp 4-component vector of int) +0:34 'txval01' (temp 4-component vector of int) +0:34 textureGather (global 4-component vector of int) +0:34 Construct combined texture-sampler (temp isampler2DArray) +0:34 'g_tTex2di4a' (uniform itexture2DArray) +0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:34 'c3' (uniform 3-component vector of float) +0:34 Constant: +0:34 0 (const int) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of uint) +0:35 'txval02' (temp 4-component vector of uint) +0:35 textureGather (global 4-component vector of uint) +0:35 Construct combined texture-sampler (temp usampler2DArray) +0:35 'g_tTex2du4a' (uniform utexture2DArray) +0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:35 'c3' (uniform 3-component vector of float) +0:35 Constant: +0:35 0 (const int) +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:37 'txval10' (temp 4-component vector of float) +0:37 textureGather (global 4-component vector of float) +0:37 Construct combined texture-sampler (temp sampler2DArray) +0:37 'g_tTex2df4a' (uniform texture2DArray) +0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:37 'c3' (uniform 3-component vector of float) +0:37 Constant: +0:37 1 (const int) +0:38 Sequence +0:38 move second child to first child (temp 4-component vector of int) +0:38 'txval11' (temp 4-component vector of int) +0:38 textureGather (global 4-component vector of int) +0:38 Construct combined texture-sampler (temp isampler2DArray) +0:38 'g_tTex2di4a' (uniform itexture2DArray) +0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:38 'c3' (uniform 3-component vector of float) +0:38 Constant: +0:38 1 (const int) +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of uint) +0:39 'txval12' (temp 4-component vector of uint) +0:39 textureGather (global 4-component vector of uint) +0:39 Construct combined texture-sampler (temp usampler2DArray) +0:39 'g_tTex2du4a' (uniform utexture2DArray) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:39 'c3' (uniform 3-component vector of float) +0:39 Constant: +0:39 1 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of float) +0:41 'txval20' (temp 4-component vector of float) +0:41 textureGather (global 4-component vector of float) +0:41 Construct combined texture-sampler (temp sampler2DArray) +0:41 'g_tTex2df4a' (uniform texture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 Constant: +0:41 2 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'txval21' (temp 4-component vector of int) +0:42 textureGather (global 4-component vector of int) +0:42 Construct combined texture-sampler (temp isampler2DArray) +0:42 'g_tTex2di4a' (uniform itexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 Constant: +0:42 2 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'txval22' (temp 4-component vector of uint) +0:43 textureGather (global 4-component vector of uint) +0:43 Construct combined texture-sampler (temp usampler2DArray) +0:43 'g_tTex2du4a' (uniform utexture2DArray) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:43 'c3' (uniform 3-component vector of float) +0:43 Constant: +0:43 2 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:45 'txval30' (temp 4-component vector of float) +0:45 textureGather (global 4-component vector of float) +0:45 Construct combined texture-sampler (temp sampler2DArray) +0:45 'g_tTex2df4a' (uniform texture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Constant: +0:45 3 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'txval31' (temp 4-component vector of int) +0:46 textureGather (global 4-component vector of int) +0:46 Construct combined texture-sampler (temp isampler2DArray) +0:46 'g_tTex2di4a' (uniform itexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Constant: +0:46 3 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'txval32' (temp 4-component vector of uint) +0:47 textureGather (global 4-component vector of uint) +0:47 Construct combined texture-sampler (temp usampler2DArray) +0:47 'g_tTex2du4a' (uniform utexture2DArray) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c3' (uniform 3-component vector of float) +0:47 Constant: +0:47 3 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval40' (temp 4-component vector of float) +0:51 textureGather (global 4-component vector of float) +0:51 Construct combined texture-sampler (temp samplerCubeArray) +0:51 'g_tTexcdf4a' (uniform textureCubeArray) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c4' (uniform 4-component vector of float) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval41' (temp 4-component vector of int) +0:52 textureGather (global 4-component vector of int) +0:52 Construct combined texture-sampler (temp isamplerCubeArray) +0:52 'g_tTexcdi4a' (uniform itextureCubeArray) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c4' (uniform 4-component vector of float) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval42' (temp 4-component vector of uint) +0:53 textureGather (global 4-component vector of uint) +0:53 Construct combined texture-sampler (temp usamplerCubeArray) +0:53 'g_tTexcdu4a' (uniform utextureCubeArray) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:53 'c4' (uniform 4-component vector of float) +0:53 Constant: +0:53 0 (const int) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'txval50' (temp 4-component vector of float) +0:55 textureGather (global 4-component vector of float) +0:55 Construct combined texture-sampler (temp samplerCubeArray) +0:55 'g_tTexcdf4a' (uniform textureCubeArray) +0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:55 'c4' (uniform 4-component vector of float) +0:55 Constant: +0:55 1 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'txval51' (temp 4-component vector of int) +0:56 textureGather (global 4-component vector of int) +0:56 Construct combined texture-sampler (temp isamplerCubeArray) +0:56 'g_tTexcdi4a' (uniform itextureCubeArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c4' (uniform 4-component vector of float) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'txval52' (temp 4-component vector of uint) +0:57 textureGather (global 4-component vector of uint) +0:57 Construct combined texture-sampler (temp usamplerCubeArray) +0:57 'g_tTexcdu4a' (uniform utextureCubeArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c4' (uniform 4-component vector of float) +0:57 Constant: +0:57 1 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'txval60' (temp 4-component vector of float) +0:59 textureGather (global 4-component vector of float) +0:59 Construct combined texture-sampler (temp samplerCubeArray) +0:59 'g_tTexcdf4a' (uniform textureCubeArray) +0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:59 'c4' (uniform 4-component vector of float) +0:59 Constant: +0:59 2 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'txval61' (temp 4-component vector of int) +0:60 textureGather (global 4-component vector of int) +0:60 Construct combined texture-sampler (temp isamplerCubeArray) +0:60 'g_tTexcdi4a' (uniform itextureCubeArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c4' (uniform 4-component vector of float) +0:60 Constant: +0:60 2 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'txval62' (temp 4-component vector of uint) +0:61 textureGather (global 4-component vector of uint) +0:61 Construct combined texture-sampler (temp usamplerCubeArray) +0:61 'g_tTexcdu4a' (uniform utextureCubeArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c4' (uniform 4-component vector of float) +0:61 Constant: +0:61 2 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of float) +0:63 'txval70' (temp 4-component vector of float) +0:63 textureGather (global 4-component vector of float) +0:63 Construct combined texture-sampler (temp samplerCubeArray) +0:63 'g_tTexcdf4a' (uniform textureCubeArray) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c4' (uniform 4-component vector of float) +0:63 Constant: +0:63 3 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of int) +0:64 'txval71' (temp 4-component vector of int) +0:64 textureGather (global 4-component vector of int) +0:64 Construct combined texture-sampler (temp isamplerCubeArray) +0:64 'g_tTexcdi4a' (uniform itextureCubeArray) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c4' (uniform 4-component vector of float) +0:64 Constant: +0:64 3 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of uint) +0:65 'txval72' (temp 4-component vector of uint) +0:65 textureGather (global 4-component vector of uint) +0:65 Construct combined texture-sampler (temp usamplerCubeArray) +0:65 'g_tTexcdu4a' (uniform utextureCubeArray) +0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:65 'c4' (uniform 4-component vector of float) +0:65 Constant: +0:65 3 (const int) +0:67 move second child to first child (temp 4-component vector of float) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Constant: +0:67 0 (const int) +0:67 Constant: +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:67 1.000000 +0:68 move second child to first child (temp float) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) +0:68 Constant: +0:68 1.000000 +0:70 Branch: Return with expression +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 220 + + Capability Shader + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval00" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 22 "c3" + Name 29 "txval01" + Name 32 "g_tTex2di4a" + Name 42 "txval02" + Name 45 "g_tTex2du4a" + Name 52 "txval10" + Name 59 "txval11" + Name 65 "txval12" + Name 71 "txval20" + Name 78 "txval21" + Name 84 "txval22" + Name 90 "txval30" + Name 97 "txval31" + Name 103 "txval32" + Name 109 "txval40" + Name 112 "g_tTexcdf4a" + Name 118 "c4" + Name 121 "txval41" + Name 124 "g_tTexcdi4a" + Name 131 "txval42" + Name 134 "g_tTexcdu4a" + Name 141 "txval50" + Name 147 "txval51" + Name 153 "txval52" + Name 159 "txval60" + Name 165 "txval61" + Name 171 "txval62" + Name 177 "txval70" + Name 183 "txval71" + Name 189 "txval72" + Name 195 "PS_OUTPUT" + MemberName 195(PS_OUTPUT) 0 "Color" + MemberName 195(PS_OUTPUT) 1 "Depth" + Name 197 "psout" + Name 205 "g_sSamp2d" + Name 208 "g_tTex1df4a" + Name 211 "g_tTex1di4a" + Name 214 "g_tTex1du4a" + Name 216 "c1" + Name 219 "c2" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex2di4a) DescriptorSet 0 + Decorate 45(g_tTex2du4a) DescriptorSet 0 + Decorate 112(g_tTexcdf4a) DescriptorSet 0 + Decorate 124(g_tTexcdi4a) DescriptorSet 0 + Decorate 134(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 205(g_sSamp2d) DescriptorSet 0 + Decorate 208(g_tTex1df4a) DescriptorSet 0 + Decorate 208(g_tTex1df4a) Binding 0 + Decorate 211(g_tTex1di4a) DescriptorSet 0 + Decorate 214(g_tTex1du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: TypePointer UniformConstant 20(fvec3) + 22(c3): 21(ptr) Variable UniformConstant + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4a): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 2D array sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex2du4a): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 57: 24(int) Constant 1 + 76: 24(int) Constant 2 + 95: 24(int) Constant 3 + 110: TypeImage 6(float) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTexcdf4a): 111(ptr) Variable UniformConstant + 115: TypeSampledImage 110 + 117: TypePointer UniformConstant 7(fvec4) + 118(c4): 117(ptr) Variable UniformConstant + 122: TypeImage 24(int) Cube array sampled format:Unknown + 123: TypePointer UniformConstant 122 +124(g_tTexcdi4a): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 132: TypeImage 39(int) Cube array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTexcdu4a): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 195(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 196: TypePointer Function 195(PS_OUTPUT) + 198: 6(float) Constant 1065353216 + 199: 7(fvec4) ConstantComposite 198 198 198 198 + 201: TypePointer Function 6(float) + 205(g_sSamp2d): 15(ptr) Variable UniformConstant + 206: TypeImage 6(float) 1D array sampled format:Unknown + 207: TypePointer UniformConstant 206 +208(g_tTex1df4a): 207(ptr) Variable UniformConstant + 209: TypeImage 24(int) 1D array sampled format:Unknown + 210: TypePointer UniformConstant 209 +211(g_tTex1di4a): 210(ptr) Variable UniformConstant + 212: TypeImage 39(int) 1D array sampled format:Unknown + 213: TypePointer UniformConstant 212 +214(g_tTex1du4a): 213(ptr) Variable UniformConstant + 215: TypePointer UniformConstant 6(float) + 216(c1): 215(ptr) Variable UniformConstant + 217: TypeVector 6(float) 2 + 218: TypePointer UniformConstant 217(fvec2) + 219(c2): 218(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval00): 8(ptr) Variable Function + 29(txval01): 28(ptr) Variable Function + 42(txval02): 41(ptr) Variable Function + 52(txval10): 8(ptr) Variable Function + 59(txval11): 28(ptr) Variable Function + 65(txval12): 41(ptr) Variable Function + 71(txval20): 8(ptr) Variable Function + 78(txval21): 28(ptr) Variable Function + 84(txval22): 41(ptr) Variable Function + 90(txval30): 8(ptr) Variable Function + 97(txval31): 28(ptr) Variable Function + 103(txval32): 41(ptr) Variable Function + 109(txval40): 8(ptr) Variable Function + 121(txval41): 28(ptr) Variable Function + 131(txval42): 41(ptr) Variable Function + 141(txval50): 8(ptr) Variable Function + 147(txval51): 28(ptr) Variable Function + 153(txval52): 41(ptr) Variable Function + 159(txval60): 8(ptr) Variable Function + 165(txval61): 28(ptr) Variable Function + 171(txval62): 41(ptr) Variable Function + 177(txval70): 8(ptr) Variable Function + 183(txval71): 28(ptr) Variable Function + 189(txval72): 41(ptr) Variable Function + 197(psout): 196(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 20(fvec3) Load 22(c3) + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval00) 26 + 33: 30 Load 32(g_tTex2di4a) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 37: 20(fvec3) Load 22(c3) + 38: 27(ivec4) ImageGather 36 37 25 + Store 29(txval01) 38 + 46: 43 Load 45(g_tTex2du4a) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 50: 20(fvec3) Load 22(c3) + 51: 40(ivec4) ImageGather 49 50 25 + Store 42(txval02) 51 + 53: 10 Load 12(g_tTex2df4a) + 54: 14 Load 16(g_sSamp) + 55: 18 SampledImage 53 54 + 56: 20(fvec3) Load 22(c3) + 58: 7(fvec4) ImageGather 55 56 57 + Store 52(txval10) 58 + 60: 30 Load 32(g_tTex2di4a) + 61: 14 Load 16(g_sSamp) + 62: 35 SampledImage 60 61 + 63: 20(fvec3) Load 22(c3) + 64: 27(ivec4) ImageGather 62 63 57 + Store 59(txval11) 64 + 66: 43 Load 45(g_tTex2du4a) + 67: 14 Load 16(g_sSamp) + 68: 48 SampledImage 66 67 + 69: 20(fvec3) Load 22(c3) + 70: 40(ivec4) ImageGather 68 69 57 + Store 65(txval12) 70 + 72: 10 Load 12(g_tTex2df4a) + 73: 14 Load 16(g_sSamp) + 74: 18 SampledImage 72 73 + 75: 20(fvec3) Load 22(c3) + 77: 7(fvec4) ImageGather 74 75 76 + Store 71(txval20) 77 + 79: 30 Load 32(g_tTex2di4a) + 80: 14 Load 16(g_sSamp) + 81: 35 SampledImage 79 80 + 82: 20(fvec3) Load 22(c3) + 83: 27(ivec4) ImageGather 81 82 76 + Store 78(txval21) 83 + 85: 43 Load 45(g_tTex2du4a) + 86: 14 Load 16(g_sSamp) + 87: 48 SampledImage 85 86 + 88: 20(fvec3) Load 22(c3) + 89: 40(ivec4) ImageGather 87 88 76 + Store 84(txval22) 89 + 91: 10 Load 12(g_tTex2df4a) + 92: 14 Load 16(g_sSamp) + 93: 18 SampledImage 91 92 + 94: 20(fvec3) Load 22(c3) + 96: 7(fvec4) ImageGather 93 94 95 + Store 90(txval30) 96 + 98: 30 Load 32(g_tTex2di4a) + 99: 14 Load 16(g_sSamp) + 100: 35 SampledImage 98 99 + 101: 20(fvec3) Load 22(c3) + 102: 27(ivec4) ImageGather 100 101 95 + Store 97(txval31) 102 + 104: 43 Load 45(g_tTex2du4a) + 105: 14 Load 16(g_sSamp) + 106: 48 SampledImage 104 105 + 107: 20(fvec3) Load 22(c3) + 108: 40(ivec4) ImageGather 106 107 95 + Store 103(txval32) 108 + 113: 110 Load 112(g_tTexcdf4a) + 114: 14 Load 16(g_sSamp) + 116: 115 SampledImage 113 114 + 119: 7(fvec4) Load 118(c4) + 120: 7(fvec4) ImageGather 116 119 25 + Store 109(txval40) 120 + 125: 122 Load 124(g_tTexcdi4a) + 126: 14 Load 16(g_sSamp) + 128: 127 SampledImage 125 126 + 129: 7(fvec4) Load 118(c4) + 130: 27(ivec4) ImageGather 128 129 25 + Store 121(txval41) 130 + 135: 132 Load 134(g_tTexcdu4a) + 136: 14 Load 16(g_sSamp) + 138: 137 SampledImage 135 136 + 139: 7(fvec4) Load 118(c4) + 140: 40(ivec4) ImageGather 138 139 25 + Store 131(txval42) 140 + 142: 110 Load 112(g_tTexcdf4a) + 143: 14 Load 16(g_sSamp) + 144: 115 SampledImage 142 143 + 145: 7(fvec4) Load 118(c4) + 146: 7(fvec4) ImageGather 144 145 57 + Store 141(txval50) 146 + 148: 122 Load 124(g_tTexcdi4a) + 149: 14 Load 16(g_sSamp) + 150: 127 SampledImage 148 149 + 151: 7(fvec4) Load 118(c4) + 152: 27(ivec4) ImageGather 150 151 57 + Store 147(txval51) 152 + 154: 132 Load 134(g_tTexcdu4a) + 155: 14 Load 16(g_sSamp) + 156: 137 SampledImage 154 155 + 157: 7(fvec4) Load 118(c4) + 158: 40(ivec4) ImageGather 156 157 57 + Store 153(txval52) 158 + 160: 110 Load 112(g_tTexcdf4a) + 161: 14 Load 16(g_sSamp) + 162: 115 SampledImage 160 161 + 163: 7(fvec4) Load 118(c4) + 164: 7(fvec4) ImageGather 162 163 76 + Store 159(txval60) 164 + 166: 122 Load 124(g_tTexcdi4a) + 167: 14 Load 16(g_sSamp) + 168: 127 SampledImage 166 167 + 169: 7(fvec4) Load 118(c4) + 170: 27(ivec4) ImageGather 168 169 76 + Store 165(txval61) 170 + 172: 132 Load 134(g_tTexcdu4a) + 173: 14 Load 16(g_sSamp) + 174: 137 SampledImage 172 173 + 175: 7(fvec4) Load 118(c4) + 176: 40(ivec4) ImageGather 174 175 76 + Store 171(txval62) 176 + 178: 110 Load 112(g_tTexcdf4a) + 179: 14 Load 16(g_sSamp) + 180: 115 SampledImage 178 179 + 181: 7(fvec4) Load 118(c4) + 182: 7(fvec4) ImageGather 180 181 95 + Store 177(txval70) 182 + 184: 122 Load 124(g_tTexcdi4a) + 185: 14 Load 16(g_sSamp) + 186: 127 SampledImage 184 185 + 187: 7(fvec4) Load 118(c4) + 188: 27(ivec4) ImageGather 186 187 95 + Store 183(txval71) 188 + 190: 132 Load 134(g_tTexcdu4a) + 191: 14 Load 16(g_sSamp) + 192: 137 SampledImage 190 191 + 193: 7(fvec4) Load 118(c4) + 194: 40(ivec4) ImageGather 192 193 95 + Store 189(txval72) 194 + 200: 8(ptr) AccessChain 197(psout) 25 + Store 200 199 + 202: 201(ptr) AccessChain 197(psout) 57 + Store 202 198 + 203:195(PS_OUTPUT) Load 197(psout) + ReturnValue 203 + FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out new file mode 100644 index 00000000..8fd96913 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -0,0 +1,910 @@ +hlsl.gatherRGBA.basic.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval00' (temp 4-component vector of float) +0:39 textureGather (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler2D) +0:39 'g_tTex2df4' (uniform texture2D) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:39 'c2' (uniform 2-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval01' (temp 4-component vector of int) +0:40 textureGather (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler2D) +0:40 'g_tTex2di4' (uniform itexture2D) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c2' (uniform 2-component vector of float) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval02' (temp 4-component vector of uint) +0:41 textureGather (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler2D) +0:41 'g_tTex2du4' (uniform utexture2D) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c2' (uniform 2-component vector of float) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval10' (temp 4-component vector of float) +0:43 textureGather (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp sampler2D) +0:43 'g_tTex2df4' (uniform texture2D) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:43 'c2' (uniform 2-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval11' (temp 4-component vector of int) +0:44 textureGather (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isampler2D) +0:44 'g_tTex2di4' (uniform itexture2D) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c2' (uniform 2-component vector of float) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval12' (temp 4-component vector of uint) +0:45 textureGather (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usampler2D) +0:45 'g_tTex2du4' (uniform utexture2D) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c2' (uniform 2-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:47 'txval20' (temp 4-component vector of float) +0:47 textureGather (global 4-component vector of float) +0:47 Construct combined texture-sampler (temp sampler2D) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of int) +0:48 'txval21' (temp 4-component vector of int) +0:48 textureGather (global 4-component vector of int) +0:48 Construct combined texture-sampler (temp isampler2D) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child (temp 4-component vector of uint) +0:49 'txval22' (temp 4-component vector of uint) +0:49 textureGather (global 4-component vector of uint) +0:49 Construct combined texture-sampler (temp usampler2D) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:49 'c2' (uniform 2-component vector of float) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval30' (temp 4-component vector of float) +0:51 textureGather (global 4-component vector of float) +0:51 Construct combined texture-sampler (temp sampler2D) +0:51 'g_tTex2df4' (uniform texture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval31' (temp 4-component vector of int) +0:52 textureGather (global 4-component vector of int) +0:52 Construct combined texture-sampler (temp isampler2D) +0:52 'g_tTex2di4' (uniform itexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval32' (temp 4-component vector of uint) +0:53 textureGather (global 4-component vector of uint) +0:53 Construct combined texture-sampler (temp usampler2D) +0:53 'g_tTex2du4' (uniform utexture2D) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:53 'c2' (uniform 2-component vector of float) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of float) +0:57 'txval40' (temp 4-component vector of float) +0:57 textureGather (global 4-component vector of float) +0:57 Construct combined texture-sampler (temp samplerCube) +0:57 'g_tTexcdf4' (uniform textureCube) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of int) +0:58 'txval41' (temp 4-component vector of int) +0:58 textureGather (global 4-component vector of int) +0:58 Construct combined texture-sampler (temp isamplerCube) +0:58 'g_tTexcdi4' (uniform itextureCube) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of uint) +0:59 'txval42' (temp 4-component vector of uint) +0:59 textureGather (global 4-component vector of uint) +0:59 Construct combined texture-sampler (temp usamplerCube) +0:59 'g_tTexcdu4' (uniform utextureCube) +0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:59 'c3' (uniform 3-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'txval50' (temp 4-component vector of float) +0:61 textureGather (global 4-component vector of float) +0:61 Construct combined texture-sampler (temp samplerCube) +0:61 'g_tTexcdf4' (uniform textureCube) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'txval51' (temp 4-component vector of int) +0:62 textureGather (global 4-component vector of int) +0:62 Construct combined texture-sampler (temp isamplerCube) +0:62 'g_tTexcdi4' (uniform itextureCube) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'txval52' (temp 4-component vector of uint) +0:63 textureGather (global 4-component vector of uint) +0:63 Construct combined texture-sampler (temp usamplerCube) +0:63 'g_tTexcdu4' (uniform utextureCube) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c3' (uniform 3-component vector of float) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'txval60' (temp 4-component vector of float) +0:65 textureGather (global 4-component vector of float) +0:65 Construct combined texture-sampler (temp samplerCube) +0:65 'g_tTexcdf4' (uniform textureCube) +0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:65 'c3' (uniform 3-component vector of float) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'txval61' (temp 4-component vector of int) +0:66 textureGather (global 4-component vector of int) +0:66 Construct combined texture-sampler (temp isamplerCube) +0:66 'g_tTexcdi4' (uniform itextureCube) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c3' (uniform 3-component vector of float) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'txval62' (temp 4-component vector of uint) +0:67 textureGather (global 4-component vector of uint) +0:67 Construct combined texture-sampler (temp usamplerCube) +0:67 'g_tTexcdu4' (uniform utextureCube) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c3' (uniform 3-component vector of float) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'txval70' (temp 4-component vector of float) +0:69 textureGather (global 4-component vector of float) +0:69 Construct combined texture-sampler (temp samplerCube) +0:69 'g_tTexcdf4' (uniform textureCube) +0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:69 'c3' (uniform 3-component vector of float) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'txval71' (temp 4-component vector of int) +0:70 textureGather (global 4-component vector of int) +0:70 Construct combined texture-sampler (temp isamplerCube) +0:70 'g_tTexcdi4' (uniform itextureCube) +0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:70 'c3' (uniform 3-component vector of float) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'txval72' (temp 4-component vector of uint) +0:71 textureGather (global 4-component vector of uint) +0:71 Construct combined texture-sampler (temp usamplerCube) +0:71 'g_tTexcdu4' (uniform utextureCube) +0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:71 'c3' (uniform 3-component vector of float) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child (temp 4-component vector of float) +0:73 Color: direct index for structure (temp 4-component vector of float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:74 move second child to first child (temp float) +0:74 Depth: direct index for structure (temp float FragDepth) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1.000000 +0:76 Branch: Return with expression +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Parameters: +0:? Sequence +0:39 Sequence +0:39 move second child to first child (temp 4-component vector of float) +0:39 'txval00' (temp 4-component vector of float) +0:39 textureGather (global 4-component vector of float) +0:39 Construct combined texture-sampler (temp sampler2D) +0:39 'g_tTex2df4' (uniform texture2D) +0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:39 'c2' (uniform 2-component vector of float) +0:39 Constant: +0:39 0 (const int) +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of int) +0:40 'txval01' (temp 4-component vector of int) +0:40 textureGather (global 4-component vector of int) +0:40 Construct combined texture-sampler (temp isampler2D) +0:40 'g_tTex2di4' (uniform itexture2D) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c2' (uniform 2-component vector of float) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of uint) +0:41 'txval02' (temp 4-component vector of uint) +0:41 textureGather (global 4-component vector of uint) +0:41 Construct combined texture-sampler (temp usampler2D) +0:41 'g_tTex2du4' (uniform utexture2D) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c2' (uniform 2-component vector of float) +0:41 Constant: +0:41 0 (const int) +0:43 Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:43 'txval10' (temp 4-component vector of float) +0:43 textureGather (global 4-component vector of float) +0:43 Construct combined texture-sampler (temp sampler2D) +0:43 'g_tTex2df4' (uniform texture2D) +0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:43 'c2' (uniform 2-component vector of float) +0:43 Constant: +0:43 1 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of int) +0:44 'txval11' (temp 4-component vector of int) +0:44 textureGather (global 4-component vector of int) +0:44 Construct combined texture-sampler (temp isampler2D) +0:44 'g_tTex2di4' (uniform itexture2D) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c2' (uniform 2-component vector of float) +0:44 Constant: +0:44 1 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of uint) +0:45 'txval12' (temp 4-component vector of uint) +0:45 textureGather (global 4-component vector of uint) +0:45 Construct combined texture-sampler (temp usampler2D) +0:45 'g_tTex2du4' (uniform utexture2D) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c2' (uniform 2-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:47 'txval20' (temp 4-component vector of float) +0:47 textureGather (global 4-component vector of float) +0:47 Construct combined texture-sampler (temp sampler2D) +0:47 'g_tTex2df4' (uniform texture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 Constant: +0:47 2 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of int) +0:48 'txval21' (temp 4-component vector of int) +0:48 textureGather (global 4-component vector of int) +0:48 Construct combined texture-sampler (temp isampler2D) +0:48 'g_tTex2di4' (uniform itexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 Constant: +0:48 2 (const int) +0:49 Sequence +0:49 move second child to first child (temp 4-component vector of uint) +0:49 'txval22' (temp 4-component vector of uint) +0:49 textureGather (global 4-component vector of uint) +0:49 Construct combined texture-sampler (temp usampler2D) +0:49 'g_tTex2du4' (uniform utexture2D) +0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:49 'c2' (uniform 2-component vector of float) +0:49 Constant: +0:49 2 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'txval30' (temp 4-component vector of float) +0:51 textureGather (global 4-component vector of float) +0:51 Construct combined texture-sampler (temp sampler2D) +0:51 'g_tTex2df4' (uniform texture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Constant: +0:51 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'txval31' (temp 4-component vector of int) +0:52 textureGather (global 4-component vector of int) +0:52 Construct combined texture-sampler (temp isampler2D) +0:52 'g_tTex2di4' (uniform itexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Constant: +0:52 3 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'txval32' (temp 4-component vector of uint) +0:53 textureGather (global 4-component vector of uint) +0:53 Construct combined texture-sampler (temp usampler2D) +0:53 'g_tTex2du4' (uniform utexture2D) +0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:53 'c2' (uniform 2-component vector of float) +0:53 Constant: +0:53 3 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of float) +0:57 'txval40' (temp 4-component vector of float) +0:57 textureGather (global 4-component vector of float) +0:57 Construct combined texture-sampler (temp samplerCube) +0:57 'g_tTexcdf4' (uniform textureCube) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of int) +0:58 'txval41' (temp 4-component vector of int) +0:58 textureGather (global 4-component vector of int) +0:58 Construct combined texture-sampler (temp isamplerCube) +0:58 'g_tTexcdi4' (uniform itextureCube) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 Constant: +0:58 0 (const int) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of uint) +0:59 'txval42' (temp 4-component vector of uint) +0:59 textureGather (global 4-component vector of uint) +0:59 Construct combined texture-sampler (temp usamplerCube) +0:59 'g_tTexcdu4' (uniform utextureCube) +0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:59 'c3' (uniform 3-component vector of float) +0:59 Constant: +0:59 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'txval50' (temp 4-component vector of float) +0:61 textureGather (global 4-component vector of float) +0:61 Construct combined texture-sampler (temp samplerCube) +0:61 'g_tTexcdf4' (uniform textureCube) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'txval51' (temp 4-component vector of int) +0:62 textureGather (global 4-component vector of int) +0:62 Construct combined texture-sampler (temp isamplerCube) +0:62 'g_tTexcdi4' (uniform itextureCube) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'txval52' (temp 4-component vector of uint) +0:63 textureGather (global 4-component vector of uint) +0:63 Construct combined texture-sampler (temp usamplerCube) +0:63 'g_tTexcdu4' (uniform utextureCube) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c3' (uniform 3-component vector of float) +0:63 Constant: +0:63 1 (const int) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'txval60' (temp 4-component vector of float) +0:65 textureGather (global 4-component vector of float) +0:65 Construct combined texture-sampler (temp samplerCube) +0:65 'g_tTexcdf4' (uniform textureCube) +0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:65 'c3' (uniform 3-component vector of float) +0:65 Constant: +0:65 2 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'txval61' (temp 4-component vector of int) +0:66 textureGather (global 4-component vector of int) +0:66 Construct combined texture-sampler (temp isamplerCube) +0:66 'g_tTexcdi4' (uniform itextureCube) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c3' (uniform 3-component vector of float) +0:66 Constant: +0:66 2 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'txval62' (temp 4-component vector of uint) +0:67 textureGather (global 4-component vector of uint) +0:67 Construct combined texture-sampler (temp usamplerCube) +0:67 'g_tTexcdu4' (uniform utextureCube) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c3' (uniform 3-component vector of float) +0:67 Constant: +0:67 2 (const int) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'txval70' (temp 4-component vector of float) +0:69 textureGather (global 4-component vector of float) +0:69 Construct combined texture-sampler (temp samplerCube) +0:69 'g_tTexcdf4' (uniform textureCube) +0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:69 'c3' (uniform 3-component vector of float) +0:69 Constant: +0:69 3 (const int) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'txval71' (temp 4-component vector of int) +0:70 textureGather (global 4-component vector of int) +0:70 Construct combined texture-sampler (temp isamplerCube) +0:70 'g_tTexcdi4' (uniform itextureCube) +0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:70 'c3' (uniform 3-component vector of float) +0:70 Constant: +0:70 3 (const int) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'txval72' (temp 4-component vector of uint) +0:71 textureGather (global 4-component vector of uint) +0:71 Construct combined texture-sampler (temp usamplerCube) +0:71 'g_tTexcdu4' (uniform utextureCube) +0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:71 'c3' (uniform 3-component vector of float) +0:71 Constant: +0:71 3 (const int) +0:73 move second child to first child (temp 4-component vector of float) +0:73 Color: direct index for structure (temp 4-component vector of float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Constant: +0:73 0 (const int) +0:73 Constant: +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:73 1.000000 +0:74 move second child to first child (temp float) +0:74 Depth: direct index for structure (temp float FragDepth) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 Constant: +0:74 1 (const int) +0:74 Constant: +0:74 1.000000 +0:76 Branch: Return with expression +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 230 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval00" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 22 "c2" + Name 29 "txval01" + Name 32 "g_tTex2di4" + Name 42 "txval02" + Name 45 "g_tTex2du4" + Name 52 "txval10" + Name 59 "txval11" + Name 65 "txval12" + Name 71 "txval20" + Name 78 "txval21" + Name 84 "txval22" + Name 90 "txval30" + Name 97 "txval31" + Name 103 "txval32" + Name 109 "txval40" + Name 112 "g_tTexcdf4" + Name 119 "c3" + Name 122 "txval41" + Name 125 "g_tTexcdi4" + Name 132 "txval42" + Name 135 "g_tTexcdu4" + Name 142 "txval50" + Name 148 "txval51" + Name 154 "txval52" + Name 160 "txval60" + Name 166 "txval61" + Name 172 "txval62" + Name 178 "txval70" + Name 184 "txval71" + Name 190 "txval72" + Name 196 "PS_OUTPUT" + MemberName 196(PS_OUTPUT) 0 "Color" + MemberName 196(PS_OUTPUT) 1 "Depth" + Name 198 "psout" + Name 206 "g_sSamp2d" + Name 209 "g_tTex1df4a" + Name 210 "g_tTex1df4" + Name 213 "g_tTex1di4" + Name 216 "g_tTex1du4" + Name 219 "g_tTex3df4" + Name 222 "g_tTex3di4" + Name 225 "g_tTex3du4" + Name 227 "c1" + Name 229 "c4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 32(g_tTex2di4) DescriptorSet 0 + Decorate 45(g_tTex2du4) DescriptorSet 0 + Decorate 112(g_tTexcdf4) DescriptorSet 0 + Decorate 125(g_tTexcdi4) DescriptorSet 0 + Decorate 135(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 206(g_sSamp2d) DescriptorSet 0 + Decorate 209(g_tTex1df4a) DescriptorSet 0 + Decorate 209(g_tTex1df4a) Binding 1 + Decorate 210(g_tTex1df4) DescriptorSet 0 + Decorate 210(g_tTex1df4) Binding 0 + Decorate 213(g_tTex1di4) DescriptorSet 0 + Decorate 216(g_tTex1du4) DescriptorSet 0 + Decorate 219(g_tTex3df4) DescriptorSet 0 + Decorate 222(g_tTex3di4) DescriptorSet 0 + Decorate 225(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypePointer UniformConstant 20(fvec2) + 22(c2): 21(ptr) Variable UniformConstant + 24: TypeInt 32 1 + 25: 24(int) Constant 0 + 27: TypeVector 24(int) 4 + 28: TypePointer Function 27(ivec4) + 30: TypeImage 24(int) 2D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex2di4): 31(ptr) Variable UniformConstant + 35: TypeSampledImage 30 + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) 2D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex2du4): 44(ptr) Variable UniformConstant + 48: TypeSampledImage 43 + 57: 24(int) Constant 1 + 76: 24(int) Constant 2 + 95: 24(int) Constant 3 + 110: TypeImage 6(float) Cube sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTexcdf4): 111(ptr) Variable UniformConstant + 115: TypeSampledImage 110 + 117: TypeVector 6(float) 3 + 118: TypePointer UniformConstant 117(fvec3) + 119(c3): 118(ptr) Variable UniformConstant + 123: TypeImage 24(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdi4): 124(ptr) Variable UniformConstant + 128: TypeSampledImage 123 + 133: TypeImage 39(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdu4): 134(ptr) Variable UniformConstant + 138: TypeSampledImage 133 + 196(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 197: TypePointer Function 196(PS_OUTPUT) + 199: 6(float) Constant 1065353216 + 200: 7(fvec4) ConstantComposite 199 199 199 199 + 202: TypePointer Function 6(float) + 206(g_sSamp2d): 15(ptr) Variable UniformConstant + 207: TypeImage 6(float) 1D sampled format:Unknown + 208: TypePointer UniformConstant 207 +209(g_tTex1df4a): 208(ptr) Variable UniformConstant + 210(g_tTex1df4): 208(ptr) Variable UniformConstant + 211: TypeImage 24(int) 1D sampled format:Unknown + 212: TypePointer UniformConstant 211 + 213(g_tTex1di4): 212(ptr) Variable UniformConstant + 214: TypeImage 39(int) 1D sampled format:Unknown + 215: TypePointer UniformConstant 214 + 216(g_tTex1du4): 215(ptr) Variable UniformConstant + 217: TypeImage 6(float) 3D sampled format:Unknown + 218: TypePointer UniformConstant 217 + 219(g_tTex3df4): 218(ptr) Variable UniformConstant + 220: TypeImage 24(int) 3D sampled format:Unknown + 221: TypePointer UniformConstant 220 + 222(g_tTex3di4): 221(ptr) Variable UniformConstant + 223: TypeImage 39(int) 3D sampled format:Unknown + 224: TypePointer UniformConstant 223 + 225(g_tTex3du4): 224(ptr) Variable UniformConstant + 226: TypePointer UniformConstant 6(float) + 227(c1): 226(ptr) Variable UniformConstant + 228: TypePointer UniformConstant 7(fvec4) + 229(c4): 228(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval00): 8(ptr) Variable Function + 29(txval01): 28(ptr) Variable Function + 42(txval02): 41(ptr) Variable Function + 52(txval10): 8(ptr) Variable Function + 59(txval11): 28(ptr) Variable Function + 65(txval12): 41(ptr) Variable Function + 71(txval20): 8(ptr) Variable Function + 78(txval21): 28(ptr) Variable Function + 84(txval22): 41(ptr) Variable Function + 90(txval30): 8(ptr) Variable Function + 97(txval31): 28(ptr) Variable Function + 103(txval32): 41(ptr) Variable Function + 109(txval40): 8(ptr) Variable Function + 122(txval41): 28(ptr) Variable Function + 132(txval42): 41(ptr) Variable Function + 142(txval50): 8(ptr) Variable Function + 148(txval51): 28(ptr) Variable Function + 154(txval52): 41(ptr) Variable Function + 160(txval60): 8(ptr) Variable Function + 166(txval61): 28(ptr) Variable Function + 172(txval62): 41(ptr) Variable Function + 178(txval70): 8(ptr) Variable Function + 184(txval71): 28(ptr) Variable Function + 190(txval72): 41(ptr) Variable Function + 198(psout): 197(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 20(fvec2) Load 22(c2) + 26: 7(fvec4) ImageGather 19 23 25 + Store 9(txval00) 26 + 33: 30 Load 32(g_tTex2di4) + 34: 14 Load 16(g_sSamp) + 36: 35 SampledImage 33 34 + 37: 20(fvec2) Load 22(c2) + 38: 27(ivec4) ImageGather 36 37 25 + Store 29(txval01) 38 + 46: 43 Load 45(g_tTex2du4) + 47: 14 Load 16(g_sSamp) + 49: 48 SampledImage 46 47 + 50: 20(fvec2) Load 22(c2) + 51: 40(ivec4) ImageGather 49 50 25 + Store 42(txval02) 51 + 53: 10 Load 12(g_tTex2df4) + 54: 14 Load 16(g_sSamp) + 55: 18 SampledImage 53 54 + 56: 20(fvec2) Load 22(c2) + 58: 7(fvec4) ImageGather 55 56 57 + Store 52(txval10) 58 + 60: 30 Load 32(g_tTex2di4) + 61: 14 Load 16(g_sSamp) + 62: 35 SampledImage 60 61 + 63: 20(fvec2) Load 22(c2) + 64: 27(ivec4) ImageGather 62 63 57 + Store 59(txval11) 64 + 66: 43 Load 45(g_tTex2du4) + 67: 14 Load 16(g_sSamp) + 68: 48 SampledImage 66 67 + 69: 20(fvec2) Load 22(c2) + 70: 40(ivec4) ImageGather 68 69 57 + Store 65(txval12) 70 + 72: 10 Load 12(g_tTex2df4) + 73: 14 Load 16(g_sSamp) + 74: 18 SampledImage 72 73 + 75: 20(fvec2) Load 22(c2) + 77: 7(fvec4) ImageGather 74 75 76 + Store 71(txval20) 77 + 79: 30 Load 32(g_tTex2di4) + 80: 14 Load 16(g_sSamp) + 81: 35 SampledImage 79 80 + 82: 20(fvec2) Load 22(c2) + 83: 27(ivec4) ImageGather 81 82 76 + Store 78(txval21) 83 + 85: 43 Load 45(g_tTex2du4) + 86: 14 Load 16(g_sSamp) + 87: 48 SampledImage 85 86 + 88: 20(fvec2) Load 22(c2) + 89: 40(ivec4) ImageGather 87 88 76 + Store 84(txval22) 89 + 91: 10 Load 12(g_tTex2df4) + 92: 14 Load 16(g_sSamp) + 93: 18 SampledImage 91 92 + 94: 20(fvec2) Load 22(c2) + 96: 7(fvec4) ImageGather 93 94 95 + Store 90(txval30) 96 + 98: 30 Load 32(g_tTex2di4) + 99: 14 Load 16(g_sSamp) + 100: 35 SampledImage 98 99 + 101: 20(fvec2) Load 22(c2) + 102: 27(ivec4) ImageGather 100 101 95 + Store 97(txval31) 102 + 104: 43 Load 45(g_tTex2du4) + 105: 14 Load 16(g_sSamp) + 106: 48 SampledImage 104 105 + 107: 20(fvec2) Load 22(c2) + 108: 40(ivec4) ImageGather 106 107 95 + Store 103(txval32) 108 + 113: 110 Load 112(g_tTexcdf4) + 114: 14 Load 16(g_sSamp) + 116: 115 SampledImage 113 114 + 120: 117(fvec3) Load 119(c3) + 121: 7(fvec4) ImageGather 116 120 25 + Store 109(txval40) 121 + 126: 123 Load 125(g_tTexcdi4) + 127: 14 Load 16(g_sSamp) + 129: 128 SampledImage 126 127 + 130: 117(fvec3) Load 119(c3) + 131: 27(ivec4) ImageGather 129 130 25 + Store 122(txval41) 131 + 136: 133 Load 135(g_tTexcdu4) + 137: 14 Load 16(g_sSamp) + 139: 138 SampledImage 136 137 + 140: 117(fvec3) Load 119(c3) + 141: 40(ivec4) ImageGather 139 140 25 + Store 132(txval42) 141 + 143: 110 Load 112(g_tTexcdf4) + 144: 14 Load 16(g_sSamp) + 145: 115 SampledImage 143 144 + 146: 117(fvec3) Load 119(c3) + 147: 7(fvec4) ImageGather 145 146 57 + Store 142(txval50) 147 + 149: 123 Load 125(g_tTexcdi4) + 150: 14 Load 16(g_sSamp) + 151: 128 SampledImage 149 150 + 152: 117(fvec3) Load 119(c3) + 153: 27(ivec4) ImageGather 151 152 57 + Store 148(txval51) 153 + 155: 133 Load 135(g_tTexcdu4) + 156: 14 Load 16(g_sSamp) + 157: 138 SampledImage 155 156 + 158: 117(fvec3) Load 119(c3) + 159: 40(ivec4) ImageGather 157 158 57 + Store 154(txval52) 159 + 161: 110 Load 112(g_tTexcdf4) + 162: 14 Load 16(g_sSamp) + 163: 115 SampledImage 161 162 + 164: 117(fvec3) Load 119(c3) + 165: 7(fvec4) ImageGather 163 164 76 + Store 160(txval60) 165 + 167: 123 Load 125(g_tTexcdi4) + 168: 14 Load 16(g_sSamp) + 169: 128 SampledImage 167 168 + 170: 117(fvec3) Load 119(c3) + 171: 27(ivec4) ImageGather 169 170 76 + Store 166(txval61) 171 + 173: 133 Load 135(g_tTexcdu4) + 174: 14 Load 16(g_sSamp) + 175: 138 SampledImage 173 174 + 176: 117(fvec3) Load 119(c3) + 177: 40(ivec4) ImageGather 175 176 76 + Store 172(txval62) 177 + 179: 110 Load 112(g_tTexcdf4) + 180: 14 Load 16(g_sSamp) + 181: 115 SampledImage 179 180 + 182: 117(fvec3) Load 119(c3) + 183: 7(fvec4) ImageGather 181 182 95 + Store 178(txval70) 183 + 185: 123 Load 125(g_tTexcdi4) + 186: 14 Load 16(g_sSamp) + 187: 128 SampledImage 185 186 + 188: 117(fvec3) Load 119(c3) + 189: 27(ivec4) ImageGather 187 188 95 + Store 184(txval71) 189 + 191: 133 Load 135(g_tTexcdu4) + 192: 14 Load 16(g_sSamp) + 193: 138 SampledImage 191 192 + 194: 117(fvec3) Load 119(c3) + 195: 40(ivec4) ImageGather 193 194 95 + Store 190(txval72) 195 + 201: 8(ptr) AccessChain 198(psout) 25 + Store 201 200 + 203: 202(ptr) AccessChain 198(psout) 57 + Store 203 199 + 204:196(PS_OUTPUT) Load 198(psout) + ReturnValue 204 + FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out new file mode 100644 index 00000000..ea0d94a0 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -0,0 +1,1148 @@ +hlsl.gatherRGBA.offset.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of float) +0:46 'txval001' (temp 4-component vector of float) +0:46 textureGatherOffset (global 4-component vector of float) +0:46 Construct combined texture-sampler (temp sampler2D) +0:46 'g_tTex2df4' (uniform texture2D) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c2' (uniform 2-component vector of float) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (global 4-component vector of int) +0:47 Construct combined texture-sampler (temp isampler2D) +0:47 'g_tTex2di4' (uniform itexture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 'o2' (uniform 2-component vector of int) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (global 4-component vector of uint) +0:48 Construct combined texture-sampler (temp usampler2D) +0:48 'g_tTex2du4' (uniform utexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 'o2' (uniform 2-component vector of int) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (global 4-component vector of float) +0:50 Construct combined texture-sampler (temp sampler2D) +0:50 'g_tTex2df4' (uniform texture2D) +0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:50 'c2' (uniform 2-component vector of float) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (global 4-component vector of int) +0:51 Construct combined texture-sampler (temp isampler2D) +0:51 'g_tTex2di4' (uniform itexture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 Construct combined texture-sampler (temp usampler2D) +0:52 'g_tTex2du4' (uniform utexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (global 4-component vector of float) +0:62 Construct combined texture-sampler (temp sampler2D) +0:62 'g_tTex2df4' (uniform texture2D) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c2' (uniform 2-component vector of float) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (global 4-component vector of int) +0:63 Construct combined texture-sampler (temp isampler2D) +0:63 'g_tTex2di4' (uniform itexture2D) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c2' (uniform 2-component vector of float) +0:63 'o2' (uniform 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (global 4-component vector of uint) +0:64 Construct combined texture-sampler (temp usampler2D) +0:64 'g_tTex2du4' (uniform utexture2D) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c2' (uniform 2-component vector of float) +0:64 'o2' (uniform 2-component vector of int) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (global 4-component vector of float) +0:66 Construct combined texture-sampler (temp sampler2D) +0:66 'g_tTex2df4' (uniform texture2D) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c2' (uniform 2-component vector of float) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (global 4-component vector of int) +0:67 Construct combined texture-sampler (temp isampler2D) +0:67 'g_tTex2di4' (uniform itexture2D) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c2' (uniform 2-component vector of float) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 Construct combined texture-sampler (temp usampler2D) +0:68 'g_tTex2du4' (uniform utexture2D) +0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:68 'c2' (uniform 2-component vector of float) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler2D) +0:78 'g_tTex2df4' (uniform texture2D) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c2' (uniform 2-component vector of float) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler2D) +0:79 'g_tTex2di4' (uniform itexture2D) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:79 'c2' (uniform 2-component vector of float) +0:79 'o2' (uniform 2-component vector of int) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler2D) +0:80 'g_tTex2du4' (uniform utexture2D) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:80 'c2' (uniform 2-component vector of float) +0:80 'o2' (uniform 2-component vector of int) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp sampler2D) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:82 'c2' (uniform 2-component vector of float) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isampler2D) +0:83 'g_tTex2di4' (uniform itexture2D) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:83 'c2' (uniform 2-component vector of float) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usampler2D) +0:84 'g_tTex2du4' (uniform utexture2D) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:84 'c2' (uniform 2-component vector of float) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (global 4-component vector of float) +0:94 Construct combined texture-sampler (temp sampler2D) +0:94 'g_tTex2df4' (uniform texture2D) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c2' (uniform 2-component vector of float) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (global 4-component vector of int) +0:95 Construct combined texture-sampler (temp isampler2D) +0:95 'g_tTex2di4' (uniform itexture2D) +0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:95 'c2' (uniform 2-component vector of float) +0:95 'o2' (uniform 2-component vector of int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (global 4-component vector of uint) +0:96 Construct combined texture-sampler (temp usampler2D) +0:96 'g_tTex2du4' (uniform utexture2D) +0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:96 'c2' (uniform 2-component vector of float) +0:96 'o2' (uniform 2-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (global 4-component vector of float) +0:98 Construct combined texture-sampler (temp sampler2D) +0:98 'g_tTex2df4' (uniform texture2D) +0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:98 'c2' (uniform 2-component vector of float) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (global 4-component vector of int) +0:99 Construct combined texture-sampler (temp isampler2D) +0:99 'g_tTex2di4' (uniform itexture2D) +0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:99 'c2' (uniform 2-component vector of float) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 Construct combined texture-sampler (temp usampler2D) +0:100 'g_tTex2du4' (uniform utexture2D) +0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:100 'c2' (uniform 2-component vector of float) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child (temp float) +0:113 Depth: direct index for structure (temp float FragDepth) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Parameters: +0:? Sequence +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of float) +0:46 'txval001' (temp 4-component vector of float) +0:46 textureGatherOffset (global 4-component vector of float) +0:46 Construct combined texture-sampler (temp sampler2D) +0:46 'g_tTex2df4' (uniform texture2D) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c2' (uniform 2-component vector of float) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:47 Sequence +0:47 move second child to first child (temp 4-component vector of int) +0:47 'txval011' (temp 4-component vector of int) +0:47 textureGatherOffset (global 4-component vector of int) +0:47 Construct combined texture-sampler (temp isampler2D) +0:47 'g_tTex2di4' (uniform itexture2D) +0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:47 'c2' (uniform 2-component vector of float) +0:47 'o2' (uniform 2-component vector of int) +0:47 Constant: +0:47 0 (const int) +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of uint) +0:48 'txval021' (temp 4-component vector of uint) +0:48 textureGatherOffset (global 4-component vector of uint) +0:48 Construct combined texture-sampler (temp usampler2D) +0:48 'g_tTex2du4' (uniform utexture2D) +0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:48 'c2' (uniform 2-component vector of float) +0:48 'o2' (uniform 2-component vector of int) +0:48 Constant: +0:48 0 (const int) +0:50 Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:50 'txval004' (temp 4-component vector of float) +0:50 textureGatherOffsets (global 4-component vector of float) +0:50 Construct combined texture-sampler (temp sampler2D) +0:50 'g_tTex2df4' (uniform texture2D) +0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:50 'c2' (uniform 2-component vector of float) +0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 'o2' (uniform 2-component vector of int) +0:50 Constant: +0:50 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of int) +0:51 'txval014' (temp 4-component vector of int) +0:51 textureGatherOffsets (global 4-component vector of int) +0:51 Construct combined texture-sampler (temp isampler2D) +0:51 'g_tTex2di4' (uniform itexture2D) +0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:51 'c2' (uniform 2-component vector of float) +0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 'o2' (uniform 2-component vector of int) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of uint) +0:52 'txval024' (temp 4-component vector of uint) +0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 Construct combined texture-sampler (temp usampler2D) +0:52 'g_tTex2du4' (uniform utexture2D) +0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:52 'c2' (uniform 2-component vector of float) +0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 'o2' (uniform 2-component vector of int) +0:52 Constant: +0:52 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of float) +0:62 'txval101' (temp 4-component vector of float) +0:62 textureGatherOffset (global 4-component vector of float) +0:62 Construct combined texture-sampler (temp sampler2D) +0:62 'g_tTex2df4' (uniform texture2D) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c2' (uniform 2-component vector of float) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of int) +0:63 'txval111' (temp 4-component vector of int) +0:63 textureGatherOffset (global 4-component vector of int) +0:63 Construct combined texture-sampler (temp isampler2D) +0:63 'g_tTex2di4' (uniform itexture2D) +0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:63 'c2' (uniform 2-component vector of float) +0:63 'o2' (uniform 2-component vector of int) +0:63 Constant: +0:63 1 (const int) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of uint) +0:64 'txval121' (temp 4-component vector of uint) +0:64 textureGatherOffset (global 4-component vector of uint) +0:64 Construct combined texture-sampler (temp usampler2D) +0:64 'g_tTex2du4' (uniform utexture2D) +0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:64 'c2' (uniform 2-component vector of float) +0:64 'o2' (uniform 2-component vector of int) +0:64 Constant: +0:64 1 (const int) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:66 'txval104' (temp 4-component vector of float) +0:66 textureGatherOffsets (global 4-component vector of float) +0:66 Construct combined texture-sampler (temp sampler2D) +0:66 'g_tTex2df4' (uniform texture2D) +0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:66 'c2' (uniform 2-component vector of float) +0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 'o2' (uniform 2-component vector of int) +0:66 Constant: +0:66 1 (const int) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of int) +0:67 'txval114' (temp 4-component vector of int) +0:67 textureGatherOffsets (global 4-component vector of int) +0:67 Construct combined texture-sampler (temp isampler2D) +0:67 'g_tTex2di4' (uniform itexture2D) +0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:67 'c2' (uniform 2-component vector of float) +0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 'o2' (uniform 2-component vector of int) +0:67 Constant: +0:67 1 (const int) +0:68 Sequence +0:68 move second child to first child (temp 4-component vector of uint) +0:68 'txval124' (temp 4-component vector of uint) +0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 Construct combined texture-sampler (temp usampler2D) +0:68 'g_tTex2du4' (uniform utexture2D) +0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:68 'c2' (uniform 2-component vector of float) +0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 'o2' (uniform 2-component vector of int) +0:68 Constant: +0:68 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:78 'txval201' (temp 4-component vector of float) +0:78 textureGatherOffset (global 4-component vector of float) +0:78 Construct combined texture-sampler (temp sampler2D) +0:78 'g_tTex2df4' (uniform texture2D) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c2' (uniform 2-component vector of float) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'txval211' (temp 4-component vector of int) +0:79 textureGatherOffset (global 4-component vector of int) +0:79 Construct combined texture-sampler (temp isampler2D) +0:79 'g_tTex2di4' (uniform itexture2D) +0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:79 'c2' (uniform 2-component vector of float) +0:79 'o2' (uniform 2-component vector of int) +0:79 Constant: +0:79 2 (const int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'txval221' (temp 4-component vector of uint) +0:80 textureGatherOffset (global 4-component vector of uint) +0:80 Construct combined texture-sampler (temp usampler2D) +0:80 'g_tTex2du4' (uniform utexture2D) +0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:80 'c2' (uniform 2-component vector of float) +0:80 'o2' (uniform 2-component vector of int) +0:80 Constant: +0:80 2 (const int) +0:82 Sequence +0:82 move second child to first child (temp 4-component vector of float) +0:82 'txval204' (temp 4-component vector of float) +0:82 textureGatherOffsets (global 4-component vector of float) +0:82 Construct combined texture-sampler (temp sampler2D) +0:82 'g_tTex2df4' (uniform texture2D) +0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:82 'c2' (uniform 2-component vector of float) +0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 'o2' (uniform 2-component vector of int) +0:82 Constant: +0:82 2 (const int) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of int) +0:83 'txval214' (temp 4-component vector of int) +0:83 textureGatherOffsets (global 4-component vector of int) +0:83 Construct combined texture-sampler (temp isampler2D) +0:83 'g_tTex2di4' (uniform itexture2D) +0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:83 'c2' (uniform 2-component vector of float) +0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 'o2' (uniform 2-component vector of int) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 4-component vector of uint) +0:84 'txval224' (temp 4-component vector of uint) +0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 Construct combined texture-sampler (temp usampler2D) +0:84 'g_tTex2du4' (uniform utexture2D) +0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:84 'c2' (uniform 2-component vector of float) +0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 'o2' (uniform 2-component vector of int) +0:84 Constant: +0:84 2 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of float) +0:94 'txval301' (temp 4-component vector of float) +0:94 textureGatherOffset (global 4-component vector of float) +0:94 Construct combined texture-sampler (temp sampler2D) +0:94 'g_tTex2df4' (uniform texture2D) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c2' (uniform 2-component vector of float) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of int) +0:95 'txval311' (temp 4-component vector of int) +0:95 textureGatherOffset (global 4-component vector of int) +0:95 Construct combined texture-sampler (temp isampler2D) +0:95 'g_tTex2di4' (uniform itexture2D) +0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:95 'c2' (uniform 2-component vector of float) +0:95 'o2' (uniform 2-component vector of int) +0:95 Constant: +0:95 3 (const int) +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of uint) +0:96 'txval321' (temp 4-component vector of uint) +0:96 textureGatherOffset (global 4-component vector of uint) +0:96 Construct combined texture-sampler (temp usampler2D) +0:96 'g_tTex2du4' (uniform utexture2D) +0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:96 'c2' (uniform 2-component vector of float) +0:96 'o2' (uniform 2-component vector of int) +0:96 Constant: +0:96 3 (const int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of float) +0:98 'txval304' (temp 4-component vector of float) +0:98 textureGatherOffsets (global 4-component vector of float) +0:98 Construct combined texture-sampler (temp sampler2D) +0:98 'g_tTex2df4' (uniform texture2D) +0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:98 'c2' (uniform 2-component vector of float) +0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 'o2' (uniform 2-component vector of int) +0:98 Constant: +0:98 3 (const int) +0:99 Sequence +0:99 move second child to first child (temp 4-component vector of int) +0:99 'txval314' (temp 4-component vector of int) +0:99 textureGatherOffsets (global 4-component vector of int) +0:99 Construct combined texture-sampler (temp isampler2D) +0:99 'g_tTex2di4' (uniform itexture2D) +0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:99 'c2' (uniform 2-component vector of float) +0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 'o2' (uniform 2-component vector of int) +0:99 Constant: +0:99 3 (const int) +0:100 Sequence +0:100 move second child to first child (temp 4-component vector of uint) +0:100 'txval324' (temp 4-component vector of uint) +0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 Construct combined texture-sampler (temp usampler2D) +0:100 'g_tTex2du4' (uniform utexture2D) +0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:100 'c2' (uniform 2-component vector of float) +0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 'o2' (uniform 2-component vector of int) +0:100 Constant: +0:100 3 (const int) +0:112 move second child to first child (temp 4-component vector of float) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Constant: +0:112 0 (const int) +0:112 Constant: +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:112 1.000000 +0:113 move second child to first child (temp float) +0:113 Depth: direct index for structure (temp float FragDepth) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Constant: +0:113 1 (const int) +0:113 Constant: +0:113 1.000000 +0:115 Branch: Return with expression +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTexcdf4' (uniform textureCube) +0:? 'g_tTexcdi4' (uniform itextureCube) +0:? 'g_tTexcdu4' (uniform utextureCube) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 311 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval001" + Name 12 "g_tTex2df4" + Name 16 "g_sSamp" + Name 22 "c2" + Name 27 "o2" + Name 33 "txval011" + Name 36 "g_tTex2di4" + Name 47 "txval021" + Name 50 "g_tTex2du4" + Name 58 "txval004" + Name 71 "txval014" + Name 82 "txval024" + Name 93 "txval101" + Name 101 "txval111" + Name 108 "txval121" + Name 115 "txval104" + Name 126 "txval114" + Name 137 "txval124" + Name 148 "txval201" + Name 156 "txval211" + Name 163 "txval221" + Name 170 "txval204" + Name 181 "txval214" + Name 192 "txval224" + Name 203 "txval301" + Name 211 "txval311" + Name 218 "txval321" + Name 225 "txval304" + Name 236 "txval314" + Name 247 "txval324" + Name 258 "PS_OUTPUT" + MemberName 258(PS_OUTPUT) 0 "Color" + MemberName 258(PS_OUTPUT) 1 "Depth" + Name 260 "psout" + Name 268 "g_sSamp2d" + Name 271 "g_tTex1df4a" + Name 272 "g_tTex1df4" + Name 275 "g_tTex1di4" + Name 278 "g_tTex1du4" + Name 281 "g_tTex3df4" + Name 284 "g_tTex3di4" + Name 287 "g_tTex3du4" + Name 290 "g_tTexcdf4" + Name 293 "g_tTexcdi4" + Name 296 "g_tTexcdu4" + Name 298 "c1" + Name 301 "c3" + Name 303 "c4" + Name 305 "o1" + Name 308 "o3" + Name 310 "o4" + Decorate 12(g_tTex2df4) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4) DescriptorSet 0 + Decorate 50(g_tTex2du4) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(g_sSamp2d) DescriptorSet 0 + Decorate 271(g_tTex1df4a) DescriptorSet 0 + Decorate 271(g_tTex1df4a) Binding 1 + Decorate 272(g_tTex1df4) DescriptorSet 0 + Decorate 272(g_tTex1df4) Binding 0 + Decorate 275(g_tTex1di4) DescriptorSet 0 + Decorate 278(g_tTex1du4) DescriptorSet 0 + Decorate 281(g_tTex3df4) DescriptorSet 0 + Decorate 284(g_tTex3di4) DescriptorSet 0 + Decorate 287(g_tTex3du4) DescriptorSet 0 + Decorate 290(g_tTexcdf4) DescriptorSet 0 + Decorate 293(g_tTexcdi4) DescriptorSet 0 + Decorate 296(g_tTexcdu4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: TypePointer UniformConstant 20(fvec2) + 22(c2): 21(ptr) Variable UniformConstant + 24: TypeInt 32 1 + 25: TypeVector 24(int) 2 + 26: TypePointer UniformConstant 25(ivec2) + 27(o2): 26(ptr) Variable UniformConstant + 29: 24(int) Constant 0 + 31: TypeVector 24(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 24(int) 2D sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2du4): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 67: 44(int) Constant 4 + 68: TypeArray 25(ivec2) 67 + 99: 24(int) Constant 1 + 154: 24(int) Constant 2 + 209: 24(int) Constant 3 + 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 259: TypePointer Function 258(PS_OUTPUT) + 261: 6(float) Constant 1065353216 + 262: 7(fvec4) ConstantComposite 261 261 261 261 + 264: TypePointer Function 6(float) + 268(g_sSamp2d): 15(ptr) Variable UniformConstant + 269: TypeImage 6(float) 1D sampled format:Unknown + 270: TypePointer UniformConstant 269 +271(g_tTex1df4a): 270(ptr) Variable UniformConstant + 272(g_tTex1df4): 270(ptr) Variable UniformConstant + 273: TypeImage 24(int) 1D sampled format:Unknown + 274: TypePointer UniformConstant 273 + 275(g_tTex1di4): 274(ptr) Variable UniformConstant + 276: TypeImage 44(int) 1D sampled format:Unknown + 277: TypePointer UniformConstant 276 + 278(g_tTex1du4): 277(ptr) Variable UniformConstant + 279: TypeImage 6(float) 3D sampled format:Unknown + 280: TypePointer UniformConstant 279 + 281(g_tTex3df4): 280(ptr) Variable UniformConstant + 282: TypeImage 24(int) 3D sampled format:Unknown + 283: TypePointer UniformConstant 282 + 284(g_tTex3di4): 283(ptr) Variable UniformConstant + 285: TypeImage 44(int) 3D sampled format:Unknown + 286: TypePointer UniformConstant 285 + 287(g_tTex3du4): 286(ptr) Variable UniformConstant + 288: TypeImage 6(float) Cube sampled format:Unknown + 289: TypePointer UniformConstant 288 + 290(g_tTexcdf4): 289(ptr) Variable UniformConstant + 291: TypeImage 24(int) Cube sampled format:Unknown + 292: TypePointer UniformConstant 291 + 293(g_tTexcdi4): 292(ptr) Variable UniformConstant + 294: TypeImage 44(int) Cube sampled format:Unknown + 295: TypePointer UniformConstant 294 + 296(g_tTexcdu4): 295(ptr) Variable UniformConstant + 297: TypePointer UniformConstant 6(float) + 298(c1): 297(ptr) Variable UniformConstant + 299: TypeVector 6(float) 3 + 300: TypePointer UniformConstant 299(fvec3) + 301(c3): 300(ptr) Variable UniformConstant + 302: TypePointer UniformConstant 7(fvec4) + 303(c4): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 24(int) + 305(o1): 304(ptr) Variable UniformConstant + 306: TypeVector 24(int) 3 + 307: TypePointer UniformConstant 306(ivec3) + 308(o3): 307(ptr) Variable UniformConstant + 309: TypePointer UniformConstant 31(ivec4) + 310(o4): 309(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 33(txval011): 32(ptr) Variable Function + 47(txval021): 46(ptr) Variable Function + 58(txval004): 8(ptr) Variable Function + 71(txval014): 32(ptr) Variable Function + 82(txval024): 46(ptr) Variable Function + 93(txval101): 8(ptr) Variable Function + 101(txval111): 32(ptr) Variable Function + 108(txval121): 46(ptr) Variable Function + 115(txval104): 8(ptr) Variable Function + 126(txval114): 32(ptr) Variable Function + 137(txval124): 46(ptr) Variable Function + 148(txval201): 8(ptr) Variable Function + 156(txval211): 32(ptr) Variable Function + 163(txval221): 46(ptr) Variable Function + 170(txval204): 8(ptr) Variable Function + 181(txval214): 32(ptr) Variable Function + 192(txval224): 46(ptr) Variable Function + 203(txval301): 8(ptr) Variable Function + 211(txval311): 32(ptr) Variable Function + 218(txval321): 46(ptr) Variable Function + 225(txval304): 8(ptr) Variable Function + 236(txval314): 32(ptr) Variable Function + 247(txval324): 46(ptr) Variable Function + 260(psout): 259(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 20(fvec2) Load 22(c2) + 28: 25(ivec2) Load 27(o2) + 30: 7(fvec4) ImageGather 19 23 29 Offset 28 + Store 9(txval001) 30 + 37: 34 Load 36(g_tTex2di4) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 41: 20(fvec2) Load 22(c2) + 42: 25(ivec2) Load 27(o2) + 43: 31(ivec4) ImageGather 40 41 29 Offset 42 + Store 33(txval011) 43 + 51: 48 Load 50(g_tTex2du4) + 52: 14 Load 16(g_sSamp) + 54: 53 SampledImage 51 52 + 55: 20(fvec2) Load 22(c2) + 56: 25(ivec2) Load 27(o2) + 57: 45(ivec4) ImageGather 54 55 29 Offset 56 + Store 47(txval021) 57 + 59: 10 Load 12(g_tTex2df4) + 60: 14 Load 16(g_sSamp) + 61: 18 SampledImage 59 60 + 62: 20(fvec2) Load 22(c2) + 63: 25(ivec2) Load 27(o2) + 64: 25(ivec2) Load 27(o2) + 65: 25(ivec2) Load 27(o2) + 66: 25(ivec2) Load 27(o2) + 69: 68 CompositeConstruct 63 64 65 66 + 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 + Store 58(txval004) 70 + 72: 34 Load 36(g_tTex2di4) + 73: 14 Load 16(g_sSamp) + 74: 39 SampledImage 72 73 + 75: 20(fvec2) Load 22(c2) + 76: 25(ivec2) Load 27(o2) + 77: 25(ivec2) Load 27(o2) + 78: 25(ivec2) Load 27(o2) + 79: 25(ivec2) Load 27(o2) + 80: 68 CompositeConstruct 76 77 78 79 + 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 + Store 71(txval014) 81 + 83: 48 Load 50(g_tTex2du4) + 84: 14 Load 16(g_sSamp) + 85: 53 SampledImage 83 84 + 86: 20(fvec2) Load 22(c2) + 87: 25(ivec2) Load 27(o2) + 88: 25(ivec2) Load 27(o2) + 89: 25(ivec2) Load 27(o2) + 90: 25(ivec2) Load 27(o2) + 91: 68 CompositeConstruct 87 88 89 90 + 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 + Store 82(txval024) 92 + 94: 10 Load 12(g_tTex2df4) + 95: 14 Load 16(g_sSamp) + 96: 18 SampledImage 94 95 + 97: 20(fvec2) Load 22(c2) + 98: 25(ivec2) Load 27(o2) + 100: 7(fvec4) ImageGather 96 97 99 Offset 98 + Store 93(txval101) 100 + 102: 34 Load 36(g_tTex2di4) + 103: 14 Load 16(g_sSamp) + 104: 39 SampledImage 102 103 + 105: 20(fvec2) Load 22(c2) + 106: 25(ivec2) Load 27(o2) + 107: 31(ivec4) ImageGather 104 105 99 Offset 106 + Store 101(txval111) 107 + 109: 48 Load 50(g_tTex2du4) + 110: 14 Load 16(g_sSamp) + 111: 53 SampledImage 109 110 + 112: 20(fvec2) Load 22(c2) + 113: 25(ivec2) Load 27(o2) + 114: 45(ivec4) ImageGather 111 112 99 Offset 113 + Store 108(txval121) 114 + 116: 10 Load 12(g_tTex2df4) + 117: 14 Load 16(g_sSamp) + 118: 18 SampledImage 116 117 + 119: 20(fvec2) Load 22(c2) + 120: 25(ivec2) Load 27(o2) + 121: 25(ivec2) Load 27(o2) + 122: 25(ivec2) Load 27(o2) + 123: 25(ivec2) Load 27(o2) + 124: 68 CompositeConstruct 120 121 122 123 + 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 + Store 115(txval104) 125 + 127: 34 Load 36(g_tTex2di4) + 128: 14 Load 16(g_sSamp) + 129: 39 SampledImage 127 128 + 130: 20(fvec2) Load 22(c2) + 131: 25(ivec2) Load 27(o2) + 132: 25(ivec2) Load 27(o2) + 133: 25(ivec2) Load 27(o2) + 134: 25(ivec2) Load 27(o2) + 135: 68 CompositeConstruct 131 132 133 134 + 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 + Store 126(txval114) 136 + 138: 48 Load 50(g_tTex2du4) + 139: 14 Load 16(g_sSamp) + 140: 53 SampledImage 138 139 + 141: 20(fvec2) Load 22(c2) + 142: 25(ivec2) Load 27(o2) + 143: 25(ivec2) Load 27(o2) + 144: 25(ivec2) Load 27(o2) + 145: 25(ivec2) Load 27(o2) + 146: 68 CompositeConstruct 142 143 144 145 + 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 + Store 137(txval124) 147 + 149: 10 Load 12(g_tTex2df4) + 150: 14 Load 16(g_sSamp) + 151: 18 SampledImage 149 150 + 152: 20(fvec2) Load 22(c2) + 153: 25(ivec2) Load 27(o2) + 155: 7(fvec4) ImageGather 151 152 154 Offset 153 + Store 148(txval201) 155 + 157: 34 Load 36(g_tTex2di4) + 158: 14 Load 16(g_sSamp) + 159: 39 SampledImage 157 158 + 160: 20(fvec2) Load 22(c2) + 161: 25(ivec2) Load 27(o2) + 162: 31(ivec4) ImageGather 159 160 154 Offset 161 + Store 156(txval211) 162 + 164: 48 Load 50(g_tTex2du4) + 165: 14 Load 16(g_sSamp) + 166: 53 SampledImage 164 165 + 167: 20(fvec2) Load 22(c2) + 168: 25(ivec2) Load 27(o2) + 169: 45(ivec4) ImageGather 166 167 154 Offset 168 + Store 163(txval221) 169 + 171: 10 Load 12(g_tTex2df4) + 172: 14 Load 16(g_sSamp) + 173: 18 SampledImage 171 172 + 174: 20(fvec2) Load 22(c2) + 175: 25(ivec2) Load 27(o2) + 176: 25(ivec2) Load 27(o2) + 177: 25(ivec2) Load 27(o2) + 178: 25(ivec2) Load 27(o2) + 179: 68 CompositeConstruct 175 176 177 178 + 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 + Store 170(txval204) 180 + 182: 34 Load 36(g_tTex2di4) + 183: 14 Load 16(g_sSamp) + 184: 39 SampledImage 182 183 + 185: 20(fvec2) Load 22(c2) + 186: 25(ivec2) Load 27(o2) + 187: 25(ivec2) Load 27(o2) + 188: 25(ivec2) Load 27(o2) + 189: 25(ivec2) Load 27(o2) + 190: 68 CompositeConstruct 186 187 188 189 + 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 + Store 181(txval214) 191 + 193: 48 Load 50(g_tTex2du4) + 194: 14 Load 16(g_sSamp) + 195: 53 SampledImage 193 194 + 196: 20(fvec2) Load 22(c2) + 197: 25(ivec2) Load 27(o2) + 198: 25(ivec2) Load 27(o2) + 199: 25(ivec2) Load 27(o2) + 200: 25(ivec2) Load 27(o2) + 201: 68 CompositeConstruct 197 198 199 200 + 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 + Store 192(txval224) 202 + 204: 10 Load 12(g_tTex2df4) + 205: 14 Load 16(g_sSamp) + 206: 18 SampledImage 204 205 + 207: 20(fvec2) Load 22(c2) + 208: 25(ivec2) Load 27(o2) + 210: 7(fvec4) ImageGather 206 207 209 Offset 208 + Store 203(txval301) 210 + 212: 34 Load 36(g_tTex2di4) + 213: 14 Load 16(g_sSamp) + 214: 39 SampledImage 212 213 + 215: 20(fvec2) Load 22(c2) + 216: 25(ivec2) Load 27(o2) + 217: 31(ivec4) ImageGather 214 215 209 Offset 216 + Store 211(txval311) 217 + 219: 48 Load 50(g_tTex2du4) + 220: 14 Load 16(g_sSamp) + 221: 53 SampledImage 219 220 + 222: 20(fvec2) Load 22(c2) + 223: 25(ivec2) Load 27(o2) + 224: 45(ivec4) ImageGather 221 222 209 Offset 223 + Store 218(txval321) 224 + 226: 10 Load 12(g_tTex2df4) + 227: 14 Load 16(g_sSamp) + 228: 18 SampledImage 226 227 + 229: 20(fvec2) Load 22(c2) + 230: 25(ivec2) Load 27(o2) + 231: 25(ivec2) Load 27(o2) + 232: 25(ivec2) Load 27(o2) + 233: 25(ivec2) Load 27(o2) + 234: 68 CompositeConstruct 230 231 232 233 + 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 + Store 225(txval304) 235 + 237: 34 Load 36(g_tTex2di4) + 238: 14 Load 16(g_sSamp) + 239: 39 SampledImage 237 238 + 240: 20(fvec2) Load 22(c2) + 241: 25(ivec2) Load 27(o2) + 242: 25(ivec2) Load 27(o2) + 243: 25(ivec2) Load 27(o2) + 244: 25(ivec2) Load 27(o2) + 245: 68 CompositeConstruct 241 242 243 244 + 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 + Store 236(txval314) 246 + 248: 48 Load 50(g_tTex2du4) + 249: 14 Load 16(g_sSamp) + 250: 53 SampledImage 248 249 + 251: 20(fvec2) Load 22(c2) + 252: 25(ivec2) Load 27(o2) + 253: 25(ivec2) Load 27(o2) + 254: 25(ivec2) Load 27(o2) + 255: 25(ivec2) Load 27(o2) + 256: 68 CompositeConstruct 252 253 254 255 + 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 + Store 247(txval324) 257 + 263: 8(ptr) AccessChain 260(psout) 29 + Store 263 262 + 265: 264(ptr) AccessChain 260(psout) 99 + Store 265 261 + 266:258(PS_OUTPUT) Load 260(psout) + ReturnValue 266 + FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out new file mode 100644 index 00000000..f9c28d03 --- /dev/null +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -0,0 +1,1122 @@ +hlsl.gatherRGBA.offsetarray.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval001' (temp 4-component vector of float) +0:40 textureGatherOffset (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler2DArray) +0:40 'g_tTex2df4a' (uniform texture2DArray) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c3' (uniform 3-component vector of float) +0:40 'o2' (uniform 2-component vector of int) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler2DArray) +0:41 'g_tTex2di4a' (uniform itexture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 'o2' (uniform 2-component vector of int) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler2DArray) +0:42 'g_tTex2du4a' (uniform utexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 'o2' (uniform 2-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp sampler2DArray) +0:44 'g_tTex2df4a' (uniform texture2DArray) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c3' (uniform 3-component vector of float) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isampler2DArray) +0:45 'g_tTex2di4a' (uniform itexture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usampler2DArray) +0:46 'g_tTex2du4a' (uniform utexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (global 4-component vector of float) +0:56 Construct combined texture-sampler (temp sampler2DArray) +0:56 'g_tTex2df4a' (uniform texture2DArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c3' (uniform 3-component vector of float) +0:56 'o2' (uniform 2-component vector of int) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (global 4-component vector of int) +0:57 Construct combined texture-sampler (temp isampler2DArray) +0:57 'g_tTex2di4a' (uniform itexture2DArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 'o2' (uniform 2-component vector of int) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (global 4-component vector of uint) +0:58 Construct combined texture-sampler (temp usampler2DArray) +0:58 'g_tTex2du4a' (uniform utexture2DArray) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 'o2' (uniform 2-component vector of int) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (global 4-component vector of float) +0:60 Construct combined texture-sampler (temp sampler2DArray) +0:60 'g_tTex2df4a' (uniform texture2DArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c3' (uniform 3-component vector of float) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (global 4-component vector of int) +0:61 Construct combined texture-sampler (temp isampler2DArray) +0:61 'g_tTex2di4a' (uniform itexture2DArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 Construct combined texture-sampler (temp usampler2DArray) +0:62 'g_tTex2du4a' (uniform utexture2DArray) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (global 4-component vector of float) +0:72 Construct combined texture-sampler (temp sampler2DArray) +0:72 'g_tTex2df4a' (uniform texture2DArray) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:72 'c3' (uniform 3-component vector of float) +0:72 'o2' (uniform 2-component vector of int) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (global 4-component vector of int) +0:73 Construct combined texture-sampler (temp isampler2DArray) +0:73 'g_tTex2di4a' (uniform itexture2DArray) +0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:73 'c3' (uniform 3-component vector of float) +0:73 'o2' (uniform 2-component vector of int) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (global 4-component vector of uint) +0:74 Construct combined texture-sampler (temp usampler2DArray) +0:74 'g_tTex2du4a' (uniform utexture2DArray) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:74 'c3' (uniform 3-component vector of float) +0:74 'o2' (uniform 2-component vector of int) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (global 4-component vector of float) +0:76 Construct combined texture-sampler (temp sampler2DArray) +0:76 'g_tTex2df4a' (uniform texture2DArray) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:76 'c3' (uniform 3-component vector of float) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (global 4-component vector of int) +0:77 Construct combined texture-sampler (temp isampler2DArray) +0:77 'g_tTex2di4a' (uniform itexture2DArray) +0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:77 'c3' (uniform 3-component vector of float) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 Construct combined texture-sampler (temp usampler2DArray) +0:78 'g_tTex2du4a' (uniform utexture2DArray) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c3' (uniform 3-component vector of float) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (global 4-component vector of float) +0:88 Construct combined texture-sampler (temp sampler2DArray) +0:88 'g_tTex2df4a' (uniform texture2DArray) +0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:88 'c3' (uniform 3-component vector of float) +0:88 'o2' (uniform 2-component vector of int) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (global 4-component vector of int) +0:89 Construct combined texture-sampler (temp isampler2DArray) +0:89 'g_tTex2di4a' (uniform itexture2DArray) +0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:89 'c3' (uniform 3-component vector of float) +0:89 'o2' (uniform 2-component vector of int) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (global 4-component vector of uint) +0:90 Construct combined texture-sampler (temp usampler2DArray) +0:90 'g_tTex2du4a' (uniform utexture2DArray) +0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:90 'c3' (uniform 3-component vector of float) +0:90 'o2' (uniform 2-component vector of int) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (global 4-component vector of float) +0:92 Construct combined texture-sampler (temp sampler2DArray) +0:92 'g_tTex2df4a' (uniform texture2DArray) +0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:92 'c3' (uniform 3-component vector of float) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (global 4-component vector of int) +0:93 Construct combined texture-sampler (temp isampler2DArray) +0:93 'g_tTex2di4a' (uniform itexture2DArray) +0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:93 'c3' (uniform 3-component vector of float) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 Construct combined texture-sampler (temp usampler2DArray) +0:94 'g_tTex2du4a' (uniform utexture2DArray) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c3' (uniform 3-component vector of float) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child (temp float) +0:107 Depth: direct index for structure (temp float FragDepth) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Parameters: +0:? Sequence +0:40 Sequence +0:40 move second child to first child (temp 4-component vector of float) +0:40 'txval001' (temp 4-component vector of float) +0:40 textureGatherOffset (global 4-component vector of float) +0:40 Construct combined texture-sampler (temp sampler2DArray) +0:40 'g_tTex2df4a' (uniform texture2DArray) +0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:40 'c3' (uniform 3-component vector of float) +0:40 'o2' (uniform 2-component vector of int) +0:40 Constant: +0:40 0 (const int) +0:41 Sequence +0:41 move second child to first child (temp 4-component vector of int) +0:41 'txval011' (temp 4-component vector of int) +0:41 textureGatherOffset (global 4-component vector of int) +0:41 Construct combined texture-sampler (temp isampler2DArray) +0:41 'g_tTex2di4a' (uniform itexture2DArray) +0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:41 'c3' (uniform 3-component vector of float) +0:41 'o2' (uniform 2-component vector of int) +0:41 Constant: +0:41 0 (const int) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of uint) +0:42 'txval021' (temp 4-component vector of uint) +0:42 textureGatherOffset (global 4-component vector of uint) +0:42 Construct combined texture-sampler (temp usampler2DArray) +0:42 'g_tTex2du4a' (uniform utexture2DArray) +0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:42 'c3' (uniform 3-component vector of float) +0:42 'o2' (uniform 2-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:44 Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'txval004' (temp 4-component vector of float) +0:44 textureGatherOffsets (global 4-component vector of float) +0:44 Construct combined texture-sampler (temp sampler2DArray) +0:44 'g_tTex2df4a' (uniform texture2DArray) +0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:44 'c3' (uniform 3-component vector of float) +0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 'o2' (uniform 2-component vector of int) +0:44 Constant: +0:44 0 (const int) +0:45 Sequence +0:45 move second child to first child (temp 4-component vector of int) +0:45 'txval014' (temp 4-component vector of int) +0:45 textureGatherOffsets (global 4-component vector of int) +0:45 Construct combined texture-sampler (temp isampler2DArray) +0:45 'g_tTex2di4a' (uniform itexture2DArray) +0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:45 'c3' (uniform 3-component vector of float) +0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 'o2' (uniform 2-component vector of int) +0:45 Constant: +0:45 0 (const int) +0:46 Sequence +0:46 move second child to first child (temp 4-component vector of uint) +0:46 'txval024' (temp 4-component vector of uint) +0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 Construct combined texture-sampler (temp usampler2DArray) +0:46 'g_tTex2du4a' (uniform utexture2DArray) +0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:46 'c3' (uniform 3-component vector of float) +0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 'o2' (uniform 2-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'txval101' (temp 4-component vector of float) +0:56 textureGatherOffset (global 4-component vector of float) +0:56 Construct combined texture-sampler (temp sampler2DArray) +0:56 'g_tTex2df4a' (uniform texture2DArray) +0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:56 'c3' (uniform 3-component vector of float) +0:56 'o2' (uniform 2-component vector of int) +0:56 Constant: +0:56 1 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'txval111' (temp 4-component vector of int) +0:57 textureGatherOffset (global 4-component vector of int) +0:57 Construct combined texture-sampler (temp isampler2DArray) +0:57 'g_tTex2di4a' (uniform itexture2DArray) +0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:57 'c3' (uniform 3-component vector of float) +0:57 'o2' (uniform 2-component vector of int) +0:57 Constant: +0:57 1 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'txval121' (temp 4-component vector of uint) +0:58 textureGatherOffset (global 4-component vector of uint) +0:58 Construct combined texture-sampler (temp usampler2DArray) +0:58 'g_tTex2du4a' (uniform utexture2DArray) +0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:58 'c3' (uniform 3-component vector of float) +0:58 'o2' (uniform 2-component vector of int) +0:58 Constant: +0:58 1 (const int) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'txval104' (temp 4-component vector of float) +0:60 textureGatherOffsets (global 4-component vector of float) +0:60 Construct combined texture-sampler (temp sampler2DArray) +0:60 'g_tTex2df4a' (uniform texture2DArray) +0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:60 'c3' (uniform 3-component vector of float) +0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 'o2' (uniform 2-component vector of int) +0:60 Constant: +0:60 1 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'txval114' (temp 4-component vector of int) +0:61 textureGatherOffsets (global 4-component vector of int) +0:61 Construct combined texture-sampler (temp isampler2DArray) +0:61 'g_tTex2di4a' (uniform itexture2DArray) +0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:61 'c3' (uniform 3-component vector of float) +0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 'o2' (uniform 2-component vector of int) +0:61 Constant: +0:61 1 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'txval124' (temp 4-component vector of uint) +0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 Construct combined texture-sampler (temp usampler2DArray) +0:62 'g_tTex2du4a' (uniform utexture2DArray) +0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:62 'c3' (uniform 3-component vector of float) +0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 'o2' (uniform 2-component vector of int) +0:62 Constant: +0:62 1 (const int) +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:72 'txval201' (temp 4-component vector of float) +0:72 textureGatherOffset (global 4-component vector of float) +0:72 Construct combined texture-sampler (temp sampler2DArray) +0:72 'g_tTex2df4a' (uniform texture2DArray) +0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:72 'c3' (uniform 3-component vector of float) +0:72 'o2' (uniform 2-component vector of int) +0:72 Constant: +0:72 2 (const int) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of int) +0:73 'txval211' (temp 4-component vector of int) +0:73 textureGatherOffset (global 4-component vector of int) +0:73 Construct combined texture-sampler (temp isampler2DArray) +0:73 'g_tTex2di4a' (uniform itexture2DArray) +0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:73 'c3' (uniform 3-component vector of float) +0:73 'o2' (uniform 2-component vector of int) +0:73 Constant: +0:73 2 (const int) +0:74 Sequence +0:74 move second child to first child (temp 4-component vector of uint) +0:74 'txval221' (temp 4-component vector of uint) +0:74 textureGatherOffset (global 4-component vector of uint) +0:74 Construct combined texture-sampler (temp usampler2DArray) +0:74 'g_tTex2du4a' (uniform utexture2DArray) +0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:74 'c3' (uniform 3-component vector of float) +0:74 'o2' (uniform 2-component vector of int) +0:74 Constant: +0:74 2 (const int) +0:76 Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:76 'txval204' (temp 4-component vector of float) +0:76 textureGatherOffsets (global 4-component vector of float) +0:76 Construct combined texture-sampler (temp sampler2DArray) +0:76 'g_tTex2df4a' (uniform texture2DArray) +0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:76 'c3' (uniform 3-component vector of float) +0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 'o2' (uniform 2-component vector of int) +0:76 Constant: +0:76 2 (const int) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of int) +0:77 'txval214' (temp 4-component vector of int) +0:77 textureGatherOffsets (global 4-component vector of int) +0:77 Construct combined texture-sampler (temp isampler2DArray) +0:77 'g_tTex2di4a' (uniform itexture2DArray) +0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:77 'c3' (uniform 3-component vector of float) +0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 'o2' (uniform 2-component vector of int) +0:77 Constant: +0:77 2 (const int) +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of uint) +0:78 'txval224' (temp 4-component vector of uint) +0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 Construct combined texture-sampler (temp usampler2DArray) +0:78 'g_tTex2du4a' (uniform utexture2DArray) +0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:78 'c3' (uniform 3-component vector of float) +0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 'o2' (uniform 2-component vector of int) +0:78 Constant: +0:78 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 4-component vector of float) +0:88 'txval301' (temp 4-component vector of float) +0:88 textureGatherOffset (global 4-component vector of float) +0:88 Construct combined texture-sampler (temp sampler2DArray) +0:88 'g_tTex2df4a' (uniform texture2DArray) +0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:88 'c3' (uniform 3-component vector of float) +0:88 'o2' (uniform 2-component vector of int) +0:88 Constant: +0:88 3 (const int) +0:89 Sequence +0:89 move second child to first child (temp 4-component vector of int) +0:89 'txval311' (temp 4-component vector of int) +0:89 textureGatherOffset (global 4-component vector of int) +0:89 Construct combined texture-sampler (temp isampler2DArray) +0:89 'g_tTex2di4a' (uniform itexture2DArray) +0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:89 'c3' (uniform 3-component vector of float) +0:89 'o2' (uniform 2-component vector of int) +0:89 Constant: +0:89 3 (const int) +0:90 Sequence +0:90 move second child to first child (temp 4-component vector of uint) +0:90 'txval321' (temp 4-component vector of uint) +0:90 textureGatherOffset (global 4-component vector of uint) +0:90 Construct combined texture-sampler (temp usampler2DArray) +0:90 'g_tTex2du4a' (uniform utexture2DArray) +0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:90 'c3' (uniform 3-component vector of float) +0:90 'o2' (uniform 2-component vector of int) +0:90 Constant: +0:90 3 (const int) +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:92 'txval304' (temp 4-component vector of float) +0:92 textureGatherOffsets (global 4-component vector of float) +0:92 Construct combined texture-sampler (temp sampler2DArray) +0:92 'g_tTex2df4a' (uniform texture2DArray) +0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:92 'c3' (uniform 3-component vector of float) +0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 'o2' (uniform 2-component vector of int) +0:92 Constant: +0:92 3 (const int) +0:93 Sequence +0:93 move second child to first child (temp 4-component vector of int) +0:93 'txval314' (temp 4-component vector of int) +0:93 textureGatherOffsets (global 4-component vector of int) +0:93 Construct combined texture-sampler (temp isampler2DArray) +0:93 'g_tTex2di4a' (uniform itexture2DArray) +0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:93 'c3' (uniform 3-component vector of float) +0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 'o2' (uniform 2-component vector of int) +0:93 Constant: +0:93 3 (const int) +0:94 Sequence +0:94 move second child to first child (temp 4-component vector of uint) +0:94 'txval324' (temp 4-component vector of uint) +0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 Construct combined texture-sampler (temp usampler2DArray) +0:94 'g_tTex2du4a' (uniform utexture2DArray) +0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:94 'c3' (uniform 3-component vector of float) +0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 'o2' (uniform 2-component vector of int) +0:94 Constant: +0:94 3 (const int) +0:106 move second child to first child (temp 4-component vector of float) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Constant: +0:106 0 (const int) +0:106 Constant: +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:106 1.000000 +0:107 move second child to first child (temp float) +0:107 Depth: direct index for structure (temp float FragDepth) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Constant: +0:107 1 (const int) +0:107 Constant: +0:107 1.000000 +0:109 Branch: Return with expression +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_sSamp2d' (uniform sampler) +0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'g_tTexcdf4a' (uniform textureCubeArray) +0:? 'g_tTexcdi4a' (uniform itextureCubeArray) +0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? 'c1' (uniform float) +0:? 'c2' (uniform 2-component vector of float) +0:? 'c3' (uniform 3-component vector of float) +0:? 'c4' (uniform 4-component vector of float) +0:? 'o1' (uniform int) +0:? 'o2' (uniform 2-component vector of int) +0:? 'o3' (uniform 3-component vector of int) +0:? 'o4' (uniform 4-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 301 + + Capability Shader + Capability ImageGatherExtended + Capability Sampled1D + Capability SampledCubeArray + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 9 "txval001" + Name 12 "g_tTex2df4a" + Name 16 "g_sSamp" + Name 22 "c3" + Name 27 "o2" + Name 33 "txval011" + Name 36 "g_tTex2di4a" + Name 47 "txval021" + Name 50 "g_tTex2du4a" + Name 58 "txval004" + Name 71 "txval014" + Name 82 "txval024" + Name 93 "txval101" + Name 101 "txval111" + Name 108 "txval121" + Name 115 "txval104" + Name 126 "txval114" + Name 137 "txval124" + Name 148 "txval201" + Name 156 "txval211" + Name 163 "txval221" + Name 170 "txval204" + Name 181 "txval214" + Name 192 "txval224" + Name 203 "txval301" + Name 211 "txval311" + Name 218 "txval321" + Name 225 "txval304" + Name 236 "txval314" + Name 247 "txval324" + Name 258 "PS_OUTPUT" + MemberName 258(PS_OUTPUT) 0 "Color" + MemberName 258(PS_OUTPUT) 1 "Depth" + Name 260 "psout" + Name 268 "g_sSamp2d" + Name 271 "g_tTex1df4a" + Name 274 "g_tTex1di4a" + Name 277 "g_tTex1du4a" + Name 280 "g_tTexcdf4a" + Name 283 "g_tTexcdi4a" + Name 286 "g_tTexcdu4a" + Name 288 "c1" + Name 291 "c2" + Name 293 "c4" + Name 295 "o1" + Name 298 "o3" + Name 300 "o4" + Decorate 12(g_tTex2df4a) DescriptorSet 0 + Decorate 16(g_sSamp) DescriptorSet 0 + Decorate 16(g_sSamp) Binding 0 + Decorate 36(g_tTex2di4a) DescriptorSet 0 + Decorate 50(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(g_sSamp2d) DescriptorSet 0 + Decorate 271(g_tTex1df4a) DescriptorSet 0 + Decorate 271(g_tTex1df4a) Binding 0 + Decorate 274(g_tTex1di4a) DescriptorSet 0 + Decorate 277(g_tTex1du4a) DescriptorSet 0 + Decorate 280(g_tTexcdf4a) DescriptorSet 0 + Decorate 283(g_tTexcdi4a) DescriptorSet 0 + Decorate 286(g_tTexcdu4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D array sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tTex2df4a): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_sSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 3 + 21: TypePointer UniformConstant 20(fvec3) + 22(c3): 21(ptr) Variable UniformConstant + 24: TypeInt 32 1 + 25: TypeVector 24(int) 2 + 26: TypePointer UniformConstant 25(ivec2) + 27(o2): 26(ptr) Variable UniformConstant + 29: 24(int) Constant 0 + 31: TypeVector 24(int) 4 + 32: TypePointer Function 31(ivec4) + 34: TypeImage 24(int) 2D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex2di4a): 35(ptr) Variable UniformConstant + 39: TypeSampledImage 34 + 44: TypeInt 32 0 + 45: TypeVector 44(int) 4 + 46: TypePointer Function 45(ivec4) + 48: TypeImage 44(int) 2D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2du4a): 49(ptr) Variable UniformConstant + 53: TypeSampledImage 48 + 67: 44(int) Constant 4 + 68: TypeArray 25(ivec2) 67 + 99: 24(int) Constant 1 + 154: 24(int) Constant 2 + 209: 24(int) Constant 3 + 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 259: TypePointer Function 258(PS_OUTPUT) + 261: 6(float) Constant 1065353216 + 262: 7(fvec4) ConstantComposite 261 261 261 261 + 264: TypePointer Function 6(float) + 268(g_sSamp2d): 15(ptr) Variable UniformConstant + 269: TypeImage 6(float) 1D array sampled format:Unknown + 270: TypePointer UniformConstant 269 +271(g_tTex1df4a): 270(ptr) Variable UniformConstant + 272: TypeImage 24(int) 1D array sampled format:Unknown + 273: TypePointer UniformConstant 272 +274(g_tTex1di4a): 273(ptr) Variable UniformConstant + 275: TypeImage 44(int) 1D array sampled format:Unknown + 276: TypePointer UniformConstant 275 +277(g_tTex1du4a): 276(ptr) Variable UniformConstant + 278: TypeImage 6(float) Cube array sampled format:Unknown + 279: TypePointer UniformConstant 278 +280(g_tTexcdf4a): 279(ptr) Variable UniformConstant + 281: TypeImage 24(int) Cube array sampled format:Unknown + 282: TypePointer UniformConstant 281 +283(g_tTexcdi4a): 282(ptr) Variable UniformConstant + 284: TypeImage 44(int) Cube array sampled format:Unknown + 285: TypePointer UniformConstant 284 +286(g_tTexcdu4a): 285(ptr) Variable UniformConstant + 287: TypePointer UniformConstant 6(float) + 288(c1): 287(ptr) Variable UniformConstant + 289: TypeVector 6(float) 2 + 290: TypePointer UniformConstant 289(fvec2) + 291(c2): 290(ptr) Variable UniformConstant + 292: TypePointer UniformConstant 7(fvec4) + 293(c4): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 24(int) + 295(o1): 294(ptr) Variable UniformConstant + 296: TypeVector 24(int) 3 + 297: TypePointer UniformConstant 296(ivec3) + 298(o3): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 31(ivec4) + 300(o4): 299(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(txval001): 8(ptr) Variable Function + 33(txval011): 32(ptr) Variable Function + 47(txval021): 46(ptr) Variable Function + 58(txval004): 8(ptr) Variable Function + 71(txval014): 32(ptr) Variable Function + 82(txval024): 46(ptr) Variable Function + 93(txval101): 8(ptr) Variable Function + 101(txval111): 32(ptr) Variable Function + 108(txval121): 46(ptr) Variable Function + 115(txval104): 8(ptr) Variable Function + 126(txval114): 32(ptr) Variable Function + 137(txval124): 46(ptr) Variable Function + 148(txval201): 8(ptr) Variable Function + 156(txval211): 32(ptr) Variable Function + 163(txval221): 46(ptr) Variable Function + 170(txval204): 8(ptr) Variable Function + 181(txval214): 32(ptr) Variable Function + 192(txval224): 46(ptr) Variable Function + 203(txval301): 8(ptr) Variable Function + 211(txval311): 32(ptr) Variable Function + 218(txval321): 46(ptr) Variable Function + 225(txval304): 8(ptr) Variable Function + 236(txval314): 32(ptr) Variable Function + 247(txval324): 46(ptr) Variable Function + 260(psout): 259(ptr) Variable Function + 13: 10 Load 12(g_tTex2df4a) + 17: 14 Load 16(g_sSamp) + 19: 18 SampledImage 13 17 + 23: 20(fvec3) Load 22(c3) + 28: 25(ivec2) Load 27(o2) + 30: 7(fvec4) ImageGather 19 23 29 Offset 28 + Store 9(txval001) 30 + 37: 34 Load 36(g_tTex2di4a) + 38: 14 Load 16(g_sSamp) + 40: 39 SampledImage 37 38 + 41: 20(fvec3) Load 22(c3) + 42: 25(ivec2) Load 27(o2) + 43: 31(ivec4) ImageGather 40 41 29 Offset 42 + Store 33(txval011) 43 + 51: 48 Load 50(g_tTex2du4a) + 52: 14 Load 16(g_sSamp) + 54: 53 SampledImage 51 52 + 55: 20(fvec3) Load 22(c3) + 56: 25(ivec2) Load 27(o2) + 57: 45(ivec4) ImageGather 54 55 29 Offset 56 + Store 47(txval021) 57 + 59: 10 Load 12(g_tTex2df4a) + 60: 14 Load 16(g_sSamp) + 61: 18 SampledImage 59 60 + 62: 20(fvec3) Load 22(c3) + 63: 25(ivec2) Load 27(o2) + 64: 25(ivec2) Load 27(o2) + 65: 25(ivec2) Load 27(o2) + 66: 25(ivec2) Load 27(o2) + 69: 68 CompositeConstruct 63 64 65 66 + 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 + Store 58(txval004) 70 + 72: 34 Load 36(g_tTex2di4a) + 73: 14 Load 16(g_sSamp) + 74: 39 SampledImage 72 73 + 75: 20(fvec3) Load 22(c3) + 76: 25(ivec2) Load 27(o2) + 77: 25(ivec2) Load 27(o2) + 78: 25(ivec2) Load 27(o2) + 79: 25(ivec2) Load 27(o2) + 80: 68 CompositeConstruct 76 77 78 79 + 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 + Store 71(txval014) 81 + 83: 48 Load 50(g_tTex2du4a) + 84: 14 Load 16(g_sSamp) + 85: 53 SampledImage 83 84 + 86: 20(fvec3) Load 22(c3) + 87: 25(ivec2) Load 27(o2) + 88: 25(ivec2) Load 27(o2) + 89: 25(ivec2) Load 27(o2) + 90: 25(ivec2) Load 27(o2) + 91: 68 CompositeConstruct 87 88 89 90 + 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 + Store 82(txval024) 92 + 94: 10 Load 12(g_tTex2df4a) + 95: 14 Load 16(g_sSamp) + 96: 18 SampledImage 94 95 + 97: 20(fvec3) Load 22(c3) + 98: 25(ivec2) Load 27(o2) + 100: 7(fvec4) ImageGather 96 97 99 Offset 98 + Store 93(txval101) 100 + 102: 34 Load 36(g_tTex2di4a) + 103: 14 Load 16(g_sSamp) + 104: 39 SampledImage 102 103 + 105: 20(fvec3) Load 22(c3) + 106: 25(ivec2) Load 27(o2) + 107: 31(ivec4) ImageGather 104 105 99 Offset 106 + Store 101(txval111) 107 + 109: 48 Load 50(g_tTex2du4a) + 110: 14 Load 16(g_sSamp) + 111: 53 SampledImage 109 110 + 112: 20(fvec3) Load 22(c3) + 113: 25(ivec2) Load 27(o2) + 114: 45(ivec4) ImageGather 111 112 99 Offset 113 + Store 108(txval121) 114 + 116: 10 Load 12(g_tTex2df4a) + 117: 14 Load 16(g_sSamp) + 118: 18 SampledImage 116 117 + 119: 20(fvec3) Load 22(c3) + 120: 25(ivec2) Load 27(o2) + 121: 25(ivec2) Load 27(o2) + 122: 25(ivec2) Load 27(o2) + 123: 25(ivec2) Load 27(o2) + 124: 68 CompositeConstruct 120 121 122 123 + 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 + Store 115(txval104) 125 + 127: 34 Load 36(g_tTex2di4a) + 128: 14 Load 16(g_sSamp) + 129: 39 SampledImage 127 128 + 130: 20(fvec3) Load 22(c3) + 131: 25(ivec2) Load 27(o2) + 132: 25(ivec2) Load 27(o2) + 133: 25(ivec2) Load 27(o2) + 134: 25(ivec2) Load 27(o2) + 135: 68 CompositeConstruct 131 132 133 134 + 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 + Store 126(txval114) 136 + 138: 48 Load 50(g_tTex2du4a) + 139: 14 Load 16(g_sSamp) + 140: 53 SampledImage 138 139 + 141: 20(fvec3) Load 22(c3) + 142: 25(ivec2) Load 27(o2) + 143: 25(ivec2) Load 27(o2) + 144: 25(ivec2) Load 27(o2) + 145: 25(ivec2) Load 27(o2) + 146: 68 CompositeConstruct 142 143 144 145 + 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 + Store 137(txval124) 147 + 149: 10 Load 12(g_tTex2df4a) + 150: 14 Load 16(g_sSamp) + 151: 18 SampledImage 149 150 + 152: 20(fvec3) Load 22(c3) + 153: 25(ivec2) Load 27(o2) + 155: 7(fvec4) ImageGather 151 152 154 Offset 153 + Store 148(txval201) 155 + 157: 34 Load 36(g_tTex2di4a) + 158: 14 Load 16(g_sSamp) + 159: 39 SampledImage 157 158 + 160: 20(fvec3) Load 22(c3) + 161: 25(ivec2) Load 27(o2) + 162: 31(ivec4) ImageGather 159 160 154 Offset 161 + Store 156(txval211) 162 + 164: 48 Load 50(g_tTex2du4a) + 165: 14 Load 16(g_sSamp) + 166: 53 SampledImage 164 165 + 167: 20(fvec3) Load 22(c3) + 168: 25(ivec2) Load 27(o2) + 169: 45(ivec4) ImageGather 166 167 154 Offset 168 + Store 163(txval221) 169 + 171: 10 Load 12(g_tTex2df4a) + 172: 14 Load 16(g_sSamp) + 173: 18 SampledImage 171 172 + 174: 20(fvec3) Load 22(c3) + 175: 25(ivec2) Load 27(o2) + 176: 25(ivec2) Load 27(o2) + 177: 25(ivec2) Load 27(o2) + 178: 25(ivec2) Load 27(o2) + 179: 68 CompositeConstruct 175 176 177 178 + 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 + Store 170(txval204) 180 + 182: 34 Load 36(g_tTex2di4a) + 183: 14 Load 16(g_sSamp) + 184: 39 SampledImage 182 183 + 185: 20(fvec3) Load 22(c3) + 186: 25(ivec2) Load 27(o2) + 187: 25(ivec2) Load 27(o2) + 188: 25(ivec2) Load 27(o2) + 189: 25(ivec2) Load 27(o2) + 190: 68 CompositeConstruct 186 187 188 189 + 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 + Store 181(txval214) 191 + 193: 48 Load 50(g_tTex2du4a) + 194: 14 Load 16(g_sSamp) + 195: 53 SampledImage 193 194 + 196: 20(fvec3) Load 22(c3) + 197: 25(ivec2) Load 27(o2) + 198: 25(ivec2) Load 27(o2) + 199: 25(ivec2) Load 27(o2) + 200: 25(ivec2) Load 27(o2) + 201: 68 CompositeConstruct 197 198 199 200 + 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 + Store 192(txval224) 202 + 204: 10 Load 12(g_tTex2df4a) + 205: 14 Load 16(g_sSamp) + 206: 18 SampledImage 204 205 + 207: 20(fvec3) Load 22(c3) + 208: 25(ivec2) Load 27(o2) + 210: 7(fvec4) ImageGather 206 207 209 Offset 208 + Store 203(txval301) 210 + 212: 34 Load 36(g_tTex2di4a) + 213: 14 Load 16(g_sSamp) + 214: 39 SampledImage 212 213 + 215: 20(fvec3) Load 22(c3) + 216: 25(ivec2) Load 27(o2) + 217: 31(ivec4) ImageGather 214 215 209 Offset 216 + Store 211(txval311) 217 + 219: 48 Load 50(g_tTex2du4a) + 220: 14 Load 16(g_sSamp) + 221: 53 SampledImage 219 220 + 222: 20(fvec3) Load 22(c3) + 223: 25(ivec2) Load 27(o2) + 224: 45(ivec4) ImageGather 221 222 209 Offset 223 + Store 218(txval321) 224 + 226: 10 Load 12(g_tTex2df4a) + 227: 14 Load 16(g_sSamp) + 228: 18 SampledImage 226 227 + 229: 20(fvec3) Load 22(c3) + 230: 25(ivec2) Load 27(o2) + 231: 25(ivec2) Load 27(o2) + 232: 25(ivec2) Load 27(o2) + 233: 25(ivec2) Load 27(o2) + 234: 68 CompositeConstruct 230 231 232 233 + 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 + Store 225(txval304) 235 + 237: 34 Load 36(g_tTex2di4a) + 238: 14 Load 16(g_sSamp) + 239: 39 SampledImage 237 238 + 240: 20(fvec3) Load 22(c3) + 241: 25(ivec2) Load 27(o2) + 242: 25(ivec2) Load 27(o2) + 243: 25(ivec2) Load 27(o2) + 244: 25(ivec2) Load 27(o2) + 245: 68 CompositeConstruct 241 242 243 244 + 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 + Store 236(txval314) 246 + 248: 48 Load 50(g_tTex2du4a) + 249: 14 Load 16(g_sSamp) + 250: 53 SampledImage 248 249 + 251: 20(fvec3) Load 22(c3) + 252: 25(ivec2) Load 27(o2) + 253: 25(ivec2) Load 27(o2) + 254: 25(ivec2) Load 27(o2) + 255: 25(ivec2) Load 27(o2) + 256: 68 CompositeConstruct 252 253 254 255 + 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 + Store 247(txval324) 257 + 263: 8(ptr) AccessChain 260(psout) 29 + Store 263 262 + 265: 264(ptr) AccessChain 260(psout) 99 + Store 265 261 + 266:258(PS_OUTPUT) Load 260(psout) + ReturnValue 266 + FunctionEnd diff --git a/Test/hlsl.gatherRGBA.array.dx10.frag b/Test/hlsl.gatherRGBA.array.dx10.frag new file mode 100644 index 00000000..279b6d60 --- /dev/null +++ b/Test/hlsl.gatherRGBA.array.dx10.frag @@ -0,0 +1,71 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3); + int4 txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3); + uint4 txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3); + + float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3); + int4 txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3); + uint4 txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3); + + float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3); + int4 txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3); + uint4 txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3); + + float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3); + int4 txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3); + uint4 txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4); + int4 txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4); + uint4 txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4); + + float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4); + int4 txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4); + uint4 txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4); + + float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4); + int4 txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4); + uint4 txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4); + + float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4); + int4 txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4); + uint4 txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gatherRGBA.basic.dx10.frag b/Test/hlsl.gatherRGBA.basic.dx10.frag new file mode 100644 index 00000000..17fae193 --- /dev/null +++ b/Test/hlsl.gatherRGBA.basic.dx10.frag @@ -0,0 +1,77 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2); + int4 txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2); + uint4 txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2); + + float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2); + int4 txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2); + uint4 txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2); + + float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2); + int4 txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2); + uint4 txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2); + + float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2); + int4 txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2); + uint4 txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3); + int4 txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3); + uint4 txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3); + + float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3); + int4 txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3); + uint4 txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3); + + float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3); + int4 txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3); + uint4 txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3); + + float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3); + int4 txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3); + uint4 txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gatherRGBA.offset.dx10.frag b/Test/hlsl.gatherRGBA.offset.dx10.frag new file mode 100644 index 00000000..a8909b4a --- /dev/null +++ b/Test/hlsl.gatherRGBA.offset.dx10.frag @@ -0,0 +1,116 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2); + int4 txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2); + uint4 txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2); + + float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status); + // int4 txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status); + // uint4 txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status); + + // float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2); + int4 txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2); + uint4 txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2); + + float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status); + // int4 txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status); + // uint4 txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status); + + // float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2); + int4 txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2); + uint4 txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2); + + float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status); + // int4 txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status); + // uint4 txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status); + + float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2); + int4 txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2); + uint4 txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2); + + float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status); + // int4 txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status); + // uint4 txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag new file mode 100644 index 00000000..ca32f56b --- /dev/null +++ b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag @@ -0,0 +1,110 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d; + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2); + int4 txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2); + uint4 txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2); + + float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status); + // int4 txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status); + // uint4 txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status); + + // float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2); + int4 txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2); + uint4 txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2); + + float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status); + // int4 txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status); + // uint4 txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status); + + // float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2); + int4 txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2); + uint4 txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2); + + float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status); + // int4 txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status); + // uint4 txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status); + + float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2); + int4 txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2); + uint4 txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2); + + float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status); + // int4 txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status); + // uint4 txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gathercmpRGBA.array.dx10.frag b/Test/hlsl.gathercmpRGBA.array.dx10.frag new file mode 100644 index 00000000..4ed7f4b4 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.array.dx10.frag @@ -0,0 +1,70 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75); + int4 txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75); + uint4 txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75); + + float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75); + int4 txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75); + uint4 txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75); + + float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75); + int4 txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75); + uint4 txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75); + + float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + int4 txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + uint4 txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75); + int4 txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75); + uint4 txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75); + + float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75); + int4 txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75); + uint4 txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75); + + float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75); + int4 txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75); + uint4 txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75); + + float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + int4 txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + uint4 txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/Test/hlsl.gathercmpRGBA.basic.dx10.frag new file mode 100644 index 00000000..9dc16315 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.basic.dx10.frag @@ -0,0 +1,76 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // no 1D gathers + + float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + int4 txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + uint4 txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75); + + float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + int4 txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + uint4 txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75); + + float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + int4 txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + uint4 txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75); + + float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + int4 txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + uint4 txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75); + + // no 3D gathers + + float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + int4 txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + uint4 txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75); + + float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + int4 txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + uint4 txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75); + + float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + int4 txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + uint4 txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75); + + float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + int4 txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + uint4 txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/Test/hlsl.gathercmpRGBA.offset.dx10.frag new file mode 100644 index 00000000..3a6fbb74 --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.offset.dx10.frag @@ -0,0 +1,115 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2); + + float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status); + + // float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2); + + float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status); + + // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2); + + float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status); + + float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2); + + float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + // int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + // uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag new file mode 100644 index 00000000..11131bcb --- /dev/null +++ b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag @@ -0,0 +1,109 @@ +SamplerComparisonState g_sSampCmp : register(s0); + +uniform Texture1DArray g_tTex1df4a : register(t0); +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +TextureCubeArray g_tTexcdf4a; +TextureCubeArray g_tTexcdi4a; +TextureCubeArray g_tTexcdu4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform float c1; +uniform float2 c2; +uniform float3 c3; +uniform float4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint status; + + // no 1D gathers + + float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + int4 txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + uint4 txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2); + + float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status); + + // float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + int4 txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + uint4 txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2); + + float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status); + + // float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + int4 txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + uint4 txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2); + + float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + // float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status); + + float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + int4 txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + uint4 txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2); + + float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + int4 txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + uint4 txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2); + + // float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // int4 txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + // uint4 txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status); + + // float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + // int4 txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + // uint4 txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status); + + // no 3D gathers with offset + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index bbca9349..5166e3d5 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -568,6 +568,17 @@ enum TOperator { EOpMethodGather, // ... EOpMethodCalculateLevelOfDetail, // ... EOpMethodCalculateLevelOfDetailUnclamped, // ... + + // SM5 texture methods + EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about + EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily + EOpMethodGatherBlue, // because HLSL arguments are slightly different. + EOpMethodGatherAlpha, // ... + EOpMethodGatherCmp, // ... + EOpMethodGatherCmpRed, // ... + EOpMethodGatherCmpGreen, // ... + EOpMethodGatherCmpBlue, // ... + EOpMethodGatherCmpAlpha, // ... }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index f9539ecd..0d99d1ea 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -91,6 +91,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.gather.basic.dx10.vert", "main"}, {"hlsl.gather.offset.dx10.frag", "main"}, {"hlsl.gather.offsetarray.dx10.frag", "main"}, + {"hlsl.gatherRGBA.array.dx10.frag", "main"}, + {"hlsl.gatherRGBA.basic.dx10.frag", "main"}, + {"hlsl.gatherRGBA.offset.dx10.frag", "main"}, + {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.getsampleposition.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index fcbe12cd..fc926d74 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -581,6 +581,15 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt } else if (field == "CalculateLevelOfDetail" || field == "CalculateLevelOfDetailUnclamped" || field == "Gather" || + field == "GatherRed" || + field == "GatherGreen" || + field == "GatherBlue" || + field == "GatherAlpha" || + field == "GatherCmp" || + field == "GatherCmpRed" || + field == "GatherCmpGreen" || + field == "GatherCmpBlue" || + field == "GatherCmpAlpha" || field == "GetDimensions" || field == "GetSamplePosition" || field == "Load" || @@ -1251,7 +1260,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argOffset = nullptr; // Offset is optional - if (argAggregate->getSequence().size() == 4) + if (argAggregate->getSequence().size() > 3) argOffset = argAggregate->getSequence()[3]->getAsTyped(); const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset); @@ -1261,6 +1270,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txgather->getSequence().push_back(txcombine); txgather->getSequence().push_back(argCoord); + // Offset if not given is implicitly channel 0 (red) if (argOffset != nullptr) txgather->getSequence().push_back(argOffset); @@ -1272,6 +1282,131 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType break; } + case EOpMethodGatherRed: // fall through... + case EOpMethodGatherGreen: // ... + case EOpMethodGatherBlue: // ... + case EOpMethodGatherAlpha: // ... + case EOpMethodGatherCmpRed: // ... + case EOpMethodGatherCmpGreen: // ... + case EOpMethodGatherCmpBlue: // ... + case EOpMethodGatherCmpAlpha: // ... + { + int channel = 0; // the channel we are gathering + int cmpValues = 0; // 1 if there is a compare value (handier than a bool below) + + switch (op) { + case EOpMethodGatherCmpRed: cmpValues = 1; // fall through + case EOpMethodGatherRed: channel = 0; break; + case EOpMethodGatherCmpGreen: cmpValues = 1; // fall through + case EOpMethodGatherGreen: channel = 1; break; + case EOpMethodGatherCmpBlue: cmpValues = 1; // fall through + case EOpMethodGatherBlue: channel = 2; break; + case EOpMethodGatherCmpAlpha: cmpValues = 1; // fall through + case EOpMethodGatherAlpha: channel = 3; break; + default: assert(0); break; + } + + // For now, we have nothing to map the component-wise comparison forms + // to, because neither GLSL nor SPIR-V has such an opcode. Issue an + // unimplemented error instead. Most of the machinery is here if that + // should ever become available. + if (cmpValues) { + error(loc, "unimplemented: component-level gather compare", "", ""); + return; + } + + int arg = 0; + + TIntermTyped* argTex = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argSamp = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argCoord = argAggregate->getSequence()[arg++]->getAsTyped(); + TIntermTyped* argOffset = nullptr; + TIntermTyped* argOffsets[4] = { nullptr, nullptr, nullptr, nullptr }; + // TIntermTyped* argStatus = nullptr; // TODO: residency + TIntermTyped* argCmp = nullptr; + + const TSamplerDim dim = argTex->getType().getSampler().dim; + + const int argSize = argAggregate->getSequence().size(); + bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues)); + bool hasOffset1 = false; + bool hasOffset4 = false; + + // Only 2D forms can have offsets. Discover if we have 0, 1 or 4 offsets. + if (dim == Esd2D) { + hasOffset1 = (argSize == (4+cmpValues) || argSize == (5+cmpValues)); + hasOffset4 = (argSize == (7+cmpValues) || argSize == (8+cmpValues)); + } + + assert(!(hasOffset1 && hasOffset4)); + + TOperator textureOp = EOpTextureGather; + + // Compare forms have compare value + if (cmpValues != 0) + argCmp = argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); + + // Some forms have single offset + if (hasOffset1) { + textureOp = EOpTextureGatherOffset; // single offset form + argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); + } + + // Some forms have 4 gather offsets + if (hasOffset4) { + textureOp = EOpTextureGatherOffsets; // note plural, for 4 offset form + for (int offsetNum = 0; offsetNum < 4; ++offsetNum) + argOffsets[offsetNum] = argAggregate->getSequence()[arg++]->getAsTyped(); + } + + // Residency status + if (hasStatus) { + // argStatus = argAggregate->getSequence()[arg++]->getAsTyped(); + error(loc, "unimplemented: residency status", "", ""); + return; + } + + TIntermAggregate* txgather = new TIntermAggregate(textureOp); + TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); + + TIntermTyped* argChannel = intermediate.addConstantUnion(channel, loc, true); + + txgather->getSequence().push_back(txcombine); + txgather->getSequence().push_back(argCoord); + + // AST wants an array of 4 offsets, where HLSL has separate args. Here + // we construct an array from the separate args. + if (hasOffset4) { + TType arrayType(EbtInt, EvqTemporary, 2); + TArraySizes arraySizes; + arraySizes.addInnerSize(4); + arrayType.newArraySizes(arraySizes); + + TIntermAggregate* initList = new TIntermAggregate(EOpNull); + + for (int offsetNum = 0; offsetNum < 4; ++offsetNum) + initList->getSequence().push_back(argOffsets[offsetNum]); + + argOffset = addConstructor(loc, initList, arrayType); + } + + // Add comparison value if we have one + if (argTex->getType().getSampler().isShadow()) + txgather->getSequence().push_back(argCmp); + + // Add offset (either 1, or an array of 4) if we have one + if (argOffset != nullptr) + txgather->getSequence().push_back(argOffset); + + txgather->getSequence().push_back(argChannel); + + txgather->setType(node->getType()); + txgather->setLoc(loc); + node = txgather; + + break; + } + case EOpMethodCalculateLevelOfDetail: case EOpMethodCalculateLevelOfDetailUnclamped: { diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 25e8fe8f..721da625 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -101,12 +101,29 @@ bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim return true; } + const bool isGather = + (name == "Gather" || + name == "GatherRed" || + name == "GatherGreen" || + name == "GatherBlue" || + name == "GatherAlpha"); + + const bool isGatherCmp = + (name == "GatherCmpRed" || + name == "GatherCmpGreen" || + name == "GatherCmpBlue" || + name == "GatherCmpAlpha"); + // Reject invalid Gathers - if (name == "Gather") { + if (isGather || isGatherCmp) { if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers return true; - if (dim0 == 4 && numArgs == 4) // there are no Cube gathers with offset - return true; + + // no offset on cube or cube array gathers + if (dim0 == 4) { + if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4)) + return true; + } } // Reject invalid Loads @@ -648,15 +665,14 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, - { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangVSPSGS }, - { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangVSPSGS }, + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS }, - // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels @@ -709,10 +725,61 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // UINT Width, UINT Height, UINT Samples // UINT Width, UINT Height, UINT Elements, UINT Samples - { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, - { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll }, + + // SM5 texture methods + { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + + { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + + { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + + { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, + { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll }, + { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll }, + { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll }, + { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll }, + + { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, + { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll }, + + { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, + { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + + { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, + { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + + { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll }, + { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll }, + { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll }, + { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, + { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + + // TODO: Cmp forms // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, @@ -1012,6 +1079,16 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("Gather", EOpMethodGather); symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); + + // SM5 Texture methods + symbolTable.relateToOperator("GatherRed", EOpMethodGatherRed); + symbolTable.relateToOperator("GatherGreen", EOpMethodGatherGreen); + symbolTable.relateToOperator("GatherBlue", EOpMethodGatherBlue); + symbolTable.relateToOperator("GatherAlpha", EOpMethodGatherAlpha); + symbolTable.relateToOperator("GatherCmpRed", EOpMethodGatherCmpRed); + symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen); + symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue); + symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha); } // From 9f9bad09b4f2bb8dc3653643b3e0ff244b4358b5 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 4 Aug 2016 22:46:19 -0600 Subject: [PATCH 056/217] PP: Add missing atoms that effect -E mode. When preprocessing only, some tokens were emitted as . This fixes them to preserve their original content. This supplants PR #182, with a correction and test results. --- Test/baseResults/preprocessor.simple.vert.out | 7 +++++ Test/preprocessor.simple.vert | 7 +++++ glslang/Include/revision.h | 4 +-- .../preprocessor/PpAtom.cpp | 29 +++++++++++++++++-- 4 files changed, 43 insertions(+), 4 deletions(-) diff --git a/Test/baseResults/preprocessor.simple.vert.out b/Test/baseResults/preprocessor.simple.vert.out index 8737bc81..8cbabdad 100644 --- a/Test/baseResults/preprocessor.simple.vert.out +++ b/Test/baseResults/preprocessor.simple.vert.out @@ -19,5 +19,12 @@ int main(){ gl_Position = vec4(1); gl_Position = vec4(1, 2); gl_Position = vec4(fn(3)); + []. ++ -- + + - * % / - ! ~ + << >> < > <= >= + == != + & ^ | && ^^ || ? : + += -= *= /= %= <<= >>= &= |= ^= + 1.2 2E10 5u - 5 lf } diff --git a/Test/preprocessor.simple.vert b/Test/preprocessor.simple.vert index f4749f2a..35222719 100644 --- a/Test/preprocessor.simple.vert +++ b/Test/preprocessor.simple.vert @@ -19,4 +19,11 @@ int main() { gl_Position = vec4(Z); gl_Position = vec4(F); gl_Position = vec4(fn(3)); + [] . ++ -- + + - * % / - ! ~ + << >> < > <= >= + == != + & ^ | && ^^ || ? : + += -= *= /= %= <<= >>= &= |= ^= + 1.2 2E10 5u -5lf } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 3884d079..bcaf087c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1377" -#define GLSLANG_DATE "02-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1383" +#define GLSLANG_DATE "04-Aug-2016" diff --git a/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/glslang/MachineIndependent/preprocessor/PpAtom.cpp index 763b6b4e..7a59d48d 100644 --- a/glslang/MachineIndependent/preprocessor/PpAtom.cpp +++ b/glslang/MachineIndependent/preprocessor/PpAtom.cpp @@ -98,6 +98,32 @@ const struct { int val; const char* str; } tokens[] = { + + { PpAtomAdd, "+=" }, + { PpAtomSub, "-=" }, + { PpAtomMul, "*=" }, + { PpAtomDiv, "/=" }, + { PpAtomMod, "%=" }, + { PpAtomRight, ">>" }, + { PpAtomLeft, "<<" }, + { PpAtomAnd, "&&" }, + { PpAtomOr, "||" }, + { PpAtomXor, "^^" }, + + { PpAtomRightAssign, ">>=" }, + { PpAtomLeftAssign, "<<=" }, + { PpAtomAndAssign, "&=" }, + { PpAtomOrAssign, "|=" }, + { PpAtomXorAssign, "^=" }, + + { PpAtomEQ, "==" }, + { PpAtomNE, "!=" }, + { PpAtomGE, ">=" }, + { PpAtomLE, "<=" }, + + { PpAtomDecrement, "--" }, + { PpAtomIncrement, "++" }, + { PpAtomDefine, "define" }, { PpAtomDefined, "defined" }, { PpAtomUndef, "undef" }, @@ -121,8 +147,7 @@ const struct { { PpAtomFileMacro, "__FILE__" }, { PpAtomVersionMacro, "__VERSION__" }, - { PpAtomInclude, "include" }, - + { PpAtomInclude, "include" }, }; } // end anonymous namespace From c7e501613a408b42a3f73583fa3a5ddf96cdf21c Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Fri, 5 Aug 2016 14:52:38 -0400 Subject: [PATCH 057/217] Commenting out attempt to parse DX9 samplers, since this is imcompatible with DX10+ shaders --- hlsl/hlslGrammar.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 64e8b9fb..3a422584 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -274,8 +274,14 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) TType type; // DX9 sampler declaration use a different syntax - if (acceptSamplerDeclarationDX9(type)) - return true; + // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to + // be possible to simultanously compile D3D10+ style shaders and DX9 shaders. If we want to compile DX9 + // HLSL shaders, this will have to be a master level switch + // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used + // For that reason, this line is commented out + + // if (acceptSamplerDeclarationDX9(type)) + // return true; // fully_specified_type if (! acceptFullySpecifiedType(type)) From 66ec80e01b5616e58cd102885ff8358116901c43 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 5 Aug 2016 14:04:23 -0600 Subject: [PATCH 058/217] Build: C++ headers: Replace PR #366 with a more directed version. --- OGLCompilersDLL/InitializeDll.cpp | 2 +- SPIRV/SPVRemapper.h | 4 ++-- SPIRV/SpvBuilder.cpp | 4 ++-- SPIRV/disassemble.cpp | 6 +++--- SPIRV/doc.cpp | 6 +++--- StandAlone/StandAlone.cpp | 6 +++--- glslang/Include/Common.h | 4 ++-- glslang/Include/InfoSink.h | 2 +- glslang/Include/PoolAlloc.h | 6 +++--- glslang/Include/revision.h | 4 ++-- glslang/MachineIndependent/InfoSink.cpp | 2 +- glslang/MachineIndependent/Intermediate.cpp | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 2 +- glslang/MachineIndependent/Scan.cpp | 2 +- glslang/MachineIndependent/ShaderLang.cpp | 2 +- glslang/MachineIndependent/intermOut.cpp | 10 +++------- glslang/MachineIndependent/preprocessor/Pp.cpp | 8 +++----- glslang/MachineIndependent/preprocessor/PpAtom.cpp | 7 +++---- glslang/MachineIndependent/preprocessor/PpContext.cpp | 3 +-- glslang/MachineIndependent/preprocessor/PpMemory.cpp | 7 +++---- glslang/MachineIndependent/preprocessor/PpScanner.cpp | 6 ++---- glslang/MachineIndependent/preprocessor/PpSymbols.cpp | 7 +++---- glslang/MachineIndependent/preprocessor/PpTokens.cpp | 9 ++++----- glslang/OSDependent/Windows/ossource.cpp | 8 ++++---- glslang/Public/ShaderLang.h | 2 +- gtests/TestFixture.h | 2 +- hlsl/hlslParseHelper.cpp | 2 +- hlsl/hlslScanContext.cpp | 2 +- 28 files changed, 57 insertions(+), 70 deletions(-) diff --git a/OGLCompilersDLL/InitializeDll.cpp b/OGLCompilersDLL/InitializeDll.cpp index cc2b742e..e4798815 100644 --- a/OGLCompilersDLL/InitializeDll.cpp +++ b/OGLCompilersDLL/InitializeDll.cpp @@ -34,7 +34,7 @@ #define SH_EXPORTING -#include +#include #include "InitializeDll.h" #include "../glslang/Include/InitializeGlobals.h" diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index e5e8e1bd..c2dc5291 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -38,7 +38,7 @@ #include #include -#include +#include namespace spv { @@ -74,7 +74,7 @@ public: } // namespace SPV #if !defined (use_cpp11) -#include +#include namespace spv { class spirvbin_t : public spirvbin_base_t diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 1411d163..f2af3b59 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -38,8 +38,8 @@ // SpvBuilder.h. // -#include -#include +#include +#include #include #include diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp index b60b3ba2..a7838a1b 100644 --- a/SPIRV/disassemble.cpp +++ b/SPIRV/disassemble.cpp @@ -36,9 +36,9 @@ // Disassembler for SPIR-V. // -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index 9b58b59d..a25f7c00 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -33,7 +33,7 @@ //POSSIBILITY OF SUCH DAMAGE. // -// 1) Programatically fill in instruction/operand information. +// 1) Programmatically fill in instruction/operand information. // This can be used for disassembly, printing documentation, etc. // // 2) Print documentation from this parameterization. @@ -41,8 +41,8 @@ #include "doc.h" -#include -#include +#include +#include #include #ifdef AMD_EXTENSIONS diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index c014be20..c0fdeb99 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -46,9 +46,9 @@ #include "../SPIRV/GLSL.std.450.h" #include "../SPIRV/doc.h" #include "../SPIRV/disassemble.h" -#include -#include -#include +#include +#include +#include #include "../glslang/OSDependent/osinclude.h" diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 4c04ae32..67b9c6bd 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -89,8 +89,8 @@ inline long long int atoll (const char* str) #include #include #include -#include -#include +#include +#include #include "PoolAlloc.h" diff --git a/glslang/Include/InfoSink.h b/glslang/Include/InfoSink.h index 5862e5d8..aa02f914 100644 --- a/glslang/Include/InfoSink.h +++ b/glslang/Include/InfoSink.h @@ -36,7 +36,7 @@ #define _INFOSINK_INCLUDED_ #include "../Include/Common.h" -#include +#include namespace glslang { diff --git a/glslang/Include/PoolAlloc.h b/glslang/Include/PoolAlloc.h index c3bebc63..f29a1134 100644 --- a/glslang/Include/PoolAlloc.h +++ b/glslang/Include/PoolAlloc.h @@ -61,13 +61,13 @@ // class as the allocator (second) template argument. // -#include -#include +#include +#include #include namespace glslang { -// If we are using guard blocks, we must track each indivual +// If we are using guard blocks, we must track each individual // allocation. If we aren't using guard blocks, these // never get instantiated, so won't have any impact. // diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index bcaf087c..aba5e580 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1383" -#define GLSLANG_DATE "04-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1384" +#define GLSLANG_DATE "05-Aug-2016" diff --git a/glslang/MachineIndependent/InfoSink.cpp b/glslang/MachineIndependent/InfoSink.cpp index 2e888827..aa0fe89a 100644 --- a/glslang/MachineIndependent/InfoSink.cpp +++ b/glslang/MachineIndependent/InfoSink.cpp @@ -34,7 +34,7 @@ #include "../Include/InfoSink.h" -#include +#include namespace glslang { diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index be828e9c..7ef732d3 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -44,7 +44,7 @@ #include "SymbolTable.h" #include "propagateNoContraction.h" -#include +#include namespace glslang { diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 398de1b4..ba963eaa 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -39,7 +39,7 @@ #include "Scan.h" #include "../OSDependent/osinclude.h" -#include +#include #include #include "preprocessor/PpContext.h" diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index e297e344..ee0dbb40 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -38,7 +38,7 @@ // GLSL scanning, leveraging the scanning done by the preprocessor. // -#include +#include #include #include diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index dccc1f0b..26f9deeb 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -41,7 +41,7 @@ // This is the platform independent interface between an OGL driver // and the shading language compiler/linker. // -#include +#include #include #include #include diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 893f42b4..0ef37c47 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -38,11 +38,9 @@ #include "../Include/InfoSink.h" #ifdef _MSC_VER -#include -#elif defined __ANDROID__ || defined __linux__ || __MINGW32__ || __MINGW64__ -#include +#include #else -#include +#include #endif namespace { @@ -50,10 +48,8 @@ namespace { bool is_positive_infinity(double x) { #ifdef _MSC_VER return _fpclass(x) == _FPCLASS_PINF; -#elif defined __ANDROID__ || defined __linux__ || __MINGW32__ || __MINGW64__ - return std::isinf(x) && (x >= 0); #else - return isinf(x) && (x >= 0); + return std::isinf(x) && (x >= 0); #endif } diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index d7710100..d28e7beb 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -81,12 +81,10 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define _CRT_SECURE_NO_WARNINGS -#include -#include #include -#include -#include -#include +#include +#include +#include #include "PpContext.h" #include "PpTokens.h" diff --git a/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/glslang/MachineIndependent/preprocessor/PpAtom.cpp index 7a59d48d..2b211931 100644 --- a/glslang/MachineIndependent/preprocessor/PpAtom.cpp +++ b/glslang/MachineIndependent/preprocessor/PpAtom.cpp @@ -82,10 +82,9 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define _CRT_SECURE_NO_WARNINGS -#include -#include -#include -#include +#include +#include +#include #include "PpContext.h" #include "PpTokens.h" diff --git a/glslang/MachineIndependent/preprocessor/PpContext.cpp b/glslang/MachineIndependent/preprocessor/PpContext.cpp index 6f0b8a9a..6791fef5 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.cpp +++ b/glslang/MachineIndependent/preprocessor/PpContext.cpp @@ -76,8 +76,7 @@ TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -#include -#include +#include #include "PpContext.h" diff --git a/glslang/MachineIndependent/preprocessor/PpMemory.cpp b/glslang/MachineIndependent/preprocessor/PpMemory.cpp index 57a49fb8..6158a387 100644 --- a/glslang/MachineIndependent/preprocessor/PpMemory.cpp +++ b/glslang/MachineIndependent/preprocessor/PpMemory.cpp @@ -76,10 +76,9 @@ TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ -#include -#include -#include -#include +#include +#include +#include #include "PpContext.h" diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 5ce5a03e..fc1c3019 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -81,10 +81,8 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define _CRT_SECURE_NO_WARNINGS -#include -#include -#include -#include +#include +#include #include "PpContext.h" #include "PpTokens.h" diff --git a/glslang/MachineIndependent/preprocessor/PpSymbols.cpp b/glslang/MachineIndependent/preprocessor/PpSymbols.cpp index c2ab7c0a..b7f1df55 100644 --- a/glslang/MachineIndependent/preprocessor/PpSymbols.cpp +++ b/glslang/MachineIndependent/preprocessor/PpSymbols.cpp @@ -79,10 +79,9 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // symbols.c // -#include -#include -#include -#include +#include +#include +#include #include "PpContext.h" diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index 61883c96..1e1b0a2f 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -85,11 +85,10 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define snprintf sprintf_s #endif -#include -#include -#include -#include -#include +#include +#include +#include +#include #include "PpContext.h" #include "PpTokens.h" diff --git a/glslang/OSDependent/Windows/ossource.cpp b/glslang/OSDependent/Windows/ossource.cpp index 1d09fd38..364940b3 100644 --- a/glslang/OSDependent/Windows/ossource.cpp +++ b/glslang/OSDependent/Windows/ossource.cpp @@ -37,14 +37,14 @@ #define STRICT #define VC_EXTRALEAN 1 #include -#include +#include #include #include -#include -#include +#include +#include // -// This file contains contains the Window-OS-specific functions +// This file contains the Window-OS-specific functions // #if !(defined(_WIN32) || defined(_WIN64)) diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 4b4d0fc6..d1121595 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -37,7 +37,7 @@ #include "../Include/ResourceLimits.h" #include "../MachineIndependent/Versions.h" -#include +#include #ifdef _WIN32 #define C_DECL __cdecl diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 8dffb805..bf31889e 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -35,7 +35,7 @@ #ifndef GLSLANG_GTESTS_TEST_FIXTURE_H #define GLSLANG_GTESTS_TEST_FIXTURE_H -#include +#include #include #include #include diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index fc926d74..f2d97a42 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -43,7 +43,7 @@ #include "../glslang/OSDependent/osinclude.h" -#include +#include #include namespace glslang { diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index da393211..36dea5cb 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -38,7 +38,7 @@ // HLSL scanning, leveraging the scanning done by the preprocessor. // -#include +#include #include #include From bbd1b0ef76bd2b29baa27c2f6728a92583f293fd Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 5 Aug 2016 15:19:46 -0600 Subject: [PATCH 059/217] Tests: Add some location-decoration tests, to aid PR #422. --- Test/baseResults/spv.450.tesc.out | 41 +++++++++++++++++++++++++++++-- Test/spv.450.tesc | 12 +++++++++ glslang/Include/revision.h | 4 +-- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out index c6c08b26..95eda65f 100755 --- a/Test/baseResults/spv.450.tesc.out +++ b/Test/baseResults/spv.450.tesc.out @@ -7,12 +7,12 @@ Linked tessellation control stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 17 +// Id's are bound by 24 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 9 16 + EntryPoint TessellationControl 4 "main" 9 16 20 23 ExecutionMode 4 OutputVertices 4 Source GLSL 450 Name 4 "main" @@ -25,12 +25,42 @@ Linked tessellation control stage: MemberName 11(TheBlock) 1 "bMem2" MemberName 11(TheBlock) 2 "s" Name 16 "tcBlock" + Name 17 "S" + MemberName 17(S) 0 "sMem1" + MemberName 17(S) 1 "sMem2" + Name 18 "SingleBlock" + MemberName 18(SingleBlock) 0 "bMem1" + MemberName 18(SingleBlock) 1 "bMem2" + MemberName 18(SingleBlock) 2 "s" + Name 20 "singleBlock" + Name 21 "bn" + MemberName 21(bn) 0 "v1" + MemberName 21(bn) 1 "v2" + MemberName 21(bn) 2 "v3" + Name 23 "" Decorate 9(patchOut) Patch MemberDecorate 11(TheBlock) 0 Patch MemberDecorate 11(TheBlock) 1 Patch MemberDecorate 11(TheBlock) 2 Patch Decorate 11(TheBlock) Block Decorate 16(tcBlock) Location 12 + MemberDecorate 18(SingleBlock) 0 Patch + MemberDecorate 18(SingleBlock) 0 Location 2 + MemberDecorate 18(SingleBlock) 1 Patch + MemberDecorate 18(SingleBlock) 1 Location 3 + MemberDecorate 18(SingleBlock) 2 Patch + MemberDecorate 18(SingleBlock) 2 Location 4 + Decorate 18(SingleBlock) Block + Decorate 20(singleBlock) Location 2 + MemberDecorate 21(bn) 0 Patch + MemberDecorate 21(bn) 0 Location 20 + MemberDecorate 21(bn) 0 Component 0 + MemberDecorate 21(bn) 1 Patch + MemberDecorate 21(bn) 1 Location 24 + MemberDecorate 21(bn) 2 Patch + MemberDecorate 21(bn) 2 Location 25 + MemberDecorate 21(bn) 2 Component 0 + Decorate 21(bn) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -44,6 +74,13 @@ Linked tessellation control stage: 14: TypeArray 11(TheBlock) 13 15: TypePointer Output 14 16(tcBlock): 15(ptr) Variable Output + 17(S): TypeStruct 6(float) 6(float) + 18(SingleBlock): TypeStruct 6(float) 6(float) 17(S) + 19: TypePointer Output 18(SingleBlock) + 20(singleBlock): 19(ptr) Variable Output + 21(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 22: TypePointer Output 21(bn) + 23: 22(ptr) Variable Output 4(main): 2 Function None 3 5: Label Return diff --git a/Test/spv.450.tesc b/Test/spv.450.tesc index 0f8ec5cb..c3719f96 100644 --- a/Test/spv.450.tesc +++ b/Test/spv.450.tesc @@ -18,3 +18,15 @@ layout(location = 12) patch out TheBlock { void main() { } + +layout(location = 2) patch out SingleBlock { + highp float bMem1; // should not see a location decoration + highp float bMem2; + S s; // should see a patch decoration +} singleBlock; + +layout(location = 20) patch out bn { + vec4 v1; // location 20 + layout(location = 24) vec4 v2; // location 24 + vec4 v3; // location 25 +}; \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index bcaf087c..aba5e580 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1383" -#define GLSLANG_DATE "04-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1384" +#define GLSLANG_DATE "05-Aug-2016" From 267590d452ff00b3be9f21db75363cb72c4a52b9 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 5 Aug 2016 17:34:34 -0600 Subject: [PATCH 060/217] Whitespace: Nonfunctional: fix inconsistent white space, esp. no tabs. --- SPIRV/doc.h | 2 +- glslang/GenericCodeGen/Link.cpp | 2 +- glslang/Include/Common.h | 4 +- glslang/Include/PoolAlloc.h | 4 +- glslang/Include/ShHandle.h | 12 ++--- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 4 +- glslang/MachineIndependent/PoolAlloc.cpp | 12 ++--- glslang/MachineIndependent/SymbolTable.cpp | 4 +- glslang/OSDependent/Windows/ossource.cpp | 54 +++++++++++----------- hlsl/hlslGrammar.cpp | 10 ++-- hlsl/hlslParseHelper.cpp | 6 +-- 12 files changed, 58 insertions(+), 58 deletions(-) diff --git a/SPIRV/doc.h b/SPIRV/doc.h index cf9e059b..743896ff 100644 --- a/SPIRV/doc.h +++ b/SPIRV/doc.h @@ -149,7 +149,7 @@ enum OperandClass { OperandMemorySemantics, OperandMemoryAccess, OperandScope, - OperandGroupOperation, + OperandGroupOperation, OperandKernelEnqueueFlags, OperandKernelProfilingInfo, OperandCapability, diff --git a/glslang/GenericCodeGen/Link.cpp b/glslang/GenericCodeGen/Link.cpp index 81609992..8da88bda 100644 --- a/glslang/GenericCodeGen/Link.cpp +++ b/glslang/GenericCodeGen/Link.cpp @@ -46,7 +46,7 @@ class TGenericLinker : public TLinker { public: TGenericLinker(EShExecutable e, int dOptions) : TLinker(e, infoSink), debugOptions(dOptions) { } bool link(TCompilerList&, TUniformMap*) { return true; } - void getAttributeBindings(ShBindingTable const **) const { } + void getAttributeBindings(ShBindingTable const **) const { } TInfoSink infoSink; int debugOptions; }; diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 4c04ae32..bc09cdc4 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -99,11 +99,11 @@ inline long long int atoll (const char* str) // #define POOL_ALLOCATOR_NEW_DELETE(A) \ void* operator new(size_t s) { return (A).allocate(s); } \ - void* operator new(size_t, void *_Where) { return (_Where); } \ + void* operator new(size_t, void *_Where) { return (_Where); } \ void operator delete(void*) { } \ void operator delete(void *, void *) { } \ void* operator new[](size_t s) { return (A).allocate(s); } \ - void* operator new[](size_t, void *_Where) { return (_Where); } \ + void* operator new[](size_t, void *_Where) { return (_Where); } \ void operator delete[](void*) { } \ void operator delete[](void *, void *) { } diff --git a/glslang/Include/PoolAlloc.h b/glslang/Include/PoolAlloc.h index c3bebc63..13af7712 100644 --- a/glslang/Include/PoolAlloc.h +++ b/glslang/Include/PoolAlloc.h @@ -297,10 +297,10 @@ public: pointer allocate(size_type n, const void*) { return reinterpret_cast(getAllocator().allocate(n * sizeof(T))); } - void deallocate(void*, size_type) { } + void deallocate(void*, size_type) { } void deallocate(pointer, size_type) { } - pointer _Charalloc(size_t n) { + pointer _Charalloc(size_t n) { return reinterpret_cast(getAllocator().allocate(n)); } void construct(pointer p, const T& val) { new ((void *)p) T(val); } diff --git a/glslang/Include/ShHandle.h b/glslang/Include/ShHandle.h index fee64139..bfc97db8 100644 --- a/glslang/Include/ShHandle.h +++ b/glslang/Include/ShHandle.h @@ -123,8 +123,8 @@ public: haveReturnableObjectCode(false), appAttributeBindings(0), fixedAttributeBindings(0), - excludedAttributes(0), - excludedCount(0), + excludedAttributes(0), + excludedCount(0), uniformBindings(0) { } virtual TLinker* getAsLinker() { return this; } virtual ~TLinker() { } @@ -132,8 +132,8 @@ public: virtual bool link(THandleList&) { return false; } virtual void setAppAttributeBindings(const ShBindingTable* t) { appAttributeBindings = t; } virtual void setFixedAttributeBindings(const ShBindingTable* t) { fixedAttributeBindings = t; } - virtual void getAttributeBindings(ShBindingTable const **t) const = 0; - virtual void setExcludedAttributes(const int* attributes, int count) { excludedAttributes = attributes; excludedCount = count; } + virtual void getAttributeBindings(ShBindingTable const **t) const = 0; + virtual void setExcludedAttributes(const int* attributes, int count) { excludedAttributes = attributes; excludedCount = count; } virtual ShBindingTable* getUniformBindings() const { return uniformBindings; } virtual const void* getObjectCode() const { return 0; } // a real compiler would be returning object code here virtual TInfoSink& getInfoSink() { return infoSink; } @@ -145,8 +145,8 @@ protected: const ShBindingTable* appAttributeBindings; const ShBindingTable* fixedAttributeBindings; - const int* excludedAttributes; - int excludedCount; + const int* excludedAttributes; + int excludedCount; ShBindingTable* uniformBindings; // created by the linker }; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index aba5e580..18057dcf 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1384" +#define GLSLANG_REVISION "SPIRV99.1390" #define GLSLANG_DATE "05-Aug-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 398de1b4..b117024a 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -253,7 +253,7 @@ void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& // bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& compString, int vecSize, TVectorFields& fields) { - fields.num = (int) compString.size(); + fields.num = (int)compString.size(); if (fields.num > 4) { error(loc, "illegal vector field selection", compString.c_str(), ""); return false; @@ -865,7 +865,7 @@ TIntermTyped* TParseContext::handleDotDereference(const TSourceLoc& loc, TInterm TString vectorString = field; TIntermTyped* index = intermediate.addSwizzle(fields, loc); result = intermediate.addIndex(EOpVectorSwizzle, base, index, loc); - result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int) vectorString.size())); + result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision, (int)vectorString.size())); } // Swizzle operations propagate specialization-constantness if (base->getType().getQualifier().isSpecConstant()) diff --git a/glslang/MachineIndependent/PoolAlloc.cpp b/glslang/MachineIndependent/PoolAlloc.cpp index d56979b4..9dfcd305 100644 --- a/glslang/MachineIndependent/PoolAlloc.cpp +++ b/glslang/MachineIndependent/PoolAlloc.cpp @@ -53,7 +53,7 @@ void InitializeMemoryPools() TThreadMemoryPools* threadData = new TThreadMemoryPools(); threadData->threadPoolAllocator = threadPoolAllocator; - + OS_SetTLSValue(PoolIndex, threadData); } @@ -63,7 +63,7 @@ void FreeGlobalPools() TThreadMemoryPools* globalPools = static_cast(OS_GetTLSValue(PoolIndex)); if (! globalPools) return; - + GetThreadPoolAllocator().popAll(); delete &GetThreadPoolAllocator(); delete globalPools; @@ -149,12 +149,12 @@ TPoolAllocator::TPoolAllocator(int growthIncrement, int allocationAlignment) : TPoolAllocator::~TPoolAllocator() { - while (inUseList) { - tHeader* next = inUseList->nextPage; + while (inUseList) { + tHeader* next = inUseList->nextPage; inUseList->~tHeader(); delete [] reinterpret_cast(inUseList); - inUseList = next; - } + inUseList = next; + } // // Always delete the free list memory - it can't be being diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index bf0f1f9f..630053a0 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -250,7 +250,7 @@ TSymbol::TSymbol(const TSymbol& copyOf) } TVariable::TVariable(const TVariable& copyOf) : TSymbol(copyOf) -{ +{ type.deepCopy(copyOf.type); userType = copyOf.userType; numExtensions = 0; @@ -276,7 +276,7 @@ TVariable* TVariable::clone() const } TFunction::TFunction(const TFunction& copyOf) : TSymbol(copyOf) -{ +{ for (unsigned int i = 0; i < copyOf.parameters.size(); ++i) { TParameter param; parameters.push_back(param); diff --git a/glslang/OSDependent/Windows/ossource.cpp b/glslang/OSDependent/Windows/ossource.cpp index 1d09fd38..5df8eff3 100644 --- a/glslang/OSDependent/Windows/ossource.cpp +++ b/glslang/OSDependent/Windows/ossource.cpp @@ -55,12 +55,12 @@ namespace glslang { inline OS_TLSIndex ToGenericTLSIndex (DWORD handle) { - return (OS_TLSIndex)((uintptr_t)handle + 1); + return (OS_TLSIndex)((uintptr_t)handle + 1); } inline DWORD ToNativeTLSIndex (OS_TLSIndex nIndex) { - return (DWORD)((uintptr_t)nIndex - 1); + return (DWORD)((uintptr_t)nIndex - 1); } // @@ -68,46 +68,46 @@ inline DWORD ToNativeTLSIndex (OS_TLSIndex nIndex) // OS_TLSIndex OS_AllocTLSIndex() { - DWORD dwIndex = TlsAlloc(); - if (dwIndex == TLS_OUT_OF_INDEXES) { - assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); - return OS_INVALID_TLS_INDEX; - } + DWORD dwIndex = TlsAlloc(); + if (dwIndex == TLS_OUT_OF_INDEXES) { + assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage"); + return OS_INVALID_TLS_INDEX; + } - return ToGenericTLSIndex(dwIndex); + return ToGenericTLSIndex(dwIndex); } bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue) { - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } - if (TlsSetValue(ToNativeTLSIndex(nIndex), lpvValue)) - return true; - else - return false; + if (TlsSetValue(ToNativeTLSIndex(nIndex), lpvValue)) + return true; + else + return false; } void* OS_GetTLSValue(OS_TLSIndex nIndex) { - assert(nIndex != OS_INVALID_TLS_INDEX); - return TlsGetValue(ToNativeTLSIndex(nIndex)); + assert(nIndex != OS_INVALID_TLS_INDEX); + return TlsGetValue(ToNativeTLSIndex(nIndex)); } bool OS_FreeTLSIndex(OS_TLSIndex nIndex) { - if (nIndex == OS_INVALID_TLS_INDEX) { - assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); - return false; - } + if (nIndex == OS_INVALID_TLS_INDEX) { + assert(0 && "OS_SetTLSValue(): Invalid TLS Index"); + return false; + } - if (TlsFree(ToNativeTLSIndex(nIndex))) - return true; - else - return false; + if (TlsFree(ToNativeTLSIndex(nIndex))) + return true; + else + return false; } HANDLE GlobalLock; @@ -129,7 +129,7 @@ void ReleaseGlobalLock() unsigned int __stdcall EnterGenericThread (void* entry) { - return ((TThreadEntrypoint)entry)(0); + return ((TThreadEntrypoint)entry)(0); } void* OS_CreateThread(TThreadEntrypoint entry) diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3a422584..3de98536 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -274,11 +274,11 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) TType type; // DX9 sampler declaration use a different syntax - // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to - // be possible to simultanously compile D3D10+ style shaders and DX9 shaders. If we want to compile DX9 - // HLSL shaders, this will have to be a master level switch - // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used - // For that reason, this line is commented out + // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to + // be possible to simultaneously compile D3D10+ style shaders and DX9 shaders. If we want to compile DX9 + // HLSL shaders, this will have to be a master level switch + // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used + // For that reason, this line is commented out // if (acceptSamplerDeclarationDX9(type)) // return true; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index fc926d74..c8348c51 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -998,7 +998,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TSampler& texSampler = texType.getSampler(); const TSamplerDim dim = texSampler.dim; - const int numArgs = (int) argAggregate->getSequence().size(); + const int numArgs = (int)argAggregate->getSequence().size(); int numDims = 0; @@ -1184,7 +1184,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); } - const int numArgs = (int) argAggregate->getSequence().size(); + const int numArgs = (int)argAggregate->getSequence().size(); const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); // Create texel fetch @@ -1228,7 +1228,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; - const int numArgs = (int) argAggregate->getSequence().size(); + const int numArgs = (int)argAggregate->getSequence().size(); if (numArgs == 5) // offset, if present argOffset = argAggregate->getSequence()[4]->getAsTyped(); From 4583b61e205e7901f5be69f81ddb95ce8830be16 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 7 Aug 2016 19:14:22 -0600 Subject: [PATCH 061/217] HLSL: Smear scalars to match vectors for relational operations. Yield a vector relational compare and a vector result. --- SPIRV/GlslangToSpv.cpp | 6 +- Test/baseResults/hlsl.shapeConv.frag.out | 131 ++++++++++++++++++-- Test/hlsl.shapeConv.frag | 9 ++ glslang/Include/revision.h | 4 +- glslang/MachineIndependent/Intermediate.cpp | 17 ++- glslang/MachineIndependent/ParseHelper.cpp | 23 +++- 6 files changed, 168 insertions(+), 22 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 6aec9e62..5993e163 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -3082,11 +3082,9 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv // Handle comparison instructions - if (reduceComparison && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) { - assert(op == glslang::EOpEqual || op == glslang::EOpNotEqual); - + if (reduceComparison && (op == glslang::EOpEqual || op == glslang::EOpNotEqual) + && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual); - } switch (op) { case glslang::EOpLessThan: diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index e9b73898..63895957 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -2,7 +2,7 @@ hlsl.shapeConv.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:23 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -42,8 +42,48 @@ gl_FragCoord origin is upper left 0:10 Construct vec3 (temp 3-component vector of float) 0:10 Construct float (temp float) 0:10 'f' (in float) -0:12 Branch: Return with expression -0:12 'input' (in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 2-component vector of float) +0:11 'w' (temp 2-component vector of float) +0:11 Constant: +0:11 2.000000 +0:11 2.000000 +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'V' (temp float) +0:12 Constant: +0:12 1.000000 +0:13 Sequence +0:13 move second child to first child (temp 3-component vector of float) +0:13 'MyVal' (temp 3-component vector of float) +0:13 Construct vec3 (temp 3-component vector of float) +0:13 'V' (temp float) +0:16 Compare Greater Than (temp bool) +0:16 'foo' (temp 3-component vector of float) +0:16 Constant: +0:16 4.000000 +0:16 4.000000 +0:16 4.000000 +0:17 Compare Greater Than or Equal (temp bool) +0:17 'foo' (temp 3-component vector of float) +0:17 Constant: +0:17 5.000000 +0:17 5.000000 +0:17 5.000000 +0:18 Compare Less Than (temp bool) +0:18 Constant: +0:18 6.000000 +0:18 6.000000 +0:18 6.000000 +0:18 'foo' (temp 3-component vector of float) +0:19 Compare Less Than or Equal (temp bool) +0:19 Constant: +0:19 7.000000 +0:19 7.000000 +0:19 7.000000 +0:19 'foo' (temp 3-component vector of float) +0:21 Branch: Return with expression +0:21 'input' (in 4-component vector of float) 0:? Linker Objects @@ -53,7 +93,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:23 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -93,13 +133,53 @@ gl_FragCoord origin is upper left 0:10 Construct vec3 (temp 3-component vector of float) 0:10 Construct float (temp float) 0:10 'f' (in float) -0:12 Branch: Return with expression -0:12 'input' (in 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 2-component vector of float) +0:11 'w' (temp 2-component vector of float) +0:11 Constant: +0:11 2.000000 +0:11 2.000000 +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'V' (temp float) +0:12 Constant: +0:12 1.000000 +0:13 Sequence +0:13 move second child to first child (temp 3-component vector of float) +0:13 'MyVal' (temp 3-component vector of float) +0:13 Construct vec3 (temp 3-component vector of float) +0:13 'V' (temp float) +0:16 Compare Greater Than (temp bool) +0:16 'foo' (temp 3-component vector of float) +0:16 Constant: +0:16 4.000000 +0:16 4.000000 +0:16 4.000000 +0:17 Compare Greater Than or Equal (temp bool) +0:17 'foo' (temp 3-component vector of float) +0:17 Constant: +0:17 5.000000 +0:17 5.000000 +0:17 5.000000 +0:18 Compare Less Than (temp bool) +0:18 Constant: +0:18 6.000000 +0:18 6.000000 +0:18 6.000000 +0:18 'foo' (temp 3-component vector of float) +0:19 Compare Less Than or Equal (temp bool) +0:19 Constant: +0:19 7.000000 +0:19 7.000000 +0:19 7.000000 +0:19 'foo' (temp 3-component vector of float) +0:21 Branch: Return with expression +0:21 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 58 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -113,6 +193,10 @@ gl_FragCoord origin is upper left Name 12 "f" Name 15 "v" Name 24 "u" + Name 31 "w" + Name 33 "V" + Name 34 "MyVal" + Name 37 "foo" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -128,6 +212,18 @@ gl_FragCoord origin is upper left 23: TypePointer Function 22(fvec3) 25: 22(fvec3) ConstantComposite 16 16 16 26: 22(fvec3) ConstantComposite 18 18 18 + 29: TypeVector 6(float) 2 + 30: TypePointer Function 29(fvec2) + 32: 29(fvec2) ConstantComposite 18 18 + 39: 6(float) Constant 1082130432 + 40: 22(fvec3) ConstantComposite 39 39 39 + 41: TypeBool + 44: 6(float) Constant 1084227584 + 45: 22(fvec3) ConstantComposite 44 44 44 + 47: 6(float) Constant 1086324736 + 48: 22(fvec3) ConstantComposite 47 47 47 + 51: 6(float) Constant 1088421888 + 52: 22(fvec3) ConstantComposite 51 51 51 4(main): 2 Function None 3 5: Label FunctionEnd @@ -137,6 +233,10 @@ gl_FragCoord origin is upper left 14: Label 15(v): 8(ptr) Variable Function 24(u): 23(ptr) Variable Function + 31(w): 30(ptr) Variable Function + 33(V): 9(ptr) Variable Function + 34(MyVal): 23(ptr) Variable Function + 37(foo): 23(ptr) Variable Function Store 15(v) 17 Store 15(v) 19 20: 6(float) Load 12(f) @@ -147,6 +247,19 @@ gl_FragCoord origin is upper left 27: 6(float) Load 12(f) 28: 22(fvec3) CompositeConstruct 27 27 27 Store 24(u) 28 - 29: 7(fvec4) Load 11(input) - ReturnValue 29 + Store 31(w) 32 + Store 33(V) 16 + 35: 6(float) Load 33(V) + 36: 22(fvec3) CompositeConstruct 35 35 35 + Store 34(MyVal) 36 + 38: 22(fvec3) Load 37(foo) + 42: 41(bool) FOrdGreaterThan 38 40 + 43: 22(fvec3) Load 37(foo) + 46: 41(bool) FOrdGreaterThanEqual 43 45 + 49: 22(fvec3) Load 37(foo) + 50: 41(bool) FOrdLessThan 48 49 + 53: 22(fvec3) Load 37(foo) + 54: 41(bool) FOrdLessThanEqual 52 53 + 55: 7(fvec4) Load 11(input) + ReturnValue 55 FunctionEnd diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag index 1e6dec65..3147b61a 100644 --- a/Test/hlsl.shapeConv.frag +++ b/Test/hlsl.shapeConv.frag @@ -8,6 +8,15 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 u = float(1); u = float(2.0); u = float(f); + float2 w = 2.0; + float V = 1; + float3 MyVal = V; + + float3 foo; + foo > 4.0; + foo >= 5.0; + 6.0 < foo; + 7.0 <= foo; return input; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 18057dcf..eca09e71 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1390" -#define GLSLANG_DATE "05-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1391" +#define GLSLANG_DATE "07-Aug-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index be828e9c..4d871edc 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -118,6 +118,10 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn return 0; } + // Convert the children's type shape to be compatible. + right = addShapeConversion(op, left->getType(), right); + left = addShapeConversion(op, right->getType(), left); + // // Need a new node holding things together. Make // one and promote it to the right type. @@ -694,6 +698,10 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, // some operations don't do this switch (op) { case EOpAssign: + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: break; default: return node; @@ -705,7 +713,6 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, return node; // The new node that handles the conversion - TIntermTyped* conversionNode = node; TOperator constructorOp = mapTypeToConstructorOp(type); // scalar -> smeared -> vector @@ -1624,11 +1631,11 @@ bool TIntermBinary::promote() case EOpGreaterThan: case EOpLessThanEqual: case EOpGreaterThanEqual: - // Relational comparisons need matching numeric types and will promote to scalar Boolean. - if (left->getBasicType() == EbtBool || left->getType().isVector() || left->getType().isMatrix()) + // Relational comparisons need numeric types and will promote to scalar Boolean. + if (left->getBasicType() == EbtBool) return false; - - // Fall through + setType(TType(EbtBool)); + break; case EOpEqual: case EOpNotEqual: diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index b117024a..d01804e1 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -761,13 +761,32 @@ void TParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredS } // Handle seeing a binary node with a math operation. +// Returns nullptr if not semantically allowed. TIntermTyped* TParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right) { rValueErrorCheck(loc, str, left->getAsTyped()); rValueErrorCheck(loc, str, right->getAsTyped()); - TIntermTyped* result = intermediate.addBinaryMath(op, left, right, loc); - if (! result) + bool allowed = true; + switch (op) { + // TODO: Bring more source language-specific checks up from intermediate.cpp + // to the specific parse helpers for that source language. + case EOpLessThan: + case EOpGreaterThan: + case EOpLessThanEqual: + case EOpGreaterThanEqual: + if (! left->isScalar() || ! right->isScalar()) + allowed = false; + break; + default: + break; + } + + TIntermTyped* result = nullptr; + if (allowed) + result = intermediate.addBinaryMath(op, left, right, loc); + + if (result == nullptr) binaryOpError(loc, str, left->getCompleteString(), right->getCompleteString()); return result; From 34177cd778b9a27606b4d92f139628118dbac4a3 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 8 Aug 2016 14:11:28 -0600 Subject: [PATCH 062/217] Tests: Test base case for fixing issue #443. --- Test/440.vert | 3 + Test/baseResults/440.vert.out | 186 ++++++++++++++++++---------------- glslang/Include/revision.h | 4 +- 3 files changed, 102 insertions(+), 91 deletions(-) diff --git a/Test/440.vert b/Test/440.vert index bfcdfd28..2e61f797 100644 --- a/Test/440.vert +++ b/Test/440.vert @@ -73,6 +73,9 @@ layout(location = 56, component = 1) out vec2 df2o; layout(location = 56, component = 3) out float sf2o; layout(location = 57, component = 2) out vec2 dv3o; layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component +layout(location=58) out flat dvec3 dv3o2; // uses part of location 59 +layout(location=59, component=2) out flat double dfo3; // okay, fits +layout(location=59, component=0) out flat double dfo4; // ERROR, overlaps the dvec3 in starting in 58 out bblck1 { vec4 bbv; diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index d4cbb0b5..3c0a1200 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -23,74 +23,76 @@ ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component ERROR: 0:67: 'component' : type overflows the available 4 components ERROR: 0:71: 'location' : overlapping use of location 55 ERROR: 0:75: 'location' : overlapping use of location 57 -ERROR: 0:92: 'xfb layout qualifier' : can only be used on an output -ERROR: 0:98: 'xfb_offset' : cannot declare a default, use a full declaration -ERROR: 0:108: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) -ERROR: 0:113: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) -ERROR: 0:113: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 -ERROR: 0:114: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2 -ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2 -ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 15 -ERROR: 0:123: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1 -ERROR: 0:125: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:126: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:130: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:77: 'location' : overlapping use of location 59 +ERROR: 0:78: 'location' : overlapping use of location 59 +ERROR: 0:95: 'xfb layout qualifier' : can only be used on an output +ERROR: 0:101: 'xfb_offset' : cannot declare a default, use a full declaration +ERROR: 0:111: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:116: 'xfb_buffer' : member cannot contradict block (or what block inherited from global) +ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3 +ERROR: 0:117: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2 +ERROR: 0:119: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2 +ERROR: 0:122: 'xfb_stride' : all stride settings must match for xfb buffer 15 +ERROR: 0:126: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1 ERROR: 0:128: 'xfb_stride' : all stride settings must match for xfb buffer 3 -ERROR: 0:149: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0 -ERROR: 0:154: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:155: 'xfb_offset' : must be a multiple of size of first component -ERROR: 0:156: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 +ERROR: 0:129: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:133: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:131: 'xfb_stride' : all stride settings must match for xfb buffer 3 +ERROR: 0:152: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0 +ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 ERROR: 0:158: 'xfb_offset' : must be a multiple of size of first component ERROR: 0:159: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 -ERROR: 0:163: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:161: 'xfb_offset' : must be a multiple of size of first component +ERROR: 0:162: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8 ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:166: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64 -ERROR: 0:168: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 -ERROR: 0:176: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:176: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:176: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters -ERROR: 0:184: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) -ERROR: 0:185: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) -ERROR: 0:186: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) -ERROR: 0:187: 'glBaseInstanceARB' : undeclared identifier -ERROR: 53 compilation errors. No code generated. +ERROR: 0:169: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:169: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64 +ERROR: 0:171: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4 +ERROR: 0:179: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:179: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:179: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters +ERROR: 0:187: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input) +ERROR: 0:188: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) +ERROR: 0:189: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) +ERROR: 0:190: 'glBaseInstanceARB' : undeclared identifier +ERROR: 55 compilation errors. No code generated. Shader version: 440 Requested GL_ARB_shader_draw_parameters in xfb mode ERROR: node is still EOpNull! -0:174 Function Definition: drawParamsBad( (global int) -0:174 Function Parameters: -0:176 Sequence -0:176 Branch: Return with expression -0:176 add (temp int) -0:176 add (temp int) -0:176 'gl_BaseVertexARB' (in int BaseVertex) -0:176 'gl_BaseInstanceARB' (in int BaseInstance) -0:176 'gl_DrawIDARB' (in int DrawId) -0:181 Function Definition: drawParams( (global int) -0:181 Function Parameters: -0:183 Sequence -0:183 Branch: Return with expression -0:183 add (temp int) -0:183 add (temp int) -0:183 'gl_BaseVertexARB' (in int BaseVertex) -0:183 'gl_BaseInstanceARB' (in int BaseInstance) -0:183 'gl_DrawIDARB' (in int DrawId) -0:184 move second child to first child (temp int) -0:184 'gl_BaseVertexARB' (in int BaseVertex) -0:184 Constant: -0:184 3 (const int) -0:185 move second child to first child (temp int) -0:185 'gl_BaseInstanceARB' (in int BaseInstance) -0:185 Constant: -0:185 3 (const int) -0:186 move second child to first child (temp int) -0:186 'gl_DrawIDARB' (in int DrawId) -0:186 Constant: -0:186 3 (const int) -0:187 'glBaseInstanceARB' (temp float) +0:177 Function Definition: drawParamsBad( (global int) +0:177 Function Parameters: +0:179 Sequence +0:179 Branch: Return with expression +0:179 add (temp int) +0:179 add (temp int) +0:179 'gl_BaseVertexARB' (in int BaseVertex) +0:179 'gl_BaseInstanceARB' (in int BaseInstance) +0:179 'gl_DrawIDARB' (in int DrawId) +0:184 Function Definition: drawParams( (global int) +0:184 Function Parameters: +0:186 Sequence +0:186 Branch: Return with expression +0:186 add (temp int) +0:186 add (temp int) +0:186 'gl_BaseVertexARB' (in int BaseVertex) +0:186 'gl_BaseInstanceARB' (in int BaseInstance) +0:186 'gl_DrawIDARB' (in int DrawId) +0:187 move second child to first child (temp int) +0:187 'gl_BaseVertexARB' (in int BaseVertex) +0:187 Constant: +0:187 3 (const int) +0:188 move second child to first child (temp int) +0:188 'gl_BaseInstanceARB' (in int BaseInstance) +0:188 Constant: +0:188 3 (const int) +0:189 move second child to first child (temp int) +0:189 'gl_DrawIDARB' (in int DrawId) +0:189 Constant: +0:189 3 (const int) +0:190 'glBaseInstanceARB' (temp float) 0:? Linker Objects 0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) 0:? 'b' (layout(location=2 component=1 ) in float) @@ -133,6 +135,9 @@ ERROR: node is still EOpNull! 0:? 'sf2o' (layout(location=56 component=3 ) smooth out float) 0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float) 0:? 'sf4o' (layout(location=57 component=3 ) smooth out float) +0:? 'dv3o2' (layout(location=58 ) flat out 3-component vector of double) +0:? 'dfo3' (layout(location=59 component=2 ) flat out double) +0:? 'dfo4' (layout(location=59 component=0 ) flat out double) 0:? 'bbinst1' (out block{out 4-component vector of float bbv}) 0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv}) 0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv}) @@ -170,37 +175,37 @@ Shader version: 440 Requested GL_ARB_shader_draw_parameters in xfb mode ERROR: node is still EOpNull! -0:174 Function Definition: drawParamsBad( (global int) -0:174 Function Parameters: -0:176 Sequence -0:176 Branch: Return with expression -0:176 add (temp int) -0:176 add (temp int) -0:176 'gl_BaseVertexARB' (in int BaseVertex) -0:176 'gl_BaseInstanceARB' (in int BaseInstance) -0:176 'gl_DrawIDARB' (in int DrawId) -0:181 Function Definition: drawParams( (global int) -0:181 Function Parameters: -0:183 Sequence -0:183 Branch: Return with expression -0:183 add (temp int) -0:183 add (temp int) -0:183 'gl_BaseVertexARB' (in int BaseVertex) -0:183 'gl_BaseInstanceARB' (in int BaseInstance) -0:183 'gl_DrawIDARB' (in int DrawId) -0:184 move second child to first child (temp int) -0:184 'gl_BaseVertexARB' (in int BaseVertex) -0:184 Constant: -0:184 3 (const int) -0:185 move second child to first child (temp int) -0:185 'gl_BaseInstanceARB' (in int BaseInstance) -0:185 Constant: -0:185 3 (const int) -0:186 move second child to first child (temp int) -0:186 'gl_DrawIDARB' (in int DrawId) -0:186 Constant: -0:186 3 (const int) -0:187 'glBaseInstanceARB' (temp float) +0:177 Function Definition: drawParamsBad( (global int) +0:177 Function Parameters: +0:179 Sequence +0:179 Branch: Return with expression +0:179 add (temp int) +0:179 add (temp int) +0:179 'gl_BaseVertexARB' (in int BaseVertex) +0:179 'gl_BaseInstanceARB' (in int BaseInstance) +0:179 'gl_DrawIDARB' (in int DrawId) +0:184 Function Definition: drawParams( (global int) +0:184 Function Parameters: +0:186 Sequence +0:186 Branch: Return with expression +0:186 add (temp int) +0:186 add (temp int) +0:186 'gl_BaseVertexARB' (in int BaseVertex) +0:186 'gl_BaseInstanceARB' (in int BaseInstance) +0:186 'gl_DrawIDARB' (in int DrawId) +0:187 move second child to first child (temp int) +0:187 'gl_BaseVertexARB' (in int BaseVertex) +0:187 Constant: +0:187 3 (const int) +0:188 move second child to first child (temp int) +0:188 'gl_BaseInstanceARB' (in int BaseInstance) +0:188 Constant: +0:188 3 (const int) +0:189 move second child to first child (temp int) +0:189 'gl_DrawIDARB' (in int DrawId) +0:189 Constant: +0:189 3 (const int) +0:190 'glBaseInstanceARB' (temp float) 0:? Linker Objects 0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) 0:? 'b' (layout(location=2 component=1 ) in float) @@ -243,6 +248,9 @@ ERROR: node is still EOpNull! 0:? 'sf2o' (layout(location=56 component=3 ) smooth out float) 0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float) 0:? 'sf4o' (layout(location=57 component=3 ) smooth out float) +0:? 'dv3o2' (layout(location=58 ) flat out 3-component vector of double) +0:? 'dfo3' (layout(location=59 component=2 ) flat out double) +0:? 'dfo4' (layout(location=59 component=0 ) flat out double) 0:? 'bbinst1' (out block{out 4-component vector of float bbv}) 0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv}) 0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv}) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index eca09e71..be96c1c1 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1391" -#define GLSLANG_DATE "07-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1393" +#define GLSLANG_DATE "08-Aug-2016" From 426542ba57163afaacda4a11559c0c8521930d89 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 8 Aug 2016 15:31:36 -0600 Subject: [PATCH 063/217] Front-end: Fix issue #443: dvec3 uses only 2 components of second location. --- Test/baseResults/440.vert.out | 3 +- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/linkValidate.cpp | 104 ++++++++++++++---- .../MachineIndependent/localintermediate.h | 1 + 4 files changed, 83 insertions(+), 27 deletions(-) diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index 3c0a1200..2e1f5fe6 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -23,7 +23,6 @@ ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component ERROR: 0:67: 'component' : type overflows the available 4 components ERROR: 0:71: 'location' : overlapping use of location 55 ERROR: 0:75: 'location' : overlapping use of location 57 -ERROR: 0:77: 'location' : overlapping use of location 59 ERROR: 0:78: 'location' : overlapping use of location 59 ERROR: 0:95: 'xfb layout qualifier' : can only be used on an output ERROR: 0:101: 'xfb_offset' : cannot declare a default, use a full declaration @@ -55,7 +54,7 @@ ERROR: 0:187: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shad ERROR: 0:188: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input) ERROR: 0:189: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input) ERROR: 0:190: 'glBaseInstanceARB' : undeclared identifier -ERROR: 55 compilation errors. No code generated. +ERROR: 54 compilation errors. No code generated. Shader version: 440 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index be96c1c1..a3591958 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1393" +#define GLSLANG_REVISION "SPIRV99.1394" #define GLSLANG_DATE "08-Aug-2016" diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 0bc1d918..dbd2f927 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -664,37 +664,93 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ size = computeTypeLocationSize(type); } - // locations... - TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation + size - 1); + // Locations, and components within locations. + // + // Almost always, dealing with components means a single location is involved. + // The exception is a dvec3. From the spec: + // + // "A dvec3 will consume all four components of the first location and components 0 and 1 of + // the second location. This leaves components 2 and 3 available for other component-qualified + // declarations." + // + // That means, without ever mentioning a component, a component range + // for a different location gets specified, if it's not a vertex shader input. (!) + // (A vertex shader input will show using only one location, even for a dvec3/4.) + // + // So, for the case of dvec3, we need two independent ioRanges. - // components in this location slot... - TRange componentRange(0, 3); - if (qualifier.hasComponent() || type.getVectorSize() > 0) { - int consumedComponents = type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1); - if (qualifier.hasComponent()) - componentRange.start = qualifier.layoutComponent; - componentRange.last = componentRange.start + consumedComponents - 1; + int collision = -1; // no collision + if (size == 2 && type.getBasicType() == EbtDouble && type.getVectorSize() == 3 && + (qualifier.isPipeInput() || qualifier.isPipeOutput())) { + // Dealing with dvec3 in/out split across two locations. + // Need two io-ranges. + // The case where the dvec3 doesn't start at component 0 was previously caught as overflow. + + // First range: + TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation); + TRange componentRange(0, 3); + TIoRange range(locationRange, componentRange, type.getBasicType(), 0); + + // check for collisions + collision = checkLocationRange(set, range, type, typeCollision); + if (collision < 0) { + usedIo[set].push_back(range); + + // Second range: + TRange locationRange2(qualifier.layoutLocation + 1, qualifier.layoutLocation + 1); + TRange componentRange2(0, 1); + TIoRange range2(locationRange2, componentRange2, type.getBasicType(), 0); + + // check for collisions + collision = checkLocationRange(set, range2, type, typeCollision); + if (collision < 0) + usedIo[set].push_back(range2); + } + } else { + // Not a dvec3 in/out split across two locations, generic path. + // Need a single IO-range block. + + TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation + size - 1); + TRange componentRange(0, 3); + if (qualifier.hasComponent() || type.getVectorSize() > 0) { + int consumedComponents = type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1); + if (qualifier.hasComponent()) + componentRange.start = qualifier.layoutComponent; + componentRange.last = componentRange.start + consumedComponents - 1; + } + + // combine location and component ranges + TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); + + // check for collisions, except for vertex inputs on desktop + if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput())) + collision = checkLocationRange(set, range, type, typeCollision); + + if (collision < 0) + usedIo[set].push_back(range); } - // both... - TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0); + return collision; +} - // check for collisions, except for vertex inputs on desktop - if (! (profile != EEsProfile && language == EShLangVertex && qualifier.isPipeInput())) { - for (size_t r = 0; r < usedIo[set].size(); ++r) { - if (range.overlap(usedIo[set][r])) { - // there is a collision; pick one - return std::max(locationRange.start, usedIo[set][r].location.start); - } else if (locationRange.overlap(usedIo[set][r].location) && type.getBasicType() != usedIo[set][r].basicType) { - // aliased-type mismatch - typeCollision = true; - return std::max(locationRange.start, usedIo[set][r].location.start); - } +// Compare a new (the passed in) 'range' against the existing set, and see +// if there are any collisions. +// +// Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value. +// +int TIntermediate::checkLocationRange(int set, const TIoRange& range, const TType& type, bool& typeCollision) +{ + for (size_t r = 0; r < usedIo[set].size(); ++r) { + if (range.overlap(usedIo[set][r])) { + // there is a collision; pick one + return std::max(range.location.start, usedIo[set][r].location.start); + } else if (range.location.overlap(usedIo[set][r].location) && type.getBasicType() != usedIo[set][r].basicType) { + // aliased-type mismatch + typeCollision = true; + return std::max(range.location.start, usedIo[set][r].location.start); } } - usedIo[set].push_back(range); - return -1; // no collision } diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 7bd457d1..0b07a29a 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -331,6 +331,7 @@ public: bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); } int addUsedLocation(const TQualifier&, const TType&, bool& typeCollision); + int checkLocationRange(int set, const TIoRange& range, const TType&, bool& typeCollision); int addUsedOffsets(int binding, int offset, int numOffsets); bool addUsedConstantId(int id); int computeTypeLocationSize(const TType&) const; From 45d49bcd51046ecf33711b2bc6822634d68b2da6 Mon Sep 17 00:00:00 2001 From: dankbaker Date: Mon, 8 Aug 2016 21:43:07 -0400 Subject: [PATCH 064/217] Allowing explicit specification of shader compiltion type via -T option, rather then looking at file extension. For HLSL files, this is nice because .hlsl extension is natively udnerstood by visual studio, likely to be used with the -e option. --- StandAlone/StandAlone.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index c014be20..151141f0 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -155,6 +155,7 @@ int Options = 0; const char* ExecutableName = nullptr; const char* binaryFileName = nullptr; const char* entryPointName = nullptr; +const char* shaderTargetName = nullptr; // // Create the default name for saving a binary if -o is not provided. @@ -236,6 +237,15 @@ void ProcessArguments(int argc, char* argv[]) Options |= EOptionVulkanRules; Options |= EOptionLinkProgram; break; + case 'T': + shaderTargetName = argv[1]; + if (argc > 0) { + argc--; + argv++; + } + else + Error("no specified for -T"); + break; case 'G': Options |= EOptionSpv; Options |= EOptionLinkProgram; @@ -260,6 +270,7 @@ void ProcessArguments(int argc, char* argv[]) case 'e': // HLSL todo: entry point handle needs much more sophistication. // This is okay for one compilation unit with one entry point. + // dankbaker - not sure it needs to be, fxc has no more sophistication then this entryPointName = argv[1]; if (argc > 0) { argc--; @@ -685,6 +696,9 @@ EShLanguage FindLanguage(const std::string& name) } std::string suffix = name.substr(ext + 1, std::string::npos); + if (shaderTargetName) + suffix = shaderTargetName; + if (suffix == "vert") return EShLangVertex; else if (suffix == "tesc") @@ -778,6 +792,8 @@ void usage() " -H print human readable form of SPIR-V; turns on -V\n" " -E print pre-processed GLSL; cannot be used with -l;\n" " errors will appear on stderr.\n" + " -T uses explicit target specified, rather then the file extension.\n" + " valid choices are vert,tesc, tese,geom, rag,comp\n" " -c configuration dump;\n" " creates the default configuration file (redirect to a .conf file)\n" " -C cascading errors; risks crashes from accumulation of error recoveries\n" From c4a1307403723644d06bef2da267f30d8c965a02 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 9 Aug 2016 11:28:03 -0600 Subject: [PATCH 065/217] HLSL: add implicit promotions for assignments and function returns. --- Test/baseResults/hlsl.promotions.frag.out | 1688 +++++++++++++++++ Test/hlsl.promotions.frag | 201 ++ glslang/MachineIndependent/Intermediate.cpp | 30 +- .../MachineIndependent/localintermediate.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 2 +- hlsl/hlslParseHelper.cpp | 19 + hlsl/hlslParseHelper.h | 1 + 8 files changed, 1940 insertions(+), 4 deletions(-) create mode 100644 Test/baseResults/hlsl.promotions.frag.out create mode 100644 Test/hlsl.promotions.frag diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out new file mode 100644 index 00000000..c92b61f3 --- /dev/null +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -0,0 +1,1688 @@ +hlsl.promotions.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Parameters: +0:19 'x' (in 3-component vector of float) +0:21 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Parameters: +0:20 'x' (in 3-component vector of int) +0:22 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Parameters: +0:21 'x' (in 3-component vector of uint) +0:23 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Parameters: +0:22 'x' (in 3-component vector of bool) +0:26 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Parameters: +0:23 'x' (in 3-component vector of double) +0:27 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Parameters: +0:26 'p' (out 3-component vector of float) +0:? Sequence +0:26 move second child to first child (temp 3-component vector of float) +0:26 'p' (out 3-component vector of float) +0:26 Convert int to float (temp 3-component vector of float) +0:26 'i3' (uniform 3-component vector of int) +0:26 Branch: Return with expression +0:26 Convert int to float (temp 3-component vector of float) +0:26 'i3' (uniform 3-component vector of int) +0:28 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:27 Function Parameters: +0:27 'p' (out 3-component vector of float) +0:? Sequence +0:27 move second child to first child (temp 3-component vector of float) +0:27 'p' (out 3-component vector of float) +0:27 Convert uint to float (temp 3-component vector of float) +0:27 'u3' (uniform 3-component vector of uint) +0:27 Branch: Return with expression +0:27 Convert uint to float (temp 3-component vector of float) +0:27 'u3' (uniform 3-component vector of uint) +0:29 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:28 Function Parameters: +0:28 'p' (out 3-component vector of float) +0:? Sequence +0:28 move second child to first child (temp 3-component vector of float) +0:28 'p' (out 3-component vector of float) +0:28 Convert bool to float (temp 3-component vector of float) +0:28 'b3' (uniform 3-component vector of bool) +0:28 Branch: Return with expression +0:28 Convert bool to float (temp 3-component vector of float) +0:28 'b3' (uniform 3-component vector of bool) +0:31 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:29 Function Parameters: +0:29 'p' (out 3-component vector of float) +0:? Sequence +0:29 move second child to first child (temp 3-component vector of float) +0:29 'p' (out 3-component vector of float) +0:29 Convert double to float (temp 3-component vector of float) +0:29 'd3' (uniform 3-component vector of double) +0:29 Branch: Return with expression +0:29 Convert double to float (temp 3-component vector of float) +0:29 'd3' (uniform 3-component vector of double) +0:32 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:31 Function Parameters: +0:31 'p' (out 3-component vector of int) +0:? Sequence +0:31 move second child to first child (temp 3-component vector of int) +0:31 'p' (out 3-component vector of int) +0:31 Convert uint to int (temp 3-component vector of int) +0:31 'u3' (uniform 3-component vector of uint) +0:31 Branch: Return with expression +0:31 Convert uint to int (temp 3-component vector of int) +0:31 'u3' (uniform 3-component vector of uint) +0:33 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:32 Function Parameters: +0:32 'p' (out 3-component vector of int) +0:? Sequence +0:32 move second child to first child (temp 3-component vector of int) +0:32 'p' (out 3-component vector of int) +0:32 Convert bool to int (temp 3-component vector of int) +0:32 'b3' (uniform 3-component vector of bool) +0:32 Branch: Return with expression +0:32 Convert bool to int (temp 3-component vector of int) +0:32 'b3' (uniform 3-component vector of bool) +0:34 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:33 Function Parameters: +0:33 'p' (out 3-component vector of int) +0:? Sequence +0:33 move second child to first child (temp 3-component vector of int) +0:33 'p' (out 3-component vector of int) +0:33 Convert float to int (temp 3-component vector of int) +0:33 'f3' (uniform 3-component vector of float) +0:33 Branch: Return with expression +0:33 Convert float to int (temp 3-component vector of int) +0:33 'f3' (uniform 3-component vector of float) +0:36 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:34 Function Parameters: +0:34 'p' (out 3-component vector of int) +0:? Sequence +0:34 move second child to first child (temp 3-component vector of int) +0:34 'p' (out 3-component vector of int) +0:34 Convert double to int (temp 3-component vector of int) +0:34 'd3' (uniform 3-component vector of double) +0:34 Branch: Return with expression +0:34 Convert double to int (temp 3-component vector of int) +0:34 'd3' (uniform 3-component vector of double) +0:37 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' (out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child (temp 3-component vector of uint) +0:36 'p' (out 3-component vector of uint) +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 'i3' (uniform 3-component vector of int) +0:36 Branch: Return with expression +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 'i3' (uniform 3-component vector of int) +0:38 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' (out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child (temp 3-component vector of uint) +0:37 'p' (out 3-component vector of uint) +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 'f3' (uniform 3-component vector of float) +0:37 Branch: Return with expression +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 'f3' (uniform 3-component vector of float) +0:39 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' (out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child (temp 3-component vector of uint) +0:38 'p' (out 3-component vector of uint) +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 'b3' (uniform 3-component vector of bool) +0:38 Branch: Return with expression +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 'b3' (uniform 3-component vector of bool) +0:41 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' (out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child (temp 3-component vector of uint) +0:39 'p' (out 3-component vector of uint) +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 'd3' (uniform 3-component vector of double) +0:39 Branch: Return with expression +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 'd3' (uniform 3-component vector of double) +0:42 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' (out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child (temp 3-component vector of bool) +0:41 'p' (out 3-component vector of bool) +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 'i3' (uniform 3-component vector of int) +0:41 Branch: Return with expression +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 'i3' (uniform 3-component vector of int) +0:43 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' (out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child (temp 3-component vector of bool) +0:42 'p' (out 3-component vector of bool) +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 'u3' (uniform 3-component vector of uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 'u3' (uniform 3-component vector of uint) +0:44 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' (out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child (temp 3-component vector of bool) +0:43 'p' (out 3-component vector of bool) +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 'f3' (uniform 3-component vector of float) +0:43 Branch: Return with expression +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 'f3' (uniform 3-component vector of float) +0:46 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' (out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child (temp 3-component vector of bool) +0:44 'p' (out 3-component vector of bool) +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 'd3' (uniform 3-component vector of double) +0:44 Branch: Return with expression +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 'd3' (uniform 3-component vector of double) +0:47 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:46 Function Parameters: +0:46 'p' (out 3-component vector of double) +0:? Sequence +0:46 move second child to first child (temp 3-component vector of double) +0:46 'p' (out 3-component vector of double) +0:46 Convert int to double (temp 3-component vector of double) +0:46 'i3' (uniform 3-component vector of int) +0:46 Branch: Return with expression +0:46 Convert int to double (temp 3-component vector of double) +0:46 'i3' (uniform 3-component vector of int) +0:48 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:47 Function Parameters: +0:47 'p' (out 3-component vector of double) +0:? Sequence +0:47 move second child to first child (temp 3-component vector of double) +0:47 'p' (out 3-component vector of double) +0:47 Convert uint to double (temp 3-component vector of double) +0:47 'u3' (uniform 3-component vector of uint) +0:47 Branch: Return with expression +0:47 Convert uint to double (temp 3-component vector of double) +0:47 'u3' (uniform 3-component vector of uint) +0:49 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:48 Function Parameters: +0:48 'p' (out 3-component vector of double) +0:? Sequence +0:48 move second child to first child (temp 3-component vector of double) +0:48 'p' (out 3-component vector of double) +0:48 Convert bool to double (temp 3-component vector of double) +0:48 'b3' (uniform 3-component vector of bool) +0:48 Branch: Return with expression +0:48 Convert bool to double (temp 3-component vector of double) +0:48 'b3' (uniform 3-component vector of bool) +0:51 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:49 Function Parameters: +0:49 'p' (out 3-component vector of double) +0:? Sequence +0:49 move second child to first child (temp 3-component vector of double) +0:49 'p' (out 3-component vector of double) +0:49 Convert float to double (temp 3-component vector of double) +0:49 'f3' (uniform 3-component vector of float) +0:49 Branch: Return with expression +0:49 Convert float to double (temp 3-component vector of double) +0:49 'f3' (uniform 3-component vector of float) +0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child (temp 3-component vector of float) +0:54 'r00' (temp 3-component vector of float) +0:54 Convert int to float (temp 3-component vector of float) +0:54 'i3' (uniform 3-component vector of int) +0:55 Sequence +0:55 move second child to first child (temp 3-component vector of float) +0:55 'r01' (temp 3-component vector of float) +0:55 Convert bool to float (temp 3-component vector of float) +0:55 'b3' (uniform 3-component vector of bool) +0:56 Sequence +0:56 move second child to first child (temp 3-component vector of float) +0:56 'r02' (temp 3-component vector of float) +0:56 Convert uint to float (temp 3-component vector of float) +0:56 'u3' (uniform 3-component vector of uint) +0:57 Sequence +0:57 move second child to first child (temp 3-component vector of float) +0:57 'r03' (temp 3-component vector of float) +0:57 Convert double to float (temp 3-component vector of float) +0:57 'd3' (uniform 3-component vector of double) +0:59 Sequence +0:59 move second child to first child (temp 3-component vector of int) +0:59 'r10' (temp 3-component vector of int) +0:59 Convert bool to int (temp 3-component vector of int) +0:59 'b3' (uniform 3-component vector of bool) +0:60 Sequence +0:60 move second child to first child (temp 3-component vector of int) +0:60 'r11' (temp 3-component vector of int) +0:60 Convert uint to int (temp 3-component vector of int) +0:60 'u3' (uniform 3-component vector of uint) +0:61 Sequence +0:61 move second child to first child (temp 3-component vector of int) +0:61 'r12' (temp 3-component vector of int) +0:61 Convert float to int (temp 3-component vector of int) +0:61 'f3' (uniform 3-component vector of float) +0:62 Sequence +0:62 move second child to first child (temp 3-component vector of int) +0:62 'r13' (temp 3-component vector of int) +0:62 Convert double to int (temp 3-component vector of int) +0:62 'd3' (uniform 3-component vector of double) +0:64 Sequence +0:64 move second child to first child (temp 3-component vector of uint) +0:64 'r20' (temp 3-component vector of uint) +0:64 Convert bool to uint (temp 3-component vector of uint) +0:64 'b3' (uniform 3-component vector of bool) +0:65 Sequence +0:65 move second child to first child (temp 3-component vector of uint) +0:65 'r21' (temp 3-component vector of uint) +0:65 Convert int to uint (temp 3-component vector of uint) +0:65 'i3' (uniform 3-component vector of int) +0:66 Sequence +0:66 move second child to first child (temp 3-component vector of uint) +0:66 'r22' (temp 3-component vector of uint) +0:66 Convert float to uint (temp 3-component vector of uint) +0:66 'f3' (uniform 3-component vector of float) +0:67 Sequence +0:67 move second child to first child (temp 3-component vector of uint) +0:67 'r23' (temp 3-component vector of uint) +0:67 Convert double to uint (temp 3-component vector of uint) +0:67 'd3' (uniform 3-component vector of double) +0:69 Sequence +0:69 move second child to first child (temp 3-component vector of bool) +0:69 'r30' (temp 3-component vector of bool) +0:69 Convert int to bool (temp 3-component vector of bool) +0:69 'i3' (uniform 3-component vector of int) +0:70 Sequence +0:70 move second child to first child (temp 3-component vector of bool) +0:70 'r31' (temp 3-component vector of bool) +0:70 Convert uint to bool (temp 3-component vector of bool) +0:70 'u3' (uniform 3-component vector of uint) +0:71 Sequence +0:71 move second child to first child (temp 3-component vector of bool) +0:71 'r32' (temp 3-component vector of bool) +0:71 Convert float to bool (temp 3-component vector of bool) +0:71 'f3' (uniform 3-component vector of float) +0:72 Sequence +0:72 move second child to first child (temp 3-component vector of bool) +0:72 'r33' (temp 3-component vector of bool) +0:72 Convert double to bool (temp 3-component vector of bool) +0:72 'd3' (uniform 3-component vector of double) +0:74 Sequence +0:74 move second child to first child (temp 3-component vector of double) +0:74 'r40' (temp 3-component vector of double) +0:74 Convert int to double (temp 3-component vector of double) +0:74 'i3' (uniform 3-component vector of int) +0:75 Sequence +0:75 move second child to first child (temp 3-component vector of double) +0:75 'r41' (temp 3-component vector of double) +0:75 Convert uint to double (temp 3-component vector of double) +0:75 'u3' (uniform 3-component vector of uint) +0:76 Sequence +0:76 move second child to first child (temp 3-component vector of double) +0:76 'r42' (temp 3-component vector of double) +0:76 Convert float to double (temp 3-component vector of double) +0:76 'f3' (uniform 3-component vector of float) +0:77 Sequence +0:77 move second child to first child (temp 3-component vector of double) +0:77 'r43' (temp 3-component vector of double) +0:77 Convert bool to double (temp 3-component vector of double) +0:77 'b3' (uniform 3-component vector of bool) +0:80 multiply second child into first child (temp 3-component vector of float) +0:80 'r00' (temp 3-component vector of float) +0:80 Convert int to float (temp 3-component vector of float) +0:80 'i3' (uniform 3-component vector of int) +0:81 multiply second child into first child (temp 3-component vector of float) +0:81 'r01' (temp 3-component vector of float) +0:81 Convert bool to float (temp 3-component vector of float) +0:81 'b3' (uniform 3-component vector of bool) +0:82 multiply second child into first child (temp 3-component vector of float) +0:82 'r02' (temp 3-component vector of float) +0:82 Convert uint to float (temp 3-component vector of float) +0:82 'u3' (uniform 3-component vector of uint) +0:83 multiply second child into first child (temp 3-component vector of float) +0:83 'r03' (temp 3-component vector of float) +0:83 Convert double to float (temp 3-component vector of float) +0:83 'd3' (uniform 3-component vector of double) +0:85 multiply second child into first child (temp 3-component vector of int) +0:85 'r10' (temp 3-component vector of int) +0:85 Convert bool to int (temp 3-component vector of int) +0:85 'b3' (uniform 3-component vector of bool) +0:86 multiply second child into first child (temp 3-component vector of int) +0:86 'r11' (temp 3-component vector of int) +0:86 Convert uint to int (temp 3-component vector of int) +0:86 'u3' (uniform 3-component vector of uint) +0:87 multiply second child into first child (temp 3-component vector of int) +0:87 'r12' (temp 3-component vector of int) +0:87 Convert float to int (temp 3-component vector of int) +0:87 'f3' (uniform 3-component vector of float) +0:88 multiply second child into first child (temp 3-component vector of int) +0:88 'r13' (temp 3-component vector of int) +0:88 Convert double to int (temp 3-component vector of int) +0:88 'd3' (uniform 3-component vector of double) +0:90 multiply second child into first child (temp 3-component vector of uint) +0:90 'r20' (temp 3-component vector of uint) +0:90 Convert bool to uint (temp 3-component vector of uint) +0:90 'b3' (uniform 3-component vector of bool) +0:91 multiply second child into first child (temp 3-component vector of uint) +0:91 'r21' (temp 3-component vector of uint) +0:91 Convert int to uint (temp 3-component vector of uint) +0:91 'i3' (uniform 3-component vector of int) +0:92 multiply second child into first child (temp 3-component vector of uint) +0:92 'r22' (temp 3-component vector of uint) +0:92 Convert float to uint (temp 3-component vector of uint) +0:92 'f3' (uniform 3-component vector of float) +0:93 multiply second child into first child (temp 3-component vector of uint) +0:93 'r23' (temp 3-component vector of uint) +0:93 Convert double to uint (temp 3-component vector of uint) +0:93 'd3' (uniform 3-component vector of double) +0:97 multiply second child into first child (temp 3-component vector of double) +0:97 'r40' (temp 3-component vector of double) +0:97 Convert int to double (temp 3-component vector of double) +0:97 'i3' (uniform 3-component vector of int) +0:98 multiply second child into first child (temp 3-component vector of double) +0:98 'r41' (temp 3-component vector of double) +0:98 Convert uint to double (temp 3-component vector of double) +0:98 'u3' (uniform 3-component vector of uint) +0:99 multiply second child into first child (temp 3-component vector of double) +0:99 'r42' (temp 3-component vector of double) +0:99 Convert float to double (temp 3-component vector of double) +0:99 'f3' (uniform 3-component vector of float) +0:100 multiply second child into first child (temp 3-component vector of double) +0:100 'r43' (temp 3-component vector of double) +0:100 Convert bool to double (temp 3-component vector of double) +0:100 'b3' (uniform 3-component vector of bool) +0:103 vector scale second child into first child (temp 3-component vector of float) +0:103 'r00' (temp 3-component vector of float) +0:103 Convert int to float (temp float) +0:103 'is' (uniform int) +0:104 vector scale second child into first child (temp 3-component vector of float) +0:104 'r01' (temp 3-component vector of float) +0:104 Convert bool to float (temp float) +0:104 'bs' (uniform bool) +0:105 vector scale second child into first child (temp 3-component vector of float) +0:105 'r02' (temp 3-component vector of float) +0:105 Convert uint to float (temp float) +0:105 'us' (uniform uint) +0:106 vector scale second child into first child (temp 3-component vector of float) +0:106 'r03' (temp 3-component vector of float) +0:106 Convert double to float (temp float) +0:106 'ds' (uniform double) +0:108 vector scale second child into first child (temp 3-component vector of int) +0:108 'r10' (temp 3-component vector of int) +0:108 Convert bool to int (temp int) +0:108 'bs' (uniform bool) +0:109 vector scale second child into first child (temp 3-component vector of int) +0:109 'r11' (temp 3-component vector of int) +0:109 Convert uint to int (temp int) +0:109 'us' (uniform uint) +0:110 vector scale second child into first child (temp 3-component vector of int) +0:110 'r12' (temp 3-component vector of int) +0:110 Convert float to int (temp int) +0:110 'fs' (uniform float) +0:111 vector scale second child into first child (temp 3-component vector of int) +0:111 'r13' (temp 3-component vector of int) +0:111 Convert double to int (temp int) +0:111 'ds' (uniform double) +0:113 vector scale second child into first child (temp 3-component vector of uint) +0:113 'r20' (temp 3-component vector of uint) +0:113 Convert bool to uint (temp uint) +0:113 'bs' (uniform bool) +0:114 vector scale second child into first child (temp 3-component vector of uint) +0:114 'r21' (temp 3-component vector of uint) +0:114 Convert int to uint (temp uint) +0:114 'is' (uniform int) +0:115 vector scale second child into first child (temp 3-component vector of uint) +0:115 'r22' (temp 3-component vector of uint) +0:115 Convert float to uint (temp uint) +0:115 'fs' (uniform float) +0:116 vector scale second child into first child (temp 3-component vector of uint) +0:116 'r23' (temp 3-component vector of uint) +0:116 Convert double to uint (temp uint) +0:116 'ds' (uniform double) +0:120 vector scale second child into first child (temp 3-component vector of double) +0:120 'r40' (temp 3-component vector of double) +0:120 Convert int to double (temp double) +0:120 'is' (uniform int) +0:121 vector scale second child into first child (temp 3-component vector of double) +0:121 'r41' (temp 3-component vector of double) +0:121 Convert uint to double (temp double) +0:121 'us' (uniform uint) +0:122 vector scale second child into first child (temp 3-component vector of double) +0:122 'r42' (temp 3-component vector of double) +0:122 Convert float to double (temp double) +0:122 'fs' (uniform float) +0:123 vector scale second child into first child (temp 3-component vector of double) +0:123 'r43' (temp 3-component vector of double) +0:123 Convert bool to double (temp double) +0:123 'bs' (uniform bool) +0:193 Sequence +0:193 move second child to first child (temp int) +0:193 'c1' (temp int) +0:193 Constant: +0:193 3 (const int) +0:194 Sequence +0:194 move second child to first child (temp int) +0:194 'c2' (temp int) +0:194 Constant: +0:194 3 (const int) +0:196 Sequence +0:196 move second child to first child (temp 4-component vector of float) +0:196 'outval' (temp 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:196 Constant: +0:196 3.600000 +0:196 Constant: +0:196 3.600000 +0:196 Convert int to float (temp float) +0:196 'c1' (temp int) +0:196 Convert int to float (temp float) +0:196 'c2' (temp int) +0:199 move second child to first child (temp 4-component vector of float) +0:199 Color: direct index for structure (temp 4-component vector of float) +0:199 'psout' (temp structure{temp 4-component vector of float Color}) +0:199 Constant: +0:199 0 (const int) +0:199 'outval' (temp 4-component vector of float) +0:200 Branch: Return with expression +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Linker Objects +0:? 'i3' (uniform 3-component vector of int) +0:? 'b3' (uniform 3-component vector of bool) +0:? 'f3' (uniform 3-component vector of float) +0:? 'u3' (uniform 3-component vector of uint) +0:? 'd3' (uniform 3-component vector of double) +0:? 'is' (uniform int) +0:? 'bs' (uniform bool) +0:? 'fs' (uniform float) +0:? 'us' (uniform uint) +0:? 'ds' (uniform double) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Parameters: +0:19 'x' (in 3-component vector of float) +0:21 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Parameters: +0:20 'x' (in 3-component vector of int) +0:22 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Parameters: +0:21 'x' (in 3-component vector of uint) +0:23 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Parameters: +0:22 'x' (in 3-component vector of bool) +0:26 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Parameters: +0:23 'x' (in 3-component vector of double) +0:27 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Parameters: +0:26 'p' (out 3-component vector of float) +0:? Sequence +0:26 move second child to first child (temp 3-component vector of float) +0:26 'p' (out 3-component vector of float) +0:26 Convert int to float (temp 3-component vector of float) +0:26 'i3' (uniform 3-component vector of int) +0:26 Branch: Return with expression +0:26 Convert int to float (temp 3-component vector of float) +0:26 'i3' (uniform 3-component vector of int) +0:28 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:27 Function Parameters: +0:27 'p' (out 3-component vector of float) +0:? Sequence +0:27 move second child to first child (temp 3-component vector of float) +0:27 'p' (out 3-component vector of float) +0:27 Convert uint to float (temp 3-component vector of float) +0:27 'u3' (uniform 3-component vector of uint) +0:27 Branch: Return with expression +0:27 Convert uint to float (temp 3-component vector of float) +0:27 'u3' (uniform 3-component vector of uint) +0:29 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:28 Function Parameters: +0:28 'p' (out 3-component vector of float) +0:? Sequence +0:28 move second child to first child (temp 3-component vector of float) +0:28 'p' (out 3-component vector of float) +0:28 Convert bool to float (temp 3-component vector of float) +0:28 'b3' (uniform 3-component vector of bool) +0:28 Branch: Return with expression +0:28 Convert bool to float (temp 3-component vector of float) +0:28 'b3' (uniform 3-component vector of bool) +0:31 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:29 Function Parameters: +0:29 'p' (out 3-component vector of float) +0:? Sequence +0:29 move second child to first child (temp 3-component vector of float) +0:29 'p' (out 3-component vector of float) +0:29 Convert double to float (temp 3-component vector of float) +0:29 'd3' (uniform 3-component vector of double) +0:29 Branch: Return with expression +0:29 Convert double to float (temp 3-component vector of float) +0:29 'd3' (uniform 3-component vector of double) +0:32 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:31 Function Parameters: +0:31 'p' (out 3-component vector of int) +0:? Sequence +0:31 move second child to first child (temp 3-component vector of int) +0:31 'p' (out 3-component vector of int) +0:31 Convert uint to int (temp 3-component vector of int) +0:31 'u3' (uniform 3-component vector of uint) +0:31 Branch: Return with expression +0:31 Convert uint to int (temp 3-component vector of int) +0:31 'u3' (uniform 3-component vector of uint) +0:33 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:32 Function Parameters: +0:32 'p' (out 3-component vector of int) +0:? Sequence +0:32 move second child to first child (temp 3-component vector of int) +0:32 'p' (out 3-component vector of int) +0:32 Convert bool to int (temp 3-component vector of int) +0:32 'b3' (uniform 3-component vector of bool) +0:32 Branch: Return with expression +0:32 Convert bool to int (temp 3-component vector of int) +0:32 'b3' (uniform 3-component vector of bool) +0:34 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:33 Function Parameters: +0:33 'p' (out 3-component vector of int) +0:? Sequence +0:33 move second child to first child (temp 3-component vector of int) +0:33 'p' (out 3-component vector of int) +0:33 Convert float to int (temp 3-component vector of int) +0:33 'f3' (uniform 3-component vector of float) +0:33 Branch: Return with expression +0:33 Convert float to int (temp 3-component vector of int) +0:33 'f3' (uniform 3-component vector of float) +0:36 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:34 Function Parameters: +0:34 'p' (out 3-component vector of int) +0:? Sequence +0:34 move second child to first child (temp 3-component vector of int) +0:34 'p' (out 3-component vector of int) +0:34 Convert double to int (temp 3-component vector of int) +0:34 'd3' (uniform 3-component vector of double) +0:34 Branch: Return with expression +0:34 Convert double to int (temp 3-component vector of int) +0:34 'd3' (uniform 3-component vector of double) +0:37 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:36 Function Parameters: +0:36 'p' (out 3-component vector of uint) +0:? Sequence +0:36 move second child to first child (temp 3-component vector of uint) +0:36 'p' (out 3-component vector of uint) +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 'i3' (uniform 3-component vector of int) +0:36 Branch: Return with expression +0:36 Convert int to uint (temp 3-component vector of uint) +0:36 'i3' (uniform 3-component vector of int) +0:38 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:37 Function Parameters: +0:37 'p' (out 3-component vector of uint) +0:? Sequence +0:37 move second child to first child (temp 3-component vector of uint) +0:37 'p' (out 3-component vector of uint) +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 'f3' (uniform 3-component vector of float) +0:37 Branch: Return with expression +0:37 Convert float to uint (temp 3-component vector of uint) +0:37 'f3' (uniform 3-component vector of float) +0:39 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:38 Function Parameters: +0:38 'p' (out 3-component vector of uint) +0:? Sequence +0:38 move second child to first child (temp 3-component vector of uint) +0:38 'p' (out 3-component vector of uint) +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 'b3' (uniform 3-component vector of bool) +0:38 Branch: Return with expression +0:38 Convert bool to uint (temp 3-component vector of uint) +0:38 'b3' (uniform 3-component vector of bool) +0:41 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:39 Function Parameters: +0:39 'p' (out 3-component vector of uint) +0:? Sequence +0:39 move second child to first child (temp 3-component vector of uint) +0:39 'p' (out 3-component vector of uint) +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 'd3' (uniform 3-component vector of double) +0:39 Branch: Return with expression +0:39 Convert double to uint (temp 3-component vector of uint) +0:39 'd3' (uniform 3-component vector of double) +0:42 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:41 Function Parameters: +0:41 'p' (out 3-component vector of bool) +0:? Sequence +0:41 move second child to first child (temp 3-component vector of bool) +0:41 'p' (out 3-component vector of bool) +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 'i3' (uniform 3-component vector of int) +0:41 Branch: Return with expression +0:41 Convert int to bool (temp 3-component vector of bool) +0:41 'i3' (uniform 3-component vector of int) +0:43 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:42 Function Parameters: +0:42 'p' (out 3-component vector of bool) +0:? Sequence +0:42 move second child to first child (temp 3-component vector of bool) +0:42 'p' (out 3-component vector of bool) +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 'u3' (uniform 3-component vector of uint) +0:42 Branch: Return with expression +0:42 Convert uint to bool (temp 3-component vector of bool) +0:42 'u3' (uniform 3-component vector of uint) +0:44 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:43 Function Parameters: +0:43 'p' (out 3-component vector of bool) +0:? Sequence +0:43 move second child to first child (temp 3-component vector of bool) +0:43 'p' (out 3-component vector of bool) +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 'f3' (uniform 3-component vector of float) +0:43 Branch: Return with expression +0:43 Convert float to bool (temp 3-component vector of bool) +0:43 'f3' (uniform 3-component vector of float) +0:46 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:44 Function Parameters: +0:44 'p' (out 3-component vector of bool) +0:? Sequence +0:44 move second child to first child (temp 3-component vector of bool) +0:44 'p' (out 3-component vector of bool) +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 'd3' (uniform 3-component vector of double) +0:44 Branch: Return with expression +0:44 Convert double to bool (temp 3-component vector of bool) +0:44 'd3' (uniform 3-component vector of double) +0:47 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:46 Function Parameters: +0:46 'p' (out 3-component vector of double) +0:? Sequence +0:46 move second child to first child (temp 3-component vector of double) +0:46 'p' (out 3-component vector of double) +0:46 Convert int to double (temp 3-component vector of double) +0:46 'i3' (uniform 3-component vector of int) +0:46 Branch: Return with expression +0:46 Convert int to double (temp 3-component vector of double) +0:46 'i3' (uniform 3-component vector of int) +0:48 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:47 Function Parameters: +0:47 'p' (out 3-component vector of double) +0:? Sequence +0:47 move second child to first child (temp 3-component vector of double) +0:47 'p' (out 3-component vector of double) +0:47 Convert uint to double (temp 3-component vector of double) +0:47 'u3' (uniform 3-component vector of uint) +0:47 Branch: Return with expression +0:47 Convert uint to double (temp 3-component vector of double) +0:47 'u3' (uniform 3-component vector of uint) +0:49 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:48 Function Parameters: +0:48 'p' (out 3-component vector of double) +0:? Sequence +0:48 move second child to first child (temp 3-component vector of double) +0:48 'p' (out 3-component vector of double) +0:48 Convert bool to double (temp 3-component vector of double) +0:48 'b3' (uniform 3-component vector of bool) +0:48 Branch: Return with expression +0:48 Convert bool to double (temp 3-component vector of double) +0:48 'b3' (uniform 3-component vector of bool) +0:51 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:49 Function Parameters: +0:49 'p' (out 3-component vector of double) +0:? Sequence +0:49 move second child to first child (temp 3-component vector of double) +0:49 'p' (out 3-component vector of double) +0:49 Convert float to double (temp 3-component vector of double) +0:49 'f3' (uniform 3-component vector of float) +0:49 Branch: Return with expression +0:49 Convert float to double (temp 3-component vector of double) +0:49 'f3' (uniform 3-component vector of float) +0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:52 Function Parameters: +0:? Sequence +0:54 Sequence +0:54 move second child to first child (temp 3-component vector of float) +0:54 'r00' (temp 3-component vector of float) +0:54 Convert int to float (temp 3-component vector of float) +0:54 'i3' (uniform 3-component vector of int) +0:55 Sequence +0:55 move second child to first child (temp 3-component vector of float) +0:55 'r01' (temp 3-component vector of float) +0:55 Convert bool to float (temp 3-component vector of float) +0:55 'b3' (uniform 3-component vector of bool) +0:56 Sequence +0:56 move second child to first child (temp 3-component vector of float) +0:56 'r02' (temp 3-component vector of float) +0:56 Convert uint to float (temp 3-component vector of float) +0:56 'u3' (uniform 3-component vector of uint) +0:57 Sequence +0:57 move second child to first child (temp 3-component vector of float) +0:57 'r03' (temp 3-component vector of float) +0:57 Convert double to float (temp 3-component vector of float) +0:57 'd3' (uniform 3-component vector of double) +0:59 Sequence +0:59 move second child to first child (temp 3-component vector of int) +0:59 'r10' (temp 3-component vector of int) +0:59 Convert bool to int (temp 3-component vector of int) +0:59 'b3' (uniform 3-component vector of bool) +0:60 Sequence +0:60 move second child to first child (temp 3-component vector of int) +0:60 'r11' (temp 3-component vector of int) +0:60 Convert uint to int (temp 3-component vector of int) +0:60 'u3' (uniform 3-component vector of uint) +0:61 Sequence +0:61 move second child to first child (temp 3-component vector of int) +0:61 'r12' (temp 3-component vector of int) +0:61 Convert float to int (temp 3-component vector of int) +0:61 'f3' (uniform 3-component vector of float) +0:62 Sequence +0:62 move second child to first child (temp 3-component vector of int) +0:62 'r13' (temp 3-component vector of int) +0:62 Convert double to int (temp 3-component vector of int) +0:62 'd3' (uniform 3-component vector of double) +0:64 Sequence +0:64 move second child to first child (temp 3-component vector of uint) +0:64 'r20' (temp 3-component vector of uint) +0:64 Convert bool to uint (temp 3-component vector of uint) +0:64 'b3' (uniform 3-component vector of bool) +0:65 Sequence +0:65 move second child to first child (temp 3-component vector of uint) +0:65 'r21' (temp 3-component vector of uint) +0:65 Convert int to uint (temp 3-component vector of uint) +0:65 'i3' (uniform 3-component vector of int) +0:66 Sequence +0:66 move second child to first child (temp 3-component vector of uint) +0:66 'r22' (temp 3-component vector of uint) +0:66 Convert float to uint (temp 3-component vector of uint) +0:66 'f3' (uniform 3-component vector of float) +0:67 Sequence +0:67 move second child to first child (temp 3-component vector of uint) +0:67 'r23' (temp 3-component vector of uint) +0:67 Convert double to uint (temp 3-component vector of uint) +0:67 'd3' (uniform 3-component vector of double) +0:69 Sequence +0:69 move second child to first child (temp 3-component vector of bool) +0:69 'r30' (temp 3-component vector of bool) +0:69 Convert int to bool (temp 3-component vector of bool) +0:69 'i3' (uniform 3-component vector of int) +0:70 Sequence +0:70 move second child to first child (temp 3-component vector of bool) +0:70 'r31' (temp 3-component vector of bool) +0:70 Convert uint to bool (temp 3-component vector of bool) +0:70 'u3' (uniform 3-component vector of uint) +0:71 Sequence +0:71 move second child to first child (temp 3-component vector of bool) +0:71 'r32' (temp 3-component vector of bool) +0:71 Convert float to bool (temp 3-component vector of bool) +0:71 'f3' (uniform 3-component vector of float) +0:72 Sequence +0:72 move second child to first child (temp 3-component vector of bool) +0:72 'r33' (temp 3-component vector of bool) +0:72 Convert double to bool (temp 3-component vector of bool) +0:72 'd3' (uniform 3-component vector of double) +0:74 Sequence +0:74 move second child to first child (temp 3-component vector of double) +0:74 'r40' (temp 3-component vector of double) +0:74 Convert int to double (temp 3-component vector of double) +0:74 'i3' (uniform 3-component vector of int) +0:75 Sequence +0:75 move second child to first child (temp 3-component vector of double) +0:75 'r41' (temp 3-component vector of double) +0:75 Convert uint to double (temp 3-component vector of double) +0:75 'u3' (uniform 3-component vector of uint) +0:76 Sequence +0:76 move second child to first child (temp 3-component vector of double) +0:76 'r42' (temp 3-component vector of double) +0:76 Convert float to double (temp 3-component vector of double) +0:76 'f3' (uniform 3-component vector of float) +0:77 Sequence +0:77 move second child to first child (temp 3-component vector of double) +0:77 'r43' (temp 3-component vector of double) +0:77 Convert bool to double (temp 3-component vector of double) +0:77 'b3' (uniform 3-component vector of bool) +0:80 multiply second child into first child (temp 3-component vector of float) +0:80 'r00' (temp 3-component vector of float) +0:80 Convert int to float (temp 3-component vector of float) +0:80 'i3' (uniform 3-component vector of int) +0:81 multiply second child into first child (temp 3-component vector of float) +0:81 'r01' (temp 3-component vector of float) +0:81 Convert bool to float (temp 3-component vector of float) +0:81 'b3' (uniform 3-component vector of bool) +0:82 multiply second child into first child (temp 3-component vector of float) +0:82 'r02' (temp 3-component vector of float) +0:82 Convert uint to float (temp 3-component vector of float) +0:82 'u3' (uniform 3-component vector of uint) +0:83 multiply second child into first child (temp 3-component vector of float) +0:83 'r03' (temp 3-component vector of float) +0:83 Convert double to float (temp 3-component vector of float) +0:83 'd3' (uniform 3-component vector of double) +0:85 multiply second child into first child (temp 3-component vector of int) +0:85 'r10' (temp 3-component vector of int) +0:85 Convert bool to int (temp 3-component vector of int) +0:85 'b3' (uniform 3-component vector of bool) +0:86 multiply second child into first child (temp 3-component vector of int) +0:86 'r11' (temp 3-component vector of int) +0:86 Convert uint to int (temp 3-component vector of int) +0:86 'u3' (uniform 3-component vector of uint) +0:87 multiply second child into first child (temp 3-component vector of int) +0:87 'r12' (temp 3-component vector of int) +0:87 Convert float to int (temp 3-component vector of int) +0:87 'f3' (uniform 3-component vector of float) +0:88 multiply second child into first child (temp 3-component vector of int) +0:88 'r13' (temp 3-component vector of int) +0:88 Convert double to int (temp 3-component vector of int) +0:88 'd3' (uniform 3-component vector of double) +0:90 multiply second child into first child (temp 3-component vector of uint) +0:90 'r20' (temp 3-component vector of uint) +0:90 Convert bool to uint (temp 3-component vector of uint) +0:90 'b3' (uniform 3-component vector of bool) +0:91 multiply second child into first child (temp 3-component vector of uint) +0:91 'r21' (temp 3-component vector of uint) +0:91 Convert int to uint (temp 3-component vector of uint) +0:91 'i3' (uniform 3-component vector of int) +0:92 multiply second child into first child (temp 3-component vector of uint) +0:92 'r22' (temp 3-component vector of uint) +0:92 Convert float to uint (temp 3-component vector of uint) +0:92 'f3' (uniform 3-component vector of float) +0:93 multiply second child into first child (temp 3-component vector of uint) +0:93 'r23' (temp 3-component vector of uint) +0:93 Convert double to uint (temp 3-component vector of uint) +0:93 'd3' (uniform 3-component vector of double) +0:97 multiply second child into first child (temp 3-component vector of double) +0:97 'r40' (temp 3-component vector of double) +0:97 Convert int to double (temp 3-component vector of double) +0:97 'i3' (uniform 3-component vector of int) +0:98 multiply second child into first child (temp 3-component vector of double) +0:98 'r41' (temp 3-component vector of double) +0:98 Convert uint to double (temp 3-component vector of double) +0:98 'u3' (uniform 3-component vector of uint) +0:99 multiply second child into first child (temp 3-component vector of double) +0:99 'r42' (temp 3-component vector of double) +0:99 Convert float to double (temp 3-component vector of double) +0:99 'f3' (uniform 3-component vector of float) +0:100 multiply second child into first child (temp 3-component vector of double) +0:100 'r43' (temp 3-component vector of double) +0:100 Convert bool to double (temp 3-component vector of double) +0:100 'b3' (uniform 3-component vector of bool) +0:103 vector scale second child into first child (temp 3-component vector of float) +0:103 'r00' (temp 3-component vector of float) +0:103 Convert int to float (temp float) +0:103 'is' (uniform int) +0:104 vector scale second child into first child (temp 3-component vector of float) +0:104 'r01' (temp 3-component vector of float) +0:104 Convert bool to float (temp float) +0:104 'bs' (uniform bool) +0:105 vector scale second child into first child (temp 3-component vector of float) +0:105 'r02' (temp 3-component vector of float) +0:105 Convert uint to float (temp float) +0:105 'us' (uniform uint) +0:106 vector scale second child into first child (temp 3-component vector of float) +0:106 'r03' (temp 3-component vector of float) +0:106 Convert double to float (temp float) +0:106 'ds' (uniform double) +0:108 vector scale second child into first child (temp 3-component vector of int) +0:108 'r10' (temp 3-component vector of int) +0:108 Convert bool to int (temp int) +0:108 'bs' (uniform bool) +0:109 vector scale second child into first child (temp 3-component vector of int) +0:109 'r11' (temp 3-component vector of int) +0:109 Convert uint to int (temp int) +0:109 'us' (uniform uint) +0:110 vector scale second child into first child (temp 3-component vector of int) +0:110 'r12' (temp 3-component vector of int) +0:110 Convert float to int (temp int) +0:110 'fs' (uniform float) +0:111 vector scale second child into first child (temp 3-component vector of int) +0:111 'r13' (temp 3-component vector of int) +0:111 Convert double to int (temp int) +0:111 'ds' (uniform double) +0:113 vector scale second child into first child (temp 3-component vector of uint) +0:113 'r20' (temp 3-component vector of uint) +0:113 Convert bool to uint (temp uint) +0:113 'bs' (uniform bool) +0:114 vector scale second child into first child (temp 3-component vector of uint) +0:114 'r21' (temp 3-component vector of uint) +0:114 Convert int to uint (temp uint) +0:114 'is' (uniform int) +0:115 vector scale second child into first child (temp 3-component vector of uint) +0:115 'r22' (temp 3-component vector of uint) +0:115 Convert float to uint (temp uint) +0:115 'fs' (uniform float) +0:116 vector scale second child into first child (temp 3-component vector of uint) +0:116 'r23' (temp 3-component vector of uint) +0:116 Convert double to uint (temp uint) +0:116 'ds' (uniform double) +0:120 vector scale second child into first child (temp 3-component vector of double) +0:120 'r40' (temp 3-component vector of double) +0:120 Convert int to double (temp double) +0:120 'is' (uniform int) +0:121 vector scale second child into first child (temp 3-component vector of double) +0:121 'r41' (temp 3-component vector of double) +0:121 Convert uint to double (temp double) +0:121 'us' (uniform uint) +0:122 vector scale second child into first child (temp 3-component vector of double) +0:122 'r42' (temp 3-component vector of double) +0:122 Convert float to double (temp double) +0:122 'fs' (uniform float) +0:123 vector scale second child into first child (temp 3-component vector of double) +0:123 'r43' (temp 3-component vector of double) +0:123 Convert bool to double (temp double) +0:123 'bs' (uniform bool) +0:193 Sequence +0:193 move second child to first child (temp int) +0:193 'c1' (temp int) +0:193 Constant: +0:193 3 (const int) +0:194 Sequence +0:194 move second child to first child (temp int) +0:194 'c2' (temp int) +0:194 Constant: +0:194 3 (const int) +0:196 Sequence +0:196 move second child to first child (temp 4-component vector of float) +0:196 'outval' (temp 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:196 Constant: +0:196 3.600000 +0:196 Constant: +0:196 3.600000 +0:196 Convert int to float (temp float) +0:196 'c1' (temp int) +0:196 Convert int to float (temp float) +0:196 'c2' (temp int) +0:199 move second child to first child (temp 4-component vector of float) +0:199 Color: direct index for structure (temp 4-component vector of float) +0:199 'psout' (temp structure{temp 4-component vector of float Color}) +0:199 Constant: +0:199 0 (const int) +0:199 'outval' (temp 4-component vector of float) +0:200 Branch: Return with expression +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Linker Objects +0:? 'i3' (uniform 3-component vector of int) +0:? 'b3' (uniform 3-component vector of bool) +0:? 'f3' (uniform 3-component vector of float) +0:? 'u3' (uniform 3-component vector of uint) +0:? 'd3' (uniform 3-component vector of double) +0:? 'is' (uniform int) +0:? 'bs' (uniform bool) +0:? 'fs' (uniform float) +0:? 'us' (uniform uint) +0:? 'ds' (uniform double) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 478 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 11 "Fn_F3(vf3;" + Name 10 "x" + Name 18 "Fn_I3(vi3;" + Name 17 "x" + Name 25 "Fn_U3(vu3;" + Name 24 "x" + Name 32 "Fn_B3(vb3;" + Name 31 "x" + Name 39 "Fn_D3(vd3;" + Name 38 "x" + Name 43 "Fn_R_F3I(vf3;" + Name 42 "p" + Name 46 "Fn_R_F3U(vf3;" + Name 45 "p" + Name 49 "Fn_R_F3B(vf3;" + Name 48 "p" + Name 52 "Fn_R_F3D(vf3;" + Name 51 "p" + Name 56 "Fn_R_I3U(vi3;" + Name 55 "p" + Name 59 "Fn_R_I3B(vi3;" + Name 58 "p" + Name 62 "Fn_R_I3F(vi3;" + Name 61 "p" + Name 65 "Fn_R_I3D(vi3;" + Name 64 "p" + Name 69 "Fn_R_U3I(vu3;" + Name 68 "p" + Name 72 "Fn_R_U3F(vu3;" + Name 71 "p" + Name 75 "Fn_R_U3B(vu3;" + Name 74 "p" + Name 78 "Fn_R_U3D(vu3;" + Name 77 "p" + Name 82 "Fn_R_B3I(vb3;" + Name 81 "p" + Name 85 "Fn_R_B3U(vb3;" + Name 84 "p" + Name 88 "Fn_R_B3F(vb3;" + Name 87 "p" + Name 91 "Fn_R_B3D(vb3;" + Name 90 "p" + Name 95 "Fn_R_D3I(vd3;" + Name 94 "p" + Name 98 "Fn_R_D3U(vd3;" + Name 97 "p" + Name 101 "Fn_R_D3B(vd3;" + Name 100 "p" + Name 104 "Fn_R_D3F(vd3;" + Name 103 "p" + Name 107 "i3" + Name 115 "u3" + Name 123 "b3" + Name 135 "d3" + Name 159 "f3" + Name 252 "r00" + Name 255 "r01" + Name 258 "r02" + Name 261 "r03" + Name 264 "r10" + Name 267 "r11" + Name 270 "r12" + Name 273 "r13" + Name 276 "r20" + Name 279 "r21" + Name 282 "r22" + Name 285 "r23" + Name 288 "r30" + Name 291 "r31" + Name 294 "r32" + Name 297 "r33" + Name 300 "r40" + Name 303 "r41" + Name 306 "r42" + Name 309 "r43" + Name 377 "is" + Name 383 "bs" + Name 389 "us" + Name 395 "ds" + Name 411 "fs" + Name 459 "c1" + Name 461 "c2" + Name 464 "outval" + Name 471 "PS_OUTPUT" + MemberName 471(PS_OUTPUT) 0 "Color" + Name 473 "psout" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 9: TypeFunction 2 8(ptr) + 13: TypeInt 32 1 + 14: TypeVector 13(int) 3 + 15: TypePointer Function 14(ivec3) + 16: TypeFunction 2 15(ptr) + 20: TypeInt 32 0 + 21: TypeVector 20(int) 3 + 22: TypePointer Function 21(ivec3) + 23: TypeFunction 2 22(ptr) + 27: TypeBool + 28: TypeVector 27(bool) 3 + 29: TypePointer Function 28(bvec3) + 30: TypeFunction 2 29(ptr) + 34: TypeFloat 64 + 35: TypeVector 34(float) 3 + 36: TypePointer Function 35(fvec3) + 37: TypeFunction 2 36(ptr) + 41: TypeFunction 7(fvec3) 8(ptr) + 54: TypeFunction 14(ivec3) 15(ptr) + 67: TypeFunction 21(ivec3) 22(ptr) + 80: TypeFunction 28(bvec3) 29(ptr) + 93: TypeFunction 35(fvec3) 36(ptr) + 106: TypePointer UniformConstant 14(ivec3) + 107(i3): 106(ptr) Variable UniformConstant + 114: TypePointer UniformConstant 21(ivec3) + 115(u3): 114(ptr) Variable UniformConstant + 122: TypePointer UniformConstant 28(bvec3) + 123(b3): 122(ptr) Variable UniformConstant + 125: 6(float) Constant 0 + 126: 6(float) Constant 1065353216 + 127: 7(fvec3) ConstantComposite 125 125 125 + 128: 7(fvec3) ConstantComposite 126 126 126 + 134: TypePointer UniformConstant 35(fvec3) + 135(d3): 134(ptr) Variable UniformConstant + 149: 13(int) Constant 0 + 150: 13(int) Constant 1 + 151: 14(ivec3) ConstantComposite 149 149 149 + 152: 14(ivec3) ConstantComposite 150 150 150 + 158: TypePointer UniformConstant 7(fvec3) + 159(f3): 158(ptr) Variable UniformConstant + 185: 20(int) Constant 0 + 186: 20(int) Constant 1 + 187: 21(ivec3) ConstantComposite 185 185 185 + 188: 21(ivec3) ConstantComposite 186 186 186 + 219: 34(float) Constant 0 0 + 220: 35(fvec3) ConstantComposite 219 219 219 + 239: 34(float) Constant 0 1072693248 + 240: 35(fvec3) ConstantComposite 239 239 239 + 376: TypePointer UniformConstant 13(int) + 377(is): 376(ptr) Variable UniformConstant + 382: TypePointer UniformConstant 27(bool) + 383(bs): 382(ptr) Variable UniformConstant + 388: TypePointer UniformConstant 20(int) + 389(us): 388(ptr) Variable UniformConstant + 394: TypePointer UniformConstant 34(float) + 395(ds): 394(ptr) Variable UniformConstant + 410: TypePointer UniformConstant 6(float) + 411(fs): 410(ptr) Variable UniformConstant + 458: TypePointer Function 13(int) + 460: 13(int) Constant 3 + 462: TypeVector 6(float) 4 + 463: TypePointer Function 462(fvec4) + 465: 6(float) Constant 1080452710 + 471(PS_OUTPUT): TypeStruct 462(fvec4) + 472: TypePointer Function 471(PS_OUTPUT) + 4(main): 2 Function None 3 + 5: Label + 252(r00): 8(ptr) Variable Function + 255(r01): 8(ptr) Variable Function + 258(r02): 8(ptr) Variable Function + 261(r03): 8(ptr) Variable Function + 264(r10): 15(ptr) Variable Function + 267(r11): 15(ptr) Variable Function + 270(r12): 15(ptr) Variable Function + 273(r13): 15(ptr) Variable Function + 276(r20): 22(ptr) Variable Function + 279(r21): 22(ptr) Variable Function + 282(r22): 22(ptr) Variable Function + 285(r23): 22(ptr) Variable Function + 288(r30): 29(ptr) Variable Function + 291(r31): 29(ptr) Variable Function + 294(r32): 29(ptr) Variable Function + 297(r33): 29(ptr) Variable Function + 300(r40): 36(ptr) Variable Function + 303(r41): 36(ptr) Variable Function + 306(r42): 36(ptr) Variable Function + 309(r43): 36(ptr) Variable Function + 459(c1): 458(ptr) Variable Function + 461(c2): 458(ptr) Variable Function + 464(outval): 463(ptr) Variable Function + 473(psout): 472(ptr) Variable Function + 253: 14(ivec3) Load 107(i3) + 254: 7(fvec3) ConvertSToF 253 + Store 252(r00) 254 + 256: 28(bvec3) Load 123(b3) + 257: 7(fvec3) Select 256 128 127 + Store 255(r01) 257 + 259: 21(ivec3) Load 115(u3) + 260: 7(fvec3) ConvertUToF 259 + Store 258(r02) 260 + 262: 35(fvec3) Load 135(d3) + 263: 7(fvec3) FConvert 262 + Store 261(r03) 263 + 265: 28(bvec3) Load 123(b3) + 266: 14(ivec3) Select 265 152 151 + Store 264(r10) 266 + 268: 21(ivec3) Load 115(u3) + 269: 14(ivec3) Bitcast 268 + Store 267(r11) 269 + 271: 7(fvec3) Load 159(f3) + 272: 14(ivec3) ConvertFToS 271 + Store 270(r12) 272 + 274: 35(fvec3) Load 135(d3) + 275: 14(ivec3) ConvertFToS 274 + Store 273(r13) 275 + 277: 28(bvec3) Load 123(b3) + 278: 21(ivec3) Select 277 188 187 + Store 276(r20) 278 + 280: 14(ivec3) Load 107(i3) + 281: 21(ivec3) Bitcast 280 + Store 279(r21) 281 + 283: 7(fvec3) Load 159(f3) + 284: 21(ivec3) ConvertFToU 283 + Store 282(r22) 284 + 286: 35(fvec3) Load 135(d3) + 287: 21(ivec3) ConvertFToU 286 + Store 285(r23) 287 + 289: 14(ivec3) Load 107(i3) + 290: 28(bvec3) INotEqual 289 187 + Store 288(r30) 290 + 292: 21(ivec3) Load 115(u3) + 293: 28(bvec3) INotEqual 292 187 + Store 291(r31) 293 + 295: 7(fvec3) Load 159(f3) + 296: 28(bvec3) FOrdNotEqual 295 127 + Store 294(r32) 296 + 298: 35(fvec3) Load 135(d3) + 299: 28(bvec3) FOrdNotEqual 298 220 + Store 297(r33) 299 + 301: 14(ivec3) Load 107(i3) + 302: 35(fvec3) ConvertSToF 301 + Store 300(r40) 302 + 304: 21(ivec3) Load 115(u3) + 305: 35(fvec3) ConvertUToF 304 + Store 303(r41) 305 + 307: 7(fvec3) Load 159(f3) + 308: 35(fvec3) FConvert 307 + Store 306(r42) 308 + 310: 28(bvec3) Load 123(b3) + 311: 35(fvec3) Select 310 240 220 + Store 309(r43) 311 + 312: 14(ivec3) Load 107(i3) + 313: 7(fvec3) ConvertSToF 312 + 314: 7(fvec3) Load 252(r00) + 315: 7(fvec3) FMul 314 313 + Store 252(r00) 315 + 316: 28(bvec3) Load 123(b3) + 317: 7(fvec3) Select 316 128 127 + 318: 7(fvec3) Load 255(r01) + 319: 7(fvec3) FMul 318 317 + Store 255(r01) 319 + 320: 21(ivec3) Load 115(u3) + 321: 7(fvec3) ConvertUToF 320 + 322: 7(fvec3) Load 258(r02) + 323: 7(fvec3) FMul 322 321 + Store 258(r02) 323 + 324: 35(fvec3) Load 135(d3) + 325: 7(fvec3) FConvert 324 + 326: 7(fvec3) Load 261(r03) + 327: 7(fvec3) FMul 326 325 + Store 261(r03) 327 + 328: 28(bvec3) Load 123(b3) + 329: 14(ivec3) Select 328 152 151 + 330: 14(ivec3) Load 264(r10) + 331: 14(ivec3) IMul 330 329 + Store 264(r10) 331 + 332: 21(ivec3) Load 115(u3) + 333: 14(ivec3) Bitcast 332 + 334: 14(ivec3) Load 267(r11) + 335: 14(ivec3) IMul 334 333 + Store 267(r11) 335 + 336: 7(fvec3) Load 159(f3) + 337: 14(ivec3) ConvertFToS 336 + 338: 14(ivec3) Load 270(r12) + 339: 14(ivec3) IMul 338 337 + Store 270(r12) 339 + 340: 35(fvec3) Load 135(d3) + 341: 14(ivec3) ConvertFToS 340 + 342: 14(ivec3) Load 273(r13) + 343: 14(ivec3) IMul 342 341 + Store 273(r13) 343 + 344: 28(bvec3) Load 123(b3) + 345: 21(ivec3) Select 344 188 187 + 346: 21(ivec3) Load 276(r20) + 347: 21(ivec3) IMul 346 345 + Store 276(r20) 347 + 348: 14(ivec3) Load 107(i3) + 349: 21(ivec3) Bitcast 348 + 350: 21(ivec3) Load 279(r21) + 351: 21(ivec3) IMul 350 349 + Store 279(r21) 351 + 352: 7(fvec3) Load 159(f3) + 353: 21(ivec3) ConvertFToU 352 + 354: 21(ivec3) Load 282(r22) + 355: 21(ivec3) IMul 354 353 + Store 282(r22) 355 + 356: 35(fvec3) Load 135(d3) + 357: 21(ivec3) ConvertFToU 356 + 358: 21(ivec3) Load 285(r23) + 359: 21(ivec3) IMul 358 357 + Store 285(r23) 359 + 360: 14(ivec3) Load 107(i3) + 361: 35(fvec3) ConvertSToF 360 + 362: 35(fvec3) Load 300(r40) + 363: 35(fvec3) FMul 362 361 + Store 300(r40) 363 + 364: 21(ivec3) Load 115(u3) + 365: 35(fvec3) ConvertUToF 364 + 366: 35(fvec3) Load 303(r41) + 367: 35(fvec3) FMul 366 365 + Store 303(r41) 367 + 368: 7(fvec3) Load 159(f3) + 369: 35(fvec3) FConvert 368 + 370: 35(fvec3) Load 306(r42) + 371: 35(fvec3) FMul 370 369 + Store 306(r42) 371 + 372: 28(bvec3) Load 123(b3) + 373: 35(fvec3) Select 372 240 220 + 374: 35(fvec3) Load 309(r43) + 375: 35(fvec3) FMul 374 373 + Store 309(r43) 375 + 378: 13(int) Load 377(is) + 379: 6(float) ConvertSToF 378 + 380: 7(fvec3) Load 252(r00) + 381: 7(fvec3) VectorTimesScalar 380 379 + Store 252(r00) 381 + 384: 27(bool) Load 383(bs) + 385: 6(float) Select 384 126 125 + 386: 7(fvec3) Load 255(r01) + 387: 7(fvec3) VectorTimesScalar 386 385 + Store 255(r01) 387 + 390: 20(int) Load 389(us) + 391: 6(float) ConvertUToF 390 + 392: 7(fvec3) Load 258(r02) + 393: 7(fvec3) VectorTimesScalar 392 391 + Store 258(r02) 393 + 396: 34(float) Load 395(ds) + 397: 6(float) FConvert 396 + 398: 7(fvec3) Load 261(r03) + 399: 7(fvec3) VectorTimesScalar 398 397 + Store 261(r03) 399 + 400: 27(bool) Load 383(bs) + 401: 13(int) Select 400 150 149 + 402: 14(ivec3) Load 264(r10) + 403: 14(ivec3) CompositeConstruct 401 401 401 + 404: 14(ivec3) IMul 402 403 + Store 264(r10) 404 + 405: 20(int) Load 389(us) + 406: 13(int) Bitcast 405 + 407: 14(ivec3) Load 267(r11) + 408: 14(ivec3) CompositeConstruct 406 406 406 + 409: 14(ivec3) IMul 407 408 + Store 267(r11) 409 + 412: 6(float) Load 411(fs) + 413: 13(int) ConvertFToS 412 + 414: 14(ivec3) Load 270(r12) + 415: 14(ivec3) CompositeConstruct 413 413 413 + 416: 14(ivec3) IMul 414 415 + Store 270(r12) 416 + 417: 34(float) Load 395(ds) + 418: 13(int) ConvertFToS 417 + 419: 14(ivec3) Load 273(r13) + 420: 14(ivec3) CompositeConstruct 418 418 418 + 421: 14(ivec3) IMul 419 420 + Store 273(r13) 421 + 422: 27(bool) Load 383(bs) + 423: 20(int) Select 422 186 185 + 424: 21(ivec3) Load 276(r20) + 425: 21(ivec3) CompositeConstruct 423 423 423 + 426: 21(ivec3) IMul 424 425 + Store 276(r20) 426 + 427: 13(int) Load 377(is) + 428: 20(int) Bitcast 427 + 429: 21(ivec3) Load 279(r21) + 430: 21(ivec3) CompositeConstruct 428 428 428 + 431: 21(ivec3) IMul 429 430 + Store 279(r21) 431 + 432: 6(float) Load 411(fs) + 433: 20(int) ConvertFToU 432 + 434: 21(ivec3) Load 282(r22) + 435: 21(ivec3) CompositeConstruct 433 433 433 + 436: 21(ivec3) IMul 434 435 + Store 282(r22) 436 + 437: 34(float) Load 395(ds) + 438: 20(int) ConvertFToU 437 + 439: 21(ivec3) Load 285(r23) + 440: 21(ivec3) CompositeConstruct 438 438 438 + 441: 21(ivec3) IMul 439 440 + Store 285(r23) 441 + 442: 13(int) Load 377(is) + 443: 34(float) ConvertSToF 442 + 444: 35(fvec3) Load 300(r40) + 445: 35(fvec3) VectorTimesScalar 444 443 + Store 300(r40) 445 + 446: 20(int) Load 389(us) + 447: 34(float) ConvertUToF 446 + 448: 35(fvec3) Load 303(r41) + 449: 35(fvec3) VectorTimesScalar 448 447 + Store 303(r41) 449 + 450: 6(float) Load 411(fs) + 451: 34(float) FConvert 450 + 452: 35(fvec3) Load 306(r42) + 453: 35(fvec3) VectorTimesScalar 452 451 + Store 306(r42) 453 + 454: 27(bool) Load 383(bs) + 455: 34(float) Select 454 239 219 + 456: 35(fvec3) Load 309(r43) + 457: 35(fvec3) VectorTimesScalar 456 455 + Store 309(r43) 457 + Store 459(c1) 460 + Store 461(c2) 460 + 466: 13(int) Load 459(c1) + 467: 6(float) ConvertSToF 466 + 468: 13(int) Load 461(c2) + 469: 6(float) ConvertSToF 468 + 470: 462(fvec4) CompositeConstruct 465 465 467 469 + Store 464(outval) 470 + 474: 462(fvec4) Load 464(outval) + 475: 463(ptr) AccessChain 473(psout) 149 + Store 475 474 + 476:471(PS_OUTPUT) Load 473(psout) + ReturnValue 476 + FunctionEnd + 11(Fn_F3(vf3;): 2 Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd + 18(Fn_I3(vi3;): 2 Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + Return + FunctionEnd + 25(Fn_U3(vu3;): 2 Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + Return + FunctionEnd + 32(Fn_B3(vb3;): 2 Function None 30 + 31(x): 29(ptr) FunctionParameter + 33: Label + Return + FunctionEnd + 39(Fn_D3(vd3;): 2 Function None 37 + 38(x): 36(ptr) FunctionParameter + 40: Label + Return + FunctionEnd +43(Fn_R_F3I(vf3;): 7(fvec3) Function None 41 + 42(p): 8(ptr) FunctionParameter + 44: Label + 108: 14(ivec3) Load 107(i3) + 109: 7(fvec3) ConvertSToF 108 + Store 42(p) 109 + 110: 14(ivec3) Load 107(i3) + 111: 7(fvec3) ConvertSToF 110 + ReturnValue 111 + FunctionEnd +46(Fn_R_F3U(vf3;): 7(fvec3) Function None 41 + 45(p): 8(ptr) FunctionParameter + 47: Label + 116: 21(ivec3) Load 115(u3) + 117: 7(fvec3) ConvertUToF 116 + Store 45(p) 117 + 118: 21(ivec3) Load 115(u3) + 119: 7(fvec3) ConvertUToF 118 + ReturnValue 119 + FunctionEnd +49(Fn_R_F3B(vf3;): 7(fvec3) Function None 41 + 48(p): 8(ptr) FunctionParameter + 50: Label + 124: 28(bvec3) Load 123(b3) + 129: 7(fvec3) Select 124 128 127 + Store 48(p) 129 + 130: 28(bvec3) Load 123(b3) + 131: 7(fvec3) Select 130 128 127 + ReturnValue 131 + FunctionEnd +52(Fn_R_F3D(vf3;): 7(fvec3) Function None 41 + 51(p): 8(ptr) FunctionParameter + 53: Label + 136: 35(fvec3) Load 135(d3) + 137: 7(fvec3) FConvert 136 + Store 51(p) 137 + 138: 35(fvec3) Load 135(d3) + 139: 7(fvec3) FConvert 138 + ReturnValue 139 + FunctionEnd +56(Fn_R_I3U(vi3;): 14(ivec3) Function None 54 + 55(p): 15(ptr) FunctionParameter + 57: Label + 142: 21(ivec3) Load 115(u3) + 143: 14(ivec3) Bitcast 142 + Store 55(p) 143 + 144: 21(ivec3) Load 115(u3) + 145: 14(ivec3) Bitcast 144 + ReturnValue 145 + FunctionEnd +59(Fn_R_I3B(vi3;): 14(ivec3) Function None 54 + 58(p): 15(ptr) FunctionParameter + 60: Label + 148: 28(bvec3) Load 123(b3) + 153: 14(ivec3) Select 148 152 151 + Store 58(p) 153 + 154: 28(bvec3) Load 123(b3) + 155: 14(ivec3) Select 154 152 151 + ReturnValue 155 + FunctionEnd +62(Fn_R_I3F(vi3;): 14(ivec3) Function None 54 + 61(p): 15(ptr) FunctionParameter + 63: Label + 160: 7(fvec3) Load 159(f3) + 161: 14(ivec3) ConvertFToS 160 + Store 61(p) 161 + 162: 7(fvec3) Load 159(f3) + 163: 14(ivec3) ConvertFToS 162 + ReturnValue 163 + FunctionEnd +65(Fn_R_I3D(vi3;): 14(ivec3) Function None 54 + 64(p): 15(ptr) FunctionParameter + 66: Label + 166: 35(fvec3) Load 135(d3) + 167: 14(ivec3) ConvertFToS 166 + Store 64(p) 167 + 168: 35(fvec3) Load 135(d3) + 169: 14(ivec3) ConvertFToS 168 + ReturnValue 169 + FunctionEnd +69(Fn_R_U3I(vu3;): 21(ivec3) Function None 67 + 68(p): 22(ptr) FunctionParameter + 70: Label + 172: 14(ivec3) Load 107(i3) + 173: 21(ivec3) Bitcast 172 + Store 68(p) 173 + 174: 14(ivec3) Load 107(i3) + 175: 21(ivec3) Bitcast 174 + ReturnValue 175 + FunctionEnd +72(Fn_R_U3F(vu3;): 21(ivec3) Function None 67 + 71(p): 22(ptr) FunctionParameter + 73: Label + 178: 7(fvec3) Load 159(f3) + 179: 21(ivec3) ConvertFToU 178 + Store 71(p) 179 + 180: 7(fvec3) Load 159(f3) + 181: 21(ivec3) ConvertFToU 180 + ReturnValue 181 + FunctionEnd +75(Fn_R_U3B(vu3;): 21(ivec3) Function None 67 + 74(p): 22(ptr) FunctionParameter + 76: Label + 184: 28(bvec3) Load 123(b3) + 189: 21(ivec3) Select 184 188 187 + Store 74(p) 189 + 190: 28(bvec3) Load 123(b3) + 191: 21(ivec3) Select 190 188 187 + ReturnValue 191 + FunctionEnd +78(Fn_R_U3D(vu3;): 21(ivec3) Function None 67 + 77(p): 22(ptr) FunctionParameter + 79: Label + 194: 35(fvec3) Load 135(d3) + 195: 21(ivec3) ConvertFToU 194 + Store 77(p) 195 + 196: 35(fvec3) Load 135(d3) + 197: 21(ivec3) ConvertFToU 196 + ReturnValue 197 + FunctionEnd +82(Fn_R_B3I(vb3;): 28(bvec3) Function None 80 + 81(p): 29(ptr) FunctionParameter + 83: Label + 200: 14(ivec3) Load 107(i3) + 201: 28(bvec3) INotEqual 200 187 + Store 81(p) 201 + 202: 14(ivec3) Load 107(i3) + 203: 28(bvec3) INotEqual 202 187 + ReturnValue 203 + FunctionEnd +85(Fn_R_B3U(vb3;): 28(bvec3) Function None 80 + 84(p): 29(ptr) FunctionParameter + 86: Label + 206: 21(ivec3) Load 115(u3) + 207: 28(bvec3) INotEqual 206 187 + Store 84(p) 207 + 208: 21(ivec3) Load 115(u3) + 209: 28(bvec3) INotEqual 208 187 + ReturnValue 209 + FunctionEnd +88(Fn_R_B3F(vb3;): 28(bvec3) Function None 80 + 87(p): 29(ptr) FunctionParameter + 89: Label + 212: 7(fvec3) Load 159(f3) + 213: 28(bvec3) FOrdNotEqual 212 127 + Store 87(p) 213 + 214: 7(fvec3) Load 159(f3) + 215: 28(bvec3) FOrdNotEqual 214 127 + ReturnValue 215 + FunctionEnd +91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 + 90(p): 29(ptr) FunctionParameter + 92: Label + 218: 35(fvec3) Load 135(d3) + 221: 28(bvec3) FOrdNotEqual 218 220 + Store 90(p) 221 + 222: 35(fvec3) Load 135(d3) + 223: 28(bvec3) FOrdNotEqual 222 220 + ReturnValue 223 + FunctionEnd +95(Fn_R_D3I(vd3;): 35(fvec3) Function None 93 + 94(p): 36(ptr) FunctionParameter + 96: Label + 226: 14(ivec3) Load 107(i3) + 227: 35(fvec3) ConvertSToF 226 + Store 94(p) 227 + 228: 14(ivec3) Load 107(i3) + 229: 35(fvec3) ConvertSToF 228 + ReturnValue 229 + FunctionEnd +98(Fn_R_D3U(vd3;): 35(fvec3) Function None 93 + 97(p): 36(ptr) FunctionParameter + 99: Label + 232: 21(ivec3) Load 115(u3) + 233: 35(fvec3) ConvertUToF 232 + Store 97(p) 233 + 234: 21(ivec3) Load 115(u3) + 235: 35(fvec3) ConvertUToF 234 + ReturnValue 235 + FunctionEnd +101(Fn_R_D3B(vd3;): 35(fvec3) Function None 93 + 100(p): 36(ptr) FunctionParameter + 102: Label + 238: 28(bvec3) Load 123(b3) + 241: 35(fvec3) Select 238 240 220 + Store 100(p) 241 + 242: 28(bvec3) Load 123(b3) + 243: 35(fvec3) Select 242 240 220 + ReturnValue 243 + FunctionEnd +104(Fn_R_D3F(vd3;): 35(fvec3) Function None 93 + 103(p): 36(ptr) FunctionParameter + 105: Label + 246: 7(fvec3) Load 159(f3) + 247: 35(fvec3) FConvert 246 + Store 103(p) 247 + 248: 7(fvec3) Load 159(f3) + 249: 35(fvec3) FConvert 248 + ReturnValue 249 + FunctionEnd diff --git a/Test/hlsl.promotions.frag b/Test/hlsl.promotions.frag new file mode 100644 index 00000000..647096d4 --- /dev/null +++ b/Test/hlsl.promotions.frag @@ -0,0 +1,201 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int3 i3; +uniform bool3 b3; +uniform float3 f3; +uniform uint3 u3; +uniform double3 d3; + +uniform int is; +uniform bool bs; +uniform float fs; +uniform uint us; +uniform double ds; + +void Fn_F3(float3 x) { } +void Fn_I3(int3 x) { } +void Fn_U3(uint3 x) { } +void Fn_B3(bool3 x) { } +void Fn_D3(double3 x) { } + +// ----------- Test implicit conversions on function returns ----------- +float3 Fn_R_F3I(out float3 p) { p = i3; return i3; } +float3 Fn_R_F3U(out float3 p) { p = u3; return u3; } +float3 Fn_R_F3B(out float3 p) { p = b3; return b3; } +float3 Fn_R_F3D(out float3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +int3 Fn_R_I3U(out int3 p) { p = u3; return u3; } +int3 Fn_R_I3B(out int3 p) { p = b3; return b3; } +int3 Fn_R_I3F(out int3 p) { p = f3; return f3; } +int3 Fn_R_I3D(out int3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +uint3 Fn_R_U3I(out uint3 p) { p = i3; return i3; } +uint3 Fn_R_U3F(out uint3 p) { p = f3; return f3; } +uint3 Fn_R_U3B(out uint3 p) { p = b3; return b3; } +uint3 Fn_R_U3D(out uint3 p) { p = d3; return d3; } // valid, but loss of precision on downconversion. + +bool3 Fn_R_B3I(out bool3 p) { p = i3; return i3; } +bool3 Fn_R_B3U(out bool3 p) { p = u3; return u3; } +bool3 Fn_R_B3F(out bool3 p) { p = f3; return f3; } +bool3 Fn_R_B3D(out bool3 p) { p = d3; return d3; } + +double3 Fn_R_D3I(out double3 p) { p = i3; return i3; } +double3 Fn_R_D3U(out double3 p) { p = u3; return u3; } +double3 Fn_R_D3B(out double3 p) { p = b3; return b3; } +double3 Fn_R_D3F(out double3 p) { p = f3; return f3; } + +PS_OUTPUT main() +{ + // ----------- assignment conversions ----------- + float3 r00 = i3; + float3 r01 = b3; + float3 r02 = u3; + float3 r03 = d3; // valid, but loss of precision on downconversion. + + int3 r10 = b3; + int3 r11 = u3; + int3 r12 = f3; + int3 r13 = d3; // valid, but loss of precision on downconversion. + + uint3 r20 = b3; + uint3 r21 = i3; + uint3 r22 = f3; + uint3 r23 = d3; // valid, but loss of precision on downconversion. + + bool3 r30 = i3; + bool3 r31 = u3; + bool3 r32 = f3; + bool3 r33 = d3; + + double3 r40 = i3; + double3 r41 = u3; + double3 r42 = f3; + double3 r43 = b3; + + // ----------- assign ops: vector times vector ----------- + r00 *= i3; + r01 *= b3; + r02 *= u3; + r03 *= d3; // valid, but loss of precision on downconversion. + + r10 *= b3; + r11 *= u3; + r12 *= f3; + r13 *= d3; // valid, but loss of precision on downconversion. + + r20 *= b3; + r21 *= i3; + r22 *= f3; + r23 *= d3; // valid, but loss of precision on downconversion. + + // No mul operator for bools + + r40 *= i3; + r41 *= u3; + r42 *= f3; + r43 *= b3; + + // ----------- assign ops: vector times scalar ----------- + r00 *= is; + r01 *= bs; + r02 *= us; + r03 *= ds; // valid, but loss of precision on downconversion. + + r10 *= bs; + r11 *= us; + r12 *= fs; + r13 *= ds; // valid, but loss of precision on downconversion. + + r20 *= bs; + r21 *= is; + r22 *= fs; + r23 *= ds; // valid, but loss of precision on downconversion. + + // No mul operator for bools + + r40 *= is; + r41 *= us; + r42 *= fs; + r43 *= bs; + + +#define FN_OVERLOADS 0 // change to 1 when overloads under promotions are in place + +#if FN_OVERLOADS + Fn_F3(i3); + Fn_F3(u3); + Fn_F3(f3); + Fn_F3(b3); + Fn_F3(d3); // valid, but loss of precision on downconversion. + + Fn_I3(i3); + Fn_I3(u3); + Fn_I3(f3); + Fn_I3(b3); + Fn_I3(d3); // valid, but loss of precision on downconversion. + + Fn_U3(i3); + Fn_U3(u3); + Fn_U3(f3); + Fn_U3(b3); + Fn_U3(d3); // valid, but loss of precision on downconversion. + + Fn_B3(i3); + Fn_B3(u3); + Fn_B3(f3); + Fn_B3(b3); + Fn_B3(d3); + + Fn_D3(i3); + Fn_D3(u3); + Fn_D3(f3); + Fn_D3(b3); + Fn_D3(d3); + + Fn_F3(i3.x); + Fn_F3(u3.x); + Fn_F3(f3.x); + Fn_F3(b3.x); + Fn_F3(d3.x); // valid, but loss of precision on downconversion. + + Fn_I3(i3.x); + Fn_I3(u3.x); + Fn_I3(f3.x); + Fn_I3(b3.x); + Fn_I3(d3.x); // valid, but loss of precision on downconversion. + + Fn_U3(i3.x); + Fn_U3(u3.x); + Fn_U3(f3.x); + Fn_U3(b3.x); + Fn_U3(d3.x); // valid, but loss of precision on downconversion. + + Fn_B3(i3.x); + Fn_B3(u3.x); + Fn_B3(f3.x); + Fn_B3(b3.x); + Fn_B3(d3.x); + + Fn_D3(i3.x); + Fn_D3(u3.x); + Fn_D3(f3.x); + Fn_D3(b3.x); + Fn_D3(d3.x); +#endif + + const int si = 3; + const float sf = 1.2; + + int c1 = si * sf; // 3.6 (not 3!) + int c2 = sf * si; // 3.6 (not 3!) + + float4 outval = float4(si * sf, sf*si, c1, c2); + + PS_OUTPUT psout; + psout.Color = outval; + return psout; +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 4d871edc..439534e3 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -524,7 +524,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (type.getBasicType() == node->getType().getBasicType()) return node; - if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType())) + if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op)) promoteTo = type.getBasicType(); else return 0; @@ -726,11 +726,37 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, // See if the 'from' type is allowed to be implicitly converted to the // 'to' type. This is not about vector/array/struct, only about basic type. // -bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to) const +bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op) const { if (profile == EEsProfile || version == 110) return false; + // Some languages allow more general (or potentially, more specific) conversions under some conditions. + if (source == EShSourceHlsl) { + const bool fromConvertable = (from == EbtFloat || from == EbtDouble || from == EbtInt || from == EbtUint || from == EbtBool); + const bool toConvertable = (to == EbtFloat || to == EbtDouble || to == EbtInt || to == EbtUint || to == EbtBool); + + if (fromConvertable && toConvertable) { + switch (op) { + case EOpAndAssign: // assignments can perform arbitrary conversions + case EOpInclusiveOrAssign: // ... + case EOpExclusiveOrAssign: // ... + case EOpAssign: // ... + case EOpAddAssign: // ... + case EOpSubAssign: // ... + case EOpMulAssign: // ... + case EOpVectorTimesScalarAssign: // ... + case EOpMatrixTimesScalarAssign: // ... + case EOpDivAssign: // ... + case EOpModAssign: // ... + case EOpReturn: // function returns can also perform arbitrary conversions + return true; + default: + break; + } + } + } + switch (to) { case EbtDouble: switch (from) { diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 0b07a29a..80deabea 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -189,7 +189,7 @@ public: TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc); TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc); TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType); - bool canImplicitlyPromote(TBasicType from, TBasicType to) const; + bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const; TOperator mapTypeToConstructorOp(const TType&) const; TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right); TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 0d99d1ea..3e3b6b4a 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -121,6 +121,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.pp.line.frag", "main"}, + {"hlsl.promotions.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3de98536..582b1d06 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2446,7 +2446,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) TIntermTyped* node; if (acceptExpression(node)) { // hook it up - statement = intermediate.addBranch(EOpReturn, node, token.loc); + statement = parseContext.handleReturnValue(token.loc, node); } else statement = intermediate.addBranch(EOpReturn, token.loc); break; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index c8348c51..01a668bd 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -796,6 +796,25 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l return paramNodes; } +// Handle function returns, including type conversions to the function return type +// if necessary. +TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) +{ + if (currentFunctionType->getBasicType() == EbtVoid) { + error(loc, "void function cannot return a value", "return", ""); + return intermediate.addBranch(EOpReturn, loc); + } else if (*currentFunctionType != value->getType()) { + TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + if (converted) { + return intermediate.addBranch(EOpReturn, converted, loc); + } else { + error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); + return intermediate.addBranch(EOpReturn, value, loc); + } + } else + return intermediate.addBranch(EOpReturn, value, loc); +} + void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped*& arguments, TIntermTyped* newArg) { TParameter param = { 0, new TType }; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 92641a84..f45a874f 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -85,6 +85,7 @@ public: TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); + TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); From 0a6fb8549456c0b9d016eed5dec0cff1e2029662 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 9 Aug 2016 19:15:17 -0600 Subject: [PATCH 066/217] Infrastructure: Make shared symbol-table cache complete, delete work around. Fixes issue #370 and replaces PR #371. --- glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ShaderLang.cpp | 57 ++++++++++++++++------- gtests/Initializer.h | 34 +------------- gtests/TestFixture.h | 2 - 4 files changed, 43 insertions(+), 54 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index a3591958..b0cb64c7 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1394" -#define GLSLANG_DATE "08-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1396" +#define GLSLANG_DATE "09-Aug-2016" diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index dccc1f0b..c7aa6a2d 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -146,6 +146,23 @@ int MapProfileToIndex(EProfile profile) return index; } +const int SourceCount = 2; + +int MapSourceToIndex(EShSource source) +{ + int index = 0; + + switch (source) { + case EShSourceGlsl: index = 0; break; + case EShSourceHlsl: index = 1; break; + default: break; + } + + assert(index < SourceCount); + + return index; +} + // only one of these needed for non-ES; ES needs 2 for different precision defaults of built-ins enum EPrecisionClass { EPcGeneral, @@ -161,8 +178,8 @@ enum EPrecisionClass { // Each has a different set of built-ins, and we want to preserve that from // compile to compile. // -TSymbolTable* CommonSymbolTable[VersionCount][SpvVersionCount][ProfileCount][EPcCount] = {}; -TSymbolTable* SharedSymbolTables[VersionCount][SpvVersionCount][ProfileCount][EShLangCount] = {}; +TSymbolTable* CommonSymbolTable[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EPcCount] = {}; +TSymbolTable* SharedSymbolTables[VersionCount][SpvVersionCount][ProfileCount][SourceCount][EShLangCount] = {}; TPoolAllocator* PerProcessGPA = 0; @@ -305,7 +322,8 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp int versionIndex = MapVersionToIndex(version); int spvVersionIndex = MapSpvVersionToIndex(spvVersion); int profileIndex = MapProfileToIndex(profile); - if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][EPcGeneral]) { + int sourceIndex = MapSourceToIndex(source); + if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][EPcGeneral]) { glslang::ReleaseGlobalLock(); return; @@ -333,18 +351,18 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp // Copy the local symbol tables from the new pool to the global tables using the process-global pool for (int precClass = 0; precClass < EPcCount; ++precClass) { if (! commonTable[precClass]->isEmpty()) { - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass] = new TSymbolTable; - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass]->copyTable(*commonTable[precClass]); - CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass]->readOnly(); + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass] = new TSymbolTable; + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass]->copyTable(*commonTable[precClass]); + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][precClass]->readOnly(); } } for (int stage = 0; stage < EShLangCount; ++stage) { if (! stageTables[stage]->isEmpty()) { - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage] = new TSymbolTable; - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->adoptLevels(*CommonSymbolTable - [versionIndex][spvVersionIndex][profileIndex][CommonIndex(profile, (EShLanguage)stage)]); - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->copyTable(*stageTables[stage]); - SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->readOnly(); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage] = new TSymbolTable; + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->adoptLevels(*CommonSymbolTable + [versionIndex][spvVersionIndex][profileIndex][sourceIndex][CommonIndex(profile, (EShLanguage)stage)]); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->copyTable(*stageTables[stage]); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][sourceIndex][stage]->readOnly(); } } @@ -656,6 +674,7 @@ bool ProcessDeferred( TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] [MapSpvVersionToIndex(spvVersion)] [MapProfileToIndex(profile)] + [MapSourceToIndex(source)] [compiler->getLanguage()]; // Dynamically allocate the symbol table so we can control when it is deallocated WRT the pool. @@ -1092,9 +1111,11 @@ int __fastcall ShFinalize() for (int version = 0; version < VersionCount; ++version) { for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { for (int p = 0; p < ProfileCount; ++p) { - for (int lang = 0; lang < EShLangCount; ++lang) { - delete SharedSymbolTables[version][spvVersion][p][lang]; - SharedSymbolTables[version][spvVersion][p][lang] = 0; + for (int source = 0; source < SourceCount; ++source) { + for (int stage = 0; stage < EShLangCount; ++stage) { + delete SharedSymbolTables[version][spvVersion][p][source][stage]; + SharedSymbolTables[version][spvVersion][p][source][stage] = 0; + } } } } @@ -1103,9 +1124,11 @@ int __fastcall ShFinalize() for (int version = 0; version < VersionCount; ++version) { for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { for (int p = 0; p < ProfileCount; ++p) { - for (int pc = 0; pc < EPcCount; ++pc) { - delete CommonSymbolTable[version][spvVersion][p][pc]; - CommonSymbolTable[version][spvVersion][p][pc] = 0; + for (int source = 0; source < SourceCount; ++source) { + for (int pc = 0; pc < EPcCount; ++pc) { + delete CommonSymbolTable[version][spvVersion][p][source][pc]; + CommonSymbolTable[version][spvVersion][p][source][pc] = 0; + } } } } diff --git a/gtests/Initializer.h b/gtests/Initializer.h index 34af9ad9..b46b3f55 100644 --- a/gtests/Initializer.h +++ b/gtests/Initializer.h @@ -40,46 +40,14 @@ namespace glslangtest { // Initializes glslang on creation, and destroys it on completion. -// And provides .Acquire() as a way to reinitialize glslang if semantics change. // This object is expected to be a singleton, so that internal glslang state // can be correctly handled. // -// TODO(antiagainst): It's a known bug that some of the internal states need to -// be reset if semantics change: -// https://github.com/KhronosGroup/glslang/issues/166 -// Therefore, the following mechanism is needed. Remove this once the above bug -// gets fixed. class GlslangInitializer { public: - GlslangInitializer() : lastMessages(EShMsgCascadingErrors) - { - glslang::InitializeProcess(); - } + GlslangInitializer() { glslang::InitializeProcess(); } ~GlslangInitializer() { glslang::FinalizeProcess(); } - - // A token indicates that the glslang is reinitialized (if necessary) to the - // required semantics. And that won't change until the token is destroyed. - class InitializationToken { - }; - - // Re-initializes glsl state iff the previous messages and the current - // messages are incompatible. We assume external synchronization, i.e. - // there is at most one acquired token at any one time. - InitializationToken acquire(EShMessages new_messages) - { - if ((lastMessages ^ new_messages) & - (EShMsgVulkanRules | EShMsgSpvRules | EShMsgReadHlsl)) { - glslang::FinalizeProcess(); - glslang::InitializeProcess(); - } - lastMessages = new_messages; - return InitializationToken(); - } - -private: - - EShMessages lastMessages; }; } // namespace glslangtest diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 8dffb805..d196babe 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -179,8 +179,6 @@ public: shader->setStringsWithLengths(&shaderStrings, &shaderLengths, 1); if (!entryPointName.empty()) shader->setEntryPoint(entryPointName.c_str()); - // Reinitialize glslang if the semantics change. - GlobalTestSettings.initializer->acquire(controls); return shader->parse( (resources ? resources : &glslang::DefaultTBuiltInResource), defaultVersion, isForwardCompatible, controls); From 61da5e41f776d30b3392780daddb38f6098ad259 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 11 Aug 2016 07:29:30 -0600 Subject: [PATCH 067/217] HLSL: Put intrinsics in symbol table for all stages --- .../hlsl.intrinsics.negative.comp.out | 836 ++-------- .../hlsl.intrinsics.negative.vert.out | 1386 +++-------------- Test/hlsl.intrinsics.negative.comp | 294 ++-- Test/hlsl.intrinsics.negative.vert | 335 ++-- hlsl/hlslParseables.cpp | 142 +- 5 files changed, 688 insertions(+), 2305 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 043fa82e..9c9a7080 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -1,157 +1,7 @@ hlsl.intrinsics.negative.comp -ERROR: 0:7: 'asdouble' : no matching overloaded function found -ERROR: 0:8: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:9: 'clip' : no matching overloaded function found -ERROR: 0:10: 'countbits' : no matching overloaded function found -ERROR: 0:11: 'cross' : no matching overloaded function found -ERROR: 0:12: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:13: 'ddx' : no matching overloaded function found -ERROR: 0:14: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:15: 'ddx_fine' : no matching overloaded function found -ERROR: 0:16: 'ddy' : no matching overloaded function found -ERROR: 0:17: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:18: 'ddy_fine' : no matching overloaded function found -ERROR: 0:19: 'determinant' : no matching overloaded function found -ERROR: 0:20: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:21: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:22: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:23: 'f16tof32' : no matching overloaded function found -ERROR: 0:24: 'firstbithigh' : no matching overloaded function found -ERROR: 0:25: 'firstbitlow' : no matching overloaded function found -ERROR: 0:27: 'fwidth' : no matching overloaded function found -ERROR: 0:28: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:29: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:30: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:31: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:32: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:33: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:34: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:35: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:36: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:37: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:38: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:39: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:40: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:41: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:42: 'length' : no matching overloaded function found -ERROR: 0:43: 'msad4' : no matching overloaded function found -ERROR: 0:44: 'normalize' : no matching overloaded function found -ERROR: 0:45: 'reflect' : no matching overloaded function found -ERROR: 0:46: 'refract' : no matching overloaded function found -ERROR: 0:47: 'refract' : no matching overloaded function found -ERROR: 0:48: 'reversebits' : no matching overloaded function found -ERROR: 0:49: 'transpose' : no matching overloaded function found -ERROR: 0:60: 'GetRenderTargetSamplePosition' : no matching overloaded function found -ERROR: 0:69: 'asdouble' : no matching overloaded function found -ERROR: 0:70: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:71: 'countbits' : no matching overloaded function found -ERROR: 0:72: 'cross' : no matching overloaded function found -ERROR: 0:73: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:74: 'ddx' : no matching overloaded function found -ERROR: 0:75: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:76: 'ddx_fine' : no matching overloaded function found -ERROR: 0:77: 'ddy' : no matching overloaded function found -ERROR: 0:78: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:79: 'ddy_fine' : no matching overloaded function found -ERROR: 0:80: 'determinant' : no matching overloaded function found -ERROR: 0:81: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:82: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:84: 'f16tof32' : no matching overloaded function found -ERROR: 0:85: 'firstbithigh' : no matching overloaded function found -ERROR: 0:86: 'firstbitlow' : no matching overloaded function found -ERROR: 0:88: 'fwidth' : no matching overloaded function found -ERROR: 0:89: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:90: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:91: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:92: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:93: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:94: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:95: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:96: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:97: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:98: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:99: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:100: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:101: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:102: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:103: 'noise' : no matching overloaded function found -ERROR: 0:104: 'reversebits' : no matching overloaded function found -ERROR: 0:105: 'transpose' : no matching overloaded function found -ERROR: 0:116: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:117: 'countbits' : no matching overloaded function found -ERROR: 0:118: 'ddx' : no matching overloaded function found -ERROR: 0:119: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:120: 'ddx_fine' : no matching overloaded function found -ERROR: 0:121: 'ddy' : no matching overloaded function found -ERROR: 0:122: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:123: 'ddy_fine' : no matching overloaded function found -ERROR: 0:124: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:125: 'determinant' : no matching overloaded function found -ERROR: 0:126: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:127: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:129: 'f16tof32' : no matching overloaded function found -ERROR: 0:130: 'firstbithigh' : no matching overloaded function found -ERROR: 0:131: 'firstbitlow' : no matching overloaded function found -ERROR: 0:133: 'fwidth' : no matching overloaded function found -ERROR: 0:134: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:135: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:136: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:137: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:138: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:139: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:140: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:141: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:142: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:143: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:144: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:145: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:146: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:147: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:148: 'noise' : no matching overloaded function found -ERROR: 0:149: 'reversebits' : no matching overloaded function found -ERROR: 0:150: 'transpose' : no matching overloaded function found -ERROR: 0:161: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:162: 'countbits' : no matching overloaded function found -ERROR: 0:163: 'cross' : no matching overloaded function found -ERROR: 0:164: 'determinant' : no matching overloaded function found -ERROR: 0:165: 'ddx' : no matching overloaded function found -ERROR: 0:166: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:167: 'ddx_fine' : no matching overloaded function found -ERROR: 0:168: 'ddy' : no matching overloaded function found -ERROR: 0:169: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:170: 'ddy_fine' : no matching overloaded function found -ERROR: 0:171: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:172: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:174: 'f16tof32' : no matching overloaded function found -ERROR: 0:175: 'firstbithigh' : no matching overloaded function found -ERROR: 0:176: 'firstbitlow' : no matching overloaded function found -ERROR: 0:178: 'fwidth' : no matching overloaded function found -ERROR: 0:179: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:180: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:181: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:182: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:183: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:184: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:185: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:186: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:187: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:188: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:189: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:190: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:191: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:193: 'noise' : no matching overloaded function found -ERROR: 0:194: 'reversebits' : no matching overloaded function found -ERROR: 0:195: 'transpose' : no matching overloaded function found -ERROR: 147 compilation errors. No code generated. - - Shader version: 450 local_size = (1, 1, 1) -ERROR: node is still EOpNull! +0:? Sequence 0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) @@ -159,90 +9,6 @@ ERROR: node is still EOpNull! 0:2 'inF2' (in float) 0:2 'inI0' (in int) 0:? Sequence -0:7 Constant: -0:7 0.000000 -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:17 Constant: -0:17 0.000000 -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:27 Constant: -0:27 0.000000 -0:28 Constant: -0:28 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:35 Constant: -0:35 0.000000 -0:36 Constant: -0:36 0.000000 -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 Constant: -0:39 0.000000 -0:40 Constant: -0:40 0.000000 -0:41 Constant: -0:41 0.000000 -0:42 Constant: -0:42 0.000000 -0:43 Constant: -0:43 0.000000 -0:44 Constant: -0:44 0.000000 -0:45 Constant: -0:45 0.000000 -0:46 Constant: -0:46 0.000000 -0:47 Constant: -0:47 0.000000 -0:48 Constant: -0:48 0.000000 -0:49 Constant: -0:49 0.000000 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 @@ -253,8 +19,6 @@ ERROR: node is still EOpNull! 0:57 'inF2' (in 1-component vector of float) 0:57 'inI0' (in 1-component vector of int) 0:? Sequence -0:60 Constant: -0:60 0.000000 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 @@ -265,78 +29,6 @@ ERROR: node is still EOpNull! 0:66 'inF2' (in 2-component vector of float) 0:66 'inI0' (in 2-component vector of int) 0:? Sequence -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:71 Constant: -0:71 0.000000 -0:72 Constant: -0:72 0.000000 -0:73 Constant: -0:73 0.000000 -0:74 Constant: -0:74 0.000000 -0:75 Constant: -0:75 0.000000 -0:76 Constant: -0:76 0.000000 -0:77 Constant: -0:77 0.000000 -0:78 Constant: -0:78 0.000000 -0:79 Constant: -0:79 0.000000 -0:80 Constant: -0:80 0.000000 -0:81 Constant: -0:81 0.000000 -0:82 Constant: -0:82 0.000000 -0:83 Constant: -0:83 0.000000 -0:84 Constant: -0:84 0.000000 -0:85 Constant: -0:85 0.000000 -0:86 Constant: -0:86 0.000000 -0:88 Constant: -0:88 0.000000 -0:89 Constant: -0:89 0.000000 -0:90 Constant: -0:90 0.000000 -0:91 Constant: -0:91 0.000000 -0:92 Constant: -0:92 0.000000 -0:93 Constant: -0:93 0.000000 -0:94 Constant: -0:94 0.000000 -0:95 Constant: -0:95 0.000000 -0:96 Constant: -0:96 0.000000 -0:97 Constant: -0:97 0.000000 -0:98 Constant: -0:98 0.000000 -0:99 Constant: -0:99 0.000000 -0:100 Constant: -0:100 0.000000 -0:101 Constant: -0:101 0.000000 -0:102 Constant: -0:102 0.000000 -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:105 Constant: -0:105 0.000000 0:109 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -348,74 +40,6 @@ ERROR: node is still EOpNull! 0:113 'inF2' (in 3-component vector of float) 0:113 'inI0' (in 3-component vector of int) 0:? Sequence -0:116 Constant: -0:116 0.000000 -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:119 Constant: -0:119 0.000000 -0:120 Constant: -0:120 0.000000 -0:121 Constant: -0:121 0.000000 -0:122 Constant: -0:122 0.000000 -0:123 Constant: -0:123 0.000000 -0:124 Constant: -0:124 0.000000 -0:125 Constant: -0:125 0.000000 -0:126 Constant: -0:126 0.000000 -0:127 Constant: -0:127 0.000000 -0:128 Constant: -0:128 0.000000 -0:129 Constant: -0:129 0.000000 -0:130 Constant: -0:130 0.000000 -0:131 Constant: -0:131 0.000000 -0:133 Constant: -0:133 0.000000 -0:134 Constant: -0:134 0.000000 -0:135 Constant: -0:135 0.000000 -0:136 Constant: -0:136 0.000000 -0:137 Constant: -0:137 0.000000 -0:138 Constant: -0:138 0.000000 -0:139 Constant: -0:139 0.000000 -0:140 Constant: -0:140 0.000000 -0:141 Constant: -0:141 0.000000 -0:142 Constant: -0:142 0.000000 -0:143 Constant: -0:143 0.000000 -0:144 Constant: -0:144 0.000000 -0:145 Constant: -0:145 0.000000 -0:146 Constant: -0:146 0.000000 -0:147 Constant: -0:147 0.000000 -0:148 Constant: -0:148 0.000000 -0:149 Constant: -0:149 0.000000 -0:150 Constant: -0:150 0.000000 0:154 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -428,74 +52,6 @@ ERROR: node is still EOpNull! 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:161 Constant: -0:161 0.000000 -0:162 Constant: -0:162 0.000000 -0:163 Constant: -0:163 0.000000 -0:164 Constant: -0:164 0.000000 -0:165 Constant: -0:165 0.000000 -0:166 Constant: -0:166 0.000000 -0:167 Constant: -0:167 0.000000 -0:168 Constant: -0:168 0.000000 -0:169 Constant: -0:169 0.000000 -0:170 Constant: -0:170 0.000000 -0:171 Constant: -0:171 0.000000 -0:172 Constant: -0:172 0.000000 -0:173 Constant: -0:173 0.000000 -0:174 Constant: -0:174 0.000000 -0:175 Constant: -0:175 0.000000 -0:176 Constant: -0:176 0.000000 -0:178 Constant: -0:178 0.000000 -0:179 Constant: -0:179 0.000000 -0:180 Constant: -0:180 0.000000 -0:181 Constant: -0:181 0.000000 -0:182 Constant: -0:182 0.000000 -0:183 Constant: -0:183 0.000000 -0:184 Constant: -0:184 0.000000 -0:185 Constant: -0:185 0.000000 -0:186 Constant: -0:186 0.000000 -0:187 Constant: -0:187 0.000000 -0:188 Constant: -0:188 0.000000 -0:189 Constant: -0:189 0.000000 -0:190 Constant: -0:190 0.000000 -0:191 Constant: -0:191 0.000000 -0:192 Constant: -0:192 0.000000 -0:193 Constant: -0:193 0.000000 -0:194 Constant: -0:194 0.000000 -0:195 Constant: -0:195 0.000000 0:199 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -510,7 +66,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) -ERROR: node is still EOpNull! +0:? Sequence 0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) @@ -518,90 +74,6 @@ ERROR: node is still EOpNull! 0:2 'inF2' (in float) 0:2 'inI0' (in int) 0:? Sequence -0:7 Constant: -0:7 0.000000 -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:17 Constant: -0:17 0.000000 -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:27 Constant: -0:27 0.000000 -0:28 Constant: -0:28 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:35 Constant: -0:35 0.000000 -0:36 Constant: -0:36 0.000000 -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 Constant: -0:39 0.000000 -0:40 Constant: -0:40 0.000000 -0:41 Constant: -0:41 0.000000 -0:42 Constant: -0:42 0.000000 -0:43 Constant: -0:43 0.000000 -0:44 Constant: -0:44 0.000000 -0:45 Constant: -0:45 0.000000 -0:46 Constant: -0:46 0.000000 -0:47 Constant: -0:47 0.000000 -0:48 Constant: -0:48 0.000000 -0:49 Constant: -0:49 0.000000 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 @@ -612,8 +84,6 @@ ERROR: node is still EOpNull! 0:57 'inF2' (in 1-component vector of float) 0:57 'inI0' (in 1-component vector of int) 0:? Sequence -0:60 Constant: -0:60 0.000000 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 @@ -624,78 +94,6 @@ ERROR: node is still EOpNull! 0:66 'inF2' (in 2-component vector of float) 0:66 'inI0' (in 2-component vector of int) 0:? Sequence -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:71 Constant: -0:71 0.000000 -0:72 Constant: -0:72 0.000000 -0:73 Constant: -0:73 0.000000 -0:74 Constant: -0:74 0.000000 -0:75 Constant: -0:75 0.000000 -0:76 Constant: -0:76 0.000000 -0:77 Constant: -0:77 0.000000 -0:78 Constant: -0:78 0.000000 -0:79 Constant: -0:79 0.000000 -0:80 Constant: -0:80 0.000000 -0:81 Constant: -0:81 0.000000 -0:82 Constant: -0:82 0.000000 -0:83 Constant: -0:83 0.000000 -0:84 Constant: -0:84 0.000000 -0:85 Constant: -0:85 0.000000 -0:86 Constant: -0:86 0.000000 -0:88 Constant: -0:88 0.000000 -0:89 Constant: -0:89 0.000000 -0:90 Constant: -0:90 0.000000 -0:91 Constant: -0:91 0.000000 -0:92 Constant: -0:92 0.000000 -0:93 Constant: -0:93 0.000000 -0:94 Constant: -0:94 0.000000 -0:95 Constant: -0:95 0.000000 -0:96 Constant: -0:96 0.000000 -0:97 Constant: -0:97 0.000000 -0:98 Constant: -0:98 0.000000 -0:99 Constant: -0:99 0.000000 -0:100 Constant: -0:100 0.000000 -0:101 Constant: -0:101 0.000000 -0:102 Constant: -0:102 0.000000 -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:105 Constant: -0:105 0.000000 0:109 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -707,74 +105,6 @@ ERROR: node is still EOpNull! 0:113 'inF2' (in 3-component vector of float) 0:113 'inI0' (in 3-component vector of int) 0:? Sequence -0:116 Constant: -0:116 0.000000 -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:119 Constant: -0:119 0.000000 -0:120 Constant: -0:120 0.000000 -0:121 Constant: -0:121 0.000000 -0:122 Constant: -0:122 0.000000 -0:123 Constant: -0:123 0.000000 -0:124 Constant: -0:124 0.000000 -0:125 Constant: -0:125 0.000000 -0:126 Constant: -0:126 0.000000 -0:127 Constant: -0:127 0.000000 -0:128 Constant: -0:128 0.000000 -0:129 Constant: -0:129 0.000000 -0:130 Constant: -0:130 0.000000 -0:131 Constant: -0:131 0.000000 -0:133 Constant: -0:133 0.000000 -0:134 Constant: -0:134 0.000000 -0:135 Constant: -0:135 0.000000 -0:136 Constant: -0:136 0.000000 -0:137 Constant: -0:137 0.000000 -0:138 Constant: -0:138 0.000000 -0:139 Constant: -0:139 0.000000 -0:140 Constant: -0:140 0.000000 -0:141 Constant: -0:141 0.000000 -0:142 Constant: -0:142 0.000000 -0:143 Constant: -0:143 0.000000 -0:144 Constant: -0:144 0.000000 -0:145 Constant: -0:145 0.000000 -0:146 Constant: -0:146 0.000000 -0:147 Constant: -0:147 0.000000 -0:148 Constant: -0:148 0.000000 -0:149 Constant: -0:149 0.000000 -0:150 Constant: -0:150 0.000000 0:154 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -787,74 +117,6 @@ ERROR: node is still EOpNull! 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:161 Constant: -0:161 0.000000 -0:162 Constant: -0:162 0.000000 -0:163 Constant: -0:163 0.000000 -0:164 Constant: -0:164 0.000000 -0:165 Constant: -0:165 0.000000 -0:166 Constant: -0:166 0.000000 -0:167 Constant: -0:167 0.000000 -0:168 Constant: -0:168 0.000000 -0:169 Constant: -0:169 0.000000 -0:170 Constant: -0:170 0.000000 -0:171 Constant: -0:171 0.000000 -0:172 Constant: -0:172 0.000000 -0:173 Constant: -0:173 0.000000 -0:174 Constant: -0:174 0.000000 -0:175 Constant: -0:175 0.000000 -0:176 Constant: -0:176 0.000000 -0:178 Constant: -0:178 0.000000 -0:179 Constant: -0:179 0.000000 -0:180 Constant: -0:180 0.000000 -0:181 Constant: -0:181 0.000000 -0:182 Constant: -0:182 0.000000 -0:183 Constant: -0:183 0.000000 -0:184 Constant: -0:184 0.000000 -0:185 Constant: -0:185 0.000000 -0:186 Constant: -0:186 0.000000 -0:187 Constant: -0:187 0.000000 -0:188 Constant: -0:188 0.000000 -0:189 Constant: -0:189 0.000000 -0:190 Constant: -0:190 0.000000 -0:191 Constant: -0:191 0.000000 -0:192 Constant: -0:192 0.000000 -0:193 Constant: -0:193 0.000000 -0:194 Constant: -0:194 0.000000 -0:195 Constant: -0:195 0.000000 0:199 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -863,4 +125,96 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? Linker Objects -SPIR-V is not generated for failed compile or link +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 63 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 450 + Name 4 "ComputeShaderFunction" + Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inI0" + Name 21 "ComputeShaderFunction1(vf1;vf1;vf1;vi1;" + Name 17 "inF0" + Name 18 "inF1" + Name 19 "inF2" + Name 20 "inI0" + Name 32 "ComputeShaderFunction2(vf2;vf2;vf2;vi2;" + Name 28 "inF0" + Name 29 "inF1" + Name 30 "inF2" + Name 31 "inI0" + Name 43 "ComputeShaderFunction3(vf3;vf3;vf3;vi3;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inF2" + Name 42 "inI0" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 1 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 25: TypeVector 8(int) 2 + 26: TypePointer Function 25(ivec2) + 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) + 34: TypeVector 6(float) 3 + 35: TypePointer Function 34(fvec3) + 36: TypeVector 8(int) 3 + 37: TypePointer Function 36(ivec3) + 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) + 45: 6(float) Constant 0 + 50: 6(float) Constant 1065353216 + 51: 6(float) Constant 1073741824 + 52: 23(fvec2) ConstantComposite 50 51 + 55: 6(float) Constant 1077936128 + 56: 34(fvec3) ConstantComposite 50 51 55 + 59: TypeVector 6(float) 4 + 60: 6(float) Constant 1082130432 + 61: 59(fvec4) ConstantComposite 50 51 55 60 +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + ReturnValue 61 + FunctionEnd +15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inI0): 9(ptr) FunctionParameter + 16: Label + ReturnValue 45 + FunctionEnd +21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 + 17(inF0): 7(ptr) FunctionParameter + 18(inF1): 7(ptr) FunctionParameter + 19(inF2): 7(ptr) FunctionParameter + 20(inI0): 9(ptr) FunctionParameter + 22: Label + ReturnValue 45 + FunctionEnd +32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 + 28(inF0): 24(ptr) FunctionParameter + 29(inF1): 24(ptr) FunctionParameter + 30(inF2): 24(ptr) FunctionParameter + 31(inI0): 26(ptr) FunctionParameter + 33: Label + ReturnValue 52 + FunctionEnd +43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 + 39(inF0): 35(ptr) FunctionParameter + 40(inF1): 35(ptr) FunctionParameter + 41(inF2): 35(ptr) FunctionParameter + 42(inI0): 37(ptr) FunctionParameter + 44: Label + ReturnValue 56 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 0e974a1f..b8c46226 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,235 +1,6 @@ hlsl.intrinsics.negative.vert -ERROR: 0:18: 'AllMemoryBarrier' : no matching overloaded function found -ERROR: 0:19: 'AllMemoryBarrierWithGroupSync' : no matching overloaded function found -ERROR: 0:20: 'asdouble' : no matching overloaded function found -ERROR: 0:21: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:22: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:23: 'clip' : no matching overloaded function found -ERROR: 0:24: 'countbits' : no matching overloaded function found -ERROR: 0:25: 'cross' : no matching overloaded function found -ERROR: 0:26: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:27: 'DeviceMemoryBarrier' : no matching overloaded function found -ERROR: 0:28: 'DeviceMemoryBarrierWithGroupSync' : no matching overloaded function found -ERROR: 0:29: 'ddx' : no matching overloaded function found -ERROR: 0:30: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:31: 'ddx_fine' : no matching overloaded function found -ERROR: 0:32: 'ddy' : no matching overloaded function found -ERROR: 0:33: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:34: 'ddy_fine' : no matching overloaded function found -ERROR: 0:35: 'determinant' : no matching overloaded function found -ERROR: 0:36: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:37: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:38: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:39: 'f16tof32' : no matching overloaded function found -ERROR: 0:40: 'firstbithigh' : no matching overloaded function found -ERROR: 0:41: 'firstbitlow' : no matching overloaded function found -ERROR: 0:43: 'fwidth' : no matching overloaded function found -ERROR: 0:44: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:45: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:46: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:47: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:48: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:49: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:50: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:51: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:52: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:53: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:54: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:55: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:56: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:57: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:58: 'GroupMemoryBarrier' : no matching overloaded function found -ERROR: 0:59: 'GroupMemoryBarrierWithGroupSync' : no matching overloaded function found -ERROR: 0:60: 'length' : no matching overloaded function found -ERROR: 0:61: 'msad4' : no matching overloaded function found -ERROR: 0:62: 'normalize' : no matching overloaded function found -ERROR: 0:63: 'reflect' : no matching overloaded function found -ERROR: 0:64: 'refract' : no matching overloaded function found -ERROR: 0:65: 'refract' : no matching overloaded function found -ERROR: 0:66: 'reversebits' : no matching overloaded function found -ERROR: 0:67: 'transpose' : no matching overloaded function found -ERROR: 0:78: 'GetRenderTargetSamplePosition' : no matching overloaded function found -ERROR: 0:87: 'asdouble' : no matching overloaded function found -ERROR: 0:88: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:89: 'countbits' : no matching overloaded function found -ERROR: 0:90: 'cross' : no matching overloaded function found -ERROR: 0:91: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:92: 'ddx' : no matching overloaded function found -ERROR: 0:93: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:94: 'ddx_fine' : no matching overloaded function found -ERROR: 0:95: 'ddy' : no matching overloaded function found -ERROR: 0:96: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:97: 'ddy_fine' : no matching overloaded function found -ERROR: 0:98: 'determinant' : no matching overloaded function found -ERROR: 0:99: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:100: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:101: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:102: 'f16tof32' : no matching overloaded function found -ERROR: 0:103: 'firstbithigh' : no matching overloaded function found -ERROR: 0:104: 'firstbitlow' : no matching overloaded function found -ERROR: 0:106: 'fwidth' : no matching overloaded function found -ERROR: 0:107: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:108: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:109: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:110: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:111: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:112: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:113: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:114: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:115: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:116: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:117: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:118: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:119: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:120: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:121: 'noise' : no matching overloaded function found -ERROR: 0:122: 'reversebits' : no matching overloaded function found -ERROR: 0:123: 'transpose' : no matching overloaded function found -ERROR: 0:134: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:135: 'countbits' : no matching overloaded function found -ERROR: 0:136: 'ddx' : no matching overloaded function found -ERROR: 0:137: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:138: 'ddx_fine' : no matching overloaded function found -ERROR: 0:139: 'ddy' : no matching overloaded function found -ERROR: 0:140: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:141: 'ddy_fine' : no matching overloaded function found -ERROR: 0:142: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:143: 'determinant' : no matching overloaded function found -ERROR: 0:144: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:145: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:146: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:147: 'f16tof32' : no matching overloaded function found -ERROR: 0:148: 'firstbithigh' : no matching overloaded function found -ERROR: 0:149: 'firstbitlow' : no matching overloaded function found -ERROR: 0:151: 'fwidth' : no matching overloaded function found -ERROR: 0:152: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:153: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:154: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:155: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:156: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:157: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:158: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:159: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:160: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:161: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:162: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:163: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:164: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:165: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:166: 'noise' : no matching overloaded function found -ERROR: 0:167: 'reversebits' : no matching overloaded function found -ERROR: 0:168: 'transpose' : no matching overloaded function found -ERROR: 0:179: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:180: 'countbits' : no matching overloaded function found -ERROR: 0:181: 'cross' : no matching overloaded function found -ERROR: 0:182: 'determinant' : no matching overloaded function found -ERROR: 0:183: 'ddx' : no matching overloaded function found -ERROR: 0:184: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:185: 'ddx_fine' : no matching overloaded function found -ERROR: 0:186: 'ddy' : no matching overloaded function found -ERROR: 0:187: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:188: 'ddy_fine' : no matching overloaded function found -ERROR: 0:189: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:190: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:191: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:192: 'f16tof32' : no matching overloaded function found -ERROR: 0:193: 'firstbithigh' : no matching overloaded function found -ERROR: 0:194: 'firstbitlow' : no matching overloaded function found -ERROR: 0:196: 'fwidth' : no matching overloaded function found -ERROR: 0:197: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:198: 'InterlockedAdd' : no matching overloaded function found -ERROR: 0:199: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:200: 'InterlockedAnd' : no matching overloaded function found -ERROR: 0:201: 'InterlockedCompareExchange' : no matching overloaded function found -ERROR: 0:202: 'InterlockedExchange' : no matching overloaded function found -ERROR: 0:203: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:204: 'InterlockedMax' : no matching overloaded function found -ERROR: 0:205: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:206: 'InterlockedMin' : no matching overloaded function found -ERROR: 0:207: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:208: 'InterlockedOr' : no matching overloaded function found -ERROR: 0:209: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:210: 'InterlockedXor' : no matching overloaded function found -ERROR: 0:211: 'noise' : no matching overloaded function found -ERROR: 0:212: 'reversebits' : no matching overloaded function found -ERROR: 0:213: 'transpose' : no matching overloaded function found -ERROR: 0:253: 'countbits' : no matching overloaded function found -ERROR: 0:253: 'cross' : no matching overloaded function found -ERROR: 0:253: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:253: 'ddx' : no matching overloaded function found -ERROR: 0:253: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:253: 'ddx_fine' : no matching overloaded function found -ERROR: 0:253: 'ddy' : no matching overloaded function found -ERROR: 0:253: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:253: 'ddy_fine' : no matching overloaded function found -ERROR: 0:253: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:253: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:253: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:253: 'f16tof32' : no matching overloaded function found -ERROR: 0:253: 'firstbithigh' : no matching overloaded function found -ERROR: 0:253: 'firstbitlow' : no matching overloaded function found -ERROR: 0:253: 'fwidth' : no matching overloaded function found -ERROR: 0:253: 'noise' : no matching overloaded function found -ERROR: 0:253: 'reversebits' : no matching overloaded function found -ERROR: 0:253: 'length' : no matching overloaded function found -ERROR: 0:253: 'noise' : no matching overloaded function found -ERROR: 0:253: 'normalize' : no matching overloaded function found -ERROR: 0:253: 'reflect' : no matching overloaded function found -ERROR: 0:253: 'refract' : no matching overloaded function found -ERROR: 0:253: 'reversebits' : no matching overloaded function found -ERROR: 0:261: 'countbits' : no matching overloaded function found -ERROR: 0:261: 'cross' : no matching overloaded function found -ERROR: 0:261: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:261: 'ddx' : no matching overloaded function found -ERROR: 0:261: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:261: 'ddx_fine' : no matching overloaded function found -ERROR: 0:261: 'ddy' : no matching overloaded function found -ERROR: 0:261: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:261: 'ddy_fine' : no matching overloaded function found -ERROR: 0:261: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:261: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:261: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:261: 'f16tof32' : no matching overloaded function found -ERROR: 0:261: 'firstbithigh' : no matching overloaded function found -ERROR: 0:261: 'firstbitlow' : no matching overloaded function found -ERROR: 0:261: 'fwidth' : no matching overloaded function found -ERROR: 0:261: 'noise' : no matching overloaded function found -ERROR: 0:261: 'reversebits' : no matching overloaded function found -ERROR: 0:261: 'length' : no matching overloaded function found -ERROR: 0:261: 'noise' : no matching overloaded function found -ERROR: 0:261: 'normalize' : no matching overloaded function found -ERROR: 0:261: 'reflect' : no matching overloaded function found -ERROR: 0:261: 'refract' : no matching overloaded function found -ERROR: 0:261: 'reversebits' : no matching overloaded function found -ERROR: 0:269: 'countbits' : no matching overloaded function found -ERROR: 0:269: 'cross' : no matching overloaded function found -ERROR: 0:269: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:269: 'ddx' : no matching overloaded function found -ERROR: 0:269: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:269: 'ddx_fine' : no matching overloaded function found -ERROR: 0:269: 'ddy' : no matching overloaded function found -ERROR: 0:269: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:269: 'ddy_fine' : no matching overloaded function found -ERROR: 0:269: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:269: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:269: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:269: 'f16tof32' : no matching overloaded function found -ERROR: 0:269: 'firstbithigh' : no matching overloaded function found -ERROR: 0:269: 'firstbitlow' : no matching overloaded function found -ERROR: 0:269: 'fwidth' : no matching overloaded function found -ERROR: 0:269: 'noise' : no matching overloaded function found -ERROR: 0:269: 'reversebits' : no matching overloaded function found -ERROR: 0:269: 'length' : no matching overloaded function found -ERROR: 0:269: 'noise' : no matching overloaded function found -ERROR: 0:269: 'normalize' : no matching overloaded function found -ERROR: 0:269: 'reflect' : no matching overloaded function found -ERROR: 0:269: 'refract' : no matching overloaded function found -ERROR: 0:269: 'reversebits' : no matching overloaded function found -ERROR: 226 compilation errors. No code generated. - - Shader version: 450 -ERROR: node is still EOpNull! +0:? Sequence 0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) @@ -237,104 +8,6 @@ ERROR: node is still EOpNull! 0:15 'inF2' (in float) 0:15 'inI0' (in int) 0:? Sequence -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 -0:28 Constant: -0:28 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:35 Constant: -0:35 0.000000 -0:36 Constant: -0:36 0.000000 -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 Constant: -0:39 0.000000 -0:40 Constant: -0:40 0.000000 -0:41 Constant: -0:41 0.000000 -0:43 Constant: -0:43 0.000000 -0:44 Constant: -0:44 0.000000 -0:45 Constant: -0:45 0.000000 -0:46 Constant: -0:46 0.000000 -0:47 Constant: -0:47 0.000000 -0:48 Constant: -0:48 0.000000 -0:49 Constant: -0:49 0.000000 -0:50 Constant: -0:50 0.000000 -0:51 Constant: -0:51 0.000000 -0:52 Constant: -0:52 0.000000 -0:53 Constant: -0:53 0.000000 -0:54 Constant: -0:54 0.000000 -0:55 Constant: -0:55 0.000000 -0:56 Constant: -0:56 0.000000 -0:57 Constant: -0:57 0.000000 -0:58 Constant: -0:58 0.000000 -0:59 Constant: -0:59 0.000000 -0:60 Constant: -0:60 0.000000 -0:61 Constant: -0:61 0.000000 -0:62 Constant: -0:62 0.000000 -0:63 Constant: -0:63 0.000000 -0:64 Constant: -0:64 0.000000 -0:65 Constant: -0:65 0.000000 -0:66 Constant: -0:66 0.000000 -0:67 Constant: -0:67 0.000000 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 @@ -345,8 +18,6 @@ ERROR: node is still EOpNull! 0:75 'inF2' (in 1-component vector of float) 0:75 'inI0' (in 1-component vector of int) 0:? Sequence -0:78 Constant: -0:78 0.000000 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 @@ -357,78 +28,6 @@ ERROR: node is still EOpNull! 0:84 'inF2' (in 2-component vector of float) 0:84 'inI0' (in 2-component vector of int) 0:? Sequence -0:87 Constant: -0:87 0.000000 -0:88 Constant: -0:88 0.000000 -0:89 Constant: -0:89 0.000000 -0:90 Constant: -0:90 0.000000 -0:91 Constant: -0:91 0.000000 -0:92 Constant: -0:92 0.000000 -0:93 Constant: -0:93 0.000000 -0:94 Constant: -0:94 0.000000 -0:95 Constant: -0:95 0.000000 -0:96 Constant: -0:96 0.000000 -0:97 Constant: -0:97 0.000000 -0:98 Constant: -0:98 0.000000 -0:99 Constant: -0:99 0.000000 -0:100 Constant: -0:100 0.000000 -0:101 Constant: -0:101 0.000000 -0:102 Constant: -0:102 0.000000 -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:106 Constant: -0:106 0.000000 -0:107 Constant: -0:107 0.000000 -0:108 Constant: -0:108 0.000000 -0:109 Constant: -0:109 0.000000 -0:110 Constant: -0:110 0.000000 -0:111 Constant: -0:111 0.000000 -0:112 Constant: -0:112 0.000000 -0:113 Constant: -0:113 0.000000 -0:114 Constant: -0:114 0.000000 -0:115 Constant: -0:115 0.000000 -0:116 Constant: -0:116 0.000000 -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:119 Constant: -0:119 0.000000 -0:120 Constant: -0:120 0.000000 -0:121 Constant: -0:121 0.000000 -0:122 Constant: -0:122 0.000000 -0:123 Constant: -0:123 0.000000 0:127 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -440,275 +39,43 @@ ERROR: node is still EOpNull! 0:131 'inF2' (in 3-component vector of float) 0:131 'inI0' (in 3-component vector of int) 0:? Sequence -0:134 Constant: -0:134 0.000000 -0:135 Constant: -0:135 0.000000 -0:136 Constant: -0:136 0.000000 -0:137 Constant: -0:137 0.000000 -0:138 Constant: -0:138 0.000000 -0:139 Constant: -0:139 0.000000 -0:140 Constant: -0:140 0.000000 -0:141 Constant: -0:141 0.000000 -0:142 Constant: -0:142 0.000000 -0:143 Constant: -0:143 0.000000 -0:144 Constant: -0:144 0.000000 -0:145 Constant: -0:145 0.000000 -0:146 Constant: -0:146 0.000000 -0:147 Constant: -0:147 0.000000 -0:148 Constant: -0:148 0.000000 -0:149 Constant: -0:149 0.000000 -0:151 Constant: -0:151 0.000000 -0:152 Constant: -0:152 0.000000 -0:153 Constant: -0:153 0.000000 -0:154 Constant: -0:154 0.000000 -0:155 Constant: -0:155 0.000000 -0:156 Constant: -0:156 0.000000 -0:157 Constant: -0:157 0.000000 -0:158 Constant: -0:158 0.000000 -0:159 Constant: -0:159 0.000000 -0:160 Constant: -0:160 0.000000 -0:161 Constant: -0:161 0.000000 -0:162 Constant: -0:162 0.000000 -0:163 Constant: -0:163 0.000000 -0:164 Constant: -0:164 0.000000 -0:165 Constant: -0:165 0.000000 -0:166 Constant: -0:166 0.000000 -0:167 Constant: -0:167 0.000000 -0:168 Constant: -0:168 0.000000 0:172 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:250 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (in 4-component vector of float) 0:176 'inF1' (in 4-component vector of float) 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:179 Constant: -0:179 0.000000 -0:180 Constant: -0:180 0.000000 -0:181 Constant: -0:181 0.000000 -0:182 Constant: -0:182 0.000000 -0:183 Constant: -0:183 0.000000 -0:184 Constant: -0:184 0.000000 -0:185 Constant: -0:185 0.000000 -0:186 Constant: -0:186 0.000000 -0:187 Constant: -0:187 0.000000 -0:188 Constant: -0:188 0.000000 -0:189 Constant: -0:189 0.000000 -0:190 Constant: -0:190 0.000000 -0:191 Constant: -0:191 0.000000 -0:192 Constant: -0:192 0.000000 -0:193 Constant: -0:193 0.000000 -0:194 Constant: -0:194 0.000000 -0:196 Constant: -0:196 0.000000 -0:197 Constant: -0:197 0.000000 -0:198 Constant: -0:198 0.000000 -0:199 Constant: -0:199 0.000000 -0:200 Constant: -0:200 0.000000 -0:201 Constant: -0:201 0.000000 -0:202 Constant: -0:202 0.000000 -0:203 Constant: -0:203 0.000000 -0:204 Constant: -0:204 0.000000 -0:205 Constant: -0:205 0.000000 -0:206 Constant: -0:206 0.000000 -0:207 Constant: -0:207 0.000000 -0:208 Constant: -0:208 0.000000 -0:209 Constant: -0:209 0.000000 -0:210 Constant: -0:210 0.000000 -0:211 Constant: -0:211 0.000000 -0:212 Constant: -0:212 0.000000 -0:213 Constant: -0:213 0.000000 0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:258 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) -0:251 Function Parameters: -0:251 'inF0' (in 2X2 matrix of float) -0:251 'inF1' (in 2X2 matrix of float) -0:251 'inF2' (in 2X2 matrix of float) +0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Parameters: +0:226 'inF0' (in 2X2 matrix of float) +0:226 'inF1' (in 2X2 matrix of float) +0:226 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:255 Branch: Return with expression +0:230 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:266 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) -0:259 Function Parameters: -0:259 'inF0' (in 3X3 matrix of float) -0:259 'inF1' (in 3X3 matrix of float) -0:259 'inF2' (in 3X3 matrix of float) +0:241 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Parameters: +0:234 'inF0' (in 3X3 matrix of float) +0:234 'inF1' (in 3X3 matrix of float) +0:234 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:263 Branch: Return with expression +0:238 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -719,61 +86,13 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:273 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) -0:267 Function Parameters: -0:267 'inF0' (in 4X4 matrix of float) -0:267 'inF1' (in 4X4 matrix of float) -0:267 'inF2' (in 4X4 matrix of float) +0:248 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Parameters: +0:242 'inF0' (in 4X4 matrix of float) +0:242 'inF1' (in 4X4 matrix of float) +0:242 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:271 Branch: Return with expression +0:246 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -810,7 +129,7 @@ Linked vertex stage: Shader version: 450 -ERROR: node is still EOpNull! +0:? Sequence 0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) @@ -818,104 +137,6 @@ ERROR: node is still EOpNull! 0:15 'inF2' (in float) 0:15 'inI0' (in int) 0:? Sequence -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 -0:20 Constant: -0:20 0.000000 -0:21 Constant: -0:21 0.000000 -0:22 Constant: -0:22 0.000000 -0:23 Constant: -0:23 0.000000 -0:24 Constant: -0:24 0.000000 -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 -0:28 Constant: -0:28 0.000000 -0:29 Constant: -0:29 0.000000 -0:30 Constant: -0:30 0.000000 -0:31 Constant: -0:31 0.000000 -0:32 Constant: -0:32 0.000000 -0:33 Constant: -0:33 0.000000 -0:34 Constant: -0:34 0.000000 -0:35 Constant: -0:35 0.000000 -0:36 Constant: -0:36 0.000000 -0:37 Constant: -0:37 0.000000 -0:38 Constant: -0:38 0.000000 -0:39 Constant: -0:39 0.000000 -0:40 Constant: -0:40 0.000000 -0:41 Constant: -0:41 0.000000 -0:43 Constant: -0:43 0.000000 -0:44 Constant: -0:44 0.000000 -0:45 Constant: -0:45 0.000000 -0:46 Constant: -0:46 0.000000 -0:47 Constant: -0:47 0.000000 -0:48 Constant: -0:48 0.000000 -0:49 Constant: -0:49 0.000000 -0:50 Constant: -0:50 0.000000 -0:51 Constant: -0:51 0.000000 -0:52 Constant: -0:52 0.000000 -0:53 Constant: -0:53 0.000000 -0:54 Constant: -0:54 0.000000 -0:55 Constant: -0:55 0.000000 -0:56 Constant: -0:56 0.000000 -0:57 Constant: -0:57 0.000000 -0:58 Constant: -0:58 0.000000 -0:59 Constant: -0:59 0.000000 -0:60 Constant: -0:60 0.000000 -0:61 Constant: -0:61 0.000000 -0:62 Constant: -0:62 0.000000 -0:63 Constant: -0:63 0.000000 -0:64 Constant: -0:64 0.000000 -0:65 Constant: -0:65 0.000000 -0:66 Constant: -0:66 0.000000 -0:67 Constant: -0:67 0.000000 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 @@ -926,8 +147,6 @@ ERROR: node is still EOpNull! 0:75 'inF2' (in 1-component vector of float) 0:75 'inI0' (in 1-component vector of int) 0:? Sequence -0:78 Constant: -0:78 0.000000 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 @@ -938,78 +157,6 @@ ERROR: node is still EOpNull! 0:84 'inF2' (in 2-component vector of float) 0:84 'inI0' (in 2-component vector of int) 0:? Sequence -0:87 Constant: -0:87 0.000000 -0:88 Constant: -0:88 0.000000 -0:89 Constant: -0:89 0.000000 -0:90 Constant: -0:90 0.000000 -0:91 Constant: -0:91 0.000000 -0:92 Constant: -0:92 0.000000 -0:93 Constant: -0:93 0.000000 -0:94 Constant: -0:94 0.000000 -0:95 Constant: -0:95 0.000000 -0:96 Constant: -0:96 0.000000 -0:97 Constant: -0:97 0.000000 -0:98 Constant: -0:98 0.000000 -0:99 Constant: -0:99 0.000000 -0:100 Constant: -0:100 0.000000 -0:101 Constant: -0:101 0.000000 -0:102 Constant: -0:102 0.000000 -0:103 Constant: -0:103 0.000000 -0:104 Constant: -0:104 0.000000 -0:106 Constant: -0:106 0.000000 -0:107 Constant: -0:107 0.000000 -0:108 Constant: -0:108 0.000000 -0:109 Constant: -0:109 0.000000 -0:110 Constant: -0:110 0.000000 -0:111 Constant: -0:111 0.000000 -0:112 Constant: -0:112 0.000000 -0:113 Constant: -0:113 0.000000 -0:114 Constant: -0:114 0.000000 -0:115 Constant: -0:115 0.000000 -0:116 Constant: -0:116 0.000000 -0:117 Constant: -0:117 0.000000 -0:118 Constant: -0:118 0.000000 -0:119 Constant: -0:119 0.000000 -0:120 Constant: -0:120 0.000000 -0:121 Constant: -0:121 0.000000 -0:122 Constant: -0:122 0.000000 -0:123 Constant: -0:123 0.000000 0:127 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -1021,275 +168,43 @@ ERROR: node is still EOpNull! 0:131 'inF2' (in 3-component vector of float) 0:131 'inI0' (in 3-component vector of int) 0:? Sequence -0:134 Constant: -0:134 0.000000 -0:135 Constant: -0:135 0.000000 -0:136 Constant: -0:136 0.000000 -0:137 Constant: -0:137 0.000000 -0:138 Constant: -0:138 0.000000 -0:139 Constant: -0:139 0.000000 -0:140 Constant: -0:140 0.000000 -0:141 Constant: -0:141 0.000000 -0:142 Constant: -0:142 0.000000 -0:143 Constant: -0:143 0.000000 -0:144 Constant: -0:144 0.000000 -0:145 Constant: -0:145 0.000000 -0:146 Constant: -0:146 0.000000 -0:147 Constant: -0:147 0.000000 -0:148 Constant: -0:148 0.000000 -0:149 Constant: -0:149 0.000000 -0:151 Constant: -0:151 0.000000 -0:152 Constant: -0:152 0.000000 -0:153 Constant: -0:153 0.000000 -0:154 Constant: -0:154 0.000000 -0:155 Constant: -0:155 0.000000 -0:156 Constant: -0:156 0.000000 -0:157 Constant: -0:157 0.000000 -0:158 Constant: -0:158 0.000000 -0:159 Constant: -0:159 0.000000 -0:160 Constant: -0:160 0.000000 -0:161 Constant: -0:161 0.000000 -0:162 Constant: -0:162 0.000000 -0:163 Constant: -0:163 0.000000 -0:164 Constant: -0:164 0.000000 -0:165 Constant: -0:165 0.000000 -0:166 Constant: -0:166 0.000000 -0:167 Constant: -0:167 0.000000 -0:168 Constant: -0:168 0.000000 0:172 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:250 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (in 4-component vector of float) 0:176 'inF1' (in 4-component vector of float) 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:179 Constant: -0:179 0.000000 -0:180 Constant: -0:180 0.000000 -0:181 Constant: -0:181 0.000000 -0:182 Constant: -0:182 0.000000 -0:183 Constant: -0:183 0.000000 -0:184 Constant: -0:184 0.000000 -0:185 Constant: -0:185 0.000000 -0:186 Constant: -0:186 0.000000 -0:187 Constant: -0:187 0.000000 -0:188 Constant: -0:188 0.000000 -0:189 Constant: -0:189 0.000000 -0:190 Constant: -0:190 0.000000 -0:191 Constant: -0:191 0.000000 -0:192 Constant: -0:192 0.000000 -0:193 Constant: -0:193 0.000000 -0:194 Constant: -0:194 0.000000 -0:196 Constant: -0:196 0.000000 -0:197 Constant: -0:197 0.000000 -0:198 Constant: -0:198 0.000000 -0:199 Constant: -0:199 0.000000 -0:200 Constant: -0:200 0.000000 -0:201 Constant: -0:201 0.000000 -0:202 Constant: -0:202 0.000000 -0:203 Constant: -0:203 0.000000 -0:204 Constant: -0:204 0.000000 -0:205 Constant: -0:205 0.000000 -0:206 Constant: -0:206 0.000000 -0:207 Constant: -0:207 0.000000 -0:208 Constant: -0:208 0.000000 -0:209 Constant: -0:209 0.000000 -0:210 Constant: -0:210 0.000000 -0:211 Constant: -0:211 0.000000 -0:212 Constant: -0:212 0.000000 -0:213 Constant: -0:213 0.000000 0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:258 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) -0:251 Function Parameters: -0:251 'inF0' (in 2X2 matrix of float) -0:251 'inF1' (in 2X2 matrix of float) -0:251 'inF2' (in 2X2 matrix of float) +0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Parameters: +0:226 'inF0' (in 2X2 matrix of float) +0:226 'inF1' (in 2X2 matrix of float) +0:226 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:253 Constant: -0:253 0.000000 -0:255 Branch: Return with expression +0:230 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:266 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) -0:259 Function Parameters: -0:259 'inF0' (in 3X3 matrix of float) -0:259 'inF1' (in 3X3 matrix of float) -0:259 'inF2' (in 3X3 matrix of float) +0:241 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Parameters: +0:234 'inF0' (in 3X3 matrix of float) +0:234 'inF1' (in 3X3 matrix of float) +0:234 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:261 Constant: -0:261 0.000000 -0:263 Branch: Return with expression +0:238 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1300,61 +215,13 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:273 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) -0:267 Function Parameters: -0:267 'inF0' (in 4X4 matrix of float) -0:267 'inF1' (in 4X4 matrix of float) -0:267 'inF2' (in 4X4 matrix of float) +0:248 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Parameters: +0:242 'inF0' (in 4X4 matrix of float) +0:242 'inF1' (in 4X4 matrix of float) +0:242 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:269 Constant: -0:269 0.000000 -0:271 Branch: Return with expression +0:246 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1386,4 +253,175 @@ ERROR: node is still EOpNull! 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -SPIR-V is not generated for failed compile or link +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 119 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" + Source HLSL 450 + Name 4 "VertexShaderFunction" + Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inI0" + Name 21 "VertexShaderFunction1(vf1;vf1;vf1;vi1;" + Name 17 "inF0" + Name 18 "inF1" + Name 19 "inF2" + Name 20 "inI0" + Name 32 "VertexShaderFunction2(vf2;vf2;vf2;vi2;" + Name 28 "inF0" + Name 29 "inF1" + Name 30 "inF2" + Name 31 "inI0" + Name 43 "VertexShaderFunction3(vf3;vf3;vf3;vi3;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inF2" + Name 42 "inI0" + Name 51 "VertexShaderFunction2x2(mf22;mf22;mf22;" + Name 48 "inF0" + Name 49 "inF1" + Name 50 "inF2" + Name 59 "VertexShaderFunction3x3(mf33;mf33;mf33;" + Name 56 "inF0" + Name 57 "inF1" + Name 58 "inF2" + Name 68 "VertexShaderFunction4x4(mf44;mf44;mf44;" + Name 65 "inF0" + Name 66 "inF1" + Name 67 "inF2" + Name 101 "gs_ua" + Name 102 "gs_ub" + Name 103 "gs_uc" + Name 106 "gs_ua2" + Name 107 "gs_ub2" + Name 108 "gs_uc2" + Name 111 "gs_ua3" + Name 112 "gs_ub3" + Name 113 "gs_uc3" + Name 116 "gs_ua4" + Name 117 "gs_ub4" + Name 118 "gs_uc4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeInt 32 1 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 25: TypeVector 8(int) 2 + 26: TypePointer Function 25(ivec2) + 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) + 34: TypeVector 6(float) 3 + 35: TypePointer Function 34(fvec3) + 36: TypeVector 8(int) 3 + 37: TypePointer Function 36(ivec3) + 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) + 45: TypeMatrix 23(fvec2) 2 + 46: TypePointer Function 45 + 47: TypeFunction 45 46(ptr) 46(ptr) 46(ptr) + 53: TypeMatrix 34(fvec3) 3 + 54: TypePointer Function 53 + 55: TypeFunction 53 54(ptr) 54(ptr) 54(ptr) + 61: TypeVector 6(float) 4 + 62: TypeMatrix 61(fvec4) 4 + 63: TypePointer Function 62 + 64: TypeFunction 62 63(ptr) 63(ptr) 63(ptr) + 70: 6(float) Constant 0 + 75: 6(float) Constant 1065353216 + 76: 6(float) Constant 1073741824 + 77: 23(fvec2) ConstantComposite 75 76 + 80: 6(float) Constant 1077936128 + 81: 34(fvec3) ConstantComposite 75 76 80 + 84: 6(float) Constant 1082130432 + 85: 61(fvec4) ConstantComposite 75 76 80 84 + 87: 23(fvec2) ConstantComposite 76 76 + 88: 45 ConstantComposite 87 87 + 91: 34(fvec3) ConstantComposite 80 80 80 + 92: 53 ConstantComposite 91 91 91 + 95: 61(fvec4) ConstantComposite 84 84 84 84 + 96: 62 ConstantComposite 95 95 95 95 + 99: TypeInt 32 0 + 100: TypePointer Private 99(int) + 101(gs_ua): 100(ptr) Variable Private + 102(gs_ub): 100(ptr) Variable Private + 103(gs_uc): 100(ptr) Variable Private + 104: TypeVector 99(int) 2 + 105: TypePointer Private 104(ivec2) + 106(gs_ua2): 105(ptr) Variable Private + 107(gs_ub2): 105(ptr) Variable Private + 108(gs_uc2): 105(ptr) Variable Private + 109: TypeVector 99(int) 3 + 110: TypePointer Private 109(ivec3) + 111(gs_ua3): 110(ptr) Variable Private + 112(gs_ub3): 110(ptr) Variable Private + 113(gs_uc3): 110(ptr) Variable Private + 114: TypeVector 99(int) 4 + 115: TypePointer Private 114(ivec4) + 116(gs_ua4): 115(ptr) Variable Private + 117(gs_ub4): 115(ptr) Variable Private + 118(gs_uc4): 115(ptr) Variable Private +4(VertexShaderFunction): 2 Function None 3 + 5: Label + ReturnValue 85 + FunctionEnd +15(VertexShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inI0): 9(ptr) FunctionParameter + 16: Label + ReturnValue 70 + FunctionEnd +21(VertexShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 + 17(inF0): 7(ptr) FunctionParameter + 18(inF1): 7(ptr) FunctionParameter + 19(inF2): 7(ptr) FunctionParameter + 20(inI0): 9(ptr) FunctionParameter + 22: Label + ReturnValue 70 + FunctionEnd +32(VertexShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 + 28(inF0): 24(ptr) FunctionParameter + 29(inF1): 24(ptr) FunctionParameter + 30(inF2): 24(ptr) FunctionParameter + 31(inI0): 26(ptr) FunctionParameter + 33: Label + ReturnValue 77 + FunctionEnd +43(VertexShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 + 39(inF0): 35(ptr) FunctionParameter + 40(inF1): 35(ptr) FunctionParameter + 41(inF2): 35(ptr) FunctionParameter + 42(inI0): 37(ptr) FunctionParameter + 44: Label + ReturnValue 81 + FunctionEnd +51(VertexShaderFunction2x2(mf22;mf22;mf22;): 45 Function None 47 + 48(inF0): 46(ptr) FunctionParameter + 49(inF1): 46(ptr) FunctionParameter + 50(inF2): 46(ptr) FunctionParameter + 52: Label + ReturnValue 88 + FunctionEnd +59(VertexShaderFunction3x3(mf33;mf33;mf33;): 53 Function None 55 + 56(inF0): 54(ptr) FunctionParameter + 57(inF1): 54(ptr) FunctionParameter + 58(inF2): 54(ptr) FunctionParameter + 60: Label + ReturnValue 92 + FunctionEnd +68(VertexShaderFunction4x4(mf44;mf44;mf44;): 62 Function None 64 + 65(inF0): 63(ptr) FunctionParameter + 66(inF1): 63(ptr) FunctionParameter + 67(inF2): 63(ptr) FunctionParameter + 69: Label + ReturnValue 96 + FunctionEnd diff --git a/Test/hlsl.intrinsics.negative.comp b/Test/hlsl.intrinsics.negative.comp index c89d04bc..fe612d6e 100644 --- a/Test/hlsl.intrinsics.negative.comp +++ b/Test/hlsl.intrinsics.negative.comp @@ -4,49 +4,49 @@ float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0) // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(3.0); // expected error: only valid on integers - clip(inF0); // expected error: only valid in pixel stage - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - ddx(inF0); // expected error: only valid in pixel stage - ddx_coarse(inF0); // expected error: only valid in pixel stage - ddx_fine(inF0); // expected error: only valid in pixel stage - ddy(inF0); // expected error: only valid in pixel stage - ddy_coarse(inF0); // expected error: only valid in pixel stage - ddy_fine(inF0); // expected error: only valid in pixel stage - determinant(inF0); // expected error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(3.0); // expected error: only valid on integers + // clip(inF0); // expected error: only valid in pixel stage + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // expected error: only valid in pixel stage + // ddx_coarse(inF0); // expected error: only valid in pixel stage + // ddx_fine(inF0); // expected error: only valid in pixel stage + // ddy(inF0); // expected error: only valid in pixel stage + // ddy_coarse(inF0); // expected error: only valid in pixel stage + // ddy_fine(inF0); // expected error: only valid in pixel stage + // determinant(inF0); // expected error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage - InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - length(inF0); // expect error: invalid on scalars - msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs - normalize(inF0); // expect error: invalid on scalars - reflect(inF0, inF1); // expect error: invalid on scalars - refract(inF0, inF1, inF2); // expect error: invalid on scalars - refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // length(inF0); // expect error: invalid on scalars + // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + // normalize(inF0); // expect error: invalid on scalars + // reflect(inF0, inF1); // expect error: invalid on scalars + // refract(inF0, inF1, inF2); // expect error: invalid on scalars + // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -57,7 +57,7 @@ float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated - GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs return 0.0; } @@ -66,43 +66,43 @@ float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { uint2 out_u2; - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage - InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -113,41 +113,41 @@ float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { uint3 out_u3; - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -158,41 +158,41 @@ float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) { uint4 out_u4; - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - determinant(inF0); // expect error: only valid on mats - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // determinant(inF0); // expect error: only valid on mats + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + // EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index a5030cf1..fcfb761a 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -15,56 +15,56 @@ float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { uint out_u1; - AllMemoryBarrier(); // expected error: only valid in compute stage - AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(3.0); // expected error: only valid on integers - CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages - clip(inF0); // expected error: only valid in pixel stage - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages - DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - ddx(inF0); // expected error: only valid in pixel stage - ddx_coarse(inF0); // expected error: only valid in pixel stage - ddx_fine(inF0); // expected error: only valid in pixel stage - ddy(inF0); // expected error: only valid in pixel stage - ddy_coarse(inF0); // expected error: only valid in pixel stage - ddy_fine(inF0); // expected error: only valid in pixel stage - determinant(inF0); // expected error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // AllMemoryBarrier(); // expected error: only valid in compute stage + // AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(3.0); // expected error: only valid on integers + // CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages + // clip(inF0); // expected error: only valid in pixel stage + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages + // DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // ddx(inF0); // expected error: only valid in pixel stage + // ddx_coarse(inF0); // expected error: only valid in pixel stage + // ddx_fine(inF0); // expected error: only valid in pixel stage + // ddy(inF0); // expected error: only valid in pixel stage + // ddy_coarse(inF0); // expected error: only valid in pixel stage + // ddy_fine(inF0); // expected error: only valid in pixel stage + // determinant(inF0); // expected error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage - InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage - InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - GroupMemoryBarrier(); // expected error: only valid in compute stage - GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage - length(inF0); // expect error: invalid on scalars - msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs - normalize(inF0); // expect error: invalid on scalars - reflect(inF0, inF1); // expect error: invalid on scalars - refract(inF0, inF1, inF2); // expect error: invalid on scalars - refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + // GroupMemoryBarrier(); // expected error: only valid in compute stage + // GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage + // length(inF0); // expect error: invalid on scalars + // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + // normalize(inF0); // expect error: invalid on scalars + // reflect(inF0, inF1); // expect error: invalid on scalars + // refract(inF0, inF1, inF2); // expect error: invalid on scalars + // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -75,7 +75,7 @@ float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated - GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs return 0.0; } @@ -84,43 +84,43 @@ float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { uint2 out_u2; - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // asdouble(inF0, inF1); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage - InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -131,41 +131,41 @@ float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { uint3 out_u3; - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // determinant(inF0); // expect error: only valid on mats + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage - InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -176,41 +176,41 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) { uint4 out_u4; - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - determinant(inF0); // expect error: only valid on mats - ddx(inF0); // only valid in pixel stage - ddx_coarse(inF0); // only valid in pixel stage - ddx_fine(inF0); // only valid in pixel stage - ddy(inF0); // only valid in pixel stage - ddy_coarse(inF0); // only valid in pixel stage - ddy_fine(inF0); // only valid in pixel stage - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs + // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + // countbits(inF0); // expected error: only integer inputs + // cross(inF0, inF1); // expected error: only on float3 inputs + // determinant(inF0); // expect error: only valid on mats + // ddx(inF0); // only valid in pixel stage + // ddx_coarse(inF0); // only valid in pixel stage + // ddx_fine(inF0); // only valid in pixel stage + // ddy(inF0); // only valid in pixel stage + // ddy_coarse(inF0); // only valid in pixel stage + // ddy_fine(inF0); // only valid in pixel stage + // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant + // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant + // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant + // f16tof32(inF0); // expected error: only integer inputs + // firstbithigh(inF0); // expected error: only integer inputs + // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC - fwidth(inF0); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage - InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage - InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + // fwidth(inF0); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + // noise(inF0); // expected error: only valid in pixel stage + // reversebits(inF0); // expected error: only integer inputs + // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -218,32 +218,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) } // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() \ - countbits(inF0); \ - cross(inF0, inF1); \ - D3DCOLORtoUBYTE4(inF0); \ - ddx(inF0); \ - ddx_coarse(inF0); \ - ddx_fine(inF0); \ - ddy(inF0); \ - ddy_coarse(inF0); \ - ddy_fine(inF0); \ - EvaluateAttributeAtCentroid(inF0); \ - EvaluateAttributeAtSample(inF0, 2); \ - EvaluateAttributeSnapped(inF0, int2(2)); \ - f16tof32(inF0); \ - firstbithigh(inF0); \ - firstbitlow(inF0); \ - fwidth(inF0); \ - noise(inF0); \ - reversebits(inF0); \ - length(inF0); \ - noise(inF0); \ - normalize(inF0); \ - reflect(inF0, inF1); \ - refract(inF0, inF1, 1.0); \ - reversebits(inF0); \ - +#define MATFNS() // TODO: turn on non-square matrix tests when protos are available. diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 721da625..868a41ea 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -453,8 +453,24 @@ void TBuiltInParseablesHlsl::createMatTimesMat() void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/) { static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); - static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); - static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); + + // These are the actual stage masks defined in the documentation, in case they are + // needed for furture validation. For now, they are commented out, and set below + // to EShLangAll, to allow any intrinsic to be used in any shader, which is legal + // if it is not called. + // + // static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); + // static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); + // static const EShLanguageMask EShLangCS = EShLangComputeMask; + // static const EShLanguageMask EShLangPS = EShLangFragmentMask; + // static const EShLanguageMask EShLangHS = EShLangTessControlMask; + + // This set uses EShLangAll for everything. + static const EShLanguageMask EShLangPSCS = EShLangAll; + static const EShLanguageMask EShLangVSPSGS = EShLangAll; + static const EShLanguageMask EShLangCS = EShLangAll; + static const EShLanguageMask EShLangPS = EShLangAll; + static const EShLanguageMask EShLangHS = EShLangAll; // This structure encodes the prototype information for each HLSL intrinsic. // Because explicit enumeration would be cumbersome, it's procedurally generated. @@ -486,8 +502,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, { "all", "S", "B", "SVM", "BFI", EShLangAll }, - { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, + { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, { "any", "S", "B", "SVM", "BFI", EShLangAll }, { "asdouble", "S", "D", "S,", "U,", EShLangAll }, { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, @@ -500,29 +516,29 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS }, { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, - { "clip", "-", "-", "SVM", "F", EShLangFragmentMask }, + { "clip", "-", "-", "SVM", "F", EShLangPS }, { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, - { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS }, { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, { "determinant", "S", "F", "M", "F", EShLangAll }, { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS }, - { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, { "distance", "S", "F", "V,", "F,", EShLangAll }, { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll }, // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, - { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, - { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask }, + { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangPS }, + { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangPS }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangPS }, { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, @@ -535,11 +551,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangPS }, { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, - { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, - { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, + { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS }, { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS }, @@ -580,20 +596,20 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll }, // mat*mat form of mul is handled in createMatTimesMat() - { "noise", "S", "F", "V", "F", EShLangFragmentMask }, + { "noise", "S", "F", "V", "F", EShLangPS }, { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs - { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, - { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask }, + { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangHS }, + { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, + { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS }, { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, @@ -611,48 +627,48 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask }, - { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangFragmentMask }, - { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangFragmentMask }, - { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "V2,", "S,F", EShLangFragmentMask }, - { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask }, - { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask }, - { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "V3,", "S,F", EShLangFragmentMask }, - { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask }, - { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask }, - { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask }, - { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask }, - { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, - { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask }, - { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, - { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangFragmentMask }, + { "tex1D", "V4", "F", "V1,S", "S,F", EShLangPS }, + { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangPS }, + { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangPS }, + { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangPS }, + { "tex2D", "V4", "F", "V2,", "S,F", EShLangPS }, + { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, + { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangPS }, + { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangPS }, + { "tex3D", "V4", "F", "V3,", "S,F", EShLangPS }, + { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, + { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangPS }, + { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangPS }, + { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangPS }, + { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, + { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangPS }, + { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, + { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS }, + { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS }, { "transpose", "^M", nullptr, "M", "F", EShLangAll }, { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // Texture object methods. Return type can be overridden by shader declaration. // !O = no offset, O = offset - { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangFragmentMask }, - { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangFragmentMask }, + { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangPS }, + { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangPS }, - { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangFragmentMask }, - { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangFragmentMask }, + { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangPS }, + { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangPS }, // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangFragmentMask }, - { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangFragmentMask }, + { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangPS }, + { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS }, // TODO: FXC accepts int/uint samplers here. unclear what that means. - { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangFragmentMask }, - { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask }, + { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangPS }, + { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS }, { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll }, { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll }, @@ -668,8 +684,8 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, - { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, - { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask }, + { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS }, + { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS }, { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS }, From c6ede8938a0964671b34a2aab0b4abbd0c2c1f40 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Thu, 11 Aug 2016 14:06:06 -0400 Subject: [PATCH 068/217] Changing target to stage --- StandAlone/StandAlone.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 151141f0..f560847a 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -155,7 +155,7 @@ int Options = 0; const char* ExecutableName = nullptr; const char* binaryFileName = nullptr; const char* entryPointName = nullptr; -const char* shaderTargetName = nullptr; +const char* shaderStageName = nullptr; // // Create the default name for saving a binary if -o is not provided. @@ -238,7 +238,7 @@ void ProcessArguments(int argc, char* argv[]) Options |= EOptionLinkProgram; break; case 'T': - shaderTargetName = argv[1]; + shaderStageName = argv[1]; if (argc > 0) { argc--; argv++; @@ -696,8 +696,8 @@ EShLanguage FindLanguage(const std::string& name) } std::string suffix = name.substr(ext + 1, std::string::npos); - if (shaderTargetName) - suffix = shaderTargetName; + if (shaderStageName) + suffix = shaderStageName; if (suffix == "vert") return EShLangVertex; @@ -792,7 +792,7 @@ void usage() " -H print human readable form of SPIR-V; turns on -V\n" " -E print pre-processed GLSL; cannot be used with -l;\n" " errors will appear on stderr.\n" - " -T uses explicit target specified, rather then the file extension.\n" + " -S uses explicit stage specified, rather then the file extension.\n" " valid choices are vert,tesc, tese,geom, rag,comp\n" " -c configuration dump;\n" " creates the default configuration file (redirect to a .conf file)\n" From 895275e35790656aae3b97d0547a78b96a7648aa Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Thu, 11 Aug 2016 14:55:49 -0400 Subject: [PATCH 069/217] Standalone: Changing some comments and user strings --- StandAlone/StandAlone.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index f560847a..da12e9c4 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -244,7 +244,7 @@ void ProcessArguments(int argc, char* argv[]) argv++; } else - Error("no specified for -T"); + Error("no specified for -T"); break; case 'G': Options |= EOptionSpv; @@ -270,7 +270,6 @@ void ProcessArguments(int argc, char* argv[]) case 'e': // HLSL todo: entry point handle needs much more sophistication. // This is okay for one compilation unit with one entry point. - // dankbaker - not sure it needs to be, fxc has no more sophistication then this entryPointName = argv[1]; if (argc > 0) { argc--; @@ -793,7 +792,7 @@ void usage() " -E print pre-processed GLSL; cannot be used with -l;\n" " errors will appear on stderr.\n" " -S uses explicit stage specified, rather then the file extension.\n" - " valid choices are vert,tesc, tese,geom, rag,comp\n" + " valid choices are vert, tesc, tese, geom, frag, or comp\n" " -c configuration dump;\n" " creates the default configuration file (redirect to a .conf file)\n" " -C cascading errors; risks crashes from accumulation of error recoveries\n" From 5afdd7813193425d0ca727966569596d7b7cfc04 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Thu, 11 Aug 2016 17:53:57 -0400 Subject: [PATCH 070/217] Standalong: Changing -T to -S since it's a stage now instead of a target --- StandAlone/StandAlone.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index da12e9c4..db3891b8 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -237,14 +237,14 @@ void ProcessArguments(int argc, char* argv[]) Options |= EOptionVulkanRules; Options |= EOptionLinkProgram; break; - case 'T': + case 'S': shaderStageName = argv[1]; if (argc > 0) { argc--; argv++; } else - Error("no specified for -T"); + Error("no specified for -S"); break; case 'G': Options |= EOptionSpv; From b249f2fc24a4021c1d94b887b42183f17c93be44 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 11 Aug 2016 21:07:45 -0600 Subject: [PATCH 071/217] SPIRV: allow 64 bit literals in OperandVariableLiteralId class iteration. --- SPIRV/SPVRemapper.cpp | 133 +++++++++++++++++++++++++++++------------- SPIRV/SPVRemapper.h | 26 +++++---- 2 files changed, 107 insertions(+), 52 deletions(-) diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 05f220a1..6de729cc 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -127,6 +127,37 @@ namespace spv { } } + // Return the size of a type in 32-bit words. This currently only + // handles ints and floats, and is only invoked by queries which must be + // integer types. If ever needed, it can be generalized. + unsigned spirvbin_t::typeSizeInWords(spv::Id id) const + { + const unsigned typeStart = idPos(id); + const spv::Op opCode = asOpCode(typeStart); + + switch (opCode) { + case spv::OpTypeInt: // fall through... + case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32; + default: + error("unimplemented type size request"); + return 0; + } + } + + // Looks up the type of a given const or variable ID, and + // returns its size in 32-bit words. + unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const + { + const unsigned idStart = idPos(id); + const spv::Op opCode = asOpCode(idStart); + + if (spv::InstructionDesc[opCode].hasType()) + return typeSizeInWords(asId(idStart+1)); + + error("asked for type of typeless ID"); + return 0; + } + // Is this an opcode we should remove when using --strip? bool spirvbin_t::isStripOp(spv::Op opCode) const { @@ -140,6 +171,7 @@ namespace spv { } } + // Return true if this opcode is flow control bool spirvbin_t::isFlowCtrl(spv::Op opCode) const { switch (opCode) { @@ -155,6 +187,7 @@ namespace spv { } } + // Return true if this opcode defines a type bool spirvbin_t::isTypeOp(spv::Op opCode) const { switch (opCode) { @@ -182,6 +215,7 @@ namespace spv { } } + // Return true if this opcode defines a constant bool spirvbin_t::isConstOp(spv::Op opCode) const { switch (opCode) { @@ -324,7 +358,7 @@ namespace spv { fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); - typeConstPosR.clear(); + idPosR.clear(); entryPoint = spv::NoResult; largestNewId = 0; @@ -340,6 +374,14 @@ namespace spv { if ((options & STRIP) && isStripOp(opCode)) stripInst(start); + unsigned word = start+1; + + if (spv::InstructionDesc[opCode].hasType()) + word++; + + if (spv::InstructionDesc[opCode].hasResult()) + idPosR[asId(word++)] = start; + if (opCode == spv::Op::OpName) { const spv::Id target = asId(start+1); const std::string name = literalString(start+2); @@ -363,11 +405,9 @@ namespace spv { } else if (isConstOp(opCode)) { assert(asId(start + 2) != spv::NoResult); typeConstPos.insert(start); - typeConstPosR[asId(start + 2)] = start; } else if (isTypeOp(opCode)) { assert(asId(start + 1) != spv::NoResult); typeConstPos.insert(start); - typeConstPosR[asId(start + 1)] = start; } return false; @@ -459,13 +499,22 @@ namespace spv { // word += numOperands; return nextInst; - case spv::OperandVariableLiteralId: - while (numOperands > 0) { - ++word; // immediate - idFn(asId(word++)); // ID - numOperands -= 2; + case spv::OperandVariableLiteralId: { + if (opCode == OpSwitch) { + // word-2 is the position of the selector ID. Literals match its type. + const unsigned literalSize = idTypeSizeInWords(asId(word-2)); + unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); + + for (unsigned arg=0; arg typeUseCount; - // Count total type usage - process(inst_fn_nop, - [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } - ); + // This is not the most efficient algorithm, but this is an offline tool, and + // it's easy to write this way. Can be improved opportunistically if needed. + bool changed = true; + while (changed) { + changed = false; + strip(); + typeUseCount.clear(); - // Remove types from deleted code - for (const auto& fn : fnPosDCE) + // Count total type usage process(inst_fn_nop, - [&](spv::Id& id) { if (isType[id]) --typeUseCount[id]; }, - fn.second.first, fn.second.second); + [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } + ); - // Remove single reference types - for (const auto typeStart : typeConstPos) { - const spv::Id typeId = asTypeConstId(typeStart); - if (typeUseCount[typeId] == 1) { - --typeUseCount[typeId]; - stripInst(typeStart); + // Remove single reference types + for (const auto typeStart : typeConstPos) { + const spv::Id typeId = asTypeConstId(typeStart); + if (typeUseCount[typeId] == 1) { + changed = true; + --typeUseCount[typeId]; + stripInst(typeStart); + } } } } @@ -1060,12 +1113,12 @@ namespace spv { } #endif // NOTDEF - // Return start position in SPV of given type. error if not found. - unsigned spirvbin_t::typePos(spv::Id id) const + // Return start position in SPV of given Id. error if not found. + unsigned spirvbin_t::idPos(spv::Id id) const { - const auto tid_it = typeConstPosR.find(id); - if (tid_it == typeConstPosR.end()) - error("type ID not found"); + const auto tid_it = idPosR.find(id); + if (tid_it == idPosR.end()) + error("ID not found"); return tid_it->second; } @@ -1083,11 +1136,11 @@ namespace spv { case spv::OpTypeInt: return 3 + (spv[typeStart+3]); case spv::OpTypeFloat: return 5; case spv::OpTypeVector: - return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 6 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeMatrix: - return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 30 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeImage: - return 120 + hashType(typePos(spv[typeStart+2])) + + return 120 + hashType(idPos(spv[typeStart+2])) + spv[typeStart+3] + // dimensionality spv[typeStart+4] * 8 * 16 + // depth spv[typeStart+5] * 4 * 16 + // arrayed @@ -1098,24 +1151,24 @@ namespace spv { case spv::OpTypeSampledImage: return 502; case spv::OpTypeArray: - return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3]; + return 501 + hashType(idPos(spv[typeStart+2])) * spv[typeStart+3]; case spv::OpTypeRuntimeArray: - return 5000 + hashType(typePos(spv[typeStart+2])); + return 5000 + hashType(idPos(spv[typeStart+2])); case spv::OpTypeStruct: { std::uint32_t hash = 10000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } case spv::OpTypeOpaque: return 6000 + spv[typeStart+2]; - case spv::OpTypePointer: return 100000 + hashType(typePos(spv[typeStart+3])); + case spv::OpTypePointer: return 100000 + hashType(idPos(spv[typeStart+3])); case spv::OpTypeFunction: { std::uint32_t hash = 200000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } @@ -1132,14 +1185,14 @@ namespace spv { case spv::OpConstantFalse: return 300008; case spv::OpConstantComposite: { - std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1])); + std::uint32_t hash = 300011 + hashType(idPos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } case spv::OpConstant: { - std::uint32_t hash = 400011 + hashType(typePos(spv[typeStart+1])); + std::uint32_t hash = 400011 + hashType(idPos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) hash += w * spv[typeStart+w]; return hash; @@ -1212,19 +1265,19 @@ namespace spv { msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); strip(); // strip out data we decided to eliminate - if (options & OPT_LOADSTORE) optLoadStore(); if (options & OPT_FWD_LS) forwardLoadStores(); if (options & DCE_FUNCS) dceFuncs(); if (options & DCE_VARS) dceVars(); if (options & DCE_TYPES) dceTypes(); + strip(); // strip out data we decided to eliminate + if (options & MAP_TYPES) mapTypeConst(); if (options & MAP_NAMES) mapNames(); if (options & MAP_FUNCS) mapFnBodies(); mapRemainder(); // map any unmapped IDs applyMap(); // Now remap each shader to the new IDs we've come up with - strip(); // strip out data we decided to eliminate } // remap from a memory image diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index c2dc5291..2454a684 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -162,13 +162,15 @@ private: // handle error void error(const std::string& txt) const { errorHandler(txt); } - bool isConstOp(spv::Op opCode) const; - bool isTypeOp(spv::Op opCode) const; - bool isStripOp(spv::Op opCode) const; - bool isFlowCtrl(spv::Op opCode) const; - range_t literalRange(spv::Op opCode) const; - range_t typeRange(spv::Op opCode) const; - range_t constRange(spv::Op opCode) const; + bool isConstOp(spv::Op opCode) const; + bool isTypeOp(spv::Op opCode) const; + bool isStripOp(spv::Op opCode) const; + bool isFlowCtrl(spv::Op opCode) const; + range_t literalRange(spv::Op opCode) const; + range_t typeRange(spv::Op opCode) const; + range_t constRange(spv::Op opCode) const; + unsigned typeSizeInWords(spv::Id id) const; + unsigned idTypeSizeInWords(spv::Id id) const; spv::Id& asId(unsigned word) { return spv[word]; } const spv::Id& asId(unsigned word) const { return spv[word]; } @@ -177,10 +179,10 @@ private: spv::Decoration asDecoration(unsigned word) const { return spv::Decoration(spv[word]); } unsigned asWordCount(unsigned word) const { return opWordCount(spv[word]); } spv::Id asTypeConstId(unsigned word) const { return asId(word + (isTypeOp(asOpCode(word)) ? 1 : 2)); } - unsigned typePos(spv::Id id) const; + unsigned idPos(spv::Id id) const; - static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } - static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } + static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } + static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } // Header access & set methods spirword_t magic() const { return spv[0]; } // return magic number @@ -263,8 +265,8 @@ private: // Which functions are called, anywhere in the module, with a call count std::unordered_map fnCalls; - posmap_t typeConstPos; // word positions that define types & consts (ordered) - posmap_rev_t typeConstPosR; // reverse map from IDs to positions + posmap_t typeConstPos; // word positions that define types & consts (ordered) + posmap_rev_t idPosR; // reverse map from IDs to positions std::vector idMapL; // ID {M}ap from {L}ocal to {G}lobal IDs From b86e8b629a37b758bc272867ea661147c4b7b361 Mon Sep 17 00:00:00 2001 From: David Neto Date: Fri, 12 Aug 2016 16:49:21 -0400 Subject: [PATCH 072/217] Revert "Merge pull request #456 from steve-lunarg/remapper-literal64" This reverts commit ad08b30f696267ec6243dd0ad68a3db889cd2d21, reversing changes made to 28660bb580d4c61e16ef75008550a87b3be90b91. This backs out the pull request https://github.com/KhronosGroup/glslang/pull/456 because it introduced several internal errors even on code that only uses 32-bit numeric types. --- SPIRV/SPVRemapper.cpp | 133 +++++++++++++----------------------------- SPIRV/SPVRemapper.h | 26 ++++----- 2 files changed, 52 insertions(+), 107 deletions(-) diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 6de729cc..05f220a1 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -127,37 +127,6 @@ namespace spv { } } - // Return the size of a type in 32-bit words. This currently only - // handles ints and floats, and is only invoked by queries which must be - // integer types. If ever needed, it can be generalized. - unsigned spirvbin_t::typeSizeInWords(spv::Id id) const - { - const unsigned typeStart = idPos(id); - const spv::Op opCode = asOpCode(typeStart); - - switch (opCode) { - case spv::OpTypeInt: // fall through... - case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32; - default: - error("unimplemented type size request"); - return 0; - } - } - - // Looks up the type of a given const or variable ID, and - // returns its size in 32-bit words. - unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const - { - const unsigned idStart = idPos(id); - const spv::Op opCode = asOpCode(idStart); - - if (spv::InstructionDesc[opCode].hasType()) - return typeSizeInWords(asId(idStart+1)); - - error("asked for type of typeless ID"); - return 0; - } - // Is this an opcode we should remove when using --strip? bool spirvbin_t::isStripOp(spv::Op opCode) const { @@ -171,7 +140,6 @@ namespace spv { } } - // Return true if this opcode is flow control bool spirvbin_t::isFlowCtrl(spv::Op opCode) const { switch (opCode) { @@ -187,7 +155,6 @@ namespace spv { } } - // Return true if this opcode defines a type bool spirvbin_t::isTypeOp(spv::Op opCode) const { switch (opCode) { @@ -215,7 +182,6 @@ namespace spv { } } - // Return true if this opcode defines a constant bool spirvbin_t::isConstOp(spv::Op opCode) const { switch (opCode) { @@ -358,7 +324,7 @@ namespace spv { fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); - idPosR.clear(); + typeConstPosR.clear(); entryPoint = spv::NoResult; largestNewId = 0; @@ -374,14 +340,6 @@ namespace spv { if ((options & STRIP) && isStripOp(opCode)) stripInst(start); - unsigned word = start+1; - - if (spv::InstructionDesc[opCode].hasType()) - word++; - - if (spv::InstructionDesc[opCode].hasResult()) - idPosR[asId(word++)] = start; - if (opCode == spv::Op::OpName) { const spv::Id target = asId(start+1); const std::string name = literalString(start+2); @@ -405,9 +363,11 @@ namespace spv { } else if (isConstOp(opCode)) { assert(asId(start + 2) != spv::NoResult); typeConstPos.insert(start); + typeConstPosR[asId(start + 2)] = start; } else if (isTypeOp(opCode)) { assert(asId(start + 1) != spv::NoResult); typeConstPos.insert(start); + typeConstPosR[asId(start + 1)] = start; } return false; @@ -499,22 +459,13 @@ namespace spv { // word += numOperands; return nextInst; - case spv::OperandVariableLiteralId: { - if (opCode == OpSwitch) { - // word-2 is the position of the selector ID. Literals match its type. - const unsigned literalSize = idTypeSizeInWords(asId(word-2)); - unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); - - for (unsigned arg=0; arg 0) { + ++word; // immediate + idFn(asId(word++)); // ID + numOperands -= 2; } - return nextInst; - } case spv::OperandLiteralString: { const int stringWordCount = literalStringWords(literalString(word)); @@ -1015,27 +966,23 @@ namespace spv { std::unordered_map typeUseCount; - // This is not the most efficient algorithm, but this is an offline tool, and - // it's easy to write this way. Can be improved opportunistically if needed. - bool changed = true; - while (changed) { - changed = false; - strip(); - typeUseCount.clear(); + // Count total type usage + process(inst_fn_nop, + [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } + ); - // Count total type usage + // Remove types from deleted code + for (const auto& fn : fnPosDCE) process(inst_fn_nop, - [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } - ); + [&](spv::Id& id) { if (isType[id]) --typeUseCount[id]; }, + fn.second.first, fn.second.second); - // Remove single reference types - for (const auto typeStart : typeConstPos) { - const spv::Id typeId = asTypeConstId(typeStart); - if (typeUseCount[typeId] == 1) { - changed = true; - --typeUseCount[typeId]; - stripInst(typeStart); - } + // Remove single reference types + for (const auto typeStart : typeConstPos) { + const spv::Id typeId = asTypeConstId(typeStart); + if (typeUseCount[typeId] == 1) { + --typeUseCount[typeId]; + stripInst(typeStart); } } } @@ -1113,12 +1060,12 @@ namespace spv { } #endif // NOTDEF - // Return start position in SPV of given Id. error if not found. - unsigned spirvbin_t::idPos(spv::Id id) const + // Return start position in SPV of given type. error if not found. + unsigned spirvbin_t::typePos(spv::Id id) const { - const auto tid_it = idPosR.find(id); - if (tid_it == idPosR.end()) - error("ID not found"); + const auto tid_it = typeConstPosR.find(id); + if (tid_it == typeConstPosR.end()) + error("type ID not found"); return tid_it->second; } @@ -1136,11 +1083,11 @@ namespace spv { case spv::OpTypeInt: return 3 + (spv[typeStart+3]); case spv::OpTypeFloat: return 5; case spv::OpTypeVector: - return 6 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeMatrix: - return 30 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeImage: - return 120 + hashType(idPos(spv[typeStart+2])) + + return 120 + hashType(typePos(spv[typeStart+2])) + spv[typeStart+3] + // dimensionality spv[typeStart+4] * 8 * 16 + // depth spv[typeStart+5] * 4 * 16 + // arrayed @@ -1151,24 +1098,24 @@ namespace spv { case spv::OpTypeSampledImage: return 502; case spv::OpTypeArray: - return 501 + hashType(idPos(spv[typeStart+2])) * spv[typeStart+3]; + return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3]; case spv::OpTypeRuntimeArray: - return 5000 + hashType(idPos(spv[typeStart+2])); + return 5000 + hashType(typePos(spv[typeStart+2])); case spv::OpTypeStruct: { std::uint32_t hash = 10000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); + hash += w * hashType(typePos(spv[typeStart+w])); return hash; } case spv::OpTypeOpaque: return 6000 + spv[typeStart+2]; - case spv::OpTypePointer: return 100000 + hashType(idPos(spv[typeStart+3])); + case spv::OpTypePointer: return 100000 + hashType(typePos(spv[typeStart+3])); case spv::OpTypeFunction: { std::uint32_t hash = 200000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); + hash += w * hashType(typePos(spv[typeStart+w])); return hash; } @@ -1185,14 +1132,14 @@ namespace spv { case spv::OpConstantFalse: return 300008; case spv::OpConstantComposite: { - std::uint32_t hash = 300011 + hashType(idPos(spv[typeStart+1])); + std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) - hash += w * hashType(idPos(spv[typeStart+w])); + hash += w * hashType(typePos(spv[typeStart+w])); return hash; } case spv::OpConstant: { - std::uint32_t hash = 400011 + hashType(idPos(spv[typeStart+1])); + std::uint32_t hash = 400011 + hashType(typePos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) hash += w * spv[typeStart+w]; return hash; @@ -1265,19 +1212,19 @@ namespace spv { msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); strip(); // strip out data we decided to eliminate + if (options & OPT_LOADSTORE) optLoadStore(); if (options & OPT_FWD_LS) forwardLoadStores(); if (options & DCE_FUNCS) dceFuncs(); if (options & DCE_VARS) dceVars(); if (options & DCE_TYPES) dceTypes(); - strip(); // strip out data we decided to eliminate - if (options & MAP_TYPES) mapTypeConst(); if (options & MAP_NAMES) mapNames(); if (options & MAP_FUNCS) mapFnBodies(); mapRemainder(); // map any unmapped IDs applyMap(); // Now remap each shader to the new IDs we've come up with + strip(); // strip out data we decided to eliminate } // remap from a memory image diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index 2454a684..c2dc5291 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -162,15 +162,13 @@ private: // handle error void error(const std::string& txt) const { errorHandler(txt); } - bool isConstOp(spv::Op opCode) const; - bool isTypeOp(spv::Op opCode) const; - bool isStripOp(spv::Op opCode) const; - bool isFlowCtrl(spv::Op opCode) const; - range_t literalRange(spv::Op opCode) const; - range_t typeRange(spv::Op opCode) const; - range_t constRange(spv::Op opCode) const; - unsigned typeSizeInWords(spv::Id id) const; - unsigned idTypeSizeInWords(spv::Id id) const; + bool isConstOp(spv::Op opCode) const; + bool isTypeOp(spv::Op opCode) const; + bool isStripOp(spv::Op opCode) const; + bool isFlowCtrl(spv::Op opCode) const; + range_t literalRange(spv::Op opCode) const; + range_t typeRange(spv::Op opCode) const; + range_t constRange(spv::Op opCode) const; spv::Id& asId(unsigned word) { return spv[word]; } const spv::Id& asId(unsigned word) const { return spv[word]; } @@ -179,10 +177,10 @@ private: spv::Decoration asDecoration(unsigned word) const { return spv::Decoration(spv[word]); } unsigned asWordCount(unsigned word) const { return opWordCount(spv[word]); } spv::Id asTypeConstId(unsigned word) const { return asId(word + (isTypeOp(asOpCode(word)) ? 1 : 2)); } - unsigned idPos(spv::Id id) const; + unsigned typePos(spv::Id id) const; - static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } - static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } + static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } + static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } // Header access & set methods spirword_t magic() const { return spv[0]; } // return magic number @@ -265,8 +263,8 @@ private: // Which functions are called, anywhere in the module, with a call count std::unordered_map fnCalls; - posmap_t typeConstPos; // word positions that define types & consts (ordered) - posmap_rev_t idPosR; // reverse map from IDs to positions + posmap_t typeConstPos; // word positions that define types & consts (ordered) + posmap_rev_t typeConstPosR; // reverse map from IDs to positions std::vector idMapL; // ID {M}ap from {L}ocal to {G}lobal IDs From 1eb1c11dea1e90310a8bd764f8fa8af11b8bc6c4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 15 Aug 2016 18:01:15 +0200 Subject: [PATCH 073/217] fix x64 warning about conversion size_t -> int --- hlsl/hlslParseHelper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2a793759..8ee8f9c7 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1346,7 +1346,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TSamplerDim dim = argTex->getType().getSampler().dim; - const int argSize = argAggregate->getSequence().size(); + const int argSize = (int)argAggregate->getSequence().size(); bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues)); bool hasOffset1 = false; bool hasOffset4 = false; From 55d5f2d4dfd2b0e6d95fd45d0846516a1734f9d6 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Mon, 15 Aug 2016 16:05:45 -0400 Subject: [PATCH 074/217] HLSL: Changing SPIRV source language to unkown --- SPIRV/GlslangToSpv.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 5993e163..5f631b4d 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -212,7 +212,8 @@ spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile return spv::SourceLanguageUnknown; } case glslang::EShSourceHlsl: - return spv::SourceLanguageHLSL; + //Use SourceLanguageUnknown instead of SourceLanguageHLSL for now, until Vulkan knows what HLSL is + return spv::SourceLanguageUnknown; default: return spv::SourceLanguageUnknown; } From 2c646b7afa32ca8c1f62636bb13456a8cab728d4 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Mon, 15 Aug 2016 16:25:55 -0400 Subject: [PATCH 075/217] Updating tests, sadly every single HLSL test needs updating becuase of the language identifier --- Test/baseResults/hlsl.array.frag.out | 1 - Test/baseResults/hlsl.assoc.frag.out | 1 - Test/baseResults/hlsl.attribute.frag.out | 1 - Test/baseResults/hlsl.buffer.frag.out | 1 - Test/baseResults/hlsl.calculatelod.dx10.frag.out | 1 - Test/baseResults/hlsl.cast.frag.out | 1 - Test/baseResults/hlsl.conditional.frag.out | 1 - Test/baseResults/hlsl.constructexpr.frag.out | 1 - Test/baseResults/hlsl.discard.frag.out | 1 - Test/baseResults/hlsl.doLoop.frag.out | 1 - Test/baseResults/hlsl.float1.frag.out | 1 - Test/baseResults/hlsl.float4.frag.out | 1 - Test/baseResults/hlsl.forLoop.frag.out | 1 - Test/baseResults/hlsl.gather.array.dx10.frag.out | 1 - Test/baseResults/hlsl.gather.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.gather.basic.dx10.vert.out | 1 - Test/baseResults/hlsl.gather.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out | 1 - Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.getdimensions.dx10.frag.out | 1 - Test/baseResults/hlsl.getdimensions.dx10.vert.out | 1 - Test/baseResults/hlsl.if.frag.out | 1 - Test/baseResults/hlsl.init.frag.out | 1 - Test/baseResults/hlsl.init2.frag.out | 1 - Test/baseResults/hlsl.inoutquals.frag.out | 1 - Test/baseResults/hlsl.intrinsics.barriers.comp.out | 1 - Test/baseResults/hlsl.intrinsics.comp.out | 1 - Test/baseResults/hlsl.intrinsics.double.frag.out | 1 - Test/baseResults/hlsl.intrinsics.evalfns.frag.out | 1 - Test/baseResults/hlsl.intrinsics.frag.out | 1 - Test/baseResults/hlsl.intrinsics.lit.frag.out | 1 - Test/baseResults/hlsl.intrinsics.negative.comp.out | 1 - Test/baseResults/hlsl.intrinsics.negative.vert.out | 1 - Test/baseResults/hlsl.intrinsics.vert.out | 1 - Test/baseResults/hlsl.load.2dms.dx10.frag.out | 1 - Test/baseResults/hlsl.load.array.dx10.frag.out | 1 - Test/baseResults/hlsl.load.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.load.basic.dx10.vert.out | 1 - Test/baseResults/hlsl.load.buffer.dx10.frag.out | 1 - Test/baseResults/hlsl.load.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.load.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.matType.frag.out | 1 - Test/baseResults/hlsl.max.frag.out | 1 - Test/baseResults/hlsl.numericsuffixes.frag.out | 1 - Test/baseResults/hlsl.pp.line.frag.out | 1 - Test/baseResults/hlsl.precedence.frag.out | 1 - Test/baseResults/hlsl.precedence2.frag.out | 1 - Test/baseResults/hlsl.promotions.frag.out | 1 - Test/baseResults/hlsl.sample.array.dx10.frag.out | 1 - Test/baseResults/hlsl.sample.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.sample.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.samplebias.array.dx10.frag.out | 1 - Test/baseResults/hlsl.samplebias.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.samplebias.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmp.array.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out | 1 - .../hlsl.samplecmplevelzero.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.samplegrad.array.dx10.frag.out | 1 - Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out | 1 - Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.samplelevel.array.dx10.frag.out | 1 - Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out | 1 - Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out | 1 - Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out | 1 - Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out | 1 - Test/baseResults/hlsl.scope.frag.out | 1 - Test/baseResults/hlsl.semicolons.frag.out | 1 - Test/baseResults/hlsl.shapeConv.frag.out | 1 - Test/baseResults/hlsl.sin.frag.out | 1 - Test/baseResults/hlsl.struct.frag.out | 1 - Test/baseResults/hlsl.switch.frag.out | 1 - Test/baseResults/hlsl.swizzle.frag.out | 1 - Test/baseResults/hlsl.templatetypes.frag.out | 1 - Test/baseResults/hlsl.typedef.frag.out | 1 - Test/baseResults/hlsl.void.frag.out | 1 - Test/baseResults/hlsl.whileLoop.frag.out | 1 - 88 files changed, 88 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index abc7ebbf..0aa38ba8 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -108,7 +108,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 19 27 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 12 "a" Name 19 "i" diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 89eea725..14a747cf 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -76,7 +76,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "a1" Name 10 "a2" diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 77e34fe6..60c6d1d2 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -40,7 +40,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index a51be517..5faeceb8 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -82,7 +82,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" Name 11 "" diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 43232fba..0a616db3 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -325,7 +325,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "txval10" Name 11 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 24b18cda..04ac605c 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -56,7 +56,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" 2: TypeVoid diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index 1e62e9cf..ff096784 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -228,7 +228,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 22 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "a" Name 10 "b" diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 2eef7c0d..0dcfca62 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -90,7 +90,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 324029ad..5495deac 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -96,7 +96,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 21 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 10 "foo(f1;" Name 9 "f" diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index c14a3a57..9bef3328 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -66,7 +66,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 23 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 23 "input" 2: TypeVoid diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 07de03ee..64c7e17a 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -72,7 +72,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 370a5069..08a98756 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -67,7 +67,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 9764e267..45d2e996 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -232,7 +232,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 13 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 13 "input" Name 89 "ii" diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 70d1bf12..0cac13aa 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -228,7 +228,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4a" diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index c52d7cd4..fc90646c 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -223,7 +223,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 667c39f8..4e862ef8 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -206,7 +206,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" - Source HLSL 450 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index d5a39215..056f16b2 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -173,7 +173,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index a1f628aa..cded67f8 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -167,7 +167,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index cad56b6c..5386fc7c 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -578,7 +578,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4a" diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 8fd96913..0152b079 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -585,7 +585,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index ea0d94a0..46561f90 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -738,7 +738,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4" diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index f9c28d03..91c51bfe 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -731,7 +731,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4a" diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index dd47567a..cff4a531 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2202,7 +2202,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 9170402f..69b4dd13 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -99,7 +99,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" - Source HLSL 450 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 4554ec6a..335e8981 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -166,7 +166,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" Name 65 "ii" diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index bc7c21b1..07679345 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -310,7 +310,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "ShaderFunction" 88 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "ShaderFunction" Name 9 "a1" Name 14 "b1" diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 439fd375..716c34e0 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -108,7 +108,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 6 "Test1(" Name 10 "mystruct" diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 3fb207b3..e48bfb8c 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -132,7 +132,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 45 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" Name 9 "x" diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index c400fea3..46cf5d55 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -46,7 +46,6 @@ local_size = (1, 1, 1) MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 450 Name 4 "ComputeShaderFunction" 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 4c7eabbc..0dd308fb 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -652,7 +652,6 @@ local_size = (1, 1, 1) MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" 175 ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 450 Name 4 "ComputeShaderFunction" Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 8bfc072f..350c3321 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -79,7 +79,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "r00" Name 10 "inDV1a" diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index f1b64114..c0314694 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -105,7 +105,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 8 15 22 29 36 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "inF1" Name 15 "inF2" diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index f4e2434f..4412726a 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -5561,7 +5561,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index fe6f93c9..c5647631 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -88,7 +88,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 12 19 28 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "r0" Name 12 "n_dot_l" diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 9c9a7080..db256050 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -134,7 +134,6 @@ local_size = (1, 1, 1) MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" ExecutionMode 4 LocalSize 1 1 1 - Source HLSL 450 Name 4 "ComputeShaderFunction" Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index b8c46226..de2da898 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -261,7 +261,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "VertexShaderFunction" - Source HLSL 450 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 926501e0..7f9ee7d7 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -2799,7 +2799,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "VertexShaderFunction" - Source HLSL 450 Name 4 "VertexShaderFunction" Name 16 "VertexShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index c9f4c91c..6dfee1b4 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -230,7 +230,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "g_tTex2dmsf4" Name 14 "c2" diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index ea7e3475..12636502 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -296,7 +296,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "g_tTex1df4a" Name 14 "c3" diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 54f964e2..35e6956b 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -362,7 +362,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index cd4fea53..a5fccaf3 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -345,7 +345,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" - Source HLSL 450 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 8c77675c..220f3ddb 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -127,7 +127,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "r00" Name 13 "g_tTexbf4" diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index da9f2e43..fb053bfb 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -381,7 +381,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 97c164cd..548a7c70 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -309,7 +309,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "g_tTex1df4a" Name 14 "c3" diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index b081a4af..a1a6d492 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -53,7 +53,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index aad47997..58505eca 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -40,7 +40,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input1" Name 11 "input2" diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 5ba5831f..57013709 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -138,7 +138,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r00" Name 12 "r01" diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 6484eb0d..89b9b7b8 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -84,7 +84,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "thisLineIs" Name 12 "PS_OUTPUT" diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 2ad5ab5e..3c9252ed 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -102,7 +102,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 17 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "a1" Name 11 "a2" diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index bfe2643c..a0205f08 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -68,7 +68,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 8 10 13 16 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "a1" Name 10 "a2" diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index c92b61f3..41bca2ff 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -1035,7 +1035,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 11 "Fn_F3(vf3;" Name 10 "x" diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 6336cfa2..9ab682ff 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -288,7 +288,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index feb64613..6960c32e 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -515,7 +515,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 7 "MemberTest" MemberName 7(MemberTest) 0 "Sample" diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index ce207773..1ec6bdec 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -329,7 +329,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 008ba944..e976a419 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -239,7 +239,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index b6725441..863a3bad 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -324,7 +324,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 8161a59f..176e58ab 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -389,7 +389,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 8c5726ce..4dbaf2b0 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -365,7 +365,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 09335947..c4691ddf 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -263,7 +263,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 1b2d27f2..6f11d65e 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -364,7 +364,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 3068030d..7824cc66 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -346,7 +346,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index df298da0..346279bb 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -292,7 +292,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 5d420730..643cef46 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -304,7 +304,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index c54e2d5e..a17e9743 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -400,7 +400,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 1fbdb489..4d9f8369 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -382,7 +382,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 68d07d5d..f4072068 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -316,7 +316,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 627b0238..81048321 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -328,7 +328,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 6da919a9..375dfb96 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -396,7 +396,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 0685dc2e..30c4c7d7 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -497,7 +497,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index eacddae8..7e7f4561 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -480,7 +480,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 343babc0..be5b7a03 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -437,7 +437,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 3318e460..a152cb77 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -306,7 +306,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index dd042de6..1b675b22 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -324,7 +324,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4a" diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 52c635d4..dbdc7778 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -391,7 +391,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 4bef16d3..0a55d855 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -372,7 +372,6 @@ Shader version: 450 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 4f7a1a0d..a7b54f99 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -365,7 +365,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 0d18428a..b37c00c7 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -263,7 +263,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 082e1427..20e5c14c 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -92,7 +92,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "x" Name 11 "x" diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 78a3a5a8..58ec350a 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -60,7 +60,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 6 "MyFunc(" Name 8 "MyFunc2(" diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 63895957..84b39227 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -186,7 +186,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "main" Name 13 "PixelShaderFunction(vf4;f1;" Name 11 "input" diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index e145ab18..db8e3112 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -36,7 +36,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" 2: TypeVoid diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 02eed4ee..a4cd170b 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -72,7 +72,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 34 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "FS" MemberName 8(FS) 0 "b3" diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index c4af33f1..7c54f9c3 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -260,7 +260,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "c" Name 21 "input" diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index 7bb28180..accf27b7 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -84,7 +84,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 5acb877a..74611993 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -503,7 +503,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "r00" Name 15 "r01" diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index ca0235ae..8e0c4290 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -86,7 +86,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 14 "ShaderFunction(vf4;i1;" Name 12 "input" diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index c3fc10c6..830cff7a 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -42,7 +42,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 6 "foo1(" Name 8 "foo2(" diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index aece52a4..08488cea 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -78,7 +78,6 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 14 ExecutionMode 4 OriginUpperLeft - Source HLSL 450 Name 4 "PixelShaderFunction" Name 14 "input" 2: TypeVoid From 811d9f4cad5b2e3f3d41fc7fc98f156d042c0bba Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 17 Aug 2016 08:33:49 -0600 Subject: [PATCH 076/217] WIP: SPIRV remapper: allow 64 bit literals in OperandVariableLiteralId class iteration --- SPIRV/SPVRemapper.cpp | 150 +++++++++++++++++++++++++++++++----------- SPIRV/SPVRemapper.h | 30 +++++---- 2 files changed, 128 insertions(+), 52 deletions(-) diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 05f220a1..5c551fb8 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -127,6 +127,33 @@ namespace spv { } } + // Return the size of a type in 32-bit words. This currently only + // handles ints and floats, and is only invoked by queries which must be + // integer types. If ever needed, it can be generalized. + unsigned spirvbin_t::typeSizeInWords(spv::Id id) const + { + const unsigned typeStart = idPos(id); + const spv::Op opCode = asOpCode(typeStart); + + switch (opCode) { + case spv::OpTypeInt: // fall through... + case spv::OpTypeFloat: return (spv[typeStart+2]+31)/32; + default: + return 0; + } + } + + // Looks up the type of a given const or variable ID, and + // returns its size in 32-bit words. + unsigned spirvbin_t::idTypeSizeInWords(spv::Id id) const + { + const auto tid_it = idTypeSizeMap.find(id); + if (tid_it == idTypeSizeMap.end()) + error("type size for ID not found"); + + return tid_it->second; + } + // Is this an opcode we should remove when using --strip? bool spirvbin_t::isStripOp(spv::Op opCode) const { @@ -140,6 +167,7 @@ namespace spv { } } + // Return true if this opcode is flow control bool spirvbin_t::isFlowCtrl(spv::Op opCode) const { switch (opCode) { @@ -155,6 +183,7 @@ namespace spv { } } + // Return true if this opcode defines a type bool spirvbin_t::isTypeOp(spv::Op opCode) const { switch (opCode) { @@ -182,6 +211,7 @@ namespace spv { } } + // Return true if this opcode defines a constant bool spirvbin_t::isConstOp(spv::Op opCode) const { switch (opCode) { @@ -324,7 +354,7 @@ namespace spv { fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); - typeConstPosR.clear(); + idPosR.clear(); entryPoint = spv::NoResult; largestNewId = 0; @@ -340,6 +370,25 @@ namespace spv { if ((options & STRIP) && isStripOp(opCode)) stripInst(start); + unsigned word = start+1; + spv::Id typeId = spv::NoResult; + + if (spv::InstructionDesc[opCode].hasType()) + typeId = asId(word++); + + // If there's a result ID, remember the size of its type + if (spv::InstructionDesc[opCode].hasResult()) { + const spv::Id resultId = asId(word++); + idPosR[resultId] = start; + + if (typeId != spv::NoResult) { + const unsigned idTypeSize = typeSizeInWords(typeId); + + if (idTypeSize != 0) + idTypeSizeMap[resultId] = idTypeSize; + } + } + if (opCode == spv::Op::OpName) { const spv::Id target = asId(start+1); const std::string name = literalString(start+2); @@ -363,11 +412,9 @@ namespace spv { } else if (isConstOp(opCode)) { assert(asId(start + 2) != spv::NoResult); typeConstPos.insert(start); - typeConstPosR[asId(start + 2)] = start; } else if (isTypeOp(opCode)) { assert(asId(start + 1) != spv::NoResult); typeConstPos.insert(start); - typeConstPosR[asId(start + 1)] = start; } return false; @@ -436,12 +483,19 @@ namespace spv { return nextInst; } + // Circular buffer so we can look back at previous unmapped values during the mapping pass. + static const unsigned idBufferSize = 4; + spv::Id idBuffer[idBufferSize]; + unsigned idBufferPos = 0; + // Store IDs from instruction in our map for (int op = 0; numOperands > 0; ++op, --numOperands) { switch (spv::InstructionDesc[opCode].operands.getClass(op)) { case spv::OperandId: case spv::OperandScope: case spv::OperandMemorySemantics: + idBuffer[idBufferPos] = asId(word); + idBufferPos = (idBufferPos + 1) % idBufferSize; idFn(asId(word++)); break; @@ -459,13 +513,25 @@ namespace spv { // word += numOperands; return nextInst; - case spv::OperandVariableLiteralId: - while (numOperands > 0) { - ++word; // immediate - idFn(asId(word++)); // ID - numOperands -= 2; + case spv::OperandVariableLiteralId: { + if (opCode == OpSwitch) { + // word-2 is the position of the selector ID. OpSwitch Literals match its type. + // In case the IDs are currently being remapped, we get the word[-2] ID from + // the circular idBuffer. + const unsigned literalSizePos = (idBufferPos+idBufferSize-2) % idBufferSize; + const unsigned literalSize = idTypeSizeInWords(idBuffer[literalSizePos]); + const unsigned numLiteralIdPairs = (nextInst-word) / (1+literalSize); + + for (unsigned arg=0; arg typeUseCount; - // Count total type usage - process(inst_fn_nop, - [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } - ); + // This is not the most efficient algorithm, but this is an offline tool, and + // it's easy to write this way. Can be improved opportunistically if needed. + bool changed = true; + while (changed) { + changed = false; + strip(); + typeUseCount.clear(); - // Remove types from deleted code - for (const auto& fn : fnPosDCE) + // Count total type usage process(inst_fn_nop, - [&](spv::Id& id) { if (isType[id]) --typeUseCount[id]; }, - fn.second.first, fn.second.second); + [&](spv::Id& id) { if (isType[id]) ++typeUseCount[id]; } + ); - // Remove single reference types - for (const auto typeStart : typeConstPos) { - const spv::Id typeId = asTypeConstId(typeStart); - if (typeUseCount[typeId] == 1) { - --typeUseCount[typeId]; - stripInst(typeStart); + // Remove single reference types + for (const auto typeStart : typeConstPos) { + const spv::Id typeId = asTypeConstId(typeStart); + if (typeUseCount[typeId] == 1) { + changed = true; + --typeUseCount[typeId]; + stripInst(typeStart); + } } } } @@ -1060,12 +1130,12 @@ namespace spv { } #endif // NOTDEF - // Return start position in SPV of given type. error if not found. - unsigned spirvbin_t::typePos(spv::Id id) const + // Return start position in SPV of given Id. error if not found. + unsigned spirvbin_t::idPos(spv::Id id) const { - const auto tid_it = typeConstPosR.find(id); - if (tid_it == typeConstPosR.end()) - error("type ID not found"); + const auto tid_it = idPosR.find(id); + if (tid_it == idPosR.end()) + error("ID not found"); return tid_it->second; } @@ -1083,11 +1153,11 @@ namespace spv { case spv::OpTypeInt: return 3 + (spv[typeStart+3]); case spv::OpTypeFloat: return 5; case spv::OpTypeVector: - return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 6 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeMatrix: - return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1); + return 30 + hashType(idPos(spv[typeStart+2])) * (spv[typeStart+3] - 1); case spv::OpTypeImage: - return 120 + hashType(typePos(spv[typeStart+2])) + + return 120 + hashType(idPos(spv[typeStart+2])) + spv[typeStart+3] + // dimensionality spv[typeStart+4] * 8 * 16 + // depth spv[typeStart+5] * 4 * 16 + // arrayed @@ -1098,24 +1168,24 @@ namespace spv { case spv::OpTypeSampledImage: return 502; case spv::OpTypeArray: - return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3]; + return 501 + hashType(idPos(spv[typeStart+2])) * spv[typeStart+3]; case spv::OpTypeRuntimeArray: - return 5000 + hashType(typePos(spv[typeStart+2])); + return 5000 + hashType(idPos(spv[typeStart+2])); case spv::OpTypeStruct: { std::uint32_t hash = 10000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } case spv::OpTypeOpaque: return 6000 + spv[typeStart+2]; - case spv::OpTypePointer: return 100000 + hashType(typePos(spv[typeStart+3])); + case spv::OpTypePointer: return 100000 + hashType(idPos(spv[typeStart+3])); case spv::OpTypeFunction: { std::uint32_t hash = 200000; for (unsigned w=2; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } @@ -1132,14 +1202,14 @@ namespace spv { case spv::OpConstantFalse: return 300008; case spv::OpConstantComposite: { - std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1])); + std::uint32_t hash = 300011 + hashType(idPos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) - hash += w * hashType(typePos(spv[typeStart+w])); + hash += w * hashType(idPos(spv[typeStart+w])); return hash; } case spv::OpConstant: { - std::uint32_t hash = 400011 + hashType(typePos(spv[typeStart+1])); + std::uint32_t hash = 400011 + hashType(idPos(spv[typeStart+1])); for (unsigned w=3; w < wordCount; ++w) hash += w * spv[typeStart+w]; return hash; @@ -1212,19 +1282,19 @@ namespace spv { msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); strip(); // strip out data we decided to eliminate - if (options & OPT_LOADSTORE) optLoadStore(); if (options & OPT_FWD_LS) forwardLoadStores(); if (options & DCE_FUNCS) dceFuncs(); if (options & DCE_VARS) dceVars(); if (options & DCE_TYPES) dceTypes(); + strip(); // strip out data we decided to eliminate + if (options & MAP_TYPES) mapTypeConst(); if (options & MAP_NAMES) mapNames(); if (options & MAP_FUNCS) mapFnBodies(); mapRemainder(); // map any unmapped IDs applyMap(); // Now remap each shader to the new IDs we've come up with - strip(); // strip out data we decided to eliminate } // remap from a memory image diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index c2dc5291..e24db7ce 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -159,16 +159,21 @@ private: typedef std::set posmap_t; typedef std::unordered_map posmap_rev_t; + // Maps and ID to the size of its base type, if known. + typedef std::unordered_map typesize_map_t; + // handle error void error(const std::string& txt) const { errorHandler(txt); } - bool isConstOp(spv::Op opCode) const; - bool isTypeOp(spv::Op opCode) const; - bool isStripOp(spv::Op opCode) const; - bool isFlowCtrl(spv::Op opCode) const; - range_t literalRange(spv::Op opCode) const; - range_t typeRange(spv::Op opCode) const; - range_t constRange(spv::Op opCode) const; + bool isConstOp(spv::Op opCode) const; + bool isTypeOp(spv::Op opCode) const; + bool isStripOp(spv::Op opCode) const; + bool isFlowCtrl(spv::Op opCode) const; + range_t literalRange(spv::Op opCode) const; + range_t typeRange(spv::Op opCode) const; + range_t constRange(spv::Op opCode) const; + unsigned typeSizeInWords(spv::Id id) const; + unsigned idTypeSizeInWords(spv::Id id) const; spv::Id& asId(unsigned word) { return spv[word]; } const spv::Id& asId(unsigned word) const { return spv[word]; } @@ -177,10 +182,10 @@ private: spv::Decoration asDecoration(unsigned word) const { return spv::Decoration(spv[word]); } unsigned asWordCount(unsigned word) const { return opWordCount(spv[word]); } spv::Id asTypeConstId(unsigned word) const { return asId(word + (isTypeOp(asOpCode(word)) ? 1 : 2)); } - unsigned typePos(spv::Id id) const; + unsigned idPos(spv::Id id) const; - static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } - static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } + static unsigned opWordCount(spirword_t data) { return data >> spv::WordCountShift; } + static spv::Op opOpCode(spirword_t data) { return spv::Op(data & spv::OpCodeMask); } // Header access & set methods spirword_t magic() const { return spv[0]; } // return magic number @@ -263,8 +268,9 @@ private: // Which functions are called, anywhere in the module, with a call count std::unordered_map fnCalls; - posmap_t typeConstPos; // word positions that define types & consts (ordered) - posmap_rev_t typeConstPosR; // reverse map from IDs to positions + posmap_t typeConstPos; // word positions that define types & consts (ordered) + posmap_rev_t idPosR; // reverse map from IDs to positions + typesize_map_t idTypeSizeMap; // maps each ID to its type size, if known. std::vector idMapL; // ID {M}ap from {L}ocal to {G}lobal IDs From b9e39120b4309ecb3e3df02e3f5226644254ddbf Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 17 Aug 2016 10:22:08 -0600 Subject: [PATCH 077/217] HLSL: Partially address issue #463: accept GLSL layout(...). This includes all "per variable" layout qualifiers, but the key ones mattering and tested for now are: set= binding= constant_id= push_constant --- Test/baseResults/hlsl.layout.frag.out | 112 ++++++++++++++++++++++ Test/hlsl.layout.frag | 14 +++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 60 +++++++++++- hlsl/hlslGrammar.h | 3 +- hlsl/hlslParseHelper.cpp | 128 ++++++++++++++++---------- hlsl/hlslParseHelper.h | 4 +- hlsl/hlslScanContext.cpp | 2 + hlsl/hlslTokens.h | 1 + 9 files changed, 270 insertions(+), 55 deletions(-) create mode 100755 Test/baseResults/hlsl.layout.frag.out create mode 100644 Test/hlsl.layout.frag diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out new file mode 100755 index 00000000..58b4100d --- /dev/null +++ b/Test/baseResults/hlsl.layout.frag.out @@ -0,0 +1,112 @@ +hlsl.layout.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:12 Function Parameters: +0:12 'input' (in 4-component vector of float) +0:? Sequence +0:13 Branch: Return with expression +0:13 add (temp 4-component vector of float) +0:13 add (temp 4-component vector of float) +0:13 'input' (in 4-component vector of float) +0:13 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:13 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:13 Constant: +0:13 0 (const uint) +0:13 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) +0:13 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:13 Constant: +0:13 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'specConst' (specialization-constant const int) +0:? 10 (const int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:12 Function Parameters: +0:12 'input' (in 4-component vector of float) +0:? Sequence +0:13 Branch: Return with expression +0:13 add (temp 4-component vector of float) +0:13 add (temp 4-component vector of float) +0:13 'input' (in 4-component vector of float) +0:13 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:13 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:13 Constant: +0:13 0 (const uint) +0:13 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) +0:13 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:13 Constant: +0:13 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'specConst' (specialization-constant const int) +0:? 10 (const int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "PixelShaderFunction(vf4;" + Name 10 "input" + Name 14 "" + MemberName 14 0 "v1" + Name 16 "" + Name 23 "" + MemberName 23 0 "v5" + Name 25 "" + MemberDecorate 14 0 Offset 16 + Decorate 14 BufferBlock + Decorate 16 DescriptorSet 3 + Decorate 16 Binding 5 + MemberDecorate 23 0 Offset 0 + Decorate 23 BufferBlock + Decorate 32 SpecId 17 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 14: TypeStruct 7(fvec4) + 15: TypePointer Uniform 14(struct) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 7(fvec4) + 23: TypeStruct 7(fvec4) + 24: TypePointer PushConstant 23(struct) + 25: 24(ptr) Variable PushConstant + 26: TypePointer PushConstant 7(fvec4) + 32: 17(int) SpecConstant 10 + 4(main): 2 Function None 3 + 5: Label + FunctionEnd +11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label + 13: 7(fvec4) Load 10(input) + 20: 19(ptr) AccessChain 16 18 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 13 21 + 27: 26(ptr) AccessChain 25 18 + 28: 7(fvec4) Load 27 + 29: 7(fvec4) FAdd 22 28 + ReturnValue 29 + FunctionEnd diff --git a/Test/hlsl.layout.frag b/Test/hlsl.layout.frag new file mode 100644 index 00000000..9080beb3 --- /dev/null +++ b/Test/hlsl.layout.frag @@ -0,0 +1,14 @@ +layout(set=3,binding=5) tbuffer tbufName { + layout(offset = 16) float4 v1; +}; + +layout(push_constant) tbuffer tbufName2 { + float4 v5; +}; + +layout(constant_id=17) const int specConst = 10; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return input + v1 + v5; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 3e3b6b4a..3ea6fc1f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -112,6 +112,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.layout.frag", "main"}, {"hlsl.load.2dms.dx10.frag", "main"}, {"hlsl.load.array.dx10.frag", "main"}, {"hlsl.load.basic.dx10.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 582b1d06..9de3a277 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -426,7 +426,8 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) // type_qualifier TQualifier qualifier; qualifier.clear(); - acceptQualifier(qualifier); + if (! acceptQualifier(qualifier)) + return false; TSourceLoc loc = token.loc; // type_specifier @@ -449,7 +450,7 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) // // Zero or more of these, so this can't return false. // -void HlslGrammar::acceptQualifier(TQualifier& qualifier) +bool HlslGrammar::acceptQualifier(TQualifier& qualifier) { do { switch (peek()) { @@ -508,13 +509,66 @@ void HlslGrammar::acceptQualifier(TQualifier& qualifier) case EHTokInOut: qualifier.storage = EvqInOut; break; + case EHTokLayout: + if (! acceptLayoutQualifierList(qualifier)) + return false; + continue; default: - return; + return true; } advanceToken(); } while (true); } +// layout_qualifier_list +// : LEFT_PAREN layout_qualifier COMMA layout_qualifier ... RIGHT_PAREN +// +// layout_qualifier +// : identifier +// | identifier EQUAL expresion +// +// Zero or more of these, so this can't return false. +// +bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) +{ + if (! acceptTokenClass(EHTokLayout)) + return false; + + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + return false; + + do { + // identifier + HlslToken idToken; + if (! acceptIdentifier(idToken)) + break; + + // EQUAL expression + if (acceptTokenClass(EHTokAssign)) { + TIntermTyped* expr; + if (! acceptConditionalExpression(expr)) { + expected("expression"); + return false; + } + parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string, expr); + } else + parseContext.setLayoutQualifier(idToken.loc, qualifier, *idToken.string); + + // COMMA + if (! acceptTokenClass(EHTokComma)) + break; + } while (true); + + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + return false; + } + + return true; +} + // template_type // : FLOAT // | DOUBLE diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index c522df4c..361e26c5 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -67,7 +67,8 @@ namespace glslang { bool acceptSamplerDeclarationDX9(TType&); bool acceptSamplerState(); bool acceptFullySpecifiedType(TType&); - void acceptQualifier(TQualifier&); + bool acceptQualifier(TQualifier&); + bool acceptLayoutQualifierList(TQualifier&); bool acceptType(TType&); bool acceptTemplateType(TBasicType&); bool acceptVectorTemplateType(TType&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 8ee8f9c7..e2de7013 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3112,51 +3112,58 @@ void HlslParseContext::specializationCheck(const TSourceLoc& loc, const TType& t // Put the id's layout qualification into the public type, for qualifiers not having a number set. // This is before we know any type information for error checking. -void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publicType, TString& id) +void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id) { std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { - publicType.qualifier.layoutMatrix = ElmColumnMajor; + qualifier.layoutMatrix = ElmColumnMajor; return; } if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { - publicType.qualifier.layoutMatrix = ElmRowMajor; + qualifier.layoutMatrix = ElmRowMajor; return; } if (id == "push_constant") { requireVulkan(loc, "push_constant"); - publicType.qualifier.layoutPushConstant = true; + qualifier.layoutPushConstant = true; return; } if (language == EShLangGeometry || language == EShLangTessEvaluation) { if (id == TQualifier::getGeometryString(ElgTriangles)) { - publicType.shaderQualifiers.geometry = ElgTriangles; + //publicType.shaderQualifiers.geometry = ElgTriangles; + warn(loc, "ignored", id.c_str(), ""); return; } if (language == EShLangGeometry) { if (id == TQualifier::getGeometryString(ElgPoints)) { - publicType.shaderQualifiers.geometry = ElgPoints; + //publicType.shaderQualifiers.geometry = ElgPoints; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLineStrip)) { - publicType.shaderQualifiers.geometry = ElgLineStrip; + //publicType.shaderQualifiers.geometry = ElgLineStrip; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLines)) { - publicType.shaderQualifiers.geometry = ElgLines; + //publicType.shaderQualifiers.geometry = ElgLines; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLinesAdjacency)) { - publicType.shaderQualifiers.geometry = ElgLinesAdjacency; + //publicType.shaderQualifiers.geometry = ElgLinesAdjacency; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTrianglesAdjacency)) { - publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; + //publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTriangleStrip)) { - publicType.shaderQualifiers.geometry = ElgTriangleStrip; + //publicType.shaderQualifiers.geometry = ElgTriangleStrip; + warn(loc, "ignored", id.c_str(), ""); return; } } else { @@ -3164,65 +3171,78 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu // input primitive if (id == TQualifier::getGeometryString(ElgTriangles)) { - publicType.shaderQualifiers.geometry = ElgTriangles; + //publicType.shaderQualifiers.geometry = ElgTriangles; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgQuads)) { - publicType.shaderQualifiers.geometry = ElgQuads; + //publicType.shaderQualifiers.geometry = ElgQuads; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgIsolines)) { - publicType.shaderQualifiers.geometry = ElgIsolines; + //publicType.shaderQualifiers.geometry = ElgIsolines; + warn(loc, "ignored", id.c_str(), ""); return; } // vertex spacing if (id == TQualifier::getVertexSpacingString(EvsEqual)) { - publicType.shaderQualifiers.spacing = EvsEqual; + //publicType.shaderQualifiers.spacing = EvsEqual; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalEven)) { - publicType.shaderQualifiers.spacing = EvsFractionalEven; + //publicType.shaderQualifiers.spacing = EvsFractionalEven; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalOdd)) { - publicType.shaderQualifiers.spacing = EvsFractionalOdd; + //publicType.shaderQualifiers.spacing = EvsFractionalOdd; + warn(loc, "ignored", id.c_str(), ""); return; } // triangle order if (id == TQualifier::getVertexOrderString(EvoCw)) { - publicType.shaderQualifiers.order = EvoCw; + //publicType.shaderQualifiers.order = EvoCw; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexOrderString(EvoCcw)) { - publicType.shaderQualifiers.order = EvoCcw; + //publicType.shaderQualifiers.order = EvoCcw; + warn(loc, "ignored", id.c_str(), ""); return; } // point mode if (id == "point_mode") { - publicType.shaderQualifiers.pointMode = true; + //publicType.shaderQualifiers.pointMode = true; + warn(loc, "ignored", id.c_str(), ""); return; } } } if (language == EShLangFragment) { if (id == "origin_upper_left") { - publicType.shaderQualifiers.originUpperLeft = true; + //publicType.shaderQualifiers.originUpperLeft = true; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "pixel_center_integer") { - publicType.shaderQualifiers.pixelCenterInteger = true; + //publicType.shaderQualifiers.pixelCenterInteger = true; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "early_fragment_tests") { - publicType.shaderQualifiers.earlyFragmentTests = true; + //publicType.shaderQualifiers.earlyFragmentTests = true; + warn(loc, "ignored", id.c_str(), ""); return; } for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth + 1)) { if (id == TQualifier::getLayoutDepthString(depth)) { - publicType.shaderQualifiers.layoutDepth = depth; + //publicType.shaderQualifiers.layoutDepth = depth; + warn(loc, "ignored", id.c_str(), ""); return; } } @@ -3232,7 +3252,8 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (id == TQualifier::getBlendEquationString(be)) { requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation"); intermediate.addBlendEquation(be); - publicType.shaderQualifiers.blendEquation = true; + //publicType.shaderQualifiers.blendEquation = true; + warn(loc, "ignored", id.c_str(), ""); found = true; break; } @@ -3247,7 +3268,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu // Put the id's layout qualifier value into the public type, for qualifiers having a number set. // This is before we know any type information for error checking. -void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publicType, TString& id, const TIntermTyped* node) +void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id, const TIntermTyped* node) { const char* feature = "layout-id value"; //const char* nonLiteralFeature = "non-literal layout-id value"; @@ -3262,38 +3283,38 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == "offset") { - publicType.qualifier.layoutOffset = value; + qualifier.layoutOffset = value; return; } else if (id == "align") { // "The specified alignment must be a power of 2, or a compile-time error results." if (! IsPow2(value)) error(loc, "must be a power of 2", "align", ""); else - publicType.qualifier.layoutAlign = value; + qualifier.layoutAlign = value; return; } else if (id == "location") { if ((unsigned int)value >= TQualifier::layoutLocationEnd) error(loc, "location is too large", id.c_str(), ""); else - publicType.qualifier.layoutLocation = value; + qualifier.layoutLocation = value; return; } else if (id == "set") { if ((unsigned int)value >= TQualifier::layoutSetEnd) error(loc, "set is too large", id.c_str(), ""); else - publicType.qualifier.layoutSet = value; + qualifier.layoutSet = value; return; } else if (id == "binding") { if ((unsigned int)value >= TQualifier::layoutBindingEnd) error(loc, "binding is too large", id.c_str(), ""); else - publicType.qualifier.layoutBinding = value; + qualifier.layoutBinding = value; return; } else if (id == "component") { if ((unsigned)value >= TQualifier::layoutComponentEnd) error(loc, "component is too large", id.c_str(), ""); else - publicType.qualifier.layoutComponent = value; + qualifier.layoutComponent = value; return; } else if (id.compare(0, 4, "xfb_") == 0) { // "Any shader making any static use (after preprocessing) of any of these @@ -3309,13 +3330,13 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (value >= (int)TQualifier::layoutXfbBufferEnd) error(loc, "buffer is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbBufferEnd - 1); else - publicType.qualifier.layoutXfbBuffer = value; + qualifier.layoutXfbBuffer = value; return; } else if (id == "xfb_offset") { if (value >= (int)TQualifier::layoutXfbOffsetEnd) error(loc, "offset is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbOffsetEnd - 1); else - publicType.qualifier.layoutXfbOffset = value; + qualifier.layoutXfbOffset = value; return; } else if (id == "xfb_stride") { // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the @@ -3325,7 +3346,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu else if (value >= (int)TQualifier::layoutXfbStrideEnd) error(loc, "stride is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbStrideEnd - 1); if (value < (int)TQualifier::layoutXfbStrideEnd) - publicType.qualifier.layoutXfbStride = value; + qualifier.layoutXfbStride = value; return; } } @@ -3335,7 +3356,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (value >= (int)TQualifier::layoutAttachmentEnd) error(loc, "attachment index is too large", id.c_str(), ""); else - publicType.qualifier.layoutAttachment = value; + qualifier.layoutAttachment = value; return; } if (id == "constant_id") { @@ -3343,8 +3364,8 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (value >= (int)TQualifier::layoutSpecConstantIdEnd) { error(loc, "specialization-constant id is too large", id.c_str(), ""); } else { - publicType.qualifier.layoutSpecConstantId = value; - publicType.qualifier.specConstant = true; + qualifier.layoutSpecConstantId = value; + qualifier.specConstant = true; if (! intermediate.addUsedConstantId(value)) error(loc, "specialization-constant id already used", id.c_str(), ""); } @@ -3360,7 +3381,8 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (value == 0) error(loc, "must be greater than 0", "vertices", ""); else - publicType.shaderQualifiers.vertices = value; + //publicType.shaderQualifiers.vertices = value; + warn(loc, "ignored", id.c_str(), ""); return; } break; @@ -3373,24 +3395,26 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu if (value == 0) error(loc, "must be at least 1", "invocations", ""); else - publicType.shaderQualifiers.invocations = value; + //publicType.shaderQualifiers.invocations = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "max_vertices") { - publicType.shaderQualifiers.vertices = value; + //publicType.shaderQualifiers.vertices = value; + warn(loc, "ignored", id.c_str(), ""); if (value > resources.maxGeometryOutputVertices) error(loc, "too large, must be less than gl_MaxGeometryOutputVertices", "max_vertices", ""); return; } if (id == "stream") { - publicType.qualifier.layoutStream = value; + qualifier.layoutStream = value; return; } break; case EShLangFragment: if (id == "index") { - publicType.qualifier.layoutIndex = value; + qualifier.layoutIndex = value; return; } break; @@ -3398,28 +3422,34 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { if (id == "local_size_x") { - publicType.shaderQualifiers.localSize[0] = value; + //publicType.shaderQualifiers.localSize[0] = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y") { - publicType.shaderQualifiers.localSize[1] = value; + //publicType.shaderQualifiers.localSize[1] = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z") { - publicType.shaderQualifiers.localSize[2] = value; + //publicType.shaderQualifiers.localSize[2] = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (spvVersion.spv != 0) { if (id == "local_size_x_id") { - publicType.shaderQualifiers.localSizeSpecId[0] = value; + //publicType.shaderQualifiers.localSizeSpecId[0] = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y_id") { - publicType.shaderQualifiers.localSizeSpecId[1] = value; + //publicType.shaderQualifiers.localSizeSpecId[1] = value; + warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z_id") { - publicType.shaderQualifiers.localSizeSpecId[2] = value; + //publicType.shaderQualifiers.localSizeSpecId[2] = value; + warn(loc, "ignored", id.c_str(), ""); return; } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index f45a874f..659ec4a7 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -128,8 +128,8 @@ public: void paramFix(TType& type); void specializationCheck(const TSourceLoc&, const TType&, const char* op); - void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&); - void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&, const TIntermTyped*); + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&); + void setLayoutQualifier(const TSourceLoc&, TQualifier&, TString&, const TIntermTyped*); void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 36dea5cb..a3be6fad 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -117,6 +117,7 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["in"] = EHTokIn; (*KeywordMap)["out"] = EHTokOut; (*KeywordMap)["inout"] = EHTokInOut; + (*KeywordMap)["layout"] = EHTokLayout; (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; @@ -457,6 +458,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokIn: case EHTokOut: case EHTokInOut: + case EHTokLayout: return keyword; // template types diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index d72b2cd9..b54a757d 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -64,6 +64,7 @@ enum EHlslTokenClass { EHTokIn, EHTokOut, EHTokInOut, + EHTokLayout, // template types EHTokBuffer, From 0a04b4df0258fd7765c81134c9aa537e135a8fe2 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 19 Aug 2016 07:27:28 -0600 Subject: [PATCH 078/217] Front-end/Non-functional: Add some const/auto, useful for upcoming changes. --- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- glslang/MachineIndependent/SymbolTable.h | 4 ++-- hlsl/hlslParseHelper.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 7211d4b0..090e082e 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4844,10 +4844,10 @@ const TFunction* TParseContext::findFunction120(const TSourceLoc& loc, const TFu // more than one function." const TFunction* candidate = nullptr; - TVector candidateList; + TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - for (TVector::const_iterator it = candidateList.begin(); it != candidateList.end(); ++it) { + for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { const TFunction& function = *(*it); // to even be a potential match, number of arguments has to match diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h index 9877ab7f..97c3d6b5 100644 --- a/glslang/MachineIndependent/SymbolTable.h +++ b/glslang/MachineIndependent/SymbolTable.h @@ -357,7 +357,7 @@ public: return (*it).second; } - void findFunctionNameList(const TString& name, TVector& list) + void findFunctionNameList(const TString& name, TVector& list) { size_t parenAt = name.find_first_of('('); TString base(name, 0, parenAt + 1); @@ -624,7 +624,7 @@ public: return false; } - void findFunctionNameList(const TString& name, TVector& list, bool& builtIn) + void findFunctionNameList(const TString& name, TVector& list, bool& builtIn) { // For user levels, return the set found in the first scope with a match builtIn = false; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e2de7013..348e3277 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3549,10 +3549,10 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // exact match not found, look through a list of overloaded functions of the same name const TFunction* candidate = nullptr; - TVector candidateList; + TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); - for (TVector::const_iterator it = candidateList.begin(); it != candidateList.end(); ++it) { + for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { const TFunction& function = *(*it); // to even be a potential match, number of arguments has to match From afe6e9c4fc1ba0e8ea6ee9ee0ccbe872fd33efad Mon Sep 17 00:00:00 2001 From: dankbaker Date: Sun, 21 Aug 2016 12:29:08 -0400 Subject: [PATCH 079/217] HLSL and standalone, modifying Standalone to send filename as string source, and HLSL backend will use this to print a better error mesage when things fail --- StandAlone/StandAlone.cpp | 23 +++++++++++++++++++++-- hlsl/hlslParseHelper.cpp | 9 ++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 0a8f395f..0c54273e 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -412,7 +412,26 @@ void StderrIfNonEmpty(const char* str) struct ShaderCompUnit { EShLanguage stage; std::string fileName; - char** text; // memory owned/managed externally + char** text; // memory owned/managed externally + const char* fileNameList[1]; + + //Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs + ShaderCompUnit(EShLanguage istage, std::string &ifileName, char** itext) + { + stage = istage; + fileName = ifileName; + text = itext; + fileNameList[0] = fileName.c_str(); + } + + ShaderCompUnit(const ShaderCompUnit &rhs) + { + stage = rhs.stage; + fileName = rhs.fileName; + text = rhs.text; + fileNameList[0] = fileName.c_str(); + } + }; // @@ -439,7 +458,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) { const auto &compUnit = *it; glslang::TShader* shader = new glslang::TShader(compUnit.stage); - shader->setStrings(compUnit.text, 1); + shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, 1); if (entryPointName) // HLSL todo: this needs to be tracked per compUnits shader->setEntryPoint(entryPointName); shaders.push_back(shader); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2a793759..2662ea04 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -116,9 +116,12 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& HlslScanContext scanContext(*this, ppContext); HlslGrammar grammar(scanContext, *this); - if (! grammar.parse()) - printf("HLSL translation failed.\n"); - + if (!grammar.parse()) + { + //Print out a nicer error message that should be formated such that if you click on the message it will take you right to the line through most UIs + const glslang::TSourceLoc& sourceLoc = input.getSourceLoc(); + printf("\n%s(%i): error at column %i, HLSL translation failed.\n", sourceLoc.name, sourceLoc.line, sourceLoc.column); + } return numErrors == 0; } From 370234888d6e7ad28cbc5367cc77192e6165e26c Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 19 Aug 2016 07:31:31 -0600 Subject: [PATCH 080/217] Front-end: Add a function selector under implicit type conversion. Use the new function selector for #version 400 and above, parameterized for the GLSL #version 400 selection rules. This can be used for both GLSL and HLSL, and other languages as well. --- Test/400.vert | 101 +++- Test/baseResults/400.vert.out | 550 ++++++++++++++++++++- glslang/MachineIndependent/ParseHelper.cpp | 233 ++++++++- glslang/MachineIndependent/ParseHelper.h | 6 + 4 files changed, 881 insertions(+), 9 deletions(-) diff --git a/Test/400.vert b/Test/400.vert index 2c3dd042..315c7ea0 100644 --- a/Test/400.vert +++ b/Test/400.vert @@ -4,6 +4,103 @@ in double d; // ERROR, no doubles in dvec3 d3; // ERROR, no doubles in dmat4 dm4; // ERROR, no doubles -void main() -{ +// function selection under type conversion +void foo1(double a, uint b) {} +void foo1(double a, int b) {} +void foo1(double a, float b) {} +void foo1(double a, double b){} + +void foo2(double a, float b) {} +void foo2(double a, double b){} + +void foo3(double a, float b) {} +void foo3(float a, double b) {} + +void ftd( int, float, double) {} +void ftd( uint, float, double) {} +void ftd(float, double, double) {} + +void main() +{ + double d; + uint u; + int i; + float f; + + foo1(d, d); + foo1(d, u); + foo1(d, i); + foo1(d, f); + + foo1(f, d); + foo1(f, u); + foo1(f, i); + foo1(f, f); + + foo1(u, d); + foo1(u, u); + foo1(u, i); + foo1(u, f); + + foo1(i, d); + foo1(i, u); + foo1(i, i); + foo1(i, f); + + foo2(d, d); + foo2(d, u); + foo2(d, i); + foo2(d, f); + + foo2(f, d); + foo2(f, u); + foo2(f, i); + foo2(f, f); + + foo2(u, d); + foo2(u, u); + foo2(u, i); + foo2(u, f); + + foo2(i, d); + foo2(i, u); + foo2(i, i); + foo2(i, f); + + foo3(d, d); // ERROR, no match + foo3(d, u); + foo3(d, i); + foo3(d, f); + + foo3(f, d); + foo3(f, u); // ERROR, ambiguous + foo3(f, i); // ERROR, ambiguous + foo3(f, f); // ERROR, ambiguous + + foo3(u, d); + foo3(u, u); // ERROR, ambiguous + foo3(u, i); // ERROR, ambiguous + foo3(u, f); // ERROR, ambiguous + + foo3(i, d); + foo3(i, u); // ERROR, ambiguous + foo3(i, i); // ERROR, ambiguous + foo3(i, f); // ERROR, ambiguous + + ftd(i, f, f); + ftd(u, f, f); +} + +void itf(int, float, int); +void itf(int, double, int); + +void tf() +{ + double d; + uint u; + int i; + float f; + + itf(i, i, i); + itf(i, u, i); } diff --git a/Test/baseResults/400.vert.out b/Test/baseResults/400.vert.out index 946f21d5..2b0d63da 100755 --- a/Test/baseResults/400.vert.out +++ b/Test/baseResults/400.vert.out @@ -3,13 +3,288 @@ Warning, version 400 is not yet complete; most version-specific features are pre ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions -ERROR: 3 compilation errors. No code generated. +ERROR: 0:70: 'foo3' : no matching overloaded function found +ERROR: 0:76: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:77: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:78: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:81: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:82: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:83: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:86: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:87: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 0:88: 'foo3' : ambiguous best function under implicit type conversion +ERROR: 13 compilation errors. No code generated. Shader version: 400 ERROR: node is still EOpNull! -0:7 Function Definition: main( (global void) -0:7 Function Parameters: +0:8 Function Definition: foo1(d1;u1; (global void) +0:8 Function Parameters: +0:8 'a' (in double) +0:8 'b' (in uint) +0:9 Function Definition: foo1(d1;i1; (global void) +0:9 Function Parameters: +0:9 'a' (in double) +0:9 'b' (in int) +0:10 Function Definition: foo1(d1;f1; (global void) +0:10 Function Parameters: +0:10 'a' (in double) +0:10 'b' (in float) +0:11 Function Definition: foo1(d1;d1; (global void) +0:11 Function Parameters: +0:11 'a' (in double) +0:11 'b' (in double) +0:13 Function Definition: foo2(d1;f1; (global void) +0:13 Function Parameters: +0:13 'a' (in double) +0:13 'b' (in float) +0:14 Function Definition: foo2(d1;d1; (global void) +0:14 Function Parameters: +0:14 'a' (in double) +0:14 'b' (in double) +0:16 Function Definition: foo3(d1;f1; (global void) +0:16 Function Parameters: +0:16 'a' (in double) +0:16 'b' (in float) +0:17 Function Definition: foo3(f1;d1; (global void) +0:17 Function Parameters: +0:17 'a' (in float) +0:17 'b' (in double) +0:19 Function Definition: ftd(i1;f1;d1; (global void) +0:19 Function Parameters: +0:19 '' (in int) +0:19 '' (in float) +0:19 '' (in double) +0:20 Function Definition: ftd(u1;f1;d1; (global void) +0:20 Function Parameters: +0:20 '' (in uint) +0:20 '' (in float) +0:20 '' (in double) +0:21 Function Definition: ftd(f1;d1;d1; (global void) +0:21 Function Parameters: +0:21 '' (in float) +0:21 '' (in double) +0:21 '' (in double) +0:23 Function Definition: main( (global void) +0:23 Function Parameters: +0:? Sequence +0:30 Function Call: foo1(d1;d1; (global void) +0:30 'd' (temp double) +0:30 'd' (temp double) +0:31 Function Call: foo1(d1;u1; (global void) +0:31 'd' (temp double) +0:31 'u' (temp uint) +0:32 Function Call: foo1(d1;i1; (global void) +0:32 'd' (temp double) +0:32 'i' (temp int) +0:33 Function Call: foo1(d1;f1; (global void) +0:33 'd' (temp double) +0:33 'f' (temp float) +0:35 Function Call: foo1(d1;d1; (global void) +0:35 Convert float to double (temp double) +0:35 'f' (temp float) +0:35 'd' (temp double) +0:36 Function Call: foo1(d1;u1; (global void) +0:36 Convert float to double (temp double) +0:36 'f' (temp float) +0:36 'u' (temp uint) +0:37 Function Call: foo1(d1;i1; (global void) +0:37 Convert float to double (temp double) +0:37 'f' (temp float) +0:37 'i' (temp int) +0:38 Function Call: foo1(d1;f1; (global void) +0:38 Convert float to double (temp double) +0:38 'f' (temp float) +0:38 'f' (temp float) +0:40 Function Call: foo1(d1;d1; (global void) +0:40 Convert uint to double (temp double) +0:40 'u' (temp uint) +0:40 'd' (temp double) +0:41 Function Call: foo1(d1;u1; (global void) +0:41 Convert uint to double (temp double) +0:41 'u' (temp uint) +0:41 'u' (temp uint) +0:42 Function Call: foo1(d1;i1; (global void) +0:42 Convert uint to double (temp double) +0:42 'u' (temp uint) +0:42 'i' (temp int) +0:43 Function Call: foo1(d1;f1; (global void) +0:43 Convert uint to double (temp double) +0:43 'u' (temp uint) +0:43 'f' (temp float) +0:45 Function Call: foo1(d1;d1; (global void) +0:45 Convert int to double (temp double) +0:45 'i' (temp int) +0:45 'd' (temp double) +0:46 Function Call: foo1(d1;u1; (global void) +0:46 Convert int to double (temp double) +0:46 'i' (temp int) +0:46 'u' (temp uint) +0:47 Function Call: foo1(d1;i1; (global void) +0:47 Convert int to double (temp double) +0:47 'i' (temp int) +0:47 'i' (temp int) +0:48 Function Call: foo1(d1;f1; (global void) +0:48 Convert int to double (temp double) +0:48 'i' (temp int) +0:48 'f' (temp float) +0:50 Function Call: foo2(d1;d1; (global void) +0:50 'd' (temp double) +0:50 'd' (temp double) +0:51 Function Call: foo2(d1;f1; (global void) +0:51 'd' (temp double) +0:51 Convert uint to float (temp float) +0:51 'u' (temp uint) +0:52 Function Call: foo2(d1;f1; (global void) +0:52 'd' (temp double) +0:52 Convert int to float (temp float) +0:52 'i' (temp int) +0:53 Function Call: foo2(d1;f1; (global void) +0:53 'd' (temp double) +0:53 'f' (temp float) +0:55 Function Call: foo2(d1;d1; (global void) +0:55 Convert float to double (temp double) +0:55 'f' (temp float) +0:55 'd' (temp double) +0:56 Function Call: foo2(d1;f1; (global void) +0:56 Convert float to double (temp double) +0:56 'f' (temp float) +0:56 Convert uint to float (temp float) +0:56 'u' (temp uint) +0:57 Function Call: foo2(d1;f1; (global void) +0:57 Convert float to double (temp double) +0:57 'f' (temp float) +0:57 Convert int to float (temp float) +0:57 'i' (temp int) +0:58 Function Call: foo2(d1;f1; (global void) +0:58 Convert float to double (temp double) +0:58 'f' (temp float) +0:58 'f' (temp float) +0:60 Function Call: foo2(d1;d1; (global void) +0:60 Convert uint to double (temp double) +0:60 'u' (temp uint) +0:60 'd' (temp double) +0:61 Function Call: foo2(d1;f1; (global void) +0:61 Convert uint to double (temp double) +0:61 'u' (temp uint) +0:61 Convert uint to float (temp float) +0:61 'u' (temp uint) +0:62 Function Call: foo2(d1;f1; (global void) +0:62 Convert uint to double (temp double) +0:62 'u' (temp uint) +0:62 Convert int to float (temp float) +0:62 'i' (temp int) +0:63 Function Call: foo2(d1;f1; (global void) +0:63 Convert uint to double (temp double) +0:63 'u' (temp uint) +0:63 'f' (temp float) +0:65 Function Call: foo2(d1;d1; (global void) +0:65 Convert int to double (temp double) +0:65 'i' (temp int) +0:65 'd' (temp double) +0:66 Function Call: foo2(d1;f1; (global void) +0:66 Convert int to double (temp double) +0:66 'i' (temp int) +0:66 Convert uint to float (temp float) +0:66 'u' (temp uint) +0:67 Function Call: foo2(d1;f1; (global void) +0:67 Convert int to double (temp double) +0:67 'i' (temp int) +0:67 Convert int to float (temp float) +0:67 'i' (temp int) +0:68 Function Call: foo2(d1;f1; (global void) +0:68 Convert int to double (temp double) +0:68 'i' (temp int) +0:68 'f' (temp float) +0:70 Constant: +0:70 0.000000 +0:71 Function Call: foo3(d1;f1; (global void) +0:71 'd' (temp double) +0:71 Convert uint to float (temp float) +0:71 'u' (temp uint) +0:72 Function Call: foo3(d1;f1; (global void) +0:72 'd' (temp double) +0:72 Convert int to float (temp float) +0:72 'i' (temp int) +0:73 Function Call: foo3(d1;f1; (global void) +0:73 'd' (temp double) +0:73 'f' (temp float) +0:75 Function Call: foo3(f1;d1; (global void) +0:75 'f' (temp float) +0:75 'd' (temp double) +0:76 Function Call: foo3(d1;f1; (global void) +0:76 Convert float to double (temp double) +0:76 'f' (temp float) +0:76 Convert uint to float (temp float) +0:76 'u' (temp uint) +0:77 Function Call: foo3(d1;f1; (global void) +0:77 Convert float to double (temp double) +0:77 'f' (temp float) +0:77 Convert int to float (temp float) +0:77 'i' (temp int) +0:78 Function Call: foo3(d1;f1; (global void) +0:78 Convert float to double (temp double) +0:78 'f' (temp float) +0:78 'f' (temp float) +0:80 Function Call: foo3(f1;d1; (global void) +0:80 Convert uint to float (temp float) +0:80 'u' (temp uint) +0:80 'd' (temp double) +0:81 Function Call: foo3(d1;f1; (global void) +0:81 Convert uint to double (temp double) +0:81 'u' (temp uint) +0:81 Convert uint to float (temp float) +0:81 'u' (temp uint) +0:82 Function Call: foo3(d1;f1; (global void) +0:82 Convert uint to double (temp double) +0:82 'u' (temp uint) +0:82 Convert int to float (temp float) +0:82 'i' (temp int) +0:83 Function Call: foo3(d1;f1; (global void) +0:83 Convert uint to double (temp double) +0:83 'u' (temp uint) +0:83 'f' (temp float) +0:85 Function Call: foo3(f1;d1; (global void) +0:85 Convert int to float (temp float) +0:85 'i' (temp int) +0:85 'd' (temp double) +0:86 Function Call: foo3(d1;f1; (global void) +0:86 Convert int to double (temp double) +0:86 'i' (temp int) +0:86 Convert uint to float (temp float) +0:86 'u' (temp uint) +0:87 Function Call: foo3(d1;f1; (global void) +0:87 Convert int to double (temp double) +0:87 'i' (temp int) +0:87 Convert int to float (temp float) +0:87 'i' (temp int) +0:88 Function Call: foo3(d1;f1; (global void) +0:88 Convert int to double (temp double) +0:88 'i' (temp int) +0:88 'f' (temp float) +0:90 Function Call: ftd(i1;f1;d1; (global void) +0:90 'i' (temp int) +0:90 'f' (temp float) +0:90 Convert float to double (temp double) +0:90 'f' (temp float) +0:91 Function Call: ftd(u1;f1;d1; (global void) +0:91 'u' (temp uint) +0:91 'f' (temp float) +0:91 Convert float to double (temp double) +0:91 'f' (temp float) +0:97 Function Definition: tf( (global void) +0:97 Function Parameters: +0:? Sequence +0:104 Function Call: itf(i1;f1;i1; (global void) +0:104 'i' (temp int) +0:104 Convert int to float (temp float) +0:104 'i' (temp int) +0:104 'i' (temp int) +0:105 Function Call: itf(i1;f1;i1; (global void) +0:105 'i' (temp int) +0:105 Convert uint to float (temp float) +0:105 'u' (temp uint) +0:105 'i' (temp int) 0:? Linker Objects 0:? 'd' (in double) 0:? 'd3' (in 3-component vector of double) @@ -23,8 +298,273 @@ Linked vertex stage: Shader version: 400 ERROR: node is still EOpNull! -0:7 Function Definition: main( (global void) -0:7 Function Parameters: +0:8 Function Definition: foo1(d1;u1; (global void) +0:8 Function Parameters: +0:8 'a' (in double) +0:8 'b' (in uint) +0:9 Function Definition: foo1(d1;i1; (global void) +0:9 Function Parameters: +0:9 'a' (in double) +0:9 'b' (in int) +0:10 Function Definition: foo1(d1;f1; (global void) +0:10 Function Parameters: +0:10 'a' (in double) +0:10 'b' (in float) +0:11 Function Definition: foo1(d1;d1; (global void) +0:11 Function Parameters: +0:11 'a' (in double) +0:11 'b' (in double) +0:13 Function Definition: foo2(d1;f1; (global void) +0:13 Function Parameters: +0:13 'a' (in double) +0:13 'b' (in float) +0:14 Function Definition: foo2(d1;d1; (global void) +0:14 Function Parameters: +0:14 'a' (in double) +0:14 'b' (in double) +0:16 Function Definition: foo3(d1;f1; (global void) +0:16 Function Parameters: +0:16 'a' (in double) +0:16 'b' (in float) +0:17 Function Definition: foo3(f1;d1; (global void) +0:17 Function Parameters: +0:17 'a' (in float) +0:17 'b' (in double) +0:19 Function Definition: ftd(i1;f1;d1; (global void) +0:19 Function Parameters: +0:19 '' (in int) +0:19 '' (in float) +0:19 '' (in double) +0:20 Function Definition: ftd(u1;f1;d1; (global void) +0:20 Function Parameters: +0:20 '' (in uint) +0:20 '' (in float) +0:20 '' (in double) +0:21 Function Definition: ftd(f1;d1;d1; (global void) +0:21 Function Parameters: +0:21 '' (in float) +0:21 '' (in double) +0:21 '' (in double) +0:23 Function Definition: main( (global void) +0:23 Function Parameters: +0:? Sequence +0:30 Function Call: foo1(d1;d1; (global void) +0:30 'd' (temp double) +0:30 'd' (temp double) +0:31 Function Call: foo1(d1;u1; (global void) +0:31 'd' (temp double) +0:31 'u' (temp uint) +0:32 Function Call: foo1(d1;i1; (global void) +0:32 'd' (temp double) +0:32 'i' (temp int) +0:33 Function Call: foo1(d1;f1; (global void) +0:33 'd' (temp double) +0:33 'f' (temp float) +0:35 Function Call: foo1(d1;d1; (global void) +0:35 Convert float to double (temp double) +0:35 'f' (temp float) +0:35 'd' (temp double) +0:36 Function Call: foo1(d1;u1; (global void) +0:36 Convert float to double (temp double) +0:36 'f' (temp float) +0:36 'u' (temp uint) +0:37 Function Call: foo1(d1;i1; (global void) +0:37 Convert float to double (temp double) +0:37 'f' (temp float) +0:37 'i' (temp int) +0:38 Function Call: foo1(d1;f1; (global void) +0:38 Convert float to double (temp double) +0:38 'f' (temp float) +0:38 'f' (temp float) +0:40 Function Call: foo1(d1;d1; (global void) +0:40 Convert uint to double (temp double) +0:40 'u' (temp uint) +0:40 'd' (temp double) +0:41 Function Call: foo1(d1;u1; (global void) +0:41 Convert uint to double (temp double) +0:41 'u' (temp uint) +0:41 'u' (temp uint) +0:42 Function Call: foo1(d1;i1; (global void) +0:42 Convert uint to double (temp double) +0:42 'u' (temp uint) +0:42 'i' (temp int) +0:43 Function Call: foo1(d1;f1; (global void) +0:43 Convert uint to double (temp double) +0:43 'u' (temp uint) +0:43 'f' (temp float) +0:45 Function Call: foo1(d1;d1; (global void) +0:45 Convert int to double (temp double) +0:45 'i' (temp int) +0:45 'd' (temp double) +0:46 Function Call: foo1(d1;u1; (global void) +0:46 Convert int to double (temp double) +0:46 'i' (temp int) +0:46 'u' (temp uint) +0:47 Function Call: foo1(d1;i1; (global void) +0:47 Convert int to double (temp double) +0:47 'i' (temp int) +0:47 'i' (temp int) +0:48 Function Call: foo1(d1;f1; (global void) +0:48 Convert int to double (temp double) +0:48 'i' (temp int) +0:48 'f' (temp float) +0:50 Function Call: foo2(d1;d1; (global void) +0:50 'd' (temp double) +0:50 'd' (temp double) +0:51 Function Call: foo2(d1;f1; (global void) +0:51 'd' (temp double) +0:51 Convert uint to float (temp float) +0:51 'u' (temp uint) +0:52 Function Call: foo2(d1;f1; (global void) +0:52 'd' (temp double) +0:52 Convert int to float (temp float) +0:52 'i' (temp int) +0:53 Function Call: foo2(d1;f1; (global void) +0:53 'd' (temp double) +0:53 'f' (temp float) +0:55 Function Call: foo2(d1;d1; (global void) +0:55 Convert float to double (temp double) +0:55 'f' (temp float) +0:55 'd' (temp double) +0:56 Function Call: foo2(d1;f1; (global void) +0:56 Convert float to double (temp double) +0:56 'f' (temp float) +0:56 Convert uint to float (temp float) +0:56 'u' (temp uint) +0:57 Function Call: foo2(d1;f1; (global void) +0:57 Convert float to double (temp double) +0:57 'f' (temp float) +0:57 Convert int to float (temp float) +0:57 'i' (temp int) +0:58 Function Call: foo2(d1;f1; (global void) +0:58 Convert float to double (temp double) +0:58 'f' (temp float) +0:58 'f' (temp float) +0:60 Function Call: foo2(d1;d1; (global void) +0:60 Convert uint to double (temp double) +0:60 'u' (temp uint) +0:60 'd' (temp double) +0:61 Function Call: foo2(d1;f1; (global void) +0:61 Convert uint to double (temp double) +0:61 'u' (temp uint) +0:61 Convert uint to float (temp float) +0:61 'u' (temp uint) +0:62 Function Call: foo2(d1;f1; (global void) +0:62 Convert uint to double (temp double) +0:62 'u' (temp uint) +0:62 Convert int to float (temp float) +0:62 'i' (temp int) +0:63 Function Call: foo2(d1;f1; (global void) +0:63 Convert uint to double (temp double) +0:63 'u' (temp uint) +0:63 'f' (temp float) +0:65 Function Call: foo2(d1;d1; (global void) +0:65 Convert int to double (temp double) +0:65 'i' (temp int) +0:65 'd' (temp double) +0:66 Function Call: foo2(d1;f1; (global void) +0:66 Convert int to double (temp double) +0:66 'i' (temp int) +0:66 Convert uint to float (temp float) +0:66 'u' (temp uint) +0:67 Function Call: foo2(d1;f1; (global void) +0:67 Convert int to double (temp double) +0:67 'i' (temp int) +0:67 Convert int to float (temp float) +0:67 'i' (temp int) +0:68 Function Call: foo2(d1;f1; (global void) +0:68 Convert int to double (temp double) +0:68 'i' (temp int) +0:68 'f' (temp float) +0:70 Constant: +0:70 0.000000 +0:71 Function Call: foo3(d1;f1; (global void) +0:71 'd' (temp double) +0:71 Convert uint to float (temp float) +0:71 'u' (temp uint) +0:72 Function Call: foo3(d1;f1; (global void) +0:72 'd' (temp double) +0:72 Convert int to float (temp float) +0:72 'i' (temp int) +0:73 Function Call: foo3(d1;f1; (global void) +0:73 'd' (temp double) +0:73 'f' (temp float) +0:75 Function Call: foo3(f1;d1; (global void) +0:75 'f' (temp float) +0:75 'd' (temp double) +0:76 Function Call: foo3(d1;f1; (global void) +0:76 Convert float to double (temp double) +0:76 'f' (temp float) +0:76 Convert uint to float (temp float) +0:76 'u' (temp uint) +0:77 Function Call: foo3(d1;f1; (global void) +0:77 Convert float to double (temp double) +0:77 'f' (temp float) +0:77 Convert int to float (temp float) +0:77 'i' (temp int) +0:78 Function Call: foo3(d1;f1; (global void) +0:78 Convert float to double (temp double) +0:78 'f' (temp float) +0:78 'f' (temp float) +0:80 Function Call: foo3(f1;d1; (global void) +0:80 Convert uint to float (temp float) +0:80 'u' (temp uint) +0:80 'd' (temp double) +0:81 Function Call: foo3(d1;f1; (global void) +0:81 Convert uint to double (temp double) +0:81 'u' (temp uint) +0:81 Convert uint to float (temp float) +0:81 'u' (temp uint) +0:82 Function Call: foo3(d1;f1; (global void) +0:82 Convert uint to double (temp double) +0:82 'u' (temp uint) +0:82 Convert int to float (temp float) +0:82 'i' (temp int) +0:83 Function Call: foo3(d1;f1; (global void) +0:83 Convert uint to double (temp double) +0:83 'u' (temp uint) +0:83 'f' (temp float) +0:85 Function Call: foo3(f1;d1; (global void) +0:85 Convert int to float (temp float) +0:85 'i' (temp int) +0:85 'd' (temp double) +0:86 Function Call: foo3(d1;f1; (global void) +0:86 Convert int to double (temp double) +0:86 'i' (temp int) +0:86 Convert uint to float (temp float) +0:86 'u' (temp uint) +0:87 Function Call: foo3(d1;f1; (global void) +0:87 Convert int to double (temp double) +0:87 'i' (temp int) +0:87 Convert int to float (temp float) +0:87 'i' (temp int) +0:88 Function Call: foo3(d1;f1; (global void) +0:88 Convert int to double (temp double) +0:88 'i' (temp int) +0:88 'f' (temp float) +0:90 Function Call: ftd(i1;f1;d1; (global void) +0:90 'i' (temp int) +0:90 'f' (temp float) +0:90 Convert float to double (temp double) +0:90 'f' (temp float) +0:91 Function Call: ftd(u1;f1;d1; (global void) +0:91 'u' (temp uint) +0:91 'f' (temp float) +0:91 Convert float to double (temp double) +0:91 'f' (temp float) +0:97 Function Definition: tf( (global void) +0:97 Function Parameters: +0:? Sequence +0:104 Function Call: itf(i1;f1;i1; (global void) +0:104 'i' (temp int) +0:104 Convert int to float (temp float) +0:104 'i' (temp int) +0:104 'i' (temp int) +0:105 Function Call: itf(i1;f1;i1; (global void) +0:105 'i' (temp int) +0:105 Convert uint to float (temp float) +0:105 'u' (temp uint) +0:105 'i' (temp int) 0:? Linker Objects 0:? 'd' (in double) 0:? 'd3' (in 3-component vector of double) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 090e082e..f25c7851 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4895,10 +4895,239 @@ const TFunction* TParseContext::findFunction120(const TSourceLoc& loc, const TFu } // Function finding algorithm for desktop version 400 and above. +// +// "When function calls are resolved, an exact type match for all the arguments +// is sought. If an exact match is found, all other functions are ignored, and +// the exact match is used. If no exact match is found, then the implicit +// conversions in section 4.1.10 “Implicit Conversions” will be applied to find +// a match. Mismatched types on input parameters (in or inout or default) must +// have a conversion from the calling argument type to the formal parameter type. +// Mismatched types on output parameters (out or inout) must have a conversion +// from the formal parameter type to the calling argument type. +// +// "If implicit conversions can be used to find more than one matching function, +// a single best-matching function is sought. To determine a best match, the +// conversions between calling argument and formal parameter types are compared +// for each function argument and pair of matching functions. After these +// comparisons are performed, each pair of matching functions are compared. +// A function declaration A is considered a better match than function +// declaration B if +// +// * for at least one function argument, the conversion for that argument in A +// is better than the corresponding conversion in B; and +// * there is no function argument for which the conversion in B is better than +// the corresponding conversion in A. +// +// "If a single function declaration is considered a better match than every +// other matching function declaration, it will be used. Otherwise, a +// compile-time semantic error for an ambiguous overloaded function call occurs. +// +// "To determine whether the conversion for a single argument in one match is +// better than that for another match, the following rules are applied, in order: +// +// 1. An exact match is better than a match involving any implicit conversion. +// 2. A match involving an implicit conversion from float to double is better +// than a match involving any other implicit conversion. +// 3. A match involving an implicit conversion from either int or uint to float +// is better than a match involving an implicit conversion from either int +// or uint to double. +// +// "If none of the rules above apply to a particular pair of conversions, neither +// conversion is considered better than the other." +// const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn) { - // TODO: 4.00 functionality: findFunction400() - return findFunction120(loc, call, builtIn); + // first, look for an exact match + TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn); + if (symbol) + return symbol->getAsFunction(); + + // no exact match, use the generic selector, parameterized by the GLSL rules + + // create list of candidates to send + TVector candidateList; + symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); + + // can 'from' convert to 'to'? + auto convertible = [this](const TType& from, const TType& to) { + if (from == to) + return true; + if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) + return false; + return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType()); + }; + + // Is 'to2' a better conversion than 'to1'? + // Ties should not be considered as better. + // Assumes 'convertible' already said true. + auto better = [](const TType& from, const TType& to1, const TType& to2) { + // 1. exact match + if (from == to2) + return from != to1; + if (from == to1) + return false; + + // 2. float -> double is better + if (from.getBasicType() == EbtFloat) { + if (to2.getBasicType() == EbtDouble && to1.getBasicType() != EbtDouble) + return true; + } + + // 3. -> float is better than -> double + return to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble; + }; + + // for ambiguity reporting + bool tie = false; + + // send to the generic selector + const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); + + if (bestMatch == nullptr) + error(loc, "no matching overloaded function found", call.getName().c_str(), ""); + else if (tie) + error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); + + return bestMatch; +} + +// Select the best matching function for 'call' from 'candidateList'. +// +// Assumptions +// +// There is no exact match, so a selection algorithm needs to run. That is, the +// language-specific handler should should check for exact match first, to +// decide what to do, before calling this selector. +// +// Input +// +// * list of candidate signatures to select from +// * the call +// * a predicate function convertible(from, to) that says whether or not type +// 'from' can implicitly convert to type 'to' (it includes the case of what +// the calling language would consider a matching type with no conversion +// needed) +// * a predicate function better(from1, from2, to1, to2) that says whether or +// not a conversion from from <-> to2 is considered better than a conversion +// from <-> to1 (both in and out directions need testing, as declared by the +// formal parameter) +// +// Output +// +// * best matching candidate (or none, if no viable candidates found) +// * whether there was a tie for the best match (ambiguous overload selection, +// caller's choice for how to report) +// +const TFunction* TParseContextBase::selectFunction( + TVector candidateList, + const TFunction& call, + std::function convertible, + std::function better, + /* output */ bool& tie) +{ +// +// Operation +// +// 1. Prune the input list of candidates down to a list of viable candidates, +// where each viable candidate has +// +// * at least as many parameters as there are calling arguments, with any +// remainding parameters being optional or having default values +// * each parameter is true under convertible(A, B), where A is the calling +// type for in and B is the formal type, and in addition, for out B is the +// calling type and A is the formal type +// +// 2. If there are no viable candidates, return with no match. +// +// 3. If there is only one viable candidate, it is the best match. +// +// 4. If there are multiple viable candidates, select the first viable candidate +// as the incumbent. Compare the incumbent to the next viable candidate, and if +// that candidate is better (bullets below), make it the incumbent. Repeat, with +// a linear walk through the viable candidate list. The final incumbent will be +// returned as the best match. A viable candidate is better than the incumbent if +// +// * it has a function argument with a better(...) conversion than the incumbent, +// for all directions needed by in and out +// * the incumbent has no argument with a better(...) conversion then the +// candidate, for either in or out (as needed) +// +// 5. Check for ambiguity by comparing the best match against all other viable +// candidates. If any other viable candidate has a function argument with a +// better(...) conversion than the best candidate (for either in or out +// directions), return that there was a tie for best. +// + + tie = false; + + // 1. prune to viable... + TVector viableCandidates; + for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { + const TFunction& candidate = *(*it); + + // to even be a potential match, number of arguments has to match + if (call.getParamCount() != candidate.getParamCount()) + continue; + + // see if arguments are convertible + bool viable = true; + for (int param = 0; param < candidate.getParamCount(); ++param) { + if (candidate[param].type->getQualifier().isParamInput()) { + if (! convertible(*call[param].type, *candidate[param].type)) { + viable = false; + break; + } + } + if (candidate[param].type->getQualifier().isParamOutput()) { + if (! convertible(*candidate[param].type, *call[param].type)) { + viable = false; + break; + } + } + } + + if (viable) + viableCandidates.push_back(&candidate); + } + + // 2. none viable... + if (viableCandidates.size() == 0) + return nullptr; + + // 3. only one viable... + if (viableCandidates.size() == 1) + return viableCandidates.front(); + + // 4. find best... + auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2){ + // is call -> can2 better than call -> can1 for any parameter + bool hasBetterParam = false; + for (int param = 0; param < call.getParamCount(); ++param) { + if (better(*call[param].type, *can1[param].type, *can2[param].type)) { + hasBetterParam = true; + break; + } + } + return hasBetterParam; + }; + + const TFunction* incumbent = viableCandidates.front(); + for (auto it = viableCandidates.begin() + 1; it != viableCandidates.end(); ++it) { + const TFunction& candidate = *(*it); + if (betterParam(*incumbent, candidate) && ! betterParam(candidate, *incumbent)) + incumbent = &candidate; + } + + // 5. ambiguity... + for (auto it = viableCandidates.begin(); it != viableCandidates.end(); ++it) { + if (incumbent == *it) + continue; + const TFunction& candidate = *(*it); + if (betterParam(*incumbent, candidate)) + tie = true; + } + + return incumbent; } // When a declaration includes a type, but not a variable name, it can be diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 544c3d30..a9056196 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -142,6 +142,12 @@ protected: std::function versionCallback; std::function extensionCallback; std::function errorCallback; + + // see implementation for detail + const TFunction* selectFunction(TVector, const TFunction&, + std::function, + std::function, + /* output */ bool& tie); }; // From efe97247958422eb26ce75d8809db18568146a26 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Mon, 22 Aug 2016 16:13:47 -0600 Subject: [PATCH 081/217] HLSL: Add EHTokStringConstant, so that string attributes may be parsed --- Test/baseResults/hlsl.stringtoken.frag.out | 90 +++++++++++++++++++ Test/hlsl.stringtoken.frag | 20 +++++ .../preprocessor/PpScanner.cpp | 7 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslScanContext.cpp | 5 ++ hlsl/hlslTokens.h | 1 + 6 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 Test/baseResults/hlsl.stringtoken.frag.out create mode 100644 Test/hlsl.stringtoken.frag diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out new file mode 100644 index 00000000..cb2a4913 --- /dev/null +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -0,0 +1,90 @@ +hlsl.stringtoken.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Parameters: +0:? Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:19 Branch: Return with expression +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Linker Objects +0:? 'TestTexture' (uniform texture2D) +0:? 'TestUF' (uniform 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Parameters: +0:? Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:19 Branch: Return with expression +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Linker Objects +0:? 'TestTexture' (uniform texture2D) +0:? 'TestUF' (uniform 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "psout" + Name 22 "TestTexture" + Name 24 "TestUF" + Decorate 22(TestTexture) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: 6(float) Constant 0 + 14: 6(float) Constant 1065353216 + 15: 7(fvec4) ConstantComposite 13 13 13 14 + 16: TypePointer Function 7(fvec4) + 20: TypeImage 6(float) 2D sampled format:Unknown + 21: TypePointer UniformConstant 20 + 22(TestTexture): 21(ptr) Variable UniformConstant + 23: TypePointer UniformConstant 7(fvec4) + 24(TestUF): 23(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 10(psout): 9(ptr) Variable Function + 17: 16(ptr) AccessChain 10(psout) 12 + Store 17 15 + 18:8(PS_OUTPUT) Load 10(psout) + ReturnValue 18 + FunctionEnd diff --git a/Test/hlsl.stringtoken.frag b/Test/hlsl.stringtoken.frag new file mode 100644 index 00000000..fe785e6d --- /dev/null +++ b/Test/hlsl.stringtoken.frag @@ -0,0 +1,20 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +Texture2D TestTexture < + string TestAttribute1 = "TestAttribute"; + string TestAttribute2 = "false"; + int TestAttribute3 = 3; +>; + +uniform float4 TestUF ; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = float4(0,0,0,1); + return psout; +} diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index fc1c3019..dad4c425 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -747,7 +747,12 @@ const char* TPpContext::tokenize(TPpToken* ppToken) tokenString = ppToken->name; break; case PpAtomConstString: - parseContext.ppError(ppToken->loc, "string literals not supported", "\"\"", ""); + if (parseContext.intermediate.getSource() == EShSourceHlsl) { + // HLSL allows string literals. + tokenString = ppToken->name; + } else { + parseContext.ppError(ppToken->loc, "string literals not supported", "\"\"", ""); + } break; case '\'': parseContext.ppError(ppToken->loc, "character literals not supported", "\'", ""); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 3ea6fc1f..a98dd87c 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -151,6 +151,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, + {"hlsl.stringtoken.frag", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index a3be6fad..009210f1 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -411,6 +411,11 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) return token; } + case PpAtomConstString: { + parserToken->string = NewPoolTString(ppToken.name); + return EHTokStringConstant; + } + case EndOfInput: return EHTokNone; default: diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index b54a757d..db3b0972 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -223,6 +223,7 @@ enum EHlslTokenClass { EHTokIntConstant, EHTokUintConstant, EHTokBoolConstant, + EHTokStringConstant, // control flow EHTokFor, From 2bbbe0621de0f15a6fb2df9a25dc331ea0b370ab Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Tue, 23 Aug 2016 15:41:05 +0800 Subject: [PATCH 082/217] SPV: Some group invocation operations should be applied to scalars. --- SPIRV/GlslangToSpv.cpp | 59 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 5f631b4d..14666652 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -149,11 +149,14 @@ protected: spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true); spv::Id createBinaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id left, spv::Id right); spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); - spv::Id createUnaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); + spv::Id createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy); spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id createInvocationsOperation(glslang::TOperator, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy); + spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy); +#ifdef AMD_EXTENSIONS + spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand); +#endif spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); @@ -3940,7 +3943,10 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op spvOp = spv::OpGroupIAdd; } - return builder.createOp(spvOp, typeId, operands); + if (builder.isVectorType(typeId)) + return CreateInvocationsVectorOperation(spvOp, typeId, operand); + else + return builder.createOp(spvOp, typeId, operands); } case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: @@ -3974,7 +3980,10 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op spvOp = spv::OpGroupIAddNonUniformAMD; } - return builder.createOp(spvOp, typeId, operands); + if (builder.isVectorType(typeId)) + return CreateInvocationsVectorOperation(spvOp, typeId, operand); + else + return builder.createOp(spvOp, typeId, operands); } #endif default: @@ -3983,6 +3992,48 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } } +#ifdef AMD_EXTENSIONS +// Create group invocation operations on a vector +spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand) +{ + assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || + op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || + op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD || + op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupSMaxNonUniformAMD || + op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); + + // Handle group invocation operations scalar by scalar. + // The result type is the same type as the original type. + // The algorithm is to: + // - break the vector into scalars + // - apply the operation to each scalar + // - make a vector out the scalar results + + // get the types sorted out + int numComponents = builder.getNumComponents(operand); + spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operand)); + std::vector results; + + // do each scalar op + for (int comp = 0; comp < numComponents; ++comp) { + std::vector indexes; + indexes.push_back(comp); + spv::Id scalar = builder.createCompositeExtract(operand, scalarType, indexes); + + std::vector operands; + operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + operands.push_back(spv::GroupOperationReduce); + operands.push_back(scalar); + + results.push_back(builder.createOp(op, scalarType, operands)); + } + + // put the pieces together + return builder.createCompositeConstruct(typeId, results); +} +#endif + spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; From 219b025d7eae1383770c89247e6c5eb1909ac188 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 23 Aug 2016 17:51:13 -0600 Subject: [PATCH 083/217] Non-functional: Fix commit 98f164ec488f85af5a44b701477a34e810f2deb1. Fix previous commit to not use tabs and otherwise match local coding conventions better. --- StandAlone/StandAlone.cpp | 6 +++--- glslang/Include/revision.h | 4 ++-- hlsl/hlslParseHelper.cpp | 6 ++++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 0c54273e..606f2476 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -415,13 +415,13 @@ struct ShaderCompUnit { char** text; // memory owned/managed externally const char* fileNameList[1]; - //Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs + // Need to have a special constructors to adjust the fileNameList, since back end needs a list of ptrs ShaderCompUnit(EShLanguage istage, std::string &ifileName, char** itext) { stage = istage; fileName = ifileName; text = itext; - fileNameList[0] = fileName.c_str(); + fileNameList[0] = fileName.c_str(); } ShaderCompUnit(const ShaderCompUnit &rhs) @@ -429,7 +429,7 @@ struct ShaderCompUnit { stage = rhs.stage; fileName = rhs.fileName; text = rhs.text; - fileNameList[0] = fileName.c_str(); + fileNameList[0] = fileName.c_str(); } }; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 5bc8c9de..3a929fd9 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1401" -#define GLSLANG_DATE "11-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1426" +#define GLSLANG_DATE "23-Aug-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 3aef7bb1..42d6704c 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -118,9 +118,11 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& HlslGrammar grammar(scanContext, *this); if (!grammar.parse()) { - //Print out a nicer error message that should be formated such that if you click on the message it will take you right to the line through most UIs + // Print a message formated such that if you click on the message it will take you right to + // the line through most UIs. const glslang::TSourceLoc& sourceLoc = input.getSourceLoc(); - printf("\n%s(%i): error at column %i, HLSL translation failed.\n", sourceLoc.name, sourceLoc.line, sourceLoc.column); + printf("\n%s(%i): error at column %i, HLSL translation failed.\n", sourceLoc.name, sourceLoc.line, + sourceLoc.column); } return numErrors == 0; } From 4d535640e45898541e7f79a834f91617fc7bdd73 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 3 Aug 2016 15:19:37 -0600 Subject: [PATCH 084/217] Front-End: Non-ES trigger for processing precision qualifiers. Initially non-functional: Have an independent test for whether to obey precision qualifiers other than whether the profile is es. --- glslang/Include/Types.h | 2 +- glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 76 ++++++++++++---------- glslang/MachineIndependent/ParseHelper.h | 6 +- glslang/MachineIndependent/glslang.y | 6 +- glslang/MachineIndependent/glslang_tab.cpp | 6 +- 6 files changed, 56 insertions(+), 44 deletions(-) diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 1ea9f253..6c2ded8e 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1075,7 +1075,7 @@ public: qualifier.clear(); qualifier.storage = q; qualifier.precision = p; - assert(p >= 0 && p <= EpqHigh); + assert(p >= EpqNone && p <= EpqHigh); } // for turning a TPublicType into a TType, using a shallow copy explicit TType(const TPublicType& p) : diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 3a929fd9..00ffc1bc 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1426" -#define GLSLANG_DATE "23-Aug-2016" +#define GLSLANG_REVISION "SPIRV99.1384" +#define GLSLANG_DATE "03-Aug-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 7211d4b0..822c361e 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -61,6 +61,43 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms linkage = new TIntermAggregate; + // decide whether precision qualifiers should be ignored or respected + obeyPrecisionQualifiers_ = profile == EEsProfile; + setPrecisionDefaults(); + + globalUniformDefaults.clear(); + globalUniformDefaults.layoutMatrix = ElmColumnMajor; + globalUniformDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd140 : ElpShared; + + globalBufferDefaults.clear(); + globalBufferDefaults.layoutMatrix = ElmColumnMajor; + globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared; + + globalInputDefaults.clear(); + globalOutputDefaults.clear(); + + // "Shaders in the transform + // feedback capturing mode have an initial global default of + // layout(xfb_buffer = 0) out;" + if (language == EShLangVertex || + language == EShLangTessControl || + language == EShLangTessEvaluation || + language == EShLangGeometry) + globalOutputDefaults.layoutXfbBuffer = 0; + + if (language == EShLangGeometry) + globalOutputDefaults.layoutStream = 0; +} + +TParseContext::~TParseContext() +{ + delete [] atomicUintOffsets; +} + +// Set up all default precisions as needed by the current environment. +// Intended just as a TParseContext constructor helper. +void TParseContext::setPrecisionDefaults() +{ // set all precision defaults to EpqNone, which is correct for all desktop types // and for ES types that don't have defaults (thus getting an error on use) for (int type = 0; type < EbtNumTypes; ++type) @@ -70,7 +107,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b defaultSamplerPrecision[type] = EpqNone; // replace with real precision defaults for those that have them - if (profile == EEsProfile) { + if (obeyPrecisionQualifiers()) { TSampler sampler; sampler.set(EbtFloat, Esd2D); defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; @@ -101,34 +138,6 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b defaultPrecision[EbtSampler] = EpqLow; defaultPrecision[EbtAtomicUint] = EpqHigh; } - - globalUniformDefaults.clear(); - globalUniformDefaults.layoutMatrix = ElmColumnMajor; - globalUniformDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd140 : ElpShared; - - globalBufferDefaults.clear(); - globalBufferDefaults.layoutMatrix = ElmColumnMajor; - globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared; - - globalInputDefaults.clear(); - globalOutputDefaults.clear(); - - // "Shaders in the transform - // feedback capturing mode have an initial global default of - // layout(xfb_buffer = 0) out;" - if (language == EShLangVertex || - language == EShLangTessControl || - language == EShLangTessEvaluation || - language == EShLangGeometry) - globalOutputDefaults.layoutXfbBuffer = 0; - - if (language == EShLangGeometry) - globalOutputDefaults.layoutStream = 0; -} - -TParseContext::~TParseContext() -{ - delete [] atomicUintOffsets; } void TParseContext::setLimits(const TBuiltInResource& r) @@ -1223,7 +1232,9 @@ TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNo TIntermTyped *result = intermediate.addBuiltInFunctionCall(loc, function.getBuiltInOp(), function.getParamCount() == 1, &arguments, function.getType()); - computeBuiltinPrecisions(*result, function); + if (obeyPrecisionQualifiers()) + computeBuiltinPrecisions(*result, function); + if (result == nullptr) { error(arguments.getLoc(), " wrong operand type", "Internal Error", "built in unary operator function. Type: %s", @@ -1271,9 +1282,6 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction TPrecisionQualifier operationPrecision = EpqNone; TPrecisionQualifier resultPrecision = EpqNone; - if (profile != EEsProfile) - return; - TIntermOperator* opNode = node.getAsOperator(); if (opNode == nullptr) return; @@ -2934,7 +2942,7 @@ void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType ba { // Built-in symbols are allowed some ambiguous precisions, to be pinned down // later by context. - if (profile != EEsProfile || parsingBuiltins) + if (! obeyPrecisionQualifiers() || parsingBuiltins) return; if (baseType == EbtAtomicUint && qualifier.precision != EpqNone && qualifier.precision != EpqHigh) diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 544c3d30..0c64b570 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -80,7 +80,7 @@ public: symbolTable(symbolTable), tokensBeforeEOF(false), linkage(nullptr), scanContext(nullptr), ppContext(nullptr) { } virtual ~TParseContextBase() { } - + virtual void setLimits(const TBuiltInResource&) = 0; EShLanguage getLanguage() const { return language; } @@ -155,6 +155,9 @@ public: bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~TParseContext(); + bool obeyPrecisionQualifiers() const { return obeyPrecisionQualifiers_; }; + void setPrecisionDefaults(); + void setLimits(const TBuiltInResource&); bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); void parserError(const char* s); // for bison's yyerror @@ -351,6 +354,7 @@ protected: TIdSetType inductiveLoopIds; bool anyIndexLimits; TVector needsIndexLimitationChecking; + bool obeyPrecisionQualifiers_; // // Geometry shader input arrays: diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 72bad947..aafe85c6 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -2206,19 +2206,19 @@ precision_qualifier : HIGH_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) $$.qualifier.precision = EpqHigh; } | MEDIUM_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) $$.qualifier.precision = EpqMedium; } | LOW_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) $$.qualifier.precision = EpqLow; } ; diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 0d1dc433..84f46dac 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -6667,7 +6667,7 @@ yyreduce: { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) (yyval.interm.type).qualifier.precision = EpqHigh; } #line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ @@ -6678,7 +6678,7 @@ yyreduce: { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) (yyval.interm.type).qualifier.precision = EpqMedium; } #line 6685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ @@ -6689,7 +6689,7 @@ yyreduce: { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.profile == EEsProfile) + if (parseContext.obeyPrecisionQualifiers()) (yyval.interm.type).qualifier.precision = EpqLow; } #line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ From 54571c25191baa4f25f67001deec30e5a2d49b2f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 3 Aug 2016 16:41:53 -0600 Subject: [PATCH 085/217] Vulkan: Have desktop shaders respect precision qualifiers. Sets highp defaults for the appropriate types, for all stages, and turns on precision qualifiers for non-ES shaders. Required fixing some qualifier orders for desktop built-in declarations for pre-420 shaders. --- Test/baseResults/spv.430.vert.out | 1 + Test/baseResults/spv.aggOps.frag.out | 5 + .../spv.for-complex-condition.vert.out | 2 + Test/baseResults/spv.forwardFun.frag.out | 20 +++ Test/baseResults/spv.layoutNested.vert.out | 12 ++ .../baseResults/spv.structAssignment.frag.out | 2 + Test/baseResults/vulkan.ast.vert.out | 168 +++++++++--------- Test/baseResults/vulkan.frag.out | 2 +- Test/baseResults/vulkan.vert.out | 2 +- glslang/MachineIndependent/Initialize.cpp | 24 +-- glslang/MachineIndependent/ParseHelper.cpp | 40 +++-- 11 files changed, 164 insertions(+), 114 deletions(-) diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index 52749134..c3ad2b92 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -63,6 +63,7 @@ Linked vertex stage: Decorate 55(sampb2) Binding 5 Decorate 56(sampb4) DescriptorSet 0 Decorate 56(sampb4) Binding 31 + MemberDecorate 59(S) 0 RelaxedPrecision Decorate 62(var) Flat Decorate 62(var) Location 0 MemberDecorate 63(MS) 0 Location 17 diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out index 4888bea4..7772cc60 100644 --- a/Test/baseResults/spv.aggOps.frag.out +++ b/Test/baseResults/spv.aggOps.frag.out @@ -64,6 +64,11 @@ Linked fragment stage: Decorate 66(ub2) BufferBlock Decorate 68(uName2) DescriptorSet 0 Decorate 97(samp2D) DescriptorSet 0 + Decorate 101(coord) RelaxedPrecision + Decorate 102 RelaxedPrecision + Decorate 107 RelaxedPrecision + Decorate 108 RelaxedPrecision + Decorate 129 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/spv.for-complex-condition.vert.out b/Test/baseResults/spv.for-complex-condition.vert.out index fab7f3d9..c5fe4389 100644 --- a/Test/baseResults/spv.for-complex-condition.vert.out +++ b/Test/baseResults/spv.for-complex-condition.vert.out @@ -18,7 +18,9 @@ Linked vertex stage: Name 8 "i" Name 18 "flag" Name 31 "r" + Decorate 18(flag) RelaxedPrecision Decorate 18(flag) Location 0 + Decorate 19 RelaxedPrecision Decorate 31(r) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out index 346523cb..a804e1df 100755 --- a/Test/baseResults/spv.forwardFun.frag.out +++ b/Test/baseResults/spv.forwardFun.frag.out @@ -25,6 +25,26 @@ Linked fragment stage: Name 30 "gl_FragColor" Name 36 "d" Name 59 "bigColor" + Decorate 10(unreachableReturn() RelaxedPrecision + Decorate 16(foo(vf4;) RelaxedPrecision + Decorate 15(bar) RelaxedPrecision + Decorate 18(color) RelaxedPrecision + Decorate 20(BaseColor) RelaxedPrecision + Decorate 22 RelaxedPrecision + Decorate 23 RelaxedPrecision + Decorate 24 RelaxedPrecision + Decorate 27(f) RelaxedPrecision + Decorate 28 RelaxedPrecision + Decorate 30(gl_FragColor) RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 32 RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 36(d) RelaxedPrecision + Decorate 37 RelaxedPrecision + Decorate 52 RelaxedPrecision + Decorate 55 RelaxedPrecision + Decorate 56 RelaxedPrecision + Decorate 59(bigColor) RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out index d778fbb4..fd785ab4 100644 --- a/Test/baseResults/spv.layoutNested.vert.out +++ b/Test/baseResults/spv.layoutNested.vert.out @@ -91,13 +91,17 @@ Linked vertex stage: Decorate 13 ArrayStride 32 MemberDecorate 14(S) 0 Offset 0 MemberDecorate 14(S) 1 ColMajor + MemberDecorate 14(S) 1 RelaxedPrecision MemberDecorate 14(S) 1 Offset 16 MemberDecorate 14(S) 1 MatrixStride 16 + MemberDecorate 14(S) 2 RelaxedPrecision MemberDecorate 14(S) 2 Offset 144 Decorate 16 ArrayStride 160 Decorate 18 ArrayStride 480 + MemberDecorate 19(Block140) 0 RelaxedPrecision MemberDecorate 19(Block140) 0 Offset 0 MemberDecorate 19(Block140) 1 Offset 16 + MemberDecorate 19(Block140) 2 RelaxedPrecision MemberDecorate 19(Block140) 2 Offset 976 Decorate 19(Block140) Block Decorate 21(inst140) DescriptorSet 0 @@ -105,17 +109,23 @@ Linked vertex stage: Decorate 22 ArrayStride 16 MemberDecorate 23(S) 0 Offset 0 MemberDecorate 23(S) 1 ColMajor + MemberDecorate 23(S) 1 RelaxedPrecision MemberDecorate 23(S) 1 Offset 16 MemberDecorate 23(S) 1 MatrixStride 8 + MemberDecorate 23(S) 2 RelaxedPrecision MemberDecorate 23(S) 2 Offset 80 Decorate 24 ArrayStride 96 Decorate 25 ArrayStride 288 + MemberDecorate 26(Block430) 0 RelaxedPrecision MemberDecorate 26(Block430) 0 Offset 0 MemberDecorate 26(Block430) 1 Offset 16 + MemberDecorate 26(Block430) 2 RelaxedPrecision MemberDecorate 26(Block430) 2 Offset 592 Decorate 26(Block430) BufferBlock Decorate 28(inst430) DescriptorSet 0 Decorate 28(inst430) Binding 1 + MemberDecorate 29(S) 1 RelaxedPrecision + MemberDecorate 29(S) 2 RelaxedPrecision MemberDecorate 35(T) 0 RowMajor MemberDecorate 35(T) 0 Offset 0 MemberDecorate 35(T) 0 MatrixStride 16 @@ -164,7 +174,9 @@ Linked vertex stage: Decorate 60(bBtn3) Binding 0 Decorate 62(sout) Flat MemberDecorate 63(S) 0 Invariant + MemberDecorate 63(S) 1 RelaxedPrecision MemberDecorate 63(S) 1 Invariant + MemberDecorate 63(S) 2 RelaxedPrecision MemberDecorate 63(S) 2 Invariant Decorate 65(soutinv) Invariant 2: TypeVoid diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out index 7c28e103..9fb23212 100755 --- a/Test/baseResults/spv.structAssignment.frag.out +++ b/Test/baseResults/spv.structAssignment.frag.out @@ -34,6 +34,8 @@ Linked fragment stage: Name 44 "coord" Name 49 "foo" Decorate 40(samp2D) DescriptorSet 0 + Decorate 44(coord) RelaxedPrecision + Decorate 45 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/vulkan.ast.vert.out b/Test/baseResults/vulkan.ast.vert.out index 31ac4940..f245585a 100755 --- a/Test/baseResults/vulkan.ast.vert.out +++ b/Test/baseResults/vulkan.ast.vert.out @@ -7,76 +7,76 @@ Shader version: 450 0:7 Function Parameters: 0:9 Sequence 0:9 Convert float to bool (temp bool) -0:9 'scf1' (specialization-constant const float) +0:9 'scf1' (specialization-constant const highp float) 0:9 1.000000 0:10 Construct bool (specialization-constant const bool) 0:10 'scbt' (specialization-constant const bool) 0:10 true (const bool) 0:11 Convert int to bool (specialization-constant const bool) -0:11 'sci2' (specialization-constant const int) +0:11 'sci2' (specialization-constant const highp int) 0:11 2 (const int) 0:13 Construct float (temp float) -0:13 'scf1' (specialization-constant const float) +0:13 'scf1' (specialization-constant const highp float) 0:13 1.000000 0:14 Convert bool to float (temp float) 0:14 'scbt' (specialization-constant const bool) 0:14 true (const bool) 0:15 Convert int to float (temp float) -0:15 'sci2' (specialization-constant const int) +0:15 'sci2' (specialization-constant const highp int) 0:15 2 (const int) 0:17 Convert float to int (temp int) -0:17 'scf1' (specialization-constant const float) +0:17 'scf1' (specialization-constant const highp float) 0:17 1.000000 0:18 Convert bool to int (specialization-constant const int) 0:18 'scbt' (specialization-constant const bool) 0:18 true (const bool) 0:19 Construct int (specialization-constant const int) -0:19 'sci2' (specialization-constant const int) +0:19 'sci2' (specialization-constant const highp int) 0:19 2 (const int) -0:21 component-wise multiply (temp float) -0:21 'scf1' (specialization-constant const float) +0:21 component-wise multiply (temp highp float) +0:21 'scf1' (specialization-constant const highp float) 0:21 1.000000 -0:21 'scf1' (specialization-constant const float) +0:21 'scf1' (specialization-constant const highp float) 0:21 1.000000 0:22 logical-or (specialization-constant const bool) 0:22 'scbt' (specialization-constant const bool) 0:22 true (const bool) 0:22 'scbt' (specialization-constant const bool) 0:22 true (const bool) -0:23 component-wise multiply (specialization-constant const int) -0:23 'sci2' (specialization-constant const int) +0:23 component-wise multiply (specialization-constant const highp int) +0:23 'sci2' (specialization-constant const highp int) 0:23 2 (const int) -0:23 'sci2' (specialization-constant const int) +0:23 'sci2' (specialization-constant const highp int) 0:23 2 (const int) -0:24 add (temp float) -0:24 'scf1' (specialization-constant const float) +0:24 add (temp highp float) +0:24 'scf1' (specialization-constant const highp float) 0:24 1.000000 -0:24 Convert int to float (temp float) -0:24 'sci2' (specialization-constant const int) +0:24 Convert int to float (temp highp float) +0:24 'sci2' (specialization-constant const highp int) 0:24 2 (const int) -0:26 Negate value (temp float) -0:26 'scf1' (specialization-constant const float) +0:26 Negate value (temp highp float) +0:26 'scf1' (specialization-constant const highp float) 0:26 1.000000 0:27 Negate conditional (specialization-constant const bool) 0:27 'scbt' (specialization-constant const bool) 0:27 true (const bool) -0:28 Negate value (specialization-constant const int) -0:28 'sci2' (specialization-constant const int) +0:28 Negate value (specialization-constant const highp int) +0:28 'sci2' (specialization-constant const highp int) 0:28 2 (const int) 0:30 Compare Greater Than (temp bool) -0:30 'scf1' (specialization-constant const float) +0:30 'scf1' (specialization-constant const highp float) 0:30 1.000000 -0:30 'scf1' (specialization-constant const float) +0:30 'scf1' (specialization-constant const highp float) 0:30 1.000000 0:31 Compare Greater Than (specialization-constant const bool) -0:31 'sci2' (specialization-constant const int) +0:31 'sci2' (specialization-constant const highp int) 0:31 2 (const int) -0:31 'sci2' (specialization-constant const int) +0:31 'sci2' (specialization-constant const highp int) 0:31 2 (const int) 0:33 Compare Not Equal (temp bool) -0:33 'scf1' (specialization-constant const float) +0:33 'scf1' (specialization-constant const highp float) 0:33 1.000000 -0:33 'scf1' (specialization-constant const float) +0:33 'scf1' (specialization-constant const highp float) 0:33 1.000000 0:34 Compare Not Equal (specialization-constant const bool) 0:34 'scbt' (specialization-constant const bool) @@ -84,48 +84,48 @@ Shader version: 450 0:34 'scbt' (specialization-constant const bool) 0:34 true (const bool) 0:35 Compare Not Equal (specialization-constant const bool) -0:35 'sci2' (specialization-constant const int) +0:35 'sci2' (specialization-constant const highp int) 0:35 2 (const int) -0:35 'sci2' (specialization-constant const int) +0:35 'sci2' (specialization-constant const highp int) 0:35 2 (const int) 0:37 Construct ivec2 (specialization-constant const 2-component vector of int) -0:37 'sci2' (specialization-constant const int) +0:37 'sci2' (specialization-constant const highp int) 0:37 2 (const int) -0:37 'sci2' (specialization-constant const int) +0:37 'sci2' (specialization-constant const highp int) 0:37 2 (const int) 0:38 Construct ivec2 (temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 (specialization-constant const 2-component vector of int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) 0:38 Construct ivec2 (specialization-constant const 2-component vector of int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) 0:40 Construct vec2 (temp 2-component vector of float) -0:40 'scf1' (specialization-constant const float) +0:40 'scf1' (specialization-constant const highp float) 0:40 1.000000 -0:40 'scf1' (specialization-constant const float) +0:40 'scf1' (specialization-constant const highp float) 0:40 1.000000 0:41 Construct vec2 (temp 2-element array of 2-component vector of float) 0:41 Construct vec2 (temp 2-component vector of float) -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 0:41 Construct vec2 (temp 2-component vector of float) -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects -0:? 'scf1' (specialization-constant const float) +0:? 'scf1' (specialization-constant const highp float) 0:? 1.000000 0:? 'scbt' (specialization-constant const bool) 0:? true (const bool) -0:? 'sci2' (specialization-constant const int) +0:? 'sci2' (specialization-constant const highp int) 0:? 2 (const int) @@ -138,76 +138,76 @@ Shader version: 450 0:7 Function Parameters: 0:9 Sequence 0:9 Convert float to bool (temp bool) -0:9 'scf1' (specialization-constant const float) +0:9 'scf1' (specialization-constant const highp float) 0:9 1.000000 0:10 Construct bool (specialization-constant const bool) 0:10 'scbt' (specialization-constant const bool) 0:10 true (const bool) 0:11 Convert int to bool (specialization-constant const bool) -0:11 'sci2' (specialization-constant const int) +0:11 'sci2' (specialization-constant const highp int) 0:11 2 (const int) 0:13 Construct float (temp float) -0:13 'scf1' (specialization-constant const float) +0:13 'scf1' (specialization-constant const highp float) 0:13 1.000000 0:14 Convert bool to float (temp float) 0:14 'scbt' (specialization-constant const bool) 0:14 true (const bool) 0:15 Convert int to float (temp float) -0:15 'sci2' (specialization-constant const int) +0:15 'sci2' (specialization-constant const highp int) 0:15 2 (const int) 0:17 Convert float to int (temp int) -0:17 'scf1' (specialization-constant const float) +0:17 'scf1' (specialization-constant const highp float) 0:17 1.000000 0:18 Convert bool to int (specialization-constant const int) 0:18 'scbt' (specialization-constant const bool) 0:18 true (const bool) 0:19 Construct int (specialization-constant const int) -0:19 'sci2' (specialization-constant const int) +0:19 'sci2' (specialization-constant const highp int) 0:19 2 (const int) -0:21 component-wise multiply (temp float) -0:21 'scf1' (specialization-constant const float) +0:21 component-wise multiply (temp highp float) +0:21 'scf1' (specialization-constant const highp float) 0:21 1.000000 -0:21 'scf1' (specialization-constant const float) +0:21 'scf1' (specialization-constant const highp float) 0:21 1.000000 0:22 logical-or (specialization-constant const bool) 0:22 'scbt' (specialization-constant const bool) 0:22 true (const bool) 0:22 'scbt' (specialization-constant const bool) 0:22 true (const bool) -0:23 component-wise multiply (specialization-constant const int) -0:23 'sci2' (specialization-constant const int) +0:23 component-wise multiply (specialization-constant const highp int) +0:23 'sci2' (specialization-constant const highp int) 0:23 2 (const int) -0:23 'sci2' (specialization-constant const int) +0:23 'sci2' (specialization-constant const highp int) 0:23 2 (const int) -0:24 add (temp float) -0:24 'scf1' (specialization-constant const float) +0:24 add (temp highp float) +0:24 'scf1' (specialization-constant const highp float) 0:24 1.000000 -0:24 Convert int to float (temp float) -0:24 'sci2' (specialization-constant const int) +0:24 Convert int to float (temp highp float) +0:24 'sci2' (specialization-constant const highp int) 0:24 2 (const int) -0:26 Negate value (temp float) -0:26 'scf1' (specialization-constant const float) +0:26 Negate value (temp highp float) +0:26 'scf1' (specialization-constant const highp float) 0:26 1.000000 0:27 Negate conditional (specialization-constant const bool) 0:27 'scbt' (specialization-constant const bool) 0:27 true (const bool) -0:28 Negate value (specialization-constant const int) -0:28 'sci2' (specialization-constant const int) +0:28 Negate value (specialization-constant const highp int) +0:28 'sci2' (specialization-constant const highp int) 0:28 2 (const int) 0:30 Compare Greater Than (temp bool) -0:30 'scf1' (specialization-constant const float) +0:30 'scf1' (specialization-constant const highp float) 0:30 1.000000 -0:30 'scf1' (specialization-constant const float) +0:30 'scf1' (specialization-constant const highp float) 0:30 1.000000 0:31 Compare Greater Than (specialization-constant const bool) -0:31 'sci2' (specialization-constant const int) +0:31 'sci2' (specialization-constant const highp int) 0:31 2 (const int) -0:31 'sci2' (specialization-constant const int) +0:31 'sci2' (specialization-constant const highp int) 0:31 2 (const int) 0:33 Compare Not Equal (temp bool) -0:33 'scf1' (specialization-constant const float) +0:33 'scf1' (specialization-constant const highp float) 0:33 1.000000 -0:33 'scf1' (specialization-constant const float) +0:33 'scf1' (specialization-constant const highp float) 0:33 1.000000 0:34 Compare Not Equal (specialization-constant const bool) 0:34 'scbt' (specialization-constant const bool) @@ -215,48 +215,48 @@ Shader version: 450 0:34 'scbt' (specialization-constant const bool) 0:34 true (const bool) 0:35 Compare Not Equal (specialization-constant const bool) -0:35 'sci2' (specialization-constant const int) +0:35 'sci2' (specialization-constant const highp int) 0:35 2 (const int) -0:35 'sci2' (specialization-constant const int) +0:35 'sci2' (specialization-constant const highp int) 0:35 2 (const int) 0:37 Construct ivec2 (specialization-constant const 2-component vector of int) -0:37 'sci2' (specialization-constant const int) +0:37 'sci2' (specialization-constant const highp int) 0:37 2 (const int) -0:37 'sci2' (specialization-constant const int) +0:37 'sci2' (specialization-constant const highp int) 0:37 2 (const int) 0:38 Construct ivec2 (temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 (specialization-constant const 2-component vector of int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) 0:38 Construct ivec2 (specialization-constant const 2-component vector of int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) -0:38 'sci2' (specialization-constant const int) +0:38 'sci2' (specialization-constant const highp int) 0:38 2 (const int) 0:40 Construct vec2 (temp 2-component vector of float) -0:40 'scf1' (specialization-constant const float) +0:40 'scf1' (specialization-constant const highp float) 0:40 1.000000 -0:40 'scf1' (specialization-constant const float) +0:40 'scf1' (specialization-constant const highp float) 0:40 1.000000 0:41 Construct vec2 (temp 2-element array of 2-component vector of float) 0:41 Construct vec2 (temp 2-component vector of float) -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 0:41 Construct vec2 (temp 2-component vector of float) -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 -0:41 'scf1' (specialization-constant const float) +0:41 'scf1' (specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects -0:? 'scf1' (specialization-constant const float) +0:? 'scf1' (specialization-constant const highp float) 0:? 1.000000 0:? 'scbt' (specialization-constant const bool) 0:? true (const bool) -0:? 'sci2' (specialization-constant const int) +0:? 'sci2' (specialization-constant const highp int) 0:? 2 (const int) // Module Version 10000 diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out index 01327596..d509948a 100644 --- a/Test/baseResults/vulkan.frag.out +++ b/Test/baseResults/vulkan.frag.out @@ -14,7 +14,7 @@ ERROR: 0:25: 'sampler2DShadow' : sampler-constructor second argument presence of ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d -ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 4-element array of sampler3D' +ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 4-element array of highp sampler3D' ERROR: 0:39: 'push_constant' : can only be used with a uniform ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:43: 'push_constant' : can only be used with a block diff --git a/Test/baseResults/vulkan.vert.out b/Test/baseResults/vulkan.vert.out index 351e6f1b..5aeaa74c 100644 --- a/Test/baseResults/vulkan.vert.out +++ b/Test/baseResults/vulkan.vert.out @@ -15,7 +15,7 @@ ERROR: 0:15: 'constant_id' : can only be applied to a scalar ERROR: 0:16: 'constant_id' : specialization-constant id already used ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a scalar ERROR: 0:20: 'subpassLoad' : no matching overloaded function found -ERROR: 0:20: 'assign' : cannot convert from 'const float' to 'smooth out 4-component vector of float' +ERROR: 0:20: 'assign' : cannot convert from 'const float' to 'smooth out highp 4-component vector of float' ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan ERROR: 0:24: 'shared' : not allowed when generating SPIR-V ERROR: 0:25: 'packed' : not allowed when generating SPIR-V diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 0323c1be..6d2e9c07 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -1460,15 +1460,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);" "uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);" - "void umulExtended(highp uint, highp uint, highp out uint, out highp uint lsb);" - "void umulExtended(highp uvec2, highp uvec2, highp out uvec2, out highp uvec2 lsb);" - "void umulExtended(highp uvec3, highp uvec3, highp out uvec3, out highp uvec3 lsb);" - "void umulExtended(highp uvec4, highp uvec4, highp out uvec4, out highp uvec4 lsb);" + "void umulExtended(highp uint, highp uint, out highp uint, out highp uint lsb);" + "void umulExtended(highp uvec2, highp uvec2, out highp uvec2, out highp uvec2 lsb);" + "void umulExtended(highp uvec3, highp uvec3, out highp uvec3, out highp uvec3 lsb);" + "void umulExtended(highp uvec4, highp uvec4, out highp uvec4, out highp uvec4 lsb);" - "void imulExtended(highp int, highp int, highp out int, out highp int lsb);" - "void imulExtended(highp ivec2, highp ivec2, highp out ivec2, out highp ivec2 lsb);" - "void imulExtended(highp ivec3, highp ivec3, highp out ivec3, out highp ivec3 lsb);" - "void imulExtended(highp ivec4, highp ivec4, highp out ivec4, out highp ivec4 lsb);" + "void imulExtended(highp int, highp int, out highp int, out highp int lsb);" + "void imulExtended(highp ivec2, highp ivec2, out highp ivec2, out highp ivec2 lsb);" + "void imulExtended(highp ivec3, highp ivec3, out highp ivec3, out highp ivec3 lsb);" + "void imulExtended(highp ivec4, highp ivec4, out highp ivec4, out highp ivec4 lsb);" " int bitfieldReverse(highp int);" "ivec2 bitfieldReverse(highp ivec2);" @@ -2638,10 +2638,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); stageBuiltins[EShLangFragment].append( // GL_OES_sample_variables - "flat lowp in int gl_SampleID;" - " mediump in vec2 gl_SamplePosition;" - "flat highp in int gl_SampleMaskIn[];" - " highp out int gl_SampleMask[];" + "flat in lowp int gl_SampleID;" + " in mediump vec2 gl_SamplePosition;" + "flat in highp int gl_SampleMaskIn[];" + " out highp int gl_SampleMask[];" "uniform lowp int gl_NumSamples;" ); } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 822c361e..603bef68 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -62,7 +62,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b linkage = new TIntermAggregate; // decide whether precision qualifiers should be ignored or respected - obeyPrecisionQualifiers_ = profile == EEsProfile; + obeyPrecisionQualifiers_ = profile == EEsProfile || spvVersion.vulkan > 0; setPrecisionDefaults(); globalUniformDefaults.clear(); @@ -98,8 +98,11 @@ TParseContext::~TParseContext() // Intended just as a TParseContext constructor helper. void TParseContext::setPrecisionDefaults() { - // set all precision defaults to EpqNone, which is correct for all desktop types - // and for ES types that don't have defaults (thus getting an error on use) + // Set all precision defaults to EpqNone, which is correct for all types + // when not obeying precision qualifiers, and correct for types that don't + // have defaults (thus getting an error on use) when obeying precision + // qualifiers. + for (int type = 0; type < EbtNumTypes; ++type) defaultPrecision[type] = EpqNone; @@ -108,30 +111,35 @@ void TParseContext::setPrecisionDefaults() // replace with real precision defaults for those that have them if (obeyPrecisionQualifiers()) { - TSampler sampler; - sampler.set(EbtFloat, Esd2D); - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - sampler.set(EbtFloat, EsdCube); - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; - sampler.set(EbtFloat, Esd2D); - sampler.external = true; - defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; + if (profile == EEsProfile) { + // Most don't have defaults, a few default to lowp. + TSampler sampler; + sampler.set(EbtFloat, Esd2D); + defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; + sampler.set(EbtFloat, EsdCube); + defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; + sampler.set(EbtFloat, Esd2D); + sampler.external = true; + defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow; + } else { + // Non-ES profile + // All default to highp. + for (int type = 0; type < maxSamplerIndex; ++type) + defaultSamplerPrecision[type] = EpqHigh; + } // If we are parsing built-in computational variables/functions, it is meaningful to record // whether the built-in has no precision qualifier, as that ambiguity // is used to resolve the precision from the supplied arguments/operands instead. // So, we don't actually want to replace EpqNone with a default precision for built-ins. if (! parsingBuiltins) { - switch (language) { - case EShLangFragment: + if (profile == EEsProfile && language == EShLangFragment) { defaultPrecision[EbtInt] = EpqMedium; defaultPrecision[EbtUint] = EpqMedium; - break; - default: + } else { defaultPrecision[EbtInt] = EpqHigh; defaultPrecision[EbtUint] = EpqHigh; defaultPrecision[EbtFloat] = EpqHigh; - break; } } From 32c169dbdfbd87b5a76d5ea32738c516c938837d Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 3 Aug 2016 17:35:19 -0600 Subject: [PATCH 086/217] Front-end: Warn for likely missed change in default precisions. This is part of the change to have desktop shaders respect precision qualifiers on Vulkan, but since the defaults are all highp, and that's different from ES fragment shaders, detect likely cases and warn about them (but being careful to not be too noisy if it's unlikely to be a problem). --- Test/baseResults/spv.aggOps.frag.out | 2 + .../baseResults/spv.structAssignment.frag.out | 7 + Test/baseResults/vulkan.frag.out | 2 + Test/spv.merge-unreachable.frag | 1 + Test/spv.structAssignment.frag | 2 + glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 30 +- glslang/MachineIndependent/ParseHelper.h | 40 +- glslang/MachineIndependent/glslang.y | 10 +- glslang/MachineIndependent/glslang_tab.cpp | 1194 ++++++++--------- 10 files changed, 682 insertions(+), 610 deletions(-) diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out index 7772cc60..5a19d2f4 100644 --- a/Test/baseResults/spv.aggOps.frag.out +++ b/Test/baseResults/spv.aggOps.frag.out @@ -1,5 +1,7 @@ spv.aggOps.frag Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +WARNING: 0:4: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" Linked fragment stage: diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out index 9fb23212..abff6834 100755 --- a/Test/baseResults/spv.structAssignment.frag.out +++ b/Test/baseResults/spv.structAssignment.frag.out @@ -1,4 +1,7 @@ spv.structAssignment.frag +WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + Linked fragment stage: @@ -33,6 +36,10 @@ Linked fragment stage: Name 40 "samp2D" Name 44 "coord" Name 49 "foo" + MemberDecorate 8(lunarStruct1) 0 RelaxedPrecision + MemberDecorate 9(lunarStruct2) 0 RelaxedPrecision + MemberDecorate 10(lunarStruct3) 1 RelaxedPrecision + Decorate 16 RelaxedPrecision Decorate 40(samp2D) DescriptorSet 0 Decorate 44(coord) RelaxedPrecision Decorate 45 RelaxedPrecision diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out index d509948a..d4da9190 100644 --- a/Test/baseResults/vulkan.frag.out +++ b/Test/baseResults/vulkan.frag.out @@ -33,6 +33,8 @@ ERROR: 0:67: 'uniform' : no qualifiers allowed for function return ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:73: 'texture' : no matching overloaded function found ERROR: 0:74: 'imageStore' : no matching overloaded function found +WARNING: 0:82: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use ERROR: 0:93: ',' : sampler constructor must appear at point of use diff --git a/Test/spv.merge-unreachable.frag b/Test/spv.merge-unreachable.frag index 12f57cd1..a650cd1c 100644 --- a/Test/spv.merge-unreachable.frag +++ b/Test/spv.merge-unreachable.frag @@ -1,4 +1,5 @@ #version 450 +precision mediump int; precision highp float; layout(location=1) in highp vec4 v; void main (void) { diff --git a/Test/spv.structAssignment.frag b/Test/spv.structAssignment.frag index 72984f2d..ca95ec37 100644 --- a/Test/spv.structAssignment.frag +++ b/Test/spv.structAssignment.frag @@ -1,5 +1,7 @@ #version 140 +precision mediump int; + uniform sampler2D samp2D; in mediump vec2 coord; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 00ffc1bc..3c9b0eca 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.1384" -#define GLSLANG_DATE "03-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1430" +#define GLSLANG_DATE "23-Aug-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 603bef68..1a361de6 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -62,7 +62,12 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b linkage = new TIntermAggregate; // decide whether precision qualifiers should be ignored or respected - obeyPrecisionQualifiers_ = profile == EEsProfile || spvVersion.vulkan > 0; + if (profile == EEsProfile || spvVersion.vulkan > 0) { + precisionManager.respectPrecisionQualifiers(); + if (! parsingBuiltins && language == EShLangFragment && profile != EEsProfile && spvVersion.vulkan > 0) + precisionManager.warnAboutDefaults(); + } + setPrecisionDefaults(); globalUniformDefaults.clear(); @@ -1899,6 +1904,24 @@ TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPu return new TFunction(&empty, type, op); } +// Handle seeing a precision qualifier in the grammar. +void TParseContext::handlePrecisionQualifier(const TSourceLoc& loc, TQualifier& qualifier, TPrecisionQualifier precision) +{ + if (obeyPrecisionQualifiers()) + qualifier.precision = precision; +} + +// Check for messages to give on seeing a precision qualifier used in a +// declaration in the grammar. +void TParseContext::checkPrecisionQualifier(const TSourceLoc& loc, TPrecisionQualifier) +{ + if (precisionManager.shouldWarnAboutDefaults()) { + warn(loc, "all default precisions are highp; use precision statements to quiet warning, e.g.:\n" + " \"precision mediump int; precision highp float;\"", "", ""); + precisionManager.defaultWarningGiven(); + } +} + // // Same error message for all places assignments don't work. // @@ -2904,8 +2927,11 @@ void TParseContext::setDefaultPrecision(const TSourceLoc& loc, TPublicType& publ if (basicType == EbtInt || basicType == EbtFloat) { if (publicType.isScalar()) { defaultPrecision[basicType] = qualifier; - if (basicType == EbtInt) + if (basicType == EbtInt) { defaultPrecision[EbtUint] = qualifier; + precisionManager.explicitIntDefaultSeen(); + } else + precisionManager.explicitFloatDefaultSeen(); return; // all is well } diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 0c64b570..ae0187c5 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -144,6 +144,40 @@ protected: std::function errorCallback; }; +// +// Manage the state for when to respect precision qualifiers and when to warn about +// the defaults being different than might be expected. +// +class TPrecisionManager { +public: + TPrecisionManager() : obey(false), warn(false), explicitIntDefault(false), explicitFloatDefault(false){ } + virtual ~TPrecisionManager() {} + + void respectPrecisionQualifiers() { obey = true; } + bool respectingPrecisionQualifiers() const { return obey; } + bool shouldWarnAboutDefaults() const { return warn; } + void defaultWarningGiven() { warn = false; } + void warnAboutDefaults() { warn = true; } + void explicitIntDefaultSeen() + { + explicitIntDefault = true; + if (explicitFloatDefault) + warn = false; + } + void explicitFloatDefaultSeen() + { + explicitFloatDefault = true; + if (explicitIntDefault) + warn = false; + } + +protected: + bool obey; // respect precision qualifiers + bool warn; // need to give a warning about the defaults + bool explicitIntDefault; // user set the default for int/uint + bool explicitFloatDefault; // user set the default for float +}; + // // GLSL-specific parse helper. Should have GLSL in the name, but that's // too big of a change for comparing branches at the moment, and perhaps @@ -155,7 +189,7 @@ public: bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~TParseContext(); - bool obeyPrecisionQualifiers() const { return obeyPrecisionQualifiers_; }; + bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }; void setPrecisionDefaults(); void setLimits(const TBuiltInResource&); @@ -212,6 +246,8 @@ public: void userFunctionCallCheck(const TSourceLoc&, TIntermAggregate&); void samplerConstructorLocationCheck(const TSourceLoc&, const char* token, TIntermNode*); TFunction* handleConstructorCall(const TSourceLoc&, const TPublicType&); + void handlePrecisionQualifier(const TSourceLoc&, TQualifier&, TPrecisionQualifier); + void checkPrecisionQualifier(const TSourceLoc&, TPrecisionQualifier); bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); void assignError(const TSourceLoc&, const char* op, TString left, TString right); @@ -344,6 +380,7 @@ protected: const bool parsingBuiltins; // true if parsing built-in symbols/functions static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; + TPrecisionManager precisionManager; bool afterEOF; TQualifier globalBufferDefaults; TQualifier globalUniformDefaults; @@ -354,7 +391,6 @@ protected: TIdSetType inductiveLoopIds; bool anyIndexLimits; TVector needsIndexLimitationChecking; - bool obeyPrecisionQualifiers_; // // Geometry shader input arrays: diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index aafe85c6..a1628f61 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1125,6 +1125,7 @@ single_type_qualifier $$ = $1; } | precision_qualifier { + parseContext.checkPrecisionQualifier($1.loc, $1.qualifier.precision); $$ = $1; } | interpolation_qualifier { @@ -2206,20 +2207,17 @@ precision_qualifier : HIGH_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - $$.qualifier.precision = EpqHigh; + parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqHigh); } | MEDIUM_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - $$.qualifier.precision = EpqMedium; + parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqMedium); } | LOW_PRECISION { parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - $$.qualifier.precision = EpqLow; + parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqLow); } ; diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 84f46dac..3d7dc8e5 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -801,35 +801,35 @@ static const yytype_uint16 yyrline[] = 904, 914, 924, 933, 936, 940, 944, 949, 957, 962, 967, 972, 977, 986, 997, 1024, 1033, 1040, 1047, 1054, 1066, 1072, 1075, 1082, 1086, 1090, 1098, 1107, 1110, 1121, - 1124, 1127, 1130, 1134, 1138, 1145, 1149, 1161, 1175, 1180, - 1186, 1192, 1199, 1205, 1210, 1215, 1220, 1227, 1231, 1235, - 1239, 1243, 1247, 1253, 1265, 1268, 1273, 1277, 1286, 1291, - 1299, 1303, 1313, 1317, 1321, 1326, 1330, 1335, 1340, 1345, - 1349, 1354, 1359, 1364, 1370, 1376, 1382, 1387, 1392, 1397, - 1402, 1407, 1412, 1418, 1424, 1430, 1436, 1442, 1448, 1454, - 1460, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, 1506, - 1511, 1516, 1521, 1526, 1532, 1538, 1544, 1550, 1556, 1562, - 1568, 1574, 1580, 1586, 1592, 1598, 1603, 1608, 1613, 1618, - 1623, 1628, 1633, 1638, 1643, 1648, 1653, 1658, 1663, 1668, - 1673, 1678, 1683, 1688, 1693, 1698, 1703, 1708, 1713, 1718, - 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1758, 1763, 1768, - 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813, 1818, - 1823, 1828, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868, - 1873, 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918, - 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, 1968, - 1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018, - 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063, 2068, - 2073, 2078, 2083, 2088, 2093, 2098, 2103, 2108, 2113, 2118, - 2123, 2128, 2133, 2138, 2143, 2149, 2155, 2161, 2167, 2173, - 2179, 2185, 2190, 2206, 2212, 2218, 2227, 2227, 2238, 2238, - 2248, 2251, 2264, 2282, 2306, 2310, 2316, 2321, 2332, 2335, - 2341, 2350, 2353, 2359, 2363, 2364, 2370, 2371, 2372, 2373, - 2374, 2375, 2376, 2380, 2381, 2385, 2381, 2397, 2398, 2402, - 2402, 2409, 2409, 2423, 2426, 2434, 2442, 2453, 2454, 2458, - 2465, 2469, 2477, 2481, 2494, 2494, 2514, 2517, 2523, 2535, - 2547, 2547, 2562, 2562, 2578, 2578, 2599, 2602, 2608, 2611, - 2617, 2621, 2628, 2633, 2638, 2645, 2648, 2657, 2661, 2668, - 2671, 2677, 2677 + 1124, 1127, 1131, 1135, 1139, 1146, 1150, 1162, 1176, 1181, + 1187, 1193, 1200, 1206, 1211, 1216, 1221, 1228, 1232, 1236, + 1240, 1244, 1248, 1254, 1266, 1269, 1274, 1278, 1287, 1292, + 1300, 1304, 1314, 1318, 1322, 1327, 1331, 1336, 1341, 1346, + 1350, 1355, 1360, 1365, 1371, 1377, 1383, 1388, 1393, 1398, + 1403, 1408, 1413, 1419, 1425, 1431, 1437, 1443, 1449, 1455, + 1461, 1467, 1472, 1477, 1482, 1487, 1492, 1497, 1502, 1507, + 1512, 1517, 1522, 1527, 1533, 1539, 1545, 1551, 1557, 1563, + 1569, 1575, 1581, 1587, 1593, 1599, 1604, 1609, 1614, 1619, + 1624, 1629, 1634, 1639, 1644, 1649, 1654, 1659, 1664, 1669, + 1674, 1679, 1684, 1689, 1694, 1699, 1704, 1709, 1714, 1719, + 1724, 1729, 1734, 1739, 1744, 1749, 1754, 1759, 1764, 1769, + 1774, 1779, 1784, 1789, 1794, 1799, 1804, 1809, 1814, 1819, + 1824, 1829, 1834, 1839, 1844, 1849, 1854, 1859, 1864, 1869, + 1874, 1879, 1884, 1889, 1894, 1899, 1904, 1909, 1914, 1919, + 1924, 1929, 1934, 1939, 1944, 1949, 1954, 1959, 1964, 1969, + 1974, 1979, 1984, 1989, 1994, 1999, 2004, 2009, 2014, 2019, + 2024, 2029, 2034, 2039, 2044, 2049, 2054, 2059, 2064, 2069, + 2074, 2079, 2084, 2089, 2094, 2099, 2104, 2109, 2114, 2119, + 2124, 2129, 2134, 2139, 2144, 2150, 2156, 2162, 2168, 2174, + 2180, 2186, 2191, 2207, 2212, 2217, 2225, 2225, 2236, 2236, + 2246, 2249, 2262, 2280, 2304, 2308, 2314, 2319, 2330, 2333, + 2339, 2348, 2351, 2357, 2361, 2362, 2368, 2369, 2370, 2371, + 2372, 2373, 2374, 2378, 2379, 2383, 2379, 2395, 2396, 2400, + 2400, 2407, 2407, 2421, 2424, 2432, 2440, 2451, 2452, 2456, + 2463, 2467, 2475, 2479, 2492, 2492, 2512, 2515, 2521, 2533, + 2545, 2545, 2560, 2560, 2576, 2576, 2597, 2600, 2606, 2609, + 2615, 2619, 2626, 2631, 2636, 2643, 2646, 2655, 2659, 2666, + 2669, 2675, 2675 }; #endif @@ -4594,49 +4594,50 @@ yyreduce: case 141: #line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { + parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1145 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 4636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); @@ -4649,11 +4650,11 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -#line 1161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); @@ -4668,43 +4669,43 @@ yyreduce: else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: -#line 1175 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "in"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "out"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 4704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1192 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); @@ -4712,52 +4713,52 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 4716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1199 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 4727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 4737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1216 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1220 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); @@ -4765,67 +4766,67 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1231 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1239 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1244 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -#line 1253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); @@ -4835,56 +4836,56 @@ yyreduce: // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 4839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: -#line 1265 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO: 4.0 functionality: subroutine type to list } -#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { } -#line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 4863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0); (yyval.interm.type) = (yyvsp[-1].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 4874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -#line 1291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; @@ -4893,20 +4894,20 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 4897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -#line 1299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 4906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); @@ -4914,1738 +4915,1738 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 4918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -#line 1313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -#line 1317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 4936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -#line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -#line 1326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -#line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 4975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -#line 1340 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 4985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -#line 1345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 4994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -#line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 5004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 5014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -#line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -#line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -#line 1370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 5046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 5057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -#line 1382 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } -#line 5067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } -#line 5077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 5087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -#line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 5097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 5107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -#line 1407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -#line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 5139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -#line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -#line 1442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 5183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -#line 1448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } -#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } -#line 5205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } -#line 5216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -#line 1466 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 5226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -#line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 5236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 5246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 5256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 5266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 5276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 5286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 5306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 5316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 5336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -#line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -#line 1538 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -#line 1544 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -#line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 5402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -#line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 5413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: -#line 1568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: -#line 1574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: -#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: -#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: -#line 1592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: -#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 5478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 5488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 5498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 5508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 5518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 5528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 5548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 5558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 5568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 5578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 5588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 5598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 5608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 5618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 5628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1689 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -#line 1693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -#line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 5678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 5718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -#line 1723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 5728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -#line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 5738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 5768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 5778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 5788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 5798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 5808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 5828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 5858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 5868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 5878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1804 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 5888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 5908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5909 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 5928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 5948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -#line 1838 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 5958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -#line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 5968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -#line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 5978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -#line 1853 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 5988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 5998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 6008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 6018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 6028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 6038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 6048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 6058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 6068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 6088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 6098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 6128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 6138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 6148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 6158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -#line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 6168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 6178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 6188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 6198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -#line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 6208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -#line 1968 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 6218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 6228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 6238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 6258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -#line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 6268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -#line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 6278 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -#line 2003 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 6288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2009 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 6298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 6308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 6318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 6328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -#line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 6338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -#line 2033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 6368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 6378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 6388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -#line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -#line 2063 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 6408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2069 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 6418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 6428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 6438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 6448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -#line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6459 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -#line 2093 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2099 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 6478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 6488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 6498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -#line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 6508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -#line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -#line 2123 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 6528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -#line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2129 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 6538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 6548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2138 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } -#line 6558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -#line 2143 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 6569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: -#line 2149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: -#line 2155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: -#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: -#line 2167 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: -#line 2173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 6624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: -#line 2179 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 6635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: -#line 2185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 6645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: -#line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the @@ -6659,16 +6660,15 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 6663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: -#line 2206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - (yyval.interm.type).qualifier.precision = EpqHigh; + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } #line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; @@ -6678,31 +6678,29 @@ yyreduce: { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - (yyval.interm.type).qualifier.precision = EpqMedium; + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 6685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: -#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - if (parseContext.obeyPrecisionQualifiers()) - (yyval.interm.type).qualifier.precision = EpqLow; + parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: -#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 6702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: -#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); @@ -6714,17 +6712,17 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 6718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: -#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 6724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: -#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); @@ -6732,19 +6730,19 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 6736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: -#line 2248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: -#line 2251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { @@ -6755,11 +6753,11 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 6759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: -#line 2264 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); @@ -6778,11 +6776,11 @@ yyreduce: (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } -#line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: -#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier); if ((yyvsp[-2].interm.type).arraySizes) { @@ -6804,38 +6802,38 @@ yyreduce: (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } -#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: -#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 6817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: -#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 6825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: -#line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } -#line 6835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: -#line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0); @@ -6844,219 +6842,219 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); } -#line 6848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: -#line 2332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: -#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } -#line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -#line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -#line 2353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 6894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: -#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: -#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: -#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: -#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: -#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: -#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: -#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: -#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: -#line 2376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: -#line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 6960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: -#line 2381 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 6969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: -#line 2385 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 6978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: -#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } -#line 6988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: -#line 2397 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: -#line 2398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: -#line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } -#line 7008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: -#line 2405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: -#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: -#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: -#line 2423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 7046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: -#line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } -#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: -#line 2434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || @@ -7065,11 +7063,11 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 7069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: -#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { @@ -7078,59 +7076,59 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 7082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: -#line 2453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 7088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: -#line 2454 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: -#line 2458 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } -#line 7103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: -#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 7112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: -#line 2469 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 7121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: -#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } -#line 7130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: -#line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); @@ -7141,11 +7139,11 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 7145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7143 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: -#line 2494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7154,11 +7152,11 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: -#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); @@ -7168,27 +7166,27 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: -#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 7180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: -#line 2517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: -#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -7201,11 +7199,11 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 7205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: -#line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) @@ -7215,11 +7213,11 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 7219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: -#line 2547 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); @@ -7228,11 +7226,11 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: -#line 2555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); @@ -7240,21 +7238,21 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: -#line 2562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: -#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); @@ -7266,22 +7264,22 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: -#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: -#line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); @@ -7294,81 +7292,81 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: -#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: -#line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: -#line 2608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 7322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: -#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } -#line 7330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: -#line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 7339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: -#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 7348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: -#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } -#line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: -#line 2633 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } -#line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: -#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) @@ -7376,71 +7374,71 @@ yyreduce: if (parseContext.inMain) parseContext.postMainReturn = true; } -#line 7380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -#line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 7388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -#line 2648 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -#line 2657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -#line 2668 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } -#line 7440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: -#line 2681 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -7456,11 +7454,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7688,5 +7686,5 @@ yyreturn: #endif return yyresult; } -#line 2698 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 2696 "MachineIndependent/glslang.y" /* yacc.c:1906 */ From fcc0aa3b647f0943cc9d29e1426b968526e94001 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 24 Aug 2016 18:34:43 -0600 Subject: [PATCH 087/217] HLSL: Switch to generic selector, but using GLSL #version 400 rules. Next step is to modify for HLSL rules. --- Test/baseResults/hlsl.overload.frag.out | 413 ++++++++++++++++++++++++ Test/hlsl.overload.frag | 35 ++ glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 84 ++--- 5 files changed, 492 insertions(+), 43 deletions(-) create mode 100755 Test/baseResults/hlsl.overload.frag.out create mode 100644 Test/hlsl.overload.frag diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out new file mode 100755 index 00000000..3366fcbb --- /dev/null +++ b/Test/baseResults/hlsl.overload.frag.out @@ -0,0 +1,413 @@ +hlsl.overload.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: foo1(d1;u1; (global void) +0:2 Function Parameters: +0:2 'a' (in double) +0:2 'b' (in uint) +0:4 Function Definition: foo1(d1;i1; (global void) +0:3 Function Parameters: +0:3 'a' (in double) +0:3 'b' (in int) +0:5 Function Definition: foo1(d1;f1; (global void) +0:4 Function Parameters: +0:4 'a' (in double) +0:4 'b' (in float) +0:7 Function Definition: foo1(d1;d1; (global void) +0:5 Function Parameters: +0:5 'a' (in double) +0:5 'b' (in double) +0:36 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'input' (in 4-component vector of float) +0:? Sequence +0:14 Function Call: foo1(d1;d1; (global void) +0:14 'd' (temp double) +0:14 'd' (temp double) +0:15 Function Call: foo1(d1;u1; (global void) +0:15 'd' (temp double) +0:15 'u' (temp uint) +0:16 Function Call: foo1(d1;i1; (global void) +0:16 'd' (temp double) +0:16 'i' (temp int) +0:17 Function Call: foo1(d1;f1; (global void) +0:17 'd' (temp double) +0:17 'f' (temp float) +0:19 Function Call: foo1(d1;d1; (global void) +0:19 Convert float to double (temp double) +0:19 'f' (temp float) +0:19 'd' (temp double) +0:20 Function Call: foo1(d1;u1; (global void) +0:20 Convert float to double (temp double) +0:20 'f' (temp float) +0:20 'u' (temp uint) +0:21 Function Call: foo1(d1;i1; (global void) +0:21 Convert float to double (temp double) +0:21 'f' (temp float) +0:21 'i' (temp int) +0:22 Function Call: foo1(d1;f1; (global void) +0:22 Convert float to double (temp double) +0:22 'f' (temp float) +0:22 'f' (temp float) +0:24 Function Call: foo1(d1;d1; (global void) +0:24 Convert uint to double (temp double) +0:24 'u' (temp uint) +0:24 'd' (temp double) +0:25 Function Call: foo1(d1;u1; (global void) +0:25 Convert uint to double (temp double) +0:25 'u' (temp uint) +0:25 'u' (temp uint) +0:26 Function Call: foo1(d1;i1; (global void) +0:26 Convert uint to double (temp double) +0:26 'u' (temp uint) +0:26 'i' (temp int) +0:27 Function Call: foo1(d1;f1; (global void) +0:27 Convert uint to double (temp double) +0:27 'u' (temp uint) +0:27 'f' (temp float) +0:29 Function Call: foo1(d1;d1; (global void) +0:29 Convert int to double (temp double) +0:29 'i' (temp int) +0:29 'd' (temp double) +0:30 Function Call: foo1(d1;u1; (global void) +0:30 Convert int to double (temp double) +0:30 'i' (temp int) +0:30 'u' (temp uint) +0:31 Function Call: foo1(d1;i1; (global void) +0:31 Convert int to double (temp double) +0:31 'i' (temp int) +0:31 'i' (temp int) +0:32 Function Call: foo1(d1;f1; (global void) +0:32 Convert int to double (temp double) +0:32 'i' (temp int) +0:32 'f' (temp float) +0:34 Branch: Return with expression +0:34 'input' (in 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: foo1(d1;u1; (global void) +0:2 Function Parameters: +0:2 'a' (in double) +0:2 'b' (in uint) +0:4 Function Definition: foo1(d1;i1; (global void) +0:3 Function Parameters: +0:3 'a' (in double) +0:3 'b' (in int) +0:5 Function Definition: foo1(d1;f1; (global void) +0:4 Function Parameters: +0:4 'a' (in double) +0:4 'b' (in float) +0:7 Function Definition: foo1(d1;d1; (global void) +0:5 Function Parameters: +0:5 'a' (in double) +0:5 'b' (in double) +0:36 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'input' (in 4-component vector of float) +0:? Sequence +0:14 Function Call: foo1(d1;d1; (global void) +0:14 'd' (temp double) +0:14 'd' (temp double) +0:15 Function Call: foo1(d1;u1; (global void) +0:15 'd' (temp double) +0:15 'u' (temp uint) +0:16 Function Call: foo1(d1;i1; (global void) +0:16 'd' (temp double) +0:16 'i' (temp int) +0:17 Function Call: foo1(d1;f1; (global void) +0:17 'd' (temp double) +0:17 'f' (temp float) +0:19 Function Call: foo1(d1;d1; (global void) +0:19 Convert float to double (temp double) +0:19 'f' (temp float) +0:19 'd' (temp double) +0:20 Function Call: foo1(d1;u1; (global void) +0:20 Convert float to double (temp double) +0:20 'f' (temp float) +0:20 'u' (temp uint) +0:21 Function Call: foo1(d1;i1; (global void) +0:21 Convert float to double (temp double) +0:21 'f' (temp float) +0:21 'i' (temp int) +0:22 Function Call: foo1(d1;f1; (global void) +0:22 Convert float to double (temp double) +0:22 'f' (temp float) +0:22 'f' (temp float) +0:24 Function Call: foo1(d1;d1; (global void) +0:24 Convert uint to double (temp double) +0:24 'u' (temp uint) +0:24 'd' (temp double) +0:25 Function Call: foo1(d1;u1; (global void) +0:25 Convert uint to double (temp double) +0:25 'u' (temp uint) +0:25 'u' (temp uint) +0:26 Function Call: foo1(d1;i1; (global void) +0:26 Convert uint to double (temp double) +0:26 'u' (temp uint) +0:26 'i' (temp int) +0:27 Function Call: foo1(d1;f1; (global void) +0:27 Convert uint to double (temp double) +0:27 'u' (temp uint) +0:27 'f' (temp float) +0:29 Function Call: foo1(d1;d1; (global void) +0:29 Convert int to double (temp double) +0:29 'i' (temp int) +0:29 'd' (temp double) +0:30 Function Call: foo1(d1;u1; (global void) +0:30 Convert int to double (temp double) +0:30 'i' (temp int) +0:30 'u' (temp uint) +0:31 Function Call: foo1(d1;i1; (global void) +0:31 Convert int to double (temp double) +0:31 'i' (temp int) +0:31 'i' (temp int) +0:32 Function Call: foo1(d1;f1; (global void) +0:32 Convert int to double (temp double) +0:32 'i' (temp int) +0:32 'f' (temp float) +0:34 Branch: Return with expression +0:34 'input' (in 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 135 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 132 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 13 "foo1(d1;u1;" + Name 11 "a" + Name 12 "b" + Name 20 "foo1(d1;i1;" + Name 18 "a" + Name 19 "b" + Name 27 "foo1(d1;f1;" + Name 25 "a" + Name 26 "b" + Name 32 "foo1(d1;d1;" + Name 30 "a" + Name 31 "b" + Name 34 "d" + Name 35 "param" + Name 37 "param" + Name 40 "u" + Name 41 "param" + Name 43 "param" + Name 46 "i" + Name 47 "param" + Name 49 "param" + Name 52 "f" + Name 53 "param" + Name 55 "param" + Name 60 "param" + Name 61 "param" + Name 66 "param" + Name 67 "param" + Name 72 "param" + Name 73 "param" + Name 78 "param" + Name 79 "param" + Name 84 "param" + Name 85 "param" + Name 90 "param" + Name 91 "param" + Name 96 "param" + Name 97 "param" + Name 102 "param" + Name 103 "param" + Name 108 "param" + Name 109 "param" + Name 114 "param" + Name 115 "param" + Name 120 "param" + Name 121 "param" + Name 126 "param" + Name 127 "param" + Name 132 "input" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float) + 8: TypeInt 32 0 + 9: TypePointer Function 8(int) + 10: TypeFunction 2 7(ptr) 9(ptr) + 15: TypeInt 32 1 + 16: TypePointer Function 15(int) + 17: TypeFunction 2 7(ptr) 16(ptr) + 22: TypeFloat 32 + 23: TypePointer Function 22(float) + 24: TypeFunction 2 7(ptr) 23(ptr) + 29: TypeFunction 2 7(ptr) 7(ptr) + 130: TypeVector 22(float) 4 + 131: TypePointer Input 130(fvec4) + 132(input): 131(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 34(d): 7(ptr) Variable Function + 35(param): 7(ptr) Variable Function + 37(param): 7(ptr) Variable Function + 40(u): 9(ptr) Variable Function + 41(param): 7(ptr) Variable Function + 43(param): 9(ptr) Variable Function + 46(i): 16(ptr) Variable Function + 47(param): 7(ptr) Variable Function + 49(param): 16(ptr) Variable Function + 52(f): 23(ptr) Variable Function + 53(param): 7(ptr) Variable Function + 55(param): 23(ptr) Variable Function + 60(param): 7(ptr) Variable Function + 61(param): 7(ptr) Variable Function + 66(param): 7(ptr) Variable Function + 67(param): 9(ptr) Variable Function + 72(param): 7(ptr) Variable Function + 73(param): 16(ptr) Variable Function + 78(param): 7(ptr) Variable Function + 79(param): 23(ptr) Variable Function + 84(param): 7(ptr) Variable Function + 85(param): 7(ptr) Variable Function + 90(param): 7(ptr) Variable Function + 91(param): 9(ptr) Variable Function + 96(param): 7(ptr) Variable Function + 97(param): 16(ptr) Variable Function + 102(param): 7(ptr) Variable Function + 103(param): 23(ptr) Variable Function + 108(param): 7(ptr) Variable Function + 109(param): 7(ptr) Variable Function + 114(param): 7(ptr) Variable Function + 115(param): 9(ptr) Variable Function + 120(param): 7(ptr) Variable Function + 121(param): 16(ptr) Variable Function + 126(param): 7(ptr) Variable Function + 127(param): 23(ptr) Variable Function + 36: 6(float) Load 34(d) + Store 35(param) 36 + 38: 6(float) Load 34(d) + Store 37(param) 38 + 39: 2 FunctionCall 32(foo1(d1;d1;) 35(param) 37(param) + 42: 6(float) Load 34(d) + Store 41(param) 42 + 44: 8(int) Load 40(u) + Store 43(param) 44 + 45: 2 FunctionCall 13(foo1(d1;u1;) 41(param) 43(param) + 48: 6(float) Load 34(d) + Store 47(param) 48 + 50: 15(int) Load 46(i) + Store 49(param) 50 + 51: 2 FunctionCall 20(foo1(d1;i1;) 47(param) 49(param) + 54: 6(float) Load 34(d) + Store 53(param) 54 + 56: 22(float) Load 52(f) + Store 55(param) 56 + 57: 2 FunctionCall 27(foo1(d1;f1;) 53(param) 55(param) + 58: 22(float) Load 52(f) + 59: 6(float) FConvert 58 + Store 60(param) 59 + 62: 6(float) Load 34(d) + Store 61(param) 62 + 63: 2 FunctionCall 32(foo1(d1;d1;) 60(param) 61(param) + 64: 22(float) Load 52(f) + 65: 6(float) FConvert 64 + Store 66(param) 65 + 68: 8(int) Load 40(u) + Store 67(param) 68 + 69: 2 FunctionCall 13(foo1(d1;u1;) 66(param) 67(param) + 70: 22(float) Load 52(f) + 71: 6(float) FConvert 70 + Store 72(param) 71 + 74: 15(int) Load 46(i) + Store 73(param) 74 + 75: 2 FunctionCall 20(foo1(d1;i1;) 72(param) 73(param) + 76: 22(float) Load 52(f) + 77: 6(float) FConvert 76 + Store 78(param) 77 + 80: 22(float) Load 52(f) + Store 79(param) 80 + 81: 2 FunctionCall 27(foo1(d1;f1;) 78(param) 79(param) + 82: 8(int) Load 40(u) + 83: 6(float) ConvertUToF 82 + Store 84(param) 83 + 86: 6(float) Load 34(d) + Store 85(param) 86 + 87: 2 FunctionCall 32(foo1(d1;d1;) 84(param) 85(param) + 88: 8(int) Load 40(u) + 89: 6(float) ConvertUToF 88 + Store 90(param) 89 + 92: 8(int) Load 40(u) + Store 91(param) 92 + 93: 2 FunctionCall 13(foo1(d1;u1;) 90(param) 91(param) + 94: 8(int) Load 40(u) + 95: 6(float) ConvertUToF 94 + Store 96(param) 95 + 98: 15(int) Load 46(i) + Store 97(param) 98 + 99: 2 FunctionCall 20(foo1(d1;i1;) 96(param) 97(param) + 100: 8(int) Load 40(u) + 101: 6(float) ConvertUToF 100 + Store 102(param) 101 + 104: 22(float) Load 52(f) + Store 103(param) 104 + 105: 2 FunctionCall 27(foo1(d1;f1;) 102(param) 103(param) + 106: 15(int) Load 46(i) + 107: 6(float) ConvertSToF 106 + Store 108(param) 107 + 110: 6(float) Load 34(d) + Store 109(param) 110 + 111: 2 FunctionCall 32(foo1(d1;d1;) 108(param) 109(param) + 112: 15(int) Load 46(i) + 113: 6(float) ConvertSToF 112 + Store 114(param) 113 + 116: 8(int) Load 40(u) + Store 115(param) 116 + 117: 2 FunctionCall 13(foo1(d1;u1;) 114(param) 115(param) + 118: 15(int) Load 46(i) + 119: 6(float) ConvertSToF 118 + Store 120(param) 119 + 122: 15(int) Load 46(i) + Store 121(param) 122 + 123: 2 FunctionCall 20(foo1(d1;i1;) 120(param) 121(param) + 124: 15(int) Load 46(i) + 125: 6(float) ConvertSToF 124 + Store 126(param) 125 + 128: 22(float) Load 52(f) + Store 127(param) 128 + 129: 2 FunctionCall 27(foo1(d1;f1;) 126(param) 127(param) + 133: 130(fvec4) Load 132(input) + ReturnValue 133 + FunctionEnd + 13(foo1(d1;u1;): 2 Function None 10 + 11(a): 7(ptr) FunctionParameter + 12(b): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd + 20(foo1(d1;i1;): 2 Function None 17 + 18(a): 7(ptr) FunctionParameter + 19(b): 16(ptr) FunctionParameter + 21: Label + Return + FunctionEnd + 27(foo1(d1;f1;): 2 Function None 24 + 25(a): 7(ptr) FunctionParameter + 26(b): 23(ptr) FunctionParameter + 28: Label + Return + FunctionEnd + 32(foo1(d1;d1;): 2 Function None 29 + 30(a): 7(ptr) FunctionParameter + 31(b): 7(ptr) FunctionParameter + 33: Label + Return + FunctionEnd diff --git a/Test/hlsl.overload.frag b/Test/hlsl.overload.frag new file mode 100644 index 00000000..feaee7f7 --- /dev/null +++ b/Test/hlsl.overload.frag @@ -0,0 +1,35 @@ +// function selection under type conversion +void foo1(double a, uint b) {} +void foo1(double a, int b) {} +void foo1(double a, float b) {} +void foo1(double a, double b){} + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + double d; + uint u; + int i; + float f; + + foo1(d, d); + foo1(d, u); + foo1(d, i); + foo1(d, f); + + foo1(f, d); + foo1(f, u); + foo1(f, i); + foo1(f, f); + + foo1(u, d); + foo1(u, u); + foo1(u, i); + foo1(u, f); + + foo1(i, d); + foo1(i, u); + foo1(i, i); + foo1(i, f); + + return input; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index f3df1037..f77aad9a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "Overload400-PrecQual.1433" -#define GLSLANG_DATE "23-Aug-2016" +#define GLSLANG_DATE "24-Aug-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index a98dd87c..111678f2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -121,6 +121,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, + {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 720cb230..9e2bb87e 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3535,6 +3535,10 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali // // Look up a function name in the symbol table, and make sure it is a function. // +// First, look for an exact match. If there is none, use the generic selector +// TParseContextBase::selectFunction() to find one, parameterized by the +// convertible() and better() predicates defined below. +// // Return the function symbol if found, otherwise nullptr. // const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn) @@ -3551,57 +3555,53 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu if (symbol) return symbol->getAsFunction(); - // exact match not found, look through a list of overloaded functions of the same name + // no exact match, use the generic selector, parameterized by the GLSL rules - const TFunction* candidate = nullptr; + // create list of candidates to send TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); + + // can 'from' convert to 'to'? + auto convertible = [this](const TType& from, const TType& to) { + if (from == to) + return true; + if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) + return false; + return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType()); + }; - for (auto it = candidateList.begin(); it != candidateList.end(); ++it) { - const TFunction& function = *(*it); + // Is 'to2' a better conversion than 'to1'? + // Ties should not be considered as better. + // Assumes 'convertible' already said true. + auto better = [](const TType& from, const TType& to1, const TType& to2) { + // 1. exact match + if (from == to2) + return from != to1; + if (from == to1) + return false; - // to even be a potential match, number of arguments has to match - if (call.getParamCount() != function.getParamCount()) - continue; - - bool possibleMatch = true; - for (int i = 0; i < function.getParamCount(); ++i) { - // same types is easy - if (*function[i].type == *call[i].type) - continue; - - // We have a mismatch in type, see if it is implicitly convertible - - if (function[i].type->isArray() || call[i].type->isArray() || - ! function[i].type->sameElementShape(*call[i].type)) - possibleMatch = false; - else { - // do direction-specific checks for conversion of basic type - if (function[i].type->getQualifier().isParamInput()) { - if (! intermediate.canImplicitlyPromote(call[i].type->getBasicType(), function[i].type->getBasicType())) - possibleMatch = false; - } - if (function[i].type->getQualifier().isParamOutput()) { - if (! intermediate.canImplicitlyPromote(function[i].type->getBasicType(), call[i].type->getBasicType())) - possibleMatch = false; - } - } - if (! possibleMatch) - break; + // 2. float -> double is better + if (from.getBasicType() == EbtFloat) { + if (to2.getBasicType() == EbtDouble && to1.getBasicType() != EbtDouble) + return true; } - if (possibleMatch) { - if (candidate) { - // our second match, meaning ambiguity - error(loc, "ambiguous function signature match: multiple signatures match under implicit type conversion", call.getName().c_str(), ""); - } else - candidate = &function; - } - } - if (candidate == nullptr) + // 3. -> float is better than -> double + return to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble; + }; + + // for ambiguity reporting + bool tie = false; + + // send to the generic selector + const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); + + if (bestMatch == nullptr) error(loc, "no matching overloaded function found", call.getName().c_str(), ""); + else if (tie) + error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); - return candidate; + return bestMatch; } // From 36e87d0871574e6add0e925235e26377447aa0cf Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 24 Aug 2016 23:49:36 -0600 Subject: [PATCH 088/217] HLSL: add precise keyword --- Test/baseResults/hlsl.precise.frag.out | 103 +++++++++++++++++++++++++ Test/hlsl.precise.frag | 14 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslScanContext.cpp | 1 + 4 files changed, 119 insertions(+) create mode 100644 Test/baseResults/hlsl.precise.frag.out create mode 100644 Test/hlsl.precise.frag diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out new file mode 100644 index 00000000..1a277f0a --- /dev/null +++ b/Test/baseResults/hlsl.precise.frag.out @@ -0,0 +1,103 @@ +hlsl.precise.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Parameters: +0:6 'myfloat' (noContraction in float) +0:6 'myfloat3' (noContraction out 3-component vector of float) +0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Parameters: +0:? Sequence +0:11 move second child to first child (noContraction temp 4-component vector of float) +0:11 color: direct index for structure (noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:12 Branch: Return with expression +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:? Linker Objects +0:? 'precisefloat' (noContraction global float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Parameters: +0:6 'myfloat' (noContraction in float) +0:6 'myfloat3' (noContraction out 3-component vector of float) +0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Parameters: +0:? Sequence +0:11 move second child to first child (noContraction temp 4-component vector of float) +0:11 color: direct index for structure (noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:11 Constant: +0:11 0 (const int) +0:11 Constant: +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:11 1.000000 +0:12 Branch: Return with expression +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:? Linker Objects +0:? 'precisefloat' (noContraction global float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 29 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 13 "MyFunction(f1;vf3;" + Name 11 "myfloat" + Name 12 "myfloat3" + Name 16 "PS_OUTPUT" + MemberName 16(PS_OUTPUT) 0 "color" + Name 18 "ps_output" + Name 28 "precisefloat" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeVector 6(float) 3 + 9: TypePointer Function 8(fvec3) + 10: TypeFunction 2 7(ptr) 9(ptr) + 15: TypeVector 6(float) 4 + 16(PS_OUTPUT): TypeStruct 15(fvec4) + 17: TypePointer Function 16(PS_OUTPUT) + 19: TypeInt 32 1 + 20: 19(int) Constant 0 + 21: 6(float) Constant 1065353216 + 22: 15(fvec4) ConstantComposite 21 21 21 21 + 23: TypePointer Function 15(fvec4) + 27: TypePointer Private 6(float) +28(precisefloat): 27(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 18(ps_output): 17(ptr) Variable Function + 24: 23(ptr) AccessChain 18(ps_output) 20 + Store 24 22 + 25:16(PS_OUTPUT) Load 18(ps_output) + ReturnValue 25 + FunctionEnd +13(MyFunction(f1;vf3;): 2 Function None 10 + 11(myfloat): 7(ptr) FunctionParameter + 12(myfloat3): 9(ptr) FunctionParameter + 14: Label + Return + FunctionEnd diff --git a/Test/hlsl.precise.frag b/Test/hlsl.precise.frag new file mode 100644 index 00000000..7518de54 --- /dev/null +++ b/Test/hlsl.precise.frag @@ -0,0 +1,14 @@ + +struct PS_OUTPUT { precise float4 color : SV_Target0; }; + +precise float precisefloat; + +void MyFunction(in precise float myfloat, out precise float3 myfloat3) { } + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +} + diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 111678f2..2e51bb48 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -123,6 +123,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, + {"hlsl.precise.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 009210f1..29a22553 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -463,6 +463,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokIn: case EHTokOut: case EHTokInOut: + case EHTokPrecise: case EHTokLayout: return keyword; From deec03cfca7f4d7a63797a65a665faf623740eb9 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Thu, 25 Aug 2016 11:59:17 -0400 Subject: [PATCH 089/217] First stab at system value interpretation --- hlsl/hlslParseHelper.cpp | 139 +++++++++++++++++++++++++++++++++------ 1 file changed, 118 insertions(+), 21 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 720cb230..42edf7bc 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -755,8 +755,24 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); if (inEntrypoint) { // parameters are actually shader-level inputs + unsigned int inCount = 0, outCount = 0; for (int i = 0; i < function.getParamCount(); i++) - function[i].type->getQualifier().storage = EvqVaryingIn; + { + // Fragment programs do not use ordering for the output layout position, rather it is + // embedded in the semantic + if (function[i].type->getQualifier().isParamOutput() && language != EShLangFragment) + { + if (function[i].type->getQualifier().builtIn == EbvNone) + function[i].type->getQualifier().layoutLocation = outCount++; + function[i].type->getQualifier().storage = EvqVaryingOut; + } + else + { + if (function[i].type->getQualifier().builtIn == EbvNone) + function[i].type->getQualifier().layoutLocation = inCount++; + function[i].type->getQualifier().storage = EvqVaryingIn; + } + } } // @@ -2260,27 +2276,108 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) // TODO: need to know if it's an input or an output // The following sketches what needs to be done, but can't be right // without taking into account stage and input/output. + + // in DX9, all outputs had to have a semantic associated with them, that was either consumed + // by the system or was a specific register assignment + // in DX10+, only semantics with the SV_ prefix have any meaning beyond decoration + // Fxc will only accept DX9 style semantics in compat mode + // Also, in DX10 if a SV value is present as the input of a stage, but isn't appropriate for that + // stage, it would just be ignored as it is likely there as part of an output struct from one stage + // to the next + bool bParseDX9 = false; - if (semantic == "PSIZE") - type.getQualifier().builtIn = EbvPointSize; - else if (semantic == "POSITION") - type.getQualifier().builtIn = EbvPosition; - else if (semantic == "FOG") - type.getQualifier().builtIn = EbvFogFragCoord; - else if (semantic == "DEPTH" || semantic == "SV_Depth") - type.getQualifier().builtIn = EbvFragDepth; - else if (semantic == "VFACE" || semantic == "SV_IsFrontFace") - type.getQualifier().builtIn = EbvFace; - else if (semantic == "VPOS" || semantic == "SV_Position") - type.getQualifier().builtIn = EbvFragCoord; - else if (semantic == "SV_ClipDistance") - type.getQualifier().builtIn = EbvClipDistance; - else if (semantic == "SV_CullDistance") - type.getQualifier().builtIn = EbvCullDistance; - else if (semantic == "SV_VertexID") - type.getQualifier().builtIn = EbvVertexId; - else if (semantic == "SV_ViewportArrayIndex") - type.getQualifier().builtIn = EbvViewportIndex; + if (bParseDX9) + { + if (semantic == "PSIZE") + type.getQualifier().builtIn = EbvPointSize; + else if (semantic == "FOG") + type.getQualifier().builtIn = EbvFogFragCoord; + else if (semantic == "DEPTH" || semantic == "SV_Depth") + type.getQualifier().builtIn = EbvFragDepth; + else if (semantic == "VFACE" || semantic == "SV_IsFrontFace") + type.getQualifier().builtIn = EbvFace; + else if (semantic == "VPOS" || semantic == "SV_Position") + type.getQualifier().builtIn = EbvFragCoord; + } + + TString semanticUpperCase = semantic; + std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); + { + //SV Position has a different meaning in vertex vs fragment + if (semanticUpperCase == "SV_POSITION" && language != EShLangFragment) + type.getQualifier().builtIn = EbvPosition; + else if (semanticUpperCase == "SV_POSITION" && language == EShLangFragment) + type.getQualifier().builtIn = EbvFragCoord; + else if (semanticUpperCase == "SV_CLIPDISTANCE") + type.getQualifier().builtIn = EbvClipDistance; + else if (semanticUpperCase == "SV_CULLDISTANCE") + type.getQualifier().builtIn = EbvCullDistance; + else if (semanticUpperCase == "SV_VERTEXID") + type.getQualifier().builtIn = EbvVertexIndex; + else if (semanticUpperCase == "SV_VIEWPORTARRAYINDEX") + type.getQualifier().builtIn = EbvViewportIndex; + else if (semanticUpperCase == "SV_TESSFACTOR") + type.getQualifier().builtIn = EbvTessLevelOuter; + + //Targets are defined 0-7 + else if (semanticUpperCase == "SV_TARGET") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 0; } + else if (semanticUpperCase == "SV_TARGET0") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 0; } + else if (semanticUpperCase == "SV_TARGET1") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 1; } + else if (semanticUpperCase == "SV_TARGET2") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 2; } + else if (semanticUpperCase == "SV_TARGET3") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 3; } + else if (semanticUpperCase == "SV_TARGET4") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 4; } + else if (semanticUpperCase == "SV_TARGET5") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 5; } + else if (semanticUpperCase == "SV_TARGET6") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 6; } + else if (semanticUpperCase == "SV_TARGET7") { + type.getQualifier().builtIn = EbvNone; type.getQualifier().layoutLocation = 7; } + else if (semanticUpperCase == "SV_SAMPLEINDEX") + type.getQualifier().builtIn = EbvSampleId; + else if (semanticUpperCase == "SV_RENDERTARGETARRAYINDEX") + type.getQualifier().builtIn = EbvLayer; + else if (semanticUpperCase == "SV_PRIMITIVEID") + type.getQualifier().builtIn = EbvPrimitiveId; + else if (semanticUpperCase == "SV_OUTPUTCONTROLPOINTID") + type.getQualifier().builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_ISFRONTFACE") + type.getQualifier().builtIn = EbvFace; + else if (semanticUpperCase == "SV_INSTANCEID") + type.getQualifier().builtIn = EbvInstanceIndex; + else if (semanticUpperCase == "SV_INSIDETESSFACTOR") + type.getQualifier().builtIn = EbvTessLevelInner; + else if (semanticUpperCase == "SV_GSINSTANCEID") + type.getQualifier().builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_GROUPTHREADID") + type.getQualifier().builtIn = EbvLocalInvocationId; + else if (semanticUpperCase == "SV_GROUPID") + type.getQualifier().builtIn = EbvWorkGroupId; + else if (semanticUpperCase == "SV_DOMAINLOCATION") + type.getQualifier().builtIn = EbvTessCoord; + else if (semanticUpperCase == "SV_DEPTH") + type.getQualifier().builtIn = EbvFragDepth; + + + //not supported or not trivial + //else if( semanticUpperCase == "SV_STENCILREF") + // type.getQualifier().builtIn = gl_FragStencilRef + //else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") + // type.getQualifier().builtIn = ?? + //else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") + // type.getQualifier().builtIn = ?? + //else if( semanticUpperCase == "SV_COVERAGE") + // type.getQualifier().builtIn = ?? + + + } + + } // From a8456415b86972c847765cf86294ed4d50aa5969 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 17 Aug 2016 16:18:06 -0600 Subject: [PATCH 090/217] WIP: SPV Remapper: add remapper test framework --- README-spirv-remap.txt | 2 +- SPIRV/CMakeLists.txt | 16 +- SPIRV/SPVRemapper.h | 2 +- SPIRV/disassemble.cpp | 10 +- StandAlone/CMakeLists.txt | 1 + Test/baseResults/remap.basic.dcefunc.frag.out | 40 +++ .../remap.basic.dcevartype.frag.out | 12 + .../remap.basic.everything.frag.out | 31 ++ Test/baseResults/remap.basic.none.frag.out | 44 +++ Test/baseResults/remap.basic.strip.frag.out | 39 +++ ...emap.hlsl.sample.basic.everything.frag.out | 213 +++++++++++++ .../remap.hlsl.sample.basic.none.frag.out | 293 ++++++++++++++++++ .../remap.hlsl.sample.basic.strip.frag.out | 246 +++++++++++++++ ...map.hlsl.templatetypes.everything.frag.out | 23 ++ .../remap.hlsl.templatetypes.none.frag.out | 216 +++++++++++++ Test/baseResults/remap.if.everything.frag.out | 47 +++ Test/baseResults/remap.if.none.frag.out | 51 +++ .../remap.literal64.everything.spv.out | 7 + Test/baseResults/remap.literal64.none.spv.out | 25 ++ .../remap.similar_1a.everything.frag.out | 121 ++++++++ .../remap.similar_1a.none.frag.out | 135 ++++++++ .../remap.similar_1b.everything.frag.out | 127 ++++++++ .../remap.similar_1b.none.frag.out | 141 +++++++++ .../remap.switch.everything.frag.out | 81 +++++ Test/baseResults/remap.switch.none.frag.out | 85 +++++ .../remap.uniformarray.everything.frag.out | 67 ++++ .../remap.uniformarray.none.frag.out | 80 +++++ Test/remap.basic.dcefunc.frag | 11 + Test/remap.basic.everything.frag | 11 + Test/remap.basic.none.frag | 11 + Test/remap.basic.strip.frag | 11 + Test/remap.hlsl.sample.basic.everything.frag | 90 ++++++ Test/remap.hlsl.sample.basic.none.frag | 90 ++++++ Test/remap.hlsl.sample.basic.strip.frag | 90 ++++++ Test/remap.hlsl.templatetypes.everything.frag | 47 +++ Test/remap.hlsl.templatetypes.none.frag | 47 +++ Test/remap.if.everything.frag | 12 + Test/remap.if.none.frag | 12 + Test/remap.literal64.everything.spv | Bin 0 -> 220 bytes Test/remap.literal64.none.spv | Bin 0 -> 220 bytes Test/remap.similar_1a.everything.frag | 29 ++ Test/remap.similar_1a.none.frag | 29 ++ Test/remap.similar_1b.everything.frag | 30 ++ Test/remap.similar_1b.none.frag | 30 ++ Test/remap.switch.everything.frag | 16 + Test/remap.switch.none.frag | 16 + Test/remap.uniformarray.everything.frag | 17 + Test/remap.uniformarray.none.frag | 17 + gtests/CMakeLists.txt | 33 ++ gtests/Remap.FromFile.cpp | 117 +++++++ gtests/TestFixture.cpp | 26 ++ gtests/TestFixture.h | 129 ++++++++ 52 files changed, 3067 insertions(+), 9 deletions(-) create mode 100644 Test/baseResults/remap.basic.dcefunc.frag.out create mode 100644 Test/baseResults/remap.basic.dcevartype.frag.out create mode 100644 Test/baseResults/remap.basic.everything.frag.out create mode 100644 Test/baseResults/remap.basic.none.frag.out create mode 100644 Test/baseResults/remap.basic.strip.frag.out create mode 100644 Test/baseResults/remap.hlsl.sample.basic.everything.frag.out create mode 100644 Test/baseResults/remap.hlsl.sample.basic.none.frag.out create mode 100644 Test/baseResults/remap.hlsl.sample.basic.strip.frag.out create mode 100644 Test/baseResults/remap.hlsl.templatetypes.everything.frag.out create mode 100644 Test/baseResults/remap.hlsl.templatetypes.none.frag.out create mode 100644 Test/baseResults/remap.if.everything.frag.out create mode 100644 Test/baseResults/remap.if.none.frag.out create mode 100644 Test/baseResults/remap.literal64.everything.spv.out create mode 100644 Test/baseResults/remap.literal64.none.spv.out create mode 100644 Test/baseResults/remap.similar_1a.everything.frag.out create mode 100644 Test/baseResults/remap.similar_1a.none.frag.out create mode 100644 Test/baseResults/remap.similar_1b.everything.frag.out create mode 100644 Test/baseResults/remap.similar_1b.none.frag.out create mode 100644 Test/baseResults/remap.switch.everything.frag.out create mode 100644 Test/baseResults/remap.switch.none.frag.out create mode 100644 Test/baseResults/remap.uniformarray.everything.frag.out create mode 100644 Test/baseResults/remap.uniformarray.none.frag.out create mode 100644 Test/remap.basic.dcefunc.frag create mode 100644 Test/remap.basic.everything.frag create mode 100644 Test/remap.basic.none.frag create mode 100644 Test/remap.basic.strip.frag create mode 100644 Test/remap.hlsl.sample.basic.everything.frag create mode 100644 Test/remap.hlsl.sample.basic.none.frag create mode 100644 Test/remap.hlsl.sample.basic.strip.frag create mode 100644 Test/remap.hlsl.templatetypes.everything.frag create mode 100644 Test/remap.hlsl.templatetypes.none.frag create mode 100644 Test/remap.if.everything.frag create mode 100644 Test/remap.if.none.frag create mode 100644 Test/remap.literal64.everything.spv create mode 100644 Test/remap.literal64.none.spv create mode 100644 Test/remap.similar_1a.everything.frag create mode 100644 Test/remap.similar_1a.none.frag create mode 100644 Test/remap.similar_1b.everything.frag create mode 100644 Test/remap.similar_1b.none.frag create mode 100644 Test/remap.switch.everything.frag create mode 100644 Test/remap.switch.none.frag create mode 100644 Test/remap.uniformarray.everything.frag create mode 100644 Test/remap.uniformarray.none.frag create mode 100644 gtests/Remap.FromFile.cpp diff --git a/README-spirv-remap.txt b/README-spirv-remap.txt index 8e3259f8..3e5288aa 100644 --- a/README-spirv-remap.txt +++ b/README-spirv-remap.txt @@ -98,7 +98,7 @@ options. See REMAPPING AND OPTIMIZATION OPTIONS. On error, the function supplied to registerErrorHandler() will be invoked. This can be a standard C/C++ function, a lambda function, or a functor. The default handler simply calls exit(5); The error handler is a static -members, so need only be set up once, not once per spirvbin_t instance. +member, so need only be set up once, not once per spirvbin_t instance. Log messages are supplied to registerLogHandler(). By default, log messages are eaten silently. The log handler is also a static member. diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 9628a82f..48a6c468 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -3,21 +3,27 @@ set(SOURCES InReadableOrder.cpp Logger.cpp SpvBuilder.cpp - SPVRemapper.cpp doc.cpp disassemble.cpp) +set(SPVREMAP_SOURCES + SPVRemapper.cpp + doc.cpp) + set(HEADERS spirv.hpp GLSL.std.450.h GlslangToSpv.h Logger.h SpvBuilder.h - SPVRemapper.h spvIR.h doc.h disassemble.h) +set(SPVREMAP_HEADERS + SPVRemapper.h + doc.h) + if(ENABLE_AMD_EXTENSIONS) set(HEADERS GLSL.ext.AMD.h) @@ -26,9 +32,13 @@ endif(ENABLE_AMD_EXTENSIONS) add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) set_property(TARGET SPIRV PROPERTY FOLDER glslang) +add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) +set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) + if(WIN32) source_group("Source" FILES ${SOURCES} ${HEADERS}) + source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) endif(WIN32) -install(TARGETS SPIRV +install(TARGETS SPIRV SPVRemapper ARCHIVE DESTINATION lib) diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index e24db7ce..43ec1ae7 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -82,7 +82,7 @@ class spirvbin_t : public spirvbin_base_t public: spirvbin_t(int /*verbose = 0*/) { } - void remap(std::vector& /*spv*/, unsigned int /*opts = 0*/) + void remap(std::vector& /*spv*/, unsigned int /*opts = 0*/) { printf("Tool not compiled for C++11, which is required for SPIR-V remapping.\n"); exit(5); diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp index a7838a1b..b1023b92 100644 --- a/SPIRV/disassemble.cpp +++ b/SPIRV/disassemble.cpp @@ -217,10 +217,12 @@ void SpirvStream::outputIndent() void SpirvStream::formatId(Id id, std::stringstream& idStream) { - if (id >= bound) - Kill(out, "Bad "); - if (id != 0) { + // On instructions with no IDs, this is called with "0", which does not + // have to be within ID bounds on null shaders. + if (id >= bound) + Kill(out, "Bad "); + idStream << id; if (idDescriptor[id].size() > 0) idStream << "(" << idDescriptor[id] << ")"; @@ -334,7 +336,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, idDescriptor[resultId] = (const char*)(&stream[word]); } else { - if (idDescriptor[resultId].size() == 0) { + if (resultId != 0 && idDescriptor[resultId].size() == 0) { switch (opCode) { case OpTypeInt: idDescriptor[resultId] = "int"; diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index d69351ef..231ba277 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -24,6 +24,7 @@ set(LIBRARIES OSDependent HLSL SPIRV + SPVRemapper glslang-default-resource-limits) if(WIN32) diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out new file mode 100644 index 00000000..0f367c96 --- /dev/null +++ b/Test/baseResults/remap.basic.dcefunc.frag.out @@ -0,0 +1,40 @@ +remap.basic.dcefunc.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 19 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 16 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "dead_fn(" + Name 14 "outf4" + Name 16 "inf" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 10: 6(float) Constant 0 + 11: 7(fvec3) ConstantComposite 10 10 10 + 12: TypeVector 6(float) 4 + 13: TypePointer Output 12(fvec4) + 14(outf4): 13(ptr) Variable Output + 15: TypePointer Input 6(float) + 16(inf): 15(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 17: 6(float) Load 16(inf) + 18: 12(fvec4) CompositeConstruct 17 17 17 17 + Store 14(outf4) 18 + Return + FunctionEnd diff --git a/Test/baseResults/remap.basic.dcevartype.frag.out b/Test/baseResults/remap.basic.dcevartype.frag.out new file mode 100644 index 00000000..dd03946d --- /dev/null +++ b/Test/baseResults/remap.basic.dcevartype.frag.out @@ -0,0 +1,12 @@ +remap.basic.dcevartype.frag +ERROR: #version: ES shaders for Vulkan SPIR-V require version 310 or higher +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 1 compilation errors. No code generated. + + + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out new file mode 100644 index 00000000..f6d6ed44 --- /dev/null +++ b/Test/baseResults/remap.basic.everything.frag.out @@ -0,0 +1,31 @@ +remap.basic.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24969 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4539 3773 + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 650: TypePointer Input 13(float) + 3773: 650(ptr) Variable Input + 5663: 8 Function None 1282 + 24968: Label + 17486: 13(float) Load 3773 + 17691: 29(fvec4) CompositeConstruct 17486 17486 17486 17486 + Store 4539 17691 + Return + FunctionEnd diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out new file mode 100644 index 00000000..3632309a --- /dev/null +++ b/Test/baseResults/remap.basic.none.frag.out @@ -0,0 +1,44 @@ +remap.basic.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 15 17 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "dead_fn(" + Name 15 "outf4" + Name 17 "inf" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15(outf4): 14(ptr) Variable Output + 16: TypePointer Input 6(float) + 17(inf): 16(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 18: 6(float) Load 17(inf) + 19: 13(fvec4) CompositeConstruct 18 18 18 18 + Store 15(outf4) 19 + Return + FunctionEnd + 9(dead_fn(): 7(fvec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out new file mode 100644 index 00000000..d34ce8ff --- /dev/null +++ b/Test/baseResults/remap.basic.strip.frag.out @@ -0,0 +1,39 @@ +remap.basic.strip.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 20 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 15 17 + ExecutionMode 4 OriginUpperLeft + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeFunction 7(fvec3) + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15: 14(ptr) Variable Output + 16: TypePointer Input 6(float) + 17: 16(ptr) Variable Input + 4: 2 Function None 3 + 5: Label + 18: 6(float) Load 17 + 19: 13(fvec4) CompositeConstruct 18 18 18 18 + Store 15 19 + Return + FunctionEnd + 9: 7(fvec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out new file mode 100644 index 00000000..2347ace5 --- /dev/null +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -0,0 +1,213 @@ +remap.hlsl.sample.basic.everything.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24916 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" + ExecutionMode 5663 OriginUpperLeft + Decorate 4727 DescriptorSet 0 + Decorate 4727 Binding 0 + Decorate 3305 DescriptorSet 0 + Decorate 3305 Binding 0 + Decorate 4743 DescriptorSet 0 + Decorate 4807 DescriptorSet 0 + Decorate 5042 DescriptorSet 0 + Decorate 5058 DescriptorSet 0 + Decorate 5122 DescriptorSet 0 + Decorate 3967 DescriptorSet 0 + Decorate 3983 DescriptorSet 0 + Decorate 4047 DescriptorSet 0 + Decorate 3789 DescriptorSet 0 + Decorate 3805 DescriptorSet 0 + Decorate 3869 DescriptorSet 0 + MemberDecorate 1032 1 BuiltIn FragDepth + 8: TypeVoid + 1282: TypeFunction 8 + 12: TypeInt 32 1 + 1335: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) + 1972: TypePointer Function 1335(struct) + 2574: 12(int) Constant 1 + 649: TypePointer Function 12(int) + 2577: 12(int) Constant 2 + 2580: 12(int) Constant 3 + 2583: 12(int) Constant 4 + 2586: 12(int) Constant 5 + 2589: 12(int) Constant 6 + 2571: 12(int) Constant 0 + 2592: 12(int) Constant 7 + 2595: 12(int) Constant 8 + 2598: 12(int) Constant 9 + 2601: 12(int) Constant 10 + 2604: 12(int) Constant 11 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Function 29(fvec4) + 149: TypeImage 13(float) 1D sampled format:Unknown + 786: TypePointer UniformConstant 149 + 4727: 786(ptr) Variable UniformConstant + 508: TypeSampler + 1145: TypePointer UniformConstant 508 + 3305: 1145(ptr) Variable UniformConstant + 510: TypeSampledImage 149 + 2935: 13(float) Constant 1036831949 + 26: TypeVector 12(int) 4 + 148: TypeImage 12(int) 1D sampled format:Unknown + 785: TypePointer UniformConstant 148 + 4743: 785(ptr) Variable UniformConstant + 511: TypeSampledImage 148 + 2821: 13(float) Constant 1045220557 + 11: TypeInt 32 0 + 23: TypeVector 11(int) 4 + 147: TypeImage 11(int) 1D sampled format:Unknown + 784: TypePointer UniformConstant 147 + 4807: 784(ptr) Variable UniformConstant + 512: TypeSampledImage 147 + 2151: 13(float) Constant 1050253722 + 150: TypeImage 13(float) 2D sampled format:Unknown + 787: TypePointer UniformConstant 150 + 5042: 787(ptr) Variable UniformConstant + 513: TypeSampledImage 150 + 19: TypeVector 13(float) 2 + 1825: 19(fvec2) ConstantComposite 2935 2821 + 151: TypeImage 12(int) 2D sampled format:Unknown + 788: TypePointer UniformConstant 151 + 5058: 788(ptr) Variable UniformConstant + 514: TypeSampledImage 151 + 2707: 13(float) Constant 1053609165 + 2028: 19(fvec2) ConstantComposite 2151 2707 + 152: TypeImage 11(int) 2D sampled format:Unknown + 789: TypePointer UniformConstant 152 + 5122: 789(ptr) Variable UniformConstant + 515: TypeSampledImage 152 + 252: 13(float) Constant 1056964608 + 2037: 13(float) Constant 1058642330 + 2684: 19(fvec2) ConstantComposite 252 2037 + 153: TypeImage 13(float) 3D sampled format:Unknown + 790: TypePointer UniformConstant 153 + 3967: 790(ptr) Variable UniformConstant + 516: TypeSampledImage 153 + 24: TypeVector 13(float) 3 + 1660: 24(fvec3) ConstantComposite 2935 2821 2151 + 154: TypeImage 12(int) 3D sampled format:Unknown + 791: TypePointer UniformConstant 154 + 3983: 791(ptr) Variable UniformConstant + 517: TypeSampledImage 154 + 2174: 24(fvec3) ConstantComposite 2707 252 2037 + 155: TypeImage 11(int) 3D sampled format:Unknown + 792: TypePointer UniformConstant 155 + 4047: 792(ptr) Variable UniformConstant + 518: TypeSampledImage 155 + 808: 13(float) Constant 1060320051 + 2593: 13(float) Constant 1061997773 + 1364: 13(float) Constant 1063675494 + 2476: 24(fvec3) ConstantComposite 808 2593 1364 + 156: TypeImage 13(float) Cube sampled format:Unknown + 793: TypePointer UniformConstant 156 + 3789: 793(ptr) Variable UniformConstant + 519: TypeSampledImage 156 + 157: TypeImage 12(int) Cube sampled format:Unknown + 794: TypePointer UniformConstant 157 + 3805: 794(ptr) Variable UniformConstant + 520: TypeSampledImage 157 + 158: TypeImage 11(int) Cube sampled format:Unknown + 795: TypePointer UniformConstant 158 + 3869: 795(ptr) Variable UniformConstant + 521: TypeSampledImage 158 + 1032: TypeStruct 29(fvec4) 13(float) + 1669: TypePointer Function 1032(struct) + 138: 13(float) Constant 1065353216 + 1284: 29(fvec4) ConstantComposite 138 138 138 138 + 650: TypePointer Function 13(float) + 5663: 8 Function None 1282 + 24915: Label + 5830: 1972(ptr) Variable Function + 5072: 1669(ptr) Variable Function + 22097: 649(ptr) AccessChain 5830 2574 + Store 22097 2574 + 19732: 649(ptr) AccessChain 5830 2577 + Store 19732 2574 + 19733: 649(ptr) AccessChain 5830 2580 + Store 19733 2574 + 19734: 649(ptr) AccessChain 5830 2583 + Store 19734 2574 + 19735: 649(ptr) AccessChain 5830 2586 + Store 19735 2574 + 19736: 649(ptr) AccessChain 5830 2589 + Store 19736 2574 + 19737: 649(ptr) AccessChain 5830 2571 + Store 19737 2574 + 19738: 649(ptr) AccessChain 5830 2592 + Store 19738 2574 + 19739: 649(ptr) AccessChain 5830 2595 + Store 19739 2574 + 19740: 649(ptr) AccessChain 5830 2598 + Store 19740 2574 + 19741: 649(ptr) AccessChain 5830 2601 + Store 19741 2574 + 19656: 649(ptr) AccessChain 5830 2604 + Store 19656 2574 + 14934: 149 Load 4727 + 11686: 508 Load 3305 + 11940: 510 SampledImage 14934 11686 + 7877: 29(fvec4) ImageSampleImplicitLod 11940 2935 + 15360: 148 Load 4743 + 15706: 508 Load 3305 + 11941: 511 SampledImage 15360 15706 + 7878: 26(ivec4) ImageSampleImplicitLod 11941 2821 + 15361: 147 Load 4807 + 15707: 508 Load 3305 + 11942: 512 SampledImage 15361 15707 + 7879: 23(ivec4) ImageSampleImplicitLod 11942 2151 + 15362: 150 Load 5042 + 15708: 508 Load 3305 + 11943: 513 SampledImage 15362 15708 + 7880: 29(fvec4) ImageSampleImplicitLod 11943 1825 + 15363: 151 Load 5058 + 15709: 508 Load 3305 + 11944: 514 SampledImage 15363 15709 + 7881: 26(ivec4) ImageSampleImplicitLod 11944 2028 + 15364: 152 Load 5122 + 15710: 508 Load 3305 + 11945: 515 SampledImage 15364 15710 + 7882: 23(ivec4) ImageSampleImplicitLod 11945 2684 + 15365: 153 Load 3967 + 15711: 508 Load 3305 + 11946: 516 SampledImage 15365 15711 + 7883: 29(fvec4) ImageSampleImplicitLod 11946 1660 + 15366: 154 Load 3983 + 15712: 508 Load 3305 + 11947: 517 SampledImage 15366 15712 + 7884: 26(ivec4) ImageSampleImplicitLod 11947 2174 + 15367: 155 Load 4047 + 15713: 508 Load 3305 + 11948: 518 SampledImage 15367 15713 + 7885: 23(ivec4) ImageSampleImplicitLod 11948 2476 + 15368: 156 Load 3789 + 15714: 508 Load 3305 + 11949: 519 SampledImage 15368 15714 + 7886: 29(fvec4) ImageSampleImplicitLod 11949 1660 + 15369: 157 Load 3805 + 15715: 508 Load 3305 + 11950: 520 SampledImage 15369 15715 + 7887: 26(ivec4) ImageSampleImplicitLod 11950 2174 + 15370: 158 Load 3869 + 15716: 508 Load 3305 + 12016: 521 SampledImage 15370 15716 + 7204: 23(ivec4) ImageSampleImplicitLod 12016 2476 + 20158: 666(ptr) AccessChain 5072 2571 + Store 20158 1284 + 19657: 650(ptr) AccessChain 5072 2574 + Store 19657 138 + 21536:1032(struct) Load 5072 + ReturnValue 21536 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out new file mode 100644 index 00000000..3c1e9e92 --- /dev/null +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -0,0 +1,293 @@ +remap.hlsl.sample.basic.none.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 183 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 7 "MemberTest" + MemberName 7(MemberTest) 0 "Sample" + MemberName 7(MemberTest) 1 "CalculateLevelOfDetail" + MemberName 7(MemberTest) 2 "CalculateLevelOfDetailUnclamped" + MemberName 7(MemberTest) 3 "Gather" + MemberName 7(MemberTest) 4 "GetDimensions" + MemberName 7(MemberTest) 5 "GetSamplePosition" + MemberName 7(MemberTest) 6 "Load" + MemberName 7(MemberTest) 7 "SampleBias" + MemberName 7(MemberTest) 8 "SampleCmp" + MemberName 7(MemberTest) 9 "SampleCmpLevelZero" + MemberName 7(MemberTest) 10 "SampleGrad" + MemberName 7(MemberTest) 11 "SampleLevel" + Name 9 "mtest" + Name 38 "txval10" + Name 41 "g_tTex1df4" + Name 45 "g_sSamp" + Name 53 "txval11" + Name 56 "g_tTex1di4" + Name 66 "txval12" + Name 69 "g_tTex1du4" + Name 76 "txval20" + Name 79 "g_tTex2df4" + Name 87 "txval21" + Name 90 "g_tTex2di4" + Name 98 "txval22" + Name 101 "g_tTex2du4" + Name 110 "txval30" + Name 113 "g_tTex3df4" + Name 121 "txval31" + Name 124 "g_tTex3di4" + Name 131 "txval32" + Name 134 "g_tTex3du4" + Name 144 "txval40" + Name 147 "g_tTexcdf4" + Name 153 "txval41" + Name 156 "g_tTexcdi4" + Name 162 "txval42" + Name 165 "g_tTexcdu4" + Name 171 "PS_OUTPUT" + MemberName 171(PS_OUTPUT) 0 "Color" + MemberName 171(PS_OUTPUT) 1 "Depth" + Name 173 "psout" + Name 180 "g_sSamp2d" + Name 181 "g_sSamp2D_b" + Name 182 "g_tTex1df4a" + Decorate 41(g_tTex1df4) DescriptorSet 0 + Decorate 41(g_tTex1df4) Binding 0 + Decorate 45(g_sSamp) DescriptorSet 0 + Decorate 45(g_sSamp) Binding 0 + Decorate 56(g_tTex1di4) DescriptorSet 0 + Decorate 69(g_tTex1du4) DescriptorSet 0 + Decorate 79(g_tTex2df4) DescriptorSet 0 + Decorate 90(g_tTex2di4) DescriptorSet 0 + Decorate 101(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 134(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 156(g_tTexcdi4) DescriptorSet 0 + Decorate 165(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 180(g_sSamp2d) DescriptorSet 0 + Decorate 181(g_sSamp2D_b) DescriptorSet 0 + Decorate 182(g_tTex1df4a) DescriptorSet 0 + Decorate 182(g_tTex1df4a) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(MemberTest): TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(MemberTest) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41(g_tTex1df4): 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45(g_sSamp): 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex1di4): 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69(g_tTex1du4): 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79(g_tTex2df4): 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2di4): 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex2du4): 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3du4): 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTexcdi4): 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdu4): 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(PS_OUTPUT) + 174: 35(float) Constant 1065353216 + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 180(g_sSamp2d): 44(ptr) Variable UniformConstant +181(g_sSamp2D_b): 44(ptr) Variable UniformConstant +182(g_tTex1df4a): 40(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(mtest): 8(ptr) Variable Function + 38(txval10): 37(ptr) Variable Function + 53(txval11): 52(ptr) Variable Function + 66(txval12): 65(ptr) Variable Function + 76(txval20): 37(ptr) Variable Function + 87(txval21): 52(ptr) Variable Function + 98(txval22): 65(ptr) Variable Function + 110(txval30): 37(ptr) Variable Function + 121(txval31): 52(ptr) Variable Function + 131(txval32): 65(ptr) Variable Function + 144(txval40): 37(ptr) Variable Function + 153(txval41): 52(ptr) Variable Function + 162(txval42): 65(ptr) Variable Function + 173(psout): 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9(mtest) 10 + Store 12 10 + 14: 11(ptr) AccessChain 9(mtest) 13 + Store 14 10 + 16: 11(ptr) AccessChain 9(mtest) 15 + Store 16 10 + 18: 11(ptr) AccessChain 9(mtest) 17 + Store 18 10 + 20: 11(ptr) AccessChain 9(mtest) 19 + Store 20 10 + 22: 11(ptr) AccessChain 9(mtest) 21 + Store 22 10 + 24: 11(ptr) AccessChain 9(mtest) 23 + Store 24 10 + 26: 11(ptr) AccessChain 9(mtest) 25 + Store 26 10 + 28: 11(ptr) AccessChain 9(mtest) 27 + Store 28 10 + 30: 11(ptr) AccessChain 9(mtest) 29 + Store 30 10 + 32: 11(ptr) AccessChain 9(mtest) 31 + Store 32 10 + 34: 11(ptr) AccessChain 9(mtest) 33 + Store 34 10 + 42: 39 Load 41(g_tTex1df4) + 46: 43 Load 45(g_sSamp) + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38(txval10) 50 + 57: 54 Load 56(g_tTex1di4) + 58: 43 Load 45(g_sSamp) + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53(txval11) 62 + 70: 67 Load 69(g_tTex1du4) + 71: 43 Load 45(g_sSamp) + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66(txval12) 75 + 80: 77 Load 79(g_tTex2df4) + 81: 43 Load 45(g_sSamp) + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76(txval20) 86 + 91: 88 Load 90(g_tTex2di4) + 92: 43 Load 45(g_sSamp) + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87(txval21) 97 + 102: 99 Load 101(g_tTex2du4) + 103: 43 Load 45(g_sSamp) + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98(txval22) 109 + 114: 111 Load 113(g_tTex3df4) + 115: 43 Load 45(g_sSamp) + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110(txval30) 120 + 125: 122 Load 124(g_tTex3di4) + 126: 43 Load 45(g_sSamp) + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121(txval31) 130 + 135: 132 Load 134(g_tTex3du4) + 136: 43 Load 45(g_sSamp) + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131(txval32) 143 + 148: 145 Load 147(g_tTexcdf4) + 149: 43 Load 45(g_sSamp) + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144(txval40) 152 + 157: 154 Load 156(g_tTexcdi4) + 158: 43 Load 45(g_sSamp) + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153(txval41) 161 + 166: 163 Load 165(g_tTexcdu4) + 167: 43 Load 45(g_sSamp) + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162(txval42) 170 + 176: 37(ptr) AccessChain 173(psout) 23 + Store 176 175 + 178: 177(ptr) AccessChain 173(psout) 10 + Store 178 174 + 179:171(PS_OUTPUT) Load 173(psout) + ReturnValue 179 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out new file mode 100644 index 00000000..a0f896c3 --- /dev/null +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -0,0 +1,246 @@ +remap.hlsl.sample.basic.strip.frag +WARNING: 0:4: 'immediate sampler state' : unimplemented + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 183 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Decorate 41 DescriptorSet 0 + Decorate 41 Binding 0 + Decorate 45 DescriptorSet 0 + Decorate 45 Binding 0 + Decorate 56 DescriptorSet 0 + Decorate 69 DescriptorSet 0 + Decorate 79 DescriptorSet 0 + Decorate 90 DescriptorSet 0 + Decorate 101 DescriptorSet 0 + Decorate 113 DescriptorSet 0 + Decorate 124 DescriptorSet 0 + Decorate 134 DescriptorSet 0 + Decorate 147 DescriptorSet 0 + Decorate 156 DescriptorSet 0 + Decorate 165 DescriptorSet 0 + MemberDecorate 171 1 BuiltIn FragDepth + Decorate 180 DescriptorSet 0 + Decorate 181 DescriptorSet 0 + Decorate 182 DescriptorSet 0 + Decorate 182 Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeStruct 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Function 7(struct) + 10: 6(int) Constant 1 + 11: TypePointer Function 6(int) + 13: 6(int) Constant 2 + 15: 6(int) Constant 3 + 17: 6(int) Constant 4 + 19: 6(int) Constant 5 + 21: 6(int) Constant 6 + 23: 6(int) Constant 0 + 25: 6(int) Constant 7 + 27: 6(int) Constant 8 + 29: 6(int) Constant 9 + 31: 6(int) Constant 10 + 33: 6(int) Constant 11 + 35: TypeFloat 32 + 36: TypeVector 35(float) 4 + 37: TypePointer Function 36(fvec4) + 39: TypeImage 35(float) 1D sampled format:Unknown + 40: TypePointer UniformConstant 39 + 41: 40(ptr) Variable UniformConstant + 43: TypeSampler + 44: TypePointer UniformConstant 43 + 45: 44(ptr) Variable UniformConstant + 47: TypeSampledImage 39 + 49: 35(float) Constant 1036831949 + 51: TypeVector 6(int) 4 + 52: TypePointer Function 51(ivec4) + 54: TypeImage 6(int) 1D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56: 55(ptr) Variable UniformConstant + 59: TypeSampledImage 54 + 61: 35(float) Constant 1045220557 + 63: TypeInt 32 0 + 64: TypeVector 63(int) 4 + 65: TypePointer Function 64(ivec4) + 67: TypeImage 63(int) 1D sampled format:Unknown + 68: TypePointer UniformConstant 67 + 69: 68(ptr) Variable UniformConstant + 72: TypeSampledImage 67 + 74: 35(float) Constant 1050253722 + 77: TypeImage 35(float) 2D sampled format:Unknown + 78: TypePointer UniformConstant 77 + 79: 78(ptr) Variable UniformConstant + 82: TypeSampledImage 77 + 84: TypeVector 35(float) 2 + 85: 84(fvec2) ConstantComposite 49 61 + 88: TypeImage 6(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90: 89(ptr) Variable UniformConstant + 93: TypeSampledImage 88 + 95: 35(float) Constant 1053609165 + 96: 84(fvec2) ConstantComposite 74 95 + 99: TypeImage 63(int) 2D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101: 100(ptr) Variable UniformConstant + 104: TypeSampledImage 99 + 106: 35(float) Constant 1056964608 + 107: 35(float) Constant 1058642330 + 108: 84(fvec2) ConstantComposite 106 107 + 111: TypeImage 35(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113: 112(ptr) Variable UniformConstant + 116: TypeSampledImage 111 + 118: TypeVector 35(float) 3 + 119: 118(fvec3) ConstantComposite 49 61 74 + 122: TypeImage 6(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124: 123(ptr) Variable UniformConstant + 127: TypeSampledImage 122 + 129: 118(fvec3) ConstantComposite 95 106 107 + 132: TypeImage 63(int) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134: 133(ptr) Variable UniformConstant + 137: TypeSampledImage 132 + 139: 35(float) Constant 1060320051 + 140: 35(float) Constant 1061997773 + 141: 35(float) Constant 1063675494 + 142: 118(fvec3) ConstantComposite 139 140 141 + 145: TypeImage 35(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147: 146(ptr) Variable UniformConstant + 150: TypeSampledImage 145 + 154: TypeImage 6(int) Cube sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156: 155(ptr) Variable UniformConstant + 159: TypeSampledImage 154 + 163: TypeImage 63(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165: 164(ptr) Variable UniformConstant + 168: TypeSampledImage 163 + 171: TypeStruct 36(fvec4) 35(float) + 172: TypePointer Function 171(struct) + 174: 35(float) Constant 1065353216 + 175: 36(fvec4) ConstantComposite 174 174 174 174 + 177: TypePointer Function 35(float) + 180: 44(ptr) Variable UniformConstant + 181: 44(ptr) Variable UniformConstant + 182: 40(ptr) Variable UniformConstant + 4: 2 Function None 3 + 5: Label + 9: 8(ptr) Variable Function + 38: 37(ptr) Variable Function + 53: 52(ptr) Variable Function + 66: 65(ptr) Variable Function + 76: 37(ptr) Variable Function + 87: 52(ptr) Variable Function + 98: 65(ptr) Variable Function + 110: 37(ptr) Variable Function + 121: 52(ptr) Variable Function + 131: 65(ptr) Variable Function + 144: 37(ptr) Variable Function + 153: 52(ptr) Variable Function + 162: 65(ptr) Variable Function + 173: 172(ptr) Variable Function + 12: 11(ptr) AccessChain 9 10 + Store 12 10 + 14: 11(ptr) AccessChain 9 13 + Store 14 10 + 16: 11(ptr) AccessChain 9 15 + Store 16 10 + 18: 11(ptr) AccessChain 9 17 + Store 18 10 + 20: 11(ptr) AccessChain 9 19 + Store 20 10 + 22: 11(ptr) AccessChain 9 21 + Store 22 10 + 24: 11(ptr) AccessChain 9 23 + Store 24 10 + 26: 11(ptr) AccessChain 9 25 + Store 26 10 + 28: 11(ptr) AccessChain 9 27 + Store 28 10 + 30: 11(ptr) AccessChain 9 29 + Store 30 10 + 32: 11(ptr) AccessChain 9 31 + Store 32 10 + 34: 11(ptr) AccessChain 9 33 + Store 34 10 + 42: 39 Load 41 + 46: 43 Load 45 + 48: 47 SampledImage 42 46 + 50: 36(fvec4) ImageSampleImplicitLod 48 49 + Store 38 50 + 57: 54 Load 56 + 58: 43 Load 45 + 60: 59 SampledImage 57 58 + 62: 51(ivec4) ImageSampleImplicitLod 60 61 + Store 53 62 + 70: 67 Load 69 + 71: 43 Load 45 + 73: 72 SampledImage 70 71 + 75: 64(ivec4) ImageSampleImplicitLod 73 74 + Store 66 75 + 80: 77 Load 79 + 81: 43 Load 45 + 83: 82 SampledImage 80 81 + 86: 36(fvec4) ImageSampleImplicitLod 83 85 + Store 76 86 + 91: 88 Load 90 + 92: 43 Load 45 + 94: 93 SampledImage 91 92 + 97: 51(ivec4) ImageSampleImplicitLod 94 96 + Store 87 97 + 102: 99 Load 101 + 103: 43 Load 45 + 105: 104 SampledImage 102 103 + 109: 64(ivec4) ImageSampleImplicitLod 105 108 + Store 98 109 + 114: 111 Load 113 + 115: 43 Load 45 + 117: 116 SampledImage 114 115 + 120: 36(fvec4) ImageSampleImplicitLod 117 119 + Store 110 120 + 125: 122 Load 124 + 126: 43 Load 45 + 128: 127 SampledImage 125 126 + 130: 51(ivec4) ImageSampleImplicitLod 128 129 + Store 121 130 + 135: 132 Load 134 + 136: 43 Load 45 + 138: 137 SampledImage 135 136 + 143: 64(ivec4) ImageSampleImplicitLod 138 142 + Store 131 143 + 148: 145 Load 147 + 149: 43 Load 45 + 151: 150 SampledImage 148 149 + 152: 36(fvec4) ImageSampleImplicitLod 151 119 + Store 144 152 + 157: 154 Load 156 + 158: 43 Load 45 + 160: 159 SampledImage 157 158 + 161: 51(ivec4) ImageSampleImplicitLod 160 129 + Store 153 161 + 166: 163 Load 165 + 167: 43 Load 45 + 169: 168 SampledImage 166 167 + 170: 64(ivec4) ImageSampleImplicitLod 169 142 + Store 162 170 + 176: 37(ptr) AccessChain 173 23 + Store 176 175 + 178: 177(ptr) AccessChain 173 10 + Store 178 174 + 179: 171(struct) Load 173 + ReturnValue 179 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out new file mode 100644 index 00000000..a483986e --- /dev/null +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -0,0 +1,23 @@ +remap.hlsl.templatetypes.everything.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 16123 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 2572: 13(float) Constant 0 + 5663: 8 Function None 1282 + 16122: Label + ReturnValue 2572 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out new file mode 100644 index 00000000..1878c64d --- /dev/null +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -0,0 +1,216 @@ +remap.hlsl.templatetypes.none.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 144 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 15 "r01" + Name 20 "r12" + Name 24 "r13" + Name 27 "r14" + Name 30 "r15" + Name 34 "r16" + Name 38 "r20" + Name 43 "r21" + Name 48 "r22" + Name 52 "r23" + Name 57 "r24" + Name 62 "r30" + Name 66 "r31" + Name 71 "r32" + Name 75 "r33" + Name 80 "r34" + Name 85 "r40" + Name 89 "r41" + Name 92 "r42" + Name 95 "r43" + Name 100 "r44" + Name 105 "r50" + Name 122 "r51" + Name 125 "r61" + Name 131 "r62" + Name 136 "r65" + Name 141 "r66" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 6(float) Constant 1073741824 + 12: 6(float) Constant 1077936128 + 13: 6(float) Constant 1082130432 + 14: 7(fvec4) ConstantComposite 10 11 12 13 + 16: 6(float) Constant 1084227584 + 17: 7(fvec4) ConstantComposite 11 12 13 16 + 18: TypeBool + 19: TypePointer Function 18(bool) + 21: 18(bool) ConstantFalse + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) + 25: 22(int) Constant 1 + 26: TypePointer Function 6(float) + 28: TypeFloat 64 + 29: TypePointer Function 28(float) + 31: 28(float) Constant 0 1072693248 + 32: TypeInt 32 0 + 33: TypePointer Function 32(int) + 35: 32(int) Constant 1 + 36: TypeVector 18(bool) 2 + 37: TypePointer Function 36(bvec2) + 39: 18(bool) ConstantTrue + 40: 36(bvec2) ConstantComposite 21 39 + 41: TypeVector 22(int) 2 + 42: TypePointer Function 41(ivec2) + 44: 22(int) Constant 2 + 45: 41(ivec2) ConstantComposite 25 44 + 46: TypeVector 6(float) 2 + 47: TypePointer Function 46(fvec2) + 49: 46(fvec2) ConstantComposite 10 11 + 50: TypeVector 28(float) 2 + 51: TypePointer Function 50(fvec2) + 53: 28(float) Constant 0 1073741824 + 54: 50(fvec2) ConstantComposite 31 53 + 55: TypeVector 32(int) 2 + 56: TypePointer Function 55(ivec2) + 58: 32(int) Constant 2 + 59: 55(ivec2) ConstantComposite 35 58 + 60: TypeVector 18(bool) 3 + 61: TypePointer Function 60(bvec3) + 63: 60(bvec3) ConstantComposite 21 39 39 + 64: TypeVector 22(int) 3 + 65: TypePointer Function 64(ivec3) + 67: 22(int) Constant 3 + 68: 64(ivec3) ConstantComposite 25 44 67 + 69: TypeVector 6(float) 3 + 70: TypePointer Function 69(fvec3) + 72: 69(fvec3) ConstantComposite 10 11 12 + 73: TypeVector 28(float) 3 + 74: TypePointer Function 73(fvec3) + 76: 28(float) Constant 0 1074266112 + 77: 73(fvec3) ConstantComposite 31 53 76 + 78: TypeVector 32(int) 3 + 79: TypePointer Function 78(ivec3) + 81: 32(int) Constant 3 + 82: 78(ivec3) ConstantComposite 35 58 81 + 83: TypeVector 18(bool) 4 + 84: TypePointer Function 83(bvec4) + 86: 83(bvec4) ConstantComposite 21 39 39 21 + 87: TypeVector 22(int) 4 + 88: TypePointer Function 87(ivec4) + 90: 22(int) Constant 4 + 91: 87(ivec4) ConstantComposite 25 44 67 90 + 93: TypeVector 28(float) 4 + 94: TypePointer Function 93(fvec4) + 96: 28(float) Constant 0 1074790400 + 97: 93(fvec4) ConstantComposite 31 53 76 96 + 98: TypeVector 32(int) 4 + 99: TypePointer Function 98(ivec4) + 101: 32(int) Constant 4 + 102: 98(ivec4) ConstantComposite 35 58 81 101 + 103: TypeMatrix 7(fvec4) 4 + 104: TypePointer Function 103 + 106: 6(float) Constant 0 + 107: 7(fvec4) ConstantComposite 106 10 11 12 + 108: 6(float) Constant 1086324736 + 109: 6(float) Constant 1088421888 + 110: 7(fvec4) ConstantComposite 13 16 108 109 + 111: 6(float) Constant 1090519040 + 112: 6(float) Constant 1091567616 + 113: 6(float) Constant 1092616192 + 114: 6(float) Constant 1093664768 + 115: 7(fvec4) ConstantComposite 111 112 113 114 + 116: 6(float) Constant 1094713344 + 117: 6(float) Constant 1095761920 + 118: 6(float) Constant 1096810496 + 119: 6(float) Constant 1097859072 + 120: 7(fvec4) ConstantComposite 116 117 118 119 + 121: 103 ConstantComposite 107 110 115 120 + 123: TypeMatrix 46(fvec2) 3 + 124: TypePointer Function 123 + 126: 46(fvec2) ConstantComposite 12 13 + 127: 46(fvec2) ConstantComposite 16 108 + 128: 123 ConstantComposite 49 126 127 + 129: TypeMatrix 69(fvec3) 2 + 130: TypePointer Function 129 + 132: 69(fvec3) ConstantComposite 13 16 108 + 133: 129 ConstantComposite 72 132 + 134: TypeMatrix 7(fvec4) 2 + 135: TypePointer Function 134 + 137: 7(fvec4) ConstantComposite 16 108 109 111 + 138: 134 ConstantComposite 14 137 + 139: TypeMatrix 7(fvec4) 3 + 140: TypePointer Function 139 + 142: 7(fvec4) ConstantComposite 112 113 114 116 + 143: 139 ConstantComposite 14 137 142 + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 15(r01): 8(ptr) Variable Function + 20(r12): 19(ptr) Variable Function + 24(r13): 23(ptr) Variable Function + 27(r14): 26(ptr) Variable Function + 30(r15): 29(ptr) Variable Function + 34(r16): 33(ptr) Variable Function + 38(r20): 37(ptr) Variable Function + 43(r21): 42(ptr) Variable Function + 48(r22): 47(ptr) Variable Function + 52(r23): 51(ptr) Variable Function + 57(r24): 56(ptr) Variable Function + 62(r30): 61(ptr) Variable Function + 66(r31): 65(ptr) Variable Function + 71(r32): 70(ptr) Variable Function + 75(r33): 74(ptr) Variable Function + 80(r34): 79(ptr) Variable Function + 85(r40): 84(ptr) Variable Function + 89(r41): 88(ptr) Variable Function + 92(r42): 8(ptr) Variable Function + 95(r43): 94(ptr) Variable Function + 100(r44): 99(ptr) Variable Function + 105(r50): 104(ptr) Variable Function + 122(r51): 104(ptr) Variable Function + 125(r61): 124(ptr) Variable Function + 131(r62): 130(ptr) Variable Function + 136(r65): 135(ptr) Variable Function + 141(r66): 140(ptr) Variable Function + Store 9(r00) 14 + Store 15(r01) 17 + Store 20(r12) 21 + Store 24(r13) 25 + Store 27(r14) 10 + Store 30(r15) 31 + Store 34(r16) 35 + Store 38(r20) 40 + Store 43(r21) 45 + Store 48(r22) 49 + Store 52(r23) 54 + Store 57(r24) 59 + Store 62(r30) 63 + Store 66(r31) 68 + Store 71(r32) 72 + Store 75(r33) 77 + Store 80(r34) 82 + Store 85(r40) 86 + Store 89(r41) 91 + Store 92(r42) 14 + Store 95(r43) 97 + Store 100(r44) 102 + Store 105(r50) 121 + Store 122(r51) 121 + Store 125(r61) 128 + Store 131(r62) 133 + Store 136(r65) 138 + Store 141(r66) 143 + ReturnValue 106 + FunctionEnd diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out new file mode 100644 index 00000000..9f98c184 --- /dev/null +++ b/Test/baseResults/remap.if.everything.frag.out @@ -0,0 +1,47 @@ +remap.if.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 22855 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3773 4539 + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 650: TypePointer Input 13(float) + 3773: 650(ptr) Variable Input + 24: 13(float) Constant 1073741824 + 9: TypeBool + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 947: 13(float) Constant 3204448256 + 5663: 8 Function None 1282 + 7911: Label + 21734: 13(float) Load 3773 + 13508: 9(bool) FOrdGreaterThan 21734 24 + SelectionMerge 19578 None + BranchConditional 13508 13182 10142 + 13182: Label + 9496: 13(float) Load 3773 + 17615: 29(fvec4) CompositeConstruct 9496 9496 9496 9496 + Store 4539 17615 + Branch 19578 + 10142: Label + 22854: 13(float) Load 3773 + 9982: 13(float) FAdd 22854 947 + 12421: 29(fvec4) CompositeConstruct 9982 9982 9982 9982 + Store 4539 12421 + Branch 19578 + 19578: Label + Return + FunctionEnd diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out new file mode 100644 index 00000000..f3113a36 --- /dev/null +++ b/Test/baseResults/remap.if.none.frag.out @@ -0,0 +1,51 @@ +remap.if.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 17 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 8 "inf" + Name 17 "outf4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Input 6(float) + 8(inf): 7(ptr) Variable Input + 10: 6(float) Constant 1073741824 + 11: TypeBool + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 22: 6(float) Constant 3204448256 + 4(main): 2 Function None 3 + 5: Label + 9: 6(float) Load 8(inf) + 12: 11(bool) FOrdGreaterThan 9 10 + SelectionMerge 14 None + BranchConditional 12 13 20 + 13: Label + 18: 6(float) Load 8(inf) + 19: 15(fvec4) CompositeConstruct 18 18 18 18 + Store 17(outf4) 19 + Branch 14 + 20: Label + 21: 6(float) Load 8(inf) + 23: 6(float) FAdd 21 22 + 24: 15(fvec4) CompositeConstruct 23 23 23 23 + Store 17(outf4) 24 + Branch 14 + 14: Label + Return + FunctionEnd diff --git a/Test/baseResults/remap.literal64.everything.spv.out b/Test/baseResults/remap.literal64.everything.spv.out new file mode 100644 index 00000000..7a4f37ba --- /dev/null +++ b/Test/baseResults/remap.literal64.everything.spv.out @@ -0,0 +1,7 @@ +remap.literal64.everything.spv +// Module Version 10100 +// Generated by (magic number): 70000 +// Id's are bound by 0 + + Capability Shader + MemoryModel Logical GLSL450 diff --git a/Test/baseResults/remap.literal64.none.spv.out b/Test/baseResults/remap.literal64.none.spv.out new file mode 100644 index 00000000..792b13a6 --- /dev/null +++ b/Test/baseResults/remap.literal64.none.spv.out @@ -0,0 +1,25 @@ +remap.literal64.none.spv +// Module Version 10100 +// Generated by (magic number): 70000 +// Id's are bound by 10 + + Capability Shader + MemoryModel Logical GLSL450 + 1: TypeVoid + 2: TypeInt 64 1 + 3: TypeFunction 1 + 4: 2(int) Constant 0 0 + 5: 1 Function None 3 + 6: Label + SelectionMerge 7 None + Switch 4 7 + case 0: 0 + case 8: 1 + case 0: 9 + 8: Label + Branch 7 + 9: Label + Branch 7 + 7: Label + Return + FunctionEnd diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out new file mode 100644 index 00000000..09589f57 --- /dev/null +++ b/Test/baseResults/remap.similar_1a.everything.frag.out @@ -0,0 +1,121 @@ +remap.similar_1a.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24916 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4201 4539 3773 + ExecutionMode 5663 OriginUpperLeft + Decorate 4201 Flat + 8: TypeVoid + 1282: TypeFunction 8 + 12: TypeInt 32 1 + 649: TypePointer Function 12(int) + 13: TypeFloat 32 + 204: TypeFunction 13(float) 649(ptr) + 650: TypePointer Function 13(float) + 2572: 13(float) Constant 0 + 2571: 12(int) Constant 0 + 9: TypeBool + 252: 13(float) Constant 1056964608 + 2574: 12(int) Constant 1 + 2577: 12(int) Constant 2 + 26: TypeVector 12(int) 4 + 663: TypePointer Input 26(ivec4) + 4201: 663(ptr) Variable Input + 11: TypeInt 32 0 + 2573: 11(int) Constant 1 + 651: TypePointer Input 12(int) + 2576: 11(int) Constant 2 + 2570: 11(int) Constant 0 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 652: TypePointer Input 13(float) + 3773: 652(ptr) Variable Input + 5663: 8 Function None 1282 + 24915: Label + 18415: 649(ptr) Variable Function + 5786: 649(ptr) Variable Function + 8366: 13(float) Load 3773 + 8654: 12(int) ConvertFToS 8366 + Store 18415 8654 + 17256: 13(float) FunctionCall 3782 18415 + 14512: 13(float) Load 3773 + 7041: 12(int) ConvertFToS 14512 + Store 5786 7041 + 23993: 13(float) FunctionCall 3836 5786 + 9180: 13(float) FAdd 17256 23993 + 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 + Store 4539 15728 + Return + FunctionEnd + 3782: 13(float) Function None 204 + 6931: 649(ptr) FunctionParameter + 12220: Label + 4292: 650(ptr) Variable Function + 4298: 649(ptr) Variable Function + Store 4292 2572 + Store 4298 2571 + Branch 14924 + 14924: Label + LoopMerge 8882 6488 None + Branch 11857 + 11857: Label + 13755: 12(int) Load 4298 + 22731: 12(int) Load 6931 + 20007: 9(bool) SLessThan 13755 22731 + BranchConditional 20007 24750 8882 + 24750: Label + 22912: 13(float) Load 4292 + 19471: 13(float) FAdd 22912 252 + Store 4292 19471 + Branch 6488 + 6488: Label + 19050: 12(int) Load 4298 + 8593: 12(int) IAdd 19050 2574 + Store 4298 8593 + Branch 14924 + 8882: Label + 11601: 13(float) Load 4292 + ReturnValue 11601 + FunctionEnd + 3836: 13(float) Function None 204 + 4408: 649(ptr) FunctionParameter + 12143: Label + 22102: 649(ptr) Variable Function + 24151: 12(int) Load 4408 + 13868: 9(bool) SGreaterThan 24151 2577 + SelectionMerge 22309 None + BranchConditional 13868 9492 17416 + 9492: Label + 15624: 12(int) Load 4408 + Store 22102 15624 + 17278: 13(float) FunctionCall 3782 22102 + ReturnValue 17278 + 17416: Label + 19506: 12(int) Load 4408 + 22773: 12(int) IMul 19506 2577 + 13472: 651(ptr) AccessChain 4201 2573 + 15280: 12(int) Load 13472 + 18079: 651(ptr) AccessChain 4201 2576 + 15199: 12(int) Load 18079 + 9343: 12(int) IMul 15280 15199 + 11462: 12(int) IAdd 22773 9343 + 11885: 651(ptr) AccessChain 4201 2570 + 21176: 12(int) Load 11885 + 10505: 12(int) IAdd 11462 21176 + 14626: 13(float) ConvertSToF 10505 + ReturnValue 14626 + 22309: Label + 6429: 13(float) Undef + ReturnValue 6429 + FunctionEnd diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out new file mode 100644 index 00000000..17484512 --- /dev/null +++ b/Test/baseResults/remap.similar_1a.none.frag.out @@ -0,0 +1,135 @@ +remap.similar_1a.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 82 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 50 69 71 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 11 "Test1(i1;" + Name 10 "bound" + Name 14 "Test2(i1;" + Name 13 "bound" + Name 17 "r" + Name 19 "x" + Name 42 "param" + Name 50 "ini4" + Name 69 "outf4" + Name 71 "inf" + Name 74 "param" + Name 78 "param" + Decorate 50(ini4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeFunction 8(float) 7(ptr) + 16: TypePointer Function 8(float) + 18: 8(float) Constant 0 + 20: 6(int) Constant 0 + 28: TypeBool + 30: 8(float) Constant 1056964608 + 34: 6(int) Constant 1 + 38: 6(int) Constant 2 + 48: TypeVector 6(int) 4 + 49: TypePointer Input 48(ivec4) + 50(ini4): 49(ptr) Variable Input + 51: TypeInt 32 0 + 52: 51(int) Constant 1 + 53: TypePointer Input 6(int) + 56: 51(int) Constant 2 + 61: 51(int) Constant 0 + 67: TypeVector 8(float) 4 + 68: TypePointer Output 67(fvec4) + 69(outf4): 68(ptr) Variable Output + 70: TypePointer Input 8(float) + 71(inf): 70(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 74(param): 7(ptr) Variable Function + 78(param): 7(ptr) Variable Function + 72: 8(float) Load 71(inf) + 73: 6(int) ConvertFToS 72 + Store 74(param) 73 + 75: 8(float) FunctionCall 11(Test1(i1;) 74(param) + 76: 8(float) Load 71(inf) + 77: 6(int) ConvertFToS 76 + Store 78(param) 77 + 79: 8(float) FunctionCall 14(Test2(i1;) 78(param) + 80: 8(float) FAdd 75 79 + 81: 67(fvec4) CompositeConstruct 80 80 80 80 + Store 69(outf4) 81 + Return + FunctionEnd + 11(Test1(i1;): 8(float) Function None 9 + 10(bound): 7(ptr) FunctionParameter + 12: Label + 17(r): 16(ptr) Variable Function + 19(x): 7(ptr) Variable Function + Store 17(r) 18 + Store 19(x) 20 + Branch 21 + 21: Label + LoopMerge 23 24 None + Branch 25 + 25: Label + 26: 6(int) Load 19(x) + 27: 6(int) Load 10(bound) + 29: 28(bool) SLessThan 26 27 + BranchConditional 29 22 23 + 22: Label + 31: 8(float) Load 17(r) + 32: 8(float) FAdd 31 30 + Store 17(r) 32 + Branch 24 + 24: Label + 33: 6(int) Load 19(x) + 35: 6(int) IAdd 33 34 + Store 19(x) 35 + Branch 21 + 23: Label + 36: 8(float) Load 17(r) + ReturnValue 36 + FunctionEnd + 14(Test2(i1;): 8(float) Function None 9 + 13(bound): 7(ptr) FunctionParameter + 15: Label + 42(param): 7(ptr) Variable Function + 37: 6(int) Load 13(bound) + 39: 28(bool) SGreaterThan 37 38 + SelectionMerge 41 None + BranchConditional 39 40 45 + 40: Label + 43: 6(int) Load 13(bound) + Store 42(param) 43 + 44: 8(float) FunctionCall 11(Test1(i1;) 42(param) + ReturnValue 44 + 45: Label + 46: 6(int) Load 13(bound) + 47: 6(int) IMul 46 38 + 54: 53(ptr) AccessChain 50(ini4) 52 + 55: 6(int) Load 54 + 57: 53(ptr) AccessChain 50(ini4) 56 + 58: 6(int) Load 57 + 59: 6(int) IMul 55 58 + 60: 6(int) IAdd 47 59 + 62: 53(ptr) AccessChain 50(ini4) 61 + 63: 6(int) Load 62 + 64: 6(int) IAdd 60 63 + 65: 8(float) ConvertSToF 64 + ReturnValue 65 + 41: Label + 66: 8(float) Undef + ReturnValue 66 + FunctionEnd diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out new file mode 100644 index 00000000..d05be117 --- /dev/null +++ b/Test/baseResults/remap.similar_1b.everything.frag.out @@ -0,0 +1,127 @@ +remap.similar_1b.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24916 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 4201 4539 3773 + ExecutionMode 5663 OriginUpperLeft + Decorate 4201 Flat + 8: TypeVoid + 1282: TypeFunction 8 + 12: TypeInt 32 1 + 649: TypePointer Function 12(int) + 13: TypeFloat 32 + 204: TypeFunction 13(float) 649(ptr) + 650: TypePointer Function 13(float) + 2572: 13(float) Constant 0 + 2571: 12(int) Constant 0 + 9: TypeBool + 252: 13(float) Constant 1056964608 + 2574: 12(int) Constant 1 + 2821: 13(float) Constant 1045220557 + 2577: 12(int) Constant 2 + 2583: 12(int) Constant 4 + 26: TypeVector 12(int) 4 + 663: TypePointer Input 26(ivec4) + 4201: 663(ptr) Variable Input + 11: TypeInt 32 0 + 2573: 11(int) Constant 1 + 651: TypePointer Input 12(int) + 2576: 11(int) Constant 2 + 2570: 11(int) Constant 0 + 29: TypeVector 13(float) 4 + 666: TypePointer Output 29(fvec4) + 4539: 666(ptr) Variable Output + 652: TypePointer Input 13(float) + 3773: 652(ptr) Variable Input + 5663: 8 Function None 1282 + 24915: Label + 18415: 649(ptr) Variable Function + 5786: 649(ptr) Variable Function + 8366: 13(float) Load 3773 + 8654: 12(int) ConvertFToS 8366 + Store 18415 8654 + 17256: 13(float) FunctionCall 3782 18415 + 14512: 13(float) Load 3773 + 7041: 12(int) ConvertFToS 14512 + Store 5786 7041 + 23993: 13(float) FunctionCall 3836 5786 + 9180: 13(float) FAdd 17256 23993 + 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 + Store 4539 15728 + Return + FunctionEnd + 3782: 13(float) Function None 204 + 6931: 649(ptr) FunctionParameter + 12220: Label + 4292: 650(ptr) Variable Function + 4298: 649(ptr) Variable Function + Store 4292 2572 + Store 4298 2571 + Branch 14924 + 14924: Label + LoopMerge 6507 6488 None + Branch 11857 + 11857: Label + 13755: 12(int) Load 4298 + 22731: 12(int) Load 6931 + 20007: 9(bool) SLessThan 13755 22731 + BranchConditional 20007 24750 6507 + 24750: Label + 22912: 13(float) Load 4292 + 19471: 13(float) FAdd 22912 252 + Store 4292 19471 + Branch 6488 + 6488: Label + 19050: 12(int) Load 4298 + 8593: 12(int) IAdd 19050 2574 + Store 4298 8593 + Branch 14924 + 6507: Label + 18877: 13(float) Load 4292 + 15899: 13(float) FAdd 18877 2821 + Store 4292 15899 + 20342: 13(float) Load 4292 + ReturnValue 20342 + FunctionEnd + 3836: 13(float) Function None 204 + 4408: 649(ptr) FunctionParameter + 12143: Label + 22102: 649(ptr) Variable Function + 24151: 12(int) Load 4408 + 13868: 9(bool) SGreaterThan 24151 2577 + SelectionMerge 22309 None + BranchConditional 13868 10822 17416 + 10822: Label + 22680: 12(int) Load 4408 + 23216: 12(int) IMul 22680 2577 + Store 22102 23216 + 7042: 13(float) FunctionCall 3782 22102 + ReturnValue 7042 + 17416: Label + 19506: 12(int) Load 4408 + 22773: 12(int) IMul 19506 2583 + 13472: 651(ptr) AccessChain 4201 2573 + 15280: 12(int) Load 13472 + 18079: 651(ptr) AccessChain 4201 2576 + 15199: 12(int) Load 18079 + 9343: 12(int) IMul 15280 15199 + 11462: 12(int) IAdd 22773 9343 + 11885: 651(ptr) AccessChain 4201 2570 + 21176: 12(int) Load 11885 + 10505: 12(int) IAdd 11462 21176 + 14626: 13(float) ConvertSToF 10505 + ReturnValue 14626 + 22309: Label + 6429: 13(float) Undef + ReturnValue 6429 + FunctionEnd diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out new file mode 100644 index 00000000..f9bf0847 --- /dev/null +++ b/Test/baseResults/remap.similar_1b.none.frag.out @@ -0,0 +1,141 @@ +remap.similar_1b.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 87 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 55 74 76 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 11 "Test1(i1;" + Name 10 "bound" + Name 14 "Test2(i1;" + Name 13 "bound" + Name 17 "r" + Name 19 "x" + Name 47 "param" + Name 55 "ini4" + Name 74 "outf4" + Name 76 "inf" + Name 79 "param" + Name 83 "param" + Decorate 55(ini4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeFunction 8(float) 7(ptr) + 16: TypePointer Function 8(float) + 18: 8(float) Constant 0 + 20: 6(int) Constant 0 + 28: TypeBool + 30: 8(float) Constant 1056964608 + 34: 6(int) Constant 1 + 36: 8(float) Constant 1045220557 + 41: 6(int) Constant 2 + 51: 6(int) Constant 4 + 53: TypeVector 6(int) 4 + 54: TypePointer Input 53(ivec4) + 55(ini4): 54(ptr) Variable Input + 56: TypeInt 32 0 + 57: 56(int) Constant 1 + 58: TypePointer Input 6(int) + 61: 56(int) Constant 2 + 66: 56(int) Constant 0 + 72: TypeVector 8(float) 4 + 73: TypePointer Output 72(fvec4) + 74(outf4): 73(ptr) Variable Output + 75: TypePointer Input 8(float) + 76(inf): 75(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 79(param): 7(ptr) Variable Function + 83(param): 7(ptr) Variable Function + 77: 8(float) Load 76(inf) + 78: 6(int) ConvertFToS 77 + Store 79(param) 78 + 80: 8(float) FunctionCall 11(Test1(i1;) 79(param) + 81: 8(float) Load 76(inf) + 82: 6(int) ConvertFToS 81 + Store 83(param) 82 + 84: 8(float) FunctionCall 14(Test2(i1;) 83(param) + 85: 8(float) FAdd 80 84 + 86: 72(fvec4) CompositeConstruct 85 85 85 85 + Store 74(outf4) 86 + Return + FunctionEnd + 11(Test1(i1;): 8(float) Function None 9 + 10(bound): 7(ptr) FunctionParameter + 12: Label + 17(r): 16(ptr) Variable Function + 19(x): 7(ptr) Variable Function + Store 17(r) 18 + Store 19(x) 20 + Branch 21 + 21: Label + LoopMerge 23 24 None + Branch 25 + 25: Label + 26: 6(int) Load 19(x) + 27: 6(int) Load 10(bound) + 29: 28(bool) SLessThan 26 27 + BranchConditional 29 22 23 + 22: Label + 31: 8(float) Load 17(r) + 32: 8(float) FAdd 31 30 + Store 17(r) 32 + Branch 24 + 24: Label + 33: 6(int) Load 19(x) + 35: 6(int) IAdd 33 34 + Store 19(x) 35 + Branch 21 + 23: Label + 37: 8(float) Load 17(r) + 38: 8(float) FAdd 37 36 + Store 17(r) 38 + 39: 8(float) Load 17(r) + ReturnValue 39 + FunctionEnd + 14(Test2(i1;): 8(float) Function None 9 + 13(bound): 7(ptr) FunctionParameter + 15: Label + 47(param): 7(ptr) Variable Function + 40: 6(int) Load 13(bound) + 42: 28(bool) SGreaterThan 40 41 + SelectionMerge 44 None + BranchConditional 42 43 49 + 43: Label + 45: 6(int) Load 13(bound) + 46: 6(int) IMul 45 41 + Store 47(param) 46 + 48: 8(float) FunctionCall 11(Test1(i1;) 47(param) + ReturnValue 48 + 49: Label + 50: 6(int) Load 13(bound) + 52: 6(int) IMul 50 51 + 59: 58(ptr) AccessChain 55(ini4) 57 + 60: 6(int) Load 59 + 62: 58(ptr) AccessChain 55(ini4) 61 + 63: 6(int) Load 62 + 64: 6(int) IMul 60 63 + 65: 6(int) IAdd 52 64 + 67: 58(ptr) AccessChain 55(ini4) 66 + 68: 6(int) Load 67 + 69: 6(int) IAdd 65 68 + 70: 8(float) ConvertSToF 69 + ReturnValue 70 + 44: Label + 71: 8(float) Undef + ReturnValue 71 + FunctionEnd diff --git a/Test/baseResults/remap.switch.everything.frag.out b/Test/baseResults/remap.switch.everything.frag.out new file mode 100644 index 00000000..a1d9b0d9 --- /dev/null +++ b/Test/baseResults/remap.switch.everything.frag.out @@ -0,0 +1,81 @@ +remap.switch.everything.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 23990 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3719 3994 + ExecutionMode 5663 OriginUpperLeft + Decorate 3719 Location 0 + Decorate 3994 RelaxedPrecision + Decorate 3994 Location 0 + Decorate 12421 RelaxedPrecision + Decorate 12422 RelaxedPrecision + Decorate 12423 RelaxedPrecision + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Input 29(fvec4) + 3719: 666(ptr) Variable Input + 11: TypeInt 32 0 + 2579: 11(int) Constant 3 + 650: TypePointer Input 13(float) + 12: TypeInt 32 1 + 667: TypePointer Output 29(fvec4) + 3994: 667(ptr) Variable Output + 2570: 11(int) Constant 0 + 2572: 13(float) Constant 0 + 2573: 11(int) Constant 1 + 138: 13(float) Constant 1065353216 + 2576: 11(int) Constant 2 + 24: 13(float) Constant 1073741824 + 833: 13(float) Constant 3212836864 + 1284: 29(fvec4) ConstantComposite 833 833 833 833 + 5663: 8 Function None 1282 + 23915: Label + 7984: 650(ptr) AccessChain 3719 2579 + 11376: 13(float) Load 7984 + 16859: 12(int) ConvertFToS 11376 + SelectionMerge 19578 None + Switch 16859 15971 + case 0: 8158 + case 1: 8159 + case 2: 8160 + 15971: Label + Store 3994 1284 + Branch 19578 + 8158: Label + 21848: 650(ptr) AccessChain 3719 2570 + 23987: 13(float) Load 21848 + 19989: 13(float) FAdd 23987 2572 + 12421: 29(fvec4) CompositeConstruct 19989 19989 19989 19989 + Store 3994 12421 + Branch 19578 + 8159: Label + 21849: 650(ptr) AccessChain 3719 2573 + 23988: 13(float) Load 21849 + 19990: 13(float) FAdd 23988 138 + 12422: 29(fvec4) CompositeConstruct 19990 19990 19990 19990 + Store 3994 12422 + Branch 19578 + 8160: Label + 21850: 650(ptr) AccessChain 3719 2576 + 23989: 13(float) Load 21850 + 19991: 13(float) FAdd 23989 24 + 12423: 29(fvec4) CompositeConstruct 19991 19991 19991 19991 + Store 3994 12423 + Branch 19578 + 19578: Label + Return + FunctionEnd diff --git a/Test/baseResults/remap.switch.none.frag.out b/Test/baseResults/remap.switch.none.frag.out new file mode 100644 index 00000000..7fc8f04b --- /dev/null +++ b/Test/baseResults/remap.switch.none.frag.out @@ -0,0 +1,85 @@ +remap.switch.none.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: + "precision mediump int; precision highp float;" + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 44 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 23 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "in0" + Name 23 "FragColor" + Decorate 9(in0) Location 0 + Decorate 23(FragColor) RelaxedPrecision + Decorate 23(FragColor) Location 0 + Decorate 29 RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 41 RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Input 7(fvec4) + 9(in0): 8(ptr) Variable Input + 10: TypeInt 32 0 + 11: 10(int) Constant 3 + 12: TypePointer Input 6(float) + 15: TypeInt 32 1 + 22: TypePointer Output 7(fvec4) + 23(FragColor): 22(ptr) Variable Output + 24: 10(int) Constant 0 + 27: 6(float) Constant 0 + 30: 10(int) Constant 1 + 33: 6(float) Constant 1065353216 + 36: 10(int) Constant 2 + 39: 6(float) Constant 1073741824 + 42: 6(float) Constant 3212836864 + 43: 7(fvec4) ConstantComposite 42 42 42 42 + 4(main): 2 Function None 3 + 5: Label + 13: 12(ptr) AccessChain 9(in0) 11 + 14: 6(float) Load 13 + 16: 15(int) ConvertFToS 14 + SelectionMerge 21 None + Switch 16 20 + case 0: 17 + case 1: 18 + case 2: 19 + 20: Label + Store 23(FragColor) 43 + Branch 21 + 17: Label + 25: 12(ptr) AccessChain 9(in0) 24 + 26: 6(float) Load 25 + 28: 6(float) FAdd 26 27 + 29: 7(fvec4) CompositeConstruct 28 28 28 28 + Store 23(FragColor) 29 + Branch 21 + 18: Label + 31: 12(ptr) AccessChain 9(in0) 30 + 32: 6(float) Load 31 + 34: 6(float) FAdd 32 33 + 35: 7(fvec4) CompositeConstruct 34 34 34 34 + Store 23(FragColor) 35 + Branch 21 + 19: Label + 37: 12(ptr) AccessChain 9(in0) 36 + 38: 6(float) Load 37 + 40: 6(float) FAdd 38 39 + 41: 7(fvec4) CompositeConstruct 40 40 40 40 + Store 23(FragColor) 41 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out new file mode 100644 index 00000000..18defecb --- /dev/null +++ b/Test/baseResults/remap.uniformarray.everything.frag.out @@ -0,0 +1,67 @@ +remap.uniformarray.everything.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 25030 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 5663 "main" 3608 4957 4339 5139 + ExecutionMode 5663 OriginUpperLeft + 8: TypeVoid + 1282: TypeFunction 8 + 13: TypeFloat 32 + 29: TypeVector 13(float) 4 + 666: TypePointer Function 29(fvec4) + 11: TypeInt 32 0 + 2588: 11(int) Constant 6 + 740: TypeArray 29(fvec4) 2588 + 1377: TypePointer Input 740 + 3608: 1377(ptr) Variable Input + 12: TypeInt 32 1 + 2574: 12(int) Constant 1 + 667: TypePointer Input 29(fvec4) + 24: TypeVector 13(float) 3 + 661: TypePointer Input 24(fvec3) + 4957: 661(ptr) Variable Input + 2618: 11(int) Constant 16 + 669: TypeArray 13(float) 2618 + 1306: TypePointer Input 669 + 4339: 1306(ptr) Variable Input + 2607: 12(int) Constant 12 + 650: TypePointer Input 13(float) + 2579: 11(int) Constant 3 + 651: TypePointer Function 13(float) + 668: TypePointer Output 29(fvec4) + 5139: 668(ptr) Variable Output + 5663: 8 Function None 1282 + 25029: Label + 4902: 666(ptr) Variable Function + 10645: 667(ptr) AccessChain 3608 2574 + 8181: 29(fvec4) Load 10645 + 21370: 667(ptr) AccessChain 3608 2574 + 11355: 29(fvec4) Load 21370 + 23084: 29(fvec4) FAdd 8181 11355 + Store 4902 23084 + 21218: 24(fvec3) Load 4957 + 13695: 29(fvec4) Load 4902 + 23883: 24(fvec3) VectorShuffle 13695 13695 0 1 2 + 15591: 24(fvec3) FAdd 23883 21218 + 17086: 29(fvec4) Load 4902 + 7051: 29(fvec4) VectorShuffle 17086 15591 4 5 6 3 + Store 4902 7051 + 18282: 650(ptr) AccessChain 4339 2607 + 7372: 13(float) Load 18282 + 21371: 651(ptr) AccessChain 4902 2579 + 11412: 13(float) Load 21371 + 22584: 13(float) FAdd 11412 7372 + 17318: 651(ptr) AccessChain 4902 2579 + Store 17318 22584 + 17934: 29(fvec4) Load 4902 + Store 5139 17934 + Return + FunctionEnd diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out new file mode 100644 index 00000000..ff2489e3 --- /dev/null +++ b/Test/baseResults/remap.uniformarray.none.frag.out @@ -0,0 +1,80 @@ +remap.uniformarray.none.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 53 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 25 35 47 + ExecutionMode 4 OriginUpperLeft + Source GLSL 140 + Name 4 "main" + Name 9 "texColor" + Name 14 "color" + Name 25 "inColor" + Name 35 "alpha" + Name 47 "gl_FragColor" + Name 52 "texSampler2D" + Decorate 52(texSampler2D) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeInt 32 0 + 11: 10(int) Constant 6 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Input 12 + 14(color): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Input 7(fvec4) + 23: TypeVector 6(float) 3 + 24: TypePointer Input 23(fvec3) + 25(inColor): 24(ptr) Variable Input + 32: 10(int) Constant 16 + 33: TypeArray 6(float) 32 + 34: TypePointer Input 33 + 35(alpha): 34(ptr) Variable Input + 36: 15(int) Constant 12 + 37: TypePointer Input 6(float) + 40: 10(int) Constant 3 + 41: TypePointer Function 6(float) + 46: TypePointer Output 7(fvec4) +47(gl_FragColor): 46(ptr) Variable Output + 49: TypeImage 6(float) 2D sampled format:Unknown + 50: TypeSampledImage 49 + 51: TypePointer UniformConstant 50 +52(texSampler2D): 51(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(texColor): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(color) 16 + 19: 7(fvec4) Load 18 + 20: 17(ptr) AccessChain 14(color) 16 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 19 21 + Store 9(texColor) 22 + 26: 23(fvec3) Load 25(inColor) + 27: 7(fvec4) Load 9(texColor) + 28: 23(fvec3) VectorShuffle 27 27 0 1 2 + 29: 23(fvec3) FAdd 28 26 + 30: 7(fvec4) Load 9(texColor) + 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 + Store 9(texColor) 31 + 38: 37(ptr) AccessChain 35(alpha) 36 + 39: 6(float) Load 38 + 42: 41(ptr) AccessChain 9(texColor) 40 + 43: 6(float) Load 42 + 44: 6(float) FAdd 43 39 + 45: 41(ptr) AccessChain 9(texColor) 40 + Store 45 44 + 48: 7(fvec4) Load 9(texColor) + Store 47(gl_FragColor) 48 + Return + FunctionEnd diff --git a/Test/remap.basic.dcefunc.frag b/Test/remap.basic.dcefunc.frag new file mode 100644 index 00000000..714120ab --- /dev/null +++ b/Test/remap.basic.dcefunc.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/Test/remap.basic.everything.frag b/Test/remap.basic.everything.frag new file mode 100644 index 00000000..714120ab --- /dev/null +++ b/Test/remap.basic.everything.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/Test/remap.basic.none.frag b/Test/remap.basic.none.frag new file mode 100644 index 00000000..714120ab --- /dev/null +++ b/Test/remap.basic.none.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/Test/remap.basic.strip.frag b/Test/remap.basic.strip.frag new file mode 100644 index 00000000..714120ab --- /dev/null +++ b/Test/remap.basic.strip.frag @@ -0,0 +1,11 @@ +#version 450 + +in float inf; +out vec4 outf4; + +vec3 dead_fn() { return vec3(0); } + +void main() +{ + outf4 = vec4(inf); +} diff --git a/Test/remap.hlsl.sample.basic.everything.frag b/Test/remap.hlsl.sample.basic.everything.frag new file mode 100644 index 00000000..03e83ef9 --- /dev/null +++ b/Test/remap.hlsl.sample.basic.everything.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/remap.hlsl.sample.basic.none.frag b/Test/remap.hlsl.sample.basic.none.frag new file mode 100644 index 00000000..03e83ef9 --- /dev/null +++ b/Test/remap.hlsl.sample.basic.none.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/remap.hlsl.sample.basic.strip.frag b/Test/remap.hlsl.sample.basic.strip.frag new file mode 100644 index 00000000..03e83ef9 --- /dev/null +++ b/Test/remap.hlsl.sample.basic.strip.frag @@ -0,0 +1,90 @@ +SamplerState g_sSamp : register(s0); +uniform sampler2D g_sSamp2d +{ + AddressU = MIRROR; + AddressV = WRAP; + MinLOD = 0; + MaxLOD = 10; + MaxAnisotropy = 2; + MipLodBias = 0.2; +}, g_sSamp2D_b; + +Texture1D g_tTex1df4a : register(t1); + +uniform Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +TextureCube g_tTexcdf4; +TextureCube g_tTexcdi4; +TextureCube g_tTexcdu4; + +struct MemberTest +{ + int Sample; // in HLSL, method names are valid struct members. + int CalculateLevelOfDetail; // ... + int CalculateLevelOfDetailUnclamped; // ... + int Gather; // ... + int GetDimensions; // ... + int GetSamplePosition; // ... + int Load; // ... + int SampleBias; // ... + int SampleCmp; // ... + int SampleCmpLevelZero; // ... + int SampleGrad; // ... + int SampleLevel; // ... +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + MemberTest mtest; + mtest.CalculateLevelOfDetail = 1; // in HLSL, method names are valid struct members. + mtest.CalculateLevelOfDetailUnclamped = 1; // ... + mtest.Gather = 1; // ... + mtest.GetDimensions = 1; // ... + mtest.GetSamplePosition = 1; // ... + mtest.Load = 1; // ... + mtest.Sample = 1; // ... + mtest.SampleBias = 1; // ... + mtest.SampleCmp = 1; // ... + mtest.SampleCmpLevelZero = 1; // ... + mtest.SampleGrad = 1; // ... + mtest.SampleLevel = 1; // ... + + float4 txval10 = g_tTex1df4 . Sample(g_sSamp, 0.1); + int4 txval11 = g_tTex1di4 . Sample(g_sSamp, 0.2); + uint4 txval12 = g_tTex1du4 . Sample(g_sSamp, 0.3); + + float4 txval20 = g_tTex2df4 . Sample(g_sSamp, float2(0.1, 0.2)); + int4 txval21 = g_tTex2di4 . Sample(g_sSamp, float2(0.3, 0.4)); + uint4 txval22 = g_tTex2du4 . Sample(g_sSamp, float2(0.5, 0.6)); + + float4 txval30 = g_tTex3df4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval31 = g_tTex3di4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval32 = g_tTex3du4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + float4 txval40 = g_tTexcdf4 . Sample(g_sSamp, float3(0.1, 0.2, 0.3)); + int4 txval41 = g_tTexcdi4 . Sample(g_sSamp, float3(0.4, 0.5, 0.6)); + uint4 txval42 = g_tTexcdu4 . Sample(g_sSamp, float3(0.7, 0.8, 0.9)); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/remap.hlsl.templatetypes.everything.frag b/Test/remap.hlsl.templatetypes.everything.frag new file mode 100644 index 00000000..bacd6f56 --- /dev/null +++ b/Test/remap.hlsl.templatetypes.everything.frag @@ -0,0 +1,47 @@ + +float4 main(float4 input) : COLOR0 +{ + vector r00 = float4(1,2,3,4); // vector means float4 + float4 r01 = vector(2,3,4,5); // vector means float4 + + vector r12 = bool1(false); + vector r13 = int1(1); + vector r14 = float1(1); + vector r15 = double1(1); + vector r16 = uint1(1); + + vector r20 = bool2(false, true); + vector r21 = int2(1,2); + vector r22 = float2(1,2); + vector r23 = double2(1,2); + vector r24 = uint2(1,2); + + vector r30 = bool3(false, true, true); + vector r31 = int3(1,2,3); + vector r32 = float3(1,2,3); + vector r33 = double3(1,2,3); + vector r34 = uint3(1,2,3); + + vector r40 = bool4(false, true, true, false); + vector r41 = int4(1,2,3,4); + vector r42 = float4(1,2,3,4); + vector r43 = double4(1,2,3,4); + vector r44 = uint4(1,2,3,4); + + matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + + // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: + matrix r61 = float2x3(1,2,3,4,5,6); + matrix r62 = float3x2(1,2,3,4,5,6); + // matrix r63 = float4x1(1,2,3,4); // TODO: + // matrix r64 = float1x4(1,2,3,4); // TODO: + matrix r65 = float4x2(1,2,3,4,5,6,7,8); + matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); + + // TODO: bool mats + // TODO: int mats + + return 0.0; +} + diff --git a/Test/remap.hlsl.templatetypes.none.frag b/Test/remap.hlsl.templatetypes.none.frag new file mode 100644 index 00000000..bacd6f56 --- /dev/null +++ b/Test/remap.hlsl.templatetypes.none.frag @@ -0,0 +1,47 @@ + +float4 main(float4 input) : COLOR0 +{ + vector r00 = float4(1,2,3,4); // vector means float4 + float4 r01 = vector(2,3,4,5); // vector means float4 + + vector r12 = bool1(false); + vector r13 = int1(1); + vector r14 = float1(1); + vector r15 = double1(1); + vector r16 = uint1(1); + + vector r20 = bool2(false, true); + vector r21 = int2(1,2); + vector r22 = float2(1,2); + vector r23 = double2(1,2); + vector r24 = uint2(1,2); + + vector r30 = bool3(false, true, true); + vector r31 = int3(1,2,3); + vector r32 = float3(1,2,3); + vector r33 = double3(1,2,3); + vector r34 = uint3(1,2,3); + + vector r40 = bool4(false, true, true, false); + vector r41 = int4(1,2,3,4); + vector r42 = float4(1,2,3,4); + vector r43 = double4(1,2,3,4); + vector r44 = uint4(1,2,3,4); + + matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + + // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: + matrix r61 = float2x3(1,2,3,4,5,6); + matrix r62 = float3x2(1,2,3,4,5,6); + // matrix r63 = float4x1(1,2,3,4); // TODO: + // matrix r64 = float1x4(1,2,3,4); // TODO: + matrix r65 = float4x2(1,2,3,4,5,6,7,8); + matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); + + // TODO: bool mats + // TODO: int mats + + return 0.0; +} + diff --git a/Test/remap.if.everything.frag b/Test/remap.if.everything.frag new file mode 100644 index 00000000..3fedfc43 --- /dev/null +++ b/Test/remap.if.everything.frag @@ -0,0 +1,12 @@ +#version 450 + +in float inf; +out vec4 outf4; + +void main() +{ + if (inf > 2.0) + outf4 = vec4(inf); + else + outf4 = vec4(inf + -.5); +} diff --git a/Test/remap.if.none.frag b/Test/remap.if.none.frag new file mode 100644 index 00000000..3fedfc43 --- /dev/null +++ b/Test/remap.if.none.frag @@ -0,0 +1,12 @@ +#version 450 + +in float inf; +out vec4 outf4; + +void main() +{ + if (inf > 2.0) + outf4 = vec4(inf); + else + outf4 = vec4(inf + -.5); +} diff --git a/Test/remap.literal64.everything.spv b/Test/remap.literal64.everything.spv new file mode 100644 index 0000000000000000000000000000000000000000..88103c4948834f038fa16ed1d6a290bc1d812b50 GIT binary patch literal 220 zcmYk0%?g7s5QHc3C&q&y;scZ(dzT*j{x8&u6gpps*o94Iznuwb;yoz@NlBwmYE~3v zQd4I1QrW83N_x5BH+yiQAL`1kwLWVzW7k!H_hVP@`|V_^{80AG{Nk#?k}Q?oHY!5@Cx7n literal 0 HcmV?d00001 diff --git a/Test/remap.literal64.none.spv b/Test/remap.literal64.none.spv new file mode 100644 index 0000000000000000000000000000000000000000..88103c4948834f038fa16ed1d6a290bc1d812b50 GIT binary patch literal 220 zcmYk0%?g7s5QHc3C&q&y;scZ(dzT*j{x8&u6gpps*o94Iznuwb;yoz@NlBwmYE~3v zQd4I1QrW83N_x5BH+yiQAL`1kwLWVzW7k!H_hVP@`|V_^{80AG{Nk#?k}Q?oHY!5@Cx7n literal 0 HcmV?d00001 diff --git a/Test/remap.similar_1a.everything.frag b/Test/remap.similar_1a.everything.frag new file mode 100644 index 00000000..6eddbc51 --- /dev/null +++ b/Test/remap.similar_1a.everything.frag @@ -0,0 +1,29 @@ +#version 450 + +in float inf; +in flat ivec4 ini4; +out vec4 outf4; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) + return Test1(bound); + else + return float(bound * 2 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/Test/remap.similar_1a.none.frag b/Test/remap.similar_1a.none.frag new file mode 100644 index 00000000..6eddbc51 --- /dev/null +++ b/Test/remap.similar_1a.none.frag @@ -0,0 +1,29 @@ +#version 450 + +in float inf; +in flat ivec4 ini4; +out vec4 outf4; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) + return Test1(bound); + else + return float(bound * 2 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/Test/remap.similar_1b.everything.frag b/Test/remap.similar_1b.everything.frag new file mode 100644 index 00000000..46009451 --- /dev/null +++ b/Test/remap.similar_1b.everything.frag @@ -0,0 +1,30 @@ +#version 450 + +out vec4 outf4; +in flat ivec4 ini4; +in float inf; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) { + return Test1(bound * 2); + } else + return float(bound * 4 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/Test/remap.similar_1b.none.frag b/Test/remap.similar_1b.none.frag new file mode 100644 index 00000000..46009451 --- /dev/null +++ b/Test/remap.similar_1b.none.frag @@ -0,0 +1,30 @@ +#version 450 + +out vec4 outf4; +in flat ivec4 ini4; +in float inf; + +float Test1(int bound) +{ + float r = 0; + for (int x=0; x 2) { + return Test1(bound * 2); + } else + return float(bound * 4 + + ini4.y * ini4.z + + ini4.x); +} + +void main() +{ + outf4 = vec4(Test1(int(inf)) + + Test2(int(inf))); +} diff --git a/Test/remap.switch.everything.frag b/Test/remap.switch.everything.frag new file mode 100644 index 00000000..140c0792 --- /dev/null +++ b/Test/remap.switch.everything.frag @@ -0,0 +1,16 @@ +#version 450 + +precision highp float; + +layout(location = 0) out mediump vec4 FragColor; +layout(location = 0) in vec4 in0; + +void main() +{ + switch(int(in0.w)) { + case 0: FragColor = vec4(in0.x + 0); break; + case 1: FragColor = vec4(in0.y + 1); break; + case 2: FragColor = vec4(in0.z + 2); break; + default: FragColor = vec4(-1); + } +} diff --git a/Test/remap.switch.none.frag b/Test/remap.switch.none.frag new file mode 100644 index 00000000..140c0792 --- /dev/null +++ b/Test/remap.switch.none.frag @@ -0,0 +1,16 @@ +#version 450 + +precision highp float; + +layout(location = 0) out mediump vec4 FragColor; +layout(location = 0) in vec4 in0; + +void main() +{ + switch(int(in0.w)) { + case 0: FragColor = vec4(in0.x + 0); break; + case 1: FragColor = vec4(in0.y + 1); break; + case 2: FragColor = vec4(in0.z + 2); break; + default: FragColor = vec4(-1); + } +} diff --git a/Test/remap.uniformarray.everything.frag b/Test/remap.uniformarray.everything.frag new file mode 100644 index 00000000..4f642e6e --- /dev/null +++ b/Test/remap.uniformarray.everything.frag @@ -0,0 +1,17 @@ +#version 140 + +uniform sampler2D texSampler2D; +in vec3 inColor; +in vec4 color[6]; +in float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/Test/remap.uniformarray.none.frag b/Test/remap.uniformarray.none.frag new file mode 100644 index 00000000..4f642e6e --- /dev/null +++ b/Test/remap.uniformarray.none.frag @@ -0,0 +1,17 @@ +#version 140 + +uniform sampler2D texSampler2D; +in vec3 inColor; +in vec4 color[6]; +in float alpha[16]; + +void main() +{ + vec4 texColor = color[1] + color[1]; + + texColor.xyz += inColor; + + texColor.a += alpha[12]; + + gl_FragColor = texColor; +} diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index 4aafd11f..2b301836 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -37,4 +37,37 @@ if (TARGET gmock) glslang OSDependent OGLCompiler HLSL glslang SPIRV glslang-default-resource-limits gmock) add_test(NAME glslang-gtests COMMAND glslangtests) + + # -- Remapper tests + set(REMAPPER_TEST_SOURCES + # Framework related source files + ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h + ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h + + # Test related source files + ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp + ) + + add_executable(remappertests ${REMAPPER_TEST_SOURCES}) + set_property(TARGET remappertests PROPERTY FOLDER tests) + glslang_set_link_args(remappertests) + install(TARGETS remappertests + RUNTIME DESTINATION bin) + + target_compile_definitions(remappertests + PRIVATE GLSLANG_TEST_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/../Test") + target_include_directories(remappertests PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR} + ${gmock_SOURCE_DIR}/include + ${gtest_SOURCE_DIR}/include) + target_link_libraries(remappertests PRIVATE + SPVRemapper + glslang OSDependent OGLCompiler HLSL glslang + SPIRV glslang-default-resource-limits gmock) + add_test(NAME remapper-gtests COMMAND remappertests) endif() diff --git a/gtests/Remap.FromFile.cpp b/gtests/Remap.FromFile.cpp new file mode 100644 index 00000000..cd246ea2 --- /dev/null +++ b/gtests/Remap.FromFile.cpp @@ -0,0 +1,117 @@ +// +// Copyright (C) 2016 LunarG, Inc. +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +#include + +#include "TestFixture.h" + +namespace glslangtest { +namespace { + +struct RemapTestArgs { + const char* fileName; + const char* entryPoint; + Source sourceLanguage; + unsigned int remapOpts; +}; + +// We are using FileNameEntryPointPair objects as parameters for instantiating +// the template, so the global FileNameAsCustomTestSuffix() won't work since +// it assumes std::string as parameters. Thus, an overriding one here. +std::string FileNameAsCustomTestSuffix( + const ::testing::TestParamInfo& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + +using RemapTest = GlslangTest<::testing::TestWithParam>; + +// Remapping SPIR-V modules. +TEST_P(RemapTest, FromFile) +{ + if (GetSuffix(GetParam().fileName) == "spv") { + loadFileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + GetParam().sourceLanguage, + Semantics::Vulkan, + Target::Spv, + GetParam().remapOpts); + } else { + loadFileCompileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + GetParam().sourceLanguage, + Semantics::Vulkan, + Target::Spv, + GetParam().entryPoint, + GetParam().remapOpts); + } +} + +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, RemapTest, + ::testing::ValuesIn(std::vector{ + // GLSL remapper tests + // testname entry language remapper_options + { "remap.basic.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.basic.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.basic.dcefunc.frag", "main", Source::GLSL, spv::spirvbin_t::DCE_FUNCS }, + { "remap.basic.strip.frag", "main", Source::GLSL, spv::spirvbin_t::STRIP }, + { "remap.switch.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.switch.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.literal64.none.spv", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.literal64.everything.spv", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.if.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.if.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.similar_1a.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.similar_1b.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.similar_1a.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.similar_1b.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.uniformarray.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, + { "remap.uniformarray.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, + + // HLSL remapper tests + { "remap.hlsl.sample.basic.strip.frag", "main", Source::HLSL, spv::spirvbin_t::STRIP }, + { "remap.hlsl.sample.basic.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, + { "remap.hlsl.sample.basic.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, + { "remap.hlsl.templatetypes.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, + { "remap.hlsl.templatetypes.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, + }), + FileNameAsCustomTestSuffix +); +// clang-format on + +} // anonymous namespace +} // namespace glslangtest diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp index f170f368..1dff65ac 100644 --- a/gtests/TestFixture.cpp +++ b/gtests/TestFixture.cpp @@ -116,6 +116,32 @@ std::pair ReadFile(const std::string& path) return std::make_pair(false, ""); } +std::pair > ReadSpvBinaryFile(const std::string& path) +{ + std::ifstream fstream(path, std::fstream::in | std::fstream::binary); + + if (!fstream) + return std::make_pair(false, std::vector()); + + std::vector contents; + + // Reserve space (for efficiency, not for correctness) + fstream.seekg(0, fstream.end); + contents.reserve(size_t(fstream.tellg()) / sizeof(std::uint32_t)); + fstream.seekg(0, fstream.beg); + + // There is no istream iterator traversing by uint32_t, so we must loop. + while (!fstream.eof()) { + std::uint32_t inWord; + fstream.read((char *)&inWord, sizeof(inWord)); + + if (!fstream.eof()) + contents.push_back(inWord); + } + + return std::make_pair(true, contents); // hopefully, c++11 move semantics optimizes the copy away. +} + bool WriteFile(const std::string& path, const std::string& contents) { std::ofstream fstream(path, std::ios::out); diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 4f916e7e..81930125 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -40,12 +40,14 @@ #include #include #include +#include #include #include "SPIRV/GlslangToSpv.h" #include "SPIRV/disassemble.h" #include "SPIRV/doc.h" +#include "SPIRV/SPVRemapper.h" #include "StandAlone/ResourceLimits.h" #include "glslang/Public/ShaderLang.h" @@ -93,6 +95,7 @@ EShMessages DeriveOptions(Source, Semantics, Target); // Reads the content of the file at the given |path|. On success, returns true // and the contents; otherwise, returns false and an empty string. std::pair ReadFile(const std::string& path); +std::pair > ReadSpvBinaryFile(const std::string& path); // Writes the given |contents| into the file at the given |path|. Returns true // on successful output. @@ -128,6 +131,16 @@ public: ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; } + // Tries to load the contents from the file at the given |path|. On success, + // writes the contents into |contents|. On failure, errors out. + void tryLoadSpvFile(const std::string& path, const std::string& tag, + std::vector& contents) + { + bool fileReadOk; + std::tie(fileReadOk, contents) = ReadSpvBinaryFile(path); + ASSERT_TRUE(fileReadOk) << "Cannot open " << tag << " file: " << path; + } + // Checks the equality of |expected| and |real|. If they are not equal, // write |real| to the given file named as |fname| if update mode is on. void checkEqAndUpdateIfRequested(const std::string& expected, @@ -221,6 +234,68 @@ public: } } + // This is like compileAndLink but with remapping of the SPV binary + // through spirvbin_t::remap(). While technically this could be merged + // with compileAndLink() above (with the remap step optionally being a no-op) + // it is given separately here for ease of future extraction. + GlslangResult compileLinkRemap( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(kind); + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + success &= program.link(controls); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector spirv_binary; + glslang::GlslangToSpv(*program.getIntermediate(kind), + spirv_binary, &logger); + + spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + + // remap the binary in 'code' with the options in remapOptions + GlslangResult remap( + const std::string shaderName, const std::vector& code, + EShMessages controls, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + if ((controls & EShMsgSpvRules)) { + std::vector spirv_binary(code); // scratch copy + + spv::spirvbin_t(0 /*verbosity*/).remap(spirv_binary, remapOptions); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + + return {{{shaderName, "", ""},}, + "", "", + "", disassembly_stream.str()}; + } else { + return {{{shaderName, "", ""},}, "", "", "", ""}; + } + } + void outputResultToStream(std::ostringstream* stream, const GlslangResult& result, EShMessages controls) @@ -272,6 +347,60 @@ public: expectedOutputFname); } + void loadFileCompileRemapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName="", + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileLinkRemap(testName, input, entryPointName, controls, remapOptions); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileRemapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const unsigned int remapOptions = spv::spirvbin_t::NONE) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::vector input; + std::string expectedOutput; + + tryLoadSpvFile(inputFname, "input", input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = remap(testName, input, controls, remapOptions); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + // Preprocesses the given |source| code. On success, returns true, the // preprocessed shader, and warning messages. Otherwise, returns false, an // empty string, and error messages. From 90dd70f752645863524bb91040d5631236f0d017 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 25 Aug 2016 10:49:21 -0600 Subject: [PATCH 091/217] HLSL: Allow arbitrary baseType -> baseType conversion of calling arguments. This also puts a stake in the ground as to which is better when selection from multiple signatures. --- .../hlsl.intrinsics.negative.frag.out | 307 ++-- Test/baseResults/hlsl.overload.frag.out | 1436 +++++++++++++---- Test/hlsl.overload.frag | 82 + glslang/Include/revision.h | 4 +- glslang/MachineIndependent/Intermediate.cpp | 1 + hlsl/hlslParseHelper.cpp | 29 +- 6 files changed, 1395 insertions(+), 464 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 829b6998..74dd6c4e 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -1,50 +1,31 @@ hlsl.intrinsics.negative.frag -ERROR: 0:5: 'asdouble' : no matching overloaded function found -ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:7: 'countbits' : no matching overloaded function found ERROR: 0:8: 'cross' : no matching overloaded function found ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:10: 'determinant' : no matching overloaded function found -ERROR: 0:12: 'f16tof32' : no matching overloaded function found -ERROR: 0:13: 'firstbithigh' : no matching overloaded function found -ERROR: 0:14: 'firstbitlow' : no matching overloaded function found +ERROR: 0:12: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:23: 'length' : no matching overloaded function found -ERROR: 0:24: 'msad4' : no matching overloaded function found ERROR: 0:25: 'normalize' : no matching overloaded function found ERROR: 0:26: 'reflect' : no matching overloaded function found ERROR: 0:27: 'refract' : no matching overloaded function found ERROR: 0:28: 'refract' : no matching overloaded function found -ERROR: 0:29: 'reversebits' : no matching overloaded function found ERROR: 0:30: 'transpose' : no matching overloaded function found ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found -ERROR: 0:46: 'asdouble' : no matching overloaded function found +ERROR: 0:46: 'asdouble' : double2 conversion not implemented ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:48: 'countbits' : no matching overloaded function found ERROR: 0:49: 'cross' : no matching overloaded function found ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:51: 'determinant' : no matching overloaded function found -ERROR: 0:52: 'f16tof32' : no matching overloaded function found -ERROR: 0:53: 'firstbithigh' : no matching overloaded function found -ERROR: 0:54: 'firstbitlow' : no matching overloaded function found -ERROR: 0:56: 'reversebits' : no matching overloaded function found +ERROR: 0:52: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:57: 'transpose' : no matching overloaded function found ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:65: 'countbits' : no matching overloaded function found ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:67: 'determinant' : no matching overloaded function found -ERROR: 0:68: 'f16tof32' : no matching overloaded function found -ERROR: 0:69: 'firstbithigh' : no matching overloaded function found -ERROR: 0:70: 'firstbitlow' : no matching overloaded function found -ERROR: 0:72: 'reversebits' : no matching overloaded function found +ERROR: 0:68: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:73: 'transpose' : no matching overloaded function found ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:82: 'countbits' : no matching overloaded function found ERROR: 0:83: 'cross' : no matching overloaded function found ERROR: 0:84: 'determinant' : no matching overloaded function found -ERROR: 0:85: 'f16tof32' : no matching overloaded function found -ERROR: 0:86: 'firstbithigh' : no matching overloaded function found -ERROR: 0:87: 'firstbitlow' : no matching overloaded function found -ERROR: 0:89: 'reversebits' : no matching overloaded function found +ERROR: 0:85: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:90: 'transpose' : no matching overloaded function found ERROR: 0:117: 'countbits' : no matching overloaded function found ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found @@ -85,7 +66,7 @@ ERROR: 0:133: 'normalize' : no matching overloaded function found ERROR: 0:133: 'reflect' : no matching overloaded function found ERROR: 0:133: 'refract' : no matching overloaded function found ERROR: 0:133: 'reversebits' : no matching overloaded function found -ERROR: 86 compilation errors. No code generated. +ERROR: 67 compilation errors. No code generated. Shader version: 450 @@ -98,28 +79,47 @@ ERROR: node is still EOpNull! 0:2 'inF2' (in float) 0:2 'inI0' (in int) 0:? Sequence -0:5 Constant: -0:5 0.000000 -0:6 Constant: -0:6 0.000000 -0:7 Constant: -0:7 0.000000 +0:5 uint64BitsToDouble (temp double) +0:5 Construct uvec2 (temp 2-component vector of uint) +0:5 Convert float to uint (temp uint) +0:5 'inF0' (in float) +0:5 Convert float to uint (temp uint) +0:5 'inF1' (in float) +0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Constant: +0:6 3 (const uint) +0:7 bitCount (global uint) +0:7 Convert float to uint (temp uint) +0:7 'inF0' (in float) 0:8 Constant: 0:8 0.000000 0:9 Constant: 0:9 0.000000 0:10 Constant: 0:10 0.000000 -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 +0:12 ERROR: Bad unary op + (global float) +0:12 Convert float to uint (temp uint) +0:12 'inF0' (in float) +0:13 findMSB (global uint) +0:13 Convert float to uint (temp uint) +0:13 'inF0' (in float) +0:14 findLSB (global uint) +0:14 Convert float to uint (temp uint) +0:14 'inF0' (in float) 0:23 Constant: 0:23 0.000000 -0:24 Constant: -0:24 0.000000 +0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Convert float to uint (temp uint) +0:24 'inF0' (in float) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) 0:25 Constant: 0:25 0.000000 0:26 Constant: @@ -128,8 +128,9 @@ ERROR: node is still EOpNull! 0:27 0.000000 0:28 Constant: 0:28 0.000000 -0:29 Constant: -0:29 0.000000 +0:29 bitFieldReverse (global uint) +0:29 Convert float to uint (temp uint) +0:29 'inF0' (in float) 0:30 Constant: 0:30 0.000000 0:32 Branch: Return with expression @@ -154,26 +155,36 @@ ERROR: node is still EOpNull! 0:45 'inF2' (in 2-component vector of float) 0:45 'inI0' (in 2-component vector of int) 0:? Sequence -0:46 Constant: -0:46 0.000000 +0:46 ERROR: Bad aggregation op + (global 2-component vector of double) +0:46 Convert float to uint (temp 2-component vector of uint) +0:46 'inF0' (in 2-component vector of float) +0:46 Convert float to uint (temp 2-component vector of uint) +0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 Constant: -0:48 0.000000 +0:48 bitCount (global 2-component vector of uint) +0:48 Convert float to uint (temp 2-component vector of uint) +0:48 'inF0' (in 2-component vector of float) 0:49 Constant: 0:49 0.000000 0:50 Constant: 0:50 0.000000 0:51 Constant: 0:51 0.000000 -0:52 Constant: -0:52 0.000000 -0:53 Constant: -0:53 0.000000 -0:54 Constant: -0:54 0.000000 -0:56 Constant: -0:56 0.000000 +0:52 ERROR: Bad unary op + (global 2-component vector of float) +0:52 Convert float to uint (temp 2-component vector of uint) +0:52 'inF0' (in 2-component vector of float) +0:53 findMSB (global 2-component vector of uint) +0:53 Convert float to uint (temp 2-component vector of uint) +0:53 'inF0' (in 2-component vector of float) +0:54 findLSB (global 2-component vector of uint) +0:54 Convert float to uint (temp 2-component vector of uint) +0:54 'inF0' (in 2-component vector of float) +0:56 bitFieldReverse (global 2-component vector of uint) +0:56 Convert float to uint (temp 2-component vector of uint) +0:56 'inF0' (in 2-component vector of float) 0:57 Constant: 0:57 0.000000 0:59 Branch: Return with expression @@ -189,20 +200,26 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 Constant: -0:65 0.000000 +0:65 bitCount (global 3-component vector of uint) +0:65 Convert float to uint (temp 3-component vector of uint) +0:65 'inF0' (in 3-component vector of float) 0:66 Constant: 0:66 0.000000 0:67 Constant: 0:67 0.000000 -0:68 Constant: -0:68 0.000000 -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:72 Constant: -0:72 0.000000 +0:68 ERROR: Bad unary op + (global 3-component vector of float) +0:68 Convert float to uint (temp 3-component vector of uint) +0:68 'inF0' (in 3-component vector of float) +0:69 findMSB (global 3-component vector of uint) +0:69 Convert float to uint (temp 3-component vector of uint) +0:69 'inF0' (in 3-component vector of float) +0:70 findLSB (global 3-component vector of uint) +0:70 Convert float to uint (temp 3-component vector of uint) +0:70 'inF0' (in 3-component vector of float) +0:72 bitFieldReverse (global 3-component vector of uint) +0:72 Convert float to uint (temp 3-component vector of uint) +0:72 'inF0' (in 3-component vector of float) 0:73 Constant: 0:73 0.000000 0:76 Branch: Return with expression @@ -219,20 +236,26 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 Constant: -0:82 0.000000 +0:82 bitCount (global 4-component vector of uint) +0:82 Convert float to uint (temp 4-component vector of uint) +0:82 'inF0' (in 4-component vector of float) 0:83 Constant: 0:83 0.000000 0:84 Constant: 0:84 0.000000 -0:85 Constant: -0:85 0.000000 -0:86 Constant: -0:86 0.000000 -0:87 Constant: -0:87 0.000000 -0:89 Constant: -0:89 0.000000 +0:85 ERROR: Bad unary op + (global 4-component vector of float) +0:85 Convert float to uint (temp 4-component vector of uint) +0:85 'inF0' (in 4-component vector of float) +0:86 findMSB (global 4-component vector of uint) +0:86 Convert float to uint (temp 4-component vector of uint) +0:86 'inF0' (in 4-component vector of float) +0:87 findLSB (global 4-component vector of uint) +0:87 Convert float to uint (temp 4-component vector of uint) +0:87 'inF0' (in 4-component vector of float) +0:89 bitFieldReverse (global 4-component vector of uint) +0:89 Convert float to uint (temp 4-component vector of uint) +0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Branch: Return with expression @@ -388,28 +411,47 @@ ERROR: node is still EOpNull! 0:2 'inF2' (in float) 0:2 'inI0' (in int) 0:? Sequence -0:5 Constant: -0:5 0.000000 -0:6 Constant: -0:6 0.000000 -0:7 Constant: -0:7 0.000000 +0:5 uint64BitsToDouble (temp double) +0:5 Construct uvec2 (temp 2-component vector of uint) +0:5 Convert float to uint (temp uint) +0:5 'inF0' (in float) +0:5 Convert float to uint (temp uint) +0:5 'inF1' (in float) +0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Constant: +0:6 3 (const uint) +0:7 bitCount (global uint) +0:7 Convert float to uint (temp uint) +0:7 'inF0' (in float) 0:8 Constant: 0:8 0.000000 0:9 Constant: 0:9 0.000000 0:10 Constant: 0:10 0.000000 -0:12 Constant: -0:12 0.000000 -0:13 Constant: -0:13 0.000000 -0:14 Constant: -0:14 0.000000 +0:12 ERROR: Bad unary op + (global float) +0:12 Convert float to uint (temp uint) +0:12 'inF0' (in float) +0:13 findMSB (global uint) +0:13 Convert float to uint (temp uint) +0:13 'inF0' (in float) +0:14 findLSB (global uint) +0:14 Convert float to uint (temp uint) +0:14 'inF0' (in float) 0:23 Constant: 0:23 0.000000 -0:24 Constant: -0:24 0.000000 +0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Convert float to uint (temp uint) +0:24 'inF0' (in float) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 Constant: +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) +0:24 0 (const uint) 0:25 Constant: 0:25 0.000000 0:26 Constant: @@ -418,8 +460,9 @@ ERROR: node is still EOpNull! 0:27 0.000000 0:28 Constant: 0:28 0.000000 -0:29 Constant: -0:29 0.000000 +0:29 bitFieldReverse (global uint) +0:29 Convert float to uint (temp uint) +0:29 'inF0' (in float) 0:30 Constant: 0:30 0.000000 0:32 Branch: Return with expression @@ -444,26 +487,36 @@ ERROR: node is still EOpNull! 0:45 'inF2' (in 2-component vector of float) 0:45 'inI0' (in 2-component vector of int) 0:? Sequence -0:46 Constant: -0:46 0.000000 +0:46 ERROR: Bad aggregation op + (global 2-component vector of double) +0:46 Convert float to uint (temp 2-component vector of uint) +0:46 'inF0' (in 2-component vector of float) +0:46 Convert float to uint (temp 2-component vector of uint) +0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 Constant: -0:48 0.000000 +0:48 bitCount (global 2-component vector of uint) +0:48 Convert float to uint (temp 2-component vector of uint) +0:48 'inF0' (in 2-component vector of float) 0:49 Constant: 0:49 0.000000 0:50 Constant: 0:50 0.000000 0:51 Constant: 0:51 0.000000 -0:52 Constant: -0:52 0.000000 -0:53 Constant: -0:53 0.000000 -0:54 Constant: -0:54 0.000000 -0:56 Constant: -0:56 0.000000 +0:52 ERROR: Bad unary op + (global 2-component vector of float) +0:52 Convert float to uint (temp 2-component vector of uint) +0:52 'inF0' (in 2-component vector of float) +0:53 findMSB (global 2-component vector of uint) +0:53 Convert float to uint (temp 2-component vector of uint) +0:53 'inF0' (in 2-component vector of float) +0:54 findLSB (global 2-component vector of uint) +0:54 Convert float to uint (temp 2-component vector of uint) +0:54 'inF0' (in 2-component vector of float) +0:56 bitFieldReverse (global 2-component vector of uint) +0:56 Convert float to uint (temp 2-component vector of uint) +0:56 'inF0' (in 2-component vector of float) 0:57 Constant: 0:57 0.000000 0:59 Branch: Return with expression @@ -479,20 +532,26 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 Constant: -0:65 0.000000 +0:65 bitCount (global 3-component vector of uint) +0:65 Convert float to uint (temp 3-component vector of uint) +0:65 'inF0' (in 3-component vector of float) 0:66 Constant: 0:66 0.000000 0:67 Constant: 0:67 0.000000 -0:68 Constant: -0:68 0.000000 -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:72 Constant: -0:72 0.000000 +0:68 ERROR: Bad unary op + (global 3-component vector of float) +0:68 Convert float to uint (temp 3-component vector of uint) +0:68 'inF0' (in 3-component vector of float) +0:69 findMSB (global 3-component vector of uint) +0:69 Convert float to uint (temp 3-component vector of uint) +0:69 'inF0' (in 3-component vector of float) +0:70 findLSB (global 3-component vector of uint) +0:70 Convert float to uint (temp 3-component vector of uint) +0:70 'inF0' (in 3-component vector of float) +0:72 bitFieldReverse (global 3-component vector of uint) +0:72 Convert float to uint (temp 3-component vector of uint) +0:72 'inF0' (in 3-component vector of float) 0:73 Constant: 0:73 0.000000 0:76 Branch: Return with expression @@ -509,20 +568,26 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 Constant: -0:82 0.000000 +0:82 bitCount (global 4-component vector of uint) +0:82 Convert float to uint (temp 4-component vector of uint) +0:82 'inF0' (in 4-component vector of float) 0:83 Constant: 0:83 0.000000 0:84 Constant: 0:84 0.000000 -0:85 Constant: -0:85 0.000000 -0:86 Constant: -0:86 0.000000 -0:87 Constant: -0:87 0.000000 -0:89 Constant: -0:89 0.000000 +0:85 ERROR: Bad unary op + (global 4-component vector of float) +0:85 Convert float to uint (temp 4-component vector of uint) +0:85 'inF0' (in 4-component vector of float) +0:86 findMSB (global 4-component vector of uint) +0:86 Convert float to uint (temp 4-component vector of uint) +0:86 'inF0' (in 4-component vector of float) +0:87 findLSB (global 4-component vector of uint) +0:87 Convert float to uint (temp 4-component vector of uint) +0:87 'inF0' (in 4-component vector of float) +0:89 bitFieldReverse (global 4-component vector of uint) +0:89 Convert float to uint (temp 4-component vector of uint) +0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Branch: Return with expression diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 3366fcbb..7b69a54b 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -2,88 +2,274 @@ hlsl.overload.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;b1; (global void) 0:2 Function Parameters: 0:2 'a' (in double) -0:2 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:2 'b' (in bool) +0:4 Function Definition: foo1(d1;u1; (global void) 0:3 Function Parameters: 0:3 'a' (in double) -0:3 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:3 'b' (in uint) +0:5 Function Definition: foo1(d1;i1; (global void) 0:4 Function Parameters: 0:4 'a' (in double) -0:4 'b' (in float) -0:7 Function Definition: foo1(d1;d1; (global void) +0:4 'b' (in int) +0:6 Function Definition: foo1(d1;f1; (global void) 0:5 Function Parameters: 0:5 'a' (in double) -0:5 'b' (in double) -0:36 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:8 Function Parameters: -0:8 'input' (in 4-component vector of float) +0:5 'b' (in float) +0:9 Function Definition: foo1(d1;d1; (global void) +0:6 Function Parameters: +0:6 'a' (in double) +0:6 'b' (in double) +0:10 Function Definition: foo2(i1;b1; (global void) +0:9 Function Parameters: +0:9 'a' (in int) +0:9 'b' (in bool) +0:11 Function Definition: foo2(i1;u1; (global void) +0:10 Function Parameters: +0:10 'a' (in int) +0:10 'b' (in uint) +0:12 Function Definition: foo2(i1;i1; (global void) +0:11 Function Parameters: +0:11 'a' (in int) +0:11 'b' (in int) +0:13 Function Definition: foo2(i1;f1; (global void) +0:12 Function Parameters: +0:12 'a' (in int) +0:12 'b' (in float) +0:16 Function Definition: foo2(i1;d1; (global void) +0:13 Function Parameters: +0:13 'a' (in int) +0:13 'b' (in double) +0:17 Function Definition: foo3(b1; (global void) +0:16 Function Parameters: +0:16 'b' (in bool) +0:18 Function Definition: foo4(u1; (global void) +0:17 Function Parameters: +0:17 'b' (in uint) +0:19 Function Definition: foo5(i1; (global void) +0:18 Function Parameters: +0:18 'b' (in int) +0:20 Function Definition: foo6(f1; (global void) +0:19 Function Parameters: +0:19 'b' (in float) +0:23 Function Definition: foo7(d1; (global void) +0:20 Function Parameters: +0:20 'b' (in double) +0:118 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:31 Function Parameters: +0:31 'input' (in 4-component vector of float) 0:? Sequence -0:14 Function Call: foo1(d1;d1; (global void) -0:14 'd' (temp double) -0:14 'd' (temp double) -0:15 Function Call: foo1(d1;u1; (global void) -0:15 'd' (temp double) -0:15 'u' (temp uint) -0:16 Function Call: foo1(d1;i1; (global void) -0:16 'd' (temp double) -0:16 'i' (temp int) -0:17 Function Call: foo1(d1;f1; (global void) -0:17 'd' (temp double) -0:17 'f' (temp float) -0:19 Function Call: foo1(d1;d1; (global void) -0:19 Convert float to double (temp double) -0:19 'f' (temp float) -0:19 'd' (temp double) -0:20 Function Call: foo1(d1;u1; (global void) -0:20 Convert float to double (temp double) -0:20 'f' (temp float) -0:20 'u' (temp uint) -0:21 Function Call: foo1(d1;i1; (global void) -0:21 Convert float to double (temp double) -0:21 'f' (temp float) -0:21 'i' (temp int) -0:22 Function Call: foo1(d1;f1; (global void) -0:22 Convert float to double (temp double) -0:22 'f' (temp float) -0:22 'f' (temp float) -0:24 Function Call: foo1(d1;d1; (global void) -0:24 Convert uint to double (temp double) -0:24 'u' (temp uint) -0:24 'd' (temp double) -0:25 Function Call: foo1(d1;u1; (global void) -0:25 Convert uint to double (temp double) -0:25 'u' (temp uint) -0:25 'u' (temp uint) -0:26 Function Call: foo1(d1;i1; (global void) -0:26 Convert uint to double (temp double) -0:26 'u' (temp uint) -0:26 'i' (temp int) -0:27 Function Call: foo1(d1;f1; (global void) -0:27 Convert uint to double (temp double) -0:27 'u' (temp uint) -0:27 'f' (temp float) -0:29 Function Call: foo1(d1;d1; (global void) -0:29 Convert int to double (temp double) -0:29 'i' (temp int) -0:29 'd' (temp double) -0:30 Function Call: foo1(d1;u1; (global void) -0:30 Convert int to double (temp double) -0:30 'i' (temp int) -0:30 'u' (temp uint) -0:31 Function Call: foo1(d1;i1; (global void) -0:31 Convert int to double (temp double) -0:31 'i' (temp int) -0:31 'i' (temp int) -0:32 Function Call: foo1(d1;f1; (global void) -0:32 Convert int to double (temp double) -0:32 'i' (temp int) -0:32 'f' (temp float) -0:34 Branch: Return with expression -0:34 'input' (in 4-component vector of float) +0:38 Function Call: foo1(d1;b1; (global void) +0:38 'd' (temp double) +0:38 'b' (temp bool) +0:39 Function Call: foo1(d1;d1; (global void) +0:39 'd' (temp double) +0:39 'd' (temp double) +0:40 Function Call: foo1(d1;u1; (global void) +0:40 'd' (temp double) +0:40 'u' (temp uint) +0:41 Function Call: foo1(d1;i1; (global void) +0:41 'd' (temp double) +0:41 'i' (temp int) +0:42 Function Call: foo1(d1;f1; (global void) +0:42 'd' (temp double) +0:42 'f' (temp float) +0:44 Function Call: foo1(d1;b1; (global void) +0:44 Convert float to double (temp double) +0:44 'f' (temp float) +0:44 'b' (temp bool) +0:45 Function Call: foo1(d1;d1; (global void) +0:45 Convert float to double (temp double) +0:45 'f' (temp float) +0:45 'd' (temp double) +0:46 Function Call: foo1(d1;u1; (global void) +0:46 Convert float to double (temp double) +0:46 'f' (temp float) +0:46 'u' (temp uint) +0:47 Function Call: foo1(d1;i1; (global void) +0:47 Convert float to double (temp double) +0:47 'f' (temp float) +0:47 'i' (temp int) +0:48 Function Call: foo1(d1;f1; (global void) +0:48 Convert float to double (temp double) +0:48 'f' (temp float) +0:48 'f' (temp float) +0:50 Function Call: foo1(d1;b1; (global void) +0:50 Convert uint to double (temp double) +0:50 'u' (temp uint) +0:50 'b' (temp bool) +0:51 Function Call: foo1(d1;d1; (global void) +0:51 Convert uint to double (temp double) +0:51 'u' (temp uint) +0:51 'd' (temp double) +0:52 Function Call: foo1(d1;u1; (global void) +0:52 Convert uint to double (temp double) +0:52 'u' (temp uint) +0:52 'u' (temp uint) +0:53 Function Call: foo1(d1;i1; (global void) +0:53 Convert uint to double (temp double) +0:53 'u' (temp uint) +0:53 'i' (temp int) +0:54 Function Call: foo1(d1;f1; (global void) +0:54 Convert uint to double (temp double) +0:54 'u' (temp uint) +0:54 'f' (temp float) +0:56 Function Call: foo1(d1;b1; (global void) +0:56 Convert int to double (temp double) +0:56 'i' (temp int) +0:56 'b' (temp bool) +0:57 Function Call: foo1(d1;d1; (global void) +0:57 Convert int to double (temp double) +0:57 'i' (temp int) +0:57 'd' (temp double) +0:58 Function Call: foo1(d1;u1; (global void) +0:58 Convert int to double (temp double) +0:58 'i' (temp int) +0:58 'u' (temp uint) +0:59 Function Call: foo1(d1;i1; (global void) +0:59 Convert int to double (temp double) +0:59 'i' (temp int) +0:59 'i' (temp int) +0:60 Function Call: foo1(d1;f1; (global void) +0:60 Convert int to double (temp double) +0:60 'i' (temp int) +0:60 'f' (temp float) +0:62 Function Call: foo2(i1;b1; (global void) +0:62 Convert uint to int (temp int) +0:62 'u' (temp uint) +0:62 'b' (temp bool) +0:63 Function Call: foo2(i1;d1; (global void) +0:63 Convert uint to int (temp int) +0:63 'u' (temp uint) +0:63 'd' (temp double) +0:64 Function Call: foo2(i1;u1; (global void) +0:64 Convert uint to int (temp int) +0:64 'u' (temp uint) +0:64 'u' (temp uint) +0:65 Function Call: foo2(i1;i1; (global void) +0:65 Convert uint to int (temp int) +0:65 'u' (temp uint) +0:65 'i' (temp int) +0:66 Function Call: foo2(i1;f1; (global void) +0:66 Convert uint to int (temp int) +0:66 'u' (temp uint) +0:66 'f' (temp float) +0:68 Function Call: foo2(i1;b1; (global void) +0:68 'i' (temp int) +0:68 'b' (temp bool) +0:69 Function Call: foo2(i1;d1; (global void) +0:69 'i' (temp int) +0:69 'd' (temp double) +0:70 Function Call: foo2(i1;u1; (global void) +0:70 'i' (temp int) +0:70 'u' (temp uint) +0:71 Function Call: foo2(i1;i1; (global void) +0:71 'i' (temp int) +0:71 'i' (temp int) +0:72 Function Call: foo2(i1;f1; (global void) +0:72 'i' (temp int) +0:72 'f' (temp float) +0:74 Function Call: foo3(b1; (global void) +0:74 'b' (temp bool) +0:75 Function Call: foo3(b1; (global void) +0:75 Convert double to bool (temp bool) +0:75 'd' (temp double) +0:76 Function Call: foo3(b1; (global void) +0:76 Convert uint to bool (temp bool) +0:76 'u' (temp uint) +0:77 Function Call: foo3(b1; (global void) +0:77 Convert int to bool (temp bool) +0:77 'i' (temp int) +0:78 Function Call: foo3(b1; (global void) +0:78 Convert float to bool (temp bool) +0:78 'f' (temp float) +0:80 Function Call: foo4(u1; (global void) +0:80 Convert bool to uint (temp uint) +0:80 'b' (temp bool) +0:81 Function Call: foo4(u1; (global void) +0:81 Convert double to uint (temp uint) +0:81 'd' (temp double) +0:82 Function Call: foo4(u1; (global void) +0:82 'u' (temp uint) +0:83 Function Call: foo4(u1; (global void) +0:83 Convert int to uint (temp uint) +0:83 'i' (temp int) +0:84 Function Call: foo4(u1; (global void) +0:84 Convert float to uint (temp uint) +0:84 'f' (temp float) +0:86 Function Call: foo5(i1; (global void) +0:86 Convert bool to int (temp int) +0:86 'b' (temp bool) +0:87 Function Call: foo5(i1; (global void) +0:87 Convert double to int (temp int) +0:87 'd' (temp double) +0:88 Function Call: foo5(i1; (global void) +0:88 Convert uint to int (temp int) +0:88 'u' (temp uint) +0:89 Function Call: foo5(i1; (global void) +0:89 'i' (temp int) +0:90 Function Call: foo5(i1; (global void) +0:90 Convert float to int (temp int) +0:90 'f' (temp float) +0:92 Function Call: foo6(f1; (global void) +0:92 Convert bool to float (temp float) +0:92 'b' (temp bool) +0:93 Function Call: foo6(f1; (global void) +0:93 Convert double to float (temp float) +0:93 'd' (temp double) +0:94 Function Call: foo6(f1; (global void) +0:94 Convert uint to float (temp float) +0:94 'u' (temp uint) +0:95 Function Call: foo6(f1; (global void) +0:95 Convert int to float (temp float) +0:95 'i' (temp int) +0:96 Function Call: foo6(f1; (global void) +0:96 'f' (temp float) +0:98 Function Call: foo7(d1; (global void) +0:98 Convert bool to double (temp double) +0:98 'b' (temp bool) +0:99 Function Call: foo7(d1; (global void) +0:99 'd' (temp double) +0:100 Function Call: foo7(d1; (global void) +0:100 Convert uint to double (temp double) +0:100 'u' (temp uint) +0:101 Function Call: foo7(d1; (global void) +0:101 Convert int to double (temp double) +0:101 'i' (temp int) +0:102 Function Call: foo7(d1; (global void) +0:102 Convert float to double (temp double) +0:102 'f' (temp float) +0:104 Function Call: foo8(f1; (global void) +0:104 Convert bool to float (temp float) +0:104 'b' (temp bool) +0:105 Function Call: foo8(f1; (global void) +0:105 Convert uint to float (temp float) +0:105 'u' (temp uint) +0:106 Function Call: foo8(f1; (global void) +0:106 Convert int to float (temp float) +0:106 'i' (temp int) +0:108 Function Call: foo9(u1; (global void) +0:108 Convert bool to uint (temp uint) +0:108 'b' (temp bool) +0:109 Function Call: foo9(u1; (global void) +0:109 Convert float to uint (temp uint) +0:109 'f' (temp float) +0:110 Function Call: foo9(u1; (global void) +0:110 Convert double to uint (temp uint) +0:110 'd' (temp double) +0:112 Function Call: foo10(i1; (global void) +0:112 Convert uint to int (temp int) +0:112 'u' (temp uint) +0:113 Function Call: foo10(i1; (global void) +0:113 Convert float to int (temp int) +0:113 'f' (temp float) +0:114 Function Call: foo10(i1; (global void) +0:114 Convert double to int (temp int) +0:114 'd' (temp double) +0:116 Branch: Return with expression +0:116 'input' (in 4-component vector of float) 0:? Linker Objects @@ -93,321 +279,899 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;b1; (global void) 0:2 Function Parameters: 0:2 'a' (in double) -0:2 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:2 'b' (in bool) +0:4 Function Definition: foo1(d1;u1; (global void) 0:3 Function Parameters: 0:3 'a' (in double) -0:3 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:3 'b' (in uint) +0:5 Function Definition: foo1(d1;i1; (global void) 0:4 Function Parameters: 0:4 'a' (in double) -0:4 'b' (in float) -0:7 Function Definition: foo1(d1;d1; (global void) +0:4 'b' (in int) +0:6 Function Definition: foo1(d1;f1; (global void) 0:5 Function Parameters: 0:5 'a' (in double) -0:5 'b' (in double) -0:36 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:8 Function Parameters: -0:8 'input' (in 4-component vector of float) +0:5 'b' (in float) +0:9 Function Definition: foo1(d1;d1; (global void) +0:6 Function Parameters: +0:6 'a' (in double) +0:6 'b' (in double) +0:10 Function Definition: foo2(i1;b1; (global void) +0:9 Function Parameters: +0:9 'a' (in int) +0:9 'b' (in bool) +0:11 Function Definition: foo2(i1;u1; (global void) +0:10 Function Parameters: +0:10 'a' (in int) +0:10 'b' (in uint) +0:12 Function Definition: foo2(i1;i1; (global void) +0:11 Function Parameters: +0:11 'a' (in int) +0:11 'b' (in int) +0:13 Function Definition: foo2(i1;f1; (global void) +0:12 Function Parameters: +0:12 'a' (in int) +0:12 'b' (in float) +0:16 Function Definition: foo2(i1;d1; (global void) +0:13 Function Parameters: +0:13 'a' (in int) +0:13 'b' (in double) +0:17 Function Definition: foo3(b1; (global void) +0:16 Function Parameters: +0:16 'b' (in bool) +0:18 Function Definition: foo4(u1; (global void) +0:17 Function Parameters: +0:17 'b' (in uint) +0:19 Function Definition: foo5(i1; (global void) +0:18 Function Parameters: +0:18 'b' (in int) +0:20 Function Definition: foo6(f1; (global void) +0:19 Function Parameters: +0:19 'b' (in float) +0:23 Function Definition: foo7(d1; (global void) +0:20 Function Parameters: +0:20 'b' (in double) +0:118 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:31 Function Parameters: +0:31 'input' (in 4-component vector of float) 0:? Sequence -0:14 Function Call: foo1(d1;d1; (global void) -0:14 'd' (temp double) -0:14 'd' (temp double) -0:15 Function Call: foo1(d1;u1; (global void) -0:15 'd' (temp double) -0:15 'u' (temp uint) -0:16 Function Call: foo1(d1;i1; (global void) -0:16 'd' (temp double) -0:16 'i' (temp int) -0:17 Function Call: foo1(d1;f1; (global void) -0:17 'd' (temp double) -0:17 'f' (temp float) -0:19 Function Call: foo1(d1;d1; (global void) -0:19 Convert float to double (temp double) -0:19 'f' (temp float) -0:19 'd' (temp double) -0:20 Function Call: foo1(d1;u1; (global void) -0:20 Convert float to double (temp double) -0:20 'f' (temp float) -0:20 'u' (temp uint) -0:21 Function Call: foo1(d1;i1; (global void) -0:21 Convert float to double (temp double) -0:21 'f' (temp float) -0:21 'i' (temp int) -0:22 Function Call: foo1(d1;f1; (global void) -0:22 Convert float to double (temp double) -0:22 'f' (temp float) -0:22 'f' (temp float) -0:24 Function Call: foo1(d1;d1; (global void) -0:24 Convert uint to double (temp double) -0:24 'u' (temp uint) -0:24 'd' (temp double) -0:25 Function Call: foo1(d1;u1; (global void) -0:25 Convert uint to double (temp double) -0:25 'u' (temp uint) -0:25 'u' (temp uint) -0:26 Function Call: foo1(d1;i1; (global void) -0:26 Convert uint to double (temp double) -0:26 'u' (temp uint) -0:26 'i' (temp int) -0:27 Function Call: foo1(d1;f1; (global void) -0:27 Convert uint to double (temp double) -0:27 'u' (temp uint) -0:27 'f' (temp float) -0:29 Function Call: foo1(d1;d1; (global void) -0:29 Convert int to double (temp double) -0:29 'i' (temp int) -0:29 'd' (temp double) -0:30 Function Call: foo1(d1;u1; (global void) -0:30 Convert int to double (temp double) -0:30 'i' (temp int) -0:30 'u' (temp uint) -0:31 Function Call: foo1(d1;i1; (global void) -0:31 Convert int to double (temp double) -0:31 'i' (temp int) -0:31 'i' (temp int) -0:32 Function Call: foo1(d1;f1; (global void) -0:32 Convert int to double (temp double) -0:32 'i' (temp int) -0:32 'f' (temp float) -0:34 Branch: Return with expression -0:34 'input' (in 4-component vector of float) +0:38 Function Call: foo1(d1;b1; (global void) +0:38 'd' (temp double) +0:38 'b' (temp bool) +0:39 Function Call: foo1(d1;d1; (global void) +0:39 'd' (temp double) +0:39 'd' (temp double) +0:40 Function Call: foo1(d1;u1; (global void) +0:40 'd' (temp double) +0:40 'u' (temp uint) +0:41 Function Call: foo1(d1;i1; (global void) +0:41 'd' (temp double) +0:41 'i' (temp int) +0:42 Function Call: foo1(d1;f1; (global void) +0:42 'd' (temp double) +0:42 'f' (temp float) +0:44 Function Call: foo1(d1;b1; (global void) +0:44 Convert float to double (temp double) +0:44 'f' (temp float) +0:44 'b' (temp bool) +0:45 Function Call: foo1(d1;d1; (global void) +0:45 Convert float to double (temp double) +0:45 'f' (temp float) +0:45 'd' (temp double) +0:46 Function Call: foo1(d1;u1; (global void) +0:46 Convert float to double (temp double) +0:46 'f' (temp float) +0:46 'u' (temp uint) +0:47 Function Call: foo1(d1;i1; (global void) +0:47 Convert float to double (temp double) +0:47 'f' (temp float) +0:47 'i' (temp int) +0:48 Function Call: foo1(d1;f1; (global void) +0:48 Convert float to double (temp double) +0:48 'f' (temp float) +0:48 'f' (temp float) +0:50 Function Call: foo1(d1;b1; (global void) +0:50 Convert uint to double (temp double) +0:50 'u' (temp uint) +0:50 'b' (temp bool) +0:51 Function Call: foo1(d1;d1; (global void) +0:51 Convert uint to double (temp double) +0:51 'u' (temp uint) +0:51 'd' (temp double) +0:52 Function Call: foo1(d1;u1; (global void) +0:52 Convert uint to double (temp double) +0:52 'u' (temp uint) +0:52 'u' (temp uint) +0:53 Function Call: foo1(d1;i1; (global void) +0:53 Convert uint to double (temp double) +0:53 'u' (temp uint) +0:53 'i' (temp int) +0:54 Function Call: foo1(d1;f1; (global void) +0:54 Convert uint to double (temp double) +0:54 'u' (temp uint) +0:54 'f' (temp float) +0:56 Function Call: foo1(d1;b1; (global void) +0:56 Convert int to double (temp double) +0:56 'i' (temp int) +0:56 'b' (temp bool) +0:57 Function Call: foo1(d1;d1; (global void) +0:57 Convert int to double (temp double) +0:57 'i' (temp int) +0:57 'd' (temp double) +0:58 Function Call: foo1(d1;u1; (global void) +0:58 Convert int to double (temp double) +0:58 'i' (temp int) +0:58 'u' (temp uint) +0:59 Function Call: foo1(d1;i1; (global void) +0:59 Convert int to double (temp double) +0:59 'i' (temp int) +0:59 'i' (temp int) +0:60 Function Call: foo1(d1;f1; (global void) +0:60 Convert int to double (temp double) +0:60 'i' (temp int) +0:60 'f' (temp float) +0:62 Function Call: foo2(i1;b1; (global void) +0:62 Convert uint to int (temp int) +0:62 'u' (temp uint) +0:62 'b' (temp bool) +0:63 Function Call: foo2(i1;d1; (global void) +0:63 Convert uint to int (temp int) +0:63 'u' (temp uint) +0:63 'd' (temp double) +0:64 Function Call: foo2(i1;u1; (global void) +0:64 Convert uint to int (temp int) +0:64 'u' (temp uint) +0:64 'u' (temp uint) +0:65 Function Call: foo2(i1;i1; (global void) +0:65 Convert uint to int (temp int) +0:65 'u' (temp uint) +0:65 'i' (temp int) +0:66 Function Call: foo2(i1;f1; (global void) +0:66 Convert uint to int (temp int) +0:66 'u' (temp uint) +0:66 'f' (temp float) +0:68 Function Call: foo2(i1;b1; (global void) +0:68 'i' (temp int) +0:68 'b' (temp bool) +0:69 Function Call: foo2(i1;d1; (global void) +0:69 'i' (temp int) +0:69 'd' (temp double) +0:70 Function Call: foo2(i1;u1; (global void) +0:70 'i' (temp int) +0:70 'u' (temp uint) +0:71 Function Call: foo2(i1;i1; (global void) +0:71 'i' (temp int) +0:71 'i' (temp int) +0:72 Function Call: foo2(i1;f1; (global void) +0:72 'i' (temp int) +0:72 'f' (temp float) +0:74 Function Call: foo3(b1; (global void) +0:74 'b' (temp bool) +0:75 Function Call: foo3(b1; (global void) +0:75 Convert double to bool (temp bool) +0:75 'd' (temp double) +0:76 Function Call: foo3(b1; (global void) +0:76 Convert uint to bool (temp bool) +0:76 'u' (temp uint) +0:77 Function Call: foo3(b1; (global void) +0:77 Convert int to bool (temp bool) +0:77 'i' (temp int) +0:78 Function Call: foo3(b1; (global void) +0:78 Convert float to bool (temp bool) +0:78 'f' (temp float) +0:80 Function Call: foo4(u1; (global void) +0:80 Convert bool to uint (temp uint) +0:80 'b' (temp bool) +0:81 Function Call: foo4(u1; (global void) +0:81 Convert double to uint (temp uint) +0:81 'd' (temp double) +0:82 Function Call: foo4(u1; (global void) +0:82 'u' (temp uint) +0:83 Function Call: foo4(u1; (global void) +0:83 Convert int to uint (temp uint) +0:83 'i' (temp int) +0:84 Function Call: foo4(u1; (global void) +0:84 Convert float to uint (temp uint) +0:84 'f' (temp float) +0:86 Function Call: foo5(i1; (global void) +0:86 Convert bool to int (temp int) +0:86 'b' (temp bool) +0:87 Function Call: foo5(i1; (global void) +0:87 Convert double to int (temp int) +0:87 'd' (temp double) +0:88 Function Call: foo5(i1; (global void) +0:88 Convert uint to int (temp int) +0:88 'u' (temp uint) +0:89 Function Call: foo5(i1; (global void) +0:89 'i' (temp int) +0:90 Function Call: foo5(i1; (global void) +0:90 Convert float to int (temp int) +0:90 'f' (temp float) +0:92 Function Call: foo6(f1; (global void) +0:92 Convert bool to float (temp float) +0:92 'b' (temp bool) +0:93 Function Call: foo6(f1; (global void) +0:93 Convert double to float (temp float) +0:93 'd' (temp double) +0:94 Function Call: foo6(f1; (global void) +0:94 Convert uint to float (temp float) +0:94 'u' (temp uint) +0:95 Function Call: foo6(f1; (global void) +0:95 Convert int to float (temp float) +0:95 'i' (temp int) +0:96 Function Call: foo6(f1; (global void) +0:96 'f' (temp float) +0:98 Function Call: foo7(d1; (global void) +0:98 Convert bool to double (temp double) +0:98 'b' (temp bool) +0:99 Function Call: foo7(d1; (global void) +0:99 'd' (temp double) +0:100 Function Call: foo7(d1; (global void) +0:100 Convert uint to double (temp double) +0:100 'u' (temp uint) +0:101 Function Call: foo7(d1; (global void) +0:101 Convert int to double (temp double) +0:101 'i' (temp int) +0:102 Function Call: foo7(d1; (global void) +0:102 Convert float to double (temp double) +0:102 'f' (temp float) +0:104 Function Call: foo8(f1; (global void) +0:104 Convert bool to float (temp float) +0:104 'b' (temp bool) +0:105 Function Call: foo8(f1; (global void) +0:105 Convert uint to float (temp float) +0:105 'u' (temp uint) +0:106 Function Call: foo8(f1; (global void) +0:106 Convert int to float (temp float) +0:106 'i' (temp int) +0:108 Function Call: foo9(u1; (global void) +0:108 Convert bool to uint (temp uint) +0:108 'b' (temp bool) +0:109 Function Call: foo9(u1; (global void) +0:109 Convert float to uint (temp uint) +0:109 'f' (temp float) +0:110 Function Call: foo9(u1; (global void) +0:110 Convert double to uint (temp uint) +0:110 'd' (temp double) +0:112 Function Call: foo10(i1; (global void) +0:112 Convert uint to int (temp int) +0:112 'u' (temp uint) +0:113 Function Call: foo10(i1; (global void) +0:113 Convert float to int (temp int) +0:113 'f' (temp float) +0:114 Function Call: foo10(i1; (global void) +0:114 Convert double to int (temp int) +0:114 'd' (temp double) +0:116 Branch: Return with expression +0:116 'input' (in 4-component vector of float) 0:? Linker Objects +Missing functionality: missing user function; linker needs to catch that // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 135 +// Id's are bound by 369 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 132 + EntryPoint Fragment 4 "PixelShaderFunction" 366 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 13 "foo1(d1;u1;" + Name 13 "foo1(d1;b1;" Name 11 "a" Name 12 "b" - Name 20 "foo1(d1;i1;" + Name 20 "foo1(d1;u1;" Name 18 "a" Name 19 "b" - Name 27 "foo1(d1;f1;" + Name 27 "foo1(d1;i1;" Name 25 "a" Name 26 "b" - Name 32 "foo1(d1;d1;" - Name 30 "a" - Name 31 "b" - Name 34 "d" - Name 35 "param" - Name 37 "param" - Name 40 "u" - Name 41 "param" - Name 43 "param" - Name 46 "i" - Name 47 "param" - Name 49 "param" - Name 52 "f" - Name 53 "param" - Name 55 "param" - Name 60 "param" - Name 61 "param" - Name 66 "param" - Name 67 "param" - Name 72 "param" - Name 73 "param" - Name 78 "param" - Name 79 "param" - Name 84 "param" - Name 85 "param" + Name 34 "foo1(d1;f1;" + Name 32 "a" + Name 33 "b" + Name 39 "foo1(d1;d1;" + Name 37 "a" + Name 38 "b" + Name 44 "foo2(i1;b1;" + Name 42 "a" + Name 43 "b" + Name 49 "foo2(i1;u1;" + Name 47 "a" + Name 48 "b" + Name 54 "foo2(i1;i1;" + Name 52 "a" + Name 53 "b" + Name 59 "foo2(i1;f1;" + Name 57 "a" + Name 58 "b" + Name 64 "foo2(i1;d1;" + Name 62 "a" + Name 63 "b" + Name 68 "foo3(b1;" + Name 67 "b" + Name 72 "foo4(u1;" + Name 71 "b" + Name 76 "foo5(i1;" + Name 75 "b" + Name 80 "foo6(f1;" + Name 79 "b" + Name 84 "foo7(d1;" + Name 83 "b" + Name 86 "d" + Name 87 "b" + Name 88 "param" Name 90 "param" - Name 91 "param" - Name 96 "param" - Name 97 "param" - Name 102 "param" - Name 103 "param" - Name 108 "param" - Name 109 "param" - Name 114 "param" - Name 115 "param" - Name 120 "param" - Name 121 "param" - Name 126 "param" - Name 127 "param" - Name 132 "input" + Name 93 "param" + Name 95 "param" + Name 98 "u" + Name 99 "param" + Name 101 "param" + Name 104 "i" + Name 105 "param" + Name 107 "param" + Name 110 "f" + Name 111 "param" + Name 113 "param" + Name 118 "param" + Name 119 "param" + Name 124 "param" + Name 125 "param" + Name 130 "param" + Name 131 "param" + Name 136 "param" + Name 137 "param" + Name 142 "param" + Name 143 "param" + Name 148 "param" + Name 149 "param" + Name 154 "param" + Name 155 "param" + Name 160 "param" + Name 161 "param" + Name 166 "param" + Name 167 "param" + Name 172 "param" + Name 173 "param" + Name 178 "param" + Name 179 "param" + Name 184 "param" + Name 185 "param" + Name 190 "param" + Name 191 "param" + Name 196 "param" + Name 197 "param" + Name 202 "param" + Name 203 "param" + Name 208 "param" + Name 209 "param" + Name 214 "param" + Name 215 "param" + Name 220 "param" + Name 221 "param" + Name 226 "param" + Name 227 "param" + Name 232 "param" + Name 233 "param" + Name 236 "param" + Name 238 "param" + Name 241 "param" + Name 243 "param" + Name 246 "param" + Name 248 "param" + Name 251 "param" + Name 253 "param" + Name 256 "param" + Name 258 "param" + Name 261 "param" + Name 267 "param" + Name 272 "param" + Name 276 "param" + Name 281 "param" + Name 286 "param" + Name 290 "param" + Name 292 "param" + Name 297 "param" + Name 301 "param" + Name 307 "param" + Name 311 "param" + Name 315 "param" + Name 317 "param" + Name 322 "param" + Name 327 "param" + Name 331 "param" + Name 335 "param" + Name 339 "param" + Name 341 "param" + Name 347 "param" + Name 349 "param" + Name 354 "param" + Name 358 "param" + Name 362 "param" + Name 366 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 7: TypePointer Function 6(float) - 8: TypeInt 32 0 - 9: TypePointer Function 8(int) + 8: TypeBool + 9: TypePointer Function 8(bool) 10: TypeFunction 2 7(ptr) 9(ptr) - 15: TypeInt 32 1 + 15: TypeInt 32 0 16: TypePointer Function 15(int) 17: TypeFunction 2 7(ptr) 16(ptr) - 22: TypeFloat 32 - 23: TypePointer Function 22(float) + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) 24: TypeFunction 2 7(ptr) 23(ptr) - 29: TypeFunction 2 7(ptr) 7(ptr) - 130: TypeVector 22(float) 4 - 131: TypePointer Input 130(fvec4) - 132(input): 131(ptr) Variable Input + 29: TypeFloat 32 + 30: TypePointer Function 29(float) + 31: TypeFunction 2 7(ptr) 30(ptr) + 36: TypeFunction 2 7(ptr) 7(ptr) + 41: TypeFunction 2 23(ptr) 9(ptr) + 46: TypeFunction 2 23(ptr) 16(ptr) + 51: TypeFunction 2 23(ptr) 23(ptr) + 56: TypeFunction 2 23(ptr) 30(ptr) + 61: TypeFunction 2 23(ptr) 7(ptr) + 66: TypeFunction 2 9(ptr) + 70: TypeFunction 2 16(ptr) + 74: TypeFunction 2 23(ptr) + 78: TypeFunction 2 30(ptr) + 82: TypeFunction 2 7(ptr) + 265: 6(float) Constant 0 0 + 270: 15(int) Constant 0 + 279: 29(float) Constant 0 + 284: 15(int) Constant 1 + 304: 22(int) Constant 0 + 305: 22(int) Constant 1 + 325: 29(float) Constant 1065353216 + 345: 6(float) Constant 0 1072693248 + 364: TypeVector 29(float) 4 + 365: TypePointer Input 364(fvec4) + 366(input): 365(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 34(d): 7(ptr) Variable Function - 35(param): 7(ptr) Variable Function - 37(param): 7(ptr) Variable Function - 40(u): 9(ptr) Variable Function - 41(param): 7(ptr) Variable Function - 43(param): 9(ptr) Variable Function - 46(i): 16(ptr) Variable Function - 47(param): 7(ptr) Variable Function - 49(param): 16(ptr) Variable Function - 52(f): 23(ptr) Variable Function - 53(param): 7(ptr) Variable Function - 55(param): 23(ptr) Variable Function - 60(param): 7(ptr) Variable Function - 61(param): 7(ptr) Variable Function - 66(param): 7(ptr) Variable Function - 67(param): 9(ptr) Variable Function - 72(param): 7(ptr) Variable Function - 73(param): 16(ptr) Variable Function - 78(param): 7(ptr) Variable Function - 79(param): 23(ptr) Variable Function - 84(param): 7(ptr) Variable Function - 85(param): 7(ptr) Variable Function - 90(param): 7(ptr) Variable Function - 91(param): 9(ptr) Variable Function - 96(param): 7(ptr) Variable Function - 97(param): 16(ptr) Variable Function - 102(param): 7(ptr) Variable Function - 103(param): 23(ptr) Variable Function - 108(param): 7(ptr) Variable Function - 109(param): 7(ptr) Variable Function - 114(param): 7(ptr) Variable Function - 115(param): 9(ptr) Variable Function - 120(param): 7(ptr) Variable Function - 121(param): 16(ptr) Variable Function - 126(param): 7(ptr) Variable Function - 127(param): 23(ptr) Variable Function - 36: 6(float) Load 34(d) - Store 35(param) 36 - 38: 6(float) Load 34(d) - Store 37(param) 38 - 39: 2 FunctionCall 32(foo1(d1;d1;) 35(param) 37(param) - 42: 6(float) Load 34(d) - Store 41(param) 42 - 44: 8(int) Load 40(u) - Store 43(param) 44 - 45: 2 FunctionCall 13(foo1(d1;u1;) 41(param) 43(param) - 48: 6(float) Load 34(d) - Store 47(param) 48 - 50: 15(int) Load 46(i) - Store 49(param) 50 - 51: 2 FunctionCall 20(foo1(d1;i1;) 47(param) 49(param) - 54: 6(float) Load 34(d) - Store 53(param) 54 - 56: 22(float) Load 52(f) - Store 55(param) 56 - 57: 2 FunctionCall 27(foo1(d1;f1;) 53(param) 55(param) - 58: 22(float) Load 52(f) - 59: 6(float) FConvert 58 - Store 60(param) 59 - 62: 6(float) Load 34(d) - Store 61(param) 62 - 63: 2 FunctionCall 32(foo1(d1;d1;) 60(param) 61(param) - 64: 22(float) Load 52(f) - 65: 6(float) FConvert 64 - Store 66(param) 65 - 68: 8(int) Load 40(u) - Store 67(param) 68 - 69: 2 FunctionCall 13(foo1(d1;u1;) 66(param) 67(param) - 70: 22(float) Load 52(f) - 71: 6(float) FConvert 70 - Store 72(param) 71 - 74: 15(int) Load 46(i) - Store 73(param) 74 - 75: 2 FunctionCall 20(foo1(d1;i1;) 72(param) 73(param) - 76: 22(float) Load 52(f) - 77: 6(float) FConvert 76 - Store 78(param) 77 - 80: 22(float) Load 52(f) - Store 79(param) 80 - 81: 2 FunctionCall 27(foo1(d1;f1;) 78(param) 79(param) - 82: 8(int) Load 40(u) - 83: 6(float) ConvertUToF 82 - Store 84(param) 83 - 86: 6(float) Load 34(d) - Store 85(param) 86 - 87: 2 FunctionCall 32(foo1(d1;d1;) 84(param) 85(param) - 88: 8(int) Load 40(u) - 89: 6(float) ConvertUToF 88 - Store 90(param) 89 - 92: 8(int) Load 40(u) - Store 91(param) 92 - 93: 2 FunctionCall 13(foo1(d1;u1;) 90(param) 91(param) - 94: 8(int) Load 40(u) - 95: 6(float) ConvertUToF 94 - Store 96(param) 95 - 98: 15(int) Load 46(i) - Store 97(param) 98 - 99: 2 FunctionCall 20(foo1(d1;i1;) 96(param) 97(param) - 100: 8(int) Load 40(u) - 101: 6(float) ConvertUToF 100 - Store 102(param) 101 - 104: 22(float) Load 52(f) - Store 103(param) 104 - 105: 2 FunctionCall 27(foo1(d1;f1;) 102(param) 103(param) - 106: 15(int) Load 46(i) - 107: 6(float) ConvertSToF 106 - Store 108(param) 107 - 110: 6(float) Load 34(d) - Store 109(param) 110 - 111: 2 FunctionCall 32(foo1(d1;d1;) 108(param) 109(param) - 112: 15(int) Load 46(i) - 113: 6(float) ConvertSToF 112 - Store 114(param) 113 - 116: 8(int) Load 40(u) - Store 115(param) 116 - 117: 2 FunctionCall 13(foo1(d1;u1;) 114(param) 115(param) - 118: 15(int) Load 46(i) - 119: 6(float) ConvertSToF 118 - Store 120(param) 119 - 122: 15(int) Load 46(i) - Store 121(param) 122 - 123: 2 FunctionCall 20(foo1(d1;i1;) 120(param) 121(param) - 124: 15(int) Load 46(i) - 125: 6(float) ConvertSToF 124 - Store 126(param) 125 - 128: 22(float) Load 52(f) - Store 127(param) 128 - 129: 2 FunctionCall 27(foo1(d1;f1;) 126(param) 127(param) - 133: 130(fvec4) Load 132(input) - ReturnValue 133 + 86(d): 7(ptr) Variable Function + 87(b): 9(ptr) Variable Function + 88(param): 7(ptr) Variable Function + 90(param): 9(ptr) Variable Function + 93(param): 7(ptr) Variable Function + 95(param): 7(ptr) Variable Function + 98(u): 16(ptr) Variable Function + 99(param): 7(ptr) Variable Function + 101(param): 16(ptr) Variable Function + 104(i): 23(ptr) Variable Function + 105(param): 7(ptr) Variable Function + 107(param): 23(ptr) Variable Function + 110(f): 30(ptr) Variable Function + 111(param): 7(ptr) Variable Function + 113(param): 30(ptr) Variable Function + 118(param): 7(ptr) Variable Function + 119(param): 9(ptr) Variable Function + 124(param): 7(ptr) Variable Function + 125(param): 7(ptr) Variable Function + 130(param): 7(ptr) Variable Function + 131(param): 16(ptr) Variable Function + 136(param): 7(ptr) Variable Function + 137(param): 23(ptr) Variable Function + 142(param): 7(ptr) Variable Function + 143(param): 30(ptr) Variable Function + 148(param): 7(ptr) Variable Function + 149(param): 9(ptr) Variable Function + 154(param): 7(ptr) Variable Function + 155(param): 7(ptr) Variable Function + 160(param): 7(ptr) Variable Function + 161(param): 16(ptr) Variable Function + 166(param): 7(ptr) Variable Function + 167(param): 23(ptr) Variable Function + 172(param): 7(ptr) Variable Function + 173(param): 30(ptr) Variable Function + 178(param): 7(ptr) Variable Function + 179(param): 9(ptr) Variable Function + 184(param): 7(ptr) Variable Function + 185(param): 7(ptr) Variable Function + 190(param): 7(ptr) Variable Function + 191(param): 16(ptr) Variable Function + 196(param): 7(ptr) Variable Function + 197(param): 23(ptr) Variable Function + 202(param): 7(ptr) Variable Function + 203(param): 30(ptr) Variable Function + 208(param): 23(ptr) Variable Function + 209(param): 9(ptr) Variable Function + 214(param): 23(ptr) Variable Function + 215(param): 7(ptr) Variable Function + 220(param): 23(ptr) Variable Function + 221(param): 16(ptr) Variable Function + 226(param): 23(ptr) Variable Function + 227(param): 23(ptr) Variable Function + 232(param): 23(ptr) Variable Function + 233(param): 30(ptr) Variable Function + 236(param): 23(ptr) Variable Function + 238(param): 9(ptr) Variable Function + 241(param): 23(ptr) Variable Function + 243(param): 7(ptr) Variable Function + 246(param): 23(ptr) Variable Function + 248(param): 16(ptr) Variable Function + 251(param): 23(ptr) Variable Function + 253(param): 23(ptr) Variable Function + 256(param): 23(ptr) Variable Function + 258(param): 30(ptr) Variable Function + 261(param): 9(ptr) Variable Function + 267(param): 9(ptr) Variable Function + 272(param): 9(ptr) Variable Function + 276(param): 9(ptr) Variable Function + 281(param): 9(ptr) Variable Function + 286(param): 16(ptr) Variable Function + 290(param): 16(ptr) Variable Function + 292(param): 16(ptr) Variable Function + 297(param): 16(ptr) Variable Function + 301(param): 16(ptr) Variable Function + 307(param): 23(ptr) Variable Function + 311(param): 23(ptr) Variable Function + 315(param): 23(ptr) Variable Function + 317(param): 23(ptr) Variable Function + 322(param): 23(ptr) Variable Function + 327(param): 30(ptr) Variable Function + 331(param): 30(ptr) Variable Function + 335(param): 30(ptr) Variable Function + 339(param): 30(ptr) Variable Function + 341(param): 30(ptr) Variable Function + 347(param): 7(ptr) Variable Function + 349(param): 7(ptr) Variable Function + 354(param): 7(ptr) Variable Function + 358(param): 7(ptr) Variable Function + 362(param): 7(ptr) Variable Function + 89: 6(float) Load 86(d) + Store 88(param) 89 + 91: 8(bool) Load 87(b) + Store 90(param) 91 + 92: 2 FunctionCall 13(foo1(d1;b1;) 88(param) 90(param) + 94: 6(float) Load 86(d) + Store 93(param) 94 + 96: 6(float) Load 86(d) + Store 95(param) 96 + 97: 2 FunctionCall 39(foo1(d1;d1;) 93(param) 95(param) + 100: 6(float) Load 86(d) + Store 99(param) 100 + 102: 15(int) Load 98(u) + Store 101(param) 102 + 103: 2 FunctionCall 20(foo1(d1;u1;) 99(param) 101(param) + 106: 6(float) Load 86(d) + Store 105(param) 106 + 108: 22(int) Load 104(i) + Store 107(param) 108 + 109: 2 FunctionCall 27(foo1(d1;i1;) 105(param) 107(param) + 112: 6(float) Load 86(d) + Store 111(param) 112 + 114: 29(float) Load 110(f) + Store 113(param) 114 + 115: 2 FunctionCall 34(foo1(d1;f1;) 111(param) 113(param) + 116: 29(float) Load 110(f) + 117: 6(float) FConvert 116 + Store 118(param) 117 + 120: 8(bool) Load 87(b) + Store 119(param) 120 + 121: 2 FunctionCall 13(foo1(d1;b1;) 118(param) 119(param) + 122: 29(float) Load 110(f) + 123: 6(float) FConvert 122 + Store 124(param) 123 + 126: 6(float) Load 86(d) + Store 125(param) 126 + 127: 2 FunctionCall 39(foo1(d1;d1;) 124(param) 125(param) + 128: 29(float) Load 110(f) + 129: 6(float) FConvert 128 + Store 130(param) 129 + 132: 15(int) Load 98(u) + Store 131(param) 132 + 133: 2 FunctionCall 20(foo1(d1;u1;) 130(param) 131(param) + 134: 29(float) Load 110(f) + 135: 6(float) FConvert 134 + Store 136(param) 135 + 138: 22(int) Load 104(i) + Store 137(param) 138 + 139: 2 FunctionCall 27(foo1(d1;i1;) 136(param) 137(param) + 140: 29(float) Load 110(f) + 141: 6(float) FConvert 140 + Store 142(param) 141 + 144: 29(float) Load 110(f) + Store 143(param) 144 + 145: 2 FunctionCall 34(foo1(d1;f1;) 142(param) 143(param) + 146: 15(int) Load 98(u) + 147: 6(float) ConvertUToF 146 + Store 148(param) 147 + 150: 8(bool) Load 87(b) + Store 149(param) 150 + 151: 2 FunctionCall 13(foo1(d1;b1;) 148(param) 149(param) + 152: 15(int) Load 98(u) + 153: 6(float) ConvertUToF 152 + Store 154(param) 153 + 156: 6(float) Load 86(d) + Store 155(param) 156 + 157: 2 FunctionCall 39(foo1(d1;d1;) 154(param) 155(param) + 158: 15(int) Load 98(u) + 159: 6(float) ConvertUToF 158 + Store 160(param) 159 + 162: 15(int) Load 98(u) + Store 161(param) 162 + 163: 2 FunctionCall 20(foo1(d1;u1;) 160(param) 161(param) + 164: 15(int) Load 98(u) + 165: 6(float) ConvertUToF 164 + Store 166(param) 165 + 168: 22(int) Load 104(i) + Store 167(param) 168 + 169: 2 FunctionCall 27(foo1(d1;i1;) 166(param) 167(param) + 170: 15(int) Load 98(u) + 171: 6(float) ConvertUToF 170 + Store 172(param) 171 + 174: 29(float) Load 110(f) + Store 173(param) 174 + 175: 2 FunctionCall 34(foo1(d1;f1;) 172(param) 173(param) + 176: 22(int) Load 104(i) + 177: 6(float) ConvertSToF 176 + Store 178(param) 177 + 180: 8(bool) Load 87(b) + Store 179(param) 180 + 181: 2 FunctionCall 13(foo1(d1;b1;) 178(param) 179(param) + 182: 22(int) Load 104(i) + 183: 6(float) ConvertSToF 182 + Store 184(param) 183 + 186: 6(float) Load 86(d) + Store 185(param) 186 + 187: 2 FunctionCall 39(foo1(d1;d1;) 184(param) 185(param) + 188: 22(int) Load 104(i) + 189: 6(float) ConvertSToF 188 + Store 190(param) 189 + 192: 15(int) Load 98(u) + Store 191(param) 192 + 193: 2 FunctionCall 20(foo1(d1;u1;) 190(param) 191(param) + 194: 22(int) Load 104(i) + 195: 6(float) ConvertSToF 194 + Store 196(param) 195 + 198: 22(int) Load 104(i) + Store 197(param) 198 + 199: 2 FunctionCall 27(foo1(d1;i1;) 196(param) 197(param) + 200: 22(int) Load 104(i) + 201: 6(float) ConvertSToF 200 + Store 202(param) 201 + 204: 29(float) Load 110(f) + Store 203(param) 204 + 205: 2 FunctionCall 34(foo1(d1;f1;) 202(param) 203(param) + 206: 15(int) Load 98(u) + 207: 22(int) Bitcast 206 + Store 208(param) 207 + 210: 8(bool) Load 87(b) + Store 209(param) 210 + 211: 2 FunctionCall 44(foo2(i1;b1;) 208(param) 209(param) + 212: 15(int) Load 98(u) + 213: 22(int) Bitcast 212 + Store 214(param) 213 + 216: 6(float) Load 86(d) + Store 215(param) 216 + 217: 2 FunctionCall 64(foo2(i1;d1;) 214(param) 215(param) + 218: 15(int) Load 98(u) + 219: 22(int) Bitcast 218 + Store 220(param) 219 + 222: 15(int) Load 98(u) + Store 221(param) 222 + 223: 2 FunctionCall 49(foo2(i1;u1;) 220(param) 221(param) + 224: 15(int) Load 98(u) + 225: 22(int) Bitcast 224 + Store 226(param) 225 + 228: 22(int) Load 104(i) + Store 227(param) 228 + 229: 2 FunctionCall 54(foo2(i1;i1;) 226(param) 227(param) + 230: 15(int) Load 98(u) + 231: 22(int) Bitcast 230 + Store 232(param) 231 + 234: 29(float) Load 110(f) + Store 233(param) 234 + 235: 2 FunctionCall 59(foo2(i1;f1;) 232(param) 233(param) + 237: 22(int) Load 104(i) + Store 236(param) 237 + 239: 8(bool) Load 87(b) + Store 238(param) 239 + 240: 2 FunctionCall 44(foo2(i1;b1;) 236(param) 238(param) + 242: 22(int) Load 104(i) + Store 241(param) 242 + 244: 6(float) Load 86(d) + Store 243(param) 244 + 245: 2 FunctionCall 64(foo2(i1;d1;) 241(param) 243(param) + 247: 22(int) Load 104(i) + Store 246(param) 247 + 249: 15(int) Load 98(u) + Store 248(param) 249 + 250: 2 FunctionCall 49(foo2(i1;u1;) 246(param) 248(param) + 252: 22(int) Load 104(i) + Store 251(param) 252 + 254: 22(int) Load 104(i) + Store 253(param) 254 + 255: 2 FunctionCall 54(foo2(i1;i1;) 251(param) 253(param) + 257: 22(int) Load 104(i) + Store 256(param) 257 + 259: 29(float) Load 110(f) + Store 258(param) 259 + 260: 2 FunctionCall 59(foo2(i1;f1;) 256(param) 258(param) + 262: 8(bool) Load 87(b) + Store 261(param) 262 + 263: 2 FunctionCall 68(foo3(b1;) 261(param) + 264: 6(float) Load 86(d) + 266: 8(bool) FOrdNotEqual 264 265 + Store 267(param) 266 + 268: 2 FunctionCall 68(foo3(b1;) 267(param) + 269: 15(int) Load 98(u) + 271: 8(bool) INotEqual 269 270 + Store 272(param) 271 + 273: 2 FunctionCall 68(foo3(b1;) 272(param) + 274: 22(int) Load 104(i) + 275: 8(bool) INotEqual 274 270 + Store 276(param) 275 + 277: 2 FunctionCall 68(foo3(b1;) 276(param) + 278: 29(float) Load 110(f) + 280: 8(bool) FOrdNotEqual 278 279 + Store 281(param) 280 + 282: 2 FunctionCall 68(foo3(b1;) 281(param) + 283: 8(bool) Load 87(b) + 285: 15(int) Select 283 284 270 + Store 286(param) 285 + 287: 2 FunctionCall 72(foo4(u1;) 286(param) + 288: 6(float) Load 86(d) + 289: 15(int) ConvertFToU 288 + Store 290(param) 289 + 291: 2 FunctionCall 72(foo4(u1;) 290(param) + 293: 15(int) Load 98(u) + Store 292(param) 293 + 294: 2 FunctionCall 72(foo4(u1;) 292(param) + 295: 22(int) Load 104(i) + 296: 15(int) Bitcast 295 + Store 297(param) 296 + 298: 2 FunctionCall 72(foo4(u1;) 297(param) + 299: 29(float) Load 110(f) + 300: 15(int) ConvertFToU 299 + Store 301(param) 300 + 302: 2 FunctionCall 72(foo4(u1;) 301(param) + 303: 8(bool) Load 87(b) + 306: 22(int) Select 303 305 304 + Store 307(param) 306 + 308: 2 FunctionCall 76(foo5(i1;) 307(param) + 309: 6(float) Load 86(d) + 310: 22(int) ConvertFToS 309 + Store 311(param) 310 + 312: 2 FunctionCall 76(foo5(i1;) 311(param) + 313: 15(int) Load 98(u) + 314: 22(int) Bitcast 313 + Store 315(param) 314 + 316: 2 FunctionCall 76(foo5(i1;) 315(param) + 318: 22(int) Load 104(i) + Store 317(param) 318 + 319: 2 FunctionCall 76(foo5(i1;) 317(param) + 320: 29(float) Load 110(f) + 321: 22(int) ConvertFToS 320 + Store 322(param) 321 + 323: 2 FunctionCall 76(foo5(i1;) 322(param) + 324: 8(bool) Load 87(b) + 326: 29(float) Select 324 325 279 + Store 327(param) 326 + 328: 2 FunctionCall 80(foo6(f1;) 327(param) + 329: 6(float) Load 86(d) + 330: 29(float) FConvert 329 + Store 331(param) 330 + 332: 2 FunctionCall 80(foo6(f1;) 331(param) + 333: 15(int) Load 98(u) + 334: 29(float) ConvertUToF 333 + Store 335(param) 334 + 336: 2 FunctionCall 80(foo6(f1;) 335(param) + 337: 22(int) Load 104(i) + 338: 29(float) ConvertSToF 337 + Store 339(param) 338 + 340: 2 FunctionCall 80(foo6(f1;) 339(param) + 342: 29(float) Load 110(f) + Store 341(param) 342 + 343: 2 FunctionCall 80(foo6(f1;) 341(param) + 344: 8(bool) Load 87(b) + 346: 6(float) Select 344 345 265 + Store 347(param) 346 + 348: 2 FunctionCall 84(foo7(d1;) 347(param) + 350: 6(float) Load 86(d) + Store 349(param) 350 + 351: 2 FunctionCall 84(foo7(d1;) 349(param) + 352: 15(int) Load 98(u) + 353: 6(float) ConvertUToF 352 + Store 354(param) 353 + 355: 2 FunctionCall 84(foo7(d1;) 354(param) + 356: 22(int) Load 104(i) + 357: 6(float) ConvertSToF 356 + Store 358(param) 357 + 359: 2 FunctionCall 84(foo7(d1;) 358(param) + 360: 29(float) Load 110(f) + 361: 6(float) FConvert 360 + Store 362(param) 361 + 363: 2 FunctionCall 84(foo7(d1;) 362(param) + 367: 364(fvec4) Load 366(input) + ReturnValue 367 FunctionEnd - 13(foo1(d1;u1;): 2 Function None 10 + 13(foo1(d1;b1;): 2 Function None 10 11(a): 7(ptr) FunctionParameter 12(b): 9(ptr) FunctionParameter 14: Label Return FunctionEnd - 20(foo1(d1;i1;): 2 Function None 17 + 20(foo1(d1;u1;): 2 Function None 17 18(a): 7(ptr) FunctionParameter 19(b): 16(ptr) FunctionParameter 21: Label Return FunctionEnd - 27(foo1(d1;f1;): 2 Function None 24 + 27(foo1(d1;i1;): 2 Function None 24 25(a): 7(ptr) FunctionParameter 26(b): 23(ptr) FunctionParameter 28: Label Return FunctionEnd - 32(foo1(d1;d1;): 2 Function None 29 - 30(a): 7(ptr) FunctionParameter - 31(b): 7(ptr) FunctionParameter - 33: Label + 34(foo1(d1;f1;): 2 Function None 31 + 32(a): 7(ptr) FunctionParameter + 33(b): 30(ptr) FunctionParameter + 35: Label + Return + FunctionEnd + 39(foo1(d1;d1;): 2 Function None 36 + 37(a): 7(ptr) FunctionParameter + 38(b): 7(ptr) FunctionParameter + 40: Label + Return + FunctionEnd + 44(foo2(i1;b1;): 2 Function None 41 + 42(a): 23(ptr) FunctionParameter + 43(b): 9(ptr) FunctionParameter + 45: Label + Return + FunctionEnd + 49(foo2(i1;u1;): 2 Function None 46 + 47(a): 23(ptr) FunctionParameter + 48(b): 16(ptr) FunctionParameter + 50: Label + Return + FunctionEnd + 54(foo2(i1;i1;): 2 Function None 51 + 52(a): 23(ptr) FunctionParameter + 53(b): 23(ptr) FunctionParameter + 55: Label + Return + FunctionEnd + 59(foo2(i1;f1;): 2 Function None 56 + 57(a): 23(ptr) FunctionParameter + 58(b): 30(ptr) FunctionParameter + 60: Label + Return + FunctionEnd + 64(foo2(i1;d1;): 2 Function None 61 + 62(a): 23(ptr) FunctionParameter + 63(b): 7(ptr) FunctionParameter + 65: Label + Return + FunctionEnd + 68(foo3(b1;): 2 Function None 66 + 67(b): 9(ptr) FunctionParameter + 69: Label + Return + FunctionEnd + 72(foo4(u1;): 2 Function None 70 + 71(b): 16(ptr) FunctionParameter + 73: Label + Return + FunctionEnd + 76(foo5(i1;): 2 Function None 74 + 75(b): 23(ptr) FunctionParameter + 77: Label + Return + FunctionEnd + 80(foo6(f1;): 2 Function None 78 + 79(b): 30(ptr) FunctionParameter + 81: Label + Return + FunctionEnd + 84(foo7(d1;): 2 Function None 82 + 83(b): 7(ptr) FunctionParameter + 85: Label Return FunctionEnd diff --git a/Test/hlsl.overload.frag b/Test/hlsl.overload.frag index feaee7f7..2202ae0b 100644 --- a/Test/hlsl.overload.frag +++ b/Test/hlsl.overload.frag @@ -1,35 +1,117 @@ // function selection under type conversion +void foo1(double a, bool b) {} void foo1(double a, uint b) {} void foo1(double a, int b) {} void foo1(double a, float b) {} void foo1(double a, double b){} +// uint -> int +void foo2(int a, bool b) {} +void foo2(int a, uint b) {} +void foo2(int a, int b) {} +void foo2(int a, float b) {} +void foo2(int a, double b){} + +// everything can promote +void foo3(bool b) {} +void foo4(uint b) {} +void foo5(int b) {} +void foo6(float b) {} +void foo7(double b){} + +// shorter forward chain better than longer or backward chain +void foo8(float); +void foo8(double); +void foo9(int); +void foo9(uint); +void foo10(bool); +void foo10(int); + float4 PixelShaderFunction(float4 input) : COLOR0 { + bool b; double d; uint u; int i; float f; + foo1(d, b); foo1(d, d); foo1(d, u); foo1(d, i); foo1(d, f); + foo1(f, b); foo1(f, d); foo1(f, u); foo1(f, i); foo1(f, f); + foo1(u, b); foo1(u, d); foo1(u, u); foo1(u, i); foo1(u, f); + foo1(i, b); foo1(i, d); foo1(i, u); foo1(i, i); foo1(i, f); + foo2(u, b); + foo2(u, d); + foo2(u, u); + foo2(u, i); + foo2(u, f); + + foo2(i, b); + foo2(i, d); + foo2(i, u); + foo2(i, i); + foo2(i, f); + + foo3(b); + foo3(d); + foo3(u); + foo3(i); + foo3(f); + + foo4(b); + foo4(d); + foo4(u); + foo4(i); + foo4(f); + + foo5(b); + foo5(d); + foo5(u); + foo5(i); + foo5(f); + + foo6(b); + foo6(d); + foo6(u); + foo6(i); + foo6(f); + + foo7(b); + foo7(d); + foo7(u); + foo7(i); + foo7(f); + + foo8(b); + foo8(u); + foo8(i); + + foo9(b); + foo9(f); + foo9(d); + + foo10(u); + foo10(f); + foo10(d); + return input; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index f77aad9a..b239be15 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1433" -#define GLSLANG_DATE "24-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1434" +#define GLSLANG_DATE "25-Aug-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index bfa2deaa..325f84f8 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -750,6 +750,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EOpDivAssign: // ... case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions + case EOpFunctionCall: // conversion of a calling parameter return true; default: break; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9e2bb87e..07eb00ff 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3567,27 +3567,46 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu return true; if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) return false; - return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType()); + return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall); }; // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. auto better = [](const TType& from, const TType& to1, const TType& to2) { - // 1. exact match + // exact match is always better than mismatch if (from == to2) return from != to1; if (from == to1) return false; - // 2. float -> double is better + // float -> double is better than any other float conversion if (from.getBasicType() == EbtFloat) { if (to2.getBasicType() == EbtDouble && to1.getBasicType() != EbtDouble) return true; } - // 3. -> float is better than -> double - return to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble; + // int -> uint is better than any other int conversion + if (from.getBasicType() == EbtInt) { + if (to2.getBasicType() == EbtUint && to1.getBasicType() != EbtUint) + return true; + } + + // TODO: these should be replaced by a more generic "shorter chain is better than longer chain" rule + + // -> float is better than -> double + if (to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble) + return true; + + // -> int is better than -> bool + if ((to2.getBasicType() == EbtInt || to2.getBasicType() == EbtUint) && to1.getBasicType() == EbtBool) + return true; + + // -> uint is better than -> int + if (to2.getBasicType() == EbtUint && to1.getBasicType() == EbtInt) + return true; + + return false; }; // for ambiguity reporting From 26aa8a4b16ece4106e403db047546f94062fc4ff Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Thu, 25 Aug 2016 17:13:25 -0400 Subject: [PATCH 092/217] HLSL: Format updates and some minor adjustments to SV_ handling --- hlsl/hlslParseHelper.cpp | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 42edf7bc..8e87c6e2 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -756,18 +756,14 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l if (inEntrypoint) { // parameters are actually shader-level inputs unsigned int inCount = 0, outCount = 0; - for (int i = 0; i < function.getParamCount(); i++) - { + for (int i = 0; i < function.getParamCount(); i++) { // Fragment programs do not use ordering for the output layout position, rather it is // embedded in the semantic - if (function[i].type->getQualifier().isParamOutput() && language != EShLangFragment) - { - if (function[i].type->getQualifier().builtIn == EbvNone) + if (function[i].type->getQualifier().isParamOutput() ) { + if (function[i].type->getQualifier().builtIn == EbvNone && language != EShLangFragment) function[i].type->getQualifier().layoutLocation = outCount++; function[i].type->getQualifier().storage = EvqVaryingOut; - } - else - { + } else { if (function[i].type->getQualifier().builtIn == EbvNone) function[i].type->getQualifier().layoutLocation = inCount++; function[i].type->getQualifier().storage = EvqVaryingIn; @@ -2276,7 +2272,9 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) // TODO: need to know if it's an input or an output // The following sketches what needs to be done, but can't be right // without taking into account stage and input/output. - + + TString semanticUpperCase = semantic; + std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); // in DX9, all outputs had to have a semantic associated with them, that was either consumed // by the system or was a specific register assignment // in DX10+, only semantics with the SV_ prefix have any meaning beyond decoration @@ -2284,24 +2282,23 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) // Also, in DX10 if a SV value is present as the input of a stage, but isn't appropriate for that // stage, it would just be ignored as it is likely there as part of an output struct from one stage // to the next - bool bParseDX9 = false; + + bool bParseDX9 = false; if (bParseDX9) { - if (semantic == "PSIZE") + if (semanticUpperCase == "PSIZE") type.getQualifier().builtIn = EbvPointSize; else if (semantic == "FOG") type.getQualifier().builtIn = EbvFogFragCoord; - else if (semantic == "DEPTH" || semantic == "SV_Depth") + else if (semanticUpperCase == "DEPTH") type.getQualifier().builtIn = EbvFragDepth; - else if (semantic == "VFACE" || semantic == "SV_IsFrontFace") + else if (semanticUpperCase == "VFACE") type.getQualifier().builtIn = EbvFace; - else if (semantic == "VPOS" || semantic == "SV_Position") + else if (semanticUpperCase == "VPOS") type.getQualifier().builtIn = EbvFragCoord; } - TString semanticUpperCase = semantic; - std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); { //SV Position has a different meaning in vertex vs fragment if (semanticUpperCase == "SV_POSITION" && language != EShLangFragment) From e3f2c8f98ac45549c2b72a0e6f44483fac4fb58d Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 25 Aug 2016 15:57:56 -0600 Subject: [PATCH 093/217] HLSL: Include shape-changing conversions in overloaded signature selection. This also enables vecN -> vec1 shape conversions for all places doing shape conversions. For signature selection, makes shape changes worse than any other comparison when deciding what conversions are better than others. --- .../hlsl.intrinsics.negative.frag.out | 97 +- Test/baseResults/hlsl.overload.frag.out | 2119 ++++++++++------- Test/hlsl.overload.frag | 227 +- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 10 +- hlsl/hlslParseHelper.cpp | 75 +- 6 files changed, 1504 insertions(+), 1026 deletions(-) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 74dd6c4e..90fc2127 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -1,12 +1,6 @@ hlsl.intrinsics.negative.frag -ERROR: 0:8: 'cross' : no matching overloaded function found -ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:10: 'determinant' : no matching overloaded function found ERROR: 0:12: 'f32tof16' : unimplemented intrinsic: handle natively -ERROR: 0:23: 'length' : no matching overloaded function found -ERROR: 0:25: 'normalize' : no matching overloaded function found -ERROR: 0:26: 'reflect' : no matching overloaded function found -ERROR: 0:27: 'refract' : no matching overloaded function found ERROR: 0:28: 'refract' : no matching overloaded function found ERROR: 0:30: 'transpose' : no matching overloaded function found ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found @@ -23,7 +17,6 @@ ERROR: 0:67: 'determinant' : no matching overloaded function found ERROR: 0:68: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:73: 'transpose' : no matching overloaded function found ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:83: 'cross' : no matching overloaded function found ERROR: 0:84: 'determinant' : no matching overloaded function found ERROR: 0:85: 'f32tof16' : unimplemented intrinsic: handle natively ERROR: 0:90: 'transpose' : no matching overloaded function found @@ -66,7 +59,7 @@ ERROR: 0:133: 'normalize' : no matching overloaded function found ERROR: 0:133: 'reflect' : no matching overloaded function found ERROR: 0:133: 'refract' : no matching overloaded function found ERROR: 0:133: 'reversebits' : no matching overloaded function found -ERROR: 67 compilation errors. No code generated. +ERROR: 60 compilation errors. No code generated. Shader version: 450 @@ -91,10 +84,14 @@ ERROR: node is still EOpNull! 0:7 bitCount (global uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 +0:8 cross-product (global 3-component vector of float) +0:8 Construct vec3 (in 3-component vector of float) +0:8 'inF0' (in float) +0:8 Construct vec3 (in 3-component vector of float) +0:8 'inF1' (in float) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Construct vec4 (in 4-component vector of float) +0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op @@ -107,8 +104,9 @@ ERROR: node is still EOpNull! 0:14 findLSB (global uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 Constant: -0:23 0.000000 +0:23 length (global float) +0:23 Construct vec2 (in 2-component vector of float) +0:23 'inF0' (in float) 0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) @@ -120,12 +118,20 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 +0:25 normalize (global 2-component vector of float) +0:25 Construct vec2 (in 2-component vector of float) +0:25 'inF0' (in float) +0:26 reflect (global 2-component vector of float) +0:26 Construct vec2 (in 2-component vector of float) +0:26 'inF0' (in float) +0:26 Construct vec2 (in 2-component vector of float) +0:26 'inF1' (in float) +0:27 refract (global 2-component vector of float) +0:27 Construct vec2 (in 2-component vector of float) +0:27 'inF0' (in float) +0:27 Construct vec2 (in 2-component vector of float) +0:27 'inF1' (in float) +0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 0:29 bitFieldReverse (global uint) @@ -239,8 +245,11 @@ ERROR: node is still EOpNull! 0:82 bitCount (global 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (in 4-component vector of float) -0:83 Constant: -0:83 0.000000 +0:83 cross-product (global 3-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF0' (in 4-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF1' (in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op @@ -423,10 +432,14 @@ ERROR: node is still EOpNull! 0:7 bitCount (global uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 +0:8 cross-product (global 3-component vector of float) +0:8 Construct vec3 (in 3-component vector of float) +0:8 'inF0' (in float) +0:8 Construct vec3 (in 3-component vector of float) +0:8 'inF1' (in float) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Construct vec4 (in 4-component vector of float) +0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op @@ -439,8 +452,9 @@ ERROR: node is still EOpNull! 0:14 findLSB (global uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 Constant: -0:23 0.000000 +0:23 length (global float) +0:23 Construct vec2 (in 2-component vector of float) +0:23 'inF0' (in float) 0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) @@ -452,12 +466,20 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 Constant: -0:25 0.000000 -0:26 Constant: -0:26 0.000000 -0:27 Constant: -0:27 0.000000 +0:25 normalize (global 2-component vector of float) +0:25 Construct vec2 (in 2-component vector of float) +0:25 'inF0' (in float) +0:26 reflect (global 2-component vector of float) +0:26 Construct vec2 (in 2-component vector of float) +0:26 'inF0' (in float) +0:26 Construct vec2 (in 2-component vector of float) +0:26 'inF1' (in float) +0:27 refract (global 2-component vector of float) +0:27 Construct vec2 (in 2-component vector of float) +0:27 'inF0' (in float) +0:27 Construct vec2 (in 2-component vector of float) +0:27 'inF1' (in float) +0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 0:29 bitFieldReverse (global uint) @@ -571,8 +593,11 @@ ERROR: node is still EOpNull! 0:82 bitCount (global 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (in 4-component vector of float) -0:83 Constant: -0:83 0.000000 +0:83 cross-product (global 3-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF0' (in 4-component vector of float) +0:83 Construct vec3 (in 3-component vector of float) +0:83 'inF1' (in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 7b69a54b..83217581 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -57,219 +57,299 @@ gl_FragCoord origin is upper left 0:23 Function Definition: foo7(d1; (global void) 0:20 Function Parameters: 0:20 'b' (in double) -0:118 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:24 Function Definition: foo8(f1; (global void) +0:23 Function Parameters: +0:23 '' (in float) +0:25 Function Definition: foo8(d1; (global void) +0:24 Function Parameters: +0:24 '' (in double) +0:26 Function Definition: foo9(i1; (global void) +0:25 Function Parameters: +0:25 '' (in int) +0:27 Function Definition: foo9(u1; (global void) +0:26 Function Parameters: +0:26 '' (in uint) +0:28 Function Definition: foo10(b1; (global void) +0:27 Function Parameters: +0:27 '' (in bool) +0:31 Function Definition: foo10(i1; (global void) +0:28 Function Parameters: +0:28 '' (in int) +0:32 Function Definition: foo11(vf3; (global void) 0:31 Function Parameters: -0:31 'input' (in 4-component vector of float) +0:31 '' (in 3-component vector of float) +0:33 Function Definition: foo11(d1; (global void) +0:32 Function Parameters: +0:32 '' (in double) +0:34 Function Definition: foo11(vi3; (global void) +0:33 Function Parameters: +0:33 '' (in 3-component vector of int) +0:35 Function Definition: foo11(u1; (global void) +0:34 Function Parameters: +0:34 '' (in uint) +0:36 Function Definition: foo12(vf1; (global void) +0:35 Function Parameters: +0:35 '' (in 1-component vector of float) +0:37 Function Definition: foo12(vd3; (global void) +0:36 Function Parameters: +0:36 '' (in 3-component vector of double) +0:38 Function Definition: foo16(u1; (global void) +0:37 Function Parameters: +0:37 '' (in uint) +0:41 Function Definition: foo16(vu2; (global void) +0:38 Function Parameters: +0:38 '' (in 2-component vector of uint) +0:42 Function Definition: foo13(vf3; (global void) +0:41 Function Parameters: +0:41 '' (in 3-component vector of float) +0:43 Function Definition: foo14(vi1; (global void) +0:42 Function Parameters: +0:42 '' (in 1-component vector of int) +0:45 Function Definition: foo15(vb1; (global void) +0:43 Function Parameters: +0:43 '' (in 1-component vector of bool) +0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Parameters: +0:46 'input' (in 4-component vector of float) 0:? Sequence -0:38 Function Call: foo1(d1;b1; (global void) -0:38 'd' (temp double) -0:38 'b' (temp bool) -0:39 Function Call: foo1(d1;d1; (global void) -0:39 'd' (temp double) -0:39 'd' (temp double) -0:40 Function Call: foo1(d1;u1; (global void) -0:40 'd' (temp double) -0:40 'u' (temp uint) -0:41 Function Call: foo1(d1;i1; (global void) -0:41 'd' (temp double) -0:41 'i' (temp int) -0:42 Function Call: foo1(d1;f1; (global void) -0:42 'd' (temp double) -0:42 'f' (temp float) -0:44 Function Call: foo1(d1;b1; (global void) -0:44 Convert float to double (temp double) -0:44 'f' (temp float) -0:44 'b' (temp bool) -0:45 Function Call: foo1(d1;d1; (global void) -0:45 Convert float to double (temp double) -0:45 'f' (temp float) -0:45 'd' (temp double) -0:46 Function Call: foo1(d1;u1; (global void) -0:46 Convert float to double (temp double) -0:46 'f' (temp float) -0:46 'u' (temp uint) -0:47 Function Call: foo1(d1;i1; (global void) -0:47 Convert float to double (temp double) -0:47 'f' (temp float) -0:47 'i' (temp int) -0:48 Function Call: foo1(d1;f1; (global void) -0:48 Convert float to double (temp double) -0:48 'f' (temp float) -0:48 'f' (temp float) -0:50 Function Call: foo1(d1;b1; (global void) -0:50 Convert uint to double (temp double) -0:50 'u' (temp uint) -0:50 'b' (temp bool) -0:51 Function Call: foo1(d1;d1; (global void) -0:51 Convert uint to double (temp double) -0:51 'u' (temp uint) -0:51 'd' (temp double) -0:52 Function Call: foo1(d1;u1; (global void) -0:52 Convert uint to double (temp double) -0:52 'u' (temp uint) -0:52 'u' (temp uint) -0:53 Function Call: foo1(d1;i1; (global void) -0:53 Convert uint to double (temp double) -0:53 'u' (temp uint) -0:53 'i' (temp int) -0:54 Function Call: foo1(d1;f1; (global void) -0:54 Convert uint to double (temp double) -0:54 'u' (temp uint) -0:54 'f' (temp float) -0:56 Function Call: foo1(d1;b1; (global void) -0:56 Convert int to double (temp double) -0:56 'i' (temp int) -0:56 'b' (temp bool) -0:57 Function Call: foo1(d1;d1; (global void) -0:57 Convert int to double (temp double) -0:57 'i' (temp int) +0:53 Function Call: foo1(d1;b1; (global void) +0:53 'd' (temp double) +0:53 'b' (temp bool) +0:54 Function Call: foo1(d1;d1; (global void) +0:54 'd' (temp double) +0:54 'd' (temp double) +0:55 Function Call: foo1(d1;u1; (global void) +0:55 'd' (temp double) +0:55 'u' (temp uint) +0:56 Function Call: foo1(d1;i1; (global void) +0:56 'd' (temp double) +0:56 'i' (temp int) +0:57 Function Call: foo1(d1;f1; (global void) 0:57 'd' (temp double) -0:58 Function Call: foo1(d1;u1; (global void) -0:58 Convert int to double (temp double) -0:58 'i' (temp int) -0:58 'u' (temp uint) -0:59 Function Call: foo1(d1;i1; (global void) -0:59 Convert int to double (temp double) -0:59 'i' (temp int) -0:59 'i' (temp int) -0:60 Function Call: foo1(d1;f1; (global void) -0:60 Convert int to double (temp double) -0:60 'i' (temp int) -0:60 'f' (temp float) -0:62 Function Call: foo2(i1;b1; (global void) -0:62 Convert uint to int (temp int) -0:62 'u' (temp uint) -0:62 'b' (temp bool) -0:63 Function Call: foo2(i1;d1; (global void) -0:63 Convert uint to int (temp int) -0:63 'u' (temp uint) -0:63 'd' (temp double) -0:64 Function Call: foo2(i1;u1; (global void) -0:64 Convert uint to int (temp int) -0:64 'u' (temp uint) -0:64 'u' (temp uint) -0:65 Function Call: foo2(i1;i1; (global void) -0:65 Convert uint to int (temp int) +0:57 'f' (temp float) +0:59 Function Call: foo1(d1;b1; (global void) +0:59 Convert float to double (temp double) +0:59 'f' (temp float) +0:59 'b' (temp bool) +0:60 Function Call: foo1(d1;d1; (global void) +0:60 Convert float to double (temp double) +0:60 'f' (temp float) +0:60 'd' (temp double) +0:61 Function Call: foo1(d1;u1; (global void) +0:61 Convert float to double (temp double) +0:61 'f' (temp float) +0:61 'u' (temp uint) +0:62 Function Call: foo1(d1;i1; (global void) +0:62 Convert float to double (temp double) +0:62 'f' (temp float) +0:62 'i' (temp int) +0:63 Function Call: foo1(d1;f1; (global void) +0:63 Convert float to double (temp double) +0:63 'f' (temp float) +0:63 'f' (temp float) +0:65 Function Call: foo1(d1;b1; (global void) +0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) -0:65 'i' (temp int) -0:66 Function Call: foo2(i1;f1; (global void) -0:66 Convert uint to int (temp int) +0:65 'b' (temp bool) +0:66 Function Call: foo1(d1;d1; (global void) +0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) -0:66 'f' (temp float) -0:68 Function Call: foo2(i1;b1; (global void) +0:66 'd' (temp double) +0:67 Function Call: foo1(d1;u1; (global void) +0:67 Convert uint to double (temp double) +0:67 'u' (temp uint) +0:67 'u' (temp uint) +0:68 Function Call: foo1(d1;i1; (global void) +0:68 Convert uint to double (temp double) +0:68 'u' (temp uint) 0:68 'i' (temp int) -0:68 'b' (temp bool) -0:69 Function Call: foo2(i1;d1; (global void) -0:69 'i' (temp int) -0:69 'd' (temp double) -0:70 Function Call: foo2(i1;u1; (global void) -0:70 'i' (temp int) -0:70 'u' (temp uint) -0:71 Function Call: foo2(i1;i1; (global void) -0:71 'i' (temp int) -0:71 'i' (temp int) -0:72 Function Call: foo2(i1;f1; (global void) -0:72 'i' (temp int) -0:72 'f' (temp float) -0:74 Function Call: foo3(b1; (global void) -0:74 'b' (temp bool) -0:75 Function Call: foo3(b1; (global void) -0:75 Convert double to bool (temp bool) -0:75 'd' (temp double) -0:76 Function Call: foo3(b1; (global void) -0:76 Convert uint to bool (temp bool) -0:76 'u' (temp uint) -0:77 Function Call: foo3(b1; (global void) -0:77 Convert int to bool (temp bool) -0:77 'i' (temp int) -0:78 Function Call: foo3(b1; (global void) -0:78 Convert float to bool (temp bool) -0:78 'f' (temp float) -0:80 Function Call: foo4(u1; (global void) -0:80 Convert bool to uint (temp uint) -0:80 'b' (temp bool) -0:81 Function Call: foo4(u1; (global void) -0:81 Convert double to uint (temp uint) -0:81 'd' (temp double) -0:82 Function Call: foo4(u1; (global void) -0:82 'u' (temp uint) -0:83 Function Call: foo4(u1; (global void) -0:83 Convert int to uint (temp uint) -0:83 'i' (temp int) -0:84 Function Call: foo4(u1; (global void) -0:84 Convert float to uint (temp uint) -0:84 'f' (temp float) -0:86 Function Call: foo5(i1; (global void) -0:86 Convert bool to int (temp int) -0:86 'b' (temp bool) -0:87 Function Call: foo5(i1; (global void) -0:87 Convert double to int (temp int) -0:87 'd' (temp double) -0:88 Function Call: foo5(i1; (global void) -0:88 Convert uint to int (temp int) -0:88 'u' (temp uint) -0:89 Function Call: foo5(i1; (global void) -0:89 'i' (temp int) -0:90 Function Call: foo5(i1; (global void) -0:90 Convert float to int (temp int) -0:90 'f' (temp float) -0:92 Function Call: foo6(f1; (global void) -0:92 Convert bool to float (temp float) -0:92 'b' (temp bool) -0:93 Function Call: foo6(f1; (global void) -0:93 Convert double to float (temp float) -0:93 'd' (temp double) -0:94 Function Call: foo6(f1; (global void) -0:94 Convert uint to float (temp float) -0:94 'u' (temp uint) -0:95 Function Call: foo6(f1; (global void) -0:95 Convert int to float (temp float) -0:95 'i' (temp int) -0:96 Function Call: foo6(f1; (global void) -0:96 'f' (temp float) -0:98 Function Call: foo7(d1; (global void) -0:98 Convert bool to double (temp double) -0:98 'b' (temp bool) -0:99 Function Call: foo7(d1; (global void) -0:99 'd' (temp double) -0:100 Function Call: foo7(d1; (global void) -0:100 Convert uint to double (temp double) -0:100 'u' (temp uint) -0:101 Function Call: foo7(d1; (global void) -0:101 Convert int to double (temp double) -0:101 'i' (temp int) -0:102 Function Call: foo7(d1; (global void) -0:102 Convert float to double (temp double) -0:102 'f' (temp float) -0:104 Function Call: foo8(f1; (global void) -0:104 Convert bool to float (temp float) -0:104 'b' (temp bool) -0:105 Function Call: foo8(f1; (global void) -0:105 Convert uint to float (temp float) -0:105 'u' (temp uint) -0:106 Function Call: foo8(f1; (global void) -0:106 Convert int to float (temp float) -0:106 'i' (temp int) -0:108 Function Call: foo9(u1; (global void) -0:108 Convert bool to uint (temp uint) -0:108 'b' (temp bool) -0:109 Function Call: foo9(u1; (global void) -0:109 Convert float to uint (temp uint) -0:109 'f' (temp float) -0:110 Function Call: foo9(u1; (global void) -0:110 Convert double to uint (temp uint) -0:110 'd' (temp double) -0:112 Function Call: foo10(i1; (global void) -0:112 Convert uint to int (temp int) -0:112 'u' (temp uint) -0:113 Function Call: foo10(i1; (global void) -0:113 Convert float to int (temp int) -0:113 'f' (temp float) -0:114 Function Call: foo10(i1; (global void) -0:114 Convert double to int (temp int) -0:114 'd' (temp double) -0:116 Branch: Return with expression -0:116 'input' (in 4-component vector of float) +0:69 Function Call: foo1(d1;f1; (global void) +0:69 Convert uint to double (temp double) +0:69 'u' (temp uint) +0:69 'f' (temp float) +0:71 Function Call: foo1(d1;b1; (global void) +0:71 Convert int to double (temp double) +0:71 'i' (temp int) +0:71 'b' (temp bool) +0:72 Function Call: foo1(d1;d1; (global void) +0:72 Convert int to double (temp double) +0:72 'i' (temp int) +0:72 'd' (temp double) +0:73 Function Call: foo1(d1;u1; (global void) +0:73 Convert int to double (temp double) +0:73 'i' (temp int) +0:73 'u' (temp uint) +0:74 Function Call: foo1(d1;i1; (global void) +0:74 Convert int to double (temp double) +0:74 'i' (temp int) +0:74 'i' (temp int) +0:75 Function Call: foo1(d1;f1; (global void) +0:75 Convert int to double (temp double) +0:75 'i' (temp int) +0:75 'f' (temp float) +0:77 Function Call: foo2(i1;b1; (global void) +0:77 Convert uint to int (temp int) +0:77 'u' (temp uint) +0:77 'b' (temp bool) +0:78 Function Call: foo2(i1;d1; (global void) +0:78 Convert uint to int (temp int) +0:78 'u' (temp uint) +0:78 'd' (temp double) +0:79 Function Call: foo2(i1;u1; (global void) +0:79 Convert uint to int (temp int) +0:79 'u' (temp uint) +0:79 'u' (temp uint) +0:80 Function Call: foo2(i1;i1; (global void) +0:80 Convert uint to int (temp int) +0:80 'u' (temp uint) +0:80 'i' (temp int) +0:81 Function Call: foo2(i1;f1; (global void) +0:81 Convert uint to int (temp int) +0:81 'u' (temp uint) +0:81 'f' (temp float) +0:83 Function Call: foo2(i1;b1; (global void) +0:83 'i' (temp int) +0:83 'b' (temp bool) +0:84 Function Call: foo2(i1;d1; (global void) +0:84 'i' (temp int) +0:84 'd' (temp double) +0:85 Function Call: foo2(i1;u1; (global void) +0:85 'i' (temp int) +0:85 'u' (temp uint) +0:86 Function Call: foo2(i1;i1; (global void) +0:86 'i' (temp int) +0:86 'i' (temp int) +0:87 Function Call: foo2(i1;f1; (global void) +0:87 'i' (temp int) +0:87 'f' (temp float) +0:89 Function Call: foo3(b1; (global void) +0:89 'b' (temp bool) +0:90 Function Call: foo3(b1; (global void) +0:90 Convert double to bool (temp bool) +0:90 'd' (temp double) +0:91 Function Call: foo3(b1; (global void) +0:91 Convert uint to bool (temp bool) +0:91 'u' (temp uint) +0:92 Function Call: foo3(b1; (global void) +0:92 Convert int to bool (temp bool) +0:92 'i' (temp int) +0:93 Function Call: foo3(b1; (global void) +0:93 Convert float to bool (temp bool) +0:93 'f' (temp float) +0:95 Function Call: foo4(u1; (global void) +0:95 Convert bool to uint (temp uint) +0:95 'b' (temp bool) +0:96 Function Call: foo4(u1; (global void) +0:96 Convert double to uint (temp uint) +0:96 'd' (temp double) +0:97 Function Call: foo4(u1; (global void) +0:97 'u' (temp uint) +0:98 Function Call: foo4(u1; (global void) +0:98 Convert int to uint (temp uint) +0:98 'i' (temp int) +0:99 Function Call: foo4(u1; (global void) +0:99 Convert float to uint (temp uint) +0:99 'f' (temp float) +0:101 Function Call: foo5(i1; (global void) +0:101 Convert bool to int (temp int) +0:101 'b' (temp bool) +0:102 Function Call: foo5(i1; (global void) +0:102 Convert double to int (temp int) +0:102 'd' (temp double) +0:103 Function Call: foo5(i1; (global void) +0:103 Convert uint to int (temp int) +0:103 'u' (temp uint) +0:104 Function Call: foo5(i1; (global void) +0:104 'i' (temp int) +0:105 Function Call: foo5(i1; (global void) +0:105 Convert float to int (temp int) +0:105 'f' (temp float) +0:107 Function Call: foo6(f1; (global void) +0:107 Convert bool to float (temp float) +0:107 'b' (temp bool) +0:108 Function Call: foo6(f1; (global void) +0:108 Convert double to float (temp float) +0:108 'd' (temp double) +0:109 Function Call: foo6(f1; (global void) +0:109 Convert uint to float (temp float) +0:109 'u' (temp uint) +0:110 Function Call: foo6(f1; (global void) +0:110 Convert int to float (temp float) +0:110 'i' (temp int) +0:111 Function Call: foo6(f1; (global void) +0:111 'f' (temp float) +0:113 Function Call: foo7(d1; (global void) +0:113 Convert bool to double (temp double) +0:113 'b' (temp bool) +0:114 Function Call: foo7(d1; (global void) +0:114 'd' (temp double) +0:115 Function Call: foo7(d1; (global void) +0:115 Convert uint to double (temp double) +0:115 'u' (temp uint) +0:116 Function Call: foo7(d1; (global void) +0:116 Convert int to double (temp double) +0:116 'i' (temp int) +0:117 Function Call: foo7(d1; (global void) +0:117 Convert float to double (temp double) +0:117 'f' (temp float) +0:119 Function Call: foo8(f1; (global void) +0:119 Convert bool to float (temp float) +0:119 'b' (temp bool) +0:120 Function Call: foo8(f1; (global void) +0:120 Convert uint to float (temp float) +0:120 'u' (temp uint) +0:121 Function Call: foo8(f1; (global void) +0:121 Convert int to float (temp float) +0:121 'i' (temp int) +0:123 Function Call: foo9(i1; (global void) +0:123 Convert bool to int (temp int) +0:123 'b' (temp bool) +0:124 Function Call: foo9(u1; (global void) +0:124 Convert float to uint (temp uint) +0:124 'f' (temp float) +0:125 Function Call: foo9(u1; (global void) +0:125 Convert double to uint (temp uint) +0:125 'd' (temp double) +0:127 Function Call: foo10(i1; (global void) +0:127 Convert uint to int (temp int) +0:127 'u' (temp uint) +0:128 Function Call: foo10(i1; (global void) +0:128 Convert float to int (temp int) +0:128 'f' (temp float) +0:129 Function Call: foo10(i1; (global void) +0:129 Convert double to int (temp int) +0:129 'd' (temp double) +0:131 Function Call: foo11(u1; (global void) +0:131 Convert bool to uint (temp uint) +0:131 'b' (temp bool) +0:132 Function Call: foo11(d1; (global void) +0:132 Convert float to double (temp double) +0:132 'f' (temp float) +0:133 Function Call: foo12(vd3; (global void) +0:133 Convert float to double (temp 3-component vector of double) +0:133 Construct vec3 (temp 3-component vector of float) +0:133 'f' (temp float) +0:134 Function Call: foo16(vu2; (global void) +0:? Convert int to uint (temp 2-component vector of uint) +0:? Construct ivec2 (temp 2-component vector of int) +0:134 'i' (temp int) +0:134 'i' (temp int) +0:136 Function Call: foo13(vf3; (global void) +0:136 Construct vec3 (in 3-component vector of float) +0:136 'f' (temp float) +0:137 Function Call: foo14(vi1; (global void) +0:137 Construct int (in 1-component vector of int) +0:137 Construct ivec4 (temp 4-component vector of int) +0:137 'i' (temp int) +0:138 Function Call: foo15(vb1; (global void) +0:138 Construct bool (in 1-component vector of bool) +0:138 'b' (temp bool) +0:139 Function Call: foo15(vb1; (global void) +0:139 Construct bool (in 1-component vector of bool) +0:139 Construct bvec3 (temp 3-component vector of bool) +0:139 'b' (temp bool) +0:141 Branch: Return with expression +0:141 'input' (in 4-component vector of float) 0:? Linker Objects @@ -334,231 +414,310 @@ gl_FragCoord origin is upper left 0:23 Function Definition: foo7(d1; (global void) 0:20 Function Parameters: 0:20 'b' (in double) -0:118 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:24 Function Definition: foo8(f1; (global void) +0:23 Function Parameters: +0:23 '' (in float) +0:25 Function Definition: foo8(d1; (global void) +0:24 Function Parameters: +0:24 '' (in double) +0:26 Function Definition: foo9(i1; (global void) +0:25 Function Parameters: +0:25 '' (in int) +0:27 Function Definition: foo9(u1; (global void) +0:26 Function Parameters: +0:26 '' (in uint) +0:28 Function Definition: foo10(b1; (global void) +0:27 Function Parameters: +0:27 '' (in bool) +0:31 Function Definition: foo10(i1; (global void) +0:28 Function Parameters: +0:28 '' (in int) +0:32 Function Definition: foo11(vf3; (global void) 0:31 Function Parameters: -0:31 'input' (in 4-component vector of float) +0:31 '' (in 3-component vector of float) +0:33 Function Definition: foo11(d1; (global void) +0:32 Function Parameters: +0:32 '' (in double) +0:34 Function Definition: foo11(vi3; (global void) +0:33 Function Parameters: +0:33 '' (in 3-component vector of int) +0:35 Function Definition: foo11(u1; (global void) +0:34 Function Parameters: +0:34 '' (in uint) +0:36 Function Definition: foo12(vf1; (global void) +0:35 Function Parameters: +0:35 '' (in 1-component vector of float) +0:37 Function Definition: foo12(vd3; (global void) +0:36 Function Parameters: +0:36 '' (in 3-component vector of double) +0:38 Function Definition: foo16(u1; (global void) +0:37 Function Parameters: +0:37 '' (in uint) +0:41 Function Definition: foo16(vu2; (global void) +0:38 Function Parameters: +0:38 '' (in 2-component vector of uint) +0:42 Function Definition: foo13(vf3; (global void) +0:41 Function Parameters: +0:41 '' (in 3-component vector of float) +0:43 Function Definition: foo14(vi1; (global void) +0:42 Function Parameters: +0:42 '' (in 1-component vector of int) +0:45 Function Definition: foo15(vb1; (global void) +0:43 Function Parameters: +0:43 '' (in 1-component vector of bool) +0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Parameters: +0:46 'input' (in 4-component vector of float) 0:? Sequence -0:38 Function Call: foo1(d1;b1; (global void) -0:38 'd' (temp double) -0:38 'b' (temp bool) -0:39 Function Call: foo1(d1;d1; (global void) -0:39 'd' (temp double) -0:39 'd' (temp double) -0:40 Function Call: foo1(d1;u1; (global void) -0:40 'd' (temp double) -0:40 'u' (temp uint) -0:41 Function Call: foo1(d1;i1; (global void) -0:41 'd' (temp double) -0:41 'i' (temp int) -0:42 Function Call: foo1(d1;f1; (global void) -0:42 'd' (temp double) -0:42 'f' (temp float) -0:44 Function Call: foo1(d1;b1; (global void) -0:44 Convert float to double (temp double) -0:44 'f' (temp float) -0:44 'b' (temp bool) -0:45 Function Call: foo1(d1;d1; (global void) -0:45 Convert float to double (temp double) -0:45 'f' (temp float) -0:45 'd' (temp double) -0:46 Function Call: foo1(d1;u1; (global void) -0:46 Convert float to double (temp double) -0:46 'f' (temp float) -0:46 'u' (temp uint) -0:47 Function Call: foo1(d1;i1; (global void) -0:47 Convert float to double (temp double) -0:47 'f' (temp float) -0:47 'i' (temp int) -0:48 Function Call: foo1(d1;f1; (global void) -0:48 Convert float to double (temp double) -0:48 'f' (temp float) -0:48 'f' (temp float) -0:50 Function Call: foo1(d1;b1; (global void) -0:50 Convert uint to double (temp double) -0:50 'u' (temp uint) -0:50 'b' (temp bool) -0:51 Function Call: foo1(d1;d1; (global void) -0:51 Convert uint to double (temp double) -0:51 'u' (temp uint) -0:51 'd' (temp double) -0:52 Function Call: foo1(d1;u1; (global void) -0:52 Convert uint to double (temp double) -0:52 'u' (temp uint) -0:52 'u' (temp uint) -0:53 Function Call: foo1(d1;i1; (global void) -0:53 Convert uint to double (temp double) -0:53 'u' (temp uint) -0:53 'i' (temp int) -0:54 Function Call: foo1(d1;f1; (global void) -0:54 Convert uint to double (temp double) -0:54 'u' (temp uint) -0:54 'f' (temp float) -0:56 Function Call: foo1(d1;b1; (global void) -0:56 Convert int to double (temp double) -0:56 'i' (temp int) -0:56 'b' (temp bool) -0:57 Function Call: foo1(d1;d1; (global void) -0:57 Convert int to double (temp double) -0:57 'i' (temp int) +0:53 Function Call: foo1(d1;b1; (global void) +0:53 'd' (temp double) +0:53 'b' (temp bool) +0:54 Function Call: foo1(d1;d1; (global void) +0:54 'd' (temp double) +0:54 'd' (temp double) +0:55 Function Call: foo1(d1;u1; (global void) +0:55 'd' (temp double) +0:55 'u' (temp uint) +0:56 Function Call: foo1(d1;i1; (global void) +0:56 'd' (temp double) +0:56 'i' (temp int) +0:57 Function Call: foo1(d1;f1; (global void) 0:57 'd' (temp double) -0:58 Function Call: foo1(d1;u1; (global void) -0:58 Convert int to double (temp double) -0:58 'i' (temp int) -0:58 'u' (temp uint) -0:59 Function Call: foo1(d1;i1; (global void) -0:59 Convert int to double (temp double) -0:59 'i' (temp int) -0:59 'i' (temp int) -0:60 Function Call: foo1(d1;f1; (global void) -0:60 Convert int to double (temp double) -0:60 'i' (temp int) -0:60 'f' (temp float) -0:62 Function Call: foo2(i1;b1; (global void) -0:62 Convert uint to int (temp int) -0:62 'u' (temp uint) -0:62 'b' (temp bool) -0:63 Function Call: foo2(i1;d1; (global void) -0:63 Convert uint to int (temp int) -0:63 'u' (temp uint) -0:63 'd' (temp double) -0:64 Function Call: foo2(i1;u1; (global void) -0:64 Convert uint to int (temp int) -0:64 'u' (temp uint) -0:64 'u' (temp uint) -0:65 Function Call: foo2(i1;i1; (global void) -0:65 Convert uint to int (temp int) +0:57 'f' (temp float) +0:59 Function Call: foo1(d1;b1; (global void) +0:59 Convert float to double (temp double) +0:59 'f' (temp float) +0:59 'b' (temp bool) +0:60 Function Call: foo1(d1;d1; (global void) +0:60 Convert float to double (temp double) +0:60 'f' (temp float) +0:60 'd' (temp double) +0:61 Function Call: foo1(d1;u1; (global void) +0:61 Convert float to double (temp double) +0:61 'f' (temp float) +0:61 'u' (temp uint) +0:62 Function Call: foo1(d1;i1; (global void) +0:62 Convert float to double (temp double) +0:62 'f' (temp float) +0:62 'i' (temp int) +0:63 Function Call: foo1(d1;f1; (global void) +0:63 Convert float to double (temp double) +0:63 'f' (temp float) +0:63 'f' (temp float) +0:65 Function Call: foo1(d1;b1; (global void) +0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) -0:65 'i' (temp int) -0:66 Function Call: foo2(i1;f1; (global void) -0:66 Convert uint to int (temp int) +0:65 'b' (temp bool) +0:66 Function Call: foo1(d1;d1; (global void) +0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) -0:66 'f' (temp float) -0:68 Function Call: foo2(i1;b1; (global void) +0:66 'd' (temp double) +0:67 Function Call: foo1(d1;u1; (global void) +0:67 Convert uint to double (temp double) +0:67 'u' (temp uint) +0:67 'u' (temp uint) +0:68 Function Call: foo1(d1;i1; (global void) +0:68 Convert uint to double (temp double) +0:68 'u' (temp uint) 0:68 'i' (temp int) -0:68 'b' (temp bool) -0:69 Function Call: foo2(i1;d1; (global void) -0:69 'i' (temp int) -0:69 'd' (temp double) -0:70 Function Call: foo2(i1;u1; (global void) -0:70 'i' (temp int) -0:70 'u' (temp uint) -0:71 Function Call: foo2(i1;i1; (global void) -0:71 'i' (temp int) -0:71 'i' (temp int) -0:72 Function Call: foo2(i1;f1; (global void) -0:72 'i' (temp int) -0:72 'f' (temp float) -0:74 Function Call: foo3(b1; (global void) -0:74 'b' (temp bool) -0:75 Function Call: foo3(b1; (global void) -0:75 Convert double to bool (temp bool) -0:75 'd' (temp double) -0:76 Function Call: foo3(b1; (global void) -0:76 Convert uint to bool (temp bool) -0:76 'u' (temp uint) -0:77 Function Call: foo3(b1; (global void) -0:77 Convert int to bool (temp bool) -0:77 'i' (temp int) -0:78 Function Call: foo3(b1; (global void) -0:78 Convert float to bool (temp bool) -0:78 'f' (temp float) -0:80 Function Call: foo4(u1; (global void) -0:80 Convert bool to uint (temp uint) -0:80 'b' (temp bool) -0:81 Function Call: foo4(u1; (global void) -0:81 Convert double to uint (temp uint) -0:81 'd' (temp double) -0:82 Function Call: foo4(u1; (global void) -0:82 'u' (temp uint) -0:83 Function Call: foo4(u1; (global void) -0:83 Convert int to uint (temp uint) -0:83 'i' (temp int) -0:84 Function Call: foo4(u1; (global void) -0:84 Convert float to uint (temp uint) -0:84 'f' (temp float) -0:86 Function Call: foo5(i1; (global void) -0:86 Convert bool to int (temp int) -0:86 'b' (temp bool) -0:87 Function Call: foo5(i1; (global void) -0:87 Convert double to int (temp int) -0:87 'd' (temp double) -0:88 Function Call: foo5(i1; (global void) -0:88 Convert uint to int (temp int) -0:88 'u' (temp uint) -0:89 Function Call: foo5(i1; (global void) -0:89 'i' (temp int) -0:90 Function Call: foo5(i1; (global void) -0:90 Convert float to int (temp int) -0:90 'f' (temp float) -0:92 Function Call: foo6(f1; (global void) -0:92 Convert bool to float (temp float) -0:92 'b' (temp bool) -0:93 Function Call: foo6(f1; (global void) -0:93 Convert double to float (temp float) -0:93 'd' (temp double) -0:94 Function Call: foo6(f1; (global void) -0:94 Convert uint to float (temp float) -0:94 'u' (temp uint) -0:95 Function Call: foo6(f1; (global void) -0:95 Convert int to float (temp float) -0:95 'i' (temp int) -0:96 Function Call: foo6(f1; (global void) -0:96 'f' (temp float) -0:98 Function Call: foo7(d1; (global void) -0:98 Convert bool to double (temp double) -0:98 'b' (temp bool) -0:99 Function Call: foo7(d1; (global void) -0:99 'd' (temp double) -0:100 Function Call: foo7(d1; (global void) -0:100 Convert uint to double (temp double) -0:100 'u' (temp uint) -0:101 Function Call: foo7(d1; (global void) -0:101 Convert int to double (temp double) -0:101 'i' (temp int) -0:102 Function Call: foo7(d1; (global void) -0:102 Convert float to double (temp double) -0:102 'f' (temp float) -0:104 Function Call: foo8(f1; (global void) -0:104 Convert bool to float (temp float) -0:104 'b' (temp bool) -0:105 Function Call: foo8(f1; (global void) -0:105 Convert uint to float (temp float) -0:105 'u' (temp uint) -0:106 Function Call: foo8(f1; (global void) -0:106 Convert int to float (temp float) -0:106 'i' (temp int) -0:108 Function Call: foo9(u1; (global void) -0:108 Convert bool to uint (temp uint) -0:108 'b' (temp bool) -0:109 Function Call: foo9(u1; (global void) -0:109 Convert float to uint (temp uint) -0:109 'f' (temp float) -0:110 Function Call: foo9(u1; (global void) -0:110 Convert double to uint (temp uint) -0:110 'd' (temp double) -0:112 Function Call: foo10(i1; (global void) -0:112 Convert uint to int (temp int) -0:112 'u' (temp uint) -0:113 Function Call: foo10(i1; (global void) -0:113 Convert float to int (temp int) -0:113 'f' (temp float) -0:114 Function Call: foo10(i1; (global void) -0:114 Convert double to int (temp int) -0:114 'd' (temp double) -0:116 Branch: Return with expression -0:116 'input' (in 4-component vector of float) +0:69 Function Call: foo1(d1;f1; (global void) +0:69 Convert uint to double (temp double) +0:69 'u' (temp uint) +0:69 'f' (temp float) +0:71 Function Call: foo1(d1;b1; (global void) +0:71 Convert int to double (temp double) +0:71 'i' (temp int) +0:71 'b' (temp bool) +0:72 Function Call: foo1(d1;d1; (global void) +0:72 Convert int to double (temp double) +0:72 'i' (temp int) +0:72 'd' (temp double) +0:73 Function Call: foo1(d1;u1; (global void) +0:73 Convert int to double (temp double) +0:73 'i' (temp int) +0:73 'u' (temp uint) +0:74 Function Call: foo1(d1;i1; (global void) +0:74 Convert int to double (temp double) +0:74 'i' (temp int) +0:74 'i' (temp int) +0:75 Function Call: foo1(d1;f1; (global void) +0:75 Convert int to double (temp double) +0:75 'i' (temp int) +0:75 'f' (temp float) +0:77 Function Call: foo2(i1;b1; (global void) +0:77 Convert uint to int (temp int) +0:77 'u' (temp uint) +0:77 'b' (temp bool) +0:78 Function Call: foo2(i1;d1; (global void) +0:78 Convert uint to int (temp int) +0:78 'u' (temp uint) +0:78 'd' (temp double) +0:79 Function Call: foo2(i1;u1; (global void) +0:79 Convert uint to int (temp int) +0:79 'u' (temp uint) +0:79 'u' (temp uint) +0:80 Function Call: foo2(i1;i1; (global void) +0:80 Convert uint to int (temp int) +0:80 'u' (temp uint) +0:80 'i' (temp int) +0:81 Function Call: foo2(i1;f1; (global void) +0:81 Convert uint to int (temp int) +0:81 'u' (temp uint) +0:81 'f' (temp float) +0:83 Function Call: foo2(i1;b1; (global void) +0:83 'i' (temp int) +0:83 'b' (temp bool) +0:84 Function Call: foo2(i1;d1; (global void) +0:84 'i' (temp int) +0:84 'd' (temp double) +0:85 Function Call: foo2(i1;u1; (global void) +0:85 'i' (temp int) +0:85 'u' (temp uint) +0:86 Function Call: foo2(i1;i1; (global void) +0:86 'i' (temp int) +0:86 'i' (temp int) +0:87 Function Call: foo2(i1;f1; (global void) +0:87 'i' (temp int) +0:87 'f' (temp float) +0:89 Function Call: foo3(b1; (global void) +0:89 'b' (temp bool) +0:90 Function Call: foo3(b1; (global void) +0:90 Convert double to bool (temp bool) +0:90 'd' (temp double) +0:91 Function Call: foo3(b1; (global void) +0:91 Convert uint to bool (temp bool) +0:91 'u' (temp uint) +0:92 Function Call: foo3(b1; (global void) +0:92 Convert int to bool (temp bool) +0:92 'i' (temp int) +0:93 Function Call: foo3(b1; (global void) +0:93 Convert float to bool (temp bool) +0:93 'f' (temp float) +0:95 Function Call: foo4(u1; (global void) +0:95 Convert bool to uint (temp uint) +0:95 'b' (temp bool) +0:96 Function Call: foo4(u1; (global void) +0:96 Convert double to uint (temp uint) +0:96 'd' (temp double) +0:97 Function Call: foo4(u1; (global void) +0:97 'u' (temp uint) +0:98 Function Call: foo4(u1; (global void) +0:98 Convert int to uint (temp uint) +0:98 'i' (temp int) +0:99 Function Call: foo4(u1; (global void) +0:99 Convert float to uint (temp uint) +0:99 'f' (temp float) +0:101 Function Call: foo5(i1; (global void) +0:101 Convert bool to int (temp int) +0:101 'b' (temp bool) +0:102 Function Call: foo5(i1; (global void) +0:102 Convert double to int (temp int) +0:102 'd' (temp double) +0:103 Function Call: foo5(i1; (global void) +0:103 Convert uint to int (temp int) +0:103 'u' (temp uint) +0:104 Function Call: foo5(i1; (global void) +0:104 'i' (temp int) +0:105 Function Call: foo5(i1; (global void) +0:105 Convert float to int (temp int) +0:105 'f' (temp float) +0:107 Function Call: foo6(f1; (global void) +0:107 Convert bool to float (temp float) +0:107 'b' (temp bool) +0:108 Function Call: foo6(f1; (global void) +0:108 Convert double to float (temp float) +0:108 'd' (temp double) +0:109 Function Call: foo6(f1; (global void) +0:109 Convert uint to float (temp float) +0:109 'u' (temp uint) +0:110 Function Call: foo6(f1; (global void) +0:110 Convert int to float (temp float) +0:110 'i' (temp int) +0:111 Function Call: foo6(f1; (global void) +0:111 'f' (temp float) +0:113 Function Call: foo7(d1; (global void) +0:113 Convert bool to double (temp double) +0:113 'b' (temp bool) +0:114 Function Call: foo7(d1; (global void) +0:114 'd' (temp double) +0:115 Function Call: foo7(d1; (global void) +0:115 Convert uint to double (temp double) +0:115 'u' (temp uint) +0:116 Function Call: foo7(d1; (global void) +0:116 Convert int to double (temp double) +0:116 'i' (temp int) +0:117 Function Call: foo7(d1; (global void) +0:117 Convert float to double (temp double) +0:117 'f' (temp float) +0:119 Function Call: foo8(f1; (global void) +0:119 Convert bool to float (temp float) +0:119 'b' (temp bool) +0:120 Function Call: foo8(f1; (global void) +0:120 Convert uint to float (temp float) +0:120 'u' (temp uint) +0:121 Function Call: foo8(f1; (global void) +0:121 Convert int to float (temp float) +0:121 'i' (temp int) +0:123 Function Call: foo9(i1; (global void) +0:123 Convert bool to int (temp int) +0:123 'b' (temp bool) +0:124 Function Call: foo9(u1; (global void) +0:124 Convert float to uint (temp uint) +0:124 'f' (temp float) +0:125 Function Call: foo9(u1; (global void) +0:125 Convert double to uint (temp uint) +0:125 'd' (temp double) +0:127 Function Call: foo10(i1; (global void) +0:127 Convert uint to int (temp int) +0:127 'u' (temp uint) +0:128 Function Call: foo10(i1; (global void) +0:128 Convert float to int (temp int) +0:128 'f' (temp float) +0:129 Function Call: foo10(i1; (global void) +0:129 Convert double to int (temp int) +0:129 'd' (temp double) +0:131 Function Call: foo11(u1; (global void) +0:131 Convert bool to uint (temp uint) +0:131 'b' (temp bool) +0:132 Function Call: foo11(d1; (global void) +0:132 Convert float to double (temp double) +0:132 'f' (temp float) +0:133 Function Call: foo12(vd3; (global void) +0:133 Convert float to double (temp 3-component vector of double) +0:133 Construct vec3 (temp 3-component vector of float) +0:133 'f' (temp float) +0:134 Function Call: foo16(vu2; (global void) +0:? Convert int to uint (temp 2-component vector of uint) +0:? Construct ivec2 (temp 2-component vector of int) +0:134 'i' (temp int) +0:134 'i' (temp int) +0:136 Function Call: foo13(vf3; (global void) +0:136 Construct vec3 (in 3-component vector of float) +0:136 'f' (temp float) +0:137 Function Call: foo14(vi1; (global void) +0:137 Construct int (in 1-component vector of int) +0:137 Construct ivec4 (temp 4-component vector of int) +0:137 'i' (temp int) +0:138 Function Call: foo15(vb1; (global void) +0:138 Construct bool (in 1-component vector of bool) +0:138 'b' (temp bool) +0:139 Function Call: foo15(vb1; (global void) +0:139 Construct bool (in 1-component vector of bool) +0:139 Construct bvec3 (temp 3-component vector of bool) +0:139 'b' (temp bool) +0:141 Branch: Return with expression +0:141 'input' (in 4-component vector of float) 0:? Linker Objects -Missing functionality: missing user function; linker needs to catch that // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 369 +// Id's are bound by 507 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 366 + EntryPoint Fragment 4 "PixelShaderFunction" 504 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 13 "foo1(d1;b1;" @@ -601,97 +760,148 @@ Missing functionality: missing user function; linker needs to catch that Name 79 "b" Name 84 "foo7(d1;" Name 83 "b" - Name 86 "d" - Name 87 "b" - Name 88 "param" - Name 90 "param" - Name 93 "param" - Name 95 "param" - Name 98 "u" - Name 99 "param" - Name 101 "param" - Name 104 "i" - Name 105 "param" - Name 107 "param" - Name 110 "f" - Name 111 "param" - Name 113 "param" - Name 118 "param" - Name 119 "param" - Name 124 "param" - Name 125 "param" - Name 130 "param" - Name 131 "param" - Name 136 "param" - Name 137 "param" - Name 142 "param" - Name 143 "param" - Name 148 "param" - Name 149 "param" - Name 154 "param" - Name 155 "param" - Name 160 "param" - Name 161 "param" - Name 166 "param" - Name 167 "param" - Name 172 "param" - Name 173 "param" - Name 178 "param" - Name 179 "param" - Name 184 "param" - Name 185 "param" - Name 190 "param" - Name 191 "param" - Name 196 "param" - Name 197 "param" - Name 202 "param" - Name 203 "param" - Name 208 "param" - Name 209 "param" - Name 214 "param" - Name 215 "param" - Name 220 "param" - Name 221 "param" - Name 226 "param" - Name 227 "param" - Name 232 "param" - Name 233 "param" + Name 87 "foo8(f1;" + Name 86 "" + Name 90 "foo8(d1;" + Name 89 "" + Name 93 "foo9(i1;" + Name 92 "" + Name 96 "foo9(u1;" + Name 95 "" + Name 99 "foo10(b1;" + Name 98 "" + Name 102 "foo10(i1;" + Name 101 "" + Name 108 "foo11(vf3;" + Name 107 "" + Name 111 "foo11(d1;" + Name 110 "" + Name 117 "foo11(vi3;" + Name 116 "" + Name 120 "foo11(u1;" + Name 119 "" + Name 123 "foo12(vf1;" + Name 122 "" + Name 129 "foo12(vd3;" + Name 128 "" + Name 132 "foo16(u1;" + Name 131 "" + Name 138 "foo16(vu2;" + Name 137 "" + Name 141 "foo13(vf3;" + Name 140 "" + Name 144 "foo14(vi1;" + Name 143 "" + Name 147 "foo15(vb1;" + Name 146 "" + Name 149 "d" + Name 150 "b" + Name 151 "param" + Name 153 "param" + Name 156 "param" + Name 158 "param" + Name 161 "u" + Name 162 "param" + Name 164 "param" + Name 167 "i" + Name 168 "param" + Name 170 "param" + Name 173 "f" + Name 174 "param" + Name 176 "param" + Name 181 "param" + Name 182 "param" + Name 187 "param" + Name 188 "param" + Name 193 "param" + Name 194 "param" + Name 199 "param" + Name 200 "param" + Name 205 "param" + Name 206 "param" + Name 211 "param" + Name 212 "param" + Name 217 "param" + Name 218 "param" + Name 223 "param" + Name 224 "param" + Name 229 "param" + Name 230 "param" + Name 235 "param" Name 236 "param" - Name 238 "param" Name 241 "param" - Name 243 "param" - Name 246 "param" + Name 242 "param" + Name 247 "param" Name 248 "param" - Name 251 "param" Name 253 "param" - Name 256 "param" - Name 258 "param" - Name 261 "param" - Name 267 "param" + Name 254 "param" + Name 259 "param" + Name 260 "param" + Name 265 "param" + Name 266 "param" + Name 271 "param" Name 272 "param" - Name 276 "param" - Name 281 "param" - Name 286 "param" + Name 277 "param" + Name 278 "param" + Name 283 "param" + Name 284 "param" + Name 289 "param" Name 290 "param" - Name 292 "param" - Name 297 "param" + Name 295 "param" + Name 296 "param" + Name 299 "param" Name 301 "param" - Name 307 "param" + Name 304 "param" + Name 306 "param" + Name 309 "param" Name 311 "param" - Name 315 "param" - Name 317 "param" - Name 322 "param" - Name 327 "param" - Name 331 "param" + Name 314 "param" + Name 316 "param" + Name 319 "param" + Name 321 "param" + Name 324 "param" + Name 330 "param" Name 335 "param" Name 339 "param" - Name 341 "param" - Name 347 "param" + Name 344 "param" Name 349 "param" - Name 354 "param" - Name 358 "param" - Name 362 "param" - Name 366 "input" + Name 353 "param" + Name 355 "param" + Name 360 "param" + Name 364 "param" + Name 370 "param" + Name 374 "param" + Name 378 "param" + Name 380 "param" + Name 385 "param" + Name 390 "param" + Name 394 "param" + Name 398 "param" + Name 402 "param" + Name 404 "param" + Name 410 "param" + Name 412 "param" + Name 417 "param" + Name 421 "param" + Name 425 "param" + Name 429 "param" + Name 433 "param" + Name 437 "param" + Name 441 "param" + Name 445 "param" + Name 449 "param" + Name 453 "param" + Name 457 "param" + Name 461 "param" + Name 465 "param" + Name 469 "param" + Name 474 "param" + Name 481 "param" + Name 485 "param" + Name 491 "param" + Name 494 "param" + Name 500 "param" + Name 504 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -719,376 +929,480 @@ Missing functionality: missing user function; linker needs to catch that 74: TypeFunction 2 23(ptr) 78: TypeFunction 2 30(ptr) 82: TypeFunction 2 7(ptr) - 265: 6(float) Constant 0 0 - 270: 15(int) Constant 0 - 279: 29(float) Constant 0 - 284: 15(int) Constant 1 - 304: 22(int) Constant 0 - 305: 22(int) Constant 1 - 325: 29(float) Constant 1065353216 - 345: 6(float) Constant 0 1072693248 - 364: TypeVector 29(float) 4 - 365: TypePointer Input 364(fvec4) - 366(input): 365(ptr) Variable Input + 104: TypeVector 29(float) 3 + 105: TypePointer Function 104(fvec3) + 106: TypeFunction 2 105(ptr) + 113: TypeVector 22(int) 3 + 114: TypePointer Function 113(ivec3) + 115: TypeFunction 2 114(ptr) + 125: TypeVector 6(float) 3 + 126: TypePointer Function 125(fvec3) + 127: TypeFunction 2 126(ptr) + 134: TypeVector 15(int) 2 + 135: TypePointer Function 134(ivec2) + 136: TypeFunction 2 135(ptr) + 328: 6(float) Constant 0 0 + 333: 15(int) Constant 0 + 342: 29(float) Constant 0 + 347: 15(int) Constant 1 + 367: 22(int) Constant 0 + 368: 22(int) Constant 1 + 388: 29(float) Constant 1065353216 + 408: 6(float) Constant 0 1072693248 + 478: TypeVector 22(int) 2 + 488: TypeVector 22(int) 4 + 497: TypeVector 8(bool) 3 + 502: TypeVector 29(float) 4 + 503: TypePointer Input 502(fvec4) + 504(input): 503(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 86(d): 7(ptr) Variable Function - 87(b): 9(ptr) Variable Function - 88(param): 7(ptr) Variable Function - 90(param): 9(ptr) Variable Function - 93(param): 7(ptr) Variable Function - 95(param): 7(ptr) Variable Function - 98(u): 16(ptr) Variable Function - 99(param): 7(ptr) Variable Function - 101(param): 16(ptr) Variable Function - 104(i): 23(ptr) Variable Function - 105(param): 7(ptr) Variable Function - 107(param): 23(ptr) Variable Function - 110(f): 30(ptr) Variable Function - 111(param): 7(ptr) Variable Function - 113(param): 30(ptr) Variable Function - 118(param): 7(ptr) Variable Function - 119(param): 9(ptr) Variable Function - 124(param): 7(ptr) Variable Function - 125(param): 7(ptr) Variable Function - 130(param): 7(ptr) Variable Function - 131(param): 16(ptr) Variable Function - 136(param): 7(ptr) Variable Function - 137(param): 23(ptr) Variable Function - 142(param): 7(ptr) Variable Function - 143(param): 30(ptr) Variable Function - 148(param): 7(ptr) Variable Function - 149(param): 9(ptr) Variable Function - 154(param): 7(ptr) Variable Function - 155(param): 7(ptr) Variable Function - 160(param): 7(ptr) Variable Function - 161(param): 16(ptr) Variable Function - 166(param): 7(ptr) Variable Function - 167(param): 23(ptr) Variable Function - 172(param): 7(ptr) Variable Function - 173(param): 30(ptr) Variable Function - 178(param): 7(ptr) Variable Function - 179(param): 9(ptr) Variable Function - 184(param): 7(ptr) Variable Function - 185(param): 7(ptr) Variable Function - 190(param): 7(ptr) Variable Function - 191(param): 16(ptr) Variable Function - 196(param): 7(ptr) Variable Function - 197(param): 23(ptr) Variable Function - 202(param): 7(ptr) Variable Function - 203(param): 30(ptr) Variable Function - 208(param): 23(ptr) Variable Function - 209(param): 9(ptr) Variable Function - 214(param): 23(ptr) Variable Function - 215(param): 7(ptr) Variable Function - 220(param): 23(ptr) Variable Function - 221(param): 16(ptr) Variable Function - 226(param): 23(ptr) Variable Function - 227(param): 23(ptr) Variable Function - 232(param): 23(ptr) Variable Function - 233(param): 30(ptr) Variable Function - 236(param): 23(ptr) Variable Function - 238(param): 9(ptr) Variable Function - 241(param): 23(ptr) Variable Function - 243(param): 7(ptr) Variable Function - 246(param): 23(ptr) Variable Function - 248(param): 16(ptr) Variable Function - 251(param): 23(ptr) Variable Function - 253(param): 23(ptr) Variable Function - 256(param): 23(ptr) Variable Function - 258(param): 30(ptr) Variable Function - 261(param): 9(ptr) Variable Function - 267(param): 9(ptr) Variable Function + 149(d): 7(ptr) Variable Function + 150(b): 9(ptr) Variable Function + 151(param): 7(ptr) Variable Function + 153(param): 9(ptr) Variable Function + 156(param): 7(ptr) Variable Function + 158(param): 7(ptr) Variable Function + 161(u): 16(ptr) Variable Function + 162(param): 7(ptr) Variable Function + 164(param): 16(ptr) Variable Function + 167(i): 23(ptr) Variable Function + 168(param): 7(ptr) Variable Function + 170(param): 23(ptr) Variable Function + 173(f): 30(ptr) Variable Function + 174(param): 7(ptr) Variable Function + 176(param): 30(ptr) Variable Function + 181(param): 7(ptr) Variable Function + 182(param): 9(ptr) Variable Function + 187(param): 7(ptr) Variable Function + 188(param): 7(ptr) Variable Function + 193(param): 7(ptr) Variable Function + 194(param): 16(ptr) Variable Function + 199(param): 7(ptr) Variable Function + 200(param): 23(ptr) Variable Function + 205(param): 7(ptr) Variable Function + 206(param): 30(ptr) Variable Function + 211(param): 7(ptr) Variable Function + 212(param): 9(ptr) Variable Function + 217(param): 7(ptr) Variable Function + 218(param): 7(ptr) Variable Function + 223(param): 7(ptr) Variable Function + 224(param): 16(ptr) Variable Function + 229(param): 7(ptr) Variable Function + 230(param): 23(ptr) Variable Function + 235(param): 7(ptr) Variable Function + 236(param): 30(ptr) Variable Function + 241(param): 7(ptr) Variable Function + 242(param): 9(ptr) Variable Function + 247(param): 7(ptr) Variable Function + 248(param): 7(ptr) Variable Function + 253(param): 7(ptr) Variable Function + 254(param): 16(ptr) Variable Function + 259(param): 7(ptr) Variable Function + 260(param): 23(ptr) Variable Function + 265(param): 7(ptr) Variable Function + 266(param): 30(ptr) Variable Function + 271(param): 23(ptr) Variable Function 272(param): 9(ptr) Variable Function - 276(param): 9(ptr) Variable Function - 281(param): 9(ptr) Variable Function - 286(param): 16(ptr) Variable Function - 290(param): 16(ptr) Variable Function - 292(param): 16(ptr) Variable Function - 297(param): 16(ptr) Variable Function - 301(param): 16(ptr) Variable Function - 307(param): 23(ptr) Variable Function - 311(param): 23(ptr) Variable Function - 315(param): 23(ptr) Variable Function - 317(param): 23(ptr) Variable Function - 322(param): 23(ptr) Variable Function - 327(param): 30(ptr) Variable Function - 331(param): 30(ptr) Variable Function - 335(param): 30(ptr) Variable Function - 339(param): 30(ptr) Variable Function - 341(param): 30(ptr) Variable Function - 347(param): 7(ptr) Variable Function - 349(param): 7(ptr) Variable Function - 354(param): 7(ptr) Variable Function - 358(param): 7(ptr) Variable Function - 362(param): 7(ptr) Variable Function - 89: 6(float) Load 86(d) - Store 88(param) 89 - 91: 8(bool) Load 87(b) - Store 90(param) 91 - 92: 2 FunctionCall 13(foo1(d1;b1;) 88(param) 90(param) - 94: 6(float) Load 86(d) - Store 93(param) 94 - 96: 6(float) Load 86(d) - Store 95(param) 96 - 97: 2 FunctionCall 39(foo1(d1;d1;) 93(param) 95(param) - 100: 6(float) Load 86(d) - Store 99(param) 100 - 102: 15(int) Load 98(u) - Store 101(param) 102 - 103: 2 FunctionCall 20(foo1(d1;u1;) 99(param) 101(param) - 106: 6(float) Load 86(d) - Store 105(param) 106 - 108: 22(int) Load 104(i) - Store 107(param) 108 - 109: 2 FunctionCall 27(foo1(d1;i1;) 105(param) 107(param) - 112: 6(float) Load 86(d) - Store 111(param) 112 - 114: 29(float) Load 110(f) - Store 113(param) 114 - 115: 2 FunctionCall 34(foo1(d1;f1;) 111(param) 113(param) - 116: 29(float) Load 110(f) - 117: 6(float) FConvert 116 - Store 118(param) 117 - 120: 8(bool) Load 87(b) - Store 119(param) 120 - 121: 2 FunctionCall 13(foo1(d1;b1;) 118(param) 119(param) - 122: 29(float) Load 110(f) - 123: 6(float) FConvert 122 - Store 124(param) 123 - 126: 6(float) Load 86(d) - Store 125(param) 126 - 127: 2 FunctionCall 39(foo1(d1;d1;) 124(param) 125(param) - 128: 29(float) Load 110(f) - 129: 6(float) FConvert 128 - Store 130(param) 129 - 132: 15(int) Load 98(u) - Store 131(param) 132 - 133: 2 FunctionCall 20(foo1(d1;u1;) 130(param) 131(param) - 134: 29(float) Load 110(f) - 135: 6(float) FConvert 134 - Store 136(param) 135 - 138: 22(int) Load 104(i) - Store 137(param) 138 - 139: 2 FunctionCall 27(foo1(d1;i1;) 136(param) 137(param) - 140: 29(float) Load 110(f) - 141: 6(float) FConvert 140 - Store 142(param) 141 - 144: 29(float) Load 110(f) - Store 143(param) 144 - 145: 2 FunctionCall 34(foo1(d1;f1;) 142(param) 143(param) - 146: 15(int) Load 98(u) - 147: 6(float) ConvertUToF 146 - Store 148(param) 147 - 150: 8(bool) Load 87(b) - Store 149(param) 150 - 151: 2 FunctionCall 13(foo1(d1;b1;) 148(param) 149(param) - 152: 15(int) Load 98(u) - 153: 6(float) ConvertUToF 152 - Store 154(param) 153 - 156: 6(float) Load 86(d) - Store 155(param) 156 - 157: 2 FunctionCall 39(foo1(d1;d1;) 154(param) 155(param) - 158: 15(int) Load 98(u) - 159: 6(float) ConvertUToF 158 - Store 160(param) 159 - 162: 15(int) Load 98(u) - Store 161(param) 162 - 163: 2 FunctionCall 20(foo1(d1;u1;) 160(param) 161(param) - 164: 15(int) Load 98(u) - 165: 6(float) ConvertUToF 164 - Store 166(param) 165 - 168: 22(int) Load 104(i) - Store 167(param) 168 - 169: 2 FunctionCall 27(foo1(d1;i1;) 166(param) 167(param) - 170: 15(int) Load 98(u) - 171: 6(float) ConvertUToF 170 - Store 172(param) 171 - 174: 29(float) Load 110(f) - Store 173(param) 174 - 175: 2 FunctionCall 34(foo1(d1;f1;) 172(param) 173(param) - 176: 22(int) Load 104(i) - 177: 6(float) ConvertSToF 176 - Store 178(param) 177 - 180: 8(bool) Load 87(b) - Store 179(param) 180 - 181: 2 FunctionCall 13(foo1(d1;b1;) 178(param) 179(param) - 182: 22(int) Load 104(i) - 183: 6(float) ConvertSToF 182 - Store 184(param) 183 - 186: 6(float) Load 86(d) - Store 185(param) 186 - 187: 2 FunctionCall 39(foo1(d1;d1;) 184(param) 185(param) - 188: 22(int) Load 104(i) - 189: 6(float) ConvertSToF 188 - Store 190(param) 189 - 192: 15(int) Load 98(u) - Store 191(param) 192 - 193: 2 FunctionCall 20(foo1(d1;u1;) 190(param) 191(param) - 194: 22(int) Load 104(i) - 195: 6(float) ConvertSToF 194 - Store 196(param) 195 - 198: 22(int) Load 104(i) - Store 197(param) 198 - 199: 2 FunctionCall 27(foo1(d1;i1;) 196(param) 197(param) - 200: 22(int) Load 104(i) - 201: 6(float) ConvertSToF 200 - Store 202(param) 201 - 204: 29(float) Load 110(f) - Store 203(param) 204 - 205: 2 FunctionCall 34(foo1(d1;f1;) 202(param) 203(param) - 206: 15(int) Load 98(u) - 207: 22(int) Bitcast 206 - Store 208(param) 207 - 210: 8(bool) Load 87(b) - Store 209(param) 210 - 211: 2 FunctionCall 44(foo2(i1;b1;) 208(param) 209(param) - 212: 15(int) Load 98(u) - 213: 22(int) Bitcast 212 - Store 214(param) 213 - 216: 6(float) Load 86(d) - Store 215(param) 216 - 217: 2 FunctionCall 64(foo2(i1;d1;) 214(param) 215(param) - 218: 15(int) Load 98(u) - 219: 22(int) Bitcast 218 - Store 220(param) 219 - 222: 15(int) Load 98(u) - Store 221(param) 222 - 223: 2 FunctionCall 49(foo2(i1;u1;) 220(param) 221(param) - 224: 15(int) Load 98(u) - 225: 22(int) Bitcast 224 - Store 226(param) 225 - 228: 22(int) Load 104(i) - Store 227(param) 228 - 229: 2 FunctionCall 54(foo2(i1;i1;) 226(param) 227(param) - 230: 15(int) Load 98(u) - 231: 22(int) Bitcast 230 - Store 232(param) 231 - 234: 29(float) Load 110(f) - Store 233(param) 234 - 235: 2 FunctionCall 59(foo2(i1;f1;) 232(param) 233(param) - 237: 22(int) Load 104(i) + 277(param): 23(ptr) Variable Function + 278(param): 7(ptr) Variable Function + 283(param): 23(ptr) Variable Function + 284(param): 16(ptr) Variable Function + 289(param): 23(ptr) Variable Function + 290(param): 23(ptr) Variable Function + 295(param): 23(ptr) Variable Function + 296(param): 30(ptr) Variable Function + 299(param): 23(ptr) Variable Function + 301(param): 9(ptr) Variable Function + 304(param): 23(ptr) Variable Function + 306(param): 7(ptr) Variable Function + 309(param): 23(ptr) Variable Function + 311(param): 16(ptr) Variable Function + 314(param): 23(ptr) Variable Function + 316(param): 23(ptr) Variable Function + 319(param): 23(ptr) Variable Function + 321(param): 30(ptr) Variable Function + 324(param): 9(ptr) Variable Function + 330(param): 9(ptr) Variable Function + 335(param): 9(ptr) Variable Function + 339(param): 9(ptr) Variable Function + 344(param): 9(ptr) Variable Function + 349(param): 16(ptr) Variable Function + 353(param): 16(ptr) Variable Function + 355(param): 16(ptr) Variable Function + 360(param): 16(ptr) Variable Function + 364(param): 16(ptr) Variable Function + 370(param): 23(ptr) Variable Function + 374(param): 23(ptr) Variable Function + 378(param): 23(ptr) Variable Function + 380(param): 23(ptr) Variable Function + 385(param): 23(ptr) Variable Function + 390(param): 30(ptr) Variable Function + 394(param): 30(ptr) Variable Function + 398(param): 30(ptr) Variable Function + 402(param): 30(ptr) Variable Function + 404(param): 30(ptr) Variable Function + 410(param): 7(ptr) Variable Function + 412(param): 7(ptr) Variable Function + 417(param): 7(ptr) Variable Function + 421(param): 7(ptr) Variable Function + 425(param): 7(ptr) Variable Function + 429(param): 30(ptr) Variable Function + 433(param): 30(ptr) Variable Function + 437(param): 30(ptr) Variable Function + 441(param): 23(ptr) Variable Function + 445(param): 16(ptr) Variable Function + 449(param): 16(ptr) Variable Function + 453(param): 23(ptr) Variable Function + 457(param): 23(ptr) Variable Function + 461(param): 23(ptr) Variable Function + 465(param): 16(ptr) Variable Function + 469(param): 7(ptr) Variable Function + 474(param): 126(ptr) Variable Function + 481(param): 135(ptr) Variable Function + 485(param): 105(ptr) Variable Function + 491(param): 23(ptr) Variable Function + 494(param): 9(ptr) Variable Function + 500(param): 9(ptr) Variable Function + 152: 6(float) Load 149(d) + Store 151(param) 152 + 154: 8(bool) Load 150(b) + Store 153(param) 154 + 155: 2 FunctionCall 13(foo1(d1;b1;) 151(param) 153(param) + 157: 6(float) Load 149(d) + Store 156(param) 157 + 159: 6(float) Load 149(d) + Store 158(param) 159 + 160: 2 FunctionCall 39(foo1(d1;d1;) 156(param) 158(param) + 163: 6(float) Load 149(d) + Store 162(param) 163 + 165: 15(int) Load 161(u) + Store 164(param) 165 + 166: 2 FunctionCall 20(foo1(d1;u1;) 162(param) 164(param) + 169: 6(float) Load 149(d) + Store 168(param) 169 + 171: 22(int) Load 167(i) + Store 170(param) 171 + 172: 2 FunctionCall 27(foo1(d1;i1;) 168(param) 170(param) + 175: 6(float) Load 149(d) + Store 174(param) 175 + 177: 29(float) Load 173(f) + Store 176(param) 177 + 178: 2 FunctionCall 34(foo1(d1;f1;) 174(param) 176(param) + 179: 29(float) Load 173(f) + 180: 6(float) FConvert 179 + Store 181(param) 180 + 183: 8(bool) Load 150(b) + Store 182(param) 183 + 184: 2 FunctionCall 13(foo1(d1;b1;) 181(param) 182(param) + 185: 29(float) Load 173(f) + 186: 6(float) FConvert 185 + Store 187(param) 186 + 189: 6(float) Load 149(d) + Store 188(param) 189 + 190: 2 FunctionCall 39(foo1(d1;d1;) 187(param) 188(param) + 191: 29(float) Load 173(f) + 192: 6(float) FConvert 191 + Store 193(param) 192 + 195: 15(int) Load 161(u) + Store 194(param) 195 + 196: 2 FunctionCall 20(foo1(d1;u1;) 193(param) 194(param) + 197: 29(float) Load 173(f) + 198: 6(float) FConvert 197 + Store 199(param) 198 + 201: 22(int) Load 167(i) + Store 200(param) 201 + 202: 2 FunctionCall 27(foo1(d1;i1;) 199(param) 200(param) + 203: 29(float) Load 173(f) + 204: 6(float) FConvert 203 + Store 205(param) 204 + 207: 29(float) Load 173(f) + Store 206(param) 207 + 208: 2 FunctionCall 34(foo1(d1;f1;) 205(param) 206(param) + 209: 15(int) Load 161(u) + 210: 6(float) ConvertUToF 209 + Store 211(param) 210 + 213: 8(bool) Load 150(b) + Store 212(param) 213 + 214: 2 FunctionCall 13(foo1(d1;b1;) 211(param) 212(param) + 215: 15(int) Load 161(u) + 216: 6(float) ConvertUToF 215 + Store 217(param) 216 + 219: 6(float) Load 149(d) + Store 218(param) 219 + 220: 2 FunctionCall 39(foo1(d1;d1;) 217(param) 218(param) + 221: 15(int) Load 161(u) + 222: 6(float) ConvertUToF 221 + Store 223(param) 222 + 225: 15(int) Load 161(u) + Store 224(param) 225 + 226: 2 FunctionCall 20(foo1(d1;u1;) 223(param) 224(param) + 227: 15(int) Load 161(u) + 228: 6(float) ConvertUToF 227 + Store 229(param) 228 + 231: 22(int) Load 167(i) + Store 230(param) 231 + 232: 2 FunctionCall 27(foo1(d1;i1;) 229(param) 230(param) + 233: 15(int) Load 161(u) + 234: 6(float) ConvertUToF 233 + Store 235(param) 234 + 237: 29(float) Load 173(f) Store 236(param) 237 - 239: 8(bool) Load 87(b) - Store 238(param) 239 - 240: 2 FunctionCall 44(foo2(i1;b1;) 236(param) 238(param) - 242: 22(int) Load 104(i) - Store 241(param) 242 - 244: 6(float) Load 86(d) - Store 243(param) 244 - 245: 2 FunctionCall 64(foo2(i1;d1;) 241(param) 243(param) - 247: 22(int) Load 104(i) - Store 246(param) 247 - 249: 15(int) Load 98(u) + 238: 2 FunctionCall 34(foo1(d1;f1;) 235(param) 236(param) + 239: 22(int) Load 167(i) + 240: 6(float) ConvertSToF 239 + Store 241(param) 240 + 243: 8(bool) Load 150(b) + Store 242(param) 243 + 244: 2 FunctionCall 13(foo1(d1;b1;) 241(param) 242(param) + 245: 22(int) Load 167(i) + 246: 6(float) ConvertSToF 245 + Store 247(param) 246 + 249: 6(float) Load 149(d) Store 248(param) 249 - 250: 2 FunctionCall 49(foo2(i1;u1;) 246(param) 248(param) - 252: 22(int) Load 104(i) - Store 251(param) 252 - 254: 22(int) Load 104(i) - Store 253(param) 254 - 255: 2 FunctionCall 54(foo2(i1;i1;) 251(param) 253(param) - 257: 22(int) Load 104(i) - Store 256(param) 257 - 259: 29(float) Load 110(f) - Store 258(param) 259 - 260: 2 FunctionCall 59(foo2(i1;f1;) 256(param) 258(param) - 262: 8(bool) Load 87(b) - Store 261(param) 262 - 263: 2 FunctionCall 68(foo3(b1;) 261(param) - 264: 6(float) Load 86(d) - 266: 8(bool) FOrdNotEqual 264 265 - Store 267(param) 266 - 268: 2 FunctionCall 68(foo3(b1;) 267(param) - 269: 15(int) Load 98(u) - 271: 8(bool) INotEqual 269 270 - Store 272(param) 271 - 273: 2 FunctionCall 68(foo3(b1;) 272(param) - 274: 22(int) Load 104(i) - 275: 8(bool) INotEqual 274 270 - Store 276(param) 275 - 277: 2 FunctionCall 68(foo3(b1;) 276(param) - 278: 29(float) Load 110(f) - 280: 8(bool) FOrdNotEqual 278 279 - Store 281(param) 280 - 282: 2 FunctionCall 68(foo3(b1;) 281(param) - 283: 8(bool) Load 87(b) - 285: 15(int) Select 283 284 270 - Store 286(param) 285 - 287: 2 FunctionCall 72(foo4(u1;) 286(param) - 288: 6(float) Load 86(d) - 289: 15(int) ConvertFToU 288 - Store 290(param) 289 - 291: 2 FunctionCall 72(foo4(u1;) 290(param) - 293: 15(int) Load 98(u) - Store 292(param) 293 - 294: 2 FunctionCall 72(foo4(u1;) 292(param) - 295: 22(int) Load 104(i) - 296: 15(int) Bitcast 295 - Store 297(param) 296 - 298: 2 FunctionCall 72(foo4(u1;) 297(param) - 299: 29(float) Load 110(f) - 300: 15(int) ConvertFToU 299 - Store 301(param) 300 - 302: 2 FunctionCall 72(foo4(u1;) 301(param) - 303: 8(bool) Load 87(b) - 306: 22(int) Select 303 305 304 - Store 307(param) 306 - 308: 2 FunctionCall 76(foo5(i1;) 307(param) - 309: 6(float) Load 86(d) - 310: 22(int) ConvertFToS 309 - Store 311(param) 310 - 312: 2 FunctionCall 76(foo5(i1;) 311(param) - 313: 15(int) Load 98(u) - 314: 22(int) Bitcast 313 - Store 315(param) 314 - 316: 2 FunctionCall 76(foo5(i1;) 315(param) - 318: 22(int) Load 104(i) - Store 317(param) 318 - 319: 2 FunctionCall 76(foo5(i1;) 317(param) - 320: 29(float) Load 110(f) - 321: 22(int) ConvertFToS 320 - Store 322(param) 321 - 323: 2 FunctionCall 76(foo5(i1;) 322(param) - 324: 8(bool) Load 87(b) - 326: 29(float) Select 324 325 279 - Store 327(param) 326 - 328: 2 FunctionCall 80(foo6(f1;) 327(param) - 329: 6(float) Load 86(d) - 330: 29(float) FConvert 329 - Store 331(param) 330 - 332: 2 FunctionCall 80(foo6(f1;) 331(param) - 333: 15(int) Load 98(u) - 334: 29(float) ConvertUToF 333 + 250: 2 FunctionCall 39(foo1(d1;d1;) 247(param) 248(param) + 251: 22(int) Load 167(i) + 252: 6(float) ConvertSToF 251 + Store 253(param) 252 + 255: 15(int) Load 161(u) + Store 254(param) 255 + 256: 2 FunctionCall 20(foo1(d1;u1;) 253(param) 254(param) + 257: 22(int) Load 167(i) + 258: 6(float) ConvertSToF 257 + Store 259(param) 258 + 261: 22(int) Load 167(i) + Store 260(param) 261 + 262: 2 FunctionCall 27(foo1(d1;i1;) 259(param) 260(param) + 263: 22(int) Load 167(i) + 264: 6(float) ConvertSToF 263 + Store 265(param) 264 + 267: 29(float) Load 173(f) + Store 266(param) 267 + 268: 2 FunctionCall 34(foo1(d1;f1;) 265(param) 266(param) + 269: 15(int) Load 161(u) + 270: 22(int) Bitcast 269 + Store 271(param) 270 + 273: 8(bool) Load 150(b) + Store 272(param) 273 + 274: 2 FunctionCall 44(foo2(i1;b1;) 271(param) 272(param) + 275: 15(int) Load 161(u) + 276: 22(int) Bitcast 275 + Store 277(param) 276 + 279: 6(float) Load 149(d) + Store 278(param) 279 + 280: 2 FunctionCall 64(foo2(i1;d1;) 277(param) 278(param) + 281: 15(int) Load 161(u) + 282: 22(int) Bitcast 281 + Store 283(param) 282 + 285: 15(int) Load 161(u) + Store 284(param) 285 + 286: 2 FunctionCall 49(foo2(i1;u1;) 283(param) 284(param) + 287: 15(int) Load 161(u) + 288: 22(int) Bitcast 287 + Store 289(param) 288 + 291: 22(int) Load 167(i) + Store 290(param) 291 + 292: 2 FunctionCall 54(foo2(i1;i1;) 289(param) 290(param) + 293: 15(int) Load 161(u) + 294: 22(int) Bitcast 293 + Store 295(param) 294 + 297: 29(float) Load 173(f) + Store 296(param) 297 + 298: 2 FunctionCall 59(foo2(i1;f1;) 295(param) 296(param) + 300: 22(int) Load 167(i) + Store 299(param) 300 + 302: 8(bool) Load 150(b) + Store 301(param) 302 + 303: 2 FunctionCall 44(foo2(i1;b1;) 299(param) 301(param) + 305: 22(int) Load 167(i) + Store 304(param) 305 + 307: 6(float) Load 149(d) + Store 306(param) 307 + 308: 2 FunctionCall 64(foo2(i1;d1;) 304(param) 306(param) + 310: 22(int) Load 167(i) + Store 309(param) 310 + 312: 15(int) Load 161(u) + Store 311(param) 312 + 313: 2 FunctionCall 49(foo2(i1;u1;) 309(param) 311(param) + 315: 22(int) Load 167(i) + Store 314(param) 315 + 317: 22(int) Load 167(i) + Store 316(param) 317 + 318: 2 FunctionCall 54(foo2(i1;i1;) 314(param) 316(param) + 320: 22(int) Load 167(i) + Store 319(param) 320 + 322: 29(float) Load 173(f) + Store 321(param) 322 + 323: 2 FunctionCall 59(foo2(i1;f1;) 319(param) 321(param) + 325: 8(bool) Load 150(b) + Store 324(param) 325 + 326: 2 FunctionCall 68(foo3(b1;) 324(param) + 327: 6(float) Load 149(d) + 329: 8(bool) FOrdNotEqual 327 328 + Store 330(param) 329 + 331: 2 FunctionCall 68(foo3(b1;) 330(param) + 332: 15(int) Load 161(u) + 334: 8(bool) INotEqual 332 333 Store 335(param) 334 - 336: 2 FunctionCall 80(foo6(f1;) 335(param) - 337: 22(int) Load 104(i) - 338: 29(float) ConvertSToF 337 + 336: 2 FunctionCall 68(foo3(b1;) 335(param) + 337: 22(int) Load 167(i) + 338: 8(bool) INotEqual 337 333 Store 339(param) 338 - 340: 2 FunctionCall 80(foo6(f1;) 339(param) - 342: 29(float) Load 110(f) - Store 341(param) 342 - 343: 2 FunctionCall 80(foo6(f1;) 341(param) - 344: 8(bool) Load 87(b) - 346: 6(float) Select 344 345 265 - Store 347(param) 346 - 348: 2 FunctionCall 84(foo7(d1;) 347(param) - 350: 6(float) Load 86(d) - Store 349(param) 350 - 351: 2 FunctionCall 84(foo7(d1;) 349(param) - 352: 15(int) Load 98(u) - 353: 6(float) ConvertUToF 352 - Store 354(param) 353 - 355: 2 FunctionCall 84(foo7(d1;) 354(param) - 356: 22(int) Load 104(i) - 357: 6(float) ConvertSToF 356 - Store 358(param) 357 - 359: 2 FunctionCall 84(foo7(d1;) 358(param) - 360: 29(float) Load 110(f) - 361: 6(float) FConvert 360 - Store 362(param) 361 - 363: 2 FunctionCall 84(foo7(d1;) 362(param) - 367: 364(fvec4) Load 366(input) - ReturnValue 367 + 340: 2 FunctionCall 68(foo3(b1;) 339(param) + 341: 29(float) Load 173(f) + 343: 8(bool) FOrdNotEqual 341 342 + Store 344(param) 343 + 345: 2 FunctionCall 68(foo3(b1;) 344(param) + 346: 8(bool) Load 150(b) + 348: 15(int) Select 346 347 333 + Store 349(param) 348 + 350: 2 FunctionCall 72(foo4(u1;) 349(param) + 351: 6(float) Load 149(d) + 352: 15(int) ConvertFToU 351 + Store 353(param) 352 + 354: 2 FunctionCall 72(foo4(u1;) 353(param) + 356: 15(int) Load 161(u) + Store 355(param) 356 + 357: 2 FunctionCall 72(foo4(u1;) 355(param) + 358: 22(int) Load 167(i) + 359: 15(int) Bitcast 358 + Store 360(param) 359 + 361: 2 FunctionCall 72(foo4(u1;) 360(param) + 362: 29(float) Load 173(f) + 363: 15(int) ConvertFToU 362 + Store 364(param) 363 + 365: 2 FunctionCall 72(foo4(u1;) 364(param) + 366: 8(bool) Load 150(b) + 369: 22(int) Select 366 368 367 + Store 370(param) 369 + 371: 2 FunctionCall 76(foo5(i1;) 370(param) + 372: 6(float) Load 149(d) + 373: 22(int) ConvertFToS 372 + Store 374(param) 373 + 375: 2 FunctionCall 76(foo5(i1;) 374(param) + 376: 15(int) Load 161(u) + 377: 22(int) Bitcast 376 + Store 378(param) 377 + 379: 2 FunctionCall 76(foo5(i1;) 378(param) + 381: 22(int) Load 167(i) + Store 380(param) 381 + 382: 2 FunctionCall 76(foo5(i1;) 380(param) + 383: 29(float) Load 173(f) + 384: 22(int) ConvertFToS 383 + Store 385(param) 384 + 386: 2 FunctionCall 76(foo5(i1;) 385(param) + 387: 8(bool) Load 150(b) + 389: 29(float) Select 387 388 342 + Store 390(param) 389 + 391: 2 FunctionCall 80(foo6(f1;) 390(param) + 392: 6(float) Load 149(d) + 393: 29(float) FConvert 392 + Store 394(param) 393 + 395: 2 FunctionCall 80(foo6(f1;) 394(param) + 396: 15(int) Load 161(u) + 397: 29(float) ConvertUToF 396 + Store 398(param) 397 + 399: 2 FunctionCall 80(foo6(f1;) 398(param) + 400: 22(int) Load 167(i) + 401: 29(float) ConvertSToF 400 + Store 402(param) 401 + 403: 2 FunctionCall 80(foo6(f1;) 402(param) + 405: 29(float) Load 173(f) + Store 404(param) 405 + 406: 2 FunctionCall 80(foo6(f1;) 404(param) + 407: 8(bool) Load 150(b) + 409: 6(float) Select 407 408 328 + Store 410(param) 409 + 411: 2 FunctionCall 84(foo7(d1;) 410(param) + 413: 6(float) Load 149(d) + Store 412(param) 413 + 414: 2 FunctionCall 84(foo7(d1;) 412(param) + 415: 15(int) Load 161(u) + 416: 6(float) ConvertUToF 415 + Store 417(param) 416 + 418: 2 FunctionCall 84(foo7(d1;) 417(param) + 419: 22(int) Load 167(i) + 420: 6(float) ConvertSToF 419 + Store 421(param) 420 + 422: 2 FunctionCall 84(foo7(d1;) 421(param) + 423: 29(float) Load 173(f) + 424: 6(float) FConvert 423 + Store 425(param) 424 + 426: 2 FunctionCall 84(foo7(d1;) 425(param) + 427: 8(bool) Load 150(b) + 428: 29(float) Select 427 388 342 + Store 429(param) 428 + 430: 2 FunctionCall 87(foo8(f1;) 429(param) + 431: 15(int) Load 161(u) + 432: 29(float) ConvertUToF 431 + Store 433(param) 432 + 434: 2 FunctionCall 87(foo8(f1;) 433(param) + 435: 22(int) Load 167(i) + 436: 29(float) ConvertSToF 435 + Store 437(param) 436 + 438: 2 FunctionCall 87(foo8(f1;) 437(param) + 439: 8(bool) Load 150(b) + 440: 22(int) Select 439 368 367 + Store 441(param) 440 + 442: 2 FunctionCall 93(foo9(i1;) 441(param) + 443: 29(float) Load 173(f) + 444: 15(int) ConvertFToU 443 + Store 445(param) 444 + 446: 2 FunctionCall 96(foo9(u1;) 445(param) + 447: 6(float) Load 149(d) + 448: 15(int) ConvertFToU 447 + Store 449(param) 448 + 450: 2 FunctionCall 96(foo9(u1;) 449(param) + 451: 15(int) Load 161(u) + 452: 22(int) Bitcast 451 + Store 453(param) 452 + 454: 2 FunctionCall 102(foo10(i1;) 453(param) + 455: 29(float) Load 173(f) + 456: 22(int) ConvertFToS 455 + Store 457(param) 456 + 458: 2 FunctionCall 102(foo10(i1;) 457(param) + 459: 6(float) Load 149(d) + 460: 22(int) ConvertFToS 459 + Store 461(param) 460 + 462: 2 FunctionCall 102(foo10(i1;) 461(param) + 463: 8(bool) Load 150(b) + 464: 15(int) Select 463 347 333 + Store 465(param) 464 + 466: 2 FunctionCall 120(foo11(u1;) 465(param) + 467: 29(float) Load 173(f) + 468: 6(float) FConvert 467 + Store 469(param) 468 + 470: 2 FunctionCall 111(foo11(d1;) 469(param) + 471: 29(float) Load 173(f) + 472: 104(fvec3) CompositeConstruct 471 471 471 + 473: 125(fvec3) FConvert 472 + Store 474(param) 473 + 475: 2 FunctionCall 129(foo12(vd3;) 474(param) + 476: 22(int) Load 167(i) + 477: 22(int) Load 167(i) + 479: 478(ivec2) CompositeConstruct 476 477 + 480: 134(ivec2) Bitcast 479 + Store 481(param) 480 + 482: 2 FunctionCall 138(foo16(vu2;) 481(param) + 483: 29(float) Load 173(f) + 484: 104(fvec3) CompositeConstruct 483 483 483 + Store 485(param) 484 + 486: 2 FunctionCall 141(foo13(vf3;) 485(param) + 487: 22(int) Load 167(i) + 489: 488(ivec4) CompositeConstruct 487 487 487 487 + 490: 22(int) CompositeExtract 489 0 + Store 491(param) 490 + 492: 2 FunctionCall 144(foo14(vi1;) 491(param) + 493: 8(bool) Load 150(b) + Store 494(param) 493 + 495: 2 FunctionCall 147(foo15(vb1;) 494(param) + 496: 8(bool) Load 150(b) + 498: 497(bvec3) CompositeConstruct 496 496 496 + 499: 8(bool) CompositeExtract 498 0 + Store 500(param) 499 + 501: 2 FunctionCall 147(foo15(vb1;) 500(param) + 505: 502(fvec4) Load 504(input) + ReturnValue 505 FunctionEnd 13(foo1(d1;b1;): 2 Function None 10 11(a): 7(ptr) FunctionParameter @@ -1175,3 +1489,88 @@ Missing functionality: missing user function; linker needs to catch that 85: Label Return FunctionEnd + 87(foo8(f1;): 2 Function None 78 + 86: 30(ptr) FunctionParameter + 88: Label + Return + FunctionEnd + 90(foo8(d1;): 2 Function None 82 + 89: 7(ptr) FunctionParameter + 91: Label + Return + FunctionEnd + 93(foo9(i1;): 2 Function None 74 + 92: 23(ptr) FunctionParameter + 94: Label + Return + FunctionEnd + 96(foo9(u1;): 2 Function None 70 + 95: 16(ptr) FunctionParameter + 97: Label + Return + FunctionEnd + 99(foo10(b1;): 2 Function None 66 + 98: 9(ptr) FunctionParameter + 100: Label + Return + FunctionEnd + 102(foo10(i1;): 2 Function None 74 + 101: 23(ptr) FunctionParameter + 103: Label + Return + FunctionEnd + 108(foo11(vf3;): 2 Function None 106 + 107: 105(ptr) FunctionParameter + 109: Label + Return + FunctionEnd + 111(foo11(d1;): 2 Function None 82 + 110: 7(ptr) FunctionParameter + 112: Label + Return + FunctionEnd + 117(foo11(vi3;): 2 Function None 115 + 116: 114(ptr) FunctionParameter + 118: Label + Return + FunctionEnd + 120(foo11(u1;): 2 Function None 70 + 119: 16(ptr) FunctionParameter + 121: Label + Return + FunctionEnd + 123(foo12(vf1;): 2 Function None 78 + 122: 30(ptr) FunctionParameter + 124: Label + Return + FunctionEnd + 129(foo12(vd3;): 2 Function None 127 + 128: 126(ptr) FunctionParameter + 130: Label + Return + FunctionEnd + 132(foo16(u1;): 2 Function None 70 + 131: 16(ptr) FunctionParameter + 133: Label + Return + FunctionEnd + 138(foo16(vu2;): 2 Function None 136 + 137: 135(ptr) FunctionParameter + 139: Label + Return + FunctionEnd + 141(foo13(vf3;): 2 Function None 106 + 140: 105(ptr) FunctionParameter + 142: Label + Return + FunctionEnd + 144(foo14(vi1;): 2 Function None 74 + 143: 23(ptr) FunctionParameter + 145: Label + Return + FunctionEnd + 147(foo15(vb1;): 2 Function None 66 + 146: 9(ptr) FunctionParameter + 148: Label + Return + FunctionEnd diff --git a/Test/hlsl.overload.frag b/Test/hlsl.overload.frag index 2202ae0b..b5ddf493 100644 --- a/Test/hlsl.overload.frag +++ b/Test/hlsl.overload.frag @@ -1,117 +1,142 @@ // function selection under type conversion -void foo1(double a, bool b) {} -void foo1(double a, uint b) {} -void foo1(double a, int b) {} -void foo1(double a, float b) {} +void foo1(double a, bool b) {} +void foo1(double a, uint b) {} +void foo1(double a, int b) {} +void foo1(double a, float b) {} void foo1(double a, double b){} // uint -> int -void foo2(int a, bool b) {} -void foo2(int a, uint b) {} -void foo2(int a, int b) {} -void foo2(int a, float b) {} +void foo2(int a, bool b) {} +void foo2(int a, uint b) {} +void foo2(int a, int b) {} +void foo2(int a, float b) {} void foo2(int a, double b){} // everything can promote -void foo3(bool b) {} -void foo4(uint b) {} -void foo5(int b) {} -void foo6(float b) {} +void foo3(bool b) {} +void foo4(uint b) {} +void foo5(int b) {} +void foo6(float b) {} void foo7(double b){} // shorter forward chain better than longer or backward chain -void foo8(float); -void foo8(double); -void foo9(int); -void foo9(uint); -void foo10(bool); -void foo10(int); +void foo8(float) {} +void foo8(double) {} +void foo9(int) {} +void foo9(uint) {} +void foo10(bool) {} +void foo10(int) {} + +// shape change is worse +void foo11(float3) {} +void foo11(double) {} +void foo11(int3) {} +void foo11(uint) {} +void foo12(float1) {} +void foo12(double3) {} +void foo16(uint) {} +void foo16(uint2) {} + +// shape change +void foo13(float3) {} +void foo14(int1) {} +void foo15(bool1) {} float4 PixelShaderFunction(float4 input) : COLOR0 { - bool b; - double d; - uint u; - int i; - float f; + bool b; + double d; + uint u; + int i; + float f; + + foo1(d, b); + foo1(d, d); + foo1(d, u); + foo1(d, i); + foo1(d, f); + + foo1(f, b); + foo1(f, d); + foo1(f, u); + foo1(f, i); + foo1(f, f); + + foo1(u, b); + foo1(u, d); + foo1(u, u); + foo1(u, i); + foo1(u, f); + + foo1(i, b); + foo1(i, d); + foo1(i, u); + foo1(i, i); + foo1(i, f); + + foo2(u, b); + foo2(u, d); + foo2(u, u); + foo2(u, i); + foo2(u, f); + + foo2(i, b); + foo2(i, d); + foo2(i, u); + foo2(i, i); + foo2(i, f); + + foo3(b); + foo3(d); + foo3(u); + foo3(i); + foo3(f); + + foo4(b); + foo4(d); + foo4(u); + foo4(i); + foo4(f); + + foo5(b); + foo5(d); + foo5(u); + foo5(i); + foo5(f); + + foo6(b); + foo6(d); + foo6(u); + foo6(i); + foo6(f); + + foo7(b); + foo7(d); + foo7(u); + foo7(i); + foo7(f); + + foo8(b); + foo8(u); + foo8(i); + + foo9(b); + foo9(f); + foo9(d); + + foo10(u); + foo10(f); + foo10(d); + + foo11(b); + foo11(f); + foo12(float3(f)); + foo16(int2(i,i)); + + foo13(f); + foo14(int4(i)); + foo15(b); + foo15(bool3(b)); - foo1(d, b); - foo1(d, d); - foo1(d, u); - foo1(d, i); - foo1(d, f); - - foo1(f, b); - foo1(f, d); - foo1(f, u); - foo1(f, i); - foo1(f, f); - - foo1(u, b); - foo1(u, d); - foo1(u, u); - foo1(u, i); - foo1(u, f); - - foo1(i, b); - foo1(i, d); - foo1(i, u); - foo1(i, i); - foo1(i, f); - - foo2(u, b); - foo2(u, d); - foo2(u, u); - foo2(u, i); - foo2(u, f); - - foo2(i, b); - foo2(i, d); - foo2(i, u); - foo2(i, i); - foo2(i, f); - - foo3(b); - foo3(d); - foo3(u); - foo3(i); - foo3(f); - - foo4(b); - foo4(d); - foo4(u); - foo4(i); - foo4(f); - - foo5(b); - foo5(d); - foo5(u); - foo5(i); - foo5(f); - - foo6(b); - foo6(d); - foo6(u); - foo6(i); - foo6(f); - - foo7(b); - foo7(d); - foo7(u); - foo7(i); - foo7(f); - - foo8(b); - foo8(u); - foo8(i); - - foo9(b); - foo9(f); - foo9(d); - - foo10(u); - foo10(f); - foo10(d); - return input; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index b239be15..1fa5428a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1434" +#define GLSLANG_REVISION "Overload400-PrecQual.1438" #define GLSLANG_DATE "25-Aug-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 325f84f8..ee9c251a 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -702,6 +702,7 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, case EOpGreaterThan: case EOpLessThanEqual: case EOpGreaterThanEqual: + case EOpFunctionCall: break; default: return node; @@ -715,9 +716,11 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, // The new node that handles the conversion TOperator constructorOp = mapTypeToConstructorOp(type); - // scalar -> smeared -> vector - if (type.isVector() && node->getType().isScalar()) - return setAggregateOperator(node, constructorOp, type, node->getLoc()); + // scalar -> smeared -> vector, or + // bigger vector -> smaller vector or scalar + if ((type.isVector() && node->getType().isScalar()) || + (node->getVectorSize() > type.getVectorSize() && type.isVector())) + return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); return node; } @@ -731,6 +734,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat if (profile == EEsProfile || version == 110) return false; + // TODO: Move more policies into language-specific handlers. // Some languages allow more general (or potentially, more specific) conversions under some conditions. if (source == EShSourceHlsl) { const bool fromConvertable = (from == EbtFloat || from == EbtDouble || from == EbtInt || from == EbtUint || from == EbtBool); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 07eb00ff..f4a71289 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2001,6 +2001,7 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // In-qualified arguments just need an extra node added above the argument to // convert to the correct type. arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); + arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); if (arg) { if (function.getParamCount() == 1) arguments = arg; @@ -3565,9 +3566,25 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu auto convertible = [this](const TType& from, const TType& to) { if (from == to) return true; - if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) + + // no aggregate conversions + if (from.isArray() || to.isArray() || + from.isStruct() || to.isStruct()) return false; - return intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall); + + // basic types have to be convertible + if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall)) + return false; + + // shapes have to be convertible + if ((from.isScalar() && to.isScalar()) || + (from.isScalar() && to.isVector()) || + (from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize())) + return true; + + // TODO: what are the matrix rules? they go here + + return false; }; // Is 'to2' a better conversion than 'to1'? @@ -3580,33 +3597,41 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu if (from == to1) return false; - // float -> double is better than any other float conversion - if (from.getBasicType() == EbtFloat) { - if (to2.getBasicType() == EbtDouble && to1.getBasicType() != EbtDouble) + // shape changes are always worse + if (from.isScalar() || from.isVector()) { + if (from.getVectorSize() == to2.getVectorSize() && + from.getVectorSize() != to1.getVectorSize()) return true; + if (from.getVectorSize() == to1.getVectorSize() && + from.getVectorSize() != to2.getVectorSize()) + return false; } - // int -> uint is better than any other int conversion - if (from.getBasicType() == EbtInt) { - if (to2.getBasicType() == EbtUint && to1.getBasicType() != EbtUint) - return true; - } + // Might or might not be changing shape, which means basic type might + // or might not match, so within that, the question is how big a + // basic-type conversion is being done. + // + // Use a hierarchy of domains, translated to order of magnitude + // in a linearized view: + // - floating-point vs. integer + // - 32 vs. 64 bit (or width in general) + // - bool vs. non bool + // - signed vs. not signed + auto linearize = [](const TBasicType& basicType) { + switch (basicType) { + case EbtBool: return 1; + case EbtInt: return 10; + case EbtUint: return 11; + case EbtInt64: return 20; + case EbtUint64: return 21; + case EbtFloat: return 100; + case EbtDouble: return 110; + default: return 0; + } + }; - // TODO: these should be replaced by a more generic "shorter chain is better than longer chain" rule - - // -> float is better than -> double - if (to2.getBasicType() == EbtFloat && to1.getBasicType() == EbtDouble) - return true; - - // -> int is better than -> bool - if ((to2.getBasicType() == EbtInt || to2.getBasicType() == EbtUint) && to1.getBasicType() == EbtBool) - return true; - - // -> uint is better than -> int - if (to2.getBasicType() == EbtUint && to1.getBasicType() == EbtInt) - return true; - - return false; + return std::abs(linearize(to2.getBasicType()) - linearize(from.getBasicType())) < + std::abs(linearize(to1.getBasicType()) - linearize(from.getBasicType())); }; // for ambiguity reporting From 424cf80f8bf0ae5d139215dc28bd76ba58d3371d Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 26 Aug 2016 14:43:14 -0400 Subject: [PATCH 094/217] Disable C4996 (secure CRT) recommendation on Windows for strtok(). strtok_s() is suggested by MSVC, but it has different signature than the C11 standard one. So we just turn off the recommendation here. --- StandAlone/ResourceLimits.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp index 80198634..8a5e6f37 100644 --- a/StandAlone/ResourceLimits.cpp +++ b/StandAlone/ResourceLimits.cpp @@ -241,8 +241,10 @@ std::string GetDefaultTBuiltInResourceString() void DecodeResourceLimits(TBuiltInResource* resources, char* config) { const char* delims = " \t\n\r"; +#pragma warning(suppress: 4996) const char* token = strtok(config, delims); while (token) { +#pragma warning(suppress: 4996) const char* valueStr = strtok(0, delims); if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) { printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : ""); @@ -438,6 +440,7 @@ void DecodeResourceLimits(TBuiltInResource* resources, char* config) else printf("Warning: unrecognized limit (%s) in configuration file.\n", token); +#pragma warning(suppress: 4996) token = strtok(0, delims); } } From 81cd764b5ffc475bc73f1fb35f75fd1171bb2343 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 26 Aug 2016 14:01:43 -0600 Subject: [PATCH 095/217] Non-functional: Add some missing const, related to signature selection. --- glslang/Include/revision.h | 4 ++-- glslang/MachineIndependent/ParseContextBase.cpp | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- glslang/MachineIndependent/ParseHelper.h | 2 +- hlsl/hlslParseHelper.cpp | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 1fa5428a..070089c5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1438" -#define GLSLANG_DATE "25-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1442" +#define GLSLANG_DATE "26-Aug-2016" diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index b3a2223f..4c1d02a8 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -70,7 +70,7 @@ namespace glslang { // caller's choice for how to report) // const TFunction* TParseContextBase::selectFunction( - TVector candidateList, + const TVector candidateList, const TFunction& call, std::function convertible, std::function better, diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 849302cc..42dafbd1 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4991,7 +4991,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // can 'from' convert to 'to'? - auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [this](const TType& from, const TType& to) { if (from == to) return true; if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) @@ -5002,7 +5002,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) { // 1. exact match if (from == to2) return from != to1; diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 98f98256..19830399 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -144,7 +144,7 @@ protected: std::function errorCallback; // see implementation for detail - const TFunction* selectFunction(TVector, const TFunction&, + const TFunction* selectFunction(const TVector, const TFunction&, std::function, std::function, /* output */ bool& tie); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index f4a71289..2b5d6c0f 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3563,7 +3563,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // can 'from' convert to 'to'? - auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [this](const TType& from, const TType& to) { if (from == to) return true; @@ -3590,7 +3590,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) { // exact match is always better than mismatch if (from == to2) return from != to1; @@ -3617,7 +3617,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // - 32 vs. 64 bit (or width in general) // - bool vs. non bool // - signed vs. not signed - auto linearize = [](const TBasicType& basicType) { + const auto linearize = [](const TBasicType& basicType) { switch (basicType) { case EbtBool: return 1; case EbtInt: return 10; From be2f6b05c3593d3f8f88d869c6151490f6ae3aa7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 28 Aug 2016 15:00:23 -0600 Subject: [PATCH 096/217] HLSL: Emulate write-to-output on return-from-entry-point, for return value. This fixes issue #487 and #480. It also correctly handles output parameters from the entry point. --- Test/baseResults/hlsl.array.frag.out | 244 +- Test/baseResults/hlsl.assoc.frag.out | 56 +- Test/baseResults/hlsl.buffer.frag.out | 202 +- .../hlsl.calculatelod.dx10.frag.out | 34 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 14 +- Test/baseResults/hlsl.cast.frag.out | 96 +- Test/baseResults/hlsl.conditional.frag.out | 56 +- Test/baseResults/hlsl.constructexpr.frag.out | 26 +- Test/baseResults/hlsl.doLoop.frag.out | 44 +- Test/baseResults/hlsl.entry-out.frag.out | 127 + Test/baseResults/hlsl.forLoop.frag.out | 239 +- .../hlsl.gather.array.dx10.frag.out | 66 +- .../hlsl.gather.basic.dx10.frag.out | 102 +- .../hlsl.gather.basic.dx10.vert.out | 102 +- .../hlsl.gather.offset.dx10.frag.out | 126 +- .../hlsl.gather.offsetarray.dx10.frag.out | 66 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 78 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 114 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 172 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 134 +- .../hlsl.getdimensions.dx10.frag.out | 38 +- .../hlsl.getdimensions.dx10.vert.out | 38 +- .../hlsl.getsampleposition.dx10.frag.out | 14 +- Test/baseResults/hlsl.if.frag.out | 273 +- Test/baseResults/hlsl.init.frag.out | 52 +- Test/baseResults/hlsl.init2.frag.out | 26 +- Test/baseResults/hlsl.inoutquals.frag.out | 26 +- .../hlsl.intrinsics.barriers.comp.out | 30 +- Test/baseResults/hlsl.intrinsics.comp.out | 44 +- .../hlsl.intrinsics.double.frag.out | 30 +- .../hlsl.intrinsics.f1632.frag.out | 30 +- Test/baseResults/hlsl.intrinsics.frag.out | 2284 +++++++++-------- .../hlsl.intrinsics.negative.comp.out | 44 +- .../hlsl.intrinsics.negative.frag.out | 30 +- .../hlsl.intrinsics.negative.vert.out | 126 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 62 +- .../baseResults/hlsl.load.array.dx10.frag.out | 216 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 178 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 178 +- .../hlsl.load.buffer.dx10.frag.out | 72 +- .../hlsl.load.offset.dx10.frag.out | 166 +- .../hlsl.load.offsetarray.dx10.frag.out | 206 +- Test/baseResults/hlsl.max.frag.out | 48 +- .../baseResults/hlsl.numericsuffixes.frag.out | 26 +- Test/baseResults/hlsl.overload.frag.out | 32 +- Test/baseResults/hlsl.pp.line.frag.out | 26 +- Test/baseResults/hlsl.precedence.frag.out | 200 +- Test/baseResults/hlsl.precedence2.frag.out | 124 +- Test/baseResults/hlsl.precise.frag.out | 32 +- Test/baseResults/hlsl.promotions.frag.out | 26 +- .../hlsl.sample.array.dx10.frag.out | 34 +- .../hlsl.sample.basic.dx10.frag.out | 46 +- .../hlsl.sample.offset.dx10.frag.out | 64 +- .../hlsl.sample.offsetarray.dx10.frag.out | 34 +- .../hlsl.samplebias.array.dx10.frag.out | 34 +- .../hlsl.samplebias.basic.dx10.frag.out | 34 +- .../hlsl.samplebias.offset.dx10.frag.out | 64 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 34 +- .../hlsl.samplecmp.array.dx10.frag.out | 148 +- .../hlsl.samplecmp.basic.dx10.frag.out | 146 +- .../hlsl.samplecmp.offset.dx10.frag.out | 176 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 178 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 148 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 146 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 176 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 178 +- .../hlsl.samplegrad.array.dx10.frag.out | 34 +- .../hlsl.samplegrad.basic.dx10.frag.out | 34 +- .../hlsl.samplegrad.basic.dx10.vert.out | 34 +- .../hlsl.samplegrad.offset.dx10.frag.out | 64 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 64 +- .../hlsl.samplelevel.array.dx10.frag.out | 34 +- .../hlsl.samplelevel.basic.dx10.frag.out | 40 +- .../hlsl.samplelevel.basic.dx10.vert.out | 34 +- .../hlsl.samplelevel.offset.dx10.frag.out | 64 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 34 +- Test/baseResults/hlsl.semicolons.frag.out | 26 +- Test/baseResults/hlsl.sin.frag.out | 38 +- Test/baseResults/hlsl.stringtoken.frag.out | 42 +- Test/baseResults/hlsl.struct.frag.out | 70 +- Test/baseResults/hlsl.switch.frag.out | 26 +- Test/baseResults/hlsl.templatetypes.frag.out | 28 +- Test/baseResults/hlsl.whileLoop.frag.out | 82 +- Test/hlsl.entry-out.frag | 12 + glslang/Include/revision.h | 4 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 43 +- hlsl/hlslParseHelper.h | 1 + 88 files changed, 5121 insertions(+), 4103 deletions(-) create mode 100755 Test/baseResults/hlsl.entry-out.frag.out create mode 100644 Test/hlsl.entry-out.frag diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 0aa38ba8..5c519ee5 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -7,42 +7,45 @@ gl_FragCoord origin is upper left 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) 0:? Sequence -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) 0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) @@ -59,123 +62,130 @@ gl_FragCoord origin is upper left 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) 0:? Sequence -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) 0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 64 +// Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 19 27 + EntryPoint Fragment 4 "PixelShaderFunction" 9 21 29 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 12 "a" - Name 19 "i" - Name 27 "input" - Name 40 "b" - Name 52 "" - MemberName 52 0 "m" - Name 56 "s" + Name 9 "@entryPointOutput" + Name 14 "a" + Name 21 "i" + Name 29 "input" + Name 42 "b" + Name 54 "" + MemberName 54 0 "m" + Name 58 "s" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 4 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Private 10 - 12(a): 11(ptr) Variable Private - 13: TypeInt 32 1 - 14: 13(int) Constant 1 - 15: TypePointer Private 7(fvec4) - 18: TypePointer Input 13(int) - 19(i): 18(ptr) Variable Input - 24: 8(int) Constant 3 - 25: TypeArray 7(fvec4) 24 - 26: TypePointer Input 25 - 27(input): 26(ptr) Variable Input - 28: 13(int) Constant 2 - 29: TypePointer Input 7(fvec4) - 37: 8(int) Constant 10 - 38: TypeArray 7(fvec4) 37 - 39: TypePointer Function 38 - 41: 13(int) Constant 5 - 42: TypePointer Function 7(fvec4) - 50: 8(int) Constant 7 - 51: TypeArray 7(fvec4) 50 - 52: TypeStruct 51 - 53: 8(int) Constant 11 - 54: TypeArray 52(struct) 53 - 55: TypePointer Private 54 - 56(s): 55(ptr) Variable Private - 58: 13(int) Constant 0 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypeInt 32 0 + 11: 10(int) Constant 4 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Private 12 + 14(a): 13(ptr) Variable Private + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Private 7(fvec4) + 20: TypePointer Input 15(int) + 21(i): 20(ptr) Variable Input + 26: 10(int) Constant 3 + 27: TypeArray 7(fvec4) 26 + 28: TypePointer Input 27 + 29(input): 28(ptr) Variable Input + 30: 15(int) Constant 2 + 31: TypePointer Input 7(fvec4) + 39: 10(int) Constant 10 + 40: TypeArray 7(fvec4) 39 + 41: TypePointer Function 40 + 43: 15(int) Constant 5 + 44: TypePointer Function 7(fvec4) + 52: 10(int) Constant 7 + 53: TypeArray 7(fvec4) 52 + 54: TypeStruct 53 + 55: 10(int) Constant 11 + 56: TypeArray 54(struct) 55 + 57: TypePointer Private 56 + 58(s): 57(ptr) Variable Private + 60: 15(int) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label - 40(b): 39(ptr) Variable Function - 16: 15(ptr) AccessChain 12(a) 14 - 17: 7(fvec4) Load 16 - 20: 13(int) Load 19(i) - 21: 15(ptr) AccessChain 12(a) 20 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) FAdd 17 22 - 30: 29(ptr) AccessChain 27(input) 28 - 31: 7(fvec4) Load 30 - 32: 7(fvec4) FAdd 23 31 - 33: 13(int) Load 19(i) - 34: 29(ptr) AccessChain 27(input) 33 - 35: 7(fvec4) Load 34 - 36: 7(fvec4) FAdd 32 35 - 43: 42(ptr) AccessChain 40(b) 41 - 44: 7(fvec4) Load 43 - 45: 7(fvec4) FAdd 36 44 - 46: 13(int) Load 19(i) - 47: 42(ptr) AccessChain 40(b) 46 - 48: 7(fvec4) Load 47 - 49: 7(fvec4) FAdd 45 48 - 57: 13(int) Load 19(i) - 59: 13(int) Load 19(i) - 60: 15(ptr) AccessChain 56(s) 57 58 59 - 61: 7(fvec4) Load 60 - 62: 7(fvec4) FAdd 49 61 - ReturnValue 62 + 42(b): 41(ptr) Variable Function + 18: 17(ptr) AccessChain 14(a) 16 + 19: 7(fvec4) Load 18 + 22: 15(int) Load 21(i) + 23: 17(ptr) AccessChain 14(a) 22 + 24: 7(fvec4) Load 23 + 25: 7(fvec4) FAdd 19 24 + 32: 31(ptr) AccessChain 29(input) 30 + 33: 7(fvec4) Load 32 + 34: 7(fvec4) FAdd 25 33 + 35: 15(int) Load 21(i) + 36: 31(ptr) AccessChain 29(input) 35 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) FAdd 34 37 + 45: 44(ptr) AccessChain 42(b) 43 + 46: 7(fvec4) Load 45 + 47: 7(fvec4) FAdd 38 46 + 48: 15(int) Load 21(i) + 49: 44(ptr) AccessChain 42(b) 48 + 50: 7(fvec4) Load 49 + 51: 7(fvec4) FAdd 47 50 + 59: 15(int) Load 21(i) + 61: 15(int) Load 21(i) + 62: 17(ptr) AccessChain 58(s) 59 60 61 + 63: 7(fvec4) Load 62 + 64: 7(fvec4) FAdd 51 63 + Store 9(@entryPointOutput) 64 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 14a747cf..5f617c90 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -19,16 +19,19 @@ gl_FragCoord origin is upper left 0:9 move second child to first child (temp 4-component vector of float) 0:9 'a4' (in 4-component vector of float) 0:9 'a5' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) +0:10 Branch: Return 0:? Linker Objects @@ -55,26 +58,29 @@ gl_FragCoord origin is upper left 0:9 move second child to first child (temp 4-component vector of float) 0:9 'a4' (in 4-component vector of float) 0:9 'a5' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) +0:10 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 + EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 16 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "a1" @@ -82,6 +88,7 @@ gl_FragCoord origin is upper left Name 11 "a3" Name 12 "a4" Name 13 "a5" + Name 16 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -92,6 +99,8 @@ gl_FragCoord origin is upper left 11(a3): 8(ptr) Variable Input 12(a4): 8(ptr) Variable Input 13(a5): 8(ptr) Variable Input + 15: TypePointer Output 7(fvec4) +16(@entryPointOutput): 15(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 14: 7(fvec4) Load 13(a5) @@ -99,14 +108,15 @@ gl_FragCoord origin is upper left Store 11(a3) 14 Store 10(a2) 14 Store 9(a1) 14 - 15: 7(fvec4) Load 9(a1) - 16: 7(fvec4) Load 10(a2) - 17: 7(fvec4) FAdd 15 16 - 18: 7(fvec4) Load 11(a3) + 17: 7(fvec4) Load 9(a1) + 18: 7(fvec4) Load 10(a2) 19: 7(fvec4) FAdd 17 18 - 20: 7(fvec4) Load 12(a4) + 20: 7(fvec4) Load 11(a3) 21: 7(fvec4) FAdd 19 20 - 22: 7(fvec4) Load 13(a5) + 22: 7(fvec4) Load 12(a4) 23: 7(fvec4) FAdd 21 22 - ReturnValue 23 + 24: 7(fvec4) Load 13(a5) + 25: 7(fvec4) FAdd 23 24 + Store 16(@entryPointOutput) 25 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 5faeceb8..a51cb165 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -6,28 +6,31 @@ gl_FragCoord origin is upper left 0:26 Function Parameters: 0:26 'input' (in 4-component vector of float) 0:? Sequence -0:27 Branch: Return with expression -0:27 add (temp 4-component vector of float) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:27 Constant: 0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) +0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) @@ -45,28 +48,31 @@ gl_FragCoord origin is upper left 0:26 Function Parameters: 0:26 'input' (in 4-component vector of float) 0:? Sequence -0:27 Branch: Return with expression -0:27 add (temp 4-component vector of float) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:27 Constant: 0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) +0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) @@ -75,90 +81,94 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 39 +// Id's are bound by 41 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" - Name 11 "" - MemberName 11 0 "v1" + Name 9 "@entryPointOutput" + Name 11 "input" Name 13 "" - Name 20 "" - MemberName 20 0 "v2" + MemberName 13 0 "v1" + Name 15 "" Name 22 "" - Name 26 "" - MemberName 26 0 "v3" - MemberName 26 1 "i3" + MemberName 22 0 "v2" + Name 24 "" Name 28 "" - Name 32 "" - MemberName 32 0 "v4" - MemberName 32 1 "i4" - MemberName 32 2 "f1" - MemberName 32 3 "f3" - MemberName 32 4 "f4" - MemberName 32 5 "f5" - MemberName 32 6 "f6" - MemberName 32 7 "f7" + MemberName 28 0 "v3" + MemberName 28 1 "i3" + Name 30 "" Name 34 "" - MemberDecorate 11 0 Offset 0 - Decorate 11 Block - Decorate 13 DescriptorSet 0 - MemberDecorate 20 0 Offset 0 - Decorate 20 BufferBlock - Decorate 22 DescriptorSet 0 - MemberDecorate 26 0 Offset 0 - MemberDecorate 26 1 Offset 20 - Decorate 26 Block - Decorate 28 DescriptorSet 0 - MemberDecorate 32 0 Offset 16 - MemberDecorate 32 1 Offset 48 - MemberDecorate 32 2 Offset 60 - MemberDecorate 32 3 Offset 64 - MemberDecorate 32 4 Offset 68 - MemberDecorate 32 5 Offset 72 - MemberDecorate 32 6 Offset 76 - MemberDecorate 32 7 Offset 80 - Decorate 32 BufferBlock - Decorate 34 DescriptorSet 0 + MemberName 34 0 "v4" + MemberName 34 1 "i4" + MemberName 34 2 "f1" + MemberName 34 3 "f3" + MemberName 34 4 "f4" + MemberName 34 5 "f5" + MemberName 34 6 "f6" + MemberName 34 7 "f7" + Name 36 "" + MemberDecorate 13 0 Offset 0 + Decorate 13 Block + Decorate 15 DescriptorSet 0 + MemberDecorate 22 0 Offset 0 + Decorate 22 BufferBlock + Decorate 24 DescriptorSet 0 + MemberDecorate 28 0 Offset 0 + MemberDecorate 28 1 Offset 20 + Decorate 28 Block + Decorate 30 DescriptorSet 0 + MemberDecorate 34 0 Offset 16 + MemberDecorate 34 1 Offset 48 + MemberDecorate 34 2 Offset 60 + MemberDecorate 34 3 Offset 64 + MemberDecorate 34 4 Offset 68 + MemberDecorate 34 5 Offset 72 + MemberDecorate 34 6 Offset 76 + MemberDecorate 34 7 Offset 80 + Decorate 34 BufferBlock + Decorate 36 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 11: TypeStruct 7(fvec4) - 12: TypePointer Uniform 11(struct) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 20: TypeStruct 7(fvec4) - 21: TypePointer Uniform 20(struct) - 22: 21(ptr) Variable Uniform - 26: TypeStruct 7(fvec4) 14(int) - 27: TypePointer Uniform 26(struct) - 28: 27(ptr) Variable Uniform - 32: TypeStruct 7(fvec4) 14(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) - 33: TypePointer Uniform 32(struct) - 34: 33(ptr) Variable Uniform + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 13: TypeStruct 7(fvec4) + 14: TypePointer Uniform 13(struct) + 15: 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Uniform 7(fvec4) + 22: TypeStruct 7(fvec4) + 23: TypePointer Uniform 22(struct) + 24: 23(ptr) Variable Uniform + 28: TypeStruct 7(fvec4) 16(int) + 29: TypePointer Uniform 28(struct) + 30: 29(ptr) Variable Uniform + 34: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) + 35: TypePointer Uniform 34(struct) + 36: 35(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 19: 7(fvec4) FAdd 10 18 - 23: 16(ptr) AccessChain 22 15 - 24: 7(fvec4) Load 23 - 25: 7(fvec4) FAdd 19 24 - 29: 16(ptr) AccessChain 28 15 - 30: 7(fvec4) Load 29 - 31: 7(fvec4) FAdd 25 30 - 35: 16(ptr) AccessChain 34 15 - 36: 7(fvec4) Load 35 - 37: 7(fvec4) FAdd 31 36 - ReturnValue 37 + 12: 7(fvec4) Load 11(input) + 19: 18(ptr) AccessChain 15 17 + 20: 7(fvec4) Load 19 + 21: 7(fvec4) FAdd 12 20 + 25: 18(ptr) AccessChain 24 17 + 26: 7(fvec4) Load 25 + 27: 7(fvec4) FAdd 21 26 + 31: 18(ptr) AccessChain 30 17 + 32: 7(fvec4) Load 31 + 33: 7(fvec4) FAdd 27 32 + 37: 18(ptr) AccessChain 36 17 + 38: 7(fvec4) Load 37 + 39: 7(fvec4) FAdd 33 38 + Store 9(@entryPointOutput) 39 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 0a616db3..0ce3e645 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,7 +321,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 143 +// Id's are bound by 145 Capability Shader Capability Sampled1D @@ -323,7 +329,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -349,7 +355,8 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 142 "g_tTex1df4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -363,8 +370,8 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex1df4) DescriptorSet 0 - Decorate 142(g_tTex1df4) Binding 0 + Decorate 144(g_tTex1df4) DescriptorSet 0 + Decorate 144(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -435,7 +442,9 @@ gl_FragCoord origin is upper left 135: 130(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 130(fvec4) 138: 23(int) Constant 1 - 142(g_tTex1df4): 10(ptr) Variable UniformConstant + 140: TypePointer Output 131(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -515,6 +524,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 133(psout) 138 Store 139 134 - 140:131(PS_OUTPUT) Load 133(psout) - ReturnValue 140 + 142:131(PS_OUTPUT) Load 133(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index e2dc1db7..8dbdc57b 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -151,8 +151,11 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -310,8 +313,11 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 04ac605c..4710ba42 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -6,19 +6,22 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 add (temp 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) -0:3 Convert int to float (temp 4-component vector of float) -0:3 Convert float to int (temp 4-component vector of int) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 'input' (in 4-component vector of float) -0:3 Constant: -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 Branch: Return 0:? Linker Objects @@ -32,54 +35,61 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 add (temp 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) -0:3 Convert int to float (temp 4-component vector of float) -0:3 Convert float to int (temp 4-component vector of int) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 'input' (in 4-component vector of float) -0:3 Constant: -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 26 +// Id's are bound by 28 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" + Name 9 "@entryPointOutput" + Name 11 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 17: TypeInt 32 1 - 18: TypeVector 17(int) 4 - 22: 6(float) Constant 1067014160 - 23: 7(fvec4) ConstantComposite 22 22 22 22 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 24: 6(float) Constant 1067014160 + 25: 7(fvec4) ConstantComposite 24 24 24 24 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 11: 6(float) CompositeExtract 10 0 - 12: 6(float) CompositeExtract 10 1 - 13: 6(float) CompositeExtract 10 2 - 14: 6(float) CompositeExtract 10 3 - 15: 7(fvec4) CompositeConstruct 11 12 13 14 - 16: 7(fvec4) Load 9(input) - 19: 18(ivec4) ConvertFToS 16 - 20: 7(fvec4) ConvertSToF 19 - 21: 7(fvec4) FAdd 15 20 - 24: 7(fvec4) FAdd 21 23 - ReturnValue 24 + 12: 7(fvec4) Load 11(input) + 13: 6(float) CompositeExtract 12 0 + 14: 6(float) CompositeExtract 12 1 + 15: 6(float) CompositeExtract 12 2 + 16: 6(float) CompositeExtract 12 3 + 17: 7(fvec4) CompositeConstruct 13 14 15 16 + 18: 7(fvec4) Load 11(input) + 21: 20(ivec4) ConvertFToS 18 + 22: 7(fvec4) ConvertSToF 21 + 23: 7(fvec4) FAdd 17 22 + 26: 7(fvec4) FAdd 23 25 + Store 9(@entryPointOutput) 26 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index ff096784..ce354f17 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -98,13 +98,16 @@ gl_FragCoord origin is upper left 0:14 Convert int to float (temp float) 0:14 'd' (temp int) 0:14 'input' (in 4-component vector of float) -0:15 Branch: Return with expression -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return 0:? Linker Objects @@ -210,23 +213,26 @@ gl_FragCoord origin is upper left 0:14 Convert int to float (temp float) 0:14 'd' (temp int) 0:14 'input' (in 4-component vector of float) -0:15 Branch: Return with expression -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 89 +// Id's are bound by 91 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 22 + EntryPoint Fragment 4 "PixelShaderFunction" 22 83 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "a" @@ -237,6 +243,7 @@ gl_FragCoord origin is upper left Name 22 "input" Name 40 "e" Name 57 "f" + Name 83 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -257,6 +264,8 @@ gl_FragCoord origin is upper left 64: 59(int) Constant 1 65: TypePointer Input 15(float) 68: TypeBool + 82: TypePointer Output 16(fvec4) +83(@entryPointOutput): 82(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 8(a): 7(ptr) Variable Function @@ -346,11 +355,12 @@ gl_FragCoord origin is upper left 71: Label 81: 16(fvec4) Load 58 Store 57(f) 81 - 82: 6(int) Load 40(e) - 83: 15(float) ConvertSToF 82 - 84: 16(fvec4) Load 18(ret) - 85: 16(fvec4) VectorTimesScalar 84 83 - 86: 16(fvec4) Load 57(f) - 87: 16(fvec4) FAdd 85 86 - ReturnValue 87 + 84: 6(int) Load 40(e) + 85: 15(float) ConvertSToF 84 + 86: 16(fvec4) Load 18(ret) + 87: 16(fvec4) VectorTimesScalar 86 85 + 88: 16(fvec4) Load 57(f) + 89: 16(fvec4) FAdd 87 88 + Store 83(@entryPointOutput) 89 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 0dcfca62..0dab6a80 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -34,8 +34,11 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Branch: Return with expression -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Branch: Return 0:? Linker Objects @@ -77,23 +80,27 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Branch: Return with expression -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 34 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 31 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" + Name 31 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -118,11 +125,14 @@ gl_FragCoord origin is upper left 26: 13(float) Constant 1065353216 27: 21(fvec4) ConstantComposite 26 26 26 26 28: TypePointer Function 21(fvec4) + 30: TypePointer Output 22(PS_OUTPUT) +31(@entryPointOutput): 30(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function 29: 28(ptr) AccessChain 24(ps_output) 25 Store 29 27 - 30:22(PS_OUTPUT) Load 24(ps_output) - ReturnValue 30 + 32:22(PS_OUTPUT) Load 24(ps_output) + Store 31(@entryPointOutput) 32 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 9bef3328..3fdd46f0 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -22,8 +22,11 @@ gl_FragCoord origin is upper left 0:5 'input' (in 4-component vector of float) 0:5 'input' (in 4-component vector of float) 0:5 Loop Body -0:5 Branch: Return with expression -0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Branch: Return 0:? Linker Objects @@ -53,30 +56,36 @@ gl_FragCoord origin is upper left 0:5 'input' (in 4-component vector of float) 0:5 'input' (in 4-component vector of float) 0:5 Loop Body -0:5 Branch: Return with expression -0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 31 +// Id's are bound by 33 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 23 + EntryPoint Fragment 4 "PixelShaderFunction" 23 25 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 23 "input" + Name 23 "@entryPointOutput" + Name 25 "input" 2: TypeVoid 3: TypeFunction 2 10: TypeBool 11: 10(bool) ConstantFalse 20: TypeFloat 32 21: TypeVector 20(float) 4 - 22: TypePointer Input 21(fvec4) - 23(input): 22(ptr) Variable Input - 28: TypeVector 10(bool) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: TypePointer Input 21(fvec4) + 25(input): 24(ptr) Variable Input + 30: TypeVector 10(bool) 4 4(PixelShaderFunction): 2 Function None 3 5: Label Branch 6 @@ -102,14 +111,15 @@ gl_FragCoord origin is upper left LoopMerge 18 19 None Branch 17 17: Label - 24: 21(fvec4) Load 23(input) - ReturnValue 24 + 26: 21(fvec4) Load 25(input) + Store 23(@entryPointOutput) 26 + Return 19: Label - 26: 21(fvec4) Load 23(input) - 27: 21(fvec4) Load 23(input) - 29: 28(bvec4) FOrdEqual 26 27 - 30: 10(bool) All 29 - BranchConditional 30 16 18 + 28: 21(fvec4) Load 25(input) + 29: 21(fvec4) Load 25(input) + 31: 30(bvec4) FOrdEqual 28 29 + 32: 10(bool) All 31 + BranchConditional 32 16 18 18: Label Return FunctionEnd diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out new file mode 100755 index 00000000..96f5b78b --- /dev/null +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -0,0 +1,127 @@ +hlsl.entry-out.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Parameters: +0:7 'input' (in 4-component vector of float) +0:7 'out1' (out 4-component vector of float) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'out1' (out 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 move second child to first child (temp 2-component vector of float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 2-component vector of int) +0:10 i: direct index for structure (temp 2-component vector of int) +0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 3 (const int) +0:10 3 (const int) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:11 'out1' (out 4-component vector of float) +0:11 Branch: Return +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Parameters: +0:7 'input' (in 4-component vector of float) +0:7 'out1' (out 4-component vector of float) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'out1' (out 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 move second child to first child (temp 2-component vector of float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 2-component vector of int) +0:10 i: direct index for structure (temp 2-component vector of int) +0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 3 (const int) +0:10 3 (const int) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:11 'out1' (out 4-component vector of float) +0:11 Branch: Return +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 18 29 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "out1" + Name 11 "input" + Name 16 "OutParam" + MemberName 16(OutParam) 0 "v" + MemberName 16(OutParam) 1 "i" + Name 18 "out2" + Name 29 "@entryPointOutput" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(out1): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 13: TypeVector 6(float) 2 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16(OutParam): TypeStruct 13(fvec2) 15(ivec2) + 17: TypePointer Output 16(OutParam) + 18(out2): 17(ptr) Variable Output + 19: 14(int) Constant 0 + 20: 6(float) Constant 1073741824 + 21: 13(fvec2) ConstantComposite 20 20 + 22: TypePointer Output 13(fvec2) + 24: 14(int) Constant 1 + 25: 14(int) Constant 3 + 26: 15(ivec2) ConstantComposite 25 25 + 27: TypePointer Output 15(ivec2) +29(@entryPointOutput): 8(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input) + Store 9(out1) 12 + 23: 22(ptr) AccessChain 18(out2) 19 + Store 23 21 + 28: 27(ptr) AccessChain 18(out2) 24 + Store 28 26 + 30: 7(fvec4) Load 9(out1) + Store 29(@entryPointOutput) 30 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 45d2e996..3fd9a973 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -31,9 +31,12 @@ gl_FragCoord origin is upper left 0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -44,9 +47,12 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -145,9 +151,12 @@ gl_FragCoord origin is upper left 0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -158,9 +167,12 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -225,17 +237,18 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 112 +// Id's are bound by 114 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 13 + EntryPoint Fragment 4 "PixelShaderFunction" 13 43 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 13 "input" - Name 89 "ii" - Name 109 "ii" + Name 43 "@entryPointOutput" + Name 91 "ii" + Name 111 "ii" 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -245,21 +258,23 @@ gl_FragCoord origin is upper left 15: 10(float) Constant 1065353216 29: TypeBool 30: TypeVector 29(bool) 4 - 60: 10(float) Constant 1073741824 - 68: TypeInt 32 0 - 69: 68(int) Constant 0 - 70: TypePointer Input 10(float) - 87: TypeInt 32 1 - 88: TypePointer Function 87(int) - 90: 87(int) Constant 4294967295 - 97: 87(int) Constant 3 - 100: 87(int) Constant 2 - 106: 87(int) Constant 1 - 108: TypePointer Function 10(float) + 42: TypePointer Output 11(fvec4) +43(@entryPointOutput): 42(ptr) Variable Output + 62: 10(float) Constant 1073741824 + 70: TypeInt 32 0 + 71: 70(int) Constant 0 + 72: TypePointer Input 10(float) + 89: TypeInt 32 1 + 90: TypePointer Function 89(int) + 92: 89(int) Constant 4294967295 + 99: 89(int) Constant 3 + 102: 89(int) Constant 2 + 108: 89(int) Constant 1 + 110: TypePointer Function 10(float) 4(PixelShaderFunction): 2 Function None 3 5: Label - 89(ii): 88(ptr) Variable Function - 109(ii): 108(ptr) Variable Function + 91(ii): 90(ptr) Variable Function + 111(ii): 110(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None @@ -308,97 +323,99 @@ gl_FragCoord origin is upper left 41: 29(bool) Any 40 BranchConditional 41 34 35 34: Label - 42: 11(fvec4) Load 13(input) - 43: 11(fvec4) FNegate 42 - ReturnValue 43 + 44: 11(fvec4) Load 13(input) + 45: 11(fvec4) FNegate 44 + Store 43(@entryPointOutput) 45 + Return 36: Label Branch 33 35: Label - 45: 11(fvec4) Load 13(input) - 46: 11(fvec4) CompositeConstruct 15 15 15 15 - 47: 11(fvec4) FSub 45 46 - Store 13(input) 47 - Branch 48 - 48: Label - LoopMerge 50 51 None - Branch 52 - 52: Label - 53: 11(fvec4) Load 13(input) - 54: 11(fvec4) Load 13(input) - 55: 30(bvec4) FOrdNotEqual 53 54 - 56: 29(bool) Any 55 - BranchConditional 56 49 50 - 49: Label - 57: 11(fvec4) Load 13(input) - 58: 11(fvec4) FNegate 57 - ReturnValue 58 - 51: Label - 61: 11(fvec4) Load 13(input) - 62: 11(fvec4) CompositeConstruct 60 60 60 60 - 63: 11(fvec4) FAdd 61 62 - Store 13(input) 63 - Branch 48 + 47: 11(fvec4) Load 13(input) + 48: 11(fvec4) CompositeConstruct 15 15 15 15 + 49: 11(fvec4) FSub 47 48 + Store 13(input) 49 + Branch 50 50: Label - Branch 64 - 64: Label - LoopMerge 66 67 None - Branch 65 - 65: Label - 71: 70(ptr) AccessChain 13(input) 69 - 72: 10(float) Load 71 - 73: 29(bool) FOrdGreaterThan 72 60 - SelectionMerge 75 None - BranchConditional 73 74 75 - 74: Label - Branch 66 - 75: Label + LoopMerge 52 53 None + Branch 54 + 54: Label + 55: 11(fvec4) Load 13(input) + 56: 11(fvec4) Load 13(input) + 57: 30(bvec4) FOrdNotEqual 55 56 + 58: 29(bool) Any 57 + BranchConditional 58 51 52 + 51: Label + 59: 11(fvec4) Load 13(input) + 60: 11(fvec4) FNegate 59 + Store 43(@entryPointOutput) 60 + Return + 53: Label + 63: 11(fvec4) Load 13(input) + 64: 11(fvec4) CompositeConstruct 62 62 62 62 + 65: 11(fvec4) FAdd 63 64 + Store 13(input) 65 + Branch 50 + 52: Label + Branch 66 + 66: Label + LoopMerge 68 69 None Branch 67 67: Label - Branch 64 - 66: Label - Branch 77 + 73: 72(ptr) AccessChain 13(input) 71 + 74: 10(float) Load 73 + 75: 29(bool) FOrdGreaterThan 74 62 + SelectionMerge 77 None + BranchConditional 75 76 77 + 76: Label + Branch 68 77: Label - LoopMerge 79 80 None - Branch 78 - 78: Label - 81: 70(ptr) AccessChain 13(input) 69 - 82: 10(float) Load 81 - 83: 29(bool) FOrdGreaterThan 82 60 - SelectionMerge 85 None - BranchConditional 83 84 85 - 84: Label - Branch 80 - 85: Label + Branch 69 + 69: Label + Branch 66 + 68: Label + Branch 79 + 79: Label + LoopMerge 81 82 None Branch 80 80: Label - Branch 77 - 79: Label - Store 89(ii) 90 - Branch 91 - 91: Label - LoopMerge 93 94 None - Branch 95 - 95: Label - 96: 87(int) Load 89(ii) - 98: 29(bool) SLessThan 96 97 - BranchConditional 98 92 93 - 92: Label - 99: 87(int) Load 89(ii) - 101: 29(bool) IEqual 99 100 - SelectionMerge 103 None - BranchConditional 101 102 103 - 102: Label - Branch 94 - 103: Label - Branch 94 - 94: Label - 105: 87(int) Load 89(ii) - 107: 87(int) IAdd 105 106 - Store 89(ii) 107 - Branch 91 + 83: 72(ptr) AccessChain 13(input) 71 + 84: 10(float) Load 83 + 85: 29(bool) FOrdGreaterThan 84 62 + SelectionMerge 87 None + BranchConditional 85 86 87 + 86: Label + Branch 82 + 87: Label + Branch 82 + 82: Label + Branch 79 + 81: Label + Store 91(ii) 92 + Branch 93 93: Label - 110: 10(float) Load 109(ii) - 111: 10(float) FSub 110 15 - Store 109(ii) 111 + LoopMerge 95 96 None + Branch 97 + 97: Label + 98: 89(int) Load 91(ii) + 100: 29(bool) SLessThan 98 99 + BranchConditional 100 94 95 + 94: Label + 101: 89(int) Load 91(ii) + 103: 29(bool) IEqual 101 102 + SelectionMerge 105 None + BranchConditional 103 104 105 + 104: Label + Branch 96 + 105: Label + Branch 96 + 96: Label + 107: 89(int) Load 91(ii) + 109: 89(int) IAdd 107 108 + Store 91(ii) 109 + Branch 93 + 95: Label + 112: 10(float) Load 111(ii) + 113: 10(float) FSub 112 15 + Store 111(ii) 113 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 0cac13aa..58f7a77c 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -91,8 +91,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -202,8 +205,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -219,14 +225,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 112 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 99 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -246,10 +252,11 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 102 "g_tTex1df4a" - Name 103 "g_tTex1df4" - Name 106 "g_tTex1di4a" - Name 109 "g_tTex1du4a" + Name 99 "@entryPointOutput" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4a" + Name 111 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -259,12 +266,12 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(g_tTex1df4a) DescriptorSet 0 - Decorate 102(g_tTex1df4a) Binding 1 - Decorate 103(g_tTex1df4) DescriptorSet 0 - Decorate 103(g_tTex1df4) Binding 0 - Decorate 106(g_tTex1di4a) DescriptorSet 0 - Decorate 109(g_tTex1du4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4a) DescriptorSet 0 + Decorate 111(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -326,16 +333,18 @@ gl_FragCoord origin is upper left 93: 7(fvec4) ConstantComposite 87 87 87 87 95: 25(int) Constant 1 96: TypePointer Function 6(float) - 100: TypeImage 6(float) 1D array sampled format:Unknown - 101: TypePointer UniformConstant 100 -102(g_tTex1df4a): 101(ptr) Variable UniformConstant - 103(g_tTex1df4): 101(ptr) Variable UniformConstant - 104: TypeImage 25(int) 1D array sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTex1di4a): 105(ptr) Variable UniformConstant - 107: TypeImage 42(int) 1D array sampled format:Unknown - 108: TypePointer UniformConstant 107 -109(g_tTex1du4a): 108(ptr) Variable UniformConstant + 98: TypePointer Output 90(PS_OUTPUT) +99(@entryPointOutput): 98(ptr) Variable Output + 102: TypeImage 6(float) 1D array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 25(int) 1D array sampled format:Unknown + 107: TypePointer UniformConstant 106 +108(g_tTex1di4a): 107(ptr) Variable UniformConstant + 109: TypeImage 42(int) 1D array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTex1du4a): 110(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -379,6 +388,7 @@ gl_FragCoord origin is upper left Store 94 93 97: 96(ptr) AccessChain 92(psout) 95 Store 97 87 - 98:90(PS_OUTPUT) Load 92(psout) - ReturnValue 98 + 100:90(PS_OUTPUT) Load 92(psout) + Store 99(@entryPointOutput) 100 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index fc90646c..c75a0598 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -85,8 +85,11 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Branch: Return with expression -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Sequence +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -194,8 +197,11 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Branch: Return with expression -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Sequence +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -215,13 +221,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 121 +// Id's are bound by 123 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -241,14 +247,15 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 101 "g_sSamp2d" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4" - Name 111 "g_tTex1du4" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" + Name 100 "@entryPointOutput" + Name 103 "g_sSamp2d" + Name 106 "g_tTex1df4a" + Name 107 "g_tTex1df4" + Name 110 "g_tTex1di4" + Name 113 "g_tTex1du4" + Name 116 "g_tTex3df4" + Name 119 "g_tTex3di4" + Name 122 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -258,16 +265,16 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_sSamp2d) DescriptorSet 0 - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4) DescriptorSet 0 - Decorate 111(g_tTex1du4) DescriptorSet 0 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 103(g_sSamp2d) DescriptorSet 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 + Decorate 107(g_tTex1df4) DescriptorSet 0 + Decorate 107(g_tTex1df4) Binding 0 + Decorate 110(g_tTex1di4) DescriptorSet 0 + Decorate 113(g_tTex1du4) DescriptorSet 0 + Decorate 116(g_tTex3df4) DescriptorSet 0 + Decorate 119(g_tTex3di4) DescriptorSet 0 + Decorate 122(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -330,26 +337,28 @@ gl_FragCoord origin is upper left 94: 7(fvec4) ConstantComposite 93 93 93 93 96: 24(int) Constant 1 97: TypePointer Function 6(float) - 101(g_sSamp2d): 15(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 24(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1di4): 107(ptr) Variable UniformConstant - 109: TypeImage 41(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 24(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 41(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 99: TypePointer Output 90(PS_OUTPUT) +100(@entryPointOutput): 99(ptr) Variable Output + 103(g_sSamp2d): 15(ptr) Variable UniformConstant + 104: TypeImage 6(float) 1D sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(g_tTex1df4a): 105(ptr) Variable UniformConstant + 107(g_tTex1df4): 105(ptr) Variable UniformConstant + 108: TypeImage 24(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1di4): 109(ptr) Variable UniformConstant + 111: TypeImage 41(int) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex1du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3df4): 115(ptr) Variable UniformConstant + 117: TypeImage 24(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3di4): 118(ptr) Variable UniformConstant + 120: TypeImage 41(int) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3du4): 121(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -393,6 +402,7 @@ gl_FragCoord origin is upper left Store 95 94 98: 97(ptr) AccessChain 92(psout) 96 Store 98 93 - 99:90(PS_OUTPUT) Load 92(psout) - ReturnValue 99 + 101:90(PS_OUTPUT) Load 92(psout) + Store 100(@entryPointOutput) 101 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 4e862ef8..209c041d 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -77,8 +77,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Branch: Return with expression -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Sequence +0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -178,8 +181,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Branch: Return with expression -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Sequence +0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -199,13 +205,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 118 +// Id's are bound by 120 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 97 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -223,14 +229,15 @@ Shader version: 450 Name 90 "VS_OUTPUT" MemberName 90(VS_OUTPUT) 0 "Pos" Name 92 "vsout" - Name 98 "g_sSamp2d" - Name 101 "g_tTex1df4a" - Name 102 "g_tTex1df4" - Name 105 "g_tTex1di4" - Name 108 "g_tTex1du4" - Name 111 "g_tTex3df4" - Name 114 "g_tTex3di4" - Name 117 "g_tTex3du4" + Name 97 "@entryPointOutput" + Name 100 "g_sSamp2d" + Name 103 "g_tTex1df4a" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -240,16 +247,16 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 98(g_sSamp2d) DescriptorSet 0 - Decorate 101(g_tTex1df4a) DescriptorSet 0 - Decorate 101(g_tTex1df4a) Binding 1 - Decorate 102(g_tTex1df4) DescriptorSet 0 - Decorate 102(g_tTex1df4) Binding 0 - Decorate 105(g_tTex1di4) DescriptorSet 0 - Decorate 108(g_tTex1du4) DescriptorSet 0 - Decorate 111(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 117(g_tTex3du4) DescriptorSet 0 + Decorate 100(g_sSamp2d) DescriptorSet 0 + Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -310,26 +317,28 @@ Shader version: 450 91: TypePointer Function 90(VS_OUTPUT) 93: 6(float) Constant 0 94: 7(fvec4) ConstantComposite 93 93 93 93 - 98(g_sSamp2d): 15(ptr) Variable UniformConstant - 99: TypeImage 6(float) 1D sampled format:Unknown - 100: TypePointer UniformConstant 99 -101(g_tTex1df4a): 100(ptr) Variable UniformConstant - 102(g_tTex1df4): 100(ptr) Variable UniformConstant - 103: TypeImage 24(int) 1D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex1di4): 104(ptr) Variable UniformConstant - 106: TypeImage 41(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3df4): 110(ptr) Variable UniformConstant - 112: TypeImage 24(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3di4): 113(ptr) Variable UniformConstant - 115: TypeImage 41(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 96: TypePointer Output 90(VS_OUTPUT) +97(@entryPointOutput): 96(ptr) Variable Output + 100(g_sSamp2d): 15(ptr) Variable UniformConstant + 101: TypeImage 6(float) 1D sampled format:Unknown + 102: TypePointer UniformConstant 101 +103(g_tTex1df4a): 102(ptr) Variable UniformConstant + 104(g_tTex1df4): 102(ptr) Variable UniformConstant + 105: TypeImage 24(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 41(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 24(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 41(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -371,6 +380,7 @@ Shader version: 450 Store 77(txval42) 89 95: 8(ptr) AccessChain 92(vsout) 25 Store 95 94 - 96:90(VS_OUTPUT) Load 92(vsout) - ReturnValue 96 + 98:90(VS_OUTPUT) Load 92(vsout) + Store 97(@entryPointOutput) 98 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 056f16b2..2f856642 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -61,8 +61,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -145,8 +148,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -165,13 +171,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 100 +// Id's are bound by 102 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 71 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -185,34 +191,35 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 74 "g_tTex1df4a" - Name 75 "g_tTex1df4" - Name 78 "g_tTex1di4" - Name 81 "g_tTex1du4" - Name 84 "g_tTex3df4" - Name 87 "g_tTex3di4" - Name 90 "g_tTex3du4" - Name 93 "g_tTexcdf4" - Name 96 "g_tTexcdi4" - Name 99 "g_tTexcdu4" + Name 71 "@entryPointOutput" + Name 76 "g_tTex1df4a" + Name 77 "g_tTex1df4" + Name 80 "g_tTex1di4" + Name 83 "g_tTex1du4" + Name 86 "g_tTex3df4" + Name 89 "g_tTex3di4" + Name 92 "g_tTex3du4" + Name 95 "g_tTexcdf4" + Name 98 "g_tTexcdi4" + Name 101 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 74(g_tTex1df4a) DescriptorSet 0 - Decorate 74(g_tTex1df4a) Binding 1 - Decorate 75(g_tTex1df4) DescriptorSet 0 - Decorate 75(g_tTex1df4) Binding 0 - Decorate 78(g_tTex1di4) DescriptorSet 0 - Decorate 81(g_tTex1du4) DescriptorSet 0 - Decorate 84(g_tTex3df4) DescriptorSet 0 - Decorate 87(g_tTex3di4) DescriptorSet 0 - Decorate 90(g_tTex3du4) DescriptorSet 0 - Decorate 93(g_tTexcdf4) DescriptorSet 0 - Decorate 96(g_tTexcdi4) DescriptorSet 0 - Decorate 99(g_tTexcdu4) DescriptorSet 0 + Decorate 76(g_tTex1df4a) DescriptorSet 0 + Decorate 76(g_tTex1df4a) Binding 1 + Decorate 77(g_tTex1df4) DescriptorSet 0 + Decorate 77(g_tTex1df4) Binding 0 + Decorate 80(g_tTex1di4) DescriptorSet 0 + Decorate 83(g_tTex1du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 89(g_tTex3di4) DescriptorSet 0 + Decorate 92(g_tTex3du4) DescriptorSet 0 + Decorate 95(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 101(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -261,34 +268,36 @@ gl_FragCoord origin is upper left 65: 6(float) Constant 1065353216 66: 7(fvec4) ConstantComposite 65 65 65 65 68: TypePointer Function 6(float) - 72: TypeImage 6(float) 1D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex1df4a): 73(ptr) Variable UniformConstant - 75(g_tTex1df4): 73(ptr) Variable UniformConstant - 76: TypeImage 24(int) 1D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex1di4): 77(ptr) Variable UniformConstant - 79: TypeImage 45(int) 1D sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1du4): 80(ptr) Variable UniformConstant - 82: TypeImage 6(float) 3D sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex3df4): 83(ptr) Variable UniformConstant - 85: TypeImage 24(int) 3D sampled format:Unknown - 86: TypePointer UniformConstant 85 - 87(g_tTex3di4): 86(ptr) Variable UniformConstant - 88: TypeImage 45(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3du4): 89(ptr) Variable UniformConstant - 91: TypeImage 6(float) Cube sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTexcdf4): 92(ptr) Variable UniformConstant - 94: TypeImage 24(int) Cube sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdi4): 95(ptr) Variable UniformConstant - 97: TypeImage 45(int) Cube sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdu4): 98(ptr) Variable UniformConstant + 70: TypePointer Output 62(PS_OUTPUT) +71(@entryPointOutput): 70(ptr) Variable Output + 74: TypeImage 6(float) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1df4a): 75(ptr) Variable UniformConstant + 77(g_tTex1df4): 75(ptr) Variable UniformConstant + 78: TypeImage 24(int) 1D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1di4): 79(ptr) Variable UniformConstant + 81: TypeImage 45(int) 1D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex1du4): 82(ptr) Variable UniformConstant + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 87: TypeImage 24(int) 3D sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex3di4): 88(ptr) Variable UniformConstant + 90: TypeImage 45(int) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3du4): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTexcdf4): 94(ptr) Variable UniformConstant + 96: TypeImage 24(int) Cube sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 99: TypeImage 45(int) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdu4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -314,6 +323,7 @@ gl_FragCoord origin is upper left Store 67 66 69: 68(ptr) AccessChain 64(psout) 26 Store 69 65 - 70:62(PS_OUTPUT) Load 64(psout) - ReturnValue 70 + 72:62(PS_OUTPUT) Load 64(psout) + Store 71(@entryPointOutput) 72 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index cded67f8..5cfae1ef 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -64,8 +64,11 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Branch: Return with expression -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Sequence +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -145,8 +148,11 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Branch: Return with expression -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Sequence +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -159,13 +165,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 83 +// Id's are bound by 85 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 72 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -179,22 +185,23 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 75 "g_tTex1df4a" - Name 76 "g_tTex1df4" - Name 79 "g_tTex1di4" - Name 82 "g_tTex1du4" + Name 72 "@entryPointOutput" + Name 77 "g_tTex1df4a" + Name 78 "g_tTex1df4" + Name 81 "g_tTex1di4" + Name 84 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 75(g_tTex1df4a) DescriptorSet 0 - Decorate 75(g_tTex1df4a) Binding 1 - Decorate 76(g_tTex1df4) DescriptorSet 0 - Decorate 76(g_tTex1df4) Binding 0 - Decorate 79(g_tTex1di4) DescriptorSet 0 - Decorate 82(g_tTex1du4) DescriptorSet 0 + Decorate 77(g_tTex1df4a) DescriptorSet 0 + Decorate 77(g_tTex1df4a) Binding 1 + Decorate 78(g_tTex1df4) DescriptorSet 0 + Decorate 78(g_tTex1df4) Binding 0 + Decorate 81(g_tTex1di4) DescriptorSet 0 + Decorate 84(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -244,16 +251,18 @@ gl_FragCoord origin is upper left 66: 6(float) Constant 1065353216 67: 7(fvec4) ConstantComposite 66 66 66 66 69: TypePointer Function 6(float) - 73: TypeImage 6(float) 1D array sampled format:Unknown - 74: TypePointer UniformConstant 73 - 75(g_tTex1df4a): 74(ptr) Variable UniformConstant - 76(g_tTex1df4): 74(ptr) Variable UniformConstant - 77: TypeImage 25(int) 1D array sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex1di4): 78(ptr) Variable UniformConstant - 80: TypeImage 45(int) 1D array sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex1du4): 81(ptr) Variable UniformConstant + 71: TypePointer Output 63(PS_OUTPUT) +72(@entryPointOutput): 71(ptr) Variable Output + 75: TypeImage 6(float) 1D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex1df4a): 76(ptr) Variable UniformConstant + 78(g_tTex1df4): 76(ptr) Variable UniformConstant + 79: TypeImage 25(int) 1D array sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1di4): 80(ptr) Variable UniformConstant + 82: TypeImage 45(int) 1D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex1du4): 83(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -279,6 +288,7 @@ gl_FragCoord origin is upper left Store 68 67 70: 69(ptr) AccessChain 65(psout) 27 Store 70 66 - 71:63(PS_OUTPUT) Load 65(psout) - ReturnValue 71 + 73:63(PS_OUTPUT) Load 65(psout) + Store 72(@entryPointOutput) 73 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 5386fc7c..ac59887b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -262,8 +262,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -548,8 +551,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -569,14 +575,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 220 +// Id's are bound by 222 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 204 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -616,12 +622,13 @@ gl_FragCoord origin is upper left MemberName 195(PS_OUTPUT) 0 "Color" MemberName 195(PS_OUTPUT) 1 "Depth" Name 197 "psout" - Name 205 "g_sSamp2d" - Name 208 "g_tTex1df4a" - Name 211 "g_tTex1di4a" - Name 214 "g_tTex1du4a" - Name 216 "c1" - Name 219 "c2" + Name 204 "@entryPointOutput" + Name 207 "g_sSamp2d" + Name 210 "g_tTex1df4a" + Name 213 "g_tTex1di4a" + Name 216 "g_tTex1du4a" + Name 218 "c1" + Name 221 "c2" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -631,11 +638,11 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 205(g_sSamp2d) DescriptorSet 0 - Decorate 208(g_tTex1df4a) DescriptorSet 0 - Decorate 208(g_tTex1df4a) Binding 0 - Decorate 211(g_tTex1di4a) DescriptorSet 0 - Decorate 214(g_tTex1du4a) DescriptorSet 0 + Decorate 207(g_sSamp2d) DescriptorSet 0 + Decorate 210(g_tTex1df4a) DescriptorSet 0 + Decorate 210(g_tTex1df4a) Binding 0 + Decorate 213(g_tTex1di4a) DescriptorSet 0 + Decorate 216(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -688,21 +695,23 @@ gl_FragCoord origin is upper left 198: 6(float) Constant 1065353216 199: 7(fvec4) ConstantComposite 198 198 198 198 201: TypePointer Function 6(float) - 205(g_sSamp2d): 15(ptr) Variable UniformConstant - 206: TypeImage 6(float) 1D array sampled format:Unknown - 207: TypePointer UniformConstant 206 -208(g_tTex1df4a): 207(ptr) Variable UniformConstant - 209: TypeImage 24(int) 1D array sampled format:Unknown - 210: TypePointer UniformConstant 209 -211(g_tTex1di4a): 210(ptr) Variable UniformConstant - 212: TypeImage 39(int) 1D array sampled format:Unknown - 213: TypePointer UniformConstant 212 -214(g_tTex1du4a): 213(ptr) Variable UniformConstant - 215: TypePointer UniformConstant 6(float) - 216(c1): 215(ptr) Variable UniformConstant - 217: TypeVector 6(float) 2 - 218: TypePointer UniformConstant 217(fvec2) - 219(c2): 218(ptr) Variable UniformConstant + 203: TypePointer Output 195(PS_OUTPUT) +204(@entryPointOutput): 203(ptr) Variable Output + 207(g_sSamp2d): 15(ptr) Variable UniformConstant + 208: TypeImage 6(float) 1D array sampled format:Unknown + 209: TypePointer UniformConstant 208 +210(g_tTex1df4a): 209(ptr) Variable UniformConstant + 211: TypeImage 24(int) 1D array sampled format:Unknown + 212: TypePointer UniformConstant 211 +213(g_tTex1di4a): 212(ptr) Variable UniformConstant + 214: TypeImage 39(int) 1D array sampled format:Unknown + 215: TypePointer UniformConstant 214 +216(g_tTex1du4a): 215(ptr) Variable UniformConstant + 217: TypePointer UniformConstant 6(float) + 218(c1): 217(ptr) Variable UniformConstant + 219: TypeVector 6(float) 2 + 220: TypePointer UniformConstant 219(fvec2) + 221(c2): 220(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -878,6 +887,7 @@ gl_FragCoord origin is upper left Store 200 199 202: 201(ptr) AccessChain 197(psout) 57 Store 202 198 - 203:195(PS_OUTPUT) Load 197(psout) - ReturnValue 203 + 205:195(PS_OUTPUT) Load 197(psout) + Store 204(@entryPointOutput) 205 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 0152b079..63c9946d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -262,8 +262,11 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Branch: Return with expression -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Sequence +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -552,8 +555,11 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Branch: Return with expression -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Sequence +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -577,13 +583,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 230 +// Id's are bound by 232 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 205 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -623,16 +629,17 @@ gl_FragCoord origin is upper left MemberName 196(PS_OUTPUT) 0 "Color" MemberName 196(PS_OUTPUT) 1 "Depth" Name 198 "psout" - Name 206 "g_sSamp2d" - Name 209 "g_tTex1df4a" - Name 210 "g_tTex1df4" - Name 213 "g_tTex1di4" - Name 216 "g_tTex1du4" - Name 219 "g_tTex3df4" - Name 222 "g_tTex3di4" - Name 225 "g_tTex3du4" - Name 227 "c1" - Name 229 "c4" + Name 205 "@entryPointOutput" + Name 208 "g_sSamp2d" + Name 211 "g_tTex1df4a" + Name 212 "g_tTex1df4" + Name 215 "g_tTex1di4" + Name 218 "g_tTex1du4" + Name 221 "g_tTex3df4" + Name 224 "g_tTex3di4" + Name 227 "g_tTex3du4" + Name 229 "c1" + Name 231 "c4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -642,16 +649,16 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 206(g_sSamp2d) DescriptorSet 0 - Decorate 209(g_tTex1df4a) DescriptorSet 0 - Decorate 209(g_tTex1df4a) Binding 1 - Decorate 210(g_tTex1df4) DescriptorSet 0 - Decorate 210(g_tTex1df4) Binding 0 - Decorate 213(g_tTex1di4) DescriptorSet 0 - Decorate 216(g_tTex1du4) DescriptorSet 0 - Decorate 219(g_tTex3df4) DescriptorSet 0 - Decorate 222(g_tTex3di4) DescriptorSet 0 - Decorate 225(g_tTex3du4) DescriptorSet 0 + Decorate 208(g_sSamp2d) DescriptorSet 0 + Decorate 211(g_tTex1df4a) DescriptorSet 0 + Decorate 211(g_tTex1df4a) Binding 1 + Decorate 212(g_tTex1df4) DescriptorSet 0 + Decorate 212(g_tTex1df4) Binding 0 + Decorate 215(g_tTex1di4) DescriptorSet 0 + Decorate 218(g_tTex1du4) DescriptorSet 0 + Decorate 221(g_tTex3df4) DescriptorSet 0 + Decorate 224(g_tTex3di4) DescriptorSet 0 + Decorate 227(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -705,30 +712,32 @@ gl_FragCoord origin is upper left 199: 6(float) Constant 1065353216 200: 7(fvec4) ConstantComposite 199 199 199 199 202: TypePointer Function 6(float) - 206(g_sSamp2d): 15(ptr) Variable UniformConstant - 207: TypeImage 6(float) 1D sampled format:Unknown - 208: TypePointer UniformConstant 207 -209(g_tTex1df4a): 208(ptr) Variable UniformConstant - 210(g_tTex1df4): 208(ptr) Variable UniformConstant - 211: TypeImage 24(int) 1D sampled format:Unknown - 212: TypePointer UniformConstant 211 - 213(g_tTex1di4): 212(ptr) Variable UniformConstant - 214: TypeImage 39(int) 1D sampled format:Unknown - 215: TypePointer UniformConstant 214 - 216(g_tTex1du4): 215(ptr) Variable UniformConstant - 217: TypeImage 6(float) 3D sampled format:Unknown - 218: TypePointer UniformConstant 217 - 219(g_tTex3df4): 218(ptr) Variable UniformConstant - 220: TypeImage 24(int) 3D sampled format:Unknown - 221: TypePointer UniformConstant 220 - 222(g_tTex3di4): 221(ptr) Variable UniformConstant - 223: TypeImage 39(int) 3D sampled format:Unknown - 224: TypePointer UniformConstant 223 - 225(g_tTex3du4): 224(ptr) Variable UniformConstant - 226: TypePointer UniformConstant 6(float) - 227(c1): 226(ptr) Variable UniformConstant - 228: TypePointer UniformConstant 7(fvec4) - 229(c4): 228(ptr) Variable UniformConstant + 204: TypePointer Output 196(PS_OUTPUT) +205(@entryPointOutput): 204(ptr) Variable Output + 208(g_sSamp2d): 15(ptr) Variable UniformConstant + 209: TypeImage 6(float) 1D sampled format:Unknown + 210: TypePointer UniformConstant 209 +211(g_tTex1df4a): 210(ptr) Variable UniformConstant + 212(g_tTex1df4): 210(ptr) Variable UniformConstant + 213: TypeImage 24(int) 1D sampled format:Unknown + 214: TypePointer UniformConstant 213 + 215(g_tTex1di4): 214(ptr) Variable UniformConstant + 216: TypeImage 39(int) 1D sampled format:Unknown + 217: TypePointer UniformConstant 216 + 218(g_tTex1du4): 217(ptr) Variable UniformConstant + 219: TypeImage 6(float) 3D sampled format:Unknown + 220: TypePointer UniformConstant 219 + 221(g_tTex3df4): 220(ptr) Variable UniformConstant + 222: TypeImage 24(int) 3D sampled format:Unknown + 223: TypePointer UniformConstant 222 + 224(g_tTex3di4): 223(ptr) Variable UniformConstant + 225: TypeImage 39(int) 3D sampled format:Unknown + 226: TypePointer UniformConstant 225 + 227(g_tTex3du4): 226(ptr) Variable UniformConstant + 228: TypePointer UniformConstant 6(float) + 229(c1): 228(ptr) Variable UniformConstant + 230: TypePointer UniformConstant 7(fvec4) + 231(c4): 230(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -904,6 +913,7 @@ gl_FragCoord origin is upper left Store 201 200 203: 202(ptr) AccessChain 198(psout) 57 Store 203 199 - 204:196(PS_OUTPUT) Load 198(psout) - ReturnValue 204 + 206:196(PS_OUTPUT) Load 198(psout) + Store 205(@entryPointOutput) 206 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 46561f90..5df5248e 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -334,8 +334,11 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Branch: Return with expression -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Sequence +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -700,8 +703,11 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Branch: Return with expression -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Sequence +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -729,14 +735,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 311 +// Id's are bound by 313 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -773,42 +779,43 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 268 "g_sSamp2d" - Name 271 "g_tTex1df4a" - Name 272 "g_tTex1df4" - Name 275 "g_tTex1di4" - Name 278 "g_tTex1du4" - Name 281 "g_tTex3df4" - Name 284 "g_tTex3di4" - Name 287 "g_tTex3du4" - Name 290 "g_tTexcdf4" - Name 293 "g_tTexcdi4" - Name 296 "g_tTexcdu4" - Name 298 "c1" - Name 301 "c3" - Name 303 "c4" - Name 305 "o1" - Name 308 "o3" - Name 310 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 274 "g_tTex1df4" + Name 277 "g_tTex1di4" + Name 280 "g_tTex1du4" + Name 283 "g_tTex3df4" + Name 286 "g_tTex3di4" + Name 289 "g_tTex3du4" + Name 292 "g_tTexcdf4" + Name 295 "g_tTexcdi4" + Name 298 "g_tTexcdu4" + Name 300 "c1" + Name 303 "c3" + Name 305 "c4" + Name 307 "o1" + Name 310 "o3" + Name 312 "o4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(g_sSamp2d) DescriptorSet 0 - Decorate 271(g_tTex1df4a) DescriptorSet 0 - Decorate 271(g_tTex1df4a) Binding 1 - Decorate 272(g_tTex1df4) DescriptorSet 0 - Decorate 272(g_tTex1df4) Binding 0 - Decorate 275(g_tTex1di4) DescriptorSet 0 - Decorate 278(g_tTex1du4) DescriptorSet 0 - Decorate 281(g_tTex3df4) DescriptorSet 0 - Decorate 284(g_tTex3di4) DescriptorSet 0 - Decorate 287(g_tTex3du4) DescriptorSet 0 - Decorate 290(g_tTexcdf4) DescriptorSet 0 - Decorate 293(g_tTexcdi4) DescriptorSet 0 - Decorate 296(g_tTexcdu4) DescriptorSet 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 1 + Decorate 274(g_tTex1df4) DescriptorSet 0 + Decorate 274(g_tTex1df4) Binding 0 + Decorate 277(g_tTex1di4) DescriptorSet 0 + Decorate 280(g_tTex1du4) DescriptorSet 0 + Decorate 283(g_tTex3df4) DescriptorSet 0 + Decorate 286(g_tTex3di4) DescriptorSet 0 + Decorate 289(g_tTex3du4) DescriptorSet 0 + Decorate 292(g_tTexcdf4) DescriptorSet 0 + Decorate 295(g_tTexcdi4) DescriptorSet 0 + Decorate 298(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -852,49 +859,51 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 268(g_sSamp2d): 15(ptr) Variable UniformConstant - 269: TypeImage 6(float) 1D sampled format:Unknown - 270: TypePointer UniformConstant 269 -271(g_tTex1df4a): 270(ptr) Variable UniformConstant - 272(g_tTex1df4): 270(ptr) Variable UniformConstant - 273: TypeImage 24(int) 1D sampled format:Unknown - 274: TypePointer UniformConstant 273 - 275(g_tTex1di4): 274(ptr) Variable UniformConstant - 276: TypeImage 44(int) 1D sampled format:Unknown - 277: TypePointer UniformConstant 276 - 278(g_tTex1du4): 277(ptr) Variable UniformConstant - 279: TypeImage 6(float) 3D sampled format:Unknown - 280: TypePointer UniformConstant 279 - 281(g_tTex3df4): 280(ptr) Variable UniformConstant - 282: TypeImage 24(int) 3D sampled format:Unknown - 283: TypePointer UniformConstant 282 - 284(g_tTex3di4): 283(ptr) Variable UniformConstant - 285: TypeImage 44(int) 3D sampled format:Unknown - 286: TypePointer UniformConstant 285 - 287(g_tTex3du4): 286(ptr) Variable UniformConstant - 288: TypeImage 6(float) Cube sampled format:Unknown - 289: TypePointer UniformConstant 288 - 290(g_tTexcdf4): 289(ptr) Variable UniformConstant - 291: TypeImage 24(int) Cube sampled format:Unknown - 292: TypePointer UniformConstant 291 - 293(g_tTexcdi4): 292(ptr) Variable UniformConstant - 294: TypeImage 44(int) Cube sampled format:Unknown - 295: TypePointer UniformConstant 294 - 296(g_tTexcdu4): 295(ptr) Variable UniformConstant - 297: TypePointer UniformConstant 6(float) - 298(c1): 297(ptr) Variable UniformConstant - 299: TypeVector 6(float) 3 - 300: TypePointer UniformConstant 299(fvec3) - 301(c3): 300(ptr) Variable UniformConstant - 302: TypePointer UniformConstant 7(fvec4) - 303(c4): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 24(int) - 305(o1): 304(ptr) Variable UniformConstant - 306: TypeVector 24(int) 3 - 307: TypePointer UniformConstant 306(ivec3) - 308(o3): 307(ptr) Variable UniformConstant - 309: TypePointer UniformConstant 31(ivec4) - 310(o4): 309(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274(g_tTex1df4): 272(ptr) Variable UniformConstant + 275: TypeImage 24(int) 1D sampled format:Unknown + 276: TypePointer UniformConstant 275 + 277(g_tTex1di4): 276(ptr) Variable UniformConstant + 278: TypeImage 44(int) 1D sampled format:Unknown + 279: TypePointer UniformConstant 278 + 280(g_tTex1du4): 279(ptr) Variable UniformConstant + 281: TypeImage 6(float) 3D sampled format:Unknown + 282: TypePointer UniformConstant 281 + 283(g_tTex3df4): 282(ptr) Variable UniformConstant + 284: TypeImage 24(int) 3D sampled format:Unknown + 285: TypePointer UniformConstant 284 + 286(g_tTex3di4): 285(ptr) Variable UniformConstant + 287: TypeImage 44(int) 3D sampled format:Unknown + 288: TypePointer UniformConstant 287 + 289(g_tTex3du4): 288(ptr) Variable UniformConstant + 290: TypeImage 6(float) Cube sampled format:Unknown + 291: TypePointer UniformConstant 290 + 292(g_tTexcdf4): 291(ptr) Variable UniformConstant + 293: TypeImage 24(int) Cube sampled format:Unknown + 294: TypePointer UniformConstant 293 + 295(g_tTexcdi4): 294(ptr) Variable UniformConstant + 296: TypeImage 44(int) Cube sampled format:Unknown + 297: TypePointer UniformConstant 296 + 298(g_tTexcdu4): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 6(float) + 300(c1): 299(ptr) Variable UniformConstant + 301: TypeVector 6(float) 3 + 302: TypePointer UniformConstant 301(fvec3) + 303(c3): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 7(fvec4) + 305(c4): 304(ptr) Variable UniformConstant + 306: TypePointer UniformConstant 24(int) + 307(o1): 306(ptr) Variable UniformConstant + 308: TypeVector 24(int) 3 + 309: TypePointer UniformConstant 308(ivec3) + 310(o3): 309(ptr) Variable UniformConstant + 311: TypePointer UniformConstant 31(ivec4) + 312(o4): 311(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1142,6 +1151,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 266:258(PS_OUTPUT) Load 260(psout) - ReturnValue 266 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 91c51bfe..5838f08a 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -334,8 +334,11 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Branch: Return with expression -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Sequence +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -696,8 +699,11 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Branch: Return with expression -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Sequence +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -721,7 +727,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 301 +// Id's are bound by 303 Capability Shader Capability ImageGatherExtended @@ -729,7 +735,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -766,33 +772,34 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 268 "g_sSamp2d" - Name 271 "g_tTex1df4a" - Name 274 "g_tTex1di4a" - Name 277 "g_tTex1du4a" - Name 280 "g_tTexcdf4a" - Name 283 "g_tTexcdi4a" - Name 286 "g_tTexcdu4a" - Name 288 "c1" - Name 291 "c2" - Name 293 "c4" - Name 295 "o1" - Name 298 "o3" - Name 300 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 276 "g_tTex1di4a" + Name 279 "g_tTex1du4a" + Name 282 "g_tTexcdf4a" + Name 285 "g_tTexcdi4a" + Name 288 "g_tTexcdu4a" + Name 290 "c1" + Name 293 "c2" + Name 295 "c4" + Name 297 "o1" + Name 300 "o3" + Name 302 "o4" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(g_sSamp2d) DescriptorSet 0 - Decorate 271(g_tTex1df4a) DescriptorSet 0 - Decorate 271(g_tTex1df4a) Binding 0 - Decorate 274(g_tTex1di4a) DescriptorSet 0 - Decorate 277(g_tTex1du4a) DescriptorSet 0 - Decorate 280(g_tTexcdf4a) DescriptorSet 0 - Decorate 283(g_tTexcdi4a) DescriptorSet 0 - Decorate 286(g_tTexcdu4a) DescriptorSet 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 0 + Decorate 276(g_tTex1di4a) DescriptorSet 0 + Decorate 279(g_tTex1du4a) DescriptorSet 0 + Decorate 282(g_tTexcdf4a) DescriptorSet 0 + Decorate 285(g_tTexcdi4a) DescriptorSet 0 + Decorate 288(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -836,39 +843,41 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 268(g_sSamp2d): 15(ptr) Variable UniformConstant - 269: TypeImage 6(float) 1D array sampled format:Unknown - 270: TypePointer UniformConstant 269 -271(g_tTex1df4a): 270(ptr) Variable UniformConstant - 272: TypeImage 24(int) 1D array sampled format:Unknown - 273: TypePointer UniformConstant 272 -274(g_tTex1di4a): 273(ptr) Variable UniformConstant - 275: TypeImage 44(int) 1D array sampled format:Unknown - 276: TypePointer UniformConstant 275 -277(g_tTex1du4a): 276(ptr) Variable UniformConstant - 278: TypeImage 6(float) Cube array sampled format:Unknown - 279: TypePointer UniformConstant 278 -280(g_tTexcdf4a): 279(ptr) Variable UniformConstant - 281: TypeImage 24(int) Cube array sampled format:Unknown - 282: TypePointer UniformConstant 281 -283(g_tTexcdi4a): 282(ptr) Variable UniformConstant - 284: TypeImage 44(int) Cube array sampled format:Unknown - 285: TypePointer UniformConstant 284 -286(g_tTexcdu4a): 285(ptr) Variable UniformConstant - 287: TypePointer UniformConstant 6(float) - 288(c1): 287(ptr) Variable UniformConstant - 289: TypeVector 6(float) 2 - 290: TypePointer UniformConstant 289(fvec2) - 291(c2): 290(ptr) Variable UniformConstant - 292: TypePointer UniformConstant 7(fvec4) - 293(c4): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 24(int) - 295(o1): 294(ptr) Variable UniformConstant - 296: TypeVector 24(int) 3 - 297: TypePointer UniformConstant 296(ivec3) - 298(o3): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 31(ivec4) - 300(o4): 299(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D array sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274: TypeImage 24(int) 1D array sampled format:Unknown + 275: TypePointer UniformConstant 274 +276(g_tTex1di4a): 275(ptr) Variable UniformConstant + 277: TypeImage 44(int) 1D array sampled format:Unknown + 278: TypePointer UniformConstant 277 +279(g_tTex1du4a): 278(ptr) Variable UniformConstant + 280: TypeImage 6(float) Cube array sampled format:Unknown + 281: TypePointer UniformConstant 280 +282(g_tTexcdf4a): 281(ptr) Variable UniformConstant + 283: TypeImage 24(int) Cube array sampled format:Unknown + 284: TypePointer UniformConstant 283 +285(g_tTexcdi4a): 284(ptr) Variable UniformConstant + 286: TypeImage 44(int) Cube array sampled format:Unknown + 287: TypePointer UniformConstant 286 +288(g_tTexcdu4a): 287(ptr) Variable UniformConstant + 289: TypePointer UniformConstant 6(float) + 290(c1): 289(ptr) Variable UniformConstant + 291: TypeVector 6(float) 2 + 292: TypePointer UniformConstant 291(fvec2) + 293(c2): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 7(fvec4) + 295(c4): 294(ptr) Variable UniformConstant + 296: TypePointer UniformConstant 24(int) + 297(o1): 296(ptr) Variable UniformConstant + 298: TypeVector 24(int) 3 + 299: TypePointer UniformConstant 298(ivec3) + 300(o3): 299(ptr) Variable UniformConstant + 301: TypePointer UniformConstant 31(ivec4) + 302(o4): 301(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1116,6 +1125,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 266:258(PS_OUTPUT) Load 260(psout) - ReturnValue 266 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index cff4a531..a3eba63c 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1060,8 +1060,11 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Branch: Return with expression -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Sequence +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -2157,8 +2160,11 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Branch: Return with expression -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Sequence +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -2191,7 +2197,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 538 +// Id's are bound by 540 Capability Shader Capability Sampled1D @@ -2200,7 +2206,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 534 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2288,7 +2294,8 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 537 "g_sSamp" + Name 534 "@entryPointOutput" + Name 539 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2318,8 +2325,8 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 537(g_sSamp) DescriptorSet 0 - Decorate 537(g_sSamp) Binding 0 + Decorate 539(g_sSamp) DescriptorSet 0 + Decorate 539(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2426,9 +2433,11 @@ gl_FragCoord origin is upper left 528: TypePointer Function 521(fvec4) 530: 14(int) Constant 1 531: TypePointer Function 9(float) - 535: TypeSampler - 536: TypePointer UniformConstant 535 - 537(g_sSamp): 536(ptr) Variable UniformConstant + 533: TypePointer Output 522(PS_OUTPUT) +534(@entryPointOutput): 533(ptr) Variable Output + 537: TypeSampler + 538: TypePointer UniformConstant 537 + 539(g_sSamp): 538(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3042,6 +3051,7 @@ gl_FragCoord origin is upper left Store 529 527 532: 531(ptr) AccessChain 524(psout) 530 Store 532 526 - 533:522(PS_OUTPUT) Load 524(psout) - ReturnValue 533 + 535:522(PS_OUTPUT) Load 524(psout) + Store 534(@entryPointOutput) 535 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 69b4dd13..a8761cdf 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -36,8 +36,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Branch: Return with expression -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -83,22 +86,25 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Branch: Return with expression -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 40 +// Id's are bound by 42 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 36 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -108,12 +114,13 @@ Shader version: 450 Name 27 "VS_OUTPUT" MemberName 27(VS_OUTPUT) 0 "Pos" Name 29 "vsout" - Name 39 "g_sSamp" + Name 36 "@entryPointOutput" + Name 41 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 39(g_sSamp) DescriptorSet 0 - Decorate 39(g_sSamp) Binding 0 + Decorate 41(g_sSamp) DescriptorSet 0 + Decorate 41(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -131,9 +138,11 @@ Shader version: 450 31: 9(float) Constant 0 32: 26(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 26(fvec4) - 37: TypeSampler - 38: TypePointer UniformConstant 37 - 39(g_sSamp): 38(ptr) Variable UniformConstant + 35: TypePointer Output 27(VS_OUTPUT) +36(@entryPointOutput): 35(ptr) Variable Output + 39: TypeSampler + 40: TypePointer UniformConstant 39 + 41(g_sSamp): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -156,6 +165,7 @@ Shader version: 450 Store 23(NumberOfLevelsU) 25 34: 33(ptr) AccessChain 29(vsout) 30 Store 34 32 - 35:27(VS_OUTPUT) Load 29(vsout) - ReturnValue 35 + 37:27(VS_OUTPUT) Load 29(vsout) + Store 36(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index e2cf6feb..d120c315 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -43,8 +43,11 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Branch: Return with expression -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Sequence +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -93,8 +96,11 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Branch: Return with expression -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Sequence +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 335e8981..cd768bec 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -12,20 +12,29 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 'input' (in 4-component vector of float) 0:3 true case -0:4 Branch: Return with expression -0:4 'input' (in 4-component vector of float) +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:4 'input' (in 4-component vector of float) +0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) 0:6 'input' (in 4-component vector of float) 0:6 'input' (in 4-component vector of float) 0:6 true case -0:7 Branch: Return with expression -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:6 false case -0:9 Branch: Return with expression -0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) @@ -45,8 +54,11 @@ gl_FragCoord origin is upper left 0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:20 'input' (in 4-component vector of float) +0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) @@ -54,13 +66,19 @@ gl_FragCoord origin is upper left 0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Branch: Return with expression -0:24 'input' (in 4-component vector of float) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:24 'input' (in 4-component vector of float) +0:24 Branch: Return 0:23 false case 0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) +0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) @@ -93,20 +111,29 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 'input' (in 4-component vector of float) 0:3 true case -0:4 Branch: Return with expression -0:4 'input' (in 4-component vector of float) +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:4 'input' (in 4-component vector of float) +0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) 0:6 'input' (in 4-component vector of float) 0:6 'input' (in 4-component vector of float) 0:6 true case -0:7 Branch: Return with expression -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:6 false case -0:9 Branch: Return with expression -0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) @@ -126,8 +153,11 @@ gl_FragCoord origin is upper left 0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:20 'input' (in 4-component vector of float) +0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) @@ -135,13 +165,19 @@ gl_FragCoord origin is upper left 0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Branch: Return with expression -0:24 'input' (in 4-component vector of float) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:24 'input' (in 4-component vector of float) +0:24 Branch: Return 0:23 false case 0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) +0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) @@ -159,17 +195,18 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 82 +// Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 19 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "input" - Name 65 "ii" - Name 78 "ii" + Name 19 "@entryPointOutput" + Name 67 "ii" + Name 80 "ii" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -178,18 +215,20 @@ gl_FragCoord origin is upper left 9(input): 8(ptr) Variable Input 12: TypeBool 13: TypeVector 12(bool) 4 - 64: TypePointer Function 6(float) - 66: TypeInt 32 0 - 67: 66(int) Constant 2 - 68: TypePointer Input 6(float) - 74: 6(float) Constant 1065353216 - 76: TypeInt 32 1 - 77: TypePointer Function 76(int) - 80: 76(int) Constant 1 + 18: TypePointer Output 7(fvec4) +19(@entryPointOutput): 18(ptr) Variable Output + 66: TypePointer Function 6(float) + 68: TypeInt 32 0 + 69: 68(int) Constant 2 + 70: TypePointer Input 6(float) + 76: 6(float) Constant 1065353216 + 78: TypeInt 32 1 + 79: TypePointer Function 78(int) + 82: 78(int) Constant 1 4(PixelShaderFunction): 2 Function None 3 5: Label - 65(ii): 64(ptr) Variable Function - 78(ii): 77(ptr) Variable Function + 67(ii): 66(ptr) Variable Function + 80(ii): 79(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 7(fvec4) Load 9(input) 14: 13(bvec4) FOrdEqual 10 11 @@ -197,78 +236,84 @@ gl_FragCoord origin is upper left SelectionMerge 17 None BranchConditional 15 16 17 16: Label - 18: 7(fvec4) Load 9(input) - ReturnValue 18 + 20: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 20 + Return 17: Label - 20: 7(fvec4) Load 9(input) - 21: 7(fvec4) Load 9(input) - 22: 13(bvec4) FOrdEqual 20 21 - 23: 12(bool) All 22 - SelectionMerge 25 None - BranchConditional 23 24 28 - 24: Label - 26: 7(fvec4) Load 9(input) - ReturnValue 26 - 28: Label - 29: 7(fvec4) Load 9(input) - 30: 7(fvec4) FNegate 29 - ReturnValue 30 - 25: Label - 32: 7(fvec4) Load 9(input) - 33: 7(fvec4) Load 9(input) - 34: 13(bvec4) FOrdEqual 32 33 - 35: 12(bool) All 34 - SelectionMerge 37 None - BranchConditional 35 36 37 - 36: Label - Branch 37 - 37: Label - 38: 7(fvec4) Load 9(input) - 39: 7(fvec4) Load 9(input) - 40: 13(bvec4) FOrdEqual 38 39 - 41: 12(bool) All 40 - SelectionMerge 43 None - BranchConditional 41 42 43 - 42: Label - Branch 43 - 43: Label - 44: 7(fvec4) Load 9(input) - 45: 7(fvec4) Load 9(input) - 46: 13(bvec4) FOrdEqual 44 45 - 47: 12(bool) All 46 - SelectionMerge 49 None - BranchConditional 47 48 49 - 48: Label - 50: 7(fvec4) Load 9(input) - ReturnValue 50 - 49: Label - 52: 7(fvec4) Load 9(input) - 53: 7(fvec4) Load 9(input) - 54: 13(bvec4) FOrdEqual 52 53 - 55: 12(bool) All 54 - SelectionMerge 57 None - BranchConditional 55 56 60 - 56: Label - 58: 7(fvec4) Load 9(input) - ReturnValue 58 - 60: Label - 61: 7(fvec4) Load 9(input) - 62: 7(fvec4) FNegate 61 - ReturnValue 62 - 57: Label - 69: 68(ptr) AccessChain 9(input) 67 - 70: 6(float) Load 69 - Store 65(ii) 70 - SelectionMerge 72 None - BranchConditional 70 71 72 - 71: Label - 73: 6(float) Load 65(ii) - 75: 6(float) FAdd 73 74 - Store 65(ii) 75 - Branch 72 - 72: Label - 79: 76(int) Load 78(ii) - 81: 76(int) IAdd 79 80 - Store 78(ii) 81 + 22: 7(fvec4) Load 9(input) + 23: 7(fvec4) Load 9(input) + 24: 13(bvec4) FOrdEqual 22 23 + 25: 12(bool) All 24 + SelectionMerge 27 None + BranchConditional 25 26 30 + 26: Label + 28: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 28 + Return + 30: Label + 31: 7(fvec4) Load 9(input) + 32: 7(fvec4) FNegate 31 + Store 19(@entryPointOutput) 32 + Return + 27: Label + 34: 7(fvec4) Load 9(input) + 35: 7(fvec4) Load 9(input) + 36: 13(bvec4) FOrdEqual 34 35 + 37: 12(bool) All 36 + SelectionMerge 39 None + BranchConditional 37 38 39 + 38: Label + Branch 39 + 39: Label + 40: 7(fvec4) Load 9(input) + 41: 7(fvec4) Load 9(input) + 42: 13(bvec4) FOrdEqual 40 41 + 43: 12(bool) All 42 + SelectionMerge 45 None + BranchConditional 43 44 45 + 44: Label + Branch 45 + 45: Label + 46: 7(fvec4) Load 9(input) + 47: 7(fvec4) Load 9(input) + 48: 13(bvec4) FOrdEqual 46 47 + 49: 12(bool) All 48 + SelectionMerge 51 None + BranchConditional 49 50 51 + 50: Label + 52: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 52 + Return + 51: Label + 54: 7(fvec4) Load 9(input) + 55: 7(fvec4) Load 9(input) + 56: 13(bvec4) FOrdEqual 54 55 + 57: 12(bool) All 56 + SelectionMerge 59 None + BranchConditional 57 58 62 + 58: Label + 60: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 60 + Return + 62: Label + 63: 7(fvec4) Load 9(input) + 64: 7(fvec4) FNegate 63 + Store 19(@entryPointOutput) 64 + Return + 59: Label + 71: 70(ptr) AccessChain 9(input) 69 + 72: 6(float) Load 71 + Store 67(ii) 72 + SelectionMerge 74 None + BranchConditional 72 73 74 + 73: Label + 75: 6(float) Load 67(ii) + 77: 6(float) FAdd 75 76 + Store 67(ii) 77 + Branch 74 + 74: Label + 81: 78(int) Load 80(ii) + 83: 78(int) IAdd 81 82 + Store 80(ii) 83 Return FunctionEnd diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 07679345..42e0d3e7 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -124,10 +124,13 @@ gl_FragCoord origin is upper left 0:33 move second child to first child (temp float) 0:33 'a9' (temp float) 0:33 'a5' (global float) -0:35 Branch: Return with expression -0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -277,10 +280,13 @@ gl_FragCoord origin is upper left 0:33 move second child to first child (temp float) 0:33 'a9' (temp float) 0:33 'a5' (global float) -0:35 Branch: Return with expression -0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -303,12 +309,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 95 +// Id's are bound by 97 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "ShaderFunction" 88 + EntryPoint Fragment 4 "ShaderFunction" 88 90 ExecutionMode 4 OriginUpperLeft Name 4 "ShaderFunction" Name 9 "a1" @@ -347,9 +353,10 @@ gl_FragCoord origin is upper left Name 82 "a8" Name 83 "b2" Name 85 "a9" - Name 88 "input" - Name 93 "c4" - Name 94 "b5" + Name 88 "@entryPointOutput" + Name 90 "input" + Name 95 "c4" + Name 96 "b5" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -418,10 +425,12 @@ gl_FragCoord origin is upper left 73: 32(int) Constant 12 81: TypePointer Function 6(float) 83(b2): 22(ptr) Variable Private - 87: TypePointer Input 7(fvec4) - 88(input): 87(ptr) Variable Input - 93(c4): 22(ptr) Variable Private - 94(b5): 22(ptr) Variable Private + 87: TypePointer Output 7(fvec4) +88(@entryPointOutput): 87(ptr) Variable Output + 89: TypePointer Input 7(fvec4) + 90(input): 89(ptr) Variable Input + 95(c4): 22(ptr) Variable Private + 96(b5): 22(ptr) Variable Private 4(ShaderFunction): 2 Function None 3 5: Label 62(a2): 61(ptr) Variable Function @@ -457,8 +466,9 @@ gl_FragCoord origin is upper left Store 82(a8) 84 86: 6(float) Load 29(a5) Store 85(a9) 86 - 89: 7(fvec4) Load 88(input) - 90: 7(fvec4) Load 9(a1) - 91: 7(fvec4) FMul 89 90 - ReturnValue 91 + 91: 7(fvec4) Load 90(input) + 92: 7(fvec4) Load 9(a1) + 93: 7(fvec4) FMul 91 92 + Store 88(@entryPointOutput) 93 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 716c34e0..03ce8b5d 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -43,8 +43,11 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Branch: Return with expression -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Branch: Return 0:? Linker Objects @@ -95,18 +98,21 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Branch: Return with expression -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 43 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -123,6 +129,7 @@ gl_FragCoord origin is upper left Name 34 "PS_OUTPUT" MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" + Name 43 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -152,14 +159,17 @@ gl_FragCoord origin is upper left 38: 37(int) Constant 0 39: 33(fvec4) ConstantComposite 13 13 13 13 40: TypePointer Function 33(fvec4) + 42: TypePointer Output 34(PS_OUTPUT) +43(@entryPointOutput): 42(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function 32: 2 FunctionCall 6(Test1() 41: 40(ptr) AccessChain 36(ps_output) 38 Store 41 39 - 42:34(PS_OUTPUT) Load 36(ps_output) - ReturnValue 42 + 44:34(PS_OUTPUT) Load 36(ps_output) + Store 43(@entryPointOutput) 44 + Return FunctionEnd 6(Test1(): 2 Function None 3 7: Label diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index e48bfb8c..044943da 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -55,8 +55,11 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Branch: Return with expression -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Sequence +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Branch: Return 0:? Linker Objects @@ -119,18 +122,21 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Branch: Return with expression -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Sequence +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 54 +// Id's are bound by 56 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 + EntryPoint Fragment 4 "main" 45 53 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -148,6 +154,7 @@ gl_FragCoord origin is upper left MemberName 31(PS_OUTPUT) 1 "Depth" Name 33 "psout" Name 45 "inpos" + Name 53 "@entryPointOutput" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord @@ -172,6 +179,8 @@ gl_FragCoord origin is upper left 46: TypeInt 32 0 47: 46(int) Constant 3 48: TypePointer Input 6(float) + 52: TypePointer Output 31(PS_OUTPUT) +53(@entryPointOutput): 52(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function @@ -202,8 +211,9 @@ gl_FragCoord origin is upper left 50: 6(float) Load 49 51: 7(ptr) AccessChain 33(psout) 43 Store 51 50 - 52:31(PS_OUTPUT) Load 33(psout) - ReturnValue 52 + 54:31(PS_OUTPUT) Load 33(psout) + Store 53(@entryPointOutput) 54 + Return FunctionEnd 12(MyFunc(f1;f1;f1;): 2 Function None 8 9(x): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 46cf5d55..ab697685 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -11,9 +11,12 @@ local_size = (1, 1, 1) 0:7 GroupMemoryBarrierWithGroupSync (global void) 0:8 WorkgroupMemoryBarrier (global void) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return 0:? Linker Objects @@ -32,21 +35,25 @@ local_size = (1, 1, 1) 0:7 GroupMemoryBarrierWithGroupSync (global void) 0:8 WorkgroupMemoryBarrier (global void) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 15 +// Id's are bound by 17 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" + EntryPoint GLCompute 4 "ComputeShaderFunction" 14 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" + Name 14 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -56,7 +63,9 @@ local_size = (1, 1, 1) 10: 6(int) Constant 2 11: 6(int) Constant 256 12: TypeFloat 32 - 13: 12(float) Constant 0 + 13: TypePointer Output 12(float) +14(@entryPointOutput): 13(ptr) Variable Output + 15: 12(float) Constant 0 4(ComputeShaderFunction): 2 Function None 3 5: Label MemoryBarrier 7 8 @@ -65,5 +74,6 @@ local_size = (1, 1, 1) ControlBarrier 7 7 9 MemoryBarrier 10 11 ControlBarrier 10 10 11 - ReturnValue 13 + Store 14(@entryPointOutput) 15 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 0dd308fb..e2fb4e57 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -299,12 +299,15 @@ local_size = (1, 1, 1) 0:125 AtomicXor (temp 4-component vector of uint) 0:125 'gs_ua4' (global 4-component vector of uint) 0:125 'gs_ub4' (global 4-component vector of uint) -0:128 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -623,12 +626,15 @@ local_size = (1, 1, 1) 0:125 AtomicXor (temp 4-component vector of uint) 0:125 'gs_ua4' (global 4-component vector of uint) 0:125 'gs_ub4' (global 4-component vector of uint) -0:128 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -645,12 +651,12 @@ local_size = (1, 1, 1) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 217 +// Id's are bound by 219 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 175 + EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" @@ -692,6 +698,7 @@ local_size = (1, 1, 1) Name 181 "gs_ub4" Name 185 "out_u4" Name 193 "gs_uc4" + Name 215 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -740,8 +747,10 @@ local_size = (1, 1, 1) 181(gs_ub4): 179(ptr) Variable Private 184: TypePointer Function 178(ivec4) 193(gs_uc4): 179(ptr) Variable Private - 214: 6(float) Constant 1082130432 - 215: 173(fvec4) ConstantComposite 128 129 169 214 + 214: TypePointer Output 173(fvec4) +215(@entryPointOutput): 214(ptr) Variable Output + 216: 6(float) Constant 1082130432 + 217: 173(fvec4) ConstantComposite 128 129 169 216 4(ComputeShaderFunction): 2 Function None 3 5: Label 185(out_u4): 184(ptr) Variable Function @@ -784,7 +793,8 @@ local_size = (1, 1, 1) 212: 178(ivec4) Load 181(gs_ub4) 213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212 Store 185(out_u4) 213 - ReturnValue 215 + Store 215(@entryPointOutput) 217 + Return FunctionEnd 16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 350c3321..68edc7f0 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -27,9 +27,12 @@ gl_FragCoord origin is upper left 0:7 Construct uvec2 (temp 2-component vector of uint) 0:7 'inU1a' (in uint) 0:7 'inU1b' (in uint) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return 0:? Linker Objects @@ -64,20 +67,23 @@ gl_FragCoord origin is upper left 0:7 Construct uvec2 (temp 2-component vector of uint) 0:7 'inU1a' (in uint) 0:7 'inU1b' (in uint) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 32 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 + EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "r00" @@ -87,6 +93,7 @@ gl_FragCoord origin is upper left Name 17 "r01" Name 20 "inU1a" Name 22 "inU1b" + Name 29 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -101,7 +108,9 @@ gl_FragCoord origin is upper left 22(inU1b): 19(ptr) Variable Input 24: TypeVector 18(int) 2 27: TypeFloat 32 - 28: 27(float) Constant 0 + 28: TypePointer Output 27(float) +29(@entryPointOutput): 28(ptr) Variable Output + 30: 27(float) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -116,5 +125,6 @@ gl_FragCoord origin is upper left 25: 24(ivec2) CompositeConstruct 21 23 26: 6(float) Bitcast 25 Store 17(r01) 26 - ReturnValue 28 + Store 29(@entryPointOutput) 30 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 7340531b..8adf5620 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -56,12 +56,15 @@ ERROR: node is still EOpNull! 0:30 ERROR: Bad unary op (global 4-component vector of uint) 0:30 'inF0' (in 4-component vector of float) -0:32 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return 0:? Linker Objects @@ -118,12 +121,15 @@ ERROR: node is still EOpNull! 0:30 ERROR: Bad unary op (global 4-component vector of uint) 0:30 'inF0' (in 4-component vector of float) -0:32 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return 0:? Linker Objects SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 4412726a..cc8be757 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -1552,12 +1552,15 @@ gl_FragCoord origin is upper left 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) -0:337 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:337 Sequence +0:337 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Branch: Return 0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -4330,12 +4333,15 @@ gl_FragCoord origin is upper left 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) -0:337 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:337 Sequence +0:337 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Branch: Return 0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -5553,13 +5559,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1812 +// Id's are bound by 1814 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 + EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 1060 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -5883,203 +5889,204 @@ gl_FragCoord origin is upper left Name 1050 "r065" Name 1053 "r066" Name 1056 "r067" - Name 1062 "r000" - Name 1065 "r001" - Name 1070 "r003" - Name 1073 "r004" - Name 1076 "r005" - Name 1079 "r006" - Name 1083 "r007" - Name 1094 "r008" - Name 1099 "r009" - Name 1102 "r010" - Name 1105 "r011" - Name 1108 "r012" - Name 1111 "r013" - Name 1114 "r014" - Name 1117 "r015" - Name 1120 "r016" - Name 1123 "r017" - Name 1126 "r018" - Name 1129 "r019" - Name 1132 "R020" - Name 1135 "r021" - Name 1138 "r022" - Name 1148 "r023" - Name 1151 "r024" - Name 1153 "ResType" - Name 1157 "r025" - Name 1160 "r026" - Name 1164 "r026a" - Name 1169 "r027" - Name 1172 "r028" - Name 1176 "r029" - Name 1179 "r030" - Name 1183 "r031" - Name 1187 "r032" - Name 1191 "r033" - Name 1194 "r034" - Name 1197 "r035" - Name 1200 "r036" - Name 1205 "r037" - Name 1208 "r038" - Name 1215 "r039" - Name 1218 "r049" - Name 1223 "r041" - Name 1226 "r042" - Name 1230 "r043" - Name 1233 "r044" - Name 1238 "r046" - Name 1245 "r000" - Name 1248 "r001" - Name 1253 "r003" - Name 1256 "r004" - Name 1259 "r005" - Name 1262 "r006" - Name 1266 "r007" - Name 1277 "r008" - Name 1282 "r009" - Name 1285 "r010" - Name 1288 "r011" - Name 1291 "r012" - Name 1294 "r013" - Name 1297 "r014" - Name 1300 "r015" - Name 1303 "r016" - Name 1306 "r017" - Name 1309 "r018" - Name 1312 "r019" - Name 1315 "R020" - Name 1318 "r021" - Name 1321 "r022" - Name 1334 "r023" - Name 1337 "r024" - Name 1339 "ResType" - Name 1343 "r025" - Name 1346 "r026" - Name 1350 "r026a" - Name 1355 "r027" - Name 1358 "r028" - Name 1362 "r029" - Name 1365 "r030" - Name 1369 "r031" - Name 1373 "r032" - Name 1377 "r033" - Name 1380 "r034" - Name 1383 "r035" - Name 1386 "r036" - Name 1391 "r037" - Name 1394 "r038" - Name 1401 "r039" - Name 1404 "r049" - Name 1409 "r041" - Name 1412 "r042" - Name 1416 "r043" - Name 1419 "r044" - Name 1424 "r046" - Name 1431 "r000" - Name 1434 "r001" - Name 1439 "r003" - Name 1442 "r004" - Name 1445 "r005" - Name 1448 "r006" - Name 1452 "r007" - Name 1463 "r008" - Name 1468 "r009" - Name 1471 "r010" - Name 1474 "r011" - Name 1477 "r012" - Name 1480 "r013" - Name 1483 "r014" - Name 1486 "r015" - Name 1489 "r016" - Name 1492 "r017" - Name 1495 "r018" - Name 1498 "r019" - Name 1501 "R020" - Name 1504 "r021" - Name 1507 "r022" - Name 1523 "r023" - Name 1526 "r024" - Name 1528 "ResType" - Name 1532 "r025" - Name 1535 "r026" - Name 1539 "r026a" - Name 1544 "r027" - Name 1547 "r028" - Name 1551 "r029" - Name 1554 "r030" - Name 1558 "r031" - Name 1562 "r032" - Name 1566 "r033" - Name 1569 "r034" - Name 1572 "r035" - Name 1575 "r036" - Name 1580 "r037" - Name 1583 "r038" - Name 1590 "r039" - Name 1593 "r049" - Name 1598 "r041" - Name 1601 "r042" - Name 1605 "r043" - Name 1608 "r044" - Name 1613 "r046" - Name 1620 "r0" - Name 1624 "r1" - Name 1628 "r2" - Name 1632 "r3" - Name 1636 "r4" - Name 1640 "r5" - Name 1644 "r6" - Name 1648 "r7" - Name 1652 "r8" - Name 1656 "r0" - Name 1660 "r1" - Name 1664 "r2" - Name 1668 "r3" - Name 1672 "r4" - Name 1676 "r5" - Name 1680 "r6" - Name 1684 "r7" - Name 1688 "r8" - Name 1692 "r0" - Name 1696 "r1" - Name 1700 "r2" - Name 1704 "r3" - Name 1708 "r4" - Name 1712 "r5" - Name 1716 "r6" - Name 1720 "r7" - Name 1724 "r8" - Name 1728 "r00" - Name 1732 "r01" - Name 1736 "r02" - Name 1740 "r03" - Name 1744 "r04" - Name 1748 "r05" - Name 1752 "r06" - Name 1756 "r07" - Name 1760 "r08" - Name 1764 "r09" - Name 1768 "r10" - Name 1772 "r11" - Name 1776 "r12" - Name 1780 "r13" - Name 1784 "r14" - Name 1788 "r15" - Name 1792 "r16" - Name 1797 "gs_ua" - Name 1798 "gs_ub" - Name 1799 "gs_uc" - Name 1801 "gs_ua2" - Name 1802 "gs_ub2" - Name 1803 "gs_uc2" - Name 1805 "gs_ua3" - Name 1806 "gs_ub3" - Name 1807 "gs_uc3" - Name 1809 "gs_ua4" - Name 1810 "gs_ub4" - Name 1811 "gs_uc4" + Name 1060 "@entryPointOutput" + Name 1064 "r000" + Name 1067 "r001" + Name 1072 "r003" + Name 1075 "r004" + Name 1078 "r005" + Name 1081 "r006" + Name 1085 "r007" + Name 1096 "r008" + Name 1101 "r009" + Name 1104 "r010" + Name 1107 "r011" + Name 1110 "r012" + Name 1113 "r013" + Name 1116 "r014" + Name 1119 "r015" + Name 1122 "r016" + Name 1125 "r017" + Name 1128 "r018" + Name 1131 "r019" + Name 1134 "R020" + Name 1137 "r021" + Name 1140 "r022" + Name 1150 "r023" + Name 1153 "r024" + Name 1155 "ResType" + Name 1159 "r025" + Name 1162 "r026" + Name 1166 "r026a" + Name 1171 "r027" + Name 1174 "r028" + Name 1178 "r029" + Name 1181 "r030" + Name 1185 "r031" + Name 1189 "r032" + Name 1193 "r033" + Name 1196 "r034" + Name 1199 "r035" + Name 1202 "r036" + Name 1207 "r037" + Name 1210 "r038" + Name 1217 "r039" + Name 1220 "r049" + Name 1225 "r041" + Name 1228 "r042" + Name 1232 "r043" + Name 1235 "r044" + Name 1240 "r046" + Name 1247 "r000" + Name 1250 "r001" + Name 1255 "r003" + Name 1258 "r004" + Name 1261 "r005" + Name 1264 "r006" + Name 1268 "r007" + Name 1279 "r008" + Name 1284 "r009" + Name 1287 "r010" + Name 1290 "r011" + Name 1293 "r012" + Name 1296 "r013" + Name 1299 "r014" + Name 1302 "r015" + Name 1305 "r016" + Name 1308 "r017" + Name 1311 "r018" + Name 1314 "r019" + Name 1317 "R020" + Name 1320 "r021" + Name 1323 "r022" + Name 1336 "r023" + Name 1339 "r024" + Name 1341 "ResType" + Name 1345 "r025" + Name 1348 "r026" + Name 1352 "r026a" + Name 1357 "r027" + Name 1360 "r028" + Name 1364 "r029" + Name 1367 "r030" + Name 1371 "r031" + Name 1375 "r032" + Name 1379 "r033" + Name 1382 "r034" + Name 1385 "r035" + Name 1388 "r036" + Name 1393 "r037" + Name 1396 "r038" + Name 1403 "r039" + Name 1406 "r049" + Name 1411 "r041" + Name 1414 "r042" + Name 1418 "r043" + Name 1421 "r044" + Name 1426 "r046" + Name 1433 "r000" + Name 1436 "r001" + Name 1441 "r003" + Name 1444 "r004" + Name 1447 "r005" + Name 1450 "r006" + Name 1454 "r007" + Name 1465 "r008" + Name 1470 "r009" + Name 1473 "r010" + Name 1476 "r011" + Name 1479 "r012" + Name 1482 "r013" + Name 1485 "r014" + Name 1488 "r015" + Name 1491 "r016" + Name 1494 "r017" + Name 1497 "r018" + Name 1500 "r019" + Name 1503 "R020" + Name 1506 "r021" + Name 1509 "r022" + Name 1525 "r023" + Name 1528 "r024" + Name 1530 "ResType" + Name 1534 "r025" + Name 1537 "r026" + Name 1541 "r026a" + Name 1546 "r027" + Name 1549 "r028" + Name 1553 "r029" + Name 1556 "r030" + Name 1560 "r031" + Name 1564 "r032" + Name 1568 "r033" + Name 1571 "r034" + Name 1574 "r035" + Name 1577 "r036" + Name 1582 "r037" + Name 1585 "r038" + Name 1592 "r039" + Name 1595 "r049" + Name 1600 "r041" + Name 1603 "r042" + Name 1607 "r043" + Name 1610 "r044" + Name 1615 "r046" + Name 1622 "r0" + Name 1626 "r1" + Name 1630 "r2" + Name 1634 "r3" + Name 1638 "r4" + Name 1642 "r5" + Name 1646 "r6" + Name 1650 "r7" + Name 1654 "r8" + Name 1658 "r0" + Name 1662 "r1" + Name 1666 "r2" + Name 1670 "r3" + Name 1674 "r4" + Name 1678 "r5" + Name 1682 "r6" + Name 1686 "r7" + Name 1690 "r8" + Name 1694 "r0" + Name 1698 "r1" + Name 1702 "r2" + Name 1706 "r3" + Name 1710 "r4" + Name 1714 "r5" + Name 1718 "r6" + Name 1722 "r7" + Name 1726 "r8" + Name 1730 "r00" + Name 1734 "r01" + Name 1738 "r02" + Name 1742 "r03" + Name 1746 "r04" + Name 1750 "r05" + Name 1754 "r06" + Name 1758 "r07" + Name 1762 "r08" + Name 1766 "r09" + Name 1770 "r10" + Name 1774 "r11" + Name 1778 "r12" + Name 1782 "r13" + Name 1786 "r14" + Name 1790 "r15" + Name 1794 "r16" + Name 1799 "gs_ua" + Name 1800 "gs_ub" + Name 1801 "gs_uc" + Name 1803 "gs_ua2" + Name 1804 "gs_ub2" + Name 1805 "gs_uc2" + Name 1807 "gs_ua3" + Name 1808 "gs_ub3" + Name 1809 "gs_uc3" + Name 1811 "gs_ua4" + Name 1812 "gs_ub4" + Name 1813 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6180,39 +6187,41 @@ gl_FragCoord origin is upper left 945(ResType): TypeStruct 64(fvec4) 825(ivec4) 952: TypePointer Function 859(bvec4) 1012: 830(ivec4) ConstantComposite 512 278 383 667 - 1059: 6(float) Constant 1082130432 - 1060: 64(fvec4) ConstantComposite 274 509 804 1059 - 1087: 48 ConstantComposite 369 369 - 1088: TypeMatrix 370(bvec2) 2 - 1153(ResType): TypeStruct 48 342(ivec2) - 1241: 24(fvec2) ConstantComposite 509 509 - 1242: 48 ConstantComposite 1241 1241 - 1270: 56 ConstantComposite 605 605 605 - 1271: TypeMatrix 606(bvec3) 3 - 1339(ResType): TypeStruct 56 578(ivec3) - 1427: 36(fvec3) ConstantComposite 804 804 804 - 1428: 56 ConstantComposite 1427 1427 1427 - 1456: 65 ConstantComposite 858 858 858 858 - 1457: TypeMatrix 859(bvec4) 4 - 1528(ResType): TypeStruct 65 825(ivec4) - 1616: 64(fvec4) ConstantComposite 1059 1059 1059 1059 - 1617: 65 ConstantComposite 1616 1616 1616 1616 - 1796: TypePointer Private 8(int) - 1797(gs_ua): 1796(ptr) Variable Private - 1798(gs_ub): 1796(ptr) Variable Private - 1799(gs_uc): 1796(ptr) Variable Private - 1800: TypePointer Private 26(ivec2) - 1801(gs_ua2): 1800(ptr) Variable Private - 1802(gs_ub2): 1800(ptr) Variable Private - 1803(gs_uc2): 1800(ptr) Variable Private - 1804: TypePointer Private 38(ivec3) - 1805(gs_ua3): 1804(ptr) Variable Private - 1806(gs_ub3): 1804(ptr) Variable Private - 1807(gs_uc3): 1804(ptr) Variable Private - 1808: TypePointer Private 830(ivec4) - 1809(gs_ua4): 1808(ptr) Variable Private - 1810(gs_ub4): 1808(ptr) Variable Private - 1811(gs_uc4): 1808(ptr) Variable Private + 1059: TypePointer Output 64(fvec4) +1060(@entryPointOutput): 1059(ptr) Variable Output + 1061: 6(float) Constant 1082130432 + 1062: 64(fvec4) ConstantComposite 274 509 804 1061 + 1089: 48 ConstantComposite 369 369 + 1090: TypeMatrix 370(bvec2) 2 + 1155(ResType): TypeStruct 48 342(ivec2) + 1243: 24(fvec2) ConstantComposite 509 509 + 1244: 48 ConstantComposite 1243 1243 + 1272: 56 ConstantComposite 605 605 605 + 1273: TypeMatrix 606(bvec3) 3 + 1341(ResType): TypeStruct 56 578(ivec3) + 1429: 36(fvec3) ConstantComposite 804 804 804 + 1430: 56 ConstantComposite 1429 1429 1429 + 1458: 65 ConstantComposite 858 858 858 858 + 1459: TypeMatrix 859(bvec4) 4 + 1530(ResType): TypeStruct 65 825(ivec4) + 1618: 64(fvec4) ConstantComposite 1061 1061 1061 1061 + 1619: 65 ConstantComposite 1618 1618 1618 1618 + 1798: TypePointer Private 8(int) + 1799(gs_ua): 1798(ptr) Variable Private + 1800(gs_ub): 1798(ptr) Variable Private + 1801(gs_uc): 1798(ptr) Variable Private + 1802: TypePointer Private 26(ivec2) + 1803(gs_ua2): 1802(ptr) Variable Private + 1804(gs_ub2): 1802(ptr) Variable Private + 1805(gs_uc2): 1802(ptr) Variable Private + 1806: TypePointer Private 38(ivec3) + 1807(gs_ua3): 1806(ptr) Variable Private + 1808(gs_ub3): 1806(ptr) Variable Private + 1809(gs_uc3): 1806(ptr) Variable Private + 1810: TypePointer Private 830(ivec4) + 1811(gs_ua4): 1810(ptr) Variable Private + 1812(gs_ub4): 1810(ptr) Variable Private + 1813(gs_uc4): 1810(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 808(r000): 122(ptr) Variable Function @@ -6515,7 +6524,8 @@ gl_FragCoord origin is upper left 1057: 64(fvec4) Load 810(inF0) 1058: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1057 Store 1056(r067) 1058 - ReturnValue 1060 + Store 1060(@entryPointOutput) 1062 + Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -7395,711 +7405,711 @@ gl_FragCoord origin is upper left 52(inF1): 49(ptr) FunctionParameter 53(inF2): 49(ptr) FunctionParameter 55: Label - 1062(r000): 122(ptr) Variable Function - 1065(r001): 49(ptr) Variable Function - 1070(r003): 122(ptr) Variable Function - 1073(r004): 49(ptr) Variable Function - 1076(r005): 49(ptr) Variable Function - 1079(r006): 49(ptr) Variable Function - 1083(r007): 49(ptr) Variable Function - 1094(r008): 49(ptr) Variable Function - 1099(r009): 49(ptr) Variable Function - 1102(r010): 49(ptr) Variable Function - 1105(r011): 49(ptr) Variable Function - 1108(r012): 49(ptr) Variable Function - 1111(r013): 49(ptr) Variable Function - 1114(r014): 49(ptr) Variable Function - 1117(r015): 49(ptr) Variable Function - 1120(r016): 49(ptr) Variable Function - 1123(r017): 49(ptr) Variable Function - 1126(r018): 7(ptr) Variable Function - 1129(r019): 49(ptr) Variable Function - 1132(R020): 49(ptr) Variable Function - 1135(r021): 49(ptr) Variable Function - 1138(r022): 49(ptr) Variable Function - 1148(r023): 49(ptr) Variable Function - 1151(r024): 49(ptr) Variable Function - 1157(r025): 49(ptr) Variable Function - 1160(r026): 49(ptr) Variable Function - 1164(r026a): 49(ptr) Variable Function - 1169(r027): 49(ptr) Variable Function - 1172(r028): 49(ptr) Variable Function - 1176(r029): 49(ptr) Variable Function - 1179(r030): 49(ptr) Variable Function - 1183(r031): 49(ptr) Variable Function - 1187(r032): 49(ptr) Variable Function - 1191(r033): 49(ptr) Variable Function - 1194(r034): 49(ptr) Variable Function - 1197(r035): 49(ptr) Variable Function - 1200(r036): 49(ptr) Variable Function - 1205(r037): 49(ptr) Variable Function - 1208(r038): 49(ptr) Variable Function - 1215(r039): 49(ptr) Variable Function - 1218(r049): 49(ptr) Variable Function - 1223(r041): 49(ptr) Variable Function - 1226(r042): 49(ptr) Variable Function - 1230(r043): 49(ptr) Variable Function - 1233(r044): 49(ptr) Variable Function - 1238(r046): 49(ptr) Variable Function - 1063: 48 Load 51(inF0) - 1064: 121(bool) All 1063 - Store 1062(r000) 1064 - 1066: 48 Load 51(inF0) - 1067: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1066 - Store 1065(r001) 1067 + 1064(r000): 122(ptr) Variable Function + 1067(r001): 49(ptr) Variable Function + 1072(r003): 122(ptr) Variable Function + 1075(r004): 49(ptr) Variable Function + 1078(r005): 49(ptr) Variable Function + 1081(r006): 49(ptr) Variable Function + 1085(r007): 49(ptr) Variable Function + 1096(r008): 49(ptr) Variable Function + 1101(r009): 49(ptr) Variable Function + 1104(r010): 49(ptr) Variable Function + 1107(r011): 49(ptr) Variable Function + 1110(r012): 49(ptr) Variable Function + 1113(r013): 49(ptr) Variable Function + 1116(r014): 49(ptr) Variable Function + 1119(r015): 49(ptr) Variable Function + 1122(r016): 49(ptr) Variable Function + 1125(r017): 49(ptr) Variable Function + 1128(r018): 7(ptr) Variable Function + 1131(r019): 49(ptr) Variable Function + 1134(R020): 49(ptr) Variable Function + 1137(r021): 49(ptr) Variable Function + 1140(r022): 49(ptr) Variable Function + 1150(r023): 49(ptr) Variable Function + 1153(r024): 49(ptr) Variable Function + 1159(r025): 49(ptr) Variable Function + 1162(r026): 49(ptr) Variable Function + 1166(r026a): 49(ptr) Variable Function + 1171(r027): 49(ptr) Variable Function + 1174(r028): 49(ptr) Variable Function + 1178(r029): 49(ptr) Variable Function + 1181(r030): 49(ptr) Variable Function + 1185(r031): 49(ptr) Variable Function + 1189(r032): 49(ptr) Variable Function + 1193(r033): 49(ptr) Variable Function + 1196(r034): 49(ptr) Variable Function + 1199(r035): 49(ptr) Variable Function + 1202(r036): 49(ptr) Variable Function + 1207(r037): 49(ptr) Variable Function + 1210(r038): 49(ptr) Variable Function + 1217(r039): 49(ptr) Variable Function + 1220(r049): 49(ptr) Variable Function + 1225(r041): 49(ptr) Variable Function + 1228(r042): 49(ptr) Variable Function + 1232(r043): 49(ptr) Variable Function + 1235(r044): 49(ptr) Variable Function + 1240(r046): 49(ptr) Variable Function + 1065: 48 Load 51(inF0) + 1066: 121(bool) All 1065 + Store 1064(r000) 1066 1068: 48 Load 51(inF0) - 1069: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1068 - 1071: 48 Load 51(inF0) - 1072: 121(bool) Any 1071 - Store 1070(r003) 1072 - 1074: 48 Load 51(inF0) - 1075: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1074 - Store 1073(r004) 1075 - 1077: 48 Load 51(inF0) - 1078: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1077 - Store 1076(r005) 1078 - 1080: 48 Load 51(inF0) - 1081: 48 Load 52(inF1) - 1082: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1080 1081 - Store 1079(r006) 1082 - 1084: 48 Load 51(inF0) - 1085: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1084 - Store 1083(r007) 1085 + 1069: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 + Store 1067(r001) 1069 + 1070: 48 Load 51(inF0) + 1071: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1070 + 1073: 48 Load 51(inF0) + 1074: 121(bool) Any 1073 + Store 1072(r003) 1074 + 1076: 48 Load 51(inF0) + 1077: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1076 + Store 1075(r004) 1077 + 1079: 48 Load 51(inF0) + 1080: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1079 + Store 1078(r005) 1080 + 1082: 48 Load 51(inF0) + 1083: 48 Load 52(inF1) + 1084: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 + Store 1081(r006) 1084 1086: 48 Load 51(inF0) - 1089: 1088 FOrdLessThan 1086 1087 - 1090: 121(bool) Any 1089 - SelectionMerge 1092 None - BranchConditional 1090 1091 1092 - 1091: Label + 1087: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 + Store 1085(r007) 1087 + 1088: 48 Load 51(inF0) + 1091: 1090 FOrdLessThan 1088 1089 + 1092: 121(bool) Any 1091 + SelectionMerge 1094 None + BranchConditional 1092 1093 1094 + 1093: Label Kill - 1092: Label - 1095: 48 Load 51(inF0) - 1096: 48 Load 52(inF1) - 1097: 48 Load 53(inF2) - 1098: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1095 1096 1097 - Store 1094(r008) 1098 - 1100: 48 Load 51(inF0) - 1101: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1100 - Store 1099(r009) 1101 - 1103: 48 Load 51(inF0) - 1104: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1103 - Store 1102(r010) 1104 - 1106: 48 Load 51(inF0) - 1107: 48 DPdx 1106 - Store 1105(r011) 1107 - 1109: 48 Load 51(inF0) - 1110: 48 DPdxCoarse 1109 - Store 1108(r012) 1110 - 1112: 48 Load 51(inF0) - 1113: 48 DPdxFine 1112 - Store 1111(r013) 1113 - 1115: 48 Load 51(inF0) - 1116: 48 DPdy 1115 - Store 1114(r014) 1116 - 1118: 48 Load 51(inF0) - 1119: 48 DPdyCoarse 1118 - Store 1117(r015) 1119 - 1121: 48 Load 51(inF0) - 1122: 48 DPdyFine 1121 - Store 1120(r016) 1122 - 1124: 48 Load 51(inF0) - 1125: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1124 - Store 1123(r017) 1125 - 1127: 48 Load 51(inF0) - 1128: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1127 - Store 1126(r018) 1128 - 1130: 48 Load 51(inF0) - 1131: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1130 - Store 1129(r019) 1131 - 1133: 48 Load 51(inF0) - 1134: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1133 - Store 1132(R020) 1134 - 1136: 48 Load 51(inF0) - 1137: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1136 - Store 1135(r021) 1137 - 1139: 48 Load 51(inF0) - 1140: 48 Load 52(inF1) - 1141: 24(fvec2) CompositeExtract 1139 0 - 1142: 24(fvec2) CompositeExtract 1140 0 - 1143: 24(fvec2) FMod 1141 1142 - 1144: 24(fvec2) CompositeExtract 1139 1 - 1145: 24(fvec2) CompositeExtract 1140 1 - 1146: 24(fvec2) FMod 1144 1145 - 1147: 48 CompositeConstruct 1143 1146 - Store 1138(r022) 1147 - 1149: 48 Load 51(inF0) - 1150: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1149 - Store 1148(r023) 1150 - 1152: 48 Load 51(inF0) - 1154:1153(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1152 - 1155: 342(ivec2) CompositeExtract 1154 1 - Store 52(inF1) 1155 - 1156: 48 CompositeExtract 1154 0 - Store 1151(r024) 1156 - 1158: 48 Load 51(inF0) - 1159: 48 Fwidth 1158 - Store 1157(r025) 1159 - 1161: 48 Load 51(inF0) - 1162: 48 Load 52(inF1) - 1163: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1161 1162 - Store 1160(r026) 1163 - 1165: 48 Load 51(inF0) - 1166: 48 Load 52(inF1) - 1167: 48 Load 53(inF2) - 1168: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1165 1166 1167 - Store 1164(r026a) 1168 - 1170: 48 Load 51(inF0) - 1171: 48 ExtInst 1(GLSL.std.450) 28(Log) 1170 - Store 1169(r027) 1171 - 1173: 48 Load 51(inF0) - 1174: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1173 - 1175: 48 MatrixTimesScalar 1174 253 - Store 1172(r028) 1175 - 1177: 48 Load 51(inF0) - 1178: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1177 - Store 1176(r029) 1178 - 1180: 48 Load 51(inF0) - 1181: 48 Load 52(inF1) - 1182: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1180 1181 - Store 1179(r030) 1182 - 1184: 48 Load 51(inF0) - 1185: 48 Load 52(inF1) - 1186: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1184 1185 - Store 1183(r031) 1186 - 1188: 48 Load 51(inF0) - 1189: 48 Load 52(inF1) - 1190: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1188 1189 - Store 1187(r032) 1190 - 1192: 48 Load 51(inF0) - 1193: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1192 - Store 1191(r033) 1193 - 1195: 48 Load 51(inF0) - 1196: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1195 - Store 1194(r034) 1196 - 1198: 48 Load 51(inF0) - 1199: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1198 - Store 1197(r035) 1199 - 1201: 48 Load 51(inF0) - 1202: 24(fvec2) CompositeConstruct 165 165 - 1203: 24(fvec2) CompositeConstruct 274 274 - 1204: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1201 1202 1203 - Store 1200(r036) 1204 - 1206: 48 Load 51(inF0) - 1207: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1206 - Store 1205(r037) 1207 - 1209: 48 Load 51(inF0) - 1210: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1209 - Store 1208(r038) 1210 + 1094: Label + 1097: 48 Load 51(inF0) + 1098: 48 Load 52(inF1) + 1099: 48 Load 53(inF2) + 1100: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 + Store 1096(r008) 1100 + 1102: 48 Load 51(inF0) + 1103: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1102 + Store 1101(r009) 1103 + 1105: 48 Load 51(inF0) + 1106: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 + Store 1104(r010) 1106 + 1108: 48 Load 51(inF0) + 1109: 48 DPdx 1108 + Store 1107(r011) 1109 + 1111: 48 Load 51(inF0) + 1112: 48 DPdxCoarse 1111 + Store 1110(r012) 1112 + 1114: 48 Load 51(inF0) + 1115: 48 DPdxFine 1114 + Store 1113(r013) 1115 + 1117: 48 Load 51(inF0) + 1118: 48 DPdy 1117 + Store 1116(r014) 1118 + 1120: 48 Load 51(inF0) + 1121: 48 DPdyCoarse 1120 + Store 1119(r015) 1121 + 1123: 48 Load 51(inF0) + 1124: 48 DPdyFine 1123 + Store 1122(r016) 1124 + 1126: 48 Load 51(inF0) + 1127: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 + Store 1125(r017) 1127 + 1129: 48 Load 51(inF0) + 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129 + Store 1128(r018) 1130 + 1132: 48 Load 51(inF0) + 1133: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1132 + Store 1131(r019) 1133 + 1135: 48 Load 51(inF0) + 1136: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 + Store 1134(R020) 1136 + 1138: 48 Load 51(inF0) + 1139: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1138 + Store 1137(r021) 1139 + 1141: 48 Load 51(inF0) + 1142: 48 Load 52(inF1) + 1143: 24(fvec2) CompositeExtract 1141 0 + 1144: 24(fvec2) CompositeExtract 1142 0 + 1145: 24(fvec2) FMod 1143 1144 + 1146: 24(fvec2) CompositeExtract 1141 1 + 1147: 24(fvec2) CompositeExtract 1142 1 + 1148: 24(fvec2) FMod 1146 1147 + 1149: 48 CompositeConstruct 1145 1148 + Store 1140(r022) 1149 + 1151: 48 Load 51(inF0) + 1152: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1151 + Store 1150(r023) 1152 + 1154: 48 Load 51(inF0) + 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154 + 1157: 342(ivec2) CompositeExtract 1156 1 + Store 52(inF1) 1157 + 1158: 48 CompositeExtract 1156 0 + Store 1153(r024) 1158 + 1160: 48 Load 51(inF0) + 1161: 48 Fwidth 1160 + Store 1159(r025) 1161 + 1163: 48 Load 51(inF0) + 1164: 48 Load 52(inF1) + 1165: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 + Store 1162(r026) 1165 + 1167: 48 Load 51(inF0) + 1168: 48 Load 52(inF1) + 1169: 48 Load 53(inF2) + 1170: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 + Store 1166(r026a) 1170 + 1172: 48 Load 51(inF0) + 1173: 48 ExtInst 1(GLSL.std.450) 28(Log) 1172 + Store 1171(r027) 1173 + 1175: 48 Load 51(inF0) + 1176: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1175 + 1177: 48 MatrixTimesScalar 1176 253 + Store 1174(r028) 1177 + 1179: 48 Load 51(inF0) + 1180: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1179 + Store 1178(r029) 1180 + 1182: 48 Load 51(inF0) + 1183: 48 Load 52(inF1) + 1184: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 + Store 1181(r030) 1184 + 1186: 48 Load 51(inF0) + 1187: 48 Load 52(inF1) + 1188: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 + Store 1185(r031) 1188 + 1190: 48 Load 51(inF0) + 1191: 48 Load 52(inF1) + 1192: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 + Store 1189(r032) 1192 + 1194: 48 Load 51(inF0) + 1195: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1194 + Store 1193(r033) 1195 + 1197: 48 Load 51(inF0) + 1198: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 + Store 1196(r034) 1198 + 1200: 48 Load 51(inF0) + 1201: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 + Store 1199(r035) 1201 + 1203: 48 Load 51(inF0) + 1204: 24(fvec2) CompositeConstruct 165 165 + 1205: 24(fvec2) CompositeConstruct 274 274 + 1206: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 + Store 1202(r036) 1206 + 1208: 48 Load 51(inF0) + 1209: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1208 + Store 1207(r037) 1209 1211: 48 Load 51(inF0) 1212: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1211 - Store 52(inF1) 1212 + Store 1210(r038) 1212 1213: 48 Load 51(inF0) - 1214: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1213 - Store 53(inF2) 1214 - 1216: 48 Load 51(inF0) - 1217: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1216 - Store 1215(r039) 1217 - 1219: 48 Load 51(inF0) - 1220: 48 Load 52(inF1) - 1221: 48 Load 53(inF2) - 1222: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1219 1220 1221 - Store 1218(r049) 1222 - 1224: 48 Load 51(inF0) - 1225: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1224 - Store 1223(r041) 1225 - 1227: 48 Load 51(inF0) - 1228: 48 Load 52(inF1) - 1229: 48 ExtInst 1(GLSL.std.450) 48(Step) 1227 1228 - Store 1226(r042) 1229 - 1231: 48 Load 51(inF0) - 1232: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1231 - Store 1230(r043) 1232 - 1234: 48 Load 51(inF0) - 1235: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1234 - Store 1233(r044) 1235 + 1214: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1213 + Store 52(inF1) 1214 + 1215: 48 Load 51(inF0) + 1216: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1215 + Store 53(inF2) 1216 + 1218: 48 Load 51(inF0) + 1219: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 + Store 1217(r039) 1219 + 1221: 48 Load 51(inF0) + 1222: 48 Load 52(inF1) + 1223: 48 Load 53(inF2) + 1224: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 + Store 1220(r049) 1224 + 1226: 48 Load 51(inF0) + 1227: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 + Store 1225(r041) 1227 + 1229: 48 Load 51(inF0) + 1230: 48 Load 52(inF1) + 1231: 48 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 + Store 1228(r042) 1231 + 1233: 48 Load 51(inF0) + 1234: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1233 + Store 1232(r043) 1234 1236: 48 Load 51(inF0) - 1237: 48 Transpose 1236 - 1239: 48 Load 51(inF0) - 1240: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1239 - Store 1238(r046) 1240 - ReturnValue 1242 + 1237: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 + Store 1235(r044) 1237 + 1238: 48 Load 51(inF0) + 1239: 48 Transpose 1238 + 1241: 48 Load 51(inF0) + 1242: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 + Store 1240(r046) 1242 + ReturnValue 1244 FunctionEnd 62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58 59(inF0): 57(ptr) FunctionParameter 60(inF1): 57(ptr) FunctionParameter 61(inF2): 57(ptr) FunctionParameter 63: Label - 1245(r000): 122(ptr) Variable Function - 1248(r001): 57(ptr) Variable Function - 1253(r003): 122(ptr) Variable Function - 1256(r004): 57(ptr) Variable Function - 1259(r005): 57(ptr) Variable Function - 1262(r006): 57(ptr) Variable Function - 1266(r007): 57(ptr) Variable Function - 1277(r008): 57(ptr) Variable Function - 1282(r009): 57(ptr) Variable Function - 1285(r010): 57(ptr) Variable Function - 1288(r011): 57(ptr) Variable Function - 1291(r012): 57(ptr) Variable Function - 1294(r013): 57(ptr) Variable Function - 1297(r014): 57(ptr) Variable Function - 1300(r015): 57(ptr) Variable Function - 1303(r016): 57(ptr) Variable Function - 1306(r017): 57(ptr) Variable Function - 1309(r018): 7(ptr) Variable Function - 1312(r019): 57(ptr) Variable Function - 1315(R020): 57(ptr) Variable Function - 1318(r021): 57(ptr) Variable Function - 1321(r022): 57(ptr) Variable Function - 1334(r023): 57(ptr) Variable Function - 1337(r024): 57(ptr) Variable Function - 1343(r025): 57(ptr) Variable Function - 1346(r026): 57(ptr) Variable Function - 1350(r026a): 57(ptr) Variable Function - 1355(r027): 57(ptr) Variable Function - 1358(r028): 57(ptr) Variable Function - 1362(r029): 57(ptr) Variable Function - 1365(r030): 57(ptr) Variable Function - 1369(r031): 57(ptr) Variable Function - 1373(r032): 57(ptr) Variable Function - 1377(r033): 57(ptr) Variable Function - 1380(r034): 57(ptr) Variable Function - 1383(r035): 57(ptr) Variable Function - 1386(r036): 57(ptr) Variable Function - 1391(r037): 57(ptr) Variable Function - 1394(r038): 57(ptr) Variable Function - 1401(r039): 57(ptr) Variable Function - 1404(r049): 57(ptr) Variable Function - 1409(r041): 57(ptr) Variable Function - 1412(r042): 57(ptr) Variable Function - 1416(r043): 57(ptr) Variable Function - 1419(r044): 57(ptr) Variable Function - 1424(r046): 57(ptr) Variable Function - 1246: 56 Load 59(inF0) - 1247: 121(bool) All 1246 - Store 1245(r000) 1247 - 1249: 56 Load 59(inF0) - 1250: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1249 - Store 1248(r001) 1250 + 1247(r000): 122(ptr) Variable Function + 1250(r001): 57(ptr) Variable Function + 1255(r003): 122(ptr) Variable Function + 1258(r004): 57(ptr) Variable Function + 1261(r005): 57(ptr) Variable Function + 1264(r006): 57(ptr) Variable Function + 1268(r007): 57(ptr) Variable Function + 1279(r008): 57(ptr) Variable Function + 1284(r009): 57(ptr) Variable Function + 1287(r010): 57(ptr) Variable Function + 1290(r011): 57(ptr) Variable Function + 1293(r012): 57(ptr) Variable Function + 1296(r013): 57(ptr) Variable Function + 1299(r014): 57(ptr) Variable Function + 1302(r015): 57(ptr) Variable Function + 1305(r016): 57(ptr) Variable Function + 1308(r017): 57(ptr) Variable Function + 1311(r018): 7(ptr) Variable Function + 1314(r019): 57(ptr) Variable Function + 1317(R020): 57(ptr) Variable Function + 1320(r021): 57(ptr) Variable Function + 1323(r022): 57(ptr) Variable Function + 1336(r023): 57(ptr) Variable Function + 1339(r024): 57(ptr) Variable Function + 1345(r025): 57(ptr) Variable Function + 1348(r026): 57(ptr) Variable Function + 1352(r026a): 57(ptr) Variable Function + 1357(r027): 57(ptr) Variable Function + 1360(r028): 57(ptr) Variable Function + 1364(r029): 57(ptr) Variable Function + 1367(r030): 57(ptr) Variable Function + 1371(r031): 57(ptr) Variable Function + 1375(r032): 57(ptr) Variable Function + 1379(r033): 57(ptr) Variable Function + 1382(r034): 57(ptr) Variable Function + 1385(r035): 57(ptr) Variable Function + 1388(r036): 57(ptr) Variable Function + 1393(r037): 57(ptr) Variable Function + 1396(r038): 57(ptr) Variable Function + 1403(r039): 57(ptr) Variable Function + 1406(r049): 57(ptr) Variable Function + 1411(r041): 57(ptr) Variable Function + 1414(r042): 57(ptr) Variable Function + 1418(r043): 57(ptr) Variable Function + 1421(r044): 57(ptr) Variable Function + 1426(r046): 57(ptr) Variable Function + 1248: 56 Load 59(inF0) + 1249: 121(bool) All 1248 + Store 1247(r000) 1249 1251: 56 Load 59(inF0) - 1252: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1251 - 1254: 56 Load 59(inF0) - 1255: 121(bool) Any 1254 - Store 1253(r003) 1255 - 1257: 56 Load 59(inF0) - 1258: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1257 - Store 1256(r004) 1258 - 1260: 56 Load 59(inF0) - 1261: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1260 - Store 1259(r005) 1261 - 1263: 56 Load 59(inF0) - 1264: 56 Load 60(inF1) - 1265: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1263 1264 - Store 1262(r006) 1265 - 1267: 56 Load 59(inF0) - 1268: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1267 - Store 1266(r007) 1268 + 1252: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 + Store 1250(r001) 1252 + 1253: 56 Load 59(inF0) + 1254: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1253 + 1256: 56 Load 59(inF0) + 1257: 121(bool) Any 1256 + Store 1255(r003) 1257 + 1259: 56 Load 59(inF0) + 1260: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1259 + Store 1258(r004) 1260 + 1262: 56 Load 59(inF0) + 1263: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1262 + Store 1261(r005) 1263 + 1265: 56 Load 59(inF0) + 1266: 56 Load 60(inF1) + 1267: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 + Store 1264(r006) 1267 1269: 56 Load 59(inF0) - 1272: 1271 FOrdLessThan 1269 1270 - 1273: 121(bool) Any 1272 - SelectionMerge 1275 None - BranchConditional 1273 1274 1275 - 1274: Label + 1270: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 + Store 1268(r007) 1270 + 1271: 56 Load 59(inF0) + 1274: 1273 FOrdLessThan 1271 1272 + 1275: 121(bool) Any 1274 + SelectionMerge 1277 None + BranchConditional 1275 1276 1277 + 1276: Label Kill - 1275: Label - 1278: 56 Load 59(inF0) - 1279: 56 Load 60(inF1) - 1280: 56 Load 61(inF2) - 1281: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1278 1279 1280 - Store 1277(r008) 1281 - 1283: 56 Load 59(inF0) - 1284: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1283 - Store 1282(r009) 1284 - 1286: 56 Load 59(inF0) - 1287: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1286 - Store 1285(r010) 1287 - 1289: 56 Load 59(inF0) - 1290: 56 DPdx 1289 - Store 1288(r011) 1290 - 1292: 56 Load 59(inF0) - 1293: 56 DPdxCoarse 1292 - Store 1291(r012) 1293 - 1295: 56 Load 59(inF0) - 1296: 56 DPdxFine 1295 - Store 1294(r013) 1296 - 1298: 56 Load 59(inF0) - 1299: 56 DPdy 1298 - Store 1297(r014) 1299 - 1301: 56 Load 59(inF0) - 1302: 56 DPdyCoarse 1301 - Store 1300(r015) 1302 - 1304: 56 Load 59(inF0) - 1305: 56 DPdyFine 1304 - Store 1303(r016) 1305 - 1307: 56 Load 59(inF0) - 1308: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1307 - Store 1306(r017) 1308 - 1310: 56 Load 59(inF0) - 1311: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1310 - Store 1309(r018) 1311 - 1313: 56 Load 59(inF0) - 1314: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1313 - Store 1312(r019) 1314 - 1316: 56 Load 59(inF0) - 1317: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1316 - Store 1315(R020) 1317 - 1319: 56 Load 59(inF0) - 1320: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1319 - Store 1318(r021) 1320 - 1322: 56 Load 59(inF0) - 1323: 56 Load 60(inF1) - 1324: 36(fvec3) CompositeExtract 1322 0 - 1325: 36(fvec3) CompositeExtract 1323 0 - 1326: 36(fvec3) FMod 1324 1325 - 1327: 36(fvec3) CompositeExtract 1322 1 - 1328: 36(fvec3) CompositeExtract 1323 1 - 1329: 36(fvec3) FMod 1327 1328 - 1330: 36(fvec3) CompositeExtract 1322 2 - 1331: 36(fvec3) CompositeExtract 1323 2 - 1332: 36(fvec3) FMod 1330 1331 - 1333: 56 CompositeConstruct 1326 1329 1332 - Store 1321(r022) 1333 - 1335: 56 Load 59(inF0) - 1336: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1335 - Store 1334(r023) 1336 - 1338: 56 Load 59(inF0) - 1340:1339(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1338 - 1341: 578(ivec3) CompositeExtract 1340 1 - Store 60(inF1) 1341 - 1342: 56 CompositeExtract 1340 0 - Store 1337(r024) 1342 - 1344: 56 Load 59(inF0) - 1345: 56 Fwidth 1344 - Store 1343(r025) 1345 - 1347: 56 Load 59(inF0) - 1348: 56 Load 60(inF1) - 1349: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1347 1348 - Store 1346(r026) 1349 - 1351: 56 Load 59(inF0) - 1352: 56 Load 60(inF1) - 1353: 56 Load 61(inF2) - 1354: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1351 1352 1353 - Store 1350(r026a) 1354 - 1356: 56 Load 59(inF0) - 1357: 56 ExtInst 1(GLSL.std.450) 28(Log) 1356 - Store 1355(r027) 1357 - 1359: 56 Load 59(inF0) - 1360: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1359 - 1361: 56 MatrixTimesScalar 1360 253 - Store 1358(r028) 1361 - 1363: 56 Load 59(inF0) - 1364: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1363 - Store 1362(r029) 1364 - 1366: 56 Load 59(inF0) - 1367: 56 Load 60(inF1) - 1368: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1366 1367 - Store 1365(r030) 1368 - 1370: 56 Load 59(inF0) - 1371: 56 Load 60(inF1) - 1372: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1370 1371 - Store 1369(r031) 1372 - 1374: 56 Load 59(inF0) - 1375: 56 Load 60(inF1) - 1376: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1374 1375 - Store 1373(r032) 1376 - 1378: 56 Load 59(inF0) - 1379: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1378 - Store 1377(r033) 1379 - 1381: 56 Load 59(inF0) - 1382: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1381 - Store 1380(r034) 1382 - 1384: 56 Load 59(inF0) - 1385: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1384 - Store 1383(r035) 1385 - 1387: 56 Load 59(inF0) - 1388: 36(fvec3) CompositeConstruct 165 165 165 - 1389: 36(fvec3) CompositeConstruct 274 274 274 - 1390: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1387 1388 1389 - Store 1386(r036) 1390 - 1392: 56 Load 59(inF0) - 1393: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1392 - Store 1391(r037) 1393 - 1395: 56 Load 59(inF0) - 1396: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1395 - Store 1394(r038) 1396 + 1277: Label + 1280: 56 Load 59(inF0) + 1281: 56 Load 60(inF1) + 1282: 56 Load 61(inF2) + 1283: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 + Store 1279(r008) 1283 + 1285: 56 Load 59(inF0) + 1286: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1285 + Store 1284(r009) 1286 + 1288: 56 Load 59(inF0) + 1289: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 + Store 1287(r010) 1289 + 1291: 56 Load 59(inF0) + 1292: 56 DPdx 1291 + Store 1290(r011) 1292 + 1294: 56 Load 59(inF0) + 1295: 56 DPdxCoarse 1294 + Store 1293(r012) 1295 + 1297: 56 Load 59(inF0) + 1298: 56 DPdxFine 1297 + Store 1296(r013) 1298 + 1300: 56 Load 59(inF0) + 1301: 56 DPdy 1300 + Store 1299(r014) 1301 + 1303: 56 Load 59(inF0) + 1304: 56 DPdyCoarse 1303 + Store 1302(r015) 1304 + 1306: 56 Load 59(inF0) + 1307: 56 DPdyFine 1306 + Store 1305(r016) 1307 + 1309: 56 Load 59(inF0) + 1310: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 + Store 1308(r017) 1310 + 1312: 56 Load 59(inF0) + 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312 + Store 1311(r018) 1313 + 1315: 56 Load 59(inF0) + 1316: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1315 + Store 1314(r019) 1316 + 1318: 56 Load 59(inF0) + 1319: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 + Store 1317(R020) 1319 + 1321: 56 Load 59(inF0) + 1322: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1321 + Store 1320(r021) 1322 + 1324: 56 Load 59(inF0) + 1325: 56 Load 60(inF1) + 1326: 36(fvec3) CompositeExtract 1324 0 + 1327: 36(fvec3) CompositeExtract 1325 0 + 1328: 36(fvec3) FMod 1326 1327 + 1329: 36(fvec3) CompositeExtract 1324 1 + 1330: 36(fvec3) CompositeExtract 1325 1 + 1331: 36(fvec3) FMod 1329 1330 + 1332: 36(fvec3) CompositeExtract 1324 2 + 1333: 36(fvec3) CompositeExtract 1325 2 + 1334: 36(fvec3) FMod 1332 1333 + 1335: 56 CompositeConstruct 1328 1331 1334 + Store 1323(r022) 1335 + 1337: 56 Load 59(inF0) + 1338: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1337 + Store 1336(r023) 1338 + 1340: 56 Load 59(inF0) + 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340 + 1343: 578(ivec3) CompositeExtract 1342 1 + Store 60(inF1) 1343 + 1344: 56 CompositeExtract 1342 0 + Store 1339(r024) 1344 + 1346: 56 Load 59(inF0) + 1347: 56 Fwidth 1346 + Store 1345(r025) 1347 + 1349: 56 Load 59(inF0) + 1350: 56 Load 60(inF1) + 1351: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 + Store 1348(r026) 1351 + 1353: 56 Load 59(inF0) + 1354: 56 Load 60(inF1) + 1355: 56 Load 61(inF2) + 1356: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 + Store 1352(r026a) 1356 + 1358: 56 Load 59(inF0) + 1359: 56 ExtInst 1(GLSL.std.450) 28(Log) 1358 + Store 1357(r027) 1359 + 1361: 56 Load 59(inF0) + 1362: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1361 + 1363: 56 MatrixTimesScalar 1362 253 + Store 1360(r028) 1363 + 1365: 56 Load 59(inF0) + 1366: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1365 + Store 1364(r029) 1366 + 1368: 56 Load 59(inF0) + 1369: 56 Load 60(inF1) + 1370: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 + Store 1367(r030) 1370 + 1372: 56 Load 59(inF0) + 1373: 56 Load 60(inF1) + 1374: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 + Store 1371(r031) 1374 + 1376: 56 Load 59(inF0) + 1377: 56 Load 60(inF1) + 1378: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 + Store 1375(r032) 1378 + 1380: 56 Load 59(inF0) + 1381: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1380 + Store 1379(r033) 1381 + 1383: 56 Load 59(inF0) + 1384: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 + Store 1382(r034) 1384 + 1386: 56 Load 59(inF0) + 1387: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 + Store 1385(r035) 1387 + 1389: 56 Load 59(inF0) + 1390: 36(fvec3) CompositeConstruct 165 165 165 + 1391: 36(fvec3) CompositeConstruct 274 274 274 + 1392: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 + Store 1388(r036) 1392 + 1394: 56 Load 59(inF0) + 1395: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1394 + Store 1393(r037) 1395 1397: 56 Load 59(inF0) 1398: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1397 - Store 60(inF1) 1398 + Store 1396(r038) 1398 1399: 56 Load 59(inF0) - 1400: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1399 - Store 61(inF2) 1400 - 1402: 56 Load 59(inF0) - 1403: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1402 - Store 1401(r039) 1403 - 1405: 56 Load 59(inF0) - 1406: 56 Load 60(inF1) - 1407: 56 Load 61(inF2) - 1408: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1405 1406 1407 - Store 1404(r049) 1408 - 1410: 56 Load 59(inF0) - 1411: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1410 - Store 1409(r041) 1411 - 1413: 56 Load 59(inF0) - 1414: 56 Load 60(inF1) - 1415: 56 ExtInst 1(GLSL.std.450) 48(Step) 1413 1414 - Store 1412(r042) 1415 - 1417: 56 Load 59(inF0) - 1418: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1417 - Store 1416(r043) 1418 - 1420: 56 Load 59(inF0) - 1421: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1420 - Store 1419(r044) 1421 + 1400: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1399 + Store 60(inF1) 1400 + 1401: 56 Load 59(inF0) + 1402: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1401 + Store 61(inF2) 1402 + 1404: 56 Load 59(inF0) + 1405: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 + Store 1403(r039) 1405 + 1407: 56 Load 59(inF0) + 1408: 56 Load 60(inF1) + 1409: 56 Load 61(inF2) + 1410: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 + Store 1406(r049) 1410 + 1412: 56 Load 59(inF0) + 1413: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 + Store 1411(r041) 1413 + 1415: 56 Load 59(inF0) + 1416: 56 Load 60(inF1) + 1417: 56 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 + Store 1414(r042) 1417 + 1419: 56 Load 59(inF0) + 1420: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1419 + Store 1418(r043) 1420 1422: 56 Load 59(inF0) - 1423: 56 Transpose 1422 - 1425: 56 Load 59(inF0) - 1426: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1425 - Store 1424(r046) 1426 - ReturnValue 1428 + 1423: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 + Store 1421(r044) 1423 + 1424: 56 Load 59(inF0) + 1425: 56 Transpose 1424 + 1427: 56 Load 59(inF0) + 1428: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 + Store 1426(r046) 1428 + ReturnValue 1430 FunctionEnd 71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67 68(inF0): 66(ptr) FunctionParameter 69(inF1): 66(ptr) FunctionParameter 70(inF2): 66(ptr) FunctionParameter 72: Label - 1431(r000): 122(ptr) Variable Function - 1434(r001): 66(ptr) Variable Function - 1439(r003): 122(ptr) Variable Function - 1442(r004): 66(ptr) Variable Function - 1445(r005): 66(ptr) Variable Function - 1448(r006): 66(ptr) Variable Function - 1452(r007): 66(ptr) Variable Function - 1463(r008): 66(ptr) Variable Function - 1468(r009): 66(ptr) Variable Function - 1471(r010): 66(ptr) Variable Function - 1474(r011): 66(ptr) Variable Function - 1477(r012): 66(ptr) Variable Function - 1480(r013): 66(ptr) Variable Function - 1483(r014): 66(ptr) Variable Function - 1486(r015): 66(ptr) Variable Function - 1489(r016): 66(ptr) Variable Function - 1492(r017): 66(ptr) Variable Function - 1495(r018): 7(ptr) Variable Function - 1498(r019): 66(ptr) Variable Function - 1501(R020): 66(ptr) Variable Function - 1504(r021): 66(ptr) Variable Function - 1507(r022): 66(ptr) Variable Function - 1523(r023): 66(ptr) Variable Function - 1526(r024): 66(ptr) Variable Function - 1532(r025): 66(ptr) Variable Function - 1535(r026): 66(ptr) Variable Function - 1539(r026a): 66(ptr) Variable Function - 1544(r027): 66(ptr) Variable Function - 1547(r028): 66(ptr) Variable Function - 1551(r029): 66(ptr) Variable Function - 1554(r030): 66(ptr) Variable Function - 1558(r031): 66(ptr) Variable Function - 1562(r032): 66(ptr) Variable Function - 1566(r033): 66(ptr) Variable Function - 1569(r034): 66(ptr) Variable Function - 1572(r035): 66(ptr) Variable Function - 1575(r036): 66(ptr) Variable Function - 1580(r037): 66(ptr) Variable Function - 1583(r038): 66(ptr) Variable Function - 1590(r039): 66(ptr) Variable Function - 1593(r049): 66(ptr) Variable Function - 1598(r041): 66(ptr) Variable Function - 1601(r042): 66(ptr) Variable Function - 1605(r043): 66(ptr) Variable Function - 1608(r044): 66(ptr) Variable Function - 1613(r046): 66(ptr) Variable Function - 1432: 65 Load 68(inF0) - 1433: 121(bool) All 1432 - Store 1431(r000) 1433 - 1435: 65 Load 68(inF0) - 1436: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1435 - Store 1434(r001) 1436 + 1433(r000): 122(ptr) Variable Function + 1436(r001): 66(ptr) Variable Function + 1441(r003): 122(ptr) Variable Function + 1444(r004): 66(ptr) Variable Function + 1447(r005): 66(ptr) Variable Function + 1450(r006): 66(ptr) Variable Function + 1454(r007): 66(ptr) Variable Function + 1465(r008): 66(ptr) Variable Function + 1470(r009): 66(ptr) Variable Function + 1473(r010): 66(ptr) Variable Function + 1476(r011): 66(ptr) Variable Function + 1479(r012): 66(ptr) Variable Function + 1482(r013): 66(ptr) Variable Function + 1485(r014): 66(ptr) Variable Function + 1488(r015): 66(ptr) Variable Function + 1491(r016): 66(ptr) Variable Function + 1494(r017): 66(ptr) Variable Function + 1497(r018): 7(ptr) Variable Function + 1500(r019): 66(ptr) Variable Function + 1503(R020): 66(ptr) Variable Function + 1506(r021): 66(ptr) Variable Function + 1509(r022): 66(ptr) Variable Function + 1525(r023): 66(ptr) Variable Function + 1528(r024): 66(ptr) Variable Function + 1534(r025): 66(ptr) Variable Function + 1537(r026): 66(ptr) Variable Function + 1541(r026a): 66(ptr) Variable Function + 1546(r027): 66(ptr) Variable Function + 1549(r028): 66(ptr) Variable Function + 1553(r029): 66(ptr) Variable Function + 1556(r030): 66(ptr) Variable Function + 1560(r031): 66(ptr) Variable Function + 1564(r032): 66(ptr) Variable Function + 1568(r033): 66(ptr) Variable Function + 1571(r034): 66(ptr) Variable Function + 1574(r035): 66(ptr) Variable Function + 1577(r036): 66(ptr) Variable Function + 1582(r037): 66(ptr) Variable Function + 1585(r038): 66(ptr) Variable Function + 1592(r039): 66(ptr) Variable Function + 1595(r049): 66(ptr) Variable Function + 1600(r041): 66(ptr) Variable Function + 1603(r042): 66(ptr) Variable Function + 1607(r043): 66(ptr) Variable Function + 1610(r044): 66(ptr) Variable Function + 1615(r046): 66(ptr) Variable Function + 1434: 65 Load 68(inF0) + 1435: 121(bool) All 1434 + Store 1433(r000) 1435 1437: 65 Load 68(inF0) - 1438: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1437 - 1440: 65 Load 68(inF0) - 1441: 121(bool) Any 1440 - Store 1439(r003) 1441 - 1443: 65 Load 68(inF0) - 1444: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1443 - Store 1442(r004) 1444 - 1446: 65 Load 68(inF0) - 1447: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1446 - Store 1445(r005) 1447 - 1449: 65 Load 68(inF0) - 1450: 65 Load 69(inF1) - 1451: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1449 1450 - Store 1448(r006) 1451 - 1453: 65 Load 68(inF0) - 1454: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1453 - Store 1452(r007) 1454 + 1438: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 + Store 1436(r001) 1438 + 1439: 65 Load 68(inF0) + 1440: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1439 + 1442: 65 Load 68(inF0) + 1443: 121(bool) Any 1442 + Store 1441(r003) 1443 + 1445: 65 Load 68(inF0) + 1446: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1445 + Store 1444(r004) 1446 + 1448: 65 Load 68(inF0) + 1449: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1448 + Store 1447(r005) 1449 + 1451: 65 Load 68(inF0) + 1452: 65 Load 69(inF1) + 1453: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 + Store 1450(r006) 1453 1455: 65 Load 68(inF0) - 1458: 1457 FOrdLessThan 1455 1456 - 1459: 121(bool) Any 1458 - SelectionMerge 1461 None - BranchConditional 1459 1460 1461 - 1460: Label + 1456: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 + Store 1454(r007) 1456 + 1457: 65 Load 68(inF0) + 1460: 1459 FOrdLessThan 1457 1458 + 1461: 121(bool) Any 1460 + SelectionMerge 1463 None + BranchConditional 1461 1462 1463 + 1462: Label Kill - 1461: Label - 1464: 65 Load 68(inF0) - 1465: 65 Load 69(inF1) - 1466: 65 Load 70(inF2) - 1467: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1464 1465 1466 - Store 1463(r008) 1467 - 1469: 65 Load 68(inF0) - 1470: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1469 - Store 1468(r009) 1470 - 1472: 65 Load 68(inF0) - 1473: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1472 - Store 1471(r010) 1473 - 1475: 65 Load 68(inF0) - 1476: 65 DPdx 1475 - Store 1474(r011) 1476 - 1478: 65 Load 68(inF0) - 1479: 65 DPdxCoarse 1478 - Store 1477(r012) 1479 - 1481: 65 Load 68(inF0) - 1482: 65 DPdxFine 1481 - Store 1480(r013) 1482 - 1484: 65 Load 68(inF0) - 1485: 65 DPdy 1484 - Store 1483(r014) 1485 - 1487: 65 Load 68(inF0) - 1488: 65 DPdyCoarse 1487 - Store 1486(r015) 1488 - 1490: 65 Load 68(inF0) - 1491: 65 DPdyFine 1490 - Store 1489(r016) 1491 - 1493: 65 Load 68(inF0) - 1494: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1493 - Store 1492(r017) 1494 - 1496: 65 Load 68(inF0) - 1497: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1496 - Store 1495(r018) 1497 - 1499: 65 Load 68(inF0) - 1500: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1499 - Store 1498(r019) 1500 - 1502: 65 Load 68(inF0) - 1503: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1502 - Store 1501(R020) 1503 - 1505: 65 Load 68(inF0) - 1506: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1505 - Store 1504(r021) 1506 - 1508: 65 Load 68(inF0) - 1509: 65 Load 69(inF1) - 1510: 64(fvec4) CompositeExtract 1508 0 - 1511: 64(fvec4) CompositeExtract 1509 0 - 1512: 64(fvec4) FMod 1510 1511 - 1513: 64(fvec4) CompositeExtract 1508 1 - 1514: 64(fvec4) CompositeExtract 1509 1 - 1515: 64(fvec4) FMod 1513 1514 - 1516: 64(fvec4) CompositeExtract 1508 2 - 1517: 64(fvec4) CompositeExtract 1509 2 - 1518: 64(fvec4) FMod 1516 1517 - 1519: 64(fvec4) CompositeExtract 1508 3 - 1520: 64(fvec4) CompositeExtract 1509 3 - 1521: 64(fvec4) FMod 1519 1520 - 1522: 65 CompositeConstruct 1512 1515 1518 1521 - Store 1507(r022) 1522 - 1524: 65 Load 68(inF0) - 1525: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1524 - Store 1523(r023) 1525 - 1527: 65 Load 68(inF0) - 1529:1528(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1527 - 1530: 825(ivec4) CompositeExtract 1529 1 - Store 69(inF1) 1530 - 1531: 65 CompositeExtract 1529 0 - Store 1526(r024) 1531 - 1533: 65 Load 68(inF0) - 1534: 65 Fwidth 1533 - Store 1532(r025) 1534 - 1536: 65 Load 68(inF0) - 1537: 65 Load 69(inF1) - 1538: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1536 1537 - Store 1535(r026) 1538 - 1540: 65 Load 68(inF0) - 1541: 65 Load 69(inF1) - 1542: 65 Load 70(inF2) - 1543: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1540 1541 1542 - Store 1539(r026a) 1543 - 1545: 65 Load 68(inF0) - 1546: 65 ExtInst 1(GLSL.std.450) 28(Log) 1545 - Store 1544(r027) 1546 - 1548: 65 Load 68(inF0) - 1549: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1548 - 1550: 65 MatrixTimesScalar 1549 253 - Store 1547(r028) 1550 - 1552: 65 Load 68(inF0) - 1553: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1552 - Store 1551(r029) 1553 - 1555: 65 Load 68(inF0) - 1556: 65 Load 69(inF1) - 1557: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1555 1556 - Store 1554(r030) 1557 - 1559: 65 Load 68(inF0) - 1560: 65 Load 69(inF1) - 1561: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1559 1560 - Store 1558(r031) 1561 - 1563: 65 Load 68(inF0) - 1564: 65 Load 69(inF1) - 1565: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1563 1564 - Store 1562(r032) 1565 - 1567: 65 Load 68(inF0) - 1568: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1567 - Store 1566(r033) 1568 - 1570: 65 Load 68(inF0) - 1571: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1570 - Store 1569(r034) 1571 - 1573: 65 Load 68(inF0) - 1574: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1573 - Store 1572(r035) 1574 - 1576: 65 Load 68(inF0) - 1577: 64(fvec4) CompositeConstruct 165 165 165 165 - 1578: 64(fvec4) CompositeConstruct 274 274 274 274 - 1579: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1576 1577 1578 - Store 1575(r036) 1579 - 1581: 65 Load 68(inF0) - 1582: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1581 - Store 1580(r037) 1582 - 1584: 65 Load 68(inF0) - 1585: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1584 - Store 1583(r038) 1585 + 1463: Label + 1466: 65 Load 68(inF0) + 1467: 65 Load 69(inF1) + 1468: 65 Load 70(inF2) + 1469: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 + Store 1465(r008) 1469 + 1471: 65 Load 68(inF0) + 1472: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1471 + Store 1470(r009) 1472 + 1474: 65 Load 68(inF0) + 1475: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 + Store 1473(r010) 1475 + 1477: 65 Load 68(inF0) + 1478: 65 DPdx 1477 + Store 1476(r011) 1478 + 1480: 65 Load 68(inF0) + 1481: 65 DPdxCoarse 1480 + Store 1479(r012) 1481 + 1483: 65 Load 68(inF0) + 1484: 65 DPdxFine 1483 + Store 1482(r013) 1484 + 1486: 65 Load 68(inF0) + 1487: 65 DPdy 1486 + Store 1485(r014) 1487 + 1489: 65 Load 68(inF0) + 1490: 65 DPdyCoarse 1489 + Store 1488(r015) 1490 + 1492: 65 Load 68(inF0) + 1493: 65 DPdyFine 1492 + Store 1491(r016) 1493 + 1495: 65 Load 68(inF0) + 1496: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 + Store 1494(r017) 1496 + 1498: 65 Load 68(inF0) + 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498 + Store 1497(r018) 1499 + 1501: 65 Load 68(inF0) + 1502: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1501 + Store 1500(r019) 1502 + 1504: 65 Load 68(inF0) + 1505: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 + Store 1503(R020) 1505 + 1507: 65 Load 68(inF0) + 1508: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1507 + Store 1506(r021) 1508 + 1510: 65 Load 68(inF0) + 1511: 65 Load 69(inF1) + 1512: 64(fvec4) CompositeExtract 1510 0 + 1513: 64(fvec4) CompositeExtract 1511 0 + 1514: 64(fvec4) FMod 1512 1513 + 1515: 64(fvec4) CompositeExtract 1510 1 + 1516: 64(fvec4) CompositeExtract 1511 1 + 1517: 64(fvec4) FMod 1515 1516 + 1518: 64(fvec4) CompositeExtract 1510 2 + 1519: 64(fvec4) CompositeExtract 1511 2 + 1520: 64(fvec4) FMod 1518 1519 + 1521: 64(fvec4) CompositeExtract 1510 3 + 1522: 64(fvec4) CompositeExtract 1511 3 + 1523: 64(fvec4) FMod 1521 1522 + 1524: 65 CompositeConstruct 1514 1517 1520 1523 + Store 1509(r022) 1524 + 1526: 65 Load 68(inF0) + 1527: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1526 + Store 1525(r023) 1527 + 1529: 65 Load 68(inF0) + 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529 + 1532: 825(ivec4) CompositeExtract 1531 1 + Store 69(inF1) 1532 + 1533: 65 CompositeExtract 1531 0 + Store 1528(r024) 1533 + 1535: 65 Load 68(inF0) + 1536: 65 Fwidth 1535 + Store 1534(r025) 1536 + 1538: 65 Load 68(inF0) + 1539: 65 Load 69(inF1) + 1540: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 + Store 1537(r026) 1540 + 1542: 65 Load 68(inF0) + 1543: 65 Load 69(inF1) + 1544: 65 Load 70(inF2) + 1545: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 + Store 1541(r026a) 1545 + 1547: 65 Load 68(inF0) + 1548: 65 ExtInst 1(GLSL.std.450) 28(Log) 1547 + Store 1546(r027) 1548 + 1550: 65 Load 68(inF0) + 1551: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1550 + 1552: 65 MatrixTimesScalar 1551 253 + Store 1549(r028) 1552 + 1554: 65 Load 68(inF0) + 1555: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1554 + Store 1553(r029) 1555 + 1557: 65 Load 68(inF0) + 1558: 65 Load 69(inF1) + 1559: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 + Store 1556(r030) 1559 + 1561: 65 Load 68(inF0) + 1562: 65 Load 69(inF1) + 1563: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 + Store 1560(r031) 1563 + 1565: 65 Load 68(inF0) + 1566: 65 Load 69(inF1) + 1567: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 + Store 1564(r032) 1567 + 1569: 65 Load 68(inF0) + 1570: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1569 + Store 1568(r033) 1570 + 1572: 65 Load 68(inF0) + 1573: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 + Store 1571(r034) 1573 + 1575: 65 Load 68(inF0) + 1576: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 + Store 1574(r035) 1576 + 1578: 65 Load 68(inF0) + 1579: 64(fvec4) CompositeConstruct 165 165 165 165 + 1580: 64(fvec4) CompositeConstruct 274 274 274 274 + 1581: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 + Store 1577(r036) 1581 + 1583: 65 Load 68(inF0) + 1584: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1583 + Store 1582(r037) 1584 1586: 65 Load 68(inF0) 1587: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1586 - Store 69(inF1) 1587 + Store 1585(r038) 1587 1588: 65 Load 68(inF0) - 1589: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1588 - Store 70(inF2) 1589 - 1591: 65 Load 68(inF0) - 1592: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1591 - Store 1590(r039) 1592 - 1594: 65 Load 68(inF0) - 1595: 65 Load 69(inF1) - 1596: 65 Load 70(inF2) - 1597: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1594 1595 1596 - Store 1593(r049) 1597 - 1599: 65 Load 68(inF0) - 1600: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1599 - Store 1598(r041) 1600 - 1602: 65 Load 68(inF0) - 1603: 65 Load 69(inF1) - 1604: 65 ExtInst 1(GLSL.std.450) 48(Step) 1602 1603 - Store 1601(r042) 1604 - 1606: 65 Load 68(inF0) - 1607: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1606 - Store 1605(r043) 1607 - 1609: 65 Load 68(inF0) - 1610: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1609 - Store 1608(r044) 1610 + 1589: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1588 + Store 69(inF1) 1589 + 1590: 65 Load 68(inF0) + 1591: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1590 + Store 70(inF2) 1591 + 1593: 65 Load 68(inF0) + 1594: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 + Store 1592(r039) 1594 + 1596: 65 Load 68(inF0) + 1597: 65 Load 69(inF1) + 1598: 65 Load 70(inF2) + 1599: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 + Store 1595(r049) 1599 + 1601: 65 Load 68(inF0) + 1602: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 + Store 1600(r041) 1602 + 1604: 65 Load 68(inF0) + 1605: 65 Load 69(inF1) + 1606: 65 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 + Store 1603(r042) 1606 + 1608: 65 Load 68(inF0) + 1609: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1608 + Store 1607(r043) 1609 1611: 65 Load 68(inF0) - 1612: 65 Transpose 1611 - 1614: 65 Load 68(inF0) - 1615: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1614 - Store 1613(r046) 1615 - ReturnValue 1617 + 1612: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 + Store 1610(r044) 1612 + 1613: 65 Load 68(inF0) + 1614: 65 Transpose 1613 + 1616: 65 Load 68(inF0) + 1617: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 + Store 1615(r046) 1617 + ReturnValue 1619 FunctionEnd 80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73 74(inF0): 7(ptr) FunctionParameter @@ -8109,51 +8119,51 @@ gl_FragCoord origin is upper left 78(inFM0): 49(ptr) FunctionParameter 79(inFM1): 49(ptr) FunctionParameter 81: Label - 1620(r0): 7(ptr) Variable Function - 1624(r1): 25(ptr) Variable Function - 1628(r2): 25(ptr) Variable Function - 1632(r3): 7(ptr) Variable Function - 1636(r4): 25(ptr) Variable Function - 1640(r5): 25(ptr) Variable Function - 1644(r6): 49(ptr) Variable Function - 1648(r7): 49(ptr) Variable Function - 1652(r8): 49(ptr) Variable Function - 1621: 6(float) Load 74(inF0) - 1622: 6(float) Load 75(inF1) - 1623: 6(float) FMul 1621 1622 - Store 1620(r0) 1623 - 1625: 24(fvec2) Load 76(inFV0) - 1626: 6(float) Load 74(inF0) - 1627: 24(fvec2) VectorTimesScalar 1625 1626 - Store 1624(r1) 1627 - 1629: 6(float) Load 74(inF0) - 1630: 24(fvec2) Load 76(inFV0) - 1631: 24(fvec2) VectorTimesScalar 1630 1629 - Store 1628(r2) 1631 - 1633: 24(fvec2) Load 76(inFV0) - 1634: 24(fvec2) Load 77(inFV1) - 1635: 6(float) Dot 1633 1634 - Store 1632(r3) 1635 - 1637: 48 Load 78(inFM0) - 1638: 24(fvec2) Load 76(inFV0) - 1639: 24(fvec2) MatrixTimesVector 1637 1638 - Store 1636(r4) 1639 - 1641: 24(fvec2) Load 76(inFV0) - 1642: 48 Load 78(inFM0) - 1643: 24(fvec2) VectorTimesMatrix 1641 1642 - Store 1640(r5) 1643 - 1645: 48 Load 78(inFM0) - 1646: 6(float) Load 74(inF0) - 1647: 48 MatrixTimesScalar 1645 1646 - Store 1644(r6) 1647 - 1649: 6(float) Load 74(inF0) - 1650: 48 Load 78(inFM0) - 1651: 48 MatrixTimesScalar 1650 1649 - Store 1648(r7) 1651 - 1653: 48 Load 78(inFM0) - 1654: 48 Load 79(inFM1) - 1655: 48 MatrixTimesMatrix 1653 1654 - Store 1652(r8) 1655 + 1622(r0): 7(ptr) Variable Function + 1626(r1): 25(ptr) Variable Function + 1630(r2): 25(ptr) Variable Function + 1634(r3): 7(ptr) Variable Function + 1638(r4): 25(ptr) Variable Function + 1642(r5): 25(ptr) Variable Function + 1646(r6): 49(ptr) Variable Function + 1650(r7): 49(ptr) Variable Function + 1654(r8): 49(ptr) Variable Function + 1623: 6(float) Load 74(inF0) + 1624: 6(float) Load 75(inF1) + 1625: 6(float) FMul 1623 1624 + Store 1622(r0) 1625 + 1627: 24(fvec2) Load 76(inFV0) + 1628: 6(float) Load 74(inF0) + 1629: 24(fvec2) VectorTimesScalar 1627 1628 + Store 1626(r1) 1629 + 1631: 6(float) Load 74(inF0) + 1632: 24(fvec2) Load 76(inFV0) + 1633: 24(fvec2) VectorTimesScalar 1632 1631 + Store 1630(r2) 1633 + 1635: 24(fvec2) Load 76(inFV0) + 1636: 24(fvec2) Load 77(inFV1) + 1637: 6(float) Dot 1635 1636 + Store 1634(r3) 1637 + 1639: 48 Load 78(inFM0) + 1640: 24(fvec2) Load 76(inFV0) + 1641: 24(fvec2) MatrixTimesVector 1639 1640 + Store 1638(r4) 1641 + 1643: 24(fvec2) Load 76(inFV0) + 1644: 48 Load 78(inFM0) + 1645: 24(fvec2) VectorTimesMatrix 1643 1644 + Store 1642(r5) 1645 + 1647: 48 Load 78(inFM0) + 1648: 6(float) Load 74(inF0) + 1649: 48 MatrixTimesScalar 1647 1648 + Store 1646(r6) 1649 + 1651: 6(float) Load 74(inF0) + 1652: 48 Load 78(inFM0) + 1653: 48 MatrixTimesScalar 1652 1651 + Store 1650(r7) 1653 + 1655: 48 Load 78(inFM0) + 1656: 48 Load 79(inFM1) + 1657: 48 MatrixTimesMatrix 1655 1656 + Store 1654(r8) 1657 Return FunctionEnd 89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82 @@ -8164,51 +8174,51 @@ gl_FragCoord origin is upper left 87(inFM0): 57(ptr) FunctionParameter 88(inFM1): 57(ptr) FunctionParameter 90: Label - 1656(r0): 7(ptr) Variable Function - 1660(r1): 37(ptr) Variable Function - 1664(r2): 37(ptr) Variable Function - 1668(r3): 7(ptr) Variable Function - 1672(r4): 37(ptr) Variable Function - 1676(r5): 37(ptr) Variable Function - 1680(r6): 57(ptr) Variable Function - 1684(r7): 57(ptr) Variable Function - 1688(r8): 57(ptr) Variable Function - 1657: 6(float) Load 83(inF0) - 1658: 6(float) Load 84(inF1) - 1659: 6(float) FMul 1657 1658 - Store 1656(r0) 1659 - 1661: 36(fvec3) Load 85(inFV0) - 1662: 6(float) Load 83(inF0) - 1663: 36(fvec3) VectorTimesScalar 1661 1662 - Store 1660(r1) 1663 - 1665: 6(float) Load 83(inF0) - 1666: 36(fvec3) Load 85(inFV0) - 1667: 36(fvec3) VectorTimesScalar 1666 1665 - Store 1664(r2) 1667 - 1669: 36(fvec3) Load 85(inFV0) - 1670: 36(fvec3) Load 86(inFV1) - 1671: 6(float) Dot 1669 1670 - Store 1668(r3) 1671 - 1673: 56 Load 87(inFM0) - 1674: 36(fvec3) Load 85(inFV0) - 1675: 36(fvec3) MatrixTimesVector 1673 1674 - Store 1672(r4) 1675 - 1677: 36(fvec3) Load 85(inFV0) - 1678: 56 Load 87(inFM0) - 1679: 36(fvec3) VectorTimesMatrix 1677 1678 - Store 1676(r5) 1679 - 1681: 56 Load 87(inFM0) - 1682: 6(float) Load 83(inF0) - 1683: 56 MatrixTimesScalar 1681 1682 - Store 1680(r6) 1683 - 1685: 6(float) Load 83(inF0) - 1686: 56 Load 87(inFM0) - 1687: 56 MatrixTimesScalar 1686 1685 - Store 1684(r7) 1687 - 1689: 56 Load 87(inFM0) - 1690: 56 Load 88(inFM1) - 1691: 56 MatrixTimesMatrix 1689 1690 - Store 1688(r8) 1691 + 1658(r0): 7(ptr) Variable Function + 1662(r1): 37(ptr) Variable Function + 1666(r2): 37(ptr) Variable Function + 1670(r3): 7(ptr) Variable Function + 1674(r4): 37(ptr) Variable Function + 1678(r5): 37(ptr) Variable Function + 1682(r6): 57(ptr) Variable Function + 1686(r7): 57(ptr) Variable Function + 1690(r8): 57(ptr) Variable Function + 1659: 6(float) Load 83(inF0) + 1660: 6(float) Load 84(inF1) + 1661: 6(float) FMul 1659 1660 + Store 1658(r0) 1661 + 1663: 36(fvec3) Load 85(inFV0) + 1664: 6(float) Load 83(inF0) + 1665: 36(fvec3) VectorTimesScalar 1663 1664 + Store 1662(r1) 1665 + 1667: 6(float) Load 83(inF0) + 1668: 36(fvec3) Load 85(inFV0) + 1669: 36(fvec3) VectorTimesScalar 1668 1667 + Store 1666(r2) 1669 + 1671: 36(fvec3) Load 85(inFV0) + 1672: 36(fvec3) Load 86(inFV1) + 1673: 6(float) Dot 1671 1672 + Store 1670(r3) 1673 + 1675: 56 Load 87(inFM0) + 1676: 36(fvec3) Load 85(inFV0) + 1677: 36(fvec3) MatrixTimesVector 1675 1676 + Store 1674(r4) 1677 + 1679: 36(fvec3) Load 85(inFV0) + 1680: 56 Load 87(inFM0) + 1681: 36(fvec3) VectorTimesMatrix 1679 1680 + Store 1678(r5) 1681 + 1683: 56 Load 87(inFM0) + 1684: 6(float) Load 83(inF0) + 1685: 56 MatrixTimesScalar 1683 1684 + Store 1682(r6) 1685 + 1687: 6(float) Load 83(inF0) + 1688: 56 Load 87(inFM0) + 1689: 56 MatrixTimesScalar 1688 1687 + Store 1686(r7) 1689 + 1691: 56 Load 87(inFM0) + 1692: 56 Load 88(inFM1) + 1693: 56 MatrixTimesMatrix 1691 1692 + Store 1690(r8) 1693 Return FunctionEnd 99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92 @@ -8219,51 +8229,51 @@ gl_FragCoord origin is upper left 97(inFM0): 66(ptr) FunctionParameter 98(inFM1): 66(ptr) FunctionParameter 100: Label - 1692(r0): 7(ptr) Variable Function - 1696(r1): 91(ptr) Variable Function - 1700(r2): 91(ptr) Variable Function - 1704(r3): 7(ptr) Variable Function - 1708(r4): 91(ptr) Variable Function - 1712(r5): 91(ptr) Variable Function - 1716(r6): 66(ptr) Variable Function - 1720(r7): 66(ptr) Variable Function - 1724(r8): 66(ptr) Variable Function - 1693: 6(float) Load 93(inF0) - 1694: 6(float) Load 94(inF1) - 1695: 6(float) FMul 1693 1694 - Store 1692(r0) 1695 - 1697: 64(fvec4) Load 95(inFV0) - 1698: 6(float) Load 93(inF0) - 1699: 64(fvec4) VectorTimesScalar 1697 1698 - Store 1696(r1) 1699 - 1701: 6(float) Load 93(inF0) - 1702: 64(fvec4) Load 95(inFV0) - 1703: 64(fvec4) VectorTimesScalar 1702 1701 - Store 1700(r2) 1703 - 1705: 64(fvec4) Load 95(inFV0) - 1706: 64(fvec4) Load 96(inFV1) - 1707: 6(float) Dot 1705 1706 - Store 1704(r3) 1707 - 1709: 65 Load 97(inFM0) - 1710: 64(fvec4) Load 95(inFV0) - 1711: 64(fvec4) MatrixTimesVector 1709 1710 - Store 1708(r4) 1711 - 1713: 64(fvec4) Load 95(inFV0) - 1714: 65 Load 97(inFM0) - 1715: 64(fvec4) VectorTimesMatrix 1713 1714 - Store 1712(r5) 1715 - 1717: 65 Load 97(inFM0) - 1718: 6(float) Load 93(inF0) - 1719: 65 MatrixTimesScalar 1717 1718 - Store 1716(r6) 1719 - 1721: 6(float) Load 93(inF0) - 1722: 65 Load 97(inFM0) - 1723: 65 MatrixTimesScalar 1722 1721 - Store 1720(r7) 1723 - 1725: 65 Load 97(inFM0) - 1726: 65 Load 98(inFM1) - 1727: 65 MatrixTimesMatrix 1725 1726 - Store 1724(r8) 1727 + 1694(r0): 7(ptr) Variable Function + 1698(r1): 91(ptr) Variable Function + 1702(r2): 91(ptr) Variable Function + 1706(r3): 7(ptr) Variable Function + 1710(r4): 91(ptr) Variable Function + 1714(r5): 91(ptr) Variable Function + 1718(r6): 66(ptr) Variable Function + 1722(r7): 66(ptr) Variable Function + 1726(r8): 66(ptr) Variable Function + 1695: 6(float) Load 93(inF0) + 1696: 6(float) Load 94(inF1) + 1697: 6(float) FMul 1695 1696 + Store 1694(r0) 1697 + 1699: 64(fvec4) Load 95(inFV0) + 1700: 6(float) Load 93(inF0) + 1701: 64(fvec4) VectorTimesScalar 1699 1700 + Store 1698(r1) 1701 + 1703: 6(float) Load 93(inF0) + 1704: 64(fvec4) Load 95(inFV0) + 1705: 64(fvec4) VectorTimesScalar 1704 1703 + Store 1702(r2) 1705 + 1707: 64(fvec4) Load 95(inFV0) + 1708: 64(fvec4) Load 96(inFV1) + 1709: 6(float) Dot 1707 1708 + Store 1706(r3) 1709 + 1711: 65 Load 97(inFM0) + 1712: 64(fvec4) Load 95(inFV0) + 1713: 64(fvec4) MatrixTimesVector 1711 1712 + Store 1710(r4) 1713 + 1715: 64(fvec4) Load 95(inFV0) + 1716: 65 Load 97(inFM0) + 1717: 64(fvec4) VectorTimesMatrix 1715 1716 + Store 1714(r5) 1717 + 1719: 65 Load 97(inFM0) + 1720: 6(float) Load 93(inF0) + 1721: 65 MatrixTimesScalar 1719 1720 + Store 1718(r6) 1721 + 1723: 6(float) Load 93(inF0) + 1724: 65 Load 97(inFM0) + 1725: 65 MatrixTimesScalar 1724 1723 + Store 1722(r7) 1725 + 1727: 65 Load 97(inFM0) + 1728: 65 Load 98(inFM1) + 1729: 65 MatrixTimesMatrix 1727 1728 + Store 1726(r8) 1729 Return FunctionEnd 119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109 @@ -8277,90 +8287,90 @@ gl_FragCoord origin is upper left 117(inFM3x4): 106(ptr) FunctionParameter 118(inFM2x4): 108(ptr) FunctionParameter 120: Label - 1728(r00): 7(ptr) Variable Function - 1732(r01): 25(ptr) Variable Function - 1736(r02): 37(ptr) Variable Function - 1740(r03): 25(ptr) Variable Function - 1744(r04): 37(ptr) Variable Function - 1748(r05): 7(ptr) Variable Function - 1752(r06): 7(ptr) Variable Function - 1756(r07): 37(ptr) Variable Function - 1760(r08): 25(ptr) Variable Function - 1764(r09): 25(ptr) Variable Function - 1768(r10): 37(ptr) Variable Function - 1772(r11): 102(ptr) Variable Function - 1776(r12): 104(ptr) Variable Function - 1780(r13): 49(ptr) Variable Function - 1784(r14): 102(ptr) Variable Function - 1788(r15): 108(ptr) Variable Function - 1792(r16): 106(ptr) Variable Function - 1729: 6(float) Load 110(inF0) - 1730: 6(float) Load 111(inF1) - 1731: 6(float) FMul 1729 1730 - Store 1728(r00) 1731 - 1733: 24(fvec2) Load 112(inFV2) - 1734: 6(float) Load 110(inF0) - 1735: 24(fvec2) VectorTimesScalar 1733 1734 - Store 1732(r01) 1735 - 1737: 36(fvec3) Load 113(inFV3) - 1738: 6(float) Load 110(inF0) - 1739: 36(fvec3) VectorTimesScalar 1737 1738 - Store 1736(r02) 1739 - 1741: 6(float) Load 110(inF0) - 1742: 24(fvec2) Load 112(inFV2) - 1743: 24(fvec2) VectorTimesScalar 1742 1741 - Store 1740(r03) 1743 - 1745: 6(float) Load 110(inF0) - 1746: 36(fvec3) Load 113(inFV3) - 1747: 36(fvec3) VectorTimesScalar 1746 1745 - Store 1744(r04) 1747 - 1749: 24(fvec2) Load 112(inFV2) - 1750: 24(fvec2) Load 112(inFV2) - 1751: 6(float) Dot 1749 1750 - Store 1748(r05) 1751 - 1753: 36(fvec3) Load 113(inFV3) - 1754: 36(fvec3) Load 113(inFV3) - 1755: 6(float) Dot 1753 1754 - Store 1752(r06) 1755 - 1757: 24(fvec2) Load 112(inFV2) - 1758: 101 Load 114(inFM2x3) - 1759: 36(fvec3) VectorTimesMatrix 1757 1758 - Store 1756(r07) 1759 - 1761: 36(fvec3) Load 113(inFV3) - 1762: 103 Load 115(inFM3x2) - 1763: 24(fvec2) VectorTimesMatrix 1761 1762 - Store 1760(r08) 1763 - 1765: 101 Load 114(inFM2x3) - 1766: 36(fvec3) Load 113(inFV3) - 1767: 24(fvec2) MatrixTimesVector 1765 1766 - Store 1764(r09) 1767 - 1769: 103 Load 115(inFM3x2) - 1770: 24(fvec2) Load 112(inFV2) - 1771: 36(fvec3) MatrixTimesVector 1769 1770 - Store 1768(r10) 1771 - 1773: 101 Load 114(inFM2x3) - 1774: 6(float) Load 110(inF0) - 1775: 101 MatrixTimesScalar 1773 1774 - Store 1772(r11) 1775 - 1777: 103 Load 115(inFM3x2) - 1778: 6(float) Load 110(inF0) - 1779: 103 MatrixTimesScalar 1777 1778 - Store 1776(r12) 1779 - 1781: 101 Load 114(inFM2x3) - 1782: 103 Load 115(inFM3x2) - 1783: 48 MatrixTimesMatrix 1781 1782 - Store 1780(r13) 1783 - 1785: 101 Load 114(inFM2x3) - 1786: 56 Load 116(inFM3x3) - 1787: 101 MatrixTimesMatrix 1785 1786 - Store 1784(r14) 1787 - 1789: 101 Load 114(inFM2x3) - 1790: 105 Load 117(inFM3x4) - 1791: 107 MatrixTimesMatrix 1789 1790 - Store 1788(r15) 1791 - 1793: 103 Load 115(inFM3x2) - 1794: 107 Load 118(inFM2x4) - 1795: 105 MatrixTimesMatrix 1793 1794 - Store 1792(r16) 1795 + 1730(r00): 7(ptr) Variable Function + 1734(r01): 25(ptr) Variable Function + 1738(r02): 37(ptr) Variable Function + 1742(r03): 25(ptr) Variable Function + 1746(r04): 37(ptr) Variable Function + 1750(r05): 7(ptr) Variable Function + 1754(r06): 7(ptr) Variable Function + 1758(r07): 37(ptr) Variable Function + 1762(r08): 25(ptr) Variable Function + 1766(r09): 25(ptr) Variable Function + 1770(r10): 37(ptr) Variable Function + 1774(r11): 102(ptr) Variable Function + 1778(r12): 104(ptr) Variable Function + 1782(r13): 49(ptr) Variable Function + 1786(r14): 102(ptr) Variable Function + 1790(r15): 108(ptr) Variable Function + 1794(r16): 106(ptr) Variable Function + 1731: 6(float) Load 110(inF0) + 1732: 6(float) Load 111(inF1) + 1733: 6(float) FMul 1731 1732 + Store 1730(r00) 1733 + 1735: 24(fvec2) Load 112(inFV2) + 1736: 6(float) Load 110(inF0) + 1737: 24(fvec2) VectorTimesScalar 1735 1736 + Store 1734(r01) 1737 + 1739: 36(fvec3) Load 113(inFV3) + 1740: 6(float) Load 110(inF0) + 1741: 36(fvec3) VectorTimesScalar 1739 1740 + Store 1738(r02) 1741 + 1743: 6(float) Load 110(inF0) + 1744: 24(fvec2) Load 112(inFV2) + 1745: 24(fvec2) VectorTimesScalar 1744 1743 + Store 1742(r03) 1745 + 1747: 6(float) Load 110(inF0) + 1748: 36(fvec3) Load 113(inFV3) + 1749: 36(fvec3) VectorTimesScalar 1748 1747 + Store 1746(r04) 1749 + 1751: 24(fvec2) Load 112(inFV2) + 1752: 24(fvec2) Load 112(inFV2) + 1753: 6(float) Dot 1751 1752 + Store 1750(r05) 1753 + 1755: 36(fvec3) Load 113(inFV3) + 1756: 36(fvec3) Load 113(inFV3) + 1757: 6(float) Dot 1755 1756 + Store 1754(r06) 1757 + 1759: 24(fvec2) Load 112(inFV2) + 1760: 101 Load 114(inFM2x3) + 1761: 36(fvec3) VectorTimesMatrix 1759 1760 + Store 1758(r07) 1761 + 1763: 36(fvec3) Load 113(inFV3) + 1764: 103 Load 115(inFM3x2) + 1765: 24(fvec2) VectorTimesMatrix 1763 1764 + Store 1762(r08) 1765 + 1767: 101 Load 114(inFM2x3) + 1768: 36(fvec3) Load 113(inFV3) + 1769: 24(fvec2) MatrixTimesVector 1767 1768 + Store 1766(r09) 1769 + 1771: 103 Load 115(inFM3x2) + 1772: 24(fvec2) Load 112(inFV2) + 1773: 36(fvec3) MatrixTimesVector 1771 1772 + Store 1770(r10) 1773 + 1775: 101 Load 114(inFM2x3) + 1776: 6(float) Load 110(inF0) + 1777: 101 MatrixTimesScalar 1775 1776 + Store 1774(r11) 1777 + 1779: 103 Load 115(inFM3x2) + 1780: 6(float) Load 110(inF0) + 1781: 103 MatrixTimesScalar 1779 1780 + Store 1778(r12) 1781 + 1783: 101 Load 114(inFM2x3) + 1784: 103 Load 115(inFM3x2) + 1785: 48 MatrixTimesMatrix 1783 1784 + Store 1782(r13) 1785 + 1787: 101 Load 114(inFM2x3) + 1788: 56 Load 116(inFM3x3) + 1789: 101 MatrixTimesMatrix 1787 1788 + Store 1786(r14) 1789 + 1791: 101 Load 114(inFM2x3) + 1792: 105 Load 117(inFM3x4) + 1793: 107 MatrixTimesMatrix 1791 1792 + Store 1790(r15) 1793 + 1795: 103 Load 115(inFM3x2) + 1796: 107 Load 118(inFM2x4) + 1797: 105 MatrixTimesMatrix 1795 1796 + Store 1794(r16) 1797 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index db256050..25788000 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -52,12 +52,15 @@ local_size = (1, 1, 1) 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:199 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return 0:? Linker Objects @@ -117,22 +120,25 @@ local_size = (1, 1, 1) 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:199 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 63 +// Id's are bound by 65 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" + EntryPoint GLCompute 4 "ComputeShaderFunction" 61 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" @@ -155,6 +161,7 @@ local_size = (1, 1, 1) Name 40 "inF1" Name 41 "inF2" Name 42 "inI0" + Name 61 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -179,11 +186,14 @@ local_size = (1, 1, 1) 55: 6(float) Constant 1077936128 56: 34(fvec3) ConstantComposite 50 51 55 59: TypeVector 6(float) 4 - 60: 6(float) Constant 1082130432 - 61: 59(fvec4) ConstantComposite 50 51 55 60 + 60: TypePointer Output 59(fvec4) +61(@entryPointOutput): 60(ptr) Variable Output + 62: 6(float) Constant 1082130432 + 63: 59(fvec4) ConstantComposite 50 51 55 62 4(ComputeShaderFunction): 2 Function None 3 5: Label - ReturnValue 61 + Store 61(@entryPointOutput) 63 + Return FunctionEnd 15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 90fc2127..1227daed 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -267,12 +267,15 @@ ERROR: node is still EOpNull! 0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 -0:92 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return 0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) @@ -615,12 +618,15 @@ ERROR: node is still EOpNull! 0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 -0:92 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return 0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index de2da898..f00e25ae 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -51,12 +51,15 @@ Shader version: 450 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:217 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return 0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) @@ -180,12 +183,15 @@ Shader version: 450 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:217 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return 0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) @@ -255,12 +261,12 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 119 +// Id's are bound by 121 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" + EntryPoint Vertex 4 "VertexShaderFunction" 85 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" @@ -294,18 +300,19 @@ Shader version: 450 Name 65 "inF0" Name 66 "inF1" Name 67 "inF2" - Name 101 "gs_ua" - Name 102 "gs_ub" - Name 103 "gs_uc" - Name 106 "gs_ua2" - Name 107 "gs_ub2" - Name 108 "gs_uc2" - Name 111 "gs_ua3" - Name 112 "gs_ub3" - Name 113 "gs_uc3" - Name 116 "gs_ua4" - Name 117 "gs_ub4" - Name 118 "gs_uc4" + Name 85 "@entryPointOutput" + Name 103 "gs_ua" + Name 104 "gs_ub" + Name 105 "gs_uc" + Name 108 "gs_ua2" + Name 109 "gs_ub2" + Name 110 "gs_uc2" + Name 113 "gs_ua3" + Name 114 "gs_ub3" + Name 115 "gs_uc3" + Name 118 "gs_ua4" + Name 119 "gs_ub4" + Name 120 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -339,37 +346,40 @@ Shader version: 450 77: 23(fvec2) ConstantComposite 75 76 80: 6(float) Constant 1077936128 81: 34(fvec3) ConstantComposite 75 76 80 - 84: 6(float) Constant 1082130432 - 85: 61(fvec4) ConstantComposite 75 76 80 84 - 87: 23(fvec2) ConstantComposite 76 76 - 88: 45 ConstantComposite 87 87 - 91: 34(fvec3) ConstantComposite 80 80 80 - 92: 53 ConstantComposite 91 91 91 - 95: 61(fvec4) ConstantComposite 84 84 84 84 - 96: 62 ConstantComposite 95 95 95 95 - 99: TypeInt 32 0 - 100: TypePointer Private 99(int) - 101(gs_ua): 100(ptr) Variable Private - 102(gs_ub): 100(ptr) Variable Private - 103(gs_uc): 100(ptr) Variable Private - 104: TypeVector 99(int) 2 - 105: TypePointer Private 104(ivec2) - 106(gs_ua2): 105(ptr) Variable Private - 107(gs_ub2): 105(ptr) Variable Private - 108(gs_uc2): 105(ptr) Variable Private - 109: TypeVector 99(int) 3 - 110: TypePointer Private 109(ivec3) - 111(gs_ua3): 110(ptr) Variable Private - 112(gs_ub3): 110(ptr) Variable Private - 113(gs_uc3): 110(ptr) Variable Private - 114: TypeVector 99(int) 4 - 115: TypePointer Private 114(ivec4) - 116(gs_ua4): 115(ptr) Variable Private - 117(gs_ub4): 115(ptr) Variable Private - 118(gs_uc4): 115(ptr) Variable Private + 84: TypePointer Output 61(fvec4) +85(@entryPointOutput): 84(ptr) Variable Output + 86: 6(float) Constant 1082130432 + 87: 61(fvec4) ConstantComposite 75 76 80 86 + 89: 23(fvec2) ConstantComposite 76 76 + 90: 45 ConstantComposite 89 89 + 93: 34(fvec3) ConstantComposite 80 80 80 + 94: 53 ConstantComposite 93 93 93 + 97: 61(fvec4) ConstantComposite 86 86 86 86 + 98: 62 ConstantComposite 97 97 97 97 + 101: TypeInt 32 0 + 102: TypePointer Private 101(int) + 103(gs_ua): 102(ptr) Variable Private + 104(gs_ub): 102(ptr) Variable Private + 105(gs_uc): 102(ptr) Variable Private + 106: TypeVector 101(int) 2 + 107: TypePointer Private 106(ivec2) + 108(gs_ua2): 107(ptr) Variable Private + 109(gs_ub2): 107(ptr) Variable Private + 110(gs_uc2): 107(ptr) Variable Private + 111: TypeVector 101(int) 3 + 112: TypePointer Private 111(ivec3) + 113(gs_ua3): 112(ptr) Variable Private + 114(gs_ub3): 112(ptr) Variable Private + 115(gs_uc3): 112(ptr) Variable Private + 116: TypeVector 101(int) 4 + 117: TypePointer Private 116(ivec4) + 118(gs_ua4): 117(ptr) Variable Private + 119(gs_ub4): 117(ptr) Variable Private + 120(gs_uc4): 117(ptr) Variable Private 4(VertexShaderFunction): 2 Function None 3 5: Label - ReturnValue 85 + Store 85(@entryPointOutput) 87 + Return FunctionEnd 15(VertexShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -408,19 +418,19 @@ Shader version: 450 49(inF1): 46(ptr) FunctionParameter 50(inF2): 46(ptr) FunctionParameter 52: Label - ReturnValue 88 + ReturnValue 90 FunctionEnd 59(VertexShaderFunction3x3(mf33;mf33;mf33;): 53 Function None 55 56(inF0): 54(ptr) FunctionParameter 57(inF1): 54(ptr) FunctionParameter 58(inF2): 54(ptr) FunctionParameter 60: Label - ReturnValue 92 + ReturnValue 94 FunctionEnd 68(VertexShaderFunction4x4(mf44;mf44;mf44;): 62 Function None 64 65(inF0): 63(ptr) FunctionParameter 66(inF1): 63(ptr) FunctionParameter 67(inF2): 63(ptr) FunctionParameter 69: Label - ReturnValue 96 + ReturnValue 98 FunctionEnd diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 6dfee1b4..bff38d8c 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -88,8 +88,11 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Branch: Return with expression -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Sequence +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -200,8 +203,11 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Branch: Return with expression -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Sequence +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -221,14 +227,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 103 +// Id's are bound by 105 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 92 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -244,12 +250,13 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 95 "g_sSamp" - Name 97 "c1" - Name 99 "c4" - Name 100 "o1" - Name 101 "o3" - Name 102 "o4" + Name 92 "@entryPointOutput" + Name 97 "g_sSamp" + Name 99 "c1" + Name 101 "c4" + Name 102 "o1" + Name 103 "o3" + Name 104 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -257,8 +264,8 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 95(g_sSamp) DescriptorSet 0 - Decorate 95(g_sSamp) Binding 0 + Decorate 97(g_sSamp) DescriptorSet 0 + Decorate 97(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -301,16 +308,18 @@ gl_FragCoord origin is upper left 86: TypePointer Function 17(fvec4) 88: 11(int) Constant 1 89: TypePointer Function 6(float) - 93: TypeSampler - 94: TypePointer UniformConstant 93 - 95(g_sSamp): 94(ptr) Variable UniformConstant - 96: TypePointer UniformConstant 11(int) - 97(c1): 96(ptr) Variable UniformConstant - 98: TypePointer UniformConstant 24(ivec4) - 99(c4): 98(ptr) Variable UniformConstant - 100(o1): 96(ptr) Variable UniformConstant - 101(o3): 52(ptr) Variable UniformConstant - 102(o4): 98(ptr) Variable UniformConstant + 91: TypePointer Output 80(PS_OUTPUT) +92(@entryPointOutput): 91(ptr) Variable Output + 95: TypeSampler + 96: TypePointer UniformConstant 95 + 97(g_sSamp): 96(ptr) Variable UniformConstant + 98: TypePointer UniformConstant 11(int) + 99(c1): 98(ptr) Variable UniformConstant + 100: TypePointer UniformConstant 24(ivec4) + 101(c4): 100(ptr) Variable UniformConstant + 102(o1): 98(ptr) Variable UniformConstant + 103(o3): 52(ptr) Variable UniformConstant + 104(o4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -360,6 +369,7 @@ gl_FragCoord origin is upper left Store 87 85 90: 89(ptr) AccessChain 82(psout) 88 Store 90 84 - 91:80(PS_OUTPUT) Load 82(psout) - ReturnValue 91 + 93:80(PS_OUTPUT) Load 82(psout) + Store 92(@entryPointOutput) 93 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 12636502..b18bec5c 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -106,8 +106,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -251,8 +254,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -287,14 +293,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 143 +// Id's are bound by 145 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 87 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -309,28 +315,29 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 90 "g_sSamp" - Name 93 "g_tTex1df4" - Name 96 "g_tTex1di4" - Name 99 "g_tTex1du4" - Name 102 "g_tTex2df4" - Name 105 "g_tTex2di4" - Name 108 "g_tTex2du4" - Name 111 "g_tTex3df4" - Name 114 "g_tTex3di4" - Name 117 "g_tTex3du4" - Name 120 "g_tTexcdf4" - Name 123 "g_tTexcdi4" - Name 126 "g_tTexcdu4" - Name 129 "g_tTexcdf4a" - Name 132 "g_tTexcdi4a" - Name 135 "g_tTexcdu4a" - Name 136 "c1" - Name 138 "c2" - Name 139 "o1" - Name 140 "o2" - Name 141 "o3" - Name 142 "o4" + Name 87 "@entryPointOutput" + Name 92 "g_sSamp" + Name 95 "g_tTex1df4" + Name 98 "g_tTex1di4" + Name 101 "g_tTex1du4" + Name 104 "g_tTex2df4" + Name 107 "g_tTex2di4" + Name 110 "g_tTex2du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" + Name 122 "g_tTexcdf4" + Name 125 "g_tTexcdi4" + Name 128 "g_tTexcdu4" + Name 131 "g_tTexcdf4a" + Name 134 "g_tTexcdi4a" + Name 137 "g_tTexcdu4a" + Name 138 "c1" + Name 140 "c2" + Name 141 "o1" + Name 142 "o2" + Name 143 "o3" + Name 144 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -338,24 +345,24 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 90(g_sSamp) DescriptorSet 0 - Decorate 90(g_sSamp) Binding 0 - Decorate 93(g_tTex1df4) DescriptorSet 0 - Decorate 93(g_tTex1df4) Binding 0 - Decorate 96(g_tTex1di4) DescriptorSet 0 - Decorate 99(g_tTex1du4) DescriptorSet 0 - Decorate 102(g_tTex2df4) DescriptorSet 0 - Decorate 105(g_tTex2di4) DescriptorSet 0 - Decorate 108(g_tTex2du4) DescriptorSet 0 - Decorate 111(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 117(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTexcdf4) DescriptorSet 0 - Decorate 123(g_tTexcdi4) DescriptorSet 0 - Decorate 126(g_tTexcdu4) DescriptorSet 0 - Decorate 129(g_tTexcdf4a) DescriptorSet 0 - Decorate 132(g_tTexcdi4a) DescriptorSet 0 - Decorate 135(g_tTexcdu4a) DescriptorSet 0 + Decorate 92(g_sSamp) DescriptorSet 0 + Decorate 92(g_sSamp) Binding 0 + Decorate 95(g_tTex1df4) DescriptorSet 0 + Decorate 95(g_tTex1df4) Binding 0 + Decorate 98(g_tTex1di4) DescriptorSet 0 + Decorate 101(g_tTex1du4) DescriptorSet 0 + Decorate 104(g_tTex2df4) DescriptorSet 0 + Decorate 107(g_tTex2di4) DescriptorSet 0 + Decorate 110(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 + Decorate 122(g_tTexcdf4) DescriptorSet 0 + Decorate 125(g_tTexcdi4) DescriptorSet 0 + Decorate 128(g_tTexcdu4) DescriptorSet 0 + Decorate 131(g_tTexcdf4a) DescriptorSet 0 + Decorate 134(g_tTexcdi4a) DescriptorSet 0 + Decorate 137(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -399,61 +406,63 @@ gl_FragCoord origin is upper left 81: TypePointer Function 23(fvec4) 83: 11(int) Constant 1 84: TypePointer Function 6(float) - 88: TypeSampler - 89: TypePointer UniformConstant 88 - 90(g_sSamp): 89(ptr) Variable UniformConstant - 91: TypeImage 6(float) 1D sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTex1df4): 92(ptr) Variable UniformConstant - 94: TypeImage 11(int) 1D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex1di4): 95(ptr) Variable UniformConstant - 97: TypeImage 18(int) 1D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex1du4): 98(ptr) Variable UniformConstant - 100: TypeImage 6(float) 2D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex2df4): 101(ptr) Variable UniformConstant - 103: TypeImage 11(int) 2D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex2di4): 104(ptr) Variable UniformConstant - 106: TypeImage 18(int) 2D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex2du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3df4): 110(ptr) Variable UniformConstant - 112: TypeImage 11(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3di4): 113(ptr) Variable UniformConstant - 115: TypeImage 18(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3du4): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdf4): 119(ptr) Variable UniformConstant - 121: TypeImage 11(int) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdi4): 122(ptr) Variable UniformConstant - 124: TypeImage 18(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdu4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) Cube array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTexcdf4a): 128(ptr) Variable UniformConstant - 130: TypeImage 11(int) Cube array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTexcdi4a): 131(ptr) Variable UniformConstant - 133: TypeImage 18(int) Cube array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTexcdu4a): 134(ptr) Variable UniformConstant - 136(c1): 20(ptr) Variable UniformConstant - 137: TypePointer UniformConstant 15(ivec2) - 138(c2): 137(ptr) Variable UniformConstant - 139(o1): 20(ptr) Variable UniformConstant - 140(o2): 137(ptr) Variable UniformConstant - 141(o3): 13(ptr) Variable UniformConstant - 142(o4): 49(ptr) Variable UniformConstant + 86: TypePointer Output 75(PS_OUTPUT) +87(@entryPointOutput): 86(ptr) Variable Output + 90: TypeSampler + 91: TypePointer UniformConstant 90 + 92(g_sSamp): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) 1D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex1df4): 94(ptr) Variable UniformConstant + 96: TypeImage 11(int) 1D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex1di4): 97(ptr) Variable UniformConstant + 99: TypeImage 18(int) 1D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex1du4): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 2D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex2df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 2D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex2di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 2D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex2du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdf4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdi4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdu4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdf4a): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTexcdi4a): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTexcdu4a): 136(ptr) Variable UniformConstant + 138(c1): 20(ptr) Variable UniformConstant + 139: TypePointer UniformConstant 15(ivec2) + 140(c2): 139(ptr) Variable UniformConstant + 141(o1): 20(ptr) Variable UniformConstant + 142(o2): 139(ptr) Variable UniformConstant + 143(o3): 13(ptr) Variable UniformConstant + 144(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -497,6 +506,7 @@ gl_FragCoord origin is upper left Store 82 80 85: 84(ptr) AccessChain 77(psout) 83 Store 85 79 - 86:75(PS_OUTPUT) Load 77(psout) - ReturnValue 86 + 88:75(PS_OUTPUT) Load 77(psout) + Store 87(@entryPointOutput) 88 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 35e6956b..1016ba49 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -317,8 +320,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -353,14 +359,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 165 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -379,24 +385,25 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 121 "g_sSamp" - Name 124 "g_tTexcdf4" - Name 127 "g_tTexcdi4" - Name 130 "g_tTexcdu4" - Name 133 "g_tTex1df4a" - Name 136 "g_tTex1di4a" - Name 139 "g_tTex1du4a" - Name 142 "g_tTex2df4a" - Name 145 "g_tTex2di4a" - Name 148 "g_tTex2du4a" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 158 "c1" - Name 159 "o1" - Name 160 "o2" - Name 161 "o3" - Name 162 "o4" + Name 118 "@entryPointOutput" + Name 123 "g_sSamp" + Name 126 "g_tTexcdf4" + Name 129 "g_tTexcdi4" + Name 132 "g_tTexcdu4" + Name 135 "g_tTex1df4a" + Name 138 "g_tTex1di4a" + Name 141 "g_tTex1du4a" + Name 144 "g_tTex2df4a" + Name 147 "g_tTex2di4a" + Name 150 "g_tTex2du4a" + Name 153 "g_tTexcdf4a" + Name 156 "g_tTexcdi4a" + Name 159 "g_tTexcdu4a" + Name 160 "c1" + Name 161 "o1" + Name 162 "o2" + Name 163 "o3" + Name 164 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -408,20 +415,20 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 127(g_tTexcdi4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 136(g_tTex1di4a) DescriptorSet 0 - Decorate 139(g_tTex1du4a) DescriptorSet 0 - Decorate 142(g_tTex2df4a) DescriptorSet 0 - Decorate 145(g_tTex2di4a) DescriptorSet 0 - Decorate 148(g_tTex2du4a) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + Decorate 123(g_sSamp) DescriptorSet 0 + Decorate 123(g_sSamp) Binding 0 + Decorate 126(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 132(g_tTexcdu4) DescriptorSet 0 + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1di4a) DescriptorSet 0 + Decorate 141(g_tTex1du4a) DescriptorSet 0 + Decorate 144(g_tTex2df4a) DescriptorSet 0 + Decorate 147(g_tTex2di4a) DescriptorSet 0 + Decorate 150(g_tTex2du4a) DescriptorSet 0 + Decorate 153(g_tTexcdf4a) DescriptorSet 0 + Decorate 156(g_tTexcdi4a) DescriptorSet 0 + Decorate 159(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -478,50 +485,52 @@ gl_FragCoord origin is upper left 112: TypePointer Function 23(fvec4) 114: 11(int) Constant 1 115: TypePointer Function 6(float) - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdf4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdi4): 126(ptr) Variable UniformConstant - 128: TypeImage 15(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdu4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 15(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 15(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 15(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158(c1): 17(ptr) Variable UniformConstant - 159(o1): 17(ptr) Variable UniformConstant - 160(o2): 13(ptr) Variable UniformConstant - 161(o3): 50(ptr) Variable UniformConstant - 162(o4): 80(ptr) Variable UniformConstant + 117: TypePointer Output 106(PS_OUTPUT) +118(@entryPointOutput): 117(ptr) Variable Output + 121: TypeSampler + 122: TypePointer UniformConstant 121 + 123(g_sSamp): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdf4): 125(ptr) Variable UniformConstant + 127: TypeImage 11(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 130: TypeImage 15(int) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdu4): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 11(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 15(int) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2df4a): 143(ptr) Variable UniformConstant + 145: TypeImage 11(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2di4a): 146(ptr) Variable UniformConstant + 148: TypeImage 15(int) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2du4a): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdf4a): 152(ptr) Variable UniformConstant + 154: TypeImage 11(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdi4a): 155(ptr) Variable UniformConstant + 157: TypeImage 15(int) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdu4a): 158(ptr) Variable UniformConstant + 160(c1): 17(ptr) Variable UniformConstant + 161(o1): 17(ptr) Variable UniformConstant + 162(o2): 13(ptr) Variable UniformConstant + 163(o3): 50(ptr) Variable UniformConstant + 164(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -583,6 +592,7 @@ gl_FragCoord origin is upper left Store 113 111 116: 115(ptr) AccessChain 108(psout) 114 Store 116 110 - 117:106(PS_OUTPUT) Load 108(psout) - ReturnValue 117 + 119:106(PS_OUTPUT) Load 108(psout) + Store 118(@entryPointOutput) 119 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index a5fccaf3..059b8f59 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -131,8 +131,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Branch: Return with expression -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Sequence +0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -301,8 +304,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Branch: Return with expression -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Sequence +0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -337,14 +343,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 162 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 115 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -361,24 +367,25 @@ Shader version: 450 Name 106 "VS_OUTPUT" MemberName 106(VS_OUTPUT) 0 "Pos" Name 108 "vsout" - Name 118 "g_sSamp" - Name 121 "g_tTexcdf4" - Name 124 "g_tTexcdi4" - Name 127 "g_tTexcdu4" - Name 130 "g_tTex1df4a" - Name 133 "g_tTex1di4a" - Name 136 "g_tTex1du4a" - Name 139 "g_tTex2df4a" - Name 142 "g_tTex2di4a" - Name 145 "g_tTex2du4a" - Name 148 "g_tTexcdf4a" - Name 151 "g_tTexcdi4a" - Name 154 "g_tTexcdu4a" - Name 155 "c1" - Name 156 "o1" - Name 157 "o2" - Name 158 "o3" - Name 159 "o4" + Name 115 "@entryPointOutput" + Name 120 "g_sSamp" + Name 123 "g_tTexcdf4" + Name 126 "g_tTexcdi4" + Name 129 "g_tTexcdu4" + Name 132 "g_tTex1df4a" + Name 135 "g_tTex1di4a" + Name 138 "g_tTex1du4a" + Name 141 "g_tTex2df4a" + Name 144 "g_tTex2di4a" + Name 147 "g_tTex2du4a" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" + Name 157 "c1" + Name 158 "o1" + Name 159 "o2" + Name 160 "o3" + Name 161 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -390,20 +397,20 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 118(g_sSamp) DescriptorSet 0 - Decorate 118(g_sSamp) Binding 0 - Decorate 121(g_tTexcdf4) DescriptorSet 0 - Decorate 124(g_tTexcdi4) DescriptorSet 0 - Decorate 127(g_tTexcdu4) DescriptorSet 0 - Decorate 130(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1di4a) DescriptorSet 0 - Decorate 136(g_tTex1du4a) DescriptorSet 0 - Decorate 139(g_tTex2df4a) DescriptorSet 0 - Decorate 142(g_tTex2di4a) DescriptorSet 0 - Decorate 145(g_tTex2du4a) DescriptorSet 0 - Decorate 148(g_tTexcdf4a) DescriptorSet 0 - Decorate 151(g_tTexcdi4a) DescriptorSet 0 - Decorate 154(g_tTexcdu4a) DescriptorSet 0 + Decorate 120(g_sSamp) DescriptorSet 0 + Decorate 120(g_sSamp) Binding 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 126(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 135(g_tTex1di4a) DescriptorSet 0 + Decorate 138(g_tTex1du4a) DescriptorSet 0 + Decorate 141(g_tTex2df4a) DescriptorSet 0 + Decorate 144(g_tTex2di4a) DescriptorSet 0 + Decorate 147(g_tTex2du4a) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -458,50 +465,52 @@ Shader version: 450 110: 6(float) Constant 0 111: 23(fvec4) ConstantComposite 110 110 110 110 112: TypePointer Function 23(fvec4) - 116: TypeSampler - 117: TypePointer UniformConstant 116 - 118(g_sSamp): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdf4): 120(ptr) Variable UniformConstant - 122: TypeImage 11(int) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdi4): 123(ptr) Variable UniformConstant - 125: TypeImage 15(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdu4): 126(ptr) Variable UniformConstant - 128: TypeImage 6(float) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1df4a): 129(ptr) Variable UniformConstant - 131: TypeImage 11(int) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1di4a): 132(ptr) Variable UniformConstant - 134: TypeImage 15(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1du4a): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2df4a): 138(ptr) Variable UniformConstant - 140: TypeImage 11(int) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2di4a): 141(ptr) Variable UniformConstant - 143: TypeImage 15(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2du4a): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdf4a): 147(ptr) Variable UniformConstant - 149: TypeImage 11(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdi4a): 150(ptr) Variable UniformConstant - 152: TypeImage 15(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdu4a): 153(ptr) Variable UniformConstant - 155(c1): 17(ptr) Variable UniformConstant - 156(o1): 17(ptr) Variable UniformConstant - 157(o2): 13(ptr) Variable UniformConstant - 158(o3): 50(ptr) Variable UniformConstant - 159(o4): 80(ptr) Variable UniformConstant + 114: TypePointer Output 106(VS_OUTPUT) +115(@entryPointOutput): 114(ptr) Variable Output + 118: TypeSampler + 119: TypePointer UniformConstant 118 + 120(g_sSamp): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 124: TypeImage 11(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdi4): 125(ptr) Variable UniformConstant + 127: TypeImage 15(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1df4a): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1di4a): 134(ptr) Variable UniformConstant + 136: TypeImage 15(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1du4a): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 15(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 15(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 157(c1): 17(ptr) Variable UniformConstant + 158(o1): 17(ptr) Variable UniformConstant + 159(o2): 13(ptr) Variable UniformConstant + 160(o3): 50(ptr) Variable UniformConstant + 161(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function @@ -561,6 +570,7 @@ Shader version: 450 105: 43(ivec4) ImageFetch 100 102 Lod 104 113: 112(ptr) AccessChain 108(vsout) 109 Store 113 111 - 114:106(VS_OUTPUT) Load 108(vsout) - ReturnValue 114 + 116:106(VS_OUTPUT) Load 108(vsout) + Store 115(@entryPointOutput) 116 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 220f3ddb..16e5187d 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -40,8 +40,11 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Branch: Return with expression -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Sequence +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) @@ -101,8 +104,11 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Branch: Return with expression -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Sequence +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) @@ -119,13 +125,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 69 +// Id's are bound by 71 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 55 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -139,20 +145,21 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 56 "g_tTexbf4_test" - Name 59 "c2" - Name 62 "c3" - Name 64 "c4" - Name 65 "o1" - Name 66 "o2" - Name 67 "o3" - Name 68 "o4" + Name 55 "@entryPointOutput" + Name 58 "g_tTexbf4_test" + Name 61 "c2" + Name 64 "c3" + Name 66 "c4" + Name 67 "o1" + Name 68 "o2" + Name 69 "o3" + Name 70 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 56(g_tTexbf4_test) DescriptorSet 0 - Decorate 56(g_tTexbf4_test) Binding 0 + Decorate 58(g_tTexbf4_test) DescriptorSet 0 + Decorate 58(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -185,19 +192,21 @@ gl_FragCoord origin is upper left 49: 7(fvec4) ConstantComposite 48 48 48 48 51: 15(int) Constant 1 52: TypePointer Function 6(float) -56(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 57: TypeVector 15(int) 2 - 58: TypePointer UniformConstant 57(ivec2) - 59(c2): 58(ptr) Variable UniformConstant - 60: TypeVector 15(int) 3 - 61: TypePointer UniformConstant 60(ivec3) - 62(c3): 61(ptr) Variable UniformConstant - 63: TypePointer UniformConstant 21(ivec4) - 64(c4): 63(ptr) Variable UniformConstant - 65(o1): 16(ptr) Variable UniformConstant - 66(o2): 58(ptr) Variable UniformConstant - 67(o3): 61(ptr) Variable UniformConstant - 68(o4): 63(ptr) Variable UniformConstant + 54: TypePointer Output 44(PS_OUTPUT) +55(@entryPointOutput): 54(ptr) Variable Output +58(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 59: TypeVector 15(int) 2 + 60: TypePointer UniformConstant 59(ivec2) + 61(c2): 60(ptr) Variable UniformConstant + 62: TypeVector 15(int) 3 + 63: TypePointer UniformConstant 62(ivec3) + 64(c3): 63(ptr) Variable UniformConstant + 65: TypePointer UniformConstant 21(ivec4) + 66(c4): 65(ptr) Variable UniformConstant + 67(o1): 16(ptr) Variable UniformConstant + 68(o2): 60(ptr) Variable UniformConstant + 69(o3): 63(ptr) Variable UniformConstant + 70(o4): 65(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -223,6 +232,7 @@ gl_FragCoord origin is upper left Store 50 49 53: 52(ptr) AccessChain 46(psout) 51 Store 53 48 - 54:44(PS_OUTPUT) Load 46(psout) - ReturnValue 54 + 56:44(PS_OUTPUT) Load 46(psout) + Store 55(@entryPointOutput) 56 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index fb053bfb..acb97a4a 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -148,8 +148,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -335,8 +338,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -371,7 +377,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 172 +// Id's are bound by 174 Capability Shader Capability ImageGatherExtended @@ -379,7 +385,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -401,21 +407,22 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 133 "g_sSamp" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTex1df4a" - Name 148 "g_tTex1di4a" - Name 151 "g_tTex1du4a" - Name 154 "g_tTex2df4a" - Name 157 "g_tTex2di4a" - Name 160 "g_tTex2du4a" - Name 163 "g_tTexcdf4a" - Name 166 "g_tTexcdi4a" - Name 169 "g_tTexcdu4a" - Name 170 "c1" - Name 171 "o4" + Name 130 "@entryPointOutput" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Name 172 "c1" + Name 173 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -427,20 +434,20 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_sSamp) DescriptorSet 0 - Decorate 133(g_sSamp) Binding 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTex1df4a) DescriptorSet 0 - Decorate 148(g_tTex1di4a) DescriptorSet 0 - Decorate 151(g_tTex1du4a) DescriptorSet 0 - Decorate 154(g_tTex2df4a) DescriptorSet 0 - Decorate 157(g_tTex2di4a) DescriptorSet 0 - Decorate 160(g_tTex2du4a) DescriptorSet 0 - Decorate 163(g_tTexcdf4a) DescriptorSet 0 - Decorate 166(g_tTexcdi4a) DescriptorSet 0 - Decorate 169(g_tTexcdu4a) DescriptorSet 0 + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -500,47 +507,49 @@ gl_FragCoord origin is upper left 124: TypePointer Function 25(fvec4) 126: 11(int) Constant 1 127: TypePointer Function 6(float) - 131: TypeSampler - 132: TypePointer UniformConstant 131 - 133(g_sSamp): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 15(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) 1D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex1df4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) 1D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex1di4a): 147(ptr) Variable UniformConstant - 149: TypeImage 15(int) 1D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex1du4a): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) 2D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex2df4a): 153(ptr) Variable UniformConstant - 155: TypeImage 11(int) 2D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex2di4a): 156(ptr) Variable UniformConstant - 158: TypeImage 15(int) 2D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex2du4a): 159(ptr) Variable UniformConstant - 161: TypeImage 6(float) Cube array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTexcdf4a): 162(ptr) Variable UniformConstant - 164: TypeImage 11(int) Cube array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTexcdi4a): 165(ptr) Variable UniformConstant - 167: TypeImage 15(int) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdu4a): 168(ptr) Variable UniformConstant - 170(c1): 17(ptr) Variable UniformConstant - 171(o4): 88(ptr) Variable UniformConstant + 129: TypePointer Output 118(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 15(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 15(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 15(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 15(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 172(c1): 17(ptr) Variable UniformConstant + 173(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -611,6 +620,7 @@ gl_FragCoord origin is upper left Store 125 123 128: 127(ptr) AccessChain 120(psout) 126 Store 128 122 - 129:118(PS_OUTPUT) Load 120(psout) - ReturnValue 129 + 131:118(PS_OUTPUT) Load 120(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 548a7c70..1751db8c 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Branch: Return with expression -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Sequence +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -263,8 +266,11 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Branch: Return with expression -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Sequence +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -299,7 +305,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 151 Capability Shader Capability ImageGatherExtended @@ -307,7 +313,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 96 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -324,26 +330,27 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 99 "g_sSamp" - Name 102 "g_tTex1df4" - Name 105 "g_tTex1di4" - Name 108 "g_tTex1du4" - Name 111 "g_tTex2df4" - Name 114 "g_tTex2di4" - Name 117 "g_tTex2du4" - Name 120 "g_tTex3df4" - Name 123 "g_tTex3di4" - Name 126 "g_tTex3du4" - Name 129 "g_tTexcdf4" - Name 132 "g_tTexcdi4" - Name 135 "g_tTexcdu4" - Name 138 "g_tTexcdf4a" - Name 141 "g_tTexcdi4a" - Name 144 "g_tTexcdu4a" - Name 145 "c1" - Name 146 "c2" - Name 147 "o3" - Name 148 "o4" + Name 96 "@entryPointOutput" + Name 101 "g_sSamp" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex2df4" + Name 116 "g_tTex2di4" + Name 119 "g_tTex2du4" + Name 122 "g_tTex3df4" + Name 125 "g_tTex3di4" + Name 128 "g_tTex3du4" + Name 131 "g_tTexcdf4" + Name 134 "g_tTexcdi4" + Name 137 "g_tTexcdu4" + Name 140 "g_tTexcdf4a" + Name 143 "g_tTexcdi4a" + Name 146 "g_tTexcdu4a" + Name 147 "c1" + Name 148 "c2" + Name 149 "o3" + Name 150 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -351,24 +358,24 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 99(g_sSamp) DescriptorSet 0 - Decorate 99(g_sSamp) Binding 0 - Decorate 102(g_tTex1df4) DescriptorSet 0 - Decorate 102(g_tTex1df4) Binding 0 - Decorate 105(g_tTex1di4) DescriptorSet 0 - Decorate 108(g_tTex1du4) DescriptorSet 0 - Decorate 111(g_tTex2df4) DescriptorSet 0 - Decorate 114(g_tTex2di4) DescriptorSet 0 - Decorate 117(g_tTex2du4) DescriptorSet 0 - Decorate 120(g_tTex3df4) DescriptorSet 0 - Decorate 123(g_tTex3di4) DescriptorSet 0 - Decorate 126(g_tTex3du4) DescriptorSet 0 - Decorate 129(g_tTexcdf4) DescriptorSet 0 - Decorate 132(g_tTexcdi4) DescriptorSet 0 - Decorate 135(g_tTexcdu4) DescriptorSet 0 - Decorate 138(g_tTexcdf4a) DescriptorSet 0 - Decorate 141(g_tTexcdi4a) DescriptorSet 0 - Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 101(g_sSamp) DescriptorSet 0 + Decorate 101(g_sSamp) Binding 0 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex2df4) DescriptorSet 0 + Decorate 116(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 122(g_tTex3df4) DescriptorSet 0 + Decorate 125(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 131(g_tTexcdf4) DescriptorSet 0 + Decorate 134(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTexcdf4a) DescriptorSet 0 + Decorate 143(g_tTexcdi4a) DescriptorSet 0 + Decorate 146(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -415,58 +422,60 @@ gl_FragCoord origin is upper left 90: TypePointer Function 25(fvec4) 92: 11(int) Constant 1 93: TypePointer Function 6(float) - 97: TypeSampler - 98: TypePointer UniformConstant 97 - 99(g_sSamp): 98(ptr) Variable UniformConstant - 100: TypeImage 6(float) 1D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex1df4): 101(ptr) Variable UniformConstant - 103: TypeImage 11(int) 1D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex1di4): 104(ptr) Variable UniformConstant - 106: TypeImage 18(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 2D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex2df4): 110(ptr) Variable UniformConstant - 112: TypeImage 11(int) 2D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex2di4): 113(ptr) Variable UniformConstant - 115: TypeImage 18(int) 2D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex2du4): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3df4): 119(ptr) Variable UniformConstant - 121: TypeImage 11(int) 3D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex3di4): 122(ptr) Variable UniformConstant - 124: TypeImage 18(int) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3du4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdf4): 128(ptr) Variable UniformConstant - 130: TypeImage 11(int) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdi4): 131(ptr) Variable UniformConstant - 133: TypeImage 18(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdu4): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTexcdf4a): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) Cube array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTexcdi4a): 140(ptr) Variable UniformConstant - 142: TypeImage 18(int) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdu4a): 143(ptr) Variable UniformConstant - 145(c1): 20(ptr) Variable UniformConstant - 146(c2): 60(ptr) Variable UniformConstant - 147(o3): 13(ptr) Variable UniformConstant - 148(o4): 53(ptr) Variable UniformConstant + 95: TypePointer Output 84(PS_OUTPUT) +96(@entryPointOutput): 95(ptr) Variable Output + 99: TypeSampler + 100: TypePointer UniformConstant 99 + 101(g_sSamp): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex1df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 2D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex2df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 2D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex2di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 2D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3df4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3di4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdf4): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdi4): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTexcdf4a): 139(ptr) Variable UniformConstant + 141: TypeImage 11(int) Cube array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTexcdi4a): 142(ptr) Variable UniformConstant + 144: TypeImage 18(int) Cube array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTexcdu4a): 145(ptr) Variable UniformConstant + 147(c1): 20(ptr) Variable UniformConstant + 148(c2): 60(ptr) Variable UniformConstant + 149(o3): 13(ptr) Variable UniformConstant + 150(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -516,6 +525,7 @@ gl_FragCoord origin is upper left Store 91 89 94: 93(ptr) AccessChain 86(psout) 92 Store 94 88 - 95:84(PS_OUTPUT) Load 86(psout) - ReturnValue 95 + 97:84(PS_OUTPUT) Load 86(psout) + Store 96(@entryPointOutput) 97 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 58505eca..ebb943cc 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -7,10 +7,13 @@ gl_FragCoord origin is upper left 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 max (global 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects @@ -25,35 +28,42 @@ gl_FragCoord origin is upper left 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 max (global 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 15 +// Id's are bound by 17 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input1" - Name 11 "input2" + Name 9 "@entryPointOutput" + Name 11 "input1" + Name 13 "input2" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input1): 8(ptr) Variable Input - 11(input2): 8(ptr) Variable Input + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input1): 10(ptr) Variable Input + 13(input2): 10(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input1) - 12: 7(fvec4) Load 11(input2) - 13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12 - ReturnValue 13 + 12: 7(fvec4) Load 11(input1) + 14: 7(fvec4) Load 13(input2) + 15: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 12 14 + Store 9(@entryPointOutput) 15 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 57013709..721b0d33 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -58,8 +58,11 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Branch: Return with expression -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Branch: Return 0:? Linker Objects @@ -125,18 +128,21 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Branch: Return with expression -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 43 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 40 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -151,6 +157,7 @@ gl_FragCoord origin is upper left Name 30 "PS_OUTPUT" MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" + Name 40 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -172,6 +179,8 @@ gl_FragCoord origin is upper left 31: TypePointer Function 30(PS_OUTPUT) 33: 19(int) Constant 0 37: TypePointer Function 29(fvec4) + 39: TypePointer Output 30(PS_OUTPUT) +40(@entryPointOutput): 39(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -198,6 +207,7 @@ gl_FragCoord origin is upper left 36: 29(fvec4) CompositeConstruct 35 35 35 35 38: 37(ptr) AccessChain 32(ps_output) 33 Store 38 36 - 39:30(PS_OUTPUT) Load 32(ps_output) - ReturnValue 39 + 41:30(PS_OUTPUT) Load 32(ps_output) + Store 40(@entryPointOutput) 41 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 83217581..6bedd3e3 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -348,8 +348,11 @@ gl_FragCoord origin is upper left 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) -0:141 Branch: Return with expression -0:141 'input' (in 4-component vector of float) +0:141 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:141 'input' (in 4-component vector of float) +0:141 Branch: Return 0:? Linker Objects @@ -705,19 +708,22 @@ gl_FragCoord origin is upper left 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) -0:141 Branch: Return with expression -0:141 'input' (in 4-component vector of float) +0:141 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:141 'input' (in 4-component vector of float) +0:141 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 507 +// Id's are bound by 509 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 504 + EntryPoint Fragment 4 "PixelShaderFunction" 504 506 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 13 "foo1(d1;b1;" @@ -901,7 +907,8 @@ gl_FragCoord origin is upper left Name 491 "param" Name 494 "param" Name 500 "param" - Name 504 "input" + Name 504 "@entryPointOutput" + Name 506 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -953,8 +960,10 @@ gl_FragCoord origin is upper left 488: TypeVector 22(int) 4 497: TypeVector 8(bool) 3 502: TypeVector 29(float) 4 - 503: TypePointer Input 502(fvec4) - 504(input): 503(ptr) Variable Input + 503: TypePointer Output 502(fvec4) +504(@entryPointOutput): 503(ptr) Variable Output + 505: TypePointer Input 502(fvec4) + 506(input): 505(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 149(d): 7(ptr) Variable Function @@ -1401,8 +1410,9 @@ gl_FragCoord origin is upper left 499: 8(bool) CompositeExtract 498 0 Store 500(param) 499 501: 2 FunctionCall 147(foo15(vb1;) 500(param) - 505: 502(fvec4) Load 504(input) - ReturnValue 505 + 507: 502(fvec4) Load 506(input) + Store 504(@entryPointOutput) 507 + Return FunctionEnd 13(foo1(d1;b1;): 2 Function None 10 11(a): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 89b9b7b8..4c70ea82 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -31,8 +31,11 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Branch: Return with expression -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Sequence +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Branch: Return 0:? Linker Objects @@ -71,18 +74,21 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Branch: Return with expression -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Sequence +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 27 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -90,6 +96,7 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "Color" MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" + Name 27 "@entryPointOutput" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 @@ -106,6 +113,8 @@ gl_FragCoord origin is upper left 21: TypePointer Function 11(fvec4) 23: 6(int) Constant 1 24: TypePointer Function 10(float) + 26: TypePointer Output 12(PS_OUTPUT) +27(@entryPointOutput): 26(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function @@ -118,6 +127,7 @@ gl_FragCoord origin is upper left Store 22 20 25: 24(ptr) AccessChain 14(psout) 23 Store 25 19 - 26:12(PS_OUTPUT) Load 14(psout) - ReturnValue 26 + 28:12(PS_OUTPUT) Load 14(psout) + Store 27(@entryPointOutput) 28 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 3c9252ed..4ad10ad4 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -9,39 +9,42 @@ gl_FragCoord origin is upper left 0:7 'a3' (in 4-component vector of float) 0:7 'a4' (in 4-component vector of float) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:? Construct vec4 (temp 4-component vector of float) -0:8 component-wise multiply (temp 3-component vector of float) -0:8 vector swizzle (temp 3-component vector of float) +0:8 add (temp 4-component vector of float) 0:8 'a1' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) +0:8 'a3' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return 0:? Linker Objects @@ -58,88 +61,95 @@ gl_FragCoord origin is upper left 0:7 'a3' (in 4-component vector of float) 0:7 'a4' (in 4-component vector of float) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:? Construct vec4 (temp 4-component vector of float) -0:8 component-wise multiply (temp 3-component vector of float) -0:8 vector swizzle (temp 3-component vector of float) +0:8 add (temp 4-component vector of float) 0:8 'a1' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) +0:8 'a3' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 37 +// Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 17 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 15 19 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "a1" - Name 11 "a2" - Name 13 "a3" - Name 17 "a4" + Name 9 "@entryPointOutput" + Name 11 "a1" + Name 13 "a2" + Name 15 "a3" + Name 19 "a4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(a1): 8(ptr) Variable Input - 11(a2): 8(ptr) Variable Input - 13(a3): 8(ptr) Variable Input - 17(a4): 8(ptr) Variable Input - 20: TypeVector 6(float) 3 - 26: TypeInt 32 0 - 27: 26(int) Constant 3 - 28: TypePointer Input 6(float) + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(a1): 10(ptr) Variable Input + 13(a2): 10(ptr) Variable Input + 15(a3): 10(ptr) Variable Input + 19(a4): 10(ptr) Variable Input + 22: TypeVector 6(float) 3 + 28: TypeInt 32 0 + 29: 28(int) Constant 3 + 30: TypePointer Input 6(float) 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(a1) - 12: 7(fvec4) Load 11(a2) - 14: 7(fvec4) Load 13(a3) - 15: 7(fvec4) FMul 12 14 - 16: 7(fvec4) FAdd 10 15 - 18: 7(fvec4) Load 17(a4) - 19: 7(fvec4) FAdd 16 18 - 21: 7(fvec4) Load 9(a1) - 22: 20(fvec3) VectorShuffle 21 21 0 1 2 - 23: 7(fvec4) Load 11(a2) - 24: 20(fvec3) VectorShuffle 23 23 0 1 2 - 25: 20(fvec3) FMul 22 24 - 29: 28(ptr) AccessChain 13(a3) 27 - 30: 6(float) Load 29 - 31: 6(float) CompositeExtract 25 0 - 32: 6(float) CompositeExtract 25 1 - 33: 6(float) CompositeExtract 25 2 - 34: 7(fvec4) CompositeConstruct 31 32 33 30 - 35: 7(fvec4) FAdd 19 34 - ReturnValue 35 + 12: 7(fvec4) Load 11(a1) + 14: 7(fvec4) Load 13(a2) + 16: 7(fvec4) Load 15(a3) + 17: 7(fvec4) FMul 14 16 + 18: 7(fvec4) FAdd 12 17 + 20: 7(fvec4) Load 19(a4) + 21: 7(fvec4) FAdd 18 20 + 23: 7(fvec4) Load 11(a1) + 24: 22(fvec3) VectorShuffle 23 23 0 1 2 + 25: 7(fvec4) Load 13(a2) + 26: 22(fvec3) VectorShuffle 25 25 0 1 2 + 27: 22(fvec3) FMul 24 26 + 31: 30(ptr) AccessChain 15(a3) 29 + 32: 6(float) Load 31 + 33: 6(float) CompositeExtract 27 0 + 34: 6(float) CompositeExtract 27 1 + 35: 6(float) CompositeExtract 27 2 + 36: 7(fvec4) CompositeConstruct 33 34 35 32 + 37: 7(fvec4) FAdd 21 36 + Store 9(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index a0205f08..a06865a7 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -9,22 +9,25 @@ gl_FragCoord origin is upper left 0:7 'a3' (in int) 0:7 'a4' (in int) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp int) -0:8 left-shift (temp int) -0:8 add (temp int) -0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) -0:8 left-shift (temp int) -0:8 'a1' (in int) -0:8 add (temp int) -0:8 'a2' (in int) -0:8 component-wise multiply (temp int) +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (out int) +0:8 add (temp int) +0:8 left-shift (temp int) +0:8 add (temp int) +0:8 component-wise multiply (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) 0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a4' (in int) +0:8 left-shift (temp int) +0:8 'a1' (in int) +0:8 add (temp int) +0:8 'a2' (in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) +0:8 Branch: Return 0:? Linker Objects @@ -41,62 +44,69 @@ gl_FragCoord origin is upper left 0:7 'a3' (in int) 0:7 'a4' (in int) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp int) -0:8 left-shift (temp int) -0:8 add (temp int) -0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) -0:8 left-shift (temp int) -0:8 'a1' (in int) -0:8 add (temp int) -0:8 'a2' (in int) -0:8 component-wise multiply (temp int) +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (out int) +0:8 add (temp int) +0:8 left-shift (temp int) +0:8 add (temp int) +0:8 component-wise multiply (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) 0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a4' (in int) +0:8 left-shift (temp int) +0:8 'a1' (in int) +0:8 add (temp int) +0:8 'a2' (in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) +0:8 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 8 10 13 16 + EntryPoint Fragment 4 "PixelShaderFunction" 8 10 12 15 18 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 8 "a1" - Name 10 "a2" - Name 13 "a3" - Name 16 "a4" + Name 8 "@entryPointOutput" + Name 10 "a1" + Name 12 "a2" + Name 15 "a3" + Name 18 "a4" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(a1): 7(ptr) Variable Input - 10(a2): 7(ptr) Variable Input - 13(a3): 7(ptr) Variable Input - 16(a4): 7(ptr) Variable Input + 7: TypePointer Output 6(int) +8(@entryPointOutput): 7(ptr) Variable Output + 9: TypePointer Input 6(int) + 10(a1): 9(ptr) Variable Input + 12(a2): 9(ptr) Variable Input + 15(a3): 9(ptr) Variable Input + 18(a4): 9(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9: 6(int) Load 8(a1) - 11: 6(int) Load 10(a2) - 12: 6(int) IMul 9 11 - 14: 6(int) Load 13(a3) - 15: 6(int) IAdd 12 14 - 17: 6(int) Load 16(a4) - 18: 6(int) ShiftLeftLogical 15 17 - 19: 6(int) Load 8(a1) - 20: 6(int) Load 10(a2) - 21: 6(int) Load 13(a3) - 22: 6(int) Load 16(a4) - 23: 6(int) IMul 21 22 - 24: 6(int) IAdd 20 23 - 25: 6(int) ShiftLeftLogical 19 24 - 26: 6(int) IAdd 18 25 - ReturnValue 26 + 11: 6(int) Load 10(a1) + 13: 6(int) Load 12(a2) + 14: 6(int) IMul 11 13 + 16: 6(int) Load 15(a3) + 17: 6(int) IAdd 14 16 + 19: 6(int) Load 18(a4) + 20: 6(int) ShiftLeftLogical 17 19 + 21: 6(int) Load 10(a1) + 22: 6(int) Load 12(a2) + 23: 6(int) Load 15(a3) + 24: 6(int) Load 18(a4) + 25: 6(int) IMul 23 24 + 26: 6(int) IAdd 22 25 + 27: 6(int) ShiftLeftLogical 21 26 + 28: 6(int) IAdd 20 27 + Store 8(@entryPointOutput) 28 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 1a277f0a..e2577c7a 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -19,8 +19,11 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Branch: Return with expression -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Sequence +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -48,19 +51,22 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Branch: Return with expression -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Sequence +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 29 +// Id's are bound by 31 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 26 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -69,7 +75,8 @@ gl_FragCoord origin is upper left Name 16 "PS_OUTPUT" MemberName 16(PS_OUTPUT) 0 "color" Name 18 "ps_output" - Name 28 "precisefloat" + Name 26 "@entryPointOutput" + Name 30 "precisefloat" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -85,15 +92,18 @@ gl_FragCoord origin is upper left 21: 6(float) Constant 1065353216 22: 15(fvec4) ConstantComposite 21 21 21 21 23: TypePointer Function 15(fvec4) - 27: TypePointer Private 6(float) -28(precisefloat): 27(ptr) Variable Private + 25: TypePointer Output 16(PS_OUTPUT) +26(@entryPointOutput): 25(ptr) Variable Output + 29: TypePointer Private 6(float) +30(precisefloat): 29(ptr) Variable Private 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function 24: 23(ptr) AccessChain 18(ps_output) 20 Store 24 22 - 25:16(PS_OUTPUT) Load 18(ps_output) - ReturnValue 25 + 27:16(PS_OUTPUT) Load 18(ps_output) + Store 26(@entryPointOutput) 27 + Return FunctionEnd 13(MyFunction(f1;vf3;): 2 Function None 10 11(myfloat): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 41bca2ff..413a4f0f 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -496,8 +496,11 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Branch: Return with expression -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Sequence +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) 0:? 'b3' (uniform 3-component vector of bool) @@ -1011,8 +1014,11 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Branch: Return with expression -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Sequence +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) 0:? 'b3' (uniform 3-component vector of bool) @@ -1027,13 +1033,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 478 +// Id's are bound by 480 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 477 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1122,6 +1128,7 @@ gl_FragCoord origin is upper left Name 471 "PS_OUTPUT" MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" + Name 477 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1192,6 +1199,8 @@ gl_FragCoord origin is upper left 465: 6(float) Constant 1080452710 471(PS_OUTPUT): TypeStruct 462(fvec4) 472: TypePointer Function 471(PS_OUTPUT) + 476: TypePointer Output 471(PS_OUTPUT) +477(@entryPointOutput): 476(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function @@ -1457,8 +1466,9 @@ gl_FragCoord origin is upper left 474: 462(fvec4) Load 464(outval) 475: 463(ptr) AccessChain 473(psout) 149 Store 475 474 - 476:471(PS_OUTPUT) Load 473(psout) - ReturnValue 476 + 478:471(PS_OUTPUT) Load 473(psout) + Store 477(@entryPointOutput) 478 + Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 10(x): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 9ab682ff..5413a6f5 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -121,8 +121,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -262,8 +265,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -279,14 +285,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 132 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -312,7 +318,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 131 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -326,8 +333,8 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 131(g_tTex1df4a) Binding 1 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -405,7 +412,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 25(int) Constant 1 127: TypePointer Function 6(float) -131(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -467,6 +476,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 129:120(PS_OUTPUT) Load 122(psout) - ReturnValue 129 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 6960c32e..9cd4ebd0 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -231,8 +231,11 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Branch: Return with expression -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Sequence +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -485,8 +488,11 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Branch: Return with expression -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Sequence +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -507,13 +513,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 186 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -559,9 +565,10 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 181 "g_sSamp2d" - Name 182 "g_sSamp2D_b" - Name 183 "g_tTex1df4a" + Name 180 "@entryPointOutput" + Name 183 "g_sSamp2d" + Name 184 "g_sSamp2D_b" + Name 185 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -578,10 +585,10 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 181(g_sSamp2d) DescriptorSet 0 - Decorate 182(g_sSamp2D_b) DescriptorSet 0 - Decorate 183(g_tTex1df4a) DescriptorSet 0 - Decorate 183(g_tTex1df4a) Binding 1 + Decorate 183(g_sSamp2d) DescriptorSet 0 + Decorate 184(g_sSamp2D_b) DescriptorSet 0 + Decorate 185(g_tTex1df4a) DescriptorSet 0 + Decorate 185(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -681,9 +688,11 @@ gl_FragCoord origin is upper left 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 181(g_sSamp2d): 44(ptr) Variable UniformConstant -182(g_sSamp2D_b): 44(ptr) Variable UniformConstant -183(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(PS_OUTPUT) +180(@entryPointOutput): 179(ptr) Variable Output + 183(g_sSamp2d): 44(ptr) Variable UniformConstant +184(g_sSamp2D_b): 44(ptr) Variable UniformConstant +185(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -788,6 +797,7 @@ gl_FragCoord origin is upper left Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 179:171(PS_OUTPUT) Load 173(psout) - ReturnValue 179 + 181:171(PS_OUTPUT) Load 173(psout) + Store 180(@entryPointOutput) 181 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 1ec6bdec..d11d16f5 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -301,8 +304,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -321,13 +327,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 147 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -353,10 +359,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "g_tTex1df4a" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -370,11 +377,11 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(g_tTex1df4a) DescriptorSet 0 - Decorate 137(g_tTex1df4a) Binding 1 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -458,16 +465,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) -137(g_tTex1df4a): 11(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 21(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 36(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 21(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 36(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -529,6 +538,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 22 Store 134 130 - 135:127(PS_OUTPUT) Load 129(psout) - ReturnValue 135 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index e976a419..76315296 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -100,8 +100,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -217,8 +220,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -231,13 +237,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 104 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -257,7 +263,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -268,8 +275,8 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -334,7 +341,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) -103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -378,6 +387,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 39 Store 100 96 - 101:93(PS_OUTPUT) Load 95(psout) - ReturnValue 101 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 863a3bad..e735d34d 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 132 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -348,7 +354,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 131 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -362,8 +369,8 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 131(g_tTex1df4a) Binding 1 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -441,7 +448,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 26(int) Constant 1 127: TypePointer Function 6(float) -131(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -503,6 +512,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 129:120(PS_OUTPUT) Load 122(psout) - ReturnValue 129 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 176e58ab..d61eda9d 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -169,8 +169,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -361,8 +364,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -381,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 158 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 154 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -419,7 +425,8 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 155 "g_tTex1df4a" + Name 154 "@entryPointOutput" + Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -436,8 +443,8 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 155(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1df4a) Binding 1 + Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -524,7 +531,9 @@ gl_FragCoord origin is upper left 148: 7(fvec4) ConstantComposite 147 147 147 147 150: 23(int) Constant 1 151: TypePointer Function 6(float) -155(g_tTex1df4a): 11(ptr) Variable UniformConstant + 153: TypePointer Output 143(PS_OUTPUT) +154(@entryPointOutput): 153(ptr) Variable Output +157(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -604,6 +613,7 @@ gl_FragCoord origin is upper left Store 149 148 152: 151(ptr) AccessChain 145(psout) 150 Store 152 147 - 153:143(PS_OUTPUT) Load 145(psout) - ReturnValue 153 + 155:143(PS_OUTPUT) Load 145(psout) + Store 154(@entryPointOutput) 155 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 4dbaf2b0..b2e77efc 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -337,8 +340,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -357,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 147 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -389,10 +395,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "g_tTex1df4a" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -406,11 +413,11 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(g_tTex1df4a) DescriptorSet 0 - Decorate 137(g_tTex1df4a) Binding 1 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -494,16 +501,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) -137(g_tTex1df4a): 11(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 22(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 37(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 22(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 37(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -565,6 +574,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 23 Store 134 130 - 135:127(PS_OUTPUT) Load 129(psout) - ReturnValue 135 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index c4691ddf..52263c49 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -241,8 +244,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -255,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 104 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -281,7 +287,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -292,8 +299,8 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -358,7 +365,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) -103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -402,6 +411,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 40 Store 100 96 - 101:93(PS_OUTPUT) Load 95(psout) - ReturnValue 101 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 6f11d65e..a61aa29b 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -148,8 +148,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -327,8 +330,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -355,14 +361,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 177 +// Id's are bound by 179 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -388,18 +394,19 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 143 "g_tTex1df4" - Name 146 "g_tTex1di4" - Name 149 "g_tTex1du4" - Name 152 "g_tTex2df4" - Name 155 "g_tTex2di4" - Name 158 "g_tTex2du4" - Name 161 "g_tTex3df4" - Name 164 "g_tTex3di4" - Name 167 "g_tTex3du4" - Name 170 "g_tTexcdf4" - Name 173 "g_tTexcdi4" - Name 176 "g_tTexcdu4" + Name 140 "@entryPointOutput" + Name 145 "g_tTex1df4" + Name 148 "g_tTex1di4" + Name 151 "g_tTex1du4" + Name 154 "g_tTex2df4" + Name 157 "g_tTex2di4" + Name 160 "g_tTex2du4" + Name 163 "g_tTex3df4" + Name 166 "g_tTex3di4" + Name 169 "g_tTex3du4" + Name 172 "g_tTexcdf4" + Name 175 "g_tTexcdi4" + Name 178 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -412,19 +419,19 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 143(g_tTex1df4) DescriptorSet 0 - Decorate 143(g_tTex1df4) Binding 0 - Decorate 146(g_tTex1di4) DescriptorSet 0 - Decorate 149(g_tTex1du4) DescriptorSet 0 - Decorate 152(g_tTex2df4) DescriptorSet 0 - Decorate 155(g_tTex2di4) DescriptorSet 0 - Decorate 158(g_tTex2du4) DescriptorSet 0 - Decorate 161(g_tTex3df4) DescriptorSet 0 - Decorate 164(g_tTex3di4) DescriptorSet 0 - Decorate 167(g_tTex3du4) DescriptorSet 0 - Decorate 170(g_tTexcdf4) DescriptorSet 0 - Decorate 173(g_tTexcdi4) DescriptorSet 0 - Decorate 176(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTex1df4) DescriptorSet 0 + Decorate 145(g_tTex1df4) Binding 0 + Decorate 148(g_tTex1di4) DescriptorSet 0 + Decorate 151(g_tTex1du4) DescriptorSet 0 + Decorate 154(g_tTex2df4) DescriptorSet 0 + Decorate 157(g_tTex2di4) DescriptorSet 0 + Decorate 160(g_tTex2du4) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 166(g_tTex3di4) DescriptorSet 0 + Decorate 169(g_tTex3du4) DescriptorSet 0 + Decorate 172(g_tTexcdf4) DescriptorSet 0 + Decorate 175(g_tTexcdi4) DescriptorSet 0 + Decorate 178(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -497,42 +504,44 @@ gl_FragCoord origin is upper left 134: 102(fvec4) ConstantComposite 133 133 133 133 135: TypePointer Function 102(fvec4) 137: 29(int) Constant 1 - 141: TypeImage 6(float) 1D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex1df4): 142(ptr) Variable UniformConstant - 144: TypeImage 29(int) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1di4): 145(ptr) Variable UniformConstant - 147: TypeImage 42(int) 1D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex1du4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 2D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex2df4): 151(ptr) Variable UniformConstant - 153: TypeImage 29(int) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2di4): 154(ptr) Variable UniformConstant - 156: TypeImage 42(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex2du4): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 3D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex3df4): 160(ptr) Variable UniformConstant - 162: TypeImage 29(int) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3di4): 163(ptr) Variable UniformConstant - 165: TypeImage 42(int) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3du4): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTexcdf4): 169(ptr) Variable UniformConstant - 171: TypeImage 29(int) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdi4): 172(ptr) Variable UniformConstant - 174: TypeImage 42(int) Cube sampled format:Unknown - 175: TypePointer UniformConstant 174 - 176(g_tTexcdu4): 175(ptr) Variable UniformConstant + 139: TypePointer Output 129(PS_OUTPUT) +140(@entryPointOutput): 139(ptr) Variable Output + 143: TypeImage 6(float) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1df4): 144(ptr) Variable UniformConstant + 146: TypeImage 29(int) 1D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex1di4): 147(ptr) Variable UniformConstant + 149: TypeImage 42(int) 1D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex1du4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 2D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex2df4): 153(ptr) Variable UniformConstant + 155: TypeImage 29(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex2di4): 156(ptr) Variable UniformConstant + 158: TypeImage 42(int) 2D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex2du4): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) 3D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 164: TypeImage 29(int) 3D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex3di4): 165(ptr) Variable UniformConstant + 167: TypeImage 42(int) 3D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex3du4): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTexcdf4): 171(ptr) Variable UniformConstant + 173: TypeImage 29(int) Cube sampled format:Unknown + 174: TypePointer UniformConstant 173 + 175(g_tTexcdi4): 174(ptr) Variable UniformConstant + 176: TypeImage 42(int) Cube sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTexcdu4): 177(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -609,6 +618,7 @@ gl_FragCoord origin is upper left Store 136 134 138: 7(ptr) AccessChain 131(psout) 137 Store 138 133 - 139:129(PS_OUTPUT) Load 131(psout) - ReturnValue 139 + 141:129(PS_OUTPUT) Load 131(psout) + Store 140(@entryPointOutput) 141 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 7824cc66..93fe73cf 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -309,8 +312,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -337,14 +343,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 175 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 138 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -370,18 +376,19 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 141 "g_tTex3df4" - Name 144 "g_tTex3di4" - Name 147 "g_tTex3du4" - Name 150 "g_tTex1df4a" - Name 153 "g_tTex1di4a" - Name 156 "g_tTex1du4a" - Name 159 "g_tTex2df4a" - Name 162 "g_tTex2di4a" - Name 165 "g_tTex2du4a" - Name 168 "g_tTexcdf4a" - Name 171 "g_tTexcdi4a" - Name 174 "g_tTexcdu4a" + Name 138 "@entryPointOutput" + Name 143 "g_tTex3df4" + Name 146 "g_tTex3di4" + Name 149 "g_tTex3du4" + Name 152 "g_tTex1df4a" + Name 155 "g_tTex1di4a" + Name 158 "g_tTex1du4a" + Name 161 "g_tTex2df4a" + Name 164 "g_tTex2di4a" + Name 167 "g_tTex2du4a" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -395,18 +402,18 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(g_tTex3df4) DescriptorSet 0 - Decorate 144(g_tTex3di4) DescriptorSet 0 - Decorate 147(g_tTex3du4) DescriptorSet 0 - Decorate 150(g_tTex1df4a) DescriptorSet 0 - Decorate 153(g_tTex1di4a) DescriptorSet 0 - Decorate 156(g_tTex1du4a) DescriptorSet 0 - Decorate 159(g_tTex2df4a) DescriptorSet 0 - Decorate 162(g_tTex2di4a) DescriptorSet 0 - Decorate 165(g_tTex2du4a) DescriptorSet 0 - Decorate 168(g_tTexcdf4a) DescriptorSet 0 - Decorate 171(g_tTexcdi4a) DescriptorSet 0 - Decorate 174(g_tTexcdu4a) DescriptorSet 0 + Decorate 143(g_tTex3df4) DescriptorSet 0 + Decorate 146(g_tTex3di4) DescriptorSet 0 + Decorate 149(g_tTex3du4) DescriptorSet 0 + Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1di4a) DescriptorSet 0 + Decorate 158(g_tTex1du4a) DescriptorSet 0 + Decorate 161(g_tTex2df4a) DescriptorSet 0 + Decorate 164(g_tTex2di4a) DescriptorSet 0 + Decorate 167(g_tTex2du4a) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -477,42 +484,44 @@ gl_FragCoord origin is upper left 132: 126(fvec4) ConstantComposite 131 131 131 131 133: TypePointer Function 126(fvec4) 135: 25(int) Constant 1 - 139: TypeImage 6(float) 3D sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTex3df4): 140(ptr) Variable UniformConstant - 142: TypeImage 25(int) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3di4): 143(ptr) Variable UniformConstant - 145: TypeImage 37(int) 3D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex3du4): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1df4a): 149(ptr) Variable UniformConstant - 151: TypeImage 25(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1di4a): 152(ptr) Variable UniformConstant - 154: TypeImage 37(int) 1D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex1du4a): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2df4a): 158(ptr) Variable UniformConstant - 160: TypeImage 25(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2di4a): 161(ptr) Variable UniformConstant - 163: TypeImage 37(int) 2D array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTex2du4a): 164(ptr) Variable UniformConstant - 166: TypeImage 6(float) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdf4a): 167(ptr) Variable UniformConstant - 169: TypeImage 25(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdi4a): 170(ptr) Variable UniformConstant - 172: TypeImage 37(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdu4a): 173(ptr) Variable UniformConstant + 137: TypePointer Output 127(PS_OUTPUT) +138(@entryPointOutput): 137(ptr) Variable Output + 141: TypeImage 6(float) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3df4): 142(ptr) Variable UniformConstant + 144: TypeImage 25(int) 3D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex3di4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) 3D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex3du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1df4a): 151(ptr) Variable UniformConstant + 153: TypeImage 25(int) 1D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex1di4a): 154(ptr) Variable UniformConstant + 156: TypeImage 37(int) 1D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex1du4a): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2df4a): 160(ptr) Variable UniformConstant + 162: TypeImage 25(int) 2D array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTex2di4a): 163(ptr) Variable UniformConstant + 165: TypeImage 37(int) 2D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex2du4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 25(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 37(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -589,6 +598,7 @@ gl_FragCoord origin is upper left Store 134 132 136: 7(ptr) AccessChain 129(psout) 135 Store 136 131 - 137:127(PS_OUTPUT) Load 129(psout) - ReturnValue 137 + 139:127(PS_OUTPUT) Load 129(psout) + Store 138(@entryPointOutput) 139 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 346279bb..71eb5206 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -255,8 +258,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -283,14 +289,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 151 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -310,21 +316,22 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 106 "g_tTex3df4" - Name 109 "g_tTex3di4" - Name 112 "g_tTex3du4" - Name 115 "g_tTexcdf4" - Name 118 "g_tTexcdi4" - Name 121 "g_tTexcdu4" - Name 124 "g_tTex1df4a" - Name 127 "g_tTex1di4a" - Name 130 "g_tTex1du4a" - Name 133 "g_tTex2df4a" - Name 136 "g_tTex2di4a" - Name 139 "g_tTex2du4a" - Name 142 "g_tTexcdf4a" - Name 145 "g_tTexcdi4a" - Name 148 "g_tTexcdu4a" + Name 103 "@entryPointOutput" + Name 108 "g_tTex3df4" + Name 111 "g_tTex3di4" + Name 114 "g_tTex3du4" + Name 117 "g_tTexcdf4" + Name 120 "g_tTexcdi4" + Name 123 "g_tTexcdu4" + Name 126 "g_tTex1df4a" + Name 129 "g_tTex1di4a" + Name 132 "g_tTex1du4a" + Name 135 "g_tTex2df4a" + Name 138 "g_tTex2di4a" + Name 141 "g_tTex2du4a" + Name 144 "g_tTexcdf4a" + Name 147 "g_tTexcdi4a" + Name 150 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -335,21 +342,21 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 106(g_tTex3df4) DescriptorSet 0 - Decorate 109(g_tTex3di4) DescriptorSet 0 - Decorate 112(g_tTex3du4) DescriptorSet 0 - Decorate 115(g_tTexcdf4) DescriptorSet 0 - Decorate 118(g_tTexcdi4) DescriptorSet 0 - Decorate 121(g_tTexcdu4) DescriptorSet 0 - Decorate 124(g_tTex1df4a) DescriptorSet 0 - Decorate 127(g_tTex1di4a) DescriptorSet 0 - Decorate 130(g_tTex1du4a) DescriptorSet 0 - Decorate 133(g_tTex2df4a) DescriptorSet 0 - Decorate 136(g_tTex2di4a) DescriptorSet 0 - Decorate 139(g_tTex2du4a) DescriptorSet 0 - Decorate 142(g_tTexcdf4a) DescriptorSet 0 - Decorate 145(g_tTexcdi4a) DescriptorSet 0 - Decorate 148(g_tTexcdu4a) DescriptorSet 0 + Decorate 108(g_tTex3df4) DescriptorSet 0 + Decorate 111(g_tTex3di4) DescriptorSet 0 + Decorate 114(g_tTex3du4) DescriptorSet 0 + Decorate 117(g_tTexcdf4) DescriptorSet 0 + Decorate 120(g_tTexcdi4) DescriptorSet 0 + Decorate 123(g_tTexcdu4) DescriptorSet 0 + Decorate 126(g_tTex1df4a) DescriptorSet 0 + Decorate 129(g_tTex1di4a) DescriptorSet 0 + Decorate 132(g_tTex1du4a) DescriptorSet 0 + Decorate 135(g_tTex2df4a) DescriptorSet 0 + Decorate 138(g_tTex2di4a) DescriptorSet 0 + Decorate 141(g_tTex2du4a) DescriptorSet 0 + Decorate 144(g_tTexcdf4a) DescriptorSet 0 + Decorate 147(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -406,51 +413,53 @@ gl_FragCoord origin is upper left 97: 91(fvec4) ConstantComposite 96 96 96 96 98: TypePointer Function 91(fvec4) 100: 22(int) Constant 1 - 104: TypeImage 6(float) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3df4): 105(ptr) Variable UniformConstant - 107: TypeImage 22(int) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3di4): 108(ptr) Variable UniformConstant - 110: TypeImage 38(int) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3du4): 111(ptr) Variable UniformConstant - 113: TypeImage 6(float) Cube sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTexcdf4): 114(ptr) Variable UniformConstant - 116: TypeImage 22(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdi4): 117(ptr) Variable UniformConstant - 119: TypeImage 38(int) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdu4): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 1D array sampled format:Unknown - 123: TypePointer UniformConstant 122 -124(g_tTex1df4a): 123(ptr) Variable UniformConstant - 125: TypeImage 22(int) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1di4a): 126(ptr) Variable UniformConstant - 128: TypeImage 38(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1du4a): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 2D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex2df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 22(int) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 38(int) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTexcdf4a): 141(ptr) Variable UniformConstant - 143: TypeImage 22(int) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdi4a): 144(ptr) Variable UniformConstant - 146: TypeImage 38(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdu4a): 147(ptr) Variable UniformConstant + 102: TypePointer Output 92(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output + 106: TypeImage 6(float) 3D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex3df4): 107(ptr) Variable UniformConstant + 109: TypeImage 22(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3di4): 110(ptr) Variable UniformConstant + 112: TypeImage 38(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdf4): 116(ptr) Variable UniformConstant + 118: TypeImage 22(int) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdi4): 119(ptr) Variable UniformConstant + 121: TypeImage 38(int) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdu4): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTex1df4a): 125(ptr) Variable UniformConstant + 127: TypeImage 22(int) 1D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex1di4a): 128(ptr) Variable UniformConstant + 130: TypeImage 38(int) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1du4a): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 2D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex2df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 22(int) 2D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex2di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 38(int) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdf4a): 143(ptr) Variable UniformConstant + 145: TypeImage 22(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdi4a): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -503,6 +512,7 @@ gl_FragCoord origin is upper left Store 99 97 101: 7(ptr) AccessChain 94(psout) 100 Store 101 96 - 102:92(PS_OUTPUT) Load 94(psout) - ReturnValue 102 + 104:92(PS_OUTPUT) Load 94(psout) + Store 103(@entryPointOutput) 104 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 643cef46..c2cdb4d6 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -118,8 +118,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -267,8 +270,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -295,14 +301,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 157 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 109 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -322,21 +328,22 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 112 "g_tTex1df4" - Name 115 "g_tTex1di4" - Name 118 "g_tTex1du4" - Name 121 "g_tTex2df4" - Name 124 "g_tTex2di4" - Name 127 "g_tTex2du4" - Name 130 "g_tTex3df4" - Name 133 "g_tTex3di4" - Name 136 "g_tTex3du4" - Name 139 "g_tTexcdf4" - Name 142 "g_tTexcdi4" - Name 145 "g_tTexcdu4" - Name 148 "g_tTexcdf4a" - Name 151 "g_tTexcdi4a" - Name 154 "g_tTexcdu4a" + Name 109 "@entryPointOutput" + Name 114 "g_tTex1df4" + Name 117 "g_tTex1di4" + Name 120 "g_tTex1du4" + Name 123 "g_tTex2df4" + Name 126 "g_tTex2di4" + Name 129 "g_tTex2du4" + Name 132 "g_tTex3df4" + Name 135 "g_tTex3di4" + Name 138 "g_tTex3du4" + Name 141 "g_tTexcdf4" + Name 144 "g_tTexcdi4" + Name 147 "g_tTexcdu4" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -346,22 +353,22 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 112(g_tTex1df4) DescriptorSet 0 - Decorate 112(g_tTex1df4) Binding 0 - Decorate 115(g_tTex1di4) DescriptorSet 0 - Decorate 118(g_tTex1du4) DescriptorSet 0 - Decorate 121(g_tTex2df4) DescriptorSet 0 - Decorate 124(g_tTex2di4) DescriptorSet 0 - Decorate 127(g_tTex2du4) DescriptorSet 0 - Decorate 130(g_tTex3df4) DescriptorSet 0 - Decorate 133(g_tTex3di4) DescriptorSet 0 - Decorate 136(g_tTex3du4) DescriptorSet 0 - Decorate 139(g_tTexcdf4) DescriptorSet 0 - Decorate 142(g_tTexcdi4) DescriptorSet 0 - Decorate 145(g_tTexcdu4) DescriptorSet 0 - Decorate 148(g_tTexcdf4a) DescriptorSet 0 - Decorate 151(g_tTexcdi4a) DescriptorSet 0 - Decorate 154(g_tTexcdu4a) DescriptorSet 0 + Decorate 114(g_tTex1df4) DescriptorSet 0 + Decorate 114(g_tTex1df4) Binding 0 + Decorate 117(g_tTex1di4) DescriptorSet 0 + Decorate 120(g_tTex1du4) DescriptorSet 0 + Decorate 123(g_tTex2df4) DescriptorSet 0 + Decorate 126(g_tTex2di4) DescriptorSet 0 + Decorate 129(g_tTex2du4) DescriptorSet 0 + Decorate 132(g_tTex3df4) DescriptorSet 0 + Decorate 135(g_tTex3di4) DescriptorSet 0 + Decorate 138(g_tTex3du4) DescriptorSet 0 + Decorate 141(g_tTexcdf4) DescriptorSet 0 + Decorate 144(g_tTexcdi4) DescriptorSet 0 + Decorate 147(g_tTexcdu4) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,51 +428,53 @@ gl_FragCoord origin is upper left 103: 97(fvec4) ConstantComposite 102 102 102 102 104: TypePointer Function 97(fvec4) 106: 26(int) Constant 1 - 110: TypeImage 6(float) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1df4): 111(ptr) Variable UniformConstant - 113: TypeImage 26(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1di4): 114(ptr) Variable UniformConstant - 116: TypeImage 43(int) 1D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex1du4): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) 2D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex2df4): 120(ptr) Variable UniformConstant - 122: TypeImage 26(int) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2di4): 123(ptr) Variable UniformConstant - 125: TypeImage 43(int) 2D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex2du4): 126(ptr) Variable UniformConstant - 128: TypeImage 6(float) 3D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex3df4): 129(ptr) Variable UniformConstant - 131: TypeImage 26(int) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3di4): 132(ptr) Variable UniformConstant - 134: TypeImage 43(int) 3D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex3du4): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdf4): 138(ptr) Variable UniformConstant - 140: TypeImage 26(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdi4): 141(ptr) Variable UniformConstant - 143: TypeImage 43(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdu4): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdf4a): 147(ptr) Variable UniformConstant - 149: TypeImage 26(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdi4a): 150(ptr) Variable UniformConstant - 152: TypeImage 43(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdu4a): 153(ptr) Variable UniformConstant + 108: TypePointer Output 98(PS_OUTPUT) +109(@entryPointOutput): 108(ptr) Variable Output + 112: TypeImage 6(float) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1df4): 113(ptr) Variable UniformConstant + 115: TypeImage 26(int) 1D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex1di4): 116(ptr) Variable UniformConstant + 118: TypeImage 43(int) 1D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex1du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2df4): 122(ptr) Variable UniformConstant + 124: TypeImage 26(int) 2D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex2di4): 125(ptr) Variable UniformConstant + 127: TypeImage 43(int) 2D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex2du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3df4): 131(ptr) Variable UniformConstant + 133: TypeImage 26(int) 3D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex3di4): 134(ptr) Variable UniformConstant + 136: TypeImage 43(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3du4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdf4): 140(ptr) Variable UniformConstant + 142: TypeImage 26(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdi4): 143(ptr) Variable UniformConstant + 145: TypeImage 43(int) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdu4): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 26(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 43(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -521,6 +530,7 @@ gl_FragCoord origin is upper left Store 105 103 107: 7(ptr) AccessChain 100(psout) 106 Store 107 102 - 108:98(PS_OUTPUT) Load 100(psout) - ReturnValue 108 + 110:98(PS_OUTPUT) Load 100(psout) + Store 109(@entryPointOutput) 110 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index a17e9743..5a7b7409 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -166,8 +166,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -363,8 +366,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -391,14 +397,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 180 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -424,18 +430,19 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 144 "g_tTex1df4" - Name 147 "g_tTex1di4" - Name 150 "g_tTex1du4" - Name 153 "g_tTex2df4" - Name 156 "g_tTex2di4" - Name 159 "g_tTex2du4" - Name 162 "g_tTex3df4" - Name 165 "g_tTex3di4" - Name 168 "g_tTex3du4" - Name 171 "g_tTexcdf4" - Name 174 "g_tTexcdi4" - Name 177 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 146 "g_tTex1df4" + Name 149 "g_tTex1di4" + Name 152 "g_tTex1du4" + Name 155 "g_tTex2df4" + Name 158 "g_tTex2di4" + Name 161 "g_tTex2du4" + Name 164 "g_tTex3df4" + Name 167 "g_tTex3di4" + Name 170 "g_tTex3du4" + Name 173 "g_tTexcdf4" + Name 176 "g_tTexcdi4" + Name 179 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -448,19 +455,19 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4) DescriptorSet 0 - Decorate 144(g_tTex1df4) Binding 0 - Decorate 147(g_tTex1di4) DescriptorSet 0 - Decorate 150(g_tTex1du4) DescriptorSet 0 - Decorate 153(g_tTex2df4) DescriptorSet 0 - Decorate 156(g_tTex2di4) DescriptorSet 0 - Decorate 159(g_tTex2du4) DescriptorSet 0 - Decorate 162(g_tTex3df4) DescriptorSet 0 - Decorate 165(g_tTex3di4) DescriptorSet 0 - Decorate 168(g_tTex3du4) DescriptorSet 0 - Decorate 171(g_tTexcdf4) DescriptorSet 0 - Decorate 174(g_tTexcdi4) DescriptorSet 0 - Decorate 177(g_tTexcdu4) DescriptorSet 0 + Decorate 146(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1df4) Binding 0 + Decorate 149(g_tTex1di4) DescriptorSet 0 + Decorate 152(g_tTex1du4) DescriptorSet 0 + Decorate 155(g_tTex2df4) DescriptorSet 0 + Decorate 158(g_tTex2di4) DescriptorSet 0 + Decorate 161(g_tTex2du4) DescriptorSet 0 + Decorate 164(g_tTex3df4) DescriptorSet 0 + Decorate 167(g_tTex3di4) DescriptorSet 0 + Decorate 170(g_tTex3du4) DescriptorSet 0 + Decorate 173(g_tTexcdf4) DescriptorSet 0 + Decorate 176(g_tTexcdi4) DescriptorSet 0 + Decorate 179(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -534,42 +541,44 @@ gl_FragCoord origin is upper left 135: 103(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 103(fvec4) 138: 30(int) Constant 1 - 142: TypeImage 6(float) 1D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex1df4): 143(ptr) Variable UniformConstant - 145: TypeImage 30(int) 1D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex1di4): 146(ptr) Variable UniformConstant - 148: TypeImage 43(int) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1du4): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) 2D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex2df4): 152(ptr) Variable UniformConstant - 154: TypeImage 30(int) 2D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex2di4): 155(ptr) Variable UniformConstant - 157: TypeImage 43(int) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2du4): 158(ptr) Variable UniformConstant - 160: TypeImage 6(float) 3D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex3df4): 161(ptr) Variable UniformConstant - 163: TypeImage 30(int) 3D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex3di4): 164(ptr) Variable UniformConstant - 166: TypeImage 43(int) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3du4): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTexcdf4): 170(ptr) Variable UniformConstant - 172: TypeImage 30(int) Cube sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTexcdi4): 173(ptr) Variable UniformConstant - 175: TypeImage 43(int) Cube sampled format:Unknown - 176: TypePointer UniformConstant 175 - 177(g_tTexcdu4): 176(ptr) Variable UniformConstant + 140: TypePointer Output 130(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144: TypeImage 6(float) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1df4): 145(ptr) Variable UniformConstant + 147: TypeImage 30(int) 1D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex1di4): 148(ptr) Variable UniformConstant + 150: TypeImage 43(int) 1D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex1du4): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2df4): 154(ptr) Variable UniformConstant + 156: TypeImage 30(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex2di4): 157(ptr) Variable UniformConstant + 159: TypeImage 43(int) 2D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex2du4): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3df4): 163(ptr) Variable UniformConstant + 165: TypeImage 30(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3di4): 166(ptr) Variable UniformConstant + 168: TypeImage 43(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3du4): 169(ptr) Variable UniformConstant + 171: TypeImage 6(float) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdf4): 172(ptr) Variable UniformConstant + 174: TypeImage 30(int) Cube sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTexcdi4): 175(ptr) Variable UniformConstant + 177: TypeImage 43(int) Cube sampled format:Unknown + 178: TypePointer UniformConstant 177 + 179(g_tTexcdu4): 178(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -646,6 +655,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 132(psout) 138 Store 139 134 - 140:130(PS_OUTPUT) Load 132(psout) - ReturnValue 140 + 142:130(PS_OUTPUT) Load 132(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 4d9f8369..ba84224d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -345,8 +348,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -373,14 +379,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 176 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 139 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -406,18 +412,19 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 142 "g_tTex3df4" - Name 145 "g_tTex3di4" - Name 148 "g_tTex3du4" - Name 151 "g_tTex1df4a" - Name 154 "g_tTex1di4a" - Name 157 "g_tTex1du4a" - Name 160 "g_tTex2df4a" - Name 163 "g_tTex2di4a" - Name 166 "g_tTex2du4a" - Name 169 "g_tTexcdf4a" - Name 172 "g_tTexcdi4a" - Name 175 "g_tTexcdu4a" + Name 139 "@entryPointOutput" + Name 144 "g_tTex3df4" + Name 147 "g_tTex3di4" + Name 150 "g_tTex3du4" + Name 153 "g_tTex1df4a" + Name 156 "g_tTex1di4a" + Name 159 "g_tTex1du4a" + Name 162 "g_tTex2df4a" + Name 165 "g_tTex2di4a" + Name 168 "g_tTex2du4a" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -431,18 +438,18 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex3df4) DescriptorSet 0 - Decorate 145(g_tTex3di4) DescriptorSet 0 - Decorate 148(g_tTex3du4) DescriptorSet 0 - Decorate 151(g_tTex1df4a) DescriptorSet 0 - Decorate 154(g_tTex1di4a) DescriptorSet 0 - Decorate 157(g_tTex1du4a) DescriptorSet 0 - Decorate 160(g_tTex2df4a) DescriptorSet 0 - Decorate 163(g_tTex2di4a) DescriptorSet 0 - Decorate 166(g_tTex2du4a) DescriptorSet 0 - Decorate 169(g_tTexcdf4a) DescriptorSet 0 - Decorate 172(g_tTexcdi4a) DescriptorSet 0 - Decorate 175(g_tTexcdu4a) DescriptorSet 0 + Decorate 144(g_tTex3df4) DescriptorSet 0 + Decorate 147(g_tTex3di4) DescriptorSet 0 + Decorate 150(g_tTex3du4) DescriptorSet 0 + Decorate 153(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1di4a) DescriptorSet 0 + Decorate 159(g_tTex1du4a) DescriptorSet 0 + Decorate 162(g_tTex2df4a) DescriptorSet 0 + Decorate 165(g_tTex2di4a) DescriptorSet 0 + Decorate 168(g_tTex2du4a) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -514,42 +521,44 @@ gl_FragCoord origin is upper left 133: 127(fvec4) ConstantComposite 132 132 132 132 134: TypePointer Function 127(fvec4) 136: 26(int) Constant 1 - 140: TypeImage 6(float) 3D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex3df4): 141(ptr) Variable UniformConstant - 143: TypeImage 26(int) 3D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex3di4): 144(ptr) Variable UniformConstant - 146: TypeImage 38(int) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3du4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) 1D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex1df4a): 150(ptr) Variable UniformConstant - 152: TypeImage 26(int) 1D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex1di4a): 153(ptr) Variable UniformConstant - 155: TypeImage 38(int) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1du4a): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) 2D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex2df4a): 159(ptr) Variable UniformConstant - 161: TypeImage 26(int) 2D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex2di4a): 162(ptr) Variable UniformConstant - 164: TypeImage 38(int) 2D array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTex2du4a): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdf4a): 168(ptr) Variable UniformConstant - 170: TypeImage 26(int) Cube array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTexcdi4a): 171(ptr) Variable UniformConstant - 173: TypeImage 38(int) Cube array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTexcdu4a): 174(ptr) Variable UniformConstant + 138: TypePointer Output 128(PS_OUTPUT) +139(@entryPointOutput): 138(ptr) Variable Output + 142: TypeImage 6(float) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3df4): 143(ptr) Variable UniformConstant + 145: TypeImage 26(int) 3D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex3di4): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) 3D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex3du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1df4a): 152(ptr) Variable UniformConstant + 154: TypeImage 26(int) 1D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex1di4a): 155(ptr) Variable UniformConstant + 157: TypeImage 38(int) 1D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex1du4a): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2df4a): 161(ptr) Variable UniformConstant + 163: TypeImage 26(int) 2D array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTex2di4a): 164(ptr) Variable UniformConstant + 166: TypeImage 38(int) 2D array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTex2du4a): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 26(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 38(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -626,6 +635,7 @@ gl_FragCoord origin is upper left Store 135 133 137: 7(ptr) AccessChain 130(psout) 136 Store 137 132 - 138:128(PS_OUTPUT) Load 130(psout) - ReturnValue 138 + 140:128(PS_OUTPUT) Load 130(psout) + Store 139(@entryPointOutput) 140 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index f4072068..9bed7964 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -124,8 +124,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -279,8 +282,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -307,14 +313,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -334,21 +340,22 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 107 "g_tTex3df4" - Name 110 "g_tTex3di4" - Name 113 "g_tTex3du4" - Name 116 "g_tTexcdf4" - Name 119 "g_tTexcdi4" - Name 122 "g_tTexcdu4" - Name 125 "g_tTex1df4a" - Name 128 "g_tTex1di4a" - Name 131 "g_tTex1du4a" - Name 134 "g_tTex2df4a" - Name 137 "g_tTex2di4a" - Name 140 "g_tTex2du4a" - Name 143 "g_tTexcdf4a" - Name 146 "g_tTexcdi4a" - Name 149 "g_tTexcdu4a" + Name 104 "@entryPointOutput" + Name 109 "g_tTex3df4" + Name 112 "g_tTex3di4" + Name 115 "g_tTex3du4" + Name 118 "g_tTexcdf4" + Name 121 "g_tTexcdi4" + Name 124 "g_tTexcdu4" + Name 127 "g_tTex1df4a" + Name 130 "g_tTex1di4a" + Name 133 "g_tTex1du4a" + Name 136 "g_tTex2df4a" + Name 139 "g_tTex2di4a" + Name 142 "g_tTex2du4a" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -359,21 +366,21 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 107(g_tTex3df4) DescriptorSet 0 - Decorate 110(g_tTex3di4) DescriptorSet 0 - Decorate 113(g_tTex3du4) DescriptorSet 0 - Decorate 116(g_tTexcdf4) DescriptorSet 0 - Decorate 119(g_tTexcdi4) DescriptorSet 0 - Decorate 122(g_tTexcdu4) DescriptorSet 0 - Decorate 125(g_tTex1df4a) DescriptorSet 0 - Decorate 128(g_tTex1di4a) DescriptorSet 0 - Decorate 131(g_tTex1du4a) DescriptorSet 0 - Decorate 134(g_tTex2df4a) DescriptorSet 0 - Decorate 137(g_tTex2di4a) DescriptorSet 0 - Decorate 140(g_tTex2du4a) DescriptorSet 0 - Decorate 143(g_tTexcdf4a) DescriptorSet 0 - Decorate 146(g_tTexcdi4a) DescriptorSet 0 - Decorate 149(g_tTexcdu4a) DescriptorSet 0 + Decorate 109(g_tTex3df4) DescriptorSet 0 + Decorate 112(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 118(g_tTexcdf4) DescriptorSet 0 + Decorate 121(g_tTexcdi4) DescriptorSet 0 + Decorate 124(g_tTexcdu4) DescriptorSet 0 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 130(g_tTex1di4a) DescriptorSet 0 + Decorate 133(g_tTex1du4a) DescriptorSet 0 + Decorate 136(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 142(g_tTex2du4a) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -431,51 +438,53 @@ gl_FragCoord origin is upper left 98: 92(fvec4) ConstantComposite 97 97 97 97 99: TypePointer Function 92(fvec4) 101: 23(int) Constant 1 - 105: TypeImage 6(float) 3D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex3df4): 106(ptr) Variable UniformConstant - 108: TypeImage 23(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3di4): 109(ptr) Variable UniformConstant - 111: TypeImage 39(int) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) Cube sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTexcdf4): 115(ptr) Variable UniformConstant - 117: TypeImage 23(int) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdi4): 118(ptr) Variable UniformConstant - 120: TypeImage 39(int) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdu4): 121(ptr) Variable UniformConstant - 123: TypeImage 6(float) 1D array sampled format:Unknown - 124: TypePointer UniformConstant 123 -125(g_tTex1df4a): 124(ptr) Variable UniformConstant - 126: TypeImage 23(int) 1D array sampled format:Unknown - 127: TypePointer UniformConstant 126 -128(g_tTex1di4a): 127(ptr) Variable UniformConstant - 129: TypeImage 39(int) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1du4a): 130(ptr) Variable UniformConstant - 132: TypeImage 6(float) 2D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex2df4a): 133(ptr) Variable UniformConstant - 135: TypeImage 23(int) 2D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex2di4a): 136(ptr) Variable UniformConstant - 138: TypeImage 39(int) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2du4a): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTexcdf4a): 142(ptr) Variable UniformConstant - 144: TypeImage 23(int) Cube array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTexcdi4a): 145(ptr) Variable UniformConstant - 147: TypeImage 39(int) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdu4a): 148(ptr) Variable UniformConstant + 103: TypePointer Output 93(PS_OUTPUT) +104(@entryPointOutput): 103(ptr) Variable Output + 107: TypeImage 6(float) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3df4): 108(ptr) Variable UniformConstant + 110: TypeImage 23(int) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3di4): 111(ptr) Variable UniformConstant + 113: TypeImage 39(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdf4): 117(ptr) Variable UniformConstant + 119: TypeImage 23(int) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdi4): 120(ptr) Variable UniformConstant + 122: TypeImage 39(int) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdu4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1df4a): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1di4a): 129(ptr) Variable UniformConstant + 131: TypeImage 39(int) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1du4a): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2df4a): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 140: TypeImage 39(int) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2du4a): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 39(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -528,6 +537,7 @@ gl_FragCoord origin is upper left Store 100 98 102: 7(ptr) AccessChain 95(psout) 101 Store 102 97 - 103:93(PS_OUTPUT) Load 95(psout) - ReturnValue 103 + 105:93(PS_OUTPUT) Load 95(psout) + Store 104(@entryPointOutput) 105 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 81048321..b2dcaecc 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -130,8 +130,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -291,8 +294,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -319,14 +325,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 158 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 110 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -346,21 +352,22 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 113 "g_tTex1df4" - Name 116 "g_tTex1di4" - Name 119 "g_tTex1du4" - Name 122 "g_tTex2df4" - Name 125 "g_tTex2di4" - Name 128 "g_tTex2du4" - Name 131 "g_tTex3df4" - Name 134 "g_tTex3di4" - Name 137 "g_tTex3du4" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" - Name 149 "g_tTexcdf4a" - Name 152 "g_tTexcdi4a" - Name 155 "g_tTexcdu4a" + Name 110 "@entryPointOutput" + Name 115 "g_tTex1df4" + Name 118 "g_tTex1di4" + Name 121 "g_tTex1du4" + Name 124 "g_tTex2df4" + Name 127 "g_tTex2di4" + Name 130 "g_tTex2du4" + Name 133 "g_tTex3df4" + Name 136 "g_tTex3di4" + Name 139 "g_tTex3du4" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -370,22 +377,22 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 113(g_tTex1df4) DescriptorSet 0 - Decorate 113(g_tTex1df4) Binding 0 - Decorate 116(g_tTex1di4) DescriptorSet 0 - Decorate 119(g_tTex1du4) DescriptorSet 0 - Decorate 122(g_tTex2df4) DescriptorSet 0 - Decorate 125(g_tTex2di4) DescriptorSet 0 - Decorate 128(g_tTex2du4) DescriptorSet 0 - Decorate 131(g_tTex3df4) DescriptorSet 0 - Decorate 134(g_tTex3di4) DescriptorSet 0 - Decorate 137(g_tTex3du4) DescriptorSet 0 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 - Decorate 149(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdu4a) DescriptorSet 0 + Decorate 115(g_tTex1df4) DescriptorSet 0 + Decorate 115(g_tTex1df4) Binding 0 + Decorate 118(g_tTex1di4) DescriptorSet 0 + Decorate 121(g_tTex1du4) DescriptorSet 0 + Decorate 124(g_tTex2df4) DescriptorSet 0 + Decorate 127(g_tTex2di4) DescriptorSet 0 + Decorate 130(g_tTex2du4) DescriptorSet 0 + Decorate 133(g_tTex3df4) DescriptorSet 0 + Decorate 136(g_tTex3di4) DescriptorSet 0 + Decorate 139(g_tTex3du4) DescriptorSet 0 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -446,51 +453,53 @@ gl_FragCoord origin is upper left 104: 98(fvec4) ConstantComposite 103 103 103 103 105: TypePointer Function 98(fvec4) 107: 27(int) Constant 1 - 111: TypeImage 6(float) 1D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex1df4): 112(ptr) Variable UniformConstant - 114: TypeImage 27(int) 1D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex1di4): 115(ptr) Variable UniformConstant - 117: TypeImage 44(int) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) 2D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex2df4): 121(ptr) Variable UniformConstant - 123: TypeImage 27(int) 2D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex2di4): 124(ptr) Variable UniformConstant - 126: TypeImage 44(int) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2du4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) 3D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex3df4): 130(ptr) Variable UniformConstant - 132: TypeImage 27(int) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex3di4): 133(ptr) Variable UniformConstant - 135: TypeImage 44(int) 3D sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTex3du4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 27(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 44(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdf4a): 148(ptr) Variable UniformConstant - 150: TypeImage 27(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdi4a): 151(ptr) Variable UniformConstant - 153: TypeImage 44(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdu4a): 154(ptr) Variable UniformConstant + 109: TypePointer Output 99(PS_OUTPUT) +110(@entryPointOutput): 109(ptr) Variable Output + 113: TypeImage 6(float) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1df4): 114(ptr) Variable UniformConstant + 116: TypeImage 27(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1di4): 117(ptr) Variable UniformConstant + 119: TypeImage 44(int) 1D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex1du4): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2df4): 123(ptr) Variable UniformConstant + 125: TypeImage 27(int) 2D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex2di4): 126(ptr) Variable UniformConstant + 128: TypeImage 44(int) 2D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex2du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3df4): 132(ptr) Variable UniformConstant + 134: TypeImage 27(int) 3D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex3di4): 135(ptr) Variable UniformConstant + 137: TypeImage 44(int) 3D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex3du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 27(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 44(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 27(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 44(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -546,6 +555,7 @@ gl_FragCoord origin is upper left Store 106 104 108: 7(ptr) AccessChain 101(psout) 107 Store 108 103 - 109:99(PS_OUTPUT) Load 101(psout) - ReturnValue 109 + 111:99(PS_OUTPUT) Load 101(psout) + Store 110(@entryPointOutput) 111 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 375dfb96..f42074b8 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -175,8 +175,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -370,8 +373,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -387,14 +393,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 126 +// Id's are bound by 128 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 124 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -420,7 +426,8 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 125 "g_tTex1df4a" + Name 124 "@entryPointOutput" + Name 127 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -434,8 +441,8 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 125(g_tTex1df4a) DescriptorSet 0 - Decorate 125(g_tTex1df4a) Binding 1 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 127(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -507,7 +514,9 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 117 117 117 117 120: 27(int) Constant 1 121: TypePointer Function 6(float) -125(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123: TypePointer Output 113(PS_OUTPUT) +124(@entryPointOutput): 123(ptr) Variable Output +127(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -569,6 +578,7 @@ gl_FragCoord origin is upper left Store 119 118 122: 121(ptr) AccessChain 115(psout) 120 Store 122 117 - 123:113(PS_OUTPUT) Load 115(psout) - ReturnValue 123 + 125:113(PS_OUTPUT) Load 115(psout) + Store 124(@entryPointOutput) 125 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 30c4c7d7..403bfca1 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -223,8 +223,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -469,8 +472,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -489,13 +495,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 161 +// Id's are bound by 163 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 159 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -527,7 +533,8 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 160 "g_tTex1df4a" + Name 159 "@entryPointOutput" + Name 162 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -544,8 +551,8 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 160(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1df4a) Binding 1 + Decorate 162(g_tTex1df4a) DescriptorSet 0 + Decorate 162(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -637,7 +644,9 @@ gl_FragCoord origin is upper left 153: 7(fvec4) ConstantComposite 152 152 152 152 155: 24(int) Constant 1 156: TypePointer Function 6(float) -160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 158: TypePointer Output 148(PS_OUTPUT) +159(@entryPointOutput): 158(ptr) Variable Output +162(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -717,6 +726,7 @@ gl_FragCoord origin is upper left Store 154 153 157: 156(ptr) AccessChain 150(psout) 155 Store 157 152 - 158:148(PS_OUTPUT) Load 150(psout) - ReturnValue 158 + 160:148(PS_OUTPUT) Load 150(psout) + Store 159(@entryPointOutput) 160 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 7e7f4561..54874f1a 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -215,8 +215,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -453,8 +456,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -473,13 +479,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 156 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -509,7 +515,8 @@ Shader version: 450 Name 148 "VS_OUTPUT" MemberName 148(VS_OUTPUT) 0 "Pos" Name 150 "vsout" - Name 157 "g_tTex1df4a" + Name 156 "@entryPointOutput" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -526,8 +533,8 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -617,7 +624,9 @@ Shader version: 450 151: 24(int) Constant 0 152: 6(float) Constant 0 153: 7(fvec4) ConstantComposite 152 152 152 152 -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 155: TypePointer Output 148(VS_OUTPUT) +156(@entryPointOutput): 155(ptr) Variable Output +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -695,6 +704,7 @@ Shader version: 450 Store 139(txval42) 147 154: 8(ptr) AccessChain 150(vsout) 151 Store 154 153 - 155:148(VS_OUTPUT) Load 150(vsout) - ReturnValue 155 + 157:148(VS_OUTPUT) Load 150(vsout) + Store 156(@entryPointOutput) 157 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index be5b7a03..f73d8cf6 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -193,8 +193,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -409,8 +412,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -429,13 +435,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -461,10 +467,11 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 142 "g_tTex1df4a" - Name 145 "g_tTexcdf4" - Name 148 "g_tTexcdi4" - Name 151 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -478,11 +485,11 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex1df4a) DescriptorSet 0 - Decorate 142(g_tTex1df4a) Binding 1 - Decorate 145(g_tTexcdf4) DescriptorSet 0 - Decorate 148(g_tTexcdi4) DescriptorSet 0 - Decorate 151(g_tTexcdu4) DescriptorSet 0 + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -571,16 +578,18 @@ gl_FragCoord origin is upper left 135: 6(float) Constant 1065353216 136: 7(fvec4) ConstantComposite 135 135 135 135 138: TypePointer Function 6(float) -142(g_tTex1df4a): 11(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdf4): 144(ptr) Variable UniformConstant - 146: TypeImage 23(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdi4): 147(ptr) Variable UniformConstant - 149: TypeImage 38(int) Cube sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTexcdu4): 150(ptr) Variable UniformConstant + 140: TypePointer Output 132(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 23(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 38(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -642,6 +651,7 @@ gl_FragCoord origin is upper left Store 137 136 139: 138(ptr) AccessChain 134(psout) 24 Store 139 135 - 140:132(PS_OUTPUT) Load 134(psout) - ReturnValue 140 + 142:132(PS_OUTPUT) Load 134(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index a152cb77..d6bc7643 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -130,8 +130,11 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Branch: Return with expression -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Sequence +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -280,8 +283,11 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Branch: Return with expression -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Sequence +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -297,14 +303,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 108 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 95 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -324,10 +330,11 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 96 "g_tTex1df4a" - Name 99 "g_tTexcdf4" - Name 102 "g_tTexcdi4" - Name 105 "g_tTexcdu4" + Name 95 "@entryPointOutput" + Name 98 "g_tTex1df4a" + Name 101 "g_tTexcdf4" + Name 104 "g_tTexcdi4" + Name 107 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -338,11 +345,11 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 96(g_tTex1df4a) DescriptorSet 0 - Decorate 96(g_tTex1df4a) Binding 1 - Decorate 99(g_tTexcdf4) DescriptorSet 0 - Decorate 102(g_tTexcdi4) DescriptorSet 0 - Decorate 105(g_tTexcdu4) DescriptorSet 0 + Decorate 98(g_tTex1df4a) DescriptorSet 0 + Decorate 98(g_tTex1df4a) Binding 1 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 104(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -400,16 +407,18 @@ gl_FragCoord origin is upper left 89: 6(float) Constant 1065353216 90: 7(fvec4) ConstantComposite 89 89 89 89 92: TypePointer Function 6(float) - 96(g_tTex1df4a): 11(ptr) Variable UniformConstant - 97: TypeImage 6(float) Cube array sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdf4): 98(ptr) Variable UniformConstant - 100: TypeImage 26(int) Cube array sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTexcdi4): 101(ptr) Variable UniformConstant - 103: TypeImage 40(int) Cube array sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdu4): 104(ptr) Variable UniformConstant + 94: TypePointer Output 86(PS_OUTPUT) +95(@entryPointOutput): 94(ptr) Variable Output + 98(g_tTex1df4a): 11(ptr) Variable UniformConstant + 99: TypeImage 6(float) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 102: TypeImage 26(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTexcdi4): 103(ptr) Variable UniformConstant + 105: TypeImage 40(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -453,6 +462,7 @@ gl_FragCoord origin is upper left Store 91 90 93: 92(ptr) AccessChain 88(psout) 27 Store 93 89 - 94:86(PS_OUTPUT) Load 88(psout) - ReturnValue 94 + 96:86(PS_OUTPUT) Load 88(psout) + Store 95(@entryPointOutput) 96 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 1b675b22..9ed0650f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 133 +// Id's are bound by 135 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -348,7 +354,8 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 132 "g_tTex1df4" + Name 131 "@entryPointOutput" + Name 134 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -362,8 +369,8 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 132(g_tTex1df4) DescriptorSet 0 - Decorate 132(g_tTex1df4) Binding 0 + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -442,7 +449,9 @@ gl_FragCoord origin is upper left 125: 7(fvec4) ConstantComposite 118 118 118 118 127: 26(int) Constant 1 128: TypePointer Function 6(float) - 132(g_tTex1df4): 11(ptr) Variable UniformConstant + 130: TypePointer Output 121(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output + 134(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -504,6 +513,7 @@ gl_FragCoord origin is upper left Store 126 125 129: 128(ptr) AccessChain 123(psout) 127 Store 129 118 - 130:121(PS_OUTPUT) Load 123(psout) - ReturnValue 130 + 132:121(PS_OUTPUT) Load 123(psout) + Store 131(@entryPointOutput) 132 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index dbdc7778..38676721 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -169,8 +169,11 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Branch: Return with expression -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Sequence +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -362,8 +365,11 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Branch: Return with expression -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Sequence +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -383,13 +389,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 155 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -421,8 +427,9 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 156 "g_sSamp2d" - Name 157 "g_tTex1df4a" + Name 155 "@entryPointOutput" + Name 158 "g_sSamp2d" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -439,9 +446,9 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 156(g_sSamp2d) DescriptorSet 0 - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 + Decorate 158(g_sSamp2d) DescriptorSet 0 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -529,8 +536,10 @@ gl_FragCoord origin is upper left 149: 7(fvec4) ConstantComposite 148 148 148 148 151: 23(int) Constant 1 152: TypePointer Function 6(float) - 156(g_sSamp2d): 15(ptr) Variable UniformConstant -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 154: TypePointer Output 144(PS_OUTPUT) +155(@entryPointOutput): 154(ptr) Variable Output + 158(g_sSamp2d): 15(ptr) Variable UniformConstant +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -610,6 +619,7 @@ gl_FragCoord origin is upper left Store 150 149 153: 152(ptr) AccessChain 146(psout) 151 Store 153 148 - 154:144(PS_OUTPUT) Load 146(psout) - ReturnValue 154 + 156:144(PS_OUTPUT) Load 146(psout) + Store 155(@entryPointOutput) 156 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 0a55d855..aafcb825 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -161,8 +161,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -345,8 +348,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -365,13 +371,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 156 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 152 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -401,7 +407,8 @@ Shader version: 450 Name 144 "VS_OUTPUT" MemberName 144(VS_OUTPUT) 0 "Pos" Name 146 "vsout" - Name 153 "g_tTex1df4a" + Name 152 "@entryPointOutput" + Name 155 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -418,8 +425,8 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 153(g_tTex1df4a) DescriptorSet 0 - Decorate 153(g_tTex1df4a) Binding 1 + Decorate 155(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -505,7 +512,9 @@ Shader version: 450 147: 23(int) Constant 0 148: 6(float) Constant 0 149: 7(fvec4) ConstantComposite 148 148 148 148 -153(g_tTex1df4a): 11(ptr) Variable UniformConstant + 151: TypePointer Output 144(VS_OUTPUT) +152(@entryPointOutput): 151(ptr) Variable Output +155(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -583,6 +592,7 @@ Shader version: 450 Store 135(txval42) 143 150: 8(ptr) AccessChain 146(vsout) 147 Store 150 149 - 151:144(VS_OUTPUT) Load 146(vsout) - ReturnValue 151 + 153:144(VS_OUTPUT) Load 146(vsout) + Store 152(@entryPointOutput) 153 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index a7b54f99..2dc61c75 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -337,8 +340,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -357,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 148 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -389,10 +395,11 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 138 "g_tTex1df4a" - Name 141 "g_tTexcdf4" - Name 144 "g_tTexcdi4" - Name 147 "g_tTexcdu4" + Name 137 "@entryPointOutput" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -406,11 +413,11 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 138(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1df4a) Binding 1 - Decorate 141(g_tTexcdf4) DescriptorSet 0 - Decorate 144(g_tTexcdi4) DescriptorSet 0 - Decorate 147(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTex1df4a) Binding 1 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -495,16 +502,18 @@ gl_FragCoord origin is upper left 131: 6(float) Constant 1065353216 132: 7(fvec4) ConstantComposite 131 131 131 131 134: TypePointer Function 6(float) -138(g_tTex1df4a): 11(ptr) Variable UniformConstant - 139: TypeImage 6(float) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdf4): 140(ptr) Variable UniformConstant - 142: TypeImage 22(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdi4): 143(ptr) Variable UniformConstant - 145: TypeImage 37(int) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdu4): 146(ptr) Variable UniformConstant + 136: TypePointer Output 128(PS_OUTPUT) +137(@entryPointOutput): 136(ptr) Variable Output +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 22(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -566,6 +575,7 @@ gl_FragCoord origin is upper left Store 133 132 135: 134(ptr) AccessChain 130(psout) 23 Store 135 131 - 136:128(PS_OUTPUT) Load 130(psout) - ReturnValue 136 + 138:128(PS_OUTPUT) Load 130(psout) + Store 137(@entryPointOutput) 138 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index b37c00c7..bc3c4ae2 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -241,8 +244,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -255,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 105 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -281,7 +287,8 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 104 "g_tTex1df4a" + Name 103 "@entryPointOutput" + Name 106 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -292,8 +299,8 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -359,7 +366,9 @@ gl_FragCoord origin is upper left 97: 6(float) Constant 1065353216 98: 7(fvec4) ConstantComposite 97 97 97 97 100: TypePointer Function 6(float) -104(g_tTex1df4a): 11(ptr) Variable UniformConstant + 102: TypePointer Output 94(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output +106(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -403,6 +412,7 @@ gl_FragCoord origin is upper left Store 99 98 101: 100(ptr) AccessChain 96(psout) 40 Store 101 97 - 102:94(PS_OUTPUT) Load 96(psout) - ReturnValue 102 + 104:94(PS_OUTPUT) Load 96(psout) + Store 103(@entryPointOutput) 104 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 58ec350a..470556ed 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -19,8 +19,11 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Branch: Return with expression -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Branch: Return 0:? Linker Objects @@ -47,18 +50,21 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Branch: Return with expression -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 23 +// Id's are bound by 25 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 22 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -66,6 +72,7 @@ gl_FragCoord origin is upper left Name 12 "PS_OUTPUT" MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" + Name 22 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -77,13 +84,16 @@ gl_FragCoord origin is upper left 17: 10(float) Constant 1065353216 18: 11(fvec4) ConstantComposite 17 17 17 17 19: TypePointer Function 11(fvec4) + 21: TypePointer Output 12(PS_OUTPUT) +22(@entryPointOutput): 21(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function 20: 19(ptr) AccessChain 14(ps_output) 16 Store 20 18 - 21:12(PS_OUTPUT) Load 14(ps_output) - ReturnValue 21 + 23:12(PS_OUTPUT) Load 14(ps_output) + Store 22(@entryPointOutput) 23 + Return FunctionEnd 6(MyFunc(): 2 Function None 3 7: Label diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index db8e3112..d4309427 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -6,9 +6,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 sine (global 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects @@ -22,31 +25,38 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 sine (global 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 13 +// Id's are bound by 15 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" + Name 9 "@entryPointOutput" + Name 11 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10 - ReturnValue 11 + 12: 7(fvec4) Load 11(input) + 13: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 12 + Store 9(@entryPointOutput) 13 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index cb2a4913..e5fbf654 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -15,8 +15,11 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Branch: Return with expression -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) @@ -41,28 +44,32 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Branch: Return with expression -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 19 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 22 "TestTexture" - Name 24 "TestUF" - Decorate 22(TestTexture) DescriptorSet 0 + Name 19 "@entryPointOutput" + Name 24 "TestTexture" + Name 26 "TestUF" + Decorate 24(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -75,16 +82,19 @@ gl_FragCoord origin is upper left 14: 6(float) Constant 1065353216 15: 7(fvec4) ConstantComposite 13 13 13 14 16: TypePointer Function 7(fvec4) - 20: TypeImage 6(float) 2D sampled format:Unknown - 21: TypePointer UniformConstant 20 - 22(TestTexture): 21(ptr) Variable UniformConstant - 23: TypePointer UniformConstant 7(fvec4) - 24(TestUF): 23(ptr) Variable UniformConstant + 18: TypePointer Output 8(PS_OUTPUT) +19(@entryPointOutput): 18(ptr) Variable Output + 22: TypeImage 6(float) 2D sampled format:Unknown + 23: TypePointer UniformConstant 22 + 24(TestTexture): 23(ptr) Variable UniformConstant + 25: TypePointer UniformConstant 7(fvec4) + 26(TestUF): 25(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function 17: 16(ptr) AccessChain 10(psout) 12 Store 17 15 - 18:8(PS_OUTPUT) Load 10(psout) - ReturnValue 18 + 20:8(PS_OUTPUT) Load 10(psout) + Store 19(@entryPointOutput) 20 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index a4cd170b..fed3a893 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -22,8 +22,11 @@ gl_FragCoord origin is upper left 0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:40 Constant: 0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:42 'input' (in 4-component vector of float) +0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) @@ -54,8 +57,11 @@ gl_FragCoord origin is upper left 0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:40 Constant: 0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:42 'input' (in 4-component vector of float) +0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) @@ -65,12 +71,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 34 + EntryPoint Fragment 4 "PixelShaderFunction" 34 36 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -89,21 +95,22 @@ gl_FragCoord origin is upper left MemberName 25 6 "ff3" MemberName 25 7 "ff4" Name 27 "s4" - Name 34 "input" - Name 37 "myS" - MemberName 37(myS) 0 "b" - MemberName 37(myS) 1 "c" - MemberName 37(myS) 2 "a" - MemberName 37(myS) 3 "d" - Name 39 "s1" - Name 42 "ff5" - Name 43 "ff6" + Name 34 "@entryPointOutput" + Name 36 "input" + Name 39 "myS" + MemberName 39(myS) 0 "b" + MemberName 39(myS) 1 "c" + MemberName 39(myS) 2 "a" + MemberName 39(myS) 3 "d" + Name 41 "s1" + Name 44 "ff5" + Name 45 "ff6" MemberDecorate 25 4 BuiltIn FrontFacing MemberDecorate 25 7 BuiltIn FragCoord - Decorate 42(ff5) Offset 20 - Decorate 42(ff5) Binding 5 - Decorate 43(ff6) Offset 36 - Decorate 43(ff6) Binding 8 + Decorate 44(ff5) Offset 20 + Decorate 44(ff5) Binding 5 + Decorate 45(ff6) Offset 36 + Decorate 45(ff6) Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -123,15 +130,17 @@ gl_FragCoord origin is upper left 27(s4): 26(ptr) Variable Private 28: 22(int) Constant 7 29: TypePointer Private 18(fvec4) - 33: TypePointer Input 18(fvec4) - 34(input): 33(ptr) Variable Input - 37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 38: TypePointer Private 37(myS) - 39(s1): 38(ptr) Variable Private - 40: TypeVector 17(float) 3 - 41: TypePointer Private 40(fvec3) - 42(ff5): 41(ptr) Variable Private - 43(ff6): 41(ptr) Variable Private + 33: TypePointer Output 18(fvec4) +34(@entryPointOutput): 33(ptr) Variable Output + 35: TypePointer Input 18(fvec4) + 36(input): 35(ptr) Variable Input + 39(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 40: TypePointer Private 39(myS) + 41(s1): 40(ptr) Variable Private + 42: TypeVector 17(float) 3 + 43: TypePointer Private 42(fvec3) + 44(ff5): 43(ptr) Variable Private + 45(ff6): 43(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -145,6 +154,7 @@ gl_FragCoord origin is upper left 31: 18(fvec4) Load 30 32: 29(ptr) AccessChain 21(s2) 23 Store 32 31 - 35: 18(fvec4) Load 34(input) - ReturnValue 35 + 37: 18(fvec4) Load 36(input) + Store 34(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index 7c54f9c3..ba5ce50d 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -119,8 +119,11 @@ gl_FragCoord origin is upper left 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) 0:51 'input' (in 4-component vector of float) -0:54 Branch: Return with expression -0:54 'input' (in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:54 'input' (in 4-component vector of float) +0:54 Branch: Return 0:? Linker Objects @@ -247,23 +250,27 @@ gl_FragCoord origin is upper left 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) 0:51 'input' (in 4-component vector of float) -0:54 Branch: Return with expression -0:54 'input' (in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:54 'input' (in 4-component vector of float) +0:54 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 82 +// Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 + EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 81 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "c" Name 21 "input" Name 41 "d" + Name 81 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -278,6 +285,8 @@ gl_FragCoord origin is upper left 46: 18(float) Constant 1073741824 51: 18(float) Constant 1077936128 58: 18(float) Constant 1082130432 + 80: TypePointer Output 19(fvec4) +81(@entryPointOutput): 80(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 9: 6(int) Load 8(c) @@ -370,6 +379,7 @@ gl_FragCoord origin is upper left Store 21(input) 78 Branch 71 71: Label - 80: 19(fvec4) Load 21(input) - ReturnValue 80 + 82: 19(fvec4) Load 21(input) + Store 81(@entryPointOutput) 82 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 74611993..e3c8baad 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -239,9 +239,12 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Branch: Return with expression -0:45 Constant: -0:45 0.000000 +0:45 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return 0:? Linker Objects @@ -488,20 +491,23 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Branch: Return with expression -0:45 Constant: -0:45 0.000000 +0:45 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 147 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 145 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "r00" @@ -532,6 +538,7 @@ gl_FragCoord origin is upper left Name 131 "r62" Name 136 "r65" Name 141 "r66" + Name 145 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -644,6 +651,8 @@ gl_FragCoord origin is upper left 140: TypePointer Function 139 142: 7(fvec4) ConstantComposite 112 113 114 116 143: 139 ConstantComposite 14 137 142 + 144: TypePointer Output 6(float) +145(@entryPointOutput): 144(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -702,5 +711,6 @@ gl_FragCoord origin is upper left Store 131(r62) 133 Store 136(r65) 138 Store 141(r66) 143 - ReturnValue 106 + Store 145(@entryPointOutput) 106 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 08488cea..3d2ba925 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -13,8 +13,11 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Branch: Return with expression -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -50,8 +53,11 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Branch: Return with expression -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -71,15 +77,16 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 39 +// Id's are bound by 41 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 14 + EntryPoint Fragment 4 "PixelShaderFunction" 14 22 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 14 "input" + Name 22 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 11: TypeFloat 32 @@ -88,7 +95,9 @@ gl_FragCoord origin is upper left 14(input): 13(ptr) Variable Input 17: TypeBool 18: TypeVector 17(bool) 4 - 28: 17(bool) ConstantFalse + 21: TypePointer Output 12(fvec4) +22(@entryPointOutput): 21(ptr) Variable Output + 30: 17(bool) ConstantFalse 4(PixelShaderFunction): 2 Function None 3 5: Label Branch 6 @@ -102,43 +111,44 @@ gl_FragCoord origin is upper left 20: 17(bool) Any 19 BranchConditional 20 7 8 7: Label - 21: 12(fvec4) Load 14(input) - ReturnValue 21 + 23: 12(fvec4) Load 14(input) + Store 22(@entryPointOutput) 23 + Return 9: Label Branch 6 8: Label - Branch 23 - 23: Label - LoopMerge 25 26 None - Branch 27 - 27: Label - BranchConditional 28 24 25 - 24: Label - Branch 26 - 26: Label - Branch 23 + Branch 25 25: Label + LoopMerge 27 28 None Branch 29 29: Label - LoopMerge 31 32 None - Branch 33 - 33: Label - BranchConditional 28 30 31 - 30: Label - Branch 32 - 32: Label - Branch 29 + BranchConditional 30 26 27 + 26: Label + Branch 28 + 28: Label + Branch 25 + 27: Label + Branch 31 31: Label - Branch 34 - 34: Label - LoopMerge 36 37 None - Branch 38 - 38: Label - BranchConditional 28 35 36 - 35: Label - Branch 37 - 37: Label + LoopMerge 33 34 None + Branch 35 + 35: Label + BranchConditional 30 32 33 + 32: Label Branch 34 + 34: Label + Branch 31 + 33: Label + Branch 36 36: Label + LoopMerge 38 39 None + Branch 40 + 40: Label + BranchConditional 30 37 38 + 37: Label + Branch 39 + 39: Label + Branch 36 + 38: Label Return FunctionEnd diff --git a/Test/hlsl.entry-out.frag b/Test/hlsl.entry-out.frag new file mode 100644 index 00000000..72389914 --- /dev/null +++ b/Test/hlsl.entry-out.frag @@ -0,0 +1,12 @@ +struct OutParam { + float2 v; + int2 i; +}; + +float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2) : COLOR0 +{ + out1 = input; + out2.v = 2.0; + out2.i = 3; + return out1; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 070089c5..516f434a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1442" -#define GLSLANG_DATE "26-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1444" +#define GLSLANG_DATE "28-Aug-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2e51bb48..8c9b5558 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -83,6 +83,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.constructexpr.frag", "main"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, + {"hlsl.entry-out.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2b5d6c0f..7ca93d07 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -55,7 +55,8 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), - afterEOF(false) + afterEOF(false), + entryPointOutput(nullptr) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms linkage = new TIntermAggregate; @@ -754,9 +755,20 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); if (inEntrypoint) { - // parameters are actually shader-level inputs - for (int i = 0; i < function.getParamCount(); i++) - function[i].type->getQualifier().storage = EvqVaryingIn; + // in parameters are actually shader-scoped inputs (in) + for (int i = 0; i < function.getParamCount(); i++) { + if (function[i].type->getQualifier().storage == EvqIn || + function[i].type->getQualifier().storage == EvqConstReadOnly) + function[i].type->getQualifier().storage = EvqVaryingIn; + else + function[i].type->getQualifier().storage = EvqVaryingOut; + } + + // return value is actually shader-scoped output (out) + if (function.getType().getBasicType() != EbtVoid) { + entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); + entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + } } // @@ -805,17 +817,36 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { + TIntermTyped* converted = value; + if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { - TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); if (converted) { return intermediate.addBranch(EOpReturn, converted, loc); } else { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - return intermediate.addBranch(EOpReturn, value, loc); + converted = value; } + } + + // The entry point needs to send any return value to the entry-point output instead. + // So, a subtree is built up, as a two-part sequence, with the first part being an + // assignment subtree, and the second part being a return with no value. + // + // Otherwise, for a non entry point, just return a return statement. + if (inEntrypoint) { + assert(entryPointOutput != nullptr); // should have been error tested at the beginning + TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), + entryPointOutput->getType()); + TIntermNode* returnSequence = intermediate.addAssign(EOpAssign, left, converted, loc); + returnSequence = intermediate.makeAggregate(returnSequence); + returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc)); + returnSequence->getAsAggregate()->setOperator(EOpSequence); + + return returnSequence; } else return intermediate.addBranch(EOpReturn, value, loc); } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 659ec4a7..4f8a2e9a 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -196,6 +196,7 @@ protected: TString currentCaller; // name of last function body entered (not valid when at global scope) TIdSetType inductiveLoopIds; TVector needsIndexLimitationChecking; + TVariable* entryPointOutput; // // Geometry shader input arrays: From 6a70eb7161823508d38a28281ff7a3cfae39c0e1 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 28 Aug 2016 15:00:23 -0600 Subject: [PATCH 097/217] HLSL: Emulate write-to-output on return-from-entry-point, for return value. This fixes issue #487 and #480. It also correctly handles output parameters from the entry point. --- Test/baseResults/hlsl.array.frag.out | 244 +- Test/baseResults/hlsl.assoc.frag.out | 56 +- Test/baseResults/hlsl.buffer.frag.out | 202 +- .../hlsl.calculatelod.dx10.frag.out | 34 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 14 +- Test/baseResults/hlsl.cast.frag.out | 96 +- Test/baseResults/hlsl.conditional.frag.out | 56 +- Test/baseResults/hlsl.constructexpr.frag.out | 26 +- Test/baseResults/hlsl.doLoop.frag.out | 44 +- Test/baseResults/hlsl.entry-out.frag.out | 127 + Test/baseResults/hlsl.forLoop.frag.out | 239 +- .../hlsl.gather.array.dx10.frag.out | 66 +- .../hlsl.gather.basic.dx10.frag.out | 102 +- .../hlsl.gather.basic.dx10.vert.out | 102 +- .../hlsl.gather.offset.dx10.frag.out | 126 +- .../hlsl.gather.offsetarray.dx10.frag.out | 66 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 78 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 114 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 172 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 134 +- .../hlsl.getdimensions.dx10.frag.out | 38 +- .../hlsl.getdimensions.dx10.vert.out | 38 +- .../hlsl.getsampleposition.dx10.frag.out | 14 +- Test/baseResults/hlsl.if.frag.out | 273 +- Test/baseResults/hlsl.init.frag.out | 52 +- Test/baseResults/hlsl.init2.frag.out | 26 +- Test/baseResults/hlsl.inoutquals.frag.out | 26 +- .../hlsl.intrinsics.barriers.comp.out | 30 +- Test/baseResults/hlsl.intrinsics.comp.out | 44 +- .../hlsl.intrinsics.double.frag.out | 30 +- .../hlsl.intrinsics.f1632.frag.out | 30 +- Test/baseResults/hlsl.intrinsics.frag.out | 2284 +++++++++-------- .../hlsl.intrinsics.negative.comp.out | 44 +- .../hlsl.intrinsics.negative.frag.out | 30 +- .../hlsl.intrinsics.negative.vert.out | 126 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 62 +- .../baseResults/hlsl.load.array.dx10.frag.out | 216 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 178 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 178 +- .../hlsl.load.buffer.dx10.frag.out | 72 +- .../hlsl.load.offset.dx10.frag.out | 166 +- .../hlsl.load.offsetarray.dx10.frag.out | 206 +- Test/baseResults/hlsl.max.frag.out | 48 +- .../baseResults/hlsl.numericsuffixes.frag.out | 26 +- Test/baseResults/hlsl.overload.frag.out | 32 +- Test/baseResults/hlsl.pp.line.frag.out | 26 +- Test/baseResults/hlsl.precedence.frag.out | 200 +- Test/baseResults/hlsl.precedence2.frag.out | 124 +- Test/baseResults/hlsl.precise.frag.out | 32 +- Test/baseResults/hlsl.promotions.frag.out | 26 +- .../hlsl.sample.array.dx10.frag.out | 34 +- .../hlsl.sample.basic.dx10.frag.out | 46 +- .../hlsl.sample.offset.dx10.frag.out | 64 +- .../hlsl.sample.offsetarray.dx10.frag.out | 34 +- .../hlsl.samplebias.array.dx10.frag.out | 34 +- .../hlsl.samplebias.basic.dx10.frag.out | 34 +- .../hlsl.samplebias.offset.dx10.frag.out | 64 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 34 +- .../hlsl.samplecmp.array.dx10.frag.out | 148 +- .../hlsl.samplecmp.basic.dx10.frag.out | 146 +- .../hlsl.samplecmp.offset.dx10.frag.out | 176 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 178 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 148 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 146 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 176 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 178 +- .../hlsl.samplegrad.array.dx10.frag.out | 34 +- .../hlsl.samplegrad.basic.dx10.frag.out | 34 +- .../hlsl.samplegrad.basic.dx10.vert.out | 34 +- .../hlsl.samplegrad.offset.dx10.frag.out | 64 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 64 +- .../hlsl.samplelevel.array.dx10.frag.out | 34 +- .../hlsl.samplelevel.basic.dx10.frag.out | 40 +- .../hlsl.samplelevel.basic.dx10.vert.out | 34 +- .../hlsl.samplelevel.offset.dx10.frag.out | 64 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 34 +- Test/baseResults/hlsl.semicolons.frag.out | 26 +- Test/baseResults/hlsl.sin.frag.out | 38 +- Test/baseResults/hlsl.stringtoken.frag.out | 42 +- Test/baseResults/hlsl.struct.frag.out | 70 +- Test/baseResults/hlsl.switch.frag.out | 26 +- Test/baseResults/hlsl.templatetypes.frag.out | 28 +- Test/baseResults/hlsl.whileLoop.frag.out | 82 +- ...emap.hlsl.sample.basic.everything.frag.out | 9 +- .../remap.hlsl.sample.basic.none.frag.out | 32 +- .../remap.hlsl.sample.basic.strip.frag.out | 23 +- Test/hlsl.entry-out.frag | 12 + glslang/Include/revision.h | 4 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 43 +- hlsl/hlslParseHelper.h | 1 + 91 files changed, 5158 insertions(+), 4130 deletions(-) create mode 100755 Test/baseResults/hlsl.entry-out.frag.out create mode 100644 Test/hlsl.entry-out.frag diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 0aa38ba8..5c519ee5 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -7,42 +7,45 @@ gl_FragCoord origin is upper left 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) 0:? Sequence -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) 0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) @@ -59,123 +62,130 @@ gl_FragCoord origin is upper left 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) 0:? Sequence -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'i' (in int) 0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) 0:10 Constant: -0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'input' (in 3-element array of 4-component vector of float) -0:10 Constant: -0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) +0:10 'i' (in int) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 Constant: -0:10 5 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 indirect index (temp 4-component vector of float) -0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) -0:10 Constant: -0:10 0 (const int) -0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 64 +// Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 19 27 + EntryPoint Fragment 4 "PixelShaderFunction" 9 21 29 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 12 "a" - Name 19 "i" - Name 27 "input" - Name 40 "b" - Name 52 "" - MemberName 52 0 "m" - Name 56 "s" + Name 9 "@entryPointOutput" + Name 14 "a" + Name 21 "i" + Name 29 "input" + Name 42 "b" + Name 54 "" + MemberName 54 0 "m" + Name 58 "s" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypeInt 32 0 - 9: 8(int) Constant 4 - 10: TypeArray 7(fvec4) 9 - 11: TypePointer Private 10 - 12(a): 11(ptr) Variable Private - 13: TypeInt 32 1 - 14: 13(int) Constant 1 - 15: TypePointer Private 7(fvec4) - 18: TypePointer Input 13(int) - 19(i): 18(ptr) Variable Input - 24: 8(int) Constant 3 - 25: TypeArray 7(fvec4) 24 - 26: TypePointer Input 25 - 27(input): 26(ptr) Variable Input - 28: 13(int) Constant 2 - 29: TypePointer Input 7(fvec4) - 37: 8(int) Constant 10 - 38: TypeArray 7(fvec4) 37 - 39: TypePointer Function 38 - 41: 13(int) Constant 5 - 42: TypePointer Function 7(fvec4) - 50: 8(int) Constant 7 - 51: TypeArray 7(fvec4) 50 - 52: TypeStruct 51 - 53: 8(int) Constant 11 - 54: TypeArray 52(struct) 53 - 55: TypePointer Private 54 - 56(s): 55(ptr) Variable Private - 58: 13(int) Constant 0 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypeInt 32 0 + 11: 10(int) Constant 4 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Private 12 + 14(a): 13(ptr) Variable Private + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Private 7(fvec4) + 20: TypePointer Input 15(int) + 21(i): 20(ptr) Variable Input + 26: 10(int) Constant 3 + 27: TypeArray 7(fvec4) 26 + 28: TypePointer Input 27 + 29(input): 28(ptr) Variable Input + 30: 15(int) Constant 2 + 31: TypePointer Input 7(fvec4) + 39: 10(int) Constant 10 + 40: TypeArray 7(fvec4) 39 + 41: TypePointer Function 40 + 43: 15(int) Constant 5 + 44: TypePointer Function 7(fvec4) + 52: 10(int) Constant 7 + 53: TypeArray 7(fvec4) 52 + 54: TypeStruct 53 + 55: 10(int) Constant 11 + 56: TypeArray 54(struct) 55 + 57: TypePointer Private 56 + 58(s): 57(ptr) Variable Private + 60: 15(int) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label - 40(b): 39(ptr) Variable Function - 16: 15(ptr) AccessChain 12(a) 14 - 17: 7(fvec4) Load 16 - 20: 13(int) Load 19(i) - 21: 15(ptr) AccessChain 12(a) 20 - 22: 7(fvec4) Load 21 - 23: 7(fvec4) FAdd 17 22 - 30: 29(ptr) AccessChain 27(input) 28 - 31: 7(fvec4) Load 30 - 32: 7(fvec4) FAdd 23 31 - 33: 13(int) Load 19(i) - 34: 29(ptr) AccessChain 27(input) 33 - 35: 7(fvec4) Load 34 - 36: 7(fvec4) FAdd 32 35 - 43: 42(ptr) AccessChain 40(b) 41 - 44: 7(fvec4) Load 43 - 45: 7(fvec4) FAdd 36 44 - 46: 13(int) Load 19(i) - 47: 42(ptr) AccessChain 40(b) 46 - 48: 7(fvec4) Load 47 - 49: 7(fvec4) FAdd 45 48 - 57: 13(int) Load 19(i) - 59: 13(int) Load 19(i) - 60: 15(ptr) AccessChain 56(s) 57 58 59 - 61: 7(fvec4) Load 60 - 62: 7(fvec4) FAdd 49 61 - ReturnValue 62 + 42(b): 41(ptr) Variable Function + 18: 17(ptr) AccessChain 14(a) 16 + 19: 7(fvec4) Load 18 + 22: 15(int) Load 21(i) + 23: 17(ptr) AccessChain 14(a) 22 + 24: 7(fvec4) Load 23 + 25: 7(fvec4) FAdd 19 24 + 32: 31(ptr) AccessChain 29(input) 30 + 33: 7(fvec4) Load 32 + 34: 7(fvec4) FAdd 25 33 + 35: 15(int) Load 21(i) + 36: 31(ptr) AccessChain 29(input) 35 + 37: 7(fvec4) Load 36 + 38: 7(fvec4) FAdd 34 37 + 45: 44(ptr) AccessChain 42(b) 43 + 46: 7(fvec4) Load 45 + 47: 7(fvec4) FAdd 38 46 + 48: 15(int) Load 21(i) + 49: 44(ptr) AccessChain 42(b) 48 + 50: 7(fvec4) Load 49 + 51: 7(fvec4) FAdd 47 50 + 59: 15(int) Load 21(i) + 61: 15(int) Load 21(i) + 62: 17(ptr) AccessChain 58(s) 59 60 61 + 63: 7(fvec4) Load 62 + 64: 7(fvec4) FAdd 51 63 + Store 9(@entryPointOutput) 64 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 14a747cf..5f617c90 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -19,16 +19,19 @@ gl_FragCoord origin is upper left 0:9 move second child to first child (temp 4-component vector of float) 0:9 'a4' (in 4-component vector of float) 0:9 'a5' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) +0:10 Branch: Return 0:? Linker Objects @@ -55,26 +58,29 @@ gl_FragCoord origin is upper left 0:9 move second child to first child (temp 4-component vector of float) 0:9 'a4' (in 4-component vector of float) 0:9 'a5' (in 4-component vector of float) -0:10 Branch: Return with expression -0:10 add (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) +0:10 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 + EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 16 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "a1" @@ -82,6 +88,7 @@ gl_FragCoord origin is upper left Name 11 "a3" Name 12 "a4" Name 13 "a5" + Name 16 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -92,6 +99,8 @@ gl_FragCoord origin is upper left 11(a3): 8(ptr) Variable Input 12(a4): 8(ptr) Variable Input 13(a5): 8(ptr) Variable Input + 15: TypePointer Output 7(fvec4) +16(@entryPointOutput): 15(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 14: 7(fvec4) Load 13(a5) @@ -99,14 +108,15 @@ gl_FragCoord origin is upper left Store 11(a3) 14 Store 10(a2) 14 Store 9(a1) 14 - 15: 7(fvec4) Load 9(a1) - 16: 7(fvec4) Load 10(a2) - 17: 7(fvec4) FAdd 15 16 - 18: 7(fvec4) Load 11(a3) + 17: 7(fvec4) Load 9(a1) + 18: 7(fvec4) Load 10(a2) 19: 7(fvec4) FAdd 17 18 - 20: 7(fvec4) Load 12(a4) + 20: 7(fvec4) Load 11(a3) 21: 7(fvec4) FAdd 19 20 - 22: 7(fvec4) Load 13(a5) + 22: 7(fvec4) Load 12(a4) 23: 7(fvec4) FAdd 21 22 - ReturnValue 23 + 24: 7(fvec4) Load 13(a5) + 25: 7(fvec4) FAdd 23 24 + Store 16(@entryPointOutput) 25 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 5faeceb8..a51cb165 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -6,28 +6,31 @@ gl_FragCoord origin is upper left 0:26 Function Parameters: 0:26 'input' (in 4-component vector of float) 0:? Sequence -0:27 Branch: Return with expression -0:27 add (temp 4-component vector of float) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:27 Constant: 0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) +0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) @@ -45,28 +48,31 @@ gl_FragCoord origin is upper left 0:26 Function Parameters: 0:26 'input' (in 4-component vector of float) 0:? Sequence -0:27 Branch: Return with expression -0:27 add (temp 4-component vector of float) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 add (temp 4-component vector of float) +0:27 'input' (in 4-component vector of float) +0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) +0:27 Constant: +0:27 0 (const uint) +0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) +0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:27 Constant: 0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) +0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) +0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) +0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) @@ -75,90 +81,94 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 39 +// Id's are bound by 41 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" - Name 11 "" - MemberName 11 0 "v1" + Name 9 "@entryPointOutput" + Name 11 "input" Name 13 "" - Name 20 "" - MemberName 20 0 "v2" + MemberName 13 0 "v1" + Name 15 "" Name 22 "" - Name 26 "" - MemberName 26 0 "v3" - MemberName 26 1 "i3" + MemberName 22 0 "v2" + Name 24 "" Name 28 "" - Name 32 "" - MemberName 32 0 "v4" - MemberName 32 1 "i4" - MemberName 32 2 "f1" - MemberName 32 3 "f3" - MemberName 32 4 "f4" - MemberName 32 5 "f5" - MemberName 32 6 "f6" - MemberName 32 7 "f7" + MemberName 28 0 "v3" + MemberName 28 1 "i3" + Name 30 "" Name 34 "" - MemberDecorate 11 0 Offset 0 - Decorate 11 Block - Decorate 13 DescriptorSet 0 - MemberDecorate 20 0 Offset 0 - Decorate 20 BufferBlock - Decorate 22 DescriptorSet 0 - MemberDecorate 26 0 Offset 0 - MemberDecorate 26 1 Offset 20 - Decorate 26 Block - Decorate 28 DescriptorSet 0 - MemberDecorate 32 0 Offset 16 - MemberDecorate 32 1 Offset 48 - MemberDecorate 32 2 Offset 60 - MemberDecorate 32 3 Offset 64 - MemberDecorate 32 4 Offset 68 - MemberDecorate 32 5 Offset 72 - MemberDecorate 32 6 Offset 76 - MemberDecorate 32 7 Offset 80 - Decorate 32 BufferBlock - Decorate 34 DescriptorSet 0 + MemberName 34 0 "v4" + MemberName 34 1 "i4" + MemberName 34 2 "f1" + MemberName 34 3 "f3" + MemberName 34 4 "f4" + MemberName 34 5 "f5" + MemberName 34 6 "f6" + MemberName 34 7 "f7" + Name 36 "" + MemberDecorate 13 0 Offset 0 + Decorate 13 Block + Decorate 15 DescriptorSet 0 + MemberDecorate 22 0 Offset 0 + Decorate 22 BufferBlock + Decorate 24 DescriptorSet 0 + MemberDecorate 28 0 Offset 0 + MemberDecorate 28 1 Offset 20 + Decorate 28 Block + Decorate 30 DescriptorSet 0 + MemberDecorate 34 0 Offset 16 + MemberDecorate 34 1 Offset 48 + MemberDecorate 34 2 Offset 60 + MemberDecorate 34 3 Offset 64 + MemberDecorate 34 4 Offset 68 + MemberDecorate 34 5 Offset 72 + MemberDecorate 34 6 Offset 76 + MemberDecorate 34 7 Offset 80 + Decorate 34 BufferBlock + Decorate 36 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 11: TypeStruct 7(fvec4) - 12: TypePointer Uniform 11(struct) - 13: 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 7(fvec4) - 20: TypeStruct 7(fvec4) - 21: TypePointer Uniform 20(struct) - 22: 21(ptr) Variable Uniform - 26: TypeStruct 7(fvec4) 14(int) - 27: TypePointer Uniform 26(struct) - 28: 27(ptr) Variable Uniform - 32: TypeStruct 7(fvec4) 14(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) - 33: TypePointer Uniform 32(struct) - 34: 33(ptr) Variable Uniform + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 13: TypeStruct 7(fvec4) + 14: TypePointer Uniform 13(struct) + 15: 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Uniform 7(fvec4) + 22: TypeStruct 7(fvec4) + 23: TypePointer Uniform 22(struct) + 24: 23(ptr) Variable Uniform + 28: TypeStruct 7(fvec4) 16(int) + 29: TypePointer Uniform 28(struct) + 30: 29(ptr) Variable Uniform + 34: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) + 35: TypePointer Uniform 34(struct) + 36: 35(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 17: 16(ptr) AccessChain 13 15 - 18: 7(fvec4) Load 17 - 19: 7(fvec4) FAdd 10 18 - 23: 16(ptr) AccessChain 22 15 - 24: 7(fvec4) Load 23 - 25: 7(fvec4) FAdd 19 24 - 29: 16(ptr) AccessChain 28 15 - 30: 7(fvec4) Load 29 - 31: 7(fvec4) FAdd 25 30 - 35: 16(ptr) AccessChain 34 15 - 36: 7(fvec4) Load 35 - 37: 7(fvec4) FAdd 31 36 - ReturnValue 37 + 12: 7(fvec4) Load 11(input) + 19: 18(ptr) AccessChain 15 17 + 20: 7(fvec4) Load 19 + 21: 7(fvec4) FAdd 12 20 + 25: 18(ptr) AccessChain 24 17 + 26: 7(fvec4) Load 25 + 27: 7(fvec4) FAdd 21 26 + 31: 18(ptr) AccessChain 30 17 + 32: 7(fvec4) Load 31 + 33: 7(fvec4) FAdd 27 32 + 37: 18(ptr) AccessChain 36 17 + 38: 7(fvec4) Load 37 + 39: 7(fvec4) FAdd 33 38 + Store 9(@entryPointOutput) 39 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 0a616db3..0ce3e645 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,7 +321,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 143 +// Id's are bound by 145 Capability Shader Capability Sampled1D @@ -323,7 +329,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -349,7 +355,8 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 142 "g_tTex1df4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -363,8 +370,8 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex1df4) DescriptorSet 0 - Decorate 142(g_tTex1df4) Binding 0 + Decorate 144(g_tTex1df4) DescriptorSet 0 + Decorate 144(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -435,7 +442,9 @@ gl_FragCoord origin is upper left 135: 130(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 130(fvec4) 138: 23(int) Constant 1 - 142(g_tTex1df4): 10(ptr) Variable UniformConstant + 140: TypePointer Output 131(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -515,6 +524,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 133(psout) 138 Store 139 134 - 140:131(PS_OUTPUT) Load 133(psout) - ReturnValue 140 + 142:131(PS_OUTPUT) Load 133(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index e2dc1db7..8dbdc57b 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -151,8 +151,11 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -310,8 +313,11 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 04ac605c..4710ba42 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -6,19 +6,22 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 add (temp 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) -0:3 Convert int to float (temp 4-component vector of float) -0:3 Convert float to int (temp 4-component vector of int) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 'input' (in 4-component vector of float) -0:3 Constant: -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 Branch: Return 0:? Linker Objects @@ -32,54 +35,61 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 add (temp 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:3 add (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) -0:3 Convert int to float (temp 4-component vector of float) -0:3 Convert float to int (temp 4-component vector of int) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 'input' (in 4-component vector of float) -0:3 Constant: -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 -0:3 1.198000 +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (in 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 26 +// Id's are bound by 28 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" + Name 9 "@entryPointOutput" + Name 11 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input - 17: TypeInt 32 1 - 18: TypeVector 17(int) 4 - 22: 6(float) Constant 1067014160 - 23: 7(fvec4) ConstantComposite 22 22 22 22 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 19: TypeInt 32 1 + 20: TypeVector 19(int) 4 + 24: 6(float) Constant 1067014160 + 25: 7(fvec4) ConstantComposite 24 24 24 24 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 11: 6(float) CompositeExtract 10 0 - 12: 6(float) CompositeExtract 10 1 - 13: 6(float) CompositeExtract 10 2 - 14: 6(float) CompositeExtract 10 3 - 15: 7(fvec4) CompositeConstruct 11 12 13 14 - 16: 7(fvec4) Load 9(input) - 19: 18(ivec4) ConvertFToS 16 - 20: 7(fvec4) ConvertSToF 19 - 21: 7(fvec4) FAdd 15 20 - 24: 7(fvec4) FAdd 21 23 - ReturnValue 24 + 12: 7(fvec4) Load 11(input) + 13: 6(float) CompositeExtract 12 0 + 14: 6(float) CompositeExtract 12 1 + 15: 6(float) CompositeExtract 12 2 + 16: 6(float) CompositeExtract 12 3 + 17: 7(fvec4) CompositeConstruct 13 14 15 16 + 18: 7(fvec4) Load 11(input) + 21: 20(ivec4) ConvertFToS 18 + 22: 7(fvec4) ConvertSToF 21 + 23: 7(fvec4) FAdd 17 22 + 26: 7(fvec4) FAdd 23 25 + Store 9(@entryPointOutput) 26 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index ff096784..ce354f17 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -98,13 +98,16 @@ gl_FragCoord origin is upper left 0:14 Convert int to float (temp float) 0:14 'd' (temp int) 0:14 'input' (in 4-component vector of float) -0:15 Branch: Return with expression -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return 0:? Linker Objects @@ -210,23 +213,26 @@ gl_FragCoord origin is upper left 0:14 Convert int to float (temp float) 0:14 'd' (temp int) 0:14 'input' (in 4-component vector of float) -0:15 Branch: Return with expression -0:15 add (temp 4-component vector of float) -0:15 vector-scale (temp 4-component vector of float) -0:15 Convert int to float (temp float) -0:15 'e' (temp int) -0:15 'ret' (temp 4-component vector of float) -0:15 'f' (temp 4-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:15 add (temp 4-component vector of float) +0:15 vector-scale (temp 4-component vector of float) +0:15 Convert int to float (temp float) +0:15 'e' (temp int) +0:15 'ret' (temp 4-component vector of float) +0:15 'f' (temp 4-component vector of float) +0:15 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 89 +// Id's are bound by 91 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 22 + EntryPoint Fragment 4 "PixelShaderFunction" 22 83 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "a" @@ -237,6 +243,7 @@ gl_FragCoord origin is upper left Name 22 "input" Name 40 "e" Name 57 "f" + Name 83 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -257,6 +264,8 @@ gl_FragCoord origin is upper left 64: 59(int) Constant 1 65: TypePointer Input 15(float) 68: TypeBool + 82: TypePointer Output 16(fvec4) +83(@entryPointOutput): 82(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 8(a): 7(ptr) Variable Function @@ -346,11 +355,12 @@ gl_FragCoord origin is upper left 71: Label 81: 16(fvec4) Load 58 Store 57(f) 81 - 82: 6(int) Load 40(e) - 83: 15(float) ConvertSToF 82 - 84: 16(fvec4) Load 18(ret) - 85: 16(fvec4) VectorTimesScalar 84 83 - 86: 16(fvec4) Load 57(f) - 87: 16(fvec4) FAdd 85 86 - ReturnValue 87 + 84: 6(int) Load 40(e) + 85: 15(float) ConvertSToF 84 + 86: 16(fvec4) Load 18(ret) + 87: 16(fvec4) VectorTimesScalar 86 85 + 88: 16(fvec4) Load 57(f) + 89: 16(fvec4) FAdd 87 88 + Store 83(@entryPointOutput) 89 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 0dcfca62..0dab6a80 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -34,8 +34,11 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Branch: Return with expression -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Branch: Return 0:? Linker Objects @@ -77,23 +80,27 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Branch: Return with expression -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 34 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 31 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" + Name 31 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -118,11 +125,14 @@ gl_FragCoord origin is upper left 26: 13(float) Constant 1065353216 27: 21(fvec4) ConstantComposite 26 26 26 26 28: TypePointer Function 21(fvec4) + 30: TypePointer Output 22(PS_OUTPUT) +31(@entryPointOutput): 30(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function 29: 28(ptr) AccessChain 24(ps_output) 25 Store 29 27 - 30:22(PS_OUTPUT) Load 24(ps_output) - ReturnValue 30 + 32:22(PS_OUTPUT) Load 24(ps_output) + Store 31(@entryPointOutput) 32 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 9bef3328..3fdd46f0 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -22,8 +22,11 @@ gl_FragCoord origin is upper left 0:5 'input' (in 4-component vector of float) 0:5 'input' (in 4-component vector of float) 0:5 Loop Body -0:5 Branch: Return with expression -0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Branch: Return 0:? Linker Objects @@ -53,30 +56,36 @@ gl_FragCoord origin is upper left 0:5 'input' (in 4-component vector of float) 0:5 'input' (in 4-component vector of float) 0:5 Loop Body -0:5 Branch: Return with expression -0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 31 +// Id's are bound by 33 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 23 + EntryPoint Fragment 4 "PixelShaderFunction" 23 25 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 23 "input" + Name 23 "@entryPointOutput" + Name 25 "input" 2: TypeVoid 3: TypeFunction 2 10: TypeBool 11: 10(bool) ConstantFalse 20: TypeFloat 32 21: TypeVector 20(float) 4 - 22: TypePointer Input 21(fvec4) - 23(input): 22(ptr) Variable Input - 28: TypeVector 10(bool) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: TypePointer Input 21(fvec4) + 25(input): 24(ptr) Variable Input + 30: TypeVector 10(bool) 4 4(PixelShaderFunction): 2 Function None 3 5: Label Branch 6 @@ -102,14 +111,15 @@ gl_FragCoord origin is upper left LoopMerge 18 19 None Branch 17 17: Label - 24: 21(fvec4) Load 23(input) - ReturnValue 24 + 26: 21(fvec4) Load 25(input) + Store 23(@entryPointOutput) 26 + Return 19: Label - 26: 21(fvec4) Load 23(input) - 27: 21(fvec4) Load 23(input) - 29: 28(bvec4) FOrdEqual 26 27 - 30: 10(bool) All 29 - BranchConditional 30 16 18 + 28: 21(fvec4) Load 25(input) + 29: 21(fvec4) Load 25(input) + 31: 30(bvec4) FOrdEqual 28 29 + 32: 10(bool) All 31 + BranchConditional 32 16 18 18: Label Return FunctionEnd diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out new file mode 100755 index 00000000..96f5b78b --- /dev/null +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -0,0 +1,127 @@ +hlsl.entry-out.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Parameters: +0:7 'input' (in 4-component vector of float) +0:7 'out1' (out 4-component vector of float) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'out1' (out 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 move second child to first child (temp 2-component vector of float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 2-component vector of int) +0:10 i: direct index for structure (temp 2-component vector of int) +0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 3 (const int) +0:10 3 (const int) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:11 'out1' (out 4-component vector of float) +0:11 Branch: Return +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Parameters: +0:7 'input' (in 4-component vector of float) +0:7 'out1' (out 4-component vector of float) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'out1' (out 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:9 move second child to first child (temp 2-component vector of float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 2.000000 +0:10 move second child to first child (temp 2-component vector of int) +0:10 i: direct index for structure (temp 2-component vector of int) +0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 3 (const int) +0:10 3 (const int) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:11 'out1' (out 4-component vector of float) +0:11 Branch: Return +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 18 29 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "out1" + Name 11 "input" + Name 16 "OutParam" + MemberName 16(OutParam) 0 "v" + MemberName 16(OutParam) 1 "i" + Name 18 "out2" + Name 29 "@entryPointOutput" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(out1): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input + 13: TypeVector 6(float) 2 + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16(OutParam): TypeStruct 13(fvec2) 15(ivec2) + 17: TypePointer Output 16(OutParam) + 18(out2): 17(ptr) Variable Output + 19: 14(int) Constant 0 + 20: 6(float) Constant 1073741824 + 21: 13(fvec2) ConstantComposite 20 20 + 22: TypePointer Output 13(fvec2) + 24: 14(int) Constant 1 + 25: 14(int) Constant 3 + 26: 15(ivec2) ConstantComposite 25 25 + 27: TypePointer Output 15(ivec2) +29(@entryPointOutput): 8(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12: 7(fvec4) Load 11(input) + Store 9(out1) 12 + 23: 22(ptr) AccessChain 18(out2) 19 + Store 23 21 + 28: 27(ptr) AccessChain 18(out2) 24 + Store 28 26 + 30: 7(fvec4) Load 9(out1) + Store 29(@entryPointOutput) 30 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 45d2e996..3fd9a973 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -31,9 +31,12 @@ gl_FragCoord origin is upper left 0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -44,9 +47,12 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -145,9 +151,12 @@ gl_FragCoord origin is upper left 0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence -0:6 Branch: Return with expression -0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -158,9 +167,12 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence -0:7 Branch: Return with expression -0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) 0:7 'input' (in 4-component vector of float) @@ -225,17 +237,18 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 112 +// Id's are bound by 114 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 13 + EntryPoint Fragment 4 "PixelShaderFunction" 13 43 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 13 "input" - Name 89 "ii" - Name 109 "ii" + Name 43 "@entryPointOutput" + Name 91 "ii" + Name 111 "ii" 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -245,21 +258,23 @@ gl_FragCoord origin is upper left 15: 10(float) Constant 1065353216 29: TypeBool 30: TypeVector 29(bool) 4 - 60: 10(float) Constant 1073741824 - 68: TypeInt 32 0 - 69: 68(int) Constant 0 - 70: TypePointer Input 10(float) - 87: TypeInt 32 1 - 88: TypePointer Function 87(int) - 90: 87(int) Constant 4294967295 - 97: 87(int) Constant 3 - 100: 87(int) Constant 2 - 106: 87(int) Constant 1 - 108: TypePointer Function 10(float) + 42: TypePointer Output 11(fvec4) +43(@entryPointOutput): 42(ptr) Variable Output + 62: 10(float) Constant 1073741824 + 70: TypeInt 32 0 + 71: 70(int) Constant 0 + 72: TypePointer Input 10(float) + 89: TypeInt 32 1 + 90: TypePointer Function 89(int) + 92: 89(int) Constant 4294967295 + 99: 89(int) Constant 3 + 102: 89(int) Constant 2 + 108: 89(int) Constant 1 + 110: TypePointer Function 10(float) 4(PixelShaderFunction): 2 Function None 3 5: Label - 89(ii): 88(ptr) Variable Function - 109(ii): 108(ptr) Variable Function + 91(ii): 90(ptr) Variable Function + 111(ii): 110(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None @@ -308,97 +323,99 @@ gl_FragCoord origin is upper left 41: 29(bool) Any 40 BranchConditional 41 34 35 34: Label - 42: 11(fvec4) Load 13(input) - 43: 11(fvec4) FNegate 42 - ReturnValue 43 + 44: 11(fvec4) Load 13(input) + 45: 11(fvec4) FNegate 44 + Store 43(@entryPointOutput) 45 + Return 36: Label Branch 33 35: Label - 45: 11(fvec4) Load 13(input) - 46: 11(fvec4) CompositeConstruct 15 15 15 15 - 47: 11(fvec4) FSub 45 46 - Store 13(input) 47 - Branch 48 - 48: Label - LoopMerge 50 51 None - Branch 52 - 52: Label - 53: 11(fvec4) Load 13(input) - 54: 11(fvec4) Load 13(input) - 55: 30(bvec4) FOrdNotEqual 53 54 - 56: 29(bool) Any 55 - BranchConditional 56 49 50 - 49: Label - 57: 11(fvec4) Load 13(input) - 58: 11(fvec4) FNegate 57 - ReturnValue 58 - 51: Label - 61: 11(fvec4) Load 13(input) - 62: 11(fvec4) CompositeConstruct 60 60 60 60 - 63: 11(fvec4) FAdd 61 62 - Store 13(input) 63 - Branch 48 + 47: 11(fvec4) Load 13(input) + 48: 11(fvec4) CompositeConstruct 15 15 15 15 + 49: 11(fvec4) FSub 47 48 + Store 13(input) 49 + Branch 50 50: Label - Branch 64 - 64: Label - LoopMerge 66 67 None - Branch 65 - 65: Label - 71: 70(ptr) AccessChain 13(input) 69 - 72: 10(float) Load 71 - 73: 29(bool) FOrdGreaterThan 72 60 - SelectionMerge 75 None - BranchConditional 73 74 75 - 74: Label - Branch 66 - 75: Label + LoopMerge 52 53 None + Branch 54 + 54: Label + 55: 11(fvec4) Load 13(input) + 56: 11(fvec4) Load 13(input) + 57: 30(bvec4) FOrdNotEqual 55 56 + 58: 29(bool) Any 57 + BranchConditional 58 51 52 + 51: Label + 59: 11(fvec4) Load 13(input) + 60: 11(fvec4) FNegate 59 + Store 43(@entryPointOutput) 60 + Return + 53: Label + 63: 11(fvec4) Load 13(input) + 64: 11(fvec4) CompositeConstruct 62 62 62 62 + 65: 11(fvec4) FAdd 63 64 + Store 13(input) 65 + Branch 50 + 52: Label + Branch 66 + 66: Label + LoopMerge 68 69 None Branch 67 67: Label - Branch 64 - 66: Label - Branch 77 + 73: 72(ptr) AccessChain 13(input) 71 + 74: 10(float) Load 73 + 75: 29(bool) FOrdGreaterThan 74 62 + SelectionMerge 77 None + BranchConditional 75 76 77 + 76: Label + Branch 68 77: Label - LoopMerge 79 80 None - Branch 78 - 78: Label - 81: 70(ptr) AccessChain 13(input) 69 - 82: 10(float) Load 81 - 83: 29(bool) FOrdGreaterThan 82 60 - SelectionMerge 85 None - BranchConditional 83 84 85 - 84: Label - Branch 80 - 85: Label + Branch 69 + 69: Label + Branch 66 + 68: Label + Branch 79 + 79: Label + LoopMerge 81 82 None Branch 80 80: Label - Branch 77 - 79: Label - Store 89(ii) 90 - Branch 91 - 91: Label - LoopMerge 93 94 None - Branch 95 - 95: Label - 96: 87(int) Load 89(ii) - 98: 29(bool) SLessThan 96 97 - BranchConditional 98 92 93 - 92: Label - 99: 87(int) Load 89(ii) - 101: 29(bool) IEqual 99 100 - SelectionMerge 103 None - BranchConditional 101 102 103 - 102: Label - Branch 94 - 103: Label - Branch 94 - 94: Label - 105: 87(int) Load 89(ii) - 107: 87(int) IAdd 105 106 - Store 89(ii) 107 - Branch 91 + 83: 72(ptr) AccessChain 13(input) 71 + 84: 10(float) Load 83 + 85: 29(bool) FOrdGreaterThan 84 62 + SelectionMerge 87 None + BranchConditional 85 86 87 + 86: Label + Branch 82 + 87: Label + Branch 82 + 82: Label + Branch 79 + 81: Label + Store 91(ii) 92 + Branch 93 93: Label - 110: 10(float) Load 109(ii) - 111: 10(float) FSub 110 15 - Store 109(ii) 111 + LoopMerge 95 96 None + Branch 97 + 97: Label + 98: 89(int) Load 91(ii) + 100: 29(bool) SLessThan 98 99 + BranchConditional 100 94 95 + 94: Label + 101: 89(int) Load 91(ii) + 103: 29(bool) IEqual 101 102 + SelectionMerge 105 None + BranchConditional 103 104 105 + 104: Label + Branch 96 + 105: Label + Branch 96 + 96: Label + 107: 89(int) Load 91(ii) + 109: 89(int) IAdd 107 108 + Store 91(ii) 109 + Branch 93 + 95: Label + 112: 10(float) Load 111(ii) + 113: 10(float) FSub 112 15 + Store 111(ii) 113 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 0cac13aa..58f7a77c 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -91,8 +91,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -202,8 +205,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -219,14 +225,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 112 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 99 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -246,10 +252,11 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 102 "g_tTex1df4a" - Name 103 "g_tTex1df4" - Name 106 "g_tTex1di4a" - Name 109 "g_tTex1du4a" + Name 99 "@entryPointOutput" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4a" + Name 111 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -259,12 +266,12 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(g_tTex1df4a) DescriptorSet 0 - Decorate 102(g_tTex1df4a) Binding 1 - Decorate 103(g_tTex1df4) DescriptorSet 0 - Decorate 103(g_tTex1df4) Binding 0 - Decorate 106(g_tTex1di4a) DescriptorSet 0 - Decorate 109(g_tTex1du4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4a) DescriptorSet 0 + Decorate 111(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -326,16 +333,18 @@ gl_FragCoord origin is upper left 93: 7(fvec4) ConstantComposite 87 87 87 87 95: 25(int) Constant 1 96: TypePointer Function 6(float) - 100: TypeImage 6(float) 1D array sampled format:Unknown - 101: TypePointer UniformConstant 100 -102(g_tTex1df4a): 101(ptr) Variable UniformConstant - 103(g_tTex1df4): 101(ptr) Variable UniformConstant - 104: TypeImage 25(int) 1D array sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTex1di4a): 105(ptr) Variable UniformConstant - 107: TypeImage 42(int) 1D array sampled format:Unknown - 108: TypePointer UniformConstant 107 -109(g_tTex1du4a): 108(ptr) Variable UniformConstant + 98: TypePointer Output 90(PS_OUTPUT) +99(@entryPointOutput): 98(ptr) Variable Output + 102: TypeImage 6(float) 1D array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 25(int) 1D array sampled format:Unknown + 107: TypePointer UniformConstant 106 +108(g_tTex1di4a): 107(ptr) Variable UniformConstant + 109: TypeImage 42(int) 1D array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTex1du4a): 110(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -379,6 +388,7 @@ gl_FragCoord origin is upper left Store 94 93 97: 96(ptr) AccessChain 92(psout) 95 Store 97 87 - 98:90(PS_OUTPUT) Load 92(psout) - ReturnValue 98 + 100:90(PS_OUTPUT) Load 92(psout) + Store 99(@entryPointOutput) 100 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index fc90646c..c75a0598 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -85,8 +85,11 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Branch: Return with expression -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Sequence +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -194,8 +197,11 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Branch: Return with expression -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Sequence +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -215,13 +221,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 121 +// Id's are bound by 123 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -241,14 +247,15 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 101 "g_sSamp2d" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4" - Name 111 "g_tTex1du4" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" + Name 100 "@entryPointOutput" + Name 103 "g_sSamp2d" + Name 106 "g_tTex1df4a" + Name 107 "g_tTex1df4" + Name 110 "g_tTex1di4" + Name 113 "g_tTex1du4" + Name 116 "g_tTex3df4" + Name 119 "g_tTex3di4" + Name 122 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -258,16 +265,16 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_sSamp2d) DescriptorSet 0 - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4) DescriptorSet 0 - Decorate 111(g_tTex1du4) DescriptorSet 0 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 103(g_sSamp2d) DescriptorSet 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 + Decorate 107(g_tTex1df4) DescriptorSet 0 + Decorate 107(g_tTex1df4) Binding 0 + Decorate 110(g_tTex1di4) DescriptorSet 0 + Decorate 113(g_tTex1du4) DescriptorSet 0 + Decorate 116(g_tTex3df4) DescriptorSet 0 + Decorate 119(g_tTex3di4) DescriptorSet 0 + Decorate 122(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -330,26 +337,28 @@ gl_FragCoord origin is upper left 94: 7(fvec4) ConstantComposite 93 93 93 93 96: 24(int) Constant 1 97: TypePointer Function 6(float) - 101(g_sSamp2d): 15(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 24(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1di4): 107(ptr) Variable UniformConstant - 109: TypeImage 41(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 24(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 41(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 99: TypePointer Output 90(PS_OUTPUT) +100(@entryPointOutput): 99(ptr) Variable Output + 103(g_sSamp2d): 15(ptr) Variable UniformConstant + 104: TypeImage 6(float) 1D sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(g_tTex1df4a): 105(ptr) Variable UniformConstant + 107(g_tTex1df4): 105(ptr) Variable UniformConstant + 108: TypeImage 24(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1di4): 109(ptr) Variable UniformConstant + 111: TypeImage 41(int) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex1du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3df4): 115(ptr) Variable UniformConstant + 117: TypeImage 24(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3di4): 118(ptr) Variable UniformConstant + 120: TypeImage 41(int) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3du4): 121(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -393,6 +402,7 @@ gl_FragCoord origin is upper left Store 95 94 98: 97(ptr) AccessChain 92(psout) 96 Store 98 93 - 99:90(PS_OUTPUT) Load 92(psout) - ReturnValue 99 + 101:90(PS_OUTPUT) Load 92(psout) + Store 100(@entryPointOutput) 101 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 4e862ef8..209c041d 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -77,8 +77,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Branch: Return with expression -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Sequence +0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -178,8 +181,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Branch: Return with expression -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Sequence +0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -199,13 +205,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 118 +// Id's are bound by 120 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 97 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -223,14 +229,15 @@ Shader version: 450 Name 90 "VS_OUTPUT" MemberName 90(VS_OUTPUT) 0 "Pos" Name 92 "vsout" - Name 98 "g_sSamp2d" - Name 101 "g_tTex1df4a" - Name 102 "g_tTex1df4" - Name 105 "g_tTex1di4" - Name 108 "g_tTex1du4" - Name 111 "g_tTex3df4" - Name 114 "g_tTex3di4" - Name 117 "g_tTex3du4" + Name 97 "@entryPointOutput" + Name 100 "g_sSamp2d" + Name 103 "g_tTex1df4a" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -240,16 +247,16 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 98(g_sSamp2d) DescriptorSet 0 - Decorate 101(g_tTex1df4a) DescriptorSet 0 - Decorate 101(g_tTex1df4a) Binding 1 - Decorate 102(g_tTex1df4) DescriptorSet 0 - Decorate 102(g_tTex1df4) Binding 0 - Decorate 105(g_tTex1di4) DescriptorSet 0 - Decorate 108(g_tTex1du4) DescriptorSet 0 - Decorate 111(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 117(g_tTex3du4) DescriptorSet 0 + Decorate 100(g_sSamp2d) DescriptorSet 0 + Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -310,26 +317,28 @@ Shader version: 450 91: TypePointer Function 90(VS_OUTPUT) 93: 6(float) Constant 0 94: 7(fvec4) ConstantComposite 93 93 93 93 - 98(g_sSamp2d): 15(ptr) Variable UniformConstant - 99: TypeImage 6(float) 1D sampled format:Unknown - 100: TypePointer UniformConstant 99 -101(g_tTex1df4a): 100(ptr) Variable UniformConstant - 102(g_tTex1df4): 100(ptr) Variable UniformConstant - 103: TypeImage 24(int) 1D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex1di4): 104(ptr) Variable UniformConstant - 106: TypeImage 41(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3df4): 110(ptr) Variable UniformConstant - 112: TypeImage 24(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3di4): 113(ptr) Variable UniformConstant - 115: TypeImage 41(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3du4): 116(ptr) Variable UniformConstant + 96: TypePointer Output 90(VS_OUTPUT) +97(@entryPointOutput): 96(ptr) Variable Output + 100(g_sSamp2d): 15(ptr) Variable UniformConstant + 101: TypeImage 6(float) 1D sampled format:Unknown + 102: TypePointer UniformConstant 101 +103(g_tTex1df4a): 102(ptr) Variable UniformConstant + 104(g_tTex1df4): 102(ptr) Variable UniformConstant + 105: TypeImage 24(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 41(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 24(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 41(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -371,6 +380,7 @@ Shader version: 450 Store 77(txval42) 89 95: 8(ptr) AccessChain 92(vsout) 25 Store 95 94 - 96:90(VS_OUTPUT) Load 92(vsout) - ReturnValue 96 + 98:90(VS_OUTPUT) Load 92(vsout) + Store 97(@entryPointOutput) 98 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 056f16b2..2f856642 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -61,8 +61,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -145,8 +148,11 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Branch: Return with expression -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Sequence +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -165,13 +171,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 100 +// Id's are bound by 102 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 71 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -185,34 +191,35 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 74 "g_tTex1df4a" - Name 75 "g_tTex1df4" - Name 78 "g_tTex1di4" - Name 81 "g_tTex1du4" - Name 84 "g_tTex3df4" - Name 87 "g_tTex3di4" - Name 90 "g_tTex3du4" - Name 93 "g_tTexcdf4" - Name 96 "g_tTexcdi4" - Name 99 "g_tTexcdu4" + Name 71 "@entryPointOutput" + Name 76 "g_tTex1df4a" + Name 77 "g_tTex1df4" + Name 80 "g_tTex1di4" + Name 83 "g_tTex1du4" + Name 86 "g_tTex3df4" + Name 89 "g_tTex3di4" + Name 92 "g_tTex3du4" + Name 95 "g_tTexcdf4" + Name 98 "g_tTexcdi4" + Name 101 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 74(g_tTex1df4a) DescriptorSet 0 - Decorate 74(g_tTex1df4a) Binding 1 - Decorate 75(g_tTex1df4) DescriptorSet 0 - Decorate 75(g_tTex1df4) Binding 0 - Decorate 78(g_tTex1di4) DescriptorSet 0 - Decorate 81(g_tTex1du4) DescriptorSet 0 - Decorate 84(g_tTex3df4) DescriptorSet 0 - Decorate 87(g_tTex3di4) DescriptorSet 0 - Decorate 90(g_tTex3du4) DescriptorSet 0 - Decorate 93(g_tTexcdf4) DescriptorSet 0 - Decorate 96(g_tTexcdi4) DescriptorSet 0 - Decorate 99(g_tTexcdu4) DescriptorSet 0 + Decorate 76(g_tTex1df4a) DescriptorSet 0 + Decorate 76(g_tTex1df4a) Binding 1 + Decorate 77(g_tTex1df4) DescriptorSet 0 + Decorate 77(g_tTex1df4) Binding 0 + Decorate 80(g_tTex1di4) DescriptorSet 0 + Decorate 83(g_tTex1du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 89(g_tTex3di4) DescriptorSet 0 + Decorate 92(g_tTex3du4) DescriptorSet 0 + Decorate 95(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 101(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -261,34 +268,36 @@ gl_FragCoord origin is upper left 65: 6(float) Constant 1065353216 66: 7(fvec4) ConstantComposite 65 65 65 65 68: TypePointer Function 6(float) - 72: TypeImage 6(float) 1D sampled format:Unknown - 73: TypePointer UniformConstant 72 - 74(g_tTex1df4a): 73(ptr) Variable UniformConstant - 75(g_tTex1df4): 73(ptr) Variable UniformConstant - 76: TypeImage 24(int) 1D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex1di4): 77(ptr) Variable UniformConstant - 79: TypeImage 45(int) 1D sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1du4): 80(ptr) Variable UniformConstant - 82: TypeImage 6(float) 3D sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex3df4): 83(ptr) Variable UniformConstant - 85: TypeImage 24(int) 3D sampled format:Unknown - 86: TypePointer UniformConstant 85 - 87(g_tTex3di4): 86(ptr) Variable UniformConstant - 88: TypeImage 45(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3du4): 89(ptr) Variable UniformConstant - 91: TypeImage 6(float) Cube sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTexcdf4): 92(ptr) Variable UniformConstant - 94: TypeImage 24(int) Cube sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdi4): 95(ptr) Variable UniformConstant - 97: TypeImage 45(int) Cube sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdu4): 98(ptr) Variable UniformConstant + 70: TypePointer Output 62(PS_OUTPUT) +71(@entryPointOutput): 70(ptr) Variable Output + 74: TypeImage 6(float) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1df4a): 75(ptr) Variable UniformConstant + 77(g_tTex1df4): 75(ptr) Variable UniformConstant + 78: TypeImage 24(int) 1D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1di4): 79(ptr) Variable UniformConstant + 81: TypeImage 45(int) 1D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex1du4): 82(ptr) Variable UniformConstant + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 87: TypeImage 24(int) 3D sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex3di4): 88(ptr) Variable UniformConstant + 90: TypeImage 45(int) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3du4): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTexcdf4): 94(ptr) Variable UniformConstant + 96: TypeImage 24(int) Cube sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 99: TypeImage 45(int) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdu4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -314,6 +323,7 @@ gl_FragCoord origin is upper left Store 67 66 69: 68(ptr) AccessChain 64(psout) 26 Store 69 65 - 70:62(PS_OUTPUT) Load 64(psout) - ReturnValue 70 + 72:62(PS_OUTPUT) Load 64(psout) + Store 71(@entryPointOutput) 72 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index cded67f8..5cfae1ef 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -64,8 +64,11 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Branch: Return with expression -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Sequence +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -145,8 +148,11 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Branch: Return with expression -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Sequence +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -159,13 +165,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 83 +// Id's are bound by 85 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 72 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -179,22 +185,23 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 75 "g_tTex1df4a" - Name 76 "g_tTex1df4" - Name 79 "g_tTex1di4" - Name 82 "g_tTex1du4" + Name 72 "@entryPointOutput" + Name 77 "g_tTex1df4a" + Name 78 "g_tTex1df4" + Name 81 "g_tTex1di4" + Name 84 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 75(g_tTex1df4a) DescriptorSet 0 - Decorate 75(g_tTex1df4a) Binding 1 - Decorate 76(g_tTex1df4) DescriptorSet 0 - Decorate 76(g_tTex1df4) Binding 0 - Decorate 79(g_tTex1di4) DescriptorSet 0 - Decorate 82(g_tTex1du4) DescriptorSet 0 + Decorate 77(g_tTex1df4a) DescriptorSet 0 + Decorate 77(g_tTex1df4a) Binding 1 + Decorate 78(g_tTex1df4) DescriptorSet 0 + Decorate 78(g_tTex1df4) Binding 0 + Decorate 81(g_tTex1di4) DescriptorSet 0 + Decorate 84(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -244,16 +251,18 @@ gl_FragCoord origin is upper left 66: 6(float) Constant 1065353216 67: 7(fvec4) ConstantComposite 66 66 66 66 69: TypePointer Function 6(float) - 73: TypeImage 6(float) 1D array sampled format:Unknown - 74: TypePointer UniformConstant 73 - 75(g_tTex1df4a): 74(ptr) Variable UniformConstant - 76(g_tTex1df4): 74(ptr) Variable UniformConstant - 77: TypeImage 25(int) 1D array sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex1di4): 78(ptr) Variable UniformConstant - 80: TypeImage 45(int) 1D array sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex1du4): 81(ptr) Variable UniformConstant + 71: TypePointer Output 63(PS_OUTPUT) +72(@entryPointOutput): 71(ptr) Variable Output + 75: TypeImage 6(float) 1D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex1df4a): 76(ptr) Variable UniformConstant + 78(g_tTex1df4): 76(ptr) Variable UniformConstant + 79: TypeImage 25(int) 1D array sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1di4): 80(ptr) Variable UniformConstant + 82: TypeImage 45(int) 1D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex1du4): 83(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -279,6 +288,7 @@ gl_FragCoord origin is upper left Store 68 67 70: 69(ptr) AccessChain 65(psout) 27 Store 70 66 - 71:63(PS_OUTPUT) Load 65(psout) - ReturnValue 71 + 73:63(PS_OUTPUT) Load 65(psout) + Store 72(@entryPointOutput) 73 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 5386fc7c..ac59887b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -262,8 +262,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -548,8 +551,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -569,14 +575,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 220 +// Id's are bound by 222 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 204 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -616,12 +622,13 @@ gl_FragCoord origin is upper left MemberName 195(PS_OUTPUT) 0 "Color" MemberName 195(PS_OUTPUT) 1 "Depth" Name 197 "psout" - Name 205 "g_sSamp2d" - Name 208 "g_tTex1df4a" - Name 211 "g_tTex1di4a" - Name 214 "g_tTex1du4a" - Name 216 "c1" - Name 219 "c2" + Name 204 "@entryPointOutput" + Name 207 "g_sSamp2d" + Name 210 "g_tTex1df4a" + Name 213 "g_tTex1di4a" + Name 216 "g_tTex1du4a" + Name 218 "c1" + Name 221 "c2" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -631,11 +638,11 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 205(g_sSamp2d) DescriptorSet 0 - Decorate 208(g_tTex1df4a) DescriptorSet 0 - Decorate 208(g_tTex1df4a) Binding 0 - Decorate 211(g_tTex1di4a) DescriptorSet 0 - Decorate 214(g_tTex1du4a) DescriptorSet 0 + Decorate 207(g_sSamp2d) DescriptorSet 0 + Decorate 210(g_tTex1df4a) DescriptorSet 0 + Decorate 210(g_tTex1df4a) Binding 0 + Decorate 213(g_tTex1di4a) DescriptorSet 0 + Decorate 216(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -688,21 +695,23 @@ gl_FragCoord origin is upper left 198: 6(float) Constant 1065353216 199: 7(fvec4) ConstantComposite 198 198 198 198 201: TypePointer Function 6(float) - 205(g_sSamp2d): 15(ptr) Variable UniformConstant - 206: TypeImage 6(float) 1D array sampled format:Unknown - 207: TypePointer UniformConstant 206 -208(g_tTex1df4a): 207(ptr) Variable UniformConstant - 209: TypeImage 24(int) 1D array sampled format:Unknown - 210: TypePointer UniformConstant 209 -211(g_tTex1di4a): 210(ptr) Variable UniformConstant - 212: TypeImage 39(int) 1D array sampled format:Unknown - 213: TypePointer UniformConstant 212 -214(g_tTex1du4a): 213(ptr) Variable UniformConstant - 215: TypePointer UniformConstant 6(float) - 216(c1): 215(ptr) Variable UniformConstant - 217: TypeVector 6(float) 2 - 218: TypePointer UniformConstant 217(fvec2) - 219(c2): 218(ptr) Variable UniformConstant + 203: TypePointer Output 195(PS_OUTPUT) +204(@entryPointOutput): 203(ptr) Variable Output + 207(g_sSamp2d): 15(ptr) Variable UniformConstant + 208: TypeImage 6(float) 1D array sampled format:Unknown + 209: TypePointer UniformConstant 208 +210(g_tTex1df4a): 209(ptr) Variable UniformConstant + 211: TypeImage 24(int) 1D array sampled format:Unknown + 212: TypePointer UniformConstant 211 +213(g_tTex1di4a): 212(ptr) Variable UniformConstant + 214: TypeImage 39(int) 1D array sampled format:Unknown + 215: TypePointer UniformConstant 214 +216(g_tTex1du4a): 215(ptr) Variable UniformConstant + 217: TypePointer UniformConstant 6(float) + 218(c1): 217(ptr) Variable UniformConstant + 219: TypeVector 6(float) 2 + 220: TypePointer UniformConstant 219(fvec2) + 221(c2): 220(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -878,6 +887,7 @@ gl_FragCoord origin is upper left Store 200 199 202: 201(ptr) AccessChain 197(psout) 57 Store 202 198 - 203:195(PS_OUTPUT) Load 197(psout) - ReturnValue 203 + 205:195(PS_OUTPUT) Load 197(psout) + Store 204(@entryPointOutput) 205 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 0152b079..63c9946d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -262,8 +262,11 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Branch: Return with expression -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Sequence +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -552,8 +555,11 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Branch: Return with expression -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Sequence +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -577,13 +583,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 230 +// Id's are bound by 232 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 205 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -623,16 +629,17 @@ gl_FragCoord origin is upper left MemberName 196(PS_OUTPUT) 0 "Color" MemberName 196(PS_OUTPUT) 1 "Depth" Name 198 "psout" - Name 206 "g_sSamp2d" - Name 209 "g_tTex1df4a" - Name 210 "g_tTex1df4" - Name 213 "g_tTex1di4" - Name 216 "g_tTex1du4" - Name 219 "g_tTex3df4" - Name 222 "g_tTex3di4" - Name 225 "g_tTex3du4" - Name 227 "c1" - Name 229 "c4" + Name 205 "@entryPointOutput" + Name 208 "g_sSamp2d" + Name 211 "g_tTex1df4a" + Name 212 "g_tTex1df4" + Name 215 "g_tTex1di4" + Name 218 "g_tTex1du4" + Name 221 "g_tTex3df4" + Name 224 "g_tTex3di4" + Name 227 "g_tTex3du4" + Name 229 "c1" + Name 231 "c4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -642,16 +649,16 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 206(g_sSamp2d) DescriptorSet 0 - Decorate 209(g_tTex1df4a) DescriptorSet 0 - Decorate 209(g_tTex1df4a) Binding 1 - Decorate 210(g_tTex1df4) DescriptorSet 0 - Decorate 210(g_tTex1df4) Binding 0 - Decorate 213(g_tTex1di4) DescriptorSet 0 - Decorate 216(g_tTex1du4) DescriptorSet 0 - Decorate 219(g_tTex3df4) DescriptorSet 0 - Decorate 222(g_tTex3di4) DescriptorSet 0 - Decorate 225(g_tTex3du4) DescriptorSet 0 + Decorate 208(g_sSamp2d) DescriptorSet 0 + Decorate 211(g_tTex1df4a) DescriptorSet 0 + Decorate 211(g_tTex1df4a) Binding 1 + Decorate 212(g_tTex1df4) DescriptorSet 0 + Decorate 212(g_tTex1df4) Binding 0 + Decorate 215(g_tTex1di4) DescriptorSet 0 + Decorate 218(g_tTex1du4) DescriptorSet 0 + Decorate 221(g_tTex3df4) DescriptorSet 0 + Decorate 224(g_tTex3di4) DescriptorSet 0 + Decorate 227(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -705,30 +712,32 @@ gl_FragCoord origin is upper left 199: 6(float) Constant 1065353216 200: 7(fvec4) ConstantComposite 199 199 199 199 202: TypePointer Function 6(float) - 206(g_sSamp2d): 15(ptr) Variable UniformConstant - 207: TypeImage 6(float) 1D sampled format:Unknown - 208: TypePointer UniformConstant 207 -209(g_tTex1df4a): 208(ptr) Variable UniformConstant - 210(g_tTex1df4): 208(ptr) Variable UniformConstant - 211: TypeImage 24(int) 1D sampled format:Unknown - 212: TypePointer UniformConstant 211 - 213(g_tTex1di4): 212(ptr) Variable UniformConstant - 214: TypeImage 39(int) 1D sampled format:Unknown - 215: TypePointer UniformConstant 214 - 216(g_tTex1du4): 215(ptr) Variable UniformConstant - 217: TypeImage 6(float) 3D sampled format:Unknown - 218: TypePointer UniformConstant 217 - 219(g_tTex3df4): 218(ptr) Variable UniformConstant - 220: TypeImage 24(int) 3D sampled format:Unknown - 221: TypePointer UniformConstant 220 - 222(g_tTex3di4): 221(ptr) Variable UniformConstant - 223: TypeImage 39(int) 3D sampled format:Unknown - 224: TypePointer UniformConstant 223 - 225(g_tTex3du4): 224(ptr) Variable UniformConstant - 226: TypePointer UniformConstant 6(float) - 227(c1): 226(ptr) Variable UniformConstant - 228: TypePointer UniformConstant 7(fvec4) - 229(c4): 228(ptr) Variable UniformConstant + 204: TypePointer Output 196(PS_OUTPUT) +205(@entryPointOutput): 204(ptr) Variable Output + 208(g_sSamp2d): 15(ptr) Variable UniformConstant + 209: TypeImage 6(float) 1D sampled format:Unknown + 210: TypePointer UniformConstant 209 +211(g_tTex1df4a): 210(ptr) Variable UniformConstant + 212(g_tTex1df4): 210(ptr) Variable UniformConstant + 213: TypeImage 24(int) 1D sampled format:Unknown + 214: TypePointer UniformConstant 213 + 215(g_tTex1di4): 214(ptr) Variable UniformConstant + 216: TypeImage 39(int) 1D sampled format:Unknown + 217: TypePointer UniformConstant 216 + 218(g_tTex1du4): 217(ptr) Variable UniformConstant + 219: TypeImage 6(float) 3D sampled format:Unknown + 220: TypePointer UniformConstant 219 + 221(g_tTex3df4): 220(ptr) Variable UniformConstant + 222: TypeImage 24(int) 3D sampled format:Unknown + 223: TypePointer UniformConstant 222 + 224(g_tTex3di4): 223(ptr) Variable UniformConstant + 225: TypeImage 39(int) 3D sampled format:Unknown + 226: TypePointer UniformConstant 225 + 227(g_tTex3du4): 226(ptr) Variable UniformConstant + 228: TypePointer UniformConstant 6(float) + 229(c1): 228(ptr) Variable UniformConstant + 230: TypePointer UniformConstant 7(fvec4) + 231(c4): 230(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -904,6 +913,7 @@ gl_FragCoord origin is upper left Store 201 200 203: 202(ptr) AccessChain 198(psout) 57 Store 203 199 - 204:196(PS_OUTPUT) Load 198(psout) - ReturnValue 204 + 206:196(PS_OUTPUT) Load 198(psout) + Store 205(@entryPointOutput) 206 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 46561f90..5df5248e 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -334,8 +334,11 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Branch: Return with expression -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Sequence +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -700,8 +703,11 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Branch: Return with expression -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Sequence +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -729,14 +735,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 311 +// Id's are bound by 313 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -773,42 +779,43 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 268 "g_sSamp2d" - Name 271 "g_tTex1df4a" - Name 272 "g_tTex1df4" - Name 275 "g_tTex1di4" - Name 278 "g_tTex1du4" - Name 281 "g_tTex3df4" - Name 284 "g_tTex3di4" - Name 287 "g_tTex3du4" - Name 290 "g_tTexcdf4" - Name 293 "g_tTexcdi4" - Name 296 "g_tTexcdu4" - Name 298 "c1" - Name 301 "c3" - Name 303 "c4" - Name 305 "o1" - Name 308 "o3" - Name 310 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 274 "g_tTex1df4" + Name 277 "g_tTex1di4" + Name 280 "g_tTex1du4" + Name 283 "g_tTex3df4" + Name 286 "g_tTex3di4" + Name 289 "g_tTex3du4" + Name 292 "g_tTexcdf4" + Name 295 "g_tTexcdi4" + Name 298 "g_tTexcdu4" + Name 300 "c1" + Name 303 "c3" + Name 305 "c4" + Name 307 "o1" + Name 310 "o3" + Name 312 "o4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(g_sSamp2d) DescriptorSet 0 - Decorate 271(g_tTex1df4a) DescriptorSet 0 - Decorate 271(g_tTex1df4a) Binding 1 - Decorate 272(g_tTex1df4) DescriptorSet 0 - Decorate 272(g_tTex1df4) Binding 0 - Decorate 275(g_tTex1di4) DescriptorSet 0 - Decorate 278(g_tTex1du4) DescriptorSet 0 - Decorate 281(g_tTex3df4) DescriptorSet 0 - Decorate 284(g_tTex3di4) DescriptorSet 0 - Decorate 287(g_tTex3du4) DescriptorSet 0 - Decorate 290(g_tTexcdf4) DescriptorSet 0 - Decorate 293(g_tTexcdi4) DescriptorSet 0 - Decorate 296(g_tTexcdu4) DescriptorSet 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 1 + Decorate 274(g_tTex1df4) DescriptorSet 0 + Decorate 274(g_tTex1df4) Binding 0 + Decorate 277(g_tTex1di4) DescriptorSet 0 + Decorate 280(g_tTex1du4) DescriptorSet 0 + Decorate 283(g_tTex3df4) DescriptorSet 0 + Decorate 286(g_tTex3di4) DescriptorSet 0 + Decorate 289(g_tTex3du4) DescriptorSet 0 + Decorate 292(g_tTexcdf4) DescriptorSet 0 + Decorate 295(g_tTexcdi4) DescriptorSet 0 + Decorate 298(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -852,49 +859,51 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 268(g_sSamp2d): 15(ptr) Variable UniformConstant - 269: TypeImage 6(float) 1D sampled format:Unknown - 270: TypePointer UniformConstant 269 -271(g_tTex1df4a): 270(ptr) Variable UniformConstant - 272(g_tTex1df4): 270(ptr) Variable UniformConstant - 273: TypeImage 24(int) 1D sampled format:Unknown - 274: TypePointer UniformConstant 273 - 275(g_tTex1di4): 274(ptr) Variable UniformConstant - 276: TypeImage 44(int) 1D sampled format:Unknown - 277: TypePointer UniformConstant 276 - 278(g_tTex1du4): 277(ptr) Variable UniformConstant - 279: TypeImage 6(float) 3D sampled format:Unknown - 280: TypePointer UniformConstant 279 - 281(g_tTex3df4): 280(ptr) Variable UniformConstant - 282: TypeImage 24(int) 3D sampled format:Unknown - 283: TypePointer UniformConstant 282 - 284(g_tTex3di4): 283(ptr) Variable UniformConstant - 285: TypeImage 44(int) 3D sampled format:Unknown - 286: TypePointer UniformConstant 285 - 287(g_tTex3du4): 286(ptr) Variable UniformConstant - 288: TypeImage 6(float) Cube sampled format:Unknown - 289: TypePointer UniformConstant 288 - 290(g_tTexcdf4): 289(ptr) Variable UniformConstant - 291: TypeImage 24(int) Cube sampled format:Unknown - 292: TypePointer UniformConstant 291 - 293(g_tTexcdi4): 292(ptr) Variable UniformConstant - 294: TypeImage 44(int) Cube sampled format:Unknown - 295: TypePointer UniformConstant 294 - 296(g_tTexcdu4): 295(ptr) Variable UniformConstant - 297: TypePointer UniformConstant 6(float) - 298(c1): 297(ptr) Variable UniformConstant - 299: TypeVector 6(float) 3 - 300: TypePointer UniformConstant 299(fvec3) - 301(c3): 300(ptr) Variable UniformConstant - 302: TypePointer UniformConstant 7(fvec4) - 303(c4): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 24(int) - 305(o1): 304(ptr) Variable UniformConstant - 306: TypeVector 24(int) 3 - 307: TypePointer UniformConstant 306(ivec3) - 308(o3): 307(ptr) Variable UniformConstant - 309: TypePointer UniformConstant 31(ivec4) - 310(o4): 309(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274(g_tTex1df4): 272(ptr) Variable UniformConstant + 275: TypeImage 24(int) 1D sampled format:Unknown + 276: TypePointer UniformConstant 275 + 277(g_tTex1di4): 276(ptr) Variable UniformConstant + 278: TypeImage 44(int) 1D sampled format:Unknown + 279: TypePointer UniformConstant 278 + 280(g_tTex1du4): 279(ptr) Variable UniformConstant + 281: TypeImage 6(float) 3D sampled format:Unknown + 282: TypePointer UniformConstant 281 + 283(g_tTex3df4): 282(ptr) Variable UniformConstant + 284: TypeImage 24(int) 3D sampled format:Unknown + 285: TypePointer UniformConstant 284 + 286(g_tTex3di4): 285(ptr) Variable UniformConstant + 287: TypeImage 44(int) 3D sampled format:Unknown + 288: TypePointer UniformConstant 287 + 289(g_tTex3du4): 288(ptr) Variable UniformConstant + 290: TypeImage 6(float) Cube sampled format:Unknown + 291: TypePointer UniformConstant 290 + 292(g_tTexcdf4): 291(ptr) Variable UniformConstant + 293: TypeImage 24(int) Cube sampled format:Unknown + 294: TypePointer UniformConstant 293 + 295(g_tTexcdi4): 294(ptr) Variable UniformConstant + 296: TypeImage 44(int) Cube sampled format:Unknown + 297: TypePointer UniformConstant 296 + 298(g_tTexcdu4): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 6(float) + 300(c1): 299(ptr) Variable UniformConstant + 301: TypeVector 6(float) 3 + 302: TypePointer UniformConstant 301(fvec3) + 303(c3): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 7(fvec4) + 305(c4): 304(ptr) Variable UniformConstant + 306: TypePointer UniformConstant 24(int) + 307(o1): 306(ptr) Variable UniformConstant + 308: TypeVector 24(int) 3 + 309: TypePointer UniformConstant 308(ivec3) + 310(o3): 309(ptr) Variable UniformConstant + 311: TypePointer UniformConstant 31(ivec4) + 312(o4): 311(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1142,6 +1151,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 266:258(PS_OUTPUT) Load 260(psout) - ReturnValue 266 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 91c51bfe..5838f08a 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -334,8 +334,11 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Branch: Return with expression -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Sequence +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -696,8 +699,11 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Branch: Return with expression -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Sequence +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -721,7 +727,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 301 +// Id's are bound by 303 Capability Shader Capability ImageGatherExtended @@ -729,7 +735,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -766,33 +772,34 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 268 "g_sSamp2d" - Name 271 "g_tTex1df4a" - Name 274 "g_tTex1di4a" - Name 277 "g_tTex1du4a" - Name 280 "g_tTexcdf4a" - Name 283 "g_tTexcdi4a" - Name 286 "g_tTexcdu4a" - Name 288 "c1" - Name 291 "c2" - Name 293 "c4" - Name 295 "o1" - Name 298 "o3" - Name 300 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 276 "g_tTex1di4a" + Name 279 "g_tTex1du4a" + Name 282 "g_tTexcdf4a" + Name 285 "g_tTexcdi4a" + Name 288 "g_tTexcdu4a" + Name 290 "c1" + Name 293 "c2" + Name 295 "c4" + Name 297 "o1" + Name 300 "o3" + Name 302 "o4" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(g_sSamp2d) DescriptorSet 0 - Decorate 271(g_tTex1df4a) DescriptorSet 0 - Decorate 271(g_tTex1df4a) Binding 0 - Decorate 274(g_tTex1di4a) DescriptorSet 0 - Decorate 277(g_tTex1du4a) DescriptorSet 0 - Decorate 280(g_tTexcdf4a) DescriptorSet 0 - Decorate 283(g_tTexcdi4a) DescriptorSet 0 - Decorate 286(g_tTexcdu4a) DescriptorSet 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 0 + Decorate 276(g_tTex1di4a) DescriptorSet 0 + Decorate 279(g_tTex1du4a) DescriptorSet 0 + Decorate 282(g_tTexcdf4a) DescriptorSet 0 + Decorate 285(g_tTexcdi4a) DescriptorSet 0 + Decorate 288(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -836,39 +843,41 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 268(g_sSamp2d): 15(ptr) Variable UniformConstant - 269: TypeImage 6(float) 1D array sampled format:Unknown - 270: TypePointer UniformConstant 269 -271(g_tTex1df4a): 270(ptr) Variable UniformConstant - 272: TypeImage 24(int) 1D array sampled format:Unknown - 273: TypePointer UniformConstant 272 -274(g_tTex1di4a): 273(ptr) Variable UniformConstant - 275: TypeImage 44(int) 1D array sampled format:Unknown - 276: TypePointer UniformConstant 275 -277(g_tTex1du4a): 276(ptr) Variable UniformConstant - 278: TypeImage 6(float) Cube array sampled format:Unknown - 279: TypePointer UniformConstant 278 -280(g_tTexcdf4a): 279(ptr) Variable UniformConstant - 281: TypeImage 24(int) Cube array sampled format:Unknown - 282: TypePointer UniformConstant 281 -283(g_tTexcdi4a): 282(ptr) Variable UniformConstant - 284: TypeImage 44(int) Cube array sampled format:Unknown - 285: TypePointer UniformConstant 284 -286(g_tTexcdu4a): 285(ptr) Variable UniformConstant - 287: TypePointer UniformConstant 6(float) - 288(c1): 287(ptr) Variable UniformConstant - 289: TypeVector 6(float) 2 - 290: TypePointer UniformConstant 289(fvec2) - 291(c2): 290(ptr) Variable UniformConstant - 292: TypePointer UniformConstant 7(fvec4) - 293(c4): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 24(int) - 295(o1): 294(ptr) Variable UniformConstant - 296: TypeVector 24(int) 3 - 297: TypePointer UniformConstant 296(ivec3) - 298(o3): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 31(ivec4) - 300(o4): 299(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D array sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274: TypeImage 24(int) 1D array sampled format:Unknown + 275: TypePointer UniformConstant 274 +276(g_tTex1di4a): 275(ptr) Variable UniformConstant + 277: TypeImage 44(int) 1D array sampled format:Unknown + 278: TypePointer UniformConstant 277 +279(g_tTex1du4a): 278(ptr) Variable UniformConstant + 280: TypeImage 6(float) Cube array sampled format:Unknown + 281: TypePointer UniformConstant 280 +282(g_tTexcdf4a): 281(ptr) Variable UniformConstant + 283: TypeImage 24(int) Cube array sampled format:Unknown + 284: TypePointer UniformConstant 283 +285(g_tTexcdi4a): 284(ptr) Variable UniformConstant + 286: TypeImage 44(int) Cube array sampled format:Unknown + 287: TypePointer UniformConstant 286 +288(g_tTexcdu4a): 287(ptr) Variable UniformConstant + 289: TypePointer UniformConstant 6(float) + 290(c1): 289(ptr) Variable UniformConstant + 291: TypeVector 6(float) 2 + 292: TypePointer UniformConstant 291(fvec2) + 293(c2): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 7(fvec4) + 295(c4): 294(ptr) Variable UniformConstant + 296: TypePointer UniformConstant 24(int) + 297(o1): 296(ptr) Variable UniformConstant + 298: TypeVector 24(int) 3 + 299: TypePointer UniformConstant 298(ivec3) + 300(o3): 299(ptr) Variable UniformConstant + 301: TypePointer UniformConstant 31(ivec4) + 302(o4): 301(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1116,6 +1125,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 266:258(PS_OUTPUT) Load 260(psout) - ReturnValue 266 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index cff4a531..a3eba63c 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1060,8 +1060,11 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Branch: Return with expression -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Sequence +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -2157,8 +2160,11 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Branch: Return with expression -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Sequence +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -2191,7 +2197,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 538 +// Id's are bound by 540 Capability Shader Capability Sampled1D @@ -2200,7 +2206,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 534 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2288,7 +2294,8 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 537 "g_sSamp" + Name 534 "@entryPointOutput" + Name 539 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2318,8 +2325,8 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 537(g_sSamp) DescriptorSet 0 - Decorate 537(g_sSamp) Binding 0 + Decorate 539(g_sSamp) DescriptorSet 0 + Decorate 539(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2426,9 +2433,11 @@ gl_FragCoord origin is upper left 528: TypePointer Function 521(fvec4) 530: 14(int) Constant 1 531: TypePointer Function 9(float) - 535: TypeSampler - 536: TypePointer UniformConstant 535 - 537(g_sSamp): 536(ptr) Variable UniformConstant + 533: TypePointer Output 522(PS_OUTPUT) +534(@entryPointOutput): 533(ptr) Variable Output + 537: TypeSampler + 538: TypePointer UniformConstant 537 + 539(g_sSamp): 538(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3042,6 +3051,7 @@ gl_FragCoord origin is upper left Store 529 527 532: 531(ptr) AccessChain 524(psout) 530 Store 532 526 - 533:522(PS_OUTPUT) Load 524(psout) - ReturnValue 533 + 535:522(PS_OUTPUT) Load 524(psout) + Store 534(@entryPointOutput) 535 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 69b4dd13..a8761cdf 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -36,8 +36,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Branch: Return with expression -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -83,22 +86,25 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Branch: Return with expression -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 40 +// Id's are bound by 42 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 36 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -108,12 +114,13 @@ Shader version: 450 Name 27 "VS_OUTPUT" MemberName 27(VS_OUTPUT) 0 "Pos" Name 29 "vsout" - Name 39 "g_sSamp" + Name 36 "@entryPointOutput" + Name 41 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 39(g_sSamp) DescriptorSet 0 - Decorate 39(g_sSamp) Binding 0 + Decorate 41(g_sSamp) DescriptorSet 0 + Decorate 41(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -131,9 +138,11 @@ Shader version: 450 31: 9(float) Constant 0 32: 26(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 26(fvec4) - 37: TypeSampler - 38: TypePointer UniformConstant 37 - 39(g_sSamp): 38(ptr) Variable UniformConstant + 35: TypePointer Output 27(VS_OUTPUT) +36(@entryPointOutput): 35(ptr) Variable Output + 39: TypeSampler + 40: TypePointer UniformConstant 39 + 41(g_sSamp): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -156,6 +165,7 @@ Shader version: 450 Store 23(NumberOfLevelsU) 25 34: 33(ptr) AccessChain 29(vsout) 30 Store 34 32 - 35:27(VS_OUTPUT) Load 29(vsout) - ReturnValue 35 + 37:27(VS_OUTPUT) Load 29(vsout) + Store 36(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index e2cf6feb..d120c315 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -43,8 +43,11 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Branch: Return with expression -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Sequence +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -93,8 +96,11 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Branch: Return with expression -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Sequence +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 335e8981..cd768bec 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -12,20 +12,29 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 'input' (in 4-component vector of float) 0:3 true case -0:4 Branch: Return with expression -0:4 'input' (in 4-component vector of float) +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:4 'input' (in 4-component vector of float) +0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) 0:6 'input' (in 4-component vector of float) 0:6 'input' (in 4-component vector of float) 0:6 true case -0:7 Branch: Return with expression -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:6 false case -0:9 Branch: Return with expression -0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) @@ -45,8 +54,11 @@ gl_FragCoord origin is upper left 0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:20 'input' (in 4-component vector of float) +0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) @@ -54,13 +66,19 @@ gl_FragCoord origin is upper left 0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Branch: Return with expression -0:24 'input' (in 4-component vector of float) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:24 'input' (in 4-component vector of float) +0:24 Branch: Return 0:23 false case 0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) +0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) @@ -93,20 +111,29 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 'input' (in 4-component vector of float) 0:3 true case -0:4 Branch: Return with expression -0:4 'input' (in 4-component vector of float) +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:4 'input' (in 4-component vector of float) +0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) 0:6 'input' (in 4-component vector of float) 0:6 'input' (in 4-component vector of float) 0:6 true case -0:7 Branch: Return with expression -0:7 'input' (in 4-component vector of float) +0:7 Sequence +0:7 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 Branch: Return 0:6 false case -0:9 Branch: Return with expression -0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) +0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) @@ -126,8 +153,11 @@ gl_FragCoord origin is upper left 0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence -0:20 Branch: Return with expression -0:20 'input' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:20 'input' (in 4-component vector of float) +0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) @@ -135,13 +165,19 @@ gl_FragCoord origin is upper left 0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence -0:24 Branch: Return with expression -0:24 'input' (in 4-component vector of float) +0:24 Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:24 'input' (in 4-component vector of float) +0:24 Branch: Return 0:23 false case 0:? Sequence -0:26 Branch: Return with expression -0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) +0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) @@ -159,17 +195,18 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 82 +// Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 19 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "input" - Name 65 "ii" - Name 78 "ii" + Name 19 "@entryPointOutput" + Name 67 "ii" + Name 80 "ii" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -178,18 +215,20 @@ gl_FragCoord origin is upper left 9(input): 8(ptr) Variable Input 12: TypeBool 13: TypeVector 12(bool) 4 - 64: TypePointer Function 6(float) - 66: TypeInt 32 0 - 67: 66(int) Constant 2 - 68: TypePointer Input 6(float) - 74: 6(float) Constant 1065353216 - 76: TypeInt 32 1 - 77: TypePointer Function 76(int) - 80: 76(int) Constant 1 + 18: TypePointer Output 7(fvec4) +19(@entryPointOutput): 18(ptr) Variable Output + 66: TypePointer Function 6(float) + 68: TypeInt 32 0 + 69: 68(int) Constant 2 + 70: TypePointer Input 6(float) + 76: 6(float) Constant 1065353216 + 78: TypeInt 32 1 + 79: TypePointer Function 78(int) + 82: 78(int) Constant 1 4(PixelShaderFunction): 2 Function None 3 5: Label - 65(ii): 64(ptr) Variable Function - 78(ii): 77(ptr) Variable Function + 67(ii): 66(ptr) Variable Function + 80(ii): 79(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 7(fvec4) Load 9(input) 14: 13(bvec4) FOrdEqual 10 11 @@ -197,78 +236,84 @@ gl_FragCoord origin is upper left SelectionMerge 17 None BranchConditional 15 16 17 16: Label - 18: 7(fvec4) Load 9(input) - ReturnValue 18 + 20: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 20 + Return 17: Label - 20: 7(fvec4) Load 9(input) - 21: 7(fvec4) Load 9(input) - 22: 13(bvec4) FOrdEqual 20 21 - 23: 12(bool) All 22 - SelectionMerge 25 None - BranchConditional 23 24 28 - 24: Label - 26: 7(fvec4) Load 9(input) - ReturnValue 26 - 28: Label - 29: 7(fvec4) Load 9(input) - 30: 7(fvec4) FNegate 29 - ReturnValue 30 - 25: Label - 32: 7(fvec4) Load 9(input) - 33: 7(fvec4) Load 9(input) - 34: 13(bvec4) FOrdEqual 32 33 - 35: 12(bool) All 34 - SelectionMerge 37 None - BranchConditional 35 36 37 - 36: Label - Branch 37 - 37: Label - 38: 7(fvec4) Load 9(input) - 39: 7(fvec4) Load 9(input) - 40: 13(bvec4) FOrdEqual 38 39 - 41: 12(bool) All 40 - SelectionMerge 43 None - BranchConditional 41 42 43 - 42: Label - Branch 43 - 43: Label - 44: 7(fvec4) Load 9(input) - 45: 7(fvec4) Load 9(input) - 46: 13(bvec4) FOrdEqual 44 45 - 47: 12(bool) All 46 - SelectionMerge 49 None - BranchConditional 47 48 49 - 48: Label - 50: 7(fvec4) Load 9(input) - ReturnValue 50 - 49: Label - 52: 7(fvec4) Load 9(input) - 53: 7(fvec4) Load 9(input) - 54: 13(bvec4) FOrdEqual 52 53 - 55: 12(bool) All 54 - SelectionMerge 57 None - BranchConditional 55 56 60 - 56: Label - 58: 7(fvec4) Load 9(input) - ReturnValue 58 - 60: Label - 61: 7(fvec4) Load 9(input) - 62: 7(fvec4) FNegate 61 - ReturnValue 62 - 57: Label - 69: 68(ptr) AccessChain 9(input) 67 - 70: 6(float) Load 69 - Store 65(ii) 70 - SelectionMerge 72 None - BranchConditional 70 71 72 - 71: Label - 73: 6(float) Load 65(ii) - 75: 6(float) FAdd 73 74 - Store 65(ii) 75 - Branch 72 - 72: Label - 79: 76(int) Load 78(ii) - 81: 76(int) IAdd 79 80 - Store 78(ii) 81 + 22: 7(fvec4) Load 9(input) + 23: 7(fvec4) Load 9(input) + 24: 13(bvec4) FOrdEqual 22 23 + 25: 12(bool) All 24 + SelectionMerge 27 None + BranchConditional 25 26 30 + 26: Label + 28: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 28 + Return + 30: Label + 31: 7(fvec4) Load 9(input) + 32: 7(fvec4) FNegate 31 + Store 19(@entryPointOutput) 32 + Return + 27: Label + 34: 7(fvec4) Load 9(input) + 35: 7(fvec4) Load 9(input) + 36: 13(bvec4) FOrdEqual 34 35 + 37: 12(bool) All 36 + SelectionMerge 39 None + BranchConditional 37 38 39 + 38: Label + Branch 39 + 39: Label + 40: 7(fvec4) Load 9(input) + 41: 7(fvec4) Load 9(input) + 42: 13(bvec4) FOrdEqual 40 41 + 43: 12(bool) All 42 + SelectionMerge 45 None + BranchConditional 43 44 45 + 44: Label + Branch 45 + 45: Label + 46: 7(fvec4) Load 9(input) + 47: 7(fvec4) Load 9(input) + 48: 13(bvec4) FOrdEqual 46 47 + 49: 12(bool) All 48 + SelectionMerge 51 None + BranchConditional 49 50 51 + 50: Label + 52: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 52 + Return + 51: Label + 54: 7(fvec4) Load 9(input) + 55: 7(fvec4) Load 9(input) + 56: 13(bvec4) FOrdEqual 54 55 + 57: 12(bool) All 56 + SelectionMerge 59 None + BranchConditional 57 58 62 + 58: Label + 60: 7(fvec4) Load 9(input) + Store 19(@entryPointOutput) 60 + Return + 62: Label + 63: 7(fvec4) Load 9(input) + 64: 7(fvec4) FNegate 63 + Store 19(@entryPointOutput) 64 + Return + 59: Label + 71: 70(ptr) AccessChain 9(input) 69 + 72: 6(float) Load 71 + Store 67(ii) 72 + SelectionMerge 74 None + BranchConditional 72 73 74 + 73: Label + 75: 6(float) Load 67(ii) + 77: 6(float) FAdd 75 76 + Store 67(ii) 77 + Branch 74 + 74: Label + 81: 78(int) Load 80(ii) + 83: 78(int) IAdd 81 82 + Store 80(ii) 83 Return FunctionEnd diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 07679345..42e0d3e7 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -124,10 +124,13 @@ gl_FragCoord origin is upper left 0:33 move second child to first child (temp float) 0:33 'a9' (temp float) 0:33 'a5' (global float) -0:35 Branch: Return with expression -0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -277,10 +280,13 @@ gl_FragCoord origin is upper left 0:33 move second child to first child (temp float) 0:33 'a9' (temp float) 0:33 'a5' (global float) -0:35 Branch: Return with expression -0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) -0:35 'a1' (global 4-component vector of float) +0:35 Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:35 component-wise multiply (temp 4-component vector of float) +0:35 'input' (in 4-component vector of float) +0:35 'a1' (global 4-component vector of float) +0:35 Branch: Return 0:? Linker Objects 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) @@ -303,12 +309,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 95 +// Id's are bound by 97 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "ShaderFunction" 88 + EntryPoint Fragment 4 "ShaderFunction" 88 90 ExecutionMode 4 OriginUpperLeft Name 4 "ShaderFunction" Name 9 "a1" @@ -347,9 +353,10 @@ gl_FragCoord origin is upper left Name 82 "a8" Name 83 "b2" Name 85 "a9" - Name 88 "input" - Name 93 "c4" - Name 94 "b5" + Name 88 "@entryPointOutput" + Name 90 "input" + Name 95 "c4" + Name 96 "b5" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -418,10 +425,12 @@ gl_FragCoord origin is upper left 73: 32(int) Constant 12 81: TypePointer Function 6(float) 83(b2): 22(ptr) Variable Private - 87: TypePointer Input 7(fvec4) - 88(input): 87(ptr) Variable Input - 93(c4): 22(ptr) Variable Private - 94(b5): 22(ptr) Variable Private + 87: TypePointer Output 7(fvec4) +88(@entryPointOutput): 87(ptr) Variable Output + 89: TypePointer Input 7(fvec4) + 90(input): 89(ptr) Variable Input + 95(c4): 22(ptr) Variable Private + 96(b5): 22(ptr) Variable Private 4(ShaderFunction): 2 Function None 3 5: Label 62(a2): 61(ptr) Variable Function @@ -457,8 +466,9 @@ gl_FragCoord origin is upper left Store 82(a8) 84 86: 6(float) Load 29(a5) Store 85(a9) 86 - 89: 7(fvec4) Load 88(input) - 90: 7(fvec4) Load 9(a1) - 91: 7(fvec4) FMul 89 90 - ReturnValue 91 + 91: 7(fvec4) Load 90(input) + 92: 7(fvec4) Load 9(a1) + 93: 7(fvec4) FMul 91 92 + Store 88(@entryPointOutput) 93 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 716c34e0..03ce8b5d 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -43,8 +43,11 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Branch: Return with expression -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Branch: Return 0:? Linker Objects @@ -95,18 +98,21 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Branch: Return with expression -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Sequence +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 43 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -123,6 +129,7 @@ gl_FragCoord origin is upper left Name 34 "PS_OUTPUT" MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" + Name 43 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -152,14 +159,17 @@ gl_FragCoord origin is upper left 38: 37(int) Constant 0 39: 33(fvec4) ConstantComposite 13 13 13 13 40: TypePointer Function 33(fvec4) + 42: TypePointer Output 34(PS_OUTPUT) +43(@entryPointOutput): 42(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function 32: 2 FunctionCall 6(Test1() 41: 40(ptr) AccessChain 36(ps_output) 38 Store 41 39 - 42:34(PS_OUTPUT) Load 36(ps_output) - ReturnValue 42 + 44:34(PS_OUTPUT) Load 36(ps_output) + Store 43(@entryPointOutput) 44 + Return FunctionEnd 6(Test1(): 2 Function None 3 7: Label diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index e48bfb8c..044943da 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -55,8 +55,11 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Branch: Return with expression -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Sequence +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Branch: Return 0:? Linker Objects @@ -119,18 +122,21 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Branch: Return with expression -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Sequence +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 54 +// Id's are bound by 56 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 + EntryPoint Fragment 4 "main" 45 53 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -148,6 +154,7 @@ gl_FragCoord origin is upper left MemberName 31(PS_OUTPUT) 1 "Depth" Name 33 "psout" Name 45 "inpos" + Name 53 "@entryPointOutput" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord @@ -172,6 +179,8 @@ gl_FragCoord origin is upper left 46: TypeInt 32 0 47: 46(int) Constant 3 48: TypePointer Input 6(float) + 52: TypePointer Output 31(PS_OUTPUT) +53(@entryPointOutput): 52(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function @@ -202,8 +211,9 @@ gl_FragCoord origin is upper left 50: 6(float) Load 49 51: 7(ptr) AccessChain 33(psout) 43 Store 51 50 - 52:31(PS_OUTPUT) Load 33(psout) - ReturnValue 52 + 54:31(PS_OUTPUT) Load 33(psout) + Store 53(@entryPointOutput) 54 + Return FunctionEnd 12(MyFunc(f1;f1;f1;): 2 Function None 8 9(x): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 46cf5d55..ab697685 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -11,9 +11,12 @@ local_size = (1, 1, 1) 0:7 GroupMemoryBarrierWithGroupSync (global void) 0:8 WorkgroupMemoryBarrier (global void) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return 0:? Linker Objects @@ -32,21 +35,25 @@ local_size = (1, 1, 1) 0:7 GroupMemoryBarrierWithGroupSync (global void) 0:8 WorkgroupMemoryBarrier (global void) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) -0:11 Branch: Return with expression -0:11 Constant: -0:11 0.000000 +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:11 Constant: +0:11 0.000000 +0:11 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 15 +// Id's are bound by 17 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" + EntryPoint GLCompute 4 "ComputeShaderFunction" 14 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" + Name 14 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -56,7 +63,9 @@ local_size = (1, 1, 1) 10: 6(int) Constant 2 11: 6(int) Constant 256 12: TypeFloat 32 - 13: 12(float) Constant 0 + 13: TypePointer Output 12(float) +14(@entryPointOutput): 13(ptr) Variable Output + 15: 12(float) Constant 0 4(ComputeShaderFunction): 2 Function None 3 5: Label MemoryBarrier 7 8 @@ -65,5 +74,6 @@ local_size = (1, 1, 1) ControlBarrier 7 7 9 MemoryBarrier 10 11 ControlBarrier 10 10 11 - ReturnValue 13 + Store 14(@entryPointOutput) 15 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 0dd308fb..e2fb4e57 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -299,12 +299,15 @@ local_size = (1, 1, 1) 0:125 AtomicXor (temp 4-component vector of uint) 0:125 'gs_ua4' (global 4-component vector of uint) 0:125 'gs_ub4' (global 4-component vector of uint) -0:128 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -623,12 +626,15 @@ local_size = (1, 1, 1) 0:125 AtomicXor (temp 4-component vector of uint) 0:125 'gs_ua4' (global 4-component vector of uint) 0:125 'gs_ub4' (global 4-component vector of uint) -0:128 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:128 Sequence +0:128 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:128 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -645,12 +651,12 @@ local_size = (1, 1, 1) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 217 +// Id's are bound by 219 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 175 + EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" @@ -692,6 +698,7 @@ local_size = (1, 1, 1) Name 181 "gs_ub4" Name 185 "out_u4" Name 193 "gs_uc4" + Name 215 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -740,8 +747,10 @@ local_size = (1, 1, 1) 181(gs_ub4): 179(ptr) Variable Private 184: TypePointer Function 178(ivec4) 193(gs_uc4): 179(ptr) Variable Private - 214: 6(float) Constant 1082130432 - 215: 173(fvec4) ConstantComposite 128 129 169 214 + 214: TypePointer Output 173(fvec4) +215(@entryPointOutput): 214(ptr) Variable Output + 216: 6(float) Constant 1082130432 + 217: 173(fvec4) ConstantComposite 128 129 169 216 4(ComputeShaderFunction): 2 Function None 3 5: Label 185(out_u4): 184(ptr) Variable Function @@ -784,7 +793,8 @@ local_size = (1, 1, 1) 212: 178(ivec4) Load 181(gs_ub4) 213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212 Store 185(out_u4) 213 - ReturnValue 215 + Store 215(@entryPointOutput) 217 + Return FunctionEnd 16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 350c3321..68edc7f0 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -27,9 +27,12 @@ gl_FragCoord origin is upper left 0:7 Construct uvec2 (temp 2-component vector of uint) 0:7 'inU1a' (in uint) 0:7 'inU1b' (in uint) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return 0:? Linker Objects @@ -64,20 +67,23 @@ gl_FragCoord origin is upper left 0:7 Construct uvec2 (temp 2-component vector of uint) 0:7 'inU1a' (in uint) 0:7 'inU1b' (in uint) -0:9 Branch: Return with expression -0:9 Constant: -0:9 0.000000 +0:9 Sequence +0:9 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:9 Constant: +0:9 0.000000 +0:9 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 32 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 + EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "r00" @@ -87,6 +93,7 @@ gl_FragCoord origin is upper left Name 17 "r01" Name 20 "inU1a" Name 22 "inU1b" + Name 29 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -101,7 +108,9 @@ gl_FragCoord origin is upper left 22(inU1b): 19(ptr) Variable Input 24: TypeVector 18(int) 2 27: TypeFloat 32 - 28: 27(float) Constant 0 + 28: TypePointer Output 27(float) +29(@entryPointOutput): 28(ptr) Variable Output + 30: 27(float) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -116,5 +125,6 @@ gl_FragCoord origin is upper left 25: 24(ivec2) CompositeConstruct 21 23 26: 6(float) Bitcast 25 Store 17(r01) 26 - ReturnValue 28 + Store 29(@entryPointOutput) 30 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 7340531b..8adf5620 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -56,12 +56,15 @@ ERROR: node is still EOpNull! 0:30 ERROR: Bad unary op (global 4-component vector of uint) 0:30 'inF0' (in 4-component vector of float) -0:32 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return 0:? Linker Objects @@ -118,12 +121,15 @@ ERROR: node is still EOpNull! 0:30 ERROR: Bad unary op (global 4-component vector of uint) 0:30 'inF0' (in 4-component vector of float) -0:32 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:32 Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:32 Branch: Return 0:? Linker Objects SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 4412726a..cc8be757 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -1552,12 +1552,15 @@ gl_FragCoord origin is upper left 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) -0:337 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:337 Sequence +0:337 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Branch: Return 0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -4330,12 +4333,15 @@ gl_FragCoord origin is upper left 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) -0:337 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:337 Sequence +0:337 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Branch: Return 0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -5553,13 +5559,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1812 +// Id's are bound by 1814 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 + EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 1060 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -5883,203 +5889,204 @@ gl_FragCoord origin is upper left Name 1050 "r065" Name 1053 "r066" Name 1056 "r067" - Name 1062 "r000" - Name 1065 "r001" - Name 1070 "r003" - Name 1073 "r004" - Name 1076 "r005" - Name 1079 "r006" - Name 1083 "r007" - Name 1094 "r008" - Name 1099 "r009" - Name 1102 "r010" - Name 1105 "r011" - Name 1108 "r012" - Name 1111 "r013" - Name 1114 "r014" - Name 1117 "r015" - Name 1120 "r016" - Name 1123 "r017" - Name 1126 "r018" - Name 1129 "r019" - Name 1132 "R020" - Name 1135 "r021" - Name 1138 "r022" - Name 1148 "r023" - Name 1151 "r024" - Name 1153 "ResType" - Name 1157 "r025" - Name 1160 "r026" - Name 1164 "r026a" - Name 1169 "r027" - Name 1172 "r028" - Name 1176 "r029" - Name 1179 "r030" - Name 1183 "r031" - Name 1187 "r032" - Name 1191 "r033" - Name 1194 "r034" - Name 1197 "r035" - Name 1200 "r036" - Name 1205 "r037" - Name 1208 "r038" - Name 1215 "r039" - Name 1218 "r049" - Name 1223 "r041" - Name 1226 "r042" - Name 1230 "r043" - Name 1233 "r044" - Name 1238 "r046" - Name 1245 "r000" - Name 1248 "r001" - Name 1253 "r003" - Name 1256 "r004" - Name 1259 "r005" - Name 1262 "r006" - Name 1266 "r007" - Name 1277 "r008" - Name 1282 "r009" - Name 1285 "r010" - Name 1288 "r011" - Name 1291 "r012" - Name 1294 "r013" - Name 1297 "r014" - Name 1300 "r015" - Name 1303 "r016" - Name 1306 "r017" - Name 1309 "r018" - Name 1312 "r019" - Name 1315 "R020" - Name 1318 "r021" - Name 1321 "r022" - Name 1334 "r023" - Name 1337 "r024" - Name 1339 "ResType" - Name 1343 "r025" - Name 1346 "r026" - Name 1350 "r026a" - Name 1355 "r027" - Name 1358 "r028" - Name 1362 "r029" - Name 1365 "r030" - Name 1369 "r031" - Name 1373 "r032" - Name 1377 "r033" - Name 1380 "r034" - Name 1383 "r035" - Name 1386 "r036" - Name 1391 "r037" - Name 1394 "r038" - Name 1401 "r039" - Name 1404 "r049" - Name 1409 "r041" - Name 1412 "r042" - Name 1416 "r043" - Name 1419 "r044" - Name 1424 "r046" - Name 1431 "r000" - Name 1434 "r001" - Name 1439 "r003" - Name 1442 "r004" - Name 1445 "r005" - Name 1448 "r006" - Name 1452 "r007" - Name 1463 "r008" - Name 1468 "r009" - Name 1471 "r010" - Name 1474 "r011" - Name 1477 "r012" - Name 1480 "r013" - Name 1483 "r014" - Name 1486 "r015" - Name 1489 "r016" - Name 1492 "r017" - Name 1495 "r018" - Name 1498 "r019" - Name 1501 "R020" - Name 1504 "r021" - Name 1507 "r022" - Name 1523 "r023" - Name 1526 "r024" - Name 1528 "ResType" - Name 1532 "r025" - Name 1535 "r026" - Name 1539 "r026a" - Name 1544 "r027" - Name 1547 "r028" - Name 1551 "r029" - Name 1554 "r030" - Name 1558 "r031" - Name 1562 "r032" - Name 1566 "r033" - Name 1569 "r034" - Name 1572 "r035" - Name 1575 "r036" - Name 1580 "r037" - Name 1583 "r038" - Name 1590 "r039" - Name 1593 "r049" - Name 1598 "r041" - Name 1601 "r042" - Name 1605 "r043" - Name 1608 "r044" - Name 1613 "r046" - Name 1620 "r0" - Name 1624 "r1" - Name 1628 "r2" - Name 1632 "r3" - Name 1636 "r4" - Name 1640 "r5" - Name 1644 "r6" - Name 1648 "r7" - Name 1652 "r8" - Name 1656 "r0" - Name 1660 "r1" - Name 1664 "r2" - Name 1668 "r3" - Name 1672 "r4" - Name 1676 "r5" - Name 1680 "r6" - Name 1684 "r7" - Name 1688 "r8" - Name 1692 "r0" - Name 1696 "r1" - Name 1700 "r2" - Name 1704 "r3" - Name 1708 "r4" - Name 1712 "r5" - Name 1716 "r6" - Name 1720 "r7" - Name 1724 "r8" - Name 1728 "r00" - Name 1732 "r01" - Name 1736 "r02" - Name 1740 "r03" - Name 1744 "r04" - Name 1748 "r05" - Name 1752 "r06" - Name 1756 "r07" - Name 1760 "r08" - Name 1764 "r09" - Name 1768 "r10" - Name 1772 "r11" - Name 1776 "r12" - Name 1780 "r13" - Name 1784 "r14" - Name 1788 "r15" - Name 1792 "r16" - Name 1797 "gs_ua" - Name 1798 "gs_ub" - Name 1799 "gs_uc" - Name 1801 "gs_ua2" - Name 1802 "gs_ub2" - Name 1803 "gs_uc2" - Name 1805 "gs_ua3" - Name 1806 "gs_ub3" - Name 1807 "gs_uc3" - Name 1809 "gs_ua4" - Name 1810 "gs_ub4" - Name 1811 "gs_uc4" + Name 1060 "@entryPointOutput" + Name 1064 "r000" + Name 1067 "r001" + Name 1072 "r003" + Name 1075 "r004" + Name 1078 "r005" + Name 1081 "r006" + Name 1085 "r007" + Name 1096 "r008" + Name 1101 "r009" + Name 1104 "r010" + Name 1107 "r011" + Name 1110 "r012" + Name 1113 "r013" + Name 1116 "r014" + Name 1119 "r015" + Name 1122 "r016" + Name 1125 "r017" + Name 1128 "r018" + Name 1131 "r019" + Name 1134 "R020" + Name 1137 "r021" + Name 1140 "r022" + Name 1150 "r023" + Name 1153 "r024" + Name 1155 "ResType" + Name 1159 "r025" + Name 1162 "r026" + Name 1166 "r026a" + Name 1171 "r027" + Name 1174 "r028" + Name 1178 "r029" + Name 1181 "r030" + Name 1185 "r031" + Name 1189 "r032" + Name 1193 "r033" + Name 1196 "r034" + Name 1199 "r035" + Name 1202 "r036" + Name 1207 "r037" + Name 1210 "r038" + Name 1217 "r039" + Name 1220 "r049" + Name 1225 "r041" + Name 1228 "r042" + Name 1232 "r043" + Name 1235 "r044" + Name 1240 "r046" + Name 1247 "r000" + Name 1250 "r001" + Name 1255 "r003" + Name 1258 "r004" + Name 1261 "r005" + Name 1264 "r006" + Name 1268 "r007" + Name 1279 "r008" + Name 1284 "r009" + Name 1287 "r010" + Name 1290 "r011" + Name 1293 "r012" + Name 1296 "r013" + Name 1299 "r014" + Name 1302 "r015" + Name 1305 "r016" + Name 1308 "r017" + Name 1311 "r018" + Name 1314 "r019" + Name 1317 "R020" + Name 1320 "r021" + Name 1323 "r022" + Name 1336 "r023" + Name 1339 "r024" + Name 1341 "ResType" + Name 1345 "r025" + Name 1348 "r026" + Name 1352 "r026a" + Name 1357 "r027" + Name 1360 "r028" + Name 1364 "r029" + Name 1367 "r030" + Name 1371 "r031" + Name 1375 "r032" + Name 1379 "r033" + Name 1382 "r034" + Name 1385 "r035" + Name 1388 "r036" + Name 1393 "r037" + Name 1396 "r038" + Name 1403 "r039" + Name 1406 "r049" + Name 1411 "r041" + Name 1414 "r042" + Name 1418 "r043" + Name 1421 "r044" + Name 1426 "r046" + Name 1433 "r000" + Name 1436 "r001" + Name 1441 "r003" + Name 1444 "r004" + Name 1447 "r005" + Name 1450 "r006" + Name 1454 "r007" + Name 1465 "r008" + Name 1470 "r009" + Name 1473 "r010" + Name 1476 "r011" + Name 1479 "r012" + Name 1482 "r013" + Name 1485 "r014" + Name 1488 "r015" + Name 1491 "r016" + Name 1494 "r017" + Name 1497 "r018" + Name 1500 "r019" + Name 1503 "R020" + Name 1506 "r021" + Name 1509 "r022" + Name 1525 "r023" + Name 1528 "r024" + Name 1530 "ResType" + Name 1534 "r025" + Name 1537 "r026" + Name 1541 "r026a" + Name 1546 "r027" + Name 1549 "r028" + Name 1553 "r029" + Name 1556 "r030" + Name 1560 "r031" + Name 1564 "r032" + Name 1568 "r033" + Name 1571 "r034" + Name 1574 "r035" + Name 1577 "r036" + Name 1582 "r037" + Name 1585 "r038" + Name 1592 "r039" + Name 1595 "r049" + Name 1600 "r041" + Name 1603 "r042" + Name 1607 "r043" + Name 1610 "r044" + Name 1615 "r046" + Name 1622 "r0" + Name 1626 "r1" + Name 1630 "r2" + Name 1634 "r3" + Name 1638 "r4" + Name 1642 "r5" + Name 1646 "r6" + Name 1650 "r7" + Name 1654 "r8" + Name 1658 "r0" + Name 1662 "r1" + Name 1666 "r2" + Name 1670 "r3" + Name 1674 "r4" + Name 1678 "r5" + Name 1682 "r6" + Name 1686 "r7" + Name 1690 "r8" + Name 1694 "r0" + Name 1698 "r1" + Name 1702 "r2" + Name 1706 "r3" + Name 1710 "r4" + Name 1714 "r5" + Name 1718 "r6" + Name 1722 "r7" + Name 1726 "r8" + Name 1730 "r00" + Name 1734 "r01" + Name 1738 "r02" + Name 1742 "r03" + Name 1746 "r04" + Name 1750 "r05" + Name 1754 "r06" + Name 1758 "r07" + Name 1762 "r08" + Name 1766 "r09" + Name 1770 "r10" + Name 1774 "r11" + Name 1778 "r12" + Name 1782 "r13" + Name 1786 "r14" + Name 1790 "r15" + Name 1794 "r16" + Name 1799 "gs_ua" + Name 1800 "gs_ub" + Name 1801 "gs_uc" + Name 1803 "gs_ua2" + Name 1804 "gs_ub2" + Name 1805 "gs_uc2" + Name 1807 "gs_ua3" + Name 1808 "gs_ub3" + Name 1809 "gs_uc3" + Name 1811 "gs_ua4" + Name 1812 "gs_ub4" + Name 1813 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6180,39 +6187,41 @@ gl_FragCoord origin is upper left 945(ResType): TypeStruct 64(fvec4) 825(ivec4) 952: TypePointer Function 859(bvec4) 1012: 830(ivec4) ConstantComposite 512 278 383 667 - 1059: 6(float) Constant 1082130432 - 1060: 64(fvec4) ConstantComposite 274 509 804 1059 - 1087: 48 ConstantComposite 369 369 - 1088: TypeMatrix 370(bvec2) 2 - 1153(ResType): TypeStruct 48 342(ivec2) - 1241: 24(fvec2) ConstantComposite 509 509 - 1242: 48 ConstantComposite 1241 1241 - 1270: 56 ConstantComposite 605 605 605 - 1271: TypeMatrix 606(bvec3) 3 - 1339(ResType): TypeStruct 56 578(ivec3) - 1427: 36(fvec3) ConstantComposite 804 804 804 - 1428: 56 ConstantComposite 1427 1427 1427 - 1456: 65 ConstantComposite 858 858 858 858 - 1457: TypeMatrix 859(bvec4) 4 - 1528(ResType): TypeStruct 65 825(ivec4) - 1616: 64(fvec4) ConstantComposite 1059 1059 1059 1059 - 1617: 65 ConstantComposite 1616 1616 1616 1616 - 1796: TypePointer Private 8(int) - 1797(gs_ua): 1796(ptr) Variable Private - 1798(gs_ub): 1796(ptr) Variable Private - 1799(gs_uc): 1796(ptr) Variable Private - 1800: TypePointer Private 26(ivec2) - 1801(gs_ua2): 1800(ptr) Variable Private - 1802(gs_ub2): 1800(ptr) Variable Private - 1803(gs_uc2): 1800(ptr) Variable Private - 1804: TypePointer Private 38(ivec3) - 1805(gs_ua3): 1804(ptr) Variable Private - 1806(gs_ub3): 1804(ptr) Variable Private - 1807(gs_uc3): 1804(ptr) Variable Private - 1808: TypePointer Private 830(ivec4) - 1809(gs_ua4): 1808(ptr) Variable Private - 1810(gs_ub4): 1808(ptr) Variable Private - 1811(gs_uc4): 1808(ptr) Variable Private + 1059: TypePointer Output 64(fvec4) +1060(@entryPointOutput): 1059(ptr) Variable Output + 1061: 6(float) Constant 1082130432 + 1062: 64(fvec4) ConstantComposite 274 509 804 1061 + 1089: 48 ConstantComposite 369 369 + 1090: TypeMatrix 370(bvec2) 2 + 1155(ResType): TypeStruct 48 342(ivec2) + 1243: 24(fvec2) ConstantComposite 509 509 + 1244: 48 ConstantComposite 1243 1243 + 1272: 56 ConstantComposite 605 605 605 + 1273: TypeMatrix 606(bvec3) 3 + 1341(ResType): TypeStruct 56 578(ivec3) + 1429: 36(fvec3) ConstantComposite 804 804 804 + 1430: 56 ConstantComposite 1429 1429 1429 + 1458: 65 ConstantComposite 858 858 858 858 + 1459: TypeMatrix 859(bvec4) 4 + 1530(ResType): TypeStruct 65 825(ivec4) + 1618: 64(fvec4) ConstantComposite 1061 1061 1061 1061 + 1619: 65 ConstantComposite 1618 1618 1618 1618 + 1798: TypePointer Private 8(int) + 1799(gs_ua): 1798(ptr) Variable Private + 1800(gs_ub): 1798(ptr) Variable Private + 1801(gs_uc): 1798(ptr) Variable Private + 1802: TypePointer Private 26(ivec2) + 1803(gs_ua2): 1802(ptr) Variable Private + 1804(gs_ub2): 1802(ptr) Variable Private + 1805(gs_uc2): 1802(ptr) Variable Private + 1806: TypePointer Private 38(ivec3) + 1807(gs_ua3): 1806(ptr) Variable Private + 1808(gs_ub3): 1806(ptr) Variable Private + 1809(gs_uc3): 1806(ptr) Variable Private + 1810: TypePointer Private 830(ivec4) + 1811(gs_ua4): 1810(ptr) Variable Private + 1812(gs_ub4): 1810(ptr) Variable Private + 1813(gs_uc4): 1810(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 808(r000): 122(ptr) Variable Function @@ -6515,7 +6524,8 @@ gl_FragCoord origin is upper left 1057: 64(fvec4) Load 810(inF0) 1058: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1057 Store 1056(r067) 1058 - ReturnValue 1060 + Store 1060(@entryPointOutput) 1062 + Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -7395,711 +7405,711 @@ gl_FragCoord origin is upper left 52(inF1): 49(ptr) FunctionParameter 53(inF2): 49(ptr) FunctionParameter 55: Label - 1062(r000): 122(ptr) Variable Function - 1065(r001): 49(ptr) Variable Function - 1070(r003): 122(ptr) Variable Function - 1073(r004): 49(ptr) Variable Function - 1076(r005): 49(ptr) Variable Function - 1079(r006): 49(ptr) Variable Function - 1083(r007): 49(ptr) Variable Function - 1094(r008): 49(ptr) Variable Function - 1099(r009): 49(ptr) Variable Function - 1102(r010): 49(ptr) Variable Function - 1105(r011): 49(ptr) Variable Function - 1108(r012): 49(ptr) Variable Function - 1111(r013): 49(ptr) Variable Function - 1114(r014): 49(ptr) Variable Function - 1117(r015): 49(ptr) Variable Function - 1120(r016): 49(ptr) Variable Function - 1123(r017): 49(ptr) Variable Function - 1126(r018): 7(ptr) Variable Function - 1129(r019): 49(ptr) Variable Function - 1132(R020): 49(ptr) Variable Function - 1135(r021): 49(ptr) Variable Function - 1138(r022): 49(ptr) Variable Function - 1148(r023): 49(ptr) Variable Function - 1151(r024): 49(ptr) Variable Function - 1157(r025): 49(ptr) Variable Function - 1160(r026): 49(ptr) Variable Function - 1164(r026a): 49(ptr) Variable Function - 1169(r027): 49(ptr) Variable Function - 1172(r028): 49(ptr) Variable Function - 1176(r029): 49(ptr) Variable Function - 1179(r030): 49(ptr) Variable Function - 1183(r031): 49(ptr) Variable Function - 1187(r032): 49(ptr) Variable Function - 1191(r033): 49(ptr) Variable Function - 1194(r034): 49(ptr) Variable Function - 1197(r035): 49(ptr) Variable Function - 1200(r036): 49(ptr) Variable Function - 1205(r037): 49(ptr) Variable Function - 1208(r038): 49(ptr) Variable Function - 1215(r039): 49(ptr) Variable Function - 1218(r049): 49(ptr) Variable Function - 1223(r041): 49(ptr) Variable Function - 1226(r042): 49(ptr) Variable Function - 1230(r043): 49(ptr) Variable Function - 1233(r044): 49(ptr) Variable Function - 1238(r046): 49(ptr) Variable Function - 1063: 48 Load 51(inF0) - 1064: 121(bool) All 1063 - Store 1062(r000) 1064 - 1066: 48 Load 51(inF0) - 1067: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1066 - Store 1065(r001) 1067 + 1064(r000): 122(ptr) Variable Function + 1067(r001): 49(ptr) Variable Function + 1072(r003): 122(ptr) Variable Function + 1075(r004): 49(ptr) Variable Function + 1078(r005): 49(ptr) Variable Function + 1081(r006): 49(ptr) Variable Function + 1085(r007): 49(ptr) Variable Function + 1096(r008): 49(ptr) Variable Function + 1101(r009): 49(ptr) Variable Function + 1104(r010): 49(ptr) Variable Function + 1107(r011): 49(ptr) Variable Function + 1110(r012): 49(ptr) Variable Function + 1113(r013): 49(ptr) Variable Function + 1116(r014): 49(ptr) Variable Function + 1119(r015): 49(ptr) Variable Function + 1122(r016): 49(ptr) Variable Function + 1125(r017): 49(ptr) Variable Function + 1128(r018): 7(ptr) Variable Function + 1131(r019): 49(ptr) Variable Function + 1134(R020): 49(ptr) Variable Function + 1137(r021): 49(ptr) Variable Function + 1140(r022): 49(ptr) Variable Function + 1150(r023): 49(ptr) Variable Function + 1153(r024): 49(ptr) Variable Function + 1159(r025): 49(ptr) Variable Function + 1162(r026): 49(ptr) Variable Function + 1166(r026a): 49(ptr) Variable Function + 1171(r027): 49(ptr) Variable Function + 1174(r028): 49(ptr) Variable Function + 1178(r029): 49(ptr) Variable Function + 1181(r030): 49(ptr) Variable Function + 1185(r031): 49(ptr) Variable Function + 1189(r032): 49(ptr) Variable Function + 1193(r033): 49(ptr) Variable Function + 1196(r034): 49(ptr) Variable Function + 1199(r035): 49(ptr) Variable Function + 1202(r036): 49(ptr) Variable Function + 1207(r037): 49(ptr) Variable Function + 1210(r038): 49(ptr) Variable Function + 1217(r039): 49(ptr) Variable Function + 1220(r049): 49(ptr) Variable Function + 1225(r041): 49(ptr) Variable Function + 1228(r042): 49(ptr) Variable Function + 1232(r043): 49(ptr) Variable Function + 1235(r044): 49(ptr) Variable Function + 1240(r046): 49(ptr) Variable Function + 1065: 48 Load 51(inF0) + 1066: 121(bool) All 1065 + Store 1064(r000) 1066 1068: 48 Load 51(inF0) - 1069: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1068 - 1071: 48 Load 51(inF0) - 1072: 121(bool) Any 1071 - Store 1070(r003) 1072 - 1074: 48 Load 51(inF0) - 1075: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1074 - Store 1073(r004) 1075 - 1077: 48 Load 51(inF0) - 1078: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1077 - Store 1076(r005) 1078 - 1080: 48 Load 51(inF0) - 1081: 48 Load 52(inF1) - 1082: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1080 1081 - Store 1079(r006) 1082 - 1084: 48 Load 51(inF0) - 1085: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1084 - Store 1083(r007) 1085 + 1069: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 + Store 1067(r001) 1069 + 1070: 48 Load 51(inF0) + 1071: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1070 + 1073: 48 Load 51(inF0) + 1074: 121(bool) Any 1073 + Store 1072(r003) 1074 + 1076: 48 Load 51(inF0) + 1077: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1076 + Store 1075(r004) 1077 + 1079: 48 Load 51(inF0) + 1080: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1079 + Store 1078(r005) 1080 + 1082: 48 Load 51(inF0) + 1083: 48 Load 52(inF1) + 1084: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 + Store 1081(r006) 1084 1086: 48 Load 51(inF0) - 1089: 1088 FOrdLessThan 1086 1087 - 1090: 121(bool) Any 1089 - SelectionMerge 1092 None - BranchConditional 1090 1091 1092 - 1091: Label + 1087: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 + Store 1085(r007) 1087 + 1088: 48 Load 51(inF0) + 1091: 1090 FOrdLessThan 1088 1089 + 1092: 121(bool) Any 1091 + SelectionMerge 1094 None + BranchConditional 1092 1093 1094 + 1093: Label Kill - 1092: Label - 1095: 48 Load 51(inF0) - 1096: 48 Load 52(inF1) - 1097: 48 Load 53(inF2) - 1098: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1095 1096 1097 - Store 1094(r008) 1098 - 1100: 48 Load 51(inF0) - 1101: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1100 - Store 1099(r009) 1101 - 1103: 48 Load 51(inF0) - 1104: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1103 - Store 1102(r010) 1104 - 1106: 48 Load 51(inF0) - 1107: 48 DPdx 1106 - Store 1105(r011) 1107 - 1109: 48 Load 51(inF0) - 1110: 48 DPdxCoarse 1109 - Store 1108(r012) 1110 - 1112: 48 Load 51(inF0) - 1113: 48 DPdxFine 1112 - Store 1111(r013) 1113 - 1115: 48 Load 51(inF0) - 1116: 48 DPdy 1115 - Store 1114(r014) 1116 - 1118: 48 Load 51(inF0) - 1119: 48 DPdyCoarse 1118 - Store 1117(r015) 1119 - 1121: 48 Load 51(inF0) - 1122: 48 DPdyFine 1121 - Store 1120(r016) 1122 - 1124: 48 Load 51(inF0) - 1125: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1124 - Store 1123(r017) 1125 - 1127: 48 Load 51(inF0) - 1128: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1127 - Store 1126(r018) 1128 - 1130: 48 Load 51(inF0) - 1131: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1130 - Store 1129(r019) 1131 - 1133: 48 Load 51(inF0) - 1134: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1133 - Store 1132(R020) 1134 - 1136: 48 Load 51(inF0) - 1137: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1136 - Store 1135(r021) 1137 - 1139: 48 Load 51(inF0) - 1140: 48 Load 52(inF1) - 1141: 24(fvec2) CompositeExtract 1139 0 - 1142: 24(fvec2) CompositeExtract 1140 0 - 1143: 24(fvec2) FMod 1141 1142 - 1144: 24(fvec2) CompositeExtract 1139 1 - 1145: 24(fvec2) CompositeExtract 1140 1 - 1146: 24(fvec2) FMod 1144 1145 - 1147: 48 CompositeConstruct 1143 1146 - Store 1138(r022) 1147 - 1149: 48 Load 51(inF0) - 1150: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1149 - Store 1148(r023) 1150 - 1152: 48 Load 51(inF0) - 1154:1153(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1152 - 1155: 342(ivec2) CompositeExtract 1154 1 - Store 52(inF1) 1155 - 1156: 48 CompositeExtract 1154 0 - Store 1151(r024) 1156 - 1158: 48 Load 51(inF0) - 1159: 48 Fwidth 1158 - Store 1157(r025) 1159 - 1161: 48 Load 51(inF0) - 1162: 48 Load 52(inF1) - 1163: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1161 1162 - Store 1160(r026) 1163 - 1165: 48 Load 51(inF0) - 1166: 48 Load 52(inF1) - 1167: 48 Load 53(inF2) - 1168: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1165 1166 1167 - Store 1164(r026a) 1168 - 1170: 48 Load 51(inF0) - 1171: 48 ExtInst 1(GLSL.std.450) 28(Log) 1170 - Store 1169(r027) 1171 - 1173: 48 Load 51(inF0) - 1174: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1173 - 1175: 48 MatrixTimesScalar 1174 253 - Store 1172(r028) 1175 - 1177: 48 Load 51(inF0) - 1178: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1177 - Store 1176(r029) 1178 - 1180: 48 Load 51(inF0) - 1181: 48 Load 52(inF1) - 1182: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1180 1181 - Store 1179(r030) 1182 - 1184: 48 Load 51(inF0) - 1185: 48 Load 52(inF1) - 1186: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1184 1185 - Store 1183(r031) 1186 - 1188: 48 Load 51(inF0) - 1189: 48 Load 52(inF1) - 1190: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1188 1189 - Store 1187(r032) 1190 - 1192: 48 Load 51(inF0) - 1193: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1192 - Store 1191(r033) 1193 - 1195: 48 Load 51(inF0) - 1196: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1195 - Store 1194(r034) 1196 - 1198: 48 Load 51(inF0) - 1199: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1198 - Store 1197(r035) 1199 - 1201: 48 Load 51(inF0) - 1202: 24(fvec2) CompositeConstruct 165 165 - 1203: 24(fvec2) CompositeConstruct 274 274 - 1204: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1201 1202 1203 - Store 1200(r036) 1204 - 1206: 48 Load 51(inF0) - 1207: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1206 - Store 1205(r037) 1207 - 1209: 48 Load 51(inF0) - 1210: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1209 - Store 1208(r038) 1210 + 1094: Label + 1097: 48 Load 51(inF0) + 1098: 48 Load 52(inF1) + 1099: 48 Load 53(inF2) + 1100: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 + Store 1096(r008) 1100 + 1102: 48 Load 51(inF0) + 1103: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1102 + Store 1101(r009) 1103 + 1105: 48 Load 51(inF0) + 1106: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 + Store 1104(r010) 1106 + 1108: 48 Load 51(inF0) + 1109: 48 DPdx 1108 + Store 1107(r011) 1109 + 1111: 48 Load 51(inF0) + 1112: 48 DPdxCoarse 1111 + Store 1110(r012) 1112 + 1114: 48 Load 51(inF0) + 1115: 48 DPdxFine 1114 + Store 1113(r013) 1115 + 1117: 48 Load 51(inF0) + 1118: 48 DPdy 1117 + Store 1116(r014) 1118 + 1120: 48 Load 51(inF0) + 1121: 48 DPdyCoarse 1120 + Store 1119(r015) 1121 + 1123: 48 Load 51(inF0) + 1124: 48 DPdyFine 1123 + Store 1122(r016) 1124 + 1126: 48 Load 51(inF0) + 1127: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 + Store 1125(r017) 1127 + 1129: 48 Load 51(inF0) + 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129 + Store 1128(r018) 1130 + 1132: 48 Load 51(inF0) + 1133: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1132 + Store 1131(r019) 1133 + 1135: 48 Load 51(inF0) + 1136: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 + Store 1134(R020) 1136 + 1138: 48 Load 51(inF0) + 1139: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1138 + Store 1137(r021) 1139 + 1141: 48 Load 51(inF0) + 1142: 48 Load 52(inF1) + 1143: 24(fvec2) CompositeExtract 1141 0 + 1144: 24(fvec2) CompositeExtract 1142 0 + 1145: 24(fvec2) FMod 1143 1144 + 1146: 24(fvec2) CompositeExtract 1141 1 + 1147: 24(fvec2) CompositeExtract 1142 1 + 1148: 24(fvec2) FMod 1146 1147 + 1149: 48 CompositeConstruct 1145 1148 + Store 1140(r022) 1149 + 1151: 48 Load 51(inF0) + 1152: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1151 + Store 1150(r023) 1152 + 1154: 48 Load 51(inF0) + 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154 + 1157: 342(ivec2) CompositeExtract 1156 1 + Store 52(inF1) 1157 + 1158: 48 CompositeExtract 1156 0 + Store 1153(r024) 1158 + 1160: 48 Load 51(inF0) + 1161: 48 Fwidth 1160 + Store 1159(r025) 1161 + 1163: 48 Load 51(inF0) + 1164: 48 Load 52(inF1) + 1165: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 + Store 1162(r026) 1165 + 1167: 48 Load 51(inF0) + 1168: 48 Load 52(inF1) + 1169: 48 Load 53(inF2) + 1170: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 + Store 1166(r026a) 1170 + 1172: 48 Load 51(inF0) + 1173: 48 ExtInst 1(GLSL.std.450) 28(Log) 1172 + Store 1171(r027) 1173 + 1175: 48 Load 51(inF0) + 1176: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1175 + 1177: 48 MatrixTimesScalar 1176 253 + Store 1174(r028) 1177 + 1179: 48 Load 51(inF0) + 1180: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1179 + Store 1178(r029) 1180 + 1182: 48 Load 51(inF0) + 1183: 48 Load 52(inF1) + 1184: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 + Store 1181(r030) 1184 + 1186: 48 Load 51(inF0) + 1187: 48 Load 52(inF1) + 1188: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 + Store 1185(r031) 1188 + 1190: 48 Load 51(inF0) + 1191: 48 Load 52(inF1) + 1192: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 + Store 1189(r032) 1192 + 1194: 48 Load 51(inF0) + 1195: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1194 + Store 1193(r033) 1195 + 1197: 48 Load 51(inF0) + 1198: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 + Store 1196(r034) 1198 + 1200: 48 Load 51(inF0) + 1201: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 + Store 1199(r035) 1201 + 1203: 48 Load 51(inF0) + 1204: 24(fvec2) CompositeConstruct 165 165 + 1205: 24(fvec2) CompositeConstruct 274 274 + 1206: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 + Store 1202(r036) 1206 + 1208: 48 Load 51(inF0) + 1209: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1208 + Store 1207(r037) 1209 1211: 48 Load 51(inF0) 1212: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1211 - Store 52(inF1) 1212 + Store 1210(r038) 1212 1213: 48 Load 51(inF0) - 1214: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1213 - Store 53(inF2) 1214 - 1216: 48 Load 51(inF0) - 1217: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1216 - Store 1215(r039) 1217 - 1219: 48 Load 51(inF0) - 1220: 48 Load 52(inF1) - 1221: 48 Load 53(inF2) - 1222: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1219 1220 1221 - Store 1218(r049) 1222 - 1224: 48 Load 51(inF0) - 1225: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1224 - Store 1223(r041) 1225 - 1227: 48 Load 51(inF0) - 1228: 48 Load 52(inF1) - 1229: 48 ExtInst 1(GLSL.std.450) 48(Step) 1227 1228 - Store 1226(r042) 1229 - 1231: 48 Load 51(inF0) - 1232: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1231 - Store 1230(r043) 1232 - 1234: 48 Load 51(inF0) - 1235: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1234 - Store 1233(r044) 1235 + 1214: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1213 + Store 52(inF1) 1214 + 1215: 48 Load 51(inF0) + 1216: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1215 + Store 53(inF2) 1216 + 1218: 48 Load 51(inF0) + 1219: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 + Store 1217(r039) 1219 + 1221: 48 Load 51(inF0) + 1222: 48 Load 52(inF1) + 1223: 48 Load 53(inF2) + 1224: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 + Store 1220(r049) 1224 + 1226: 48 Load 51(inF0) + 1227: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 + Store 1225(r041) 1227 + 1229: 48 Load 51(inF0) + 1230: 48 Load 52(inF1) + 1231: 48 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 + Store 1228(r042) 1231 + 1233: 48 Load 51(inF0) + 1234: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1233 + Store 1232(r043) 1234 1236: 48 Load 51(inF0) - 1237: 48 Transpose 1236 - 1239: 48 Load 51(inF0) - 1240: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1239 - Store 1238(r046) 1240 - ReturnValue 1242 + 1237: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 + Store 1235(r044) 1237 + 1238: 48 Load 51(inF0) + 1239: 48 Transpose 1238 + 1241: 48 Load 51(inF0) + 1242: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 + Store 1240(r046) 1242 + ReturnValue 1244 FunctionEnd 62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58 59(inF0): 57(ptr) FunctionParameter 60(inF1): 57(ptr) FunctionParameter 61(inF2): 57(ptr) FunctionParameter 63: Label - 1245(r000): 122(ptr) Variable Function - 1248(r001): 57(ptr) Variable Function - 1253(r003): 122(ptr) Variable Function - 1256(r004): 57(ptr) Variable Function - 1259(r005): 57(ptr) Variable Function - 1262(r006): 57(ptr) Variable Function - 1266(r007): 57(ptr) Variable Function - 1277(r008): 57(ptr) Variable Function - 1282(r009): 57(ptr) Variable Function - 1285(r010): 57(ptr) Variable Function - 1288(r011): 57(ptr) Variable Function - 1291(r012): 57(ptr) Variable Function - 1294(r013): 57(ptr) Variable Function - 1297(r014): 57(ptr) Variable Function - 1300(r015): 57(ptr) Variable Function - 1303(r016): 57(ptr) Variable Function - 1306(r017): 57(ptr) Variable Function - 1309(r018): 7(ptr) Variable Function - 1312(r019): 57(ptr) Variable Function - 1315(R020): 57(ptr) Variable Function - 1318(r021): 57(ptr) Variable Function - 1321(r022): 57(ptr) Variable Function - 1334(r023): 57(ptr) Variable Function - 1337(r024): 57(ptr) Variable Function - 1343(r025): 57(ptr) Variable Function - 1346(r026): 57(ptr) Variable Function - 1350(r026a): 57(ptr) Variable Function - 1355(r027): 57(ptr) Variable Function - 1358(r028): 57(ptr) Variable Function - 1362(r029): 57(ptr) Variable Function - 1365(r030): 57(ptr) Variable Function - 1369(r031): 57(ptr) Variable Function - 1373(r032): 57(ptr) Variable Function - 1377(r033): 57(ptr) Variable Function - 1380(r034): 57(ptr) Variable Function - 1383(r035): 57(ptr) Variable Function - 1386(r036): 57(ptr) Variable Function - 1391(r037): 57(ptr) Variable Function - 1394(r038): 57(ptr) Variable Function - 1401(r039): 57(ptr) Variable Function - 1404(r049): 57(ptr) Variable Function - 1409(r041): 57(ptr) Variable Function - 1412(r042): 57(ptr) Variable Function - 1416(r043): 57(ptr) Variable Function - 1419(r044): 57(ptr) Variable Function - 1424(r046): 57(ptr) Variable Function - 1246: 56 Load 59(inF0) - 1247: 121(bool) All 1246 - Store 1245(r000) 1247 - 1249: 56 Load 59(inF0) - 1250: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1249 - Store 1248(r001) 1250 + 1247(r000): 122(ptr) Variable Function + 1250(r001): 57(ptr) Variable Function + 1255(r003): 122(ptr) Variable Function + 1258(r004): 57(ptr) Variable Function + 1261(r005): 57(ptr) Variable Function + 1264(r006): 57(ptr) Variable Function + 1268(r007): 57(ptr) Variable Function + 1279(r008): 57(ptr) Variable Function + 1284(r009): 57(ptr) Variable Function + 1287(r010): 57(ptr) Variable Function + 1290(r011): 57(ptr) Variable Function + 1293(r012): 57(ptr) Variable Function + 1296(r013): 57(ptr) Variable Function + 1299(r014): 57(ptr) Variable Function + 1302(r015): 57(ptr) Variable Function + 1305(r016): 57(ptr) Variable Function + 1308(r017): 57(ptr) Variable Function + 1311(r018): 7(ptr) Variable Function + 1314(r019): 57(ptr) Variable Function + 1317(R020): 57(ptr) Variable Function + 1320(r021): 57(ptr) Variable Function + 1323(r022): 57(ptr) Variable Function + 1336(r023): 57(ptr) Variable Function + 1339(r024): 57(ptr) Variable Function + 1345(r025): 57(ptr) Variable Function + 1348(r026): 57(ptr) Variable Function + 1352(r026a): 57(ptr) Variable Function + 1357(r027): 57(ptr) Variable Function + 1360(r028): 57(ptr) Variable Function + 1364(r029): 57(ptr) Variable Function + 1367(r030): 57(ptr) Variable Function + 1371(r031): 57(ptr) Variable Function + 1375(r032): 57(ptr) Variable Function + 1379(r033): 57(ptr) Variable Function + 1382(r034): 57(ptr) Variable Function + 1385(r035): 57(ptr) Variable Function + 1388(r036): 57(ptr) Variable Function + 1393(r037): 57(ptr) Variable Function + 1396(r038): 57(ptr) Variable Function + 1403(r039): 57(ptr) Variable Function + 1406(r049): 57(ptr) Variable Function + 1411(r041): 57(ptr) Variable Function + 1414(r042): 57(ptr) Variable Function + 1418(r043): 57(ptr) Variable Function + 1421(r044): 57(ptr) Variable Function + 1426(r046): 57(ptr) Variable Function + 1248: 56 Load 59(inF0) + 1249: 121(bool) All 1248 + Store 1247(r000) 1249 1251: 56 Load 59(inF0) - 1252: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1251 - 1254: 56 Load 59(inF0) - 1255: 121(bool) Any 1254 - Store 1253(r003) 1255 - 1257: 56 Load 59(inF0) - 1258: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1257 - Store 1256(r004) 1258 - 1260: 56 Load 59(inF0) - 1261: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1260 - Store 1259(r005) 1261 - 1263: 56 Load 59(inF0) - 1264: 56 Load 60(inF1) - 1265: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1263 1264 - Store 1262(r006) 1265 - 1267: 56 Load 59(inF0) - 1268: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1267 - Store 1266(r007) 1268 + 1252: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 + Store 1250(r001) 1252 + 1253: 56 Load 59(inF0) + 1254: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1253 + 1256: 56 Load 59(inF0) + 1257: 121(bool) Any 1256 + Store 1255(r003) 1257 + 1259: 56 Load 59(inF0) + 1260: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1259 + Store 1258(r004) 1260 + 1262: 56 Load 59(inF0) + 1263: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1262 + Store 1261(r005) 1263 + 1265: 56 Load 59(inF0) + 1266: 56 Load 60(inF1) + 1267: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 + Store 1264(r006) 1267 1269: 56 Load 59(inF0) - 1272: 1271 FOrdLessThan 1269 1270 - 1273: 121(bool) Any 1272 - SelectionMerge 1275 None - BranchConditional 1273 1274 1275 - 1274: Label + 1270: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 + Store 1268(r007) 1270 + 1271: 56 Load 59(inF0) + 1274: 1273 FOrdLessThan 1271 1272 + 1275: 121(bool) Any 1274 + SelectionMerge 1277 None + BranchConditional 1275 1276 1277 + 1276: Label Kill - 1275: Label - 1278: 56 Load 59(inF0) - 1279: 56 Load 60(inF1) - 1280: 56 Load 61(inF2) - 1281: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1278 1279 1280 - Store 1277(r008) 1281 - 1283: 56 Load 59(inF0) - 1284: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1283 - Store 1282(r009) 1284 - 1286: 56 Load 59(inF0) - 1287: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1286 - Store 1285(r010) 1287 - 1289: 56 Load 59(inF0) - 1290: 56 DPdx 1289 - Store 1288(r011) 1290 - 1292: 56 Load 59(inF0) - 1293: 56 DPdxCoarse 1292 - Store 1291(r012) 1293 - 1295: 56 Load 59(inF0) - 1296: 56 DPdxFine 1295 - Store 1294(r013) 1296 - 1298: 56 Load 59(inF0) - 1299: 56 DPdy 1298 - Store 1297(r014) 1299 - 1301: 56 Load 59(inF0) - 1302: 56 DPdyCoarse 1301 - Store 1300(r015) 1302 - 1304: 56 Load 59(inF0) - 1305: 56 DPdyFine 1304 - Store 1303(r016) 1305 - 1307: 56 Load 59(inF0) - 1308: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1307 - Store 1306(r017) 1308 - 1310: 56 Load 59(inF0) - 1311: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1310 - Store 1309(r018) 1311 - 1313: 56 Load 59(inF0) - 1314: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1313 - Store 1312(r019) 1314 - 1316: 56 Load 59(inF0) - 1317: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1316 - Store 1315(R020) 1317 - 1319: 56 Load 59(inF0) - 1320: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1319 - Store 1318(r021) 1320 - 1322: 56 Load 59(inF0) - 1323: 56 Load 60(inF1) - 1324: 36(fvec3) CompositeExtract 1322 0 - 1325: 36(fvec3) CompositeExtract 1323 0 - 1326: 36(fvec3) FMod 1324 1325 - 1327: 36(fvec3) CompositeExtract 1322 1 - 1328: 36(fvec3) CompositeExtract 1323 1 - 1329: 36(fvec3) FMod 1327 1328 - 1330: 36(fvec3) CompositeExtract 1322 2 - 1331: 36(fvec3) CompositeExtract 1323 2 - 1332: 36(fvec3) FMod 1330 1331 - 1333: 56 CompositeConstruct 1326 1329 1332 - Store 1321(r022) 1333 - 1335: 56 Load 59(inF0) - 1336: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1335 - Store 1334(r023) 1336 - 1338: 56 Load 59(inF0) - 1340:1339(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1338 - 1341: 578(ivec3) CompositeExtract 1340 1 - Store 60(inF1) 1341 - 1342: 56 CompositeExtract 1340 0 - Store 1337(r024) 1342 - 1344: 56 Load 59(inF0) - 1345: 56 Fwidth 1344 - Store 1343(r025) 1345 - 1347: 56 Load 59(inF0) - 1348: 56 Load 60(inF1) - 1349: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1347 1348 - Store 1346(r026) 1349 - 1351: 56 Load 59(inF0) - 1352: 56 Load 60(inF1) - 1353: 56 Load 61(inF2) - 1354: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1351 1352 1353 - Store 1350(r026a) 1354 - 1356: 56 Load 59(inF0) - 1357: 56 ExtInst 1(GLSL.std.450) 28(Log) 1356 - Store 1355(r027) 1357 - 1359: 56 Load 59(inF0) - 1360: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1359 - 1361: 56 MatrixTimesScalar 1360 253 - Store 1358(r028) 1361 - 1363: 56 Load 59(inF0) - 1364: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1363 - Store 1362(r029) 1364 - 1366: 56 Load 59(inF0) - 1367: 56 Load 60(inF1) - 1368: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1366 1367 - Store 1365(r030) 1368 - 1370: 56 Load 59(inF0) - 1371: 56 Load 60(inF1) - 1372: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1370 1371 - Store 1369(r031) 1372 - 1374: 56 Load 59(inF0) - 1375: 56 Load 60(inF1) - 1376: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1374 1375 - Store 1373(r032) 1376 - 1378: 56 Load 59(inF0) - 1379: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1378 - Store 1377(r033) 1379 - 1381: 56 Load 59(inF0) - 1382: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1381 - Store 1380(r034) 1382 - 1384: 56 Load 59(inF0) - 1385: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1384 - Store 1383(r035) 1385 - 1387: 56 Load 59(inF0) - 1388: 36(fvec3) CompositeConstruct 165 165 165 - 1389: 36(fvec3) CompositeConstruct 274 274 274 - 1390: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1387 1388 1389 - Store 1386(r036) 1390 - 1392: 56 Load 59(inF0) - 1393: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1392 - Store 1391(r037) 1393 - 1395: 56 Load 59(inF0) - 1396: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1395 - Store 1394(r038) 1396 + 1277: Label + 1280: 56 Load 59(inF0) + 1281: 56 Load 60(inF1) + 1282: 56 Load 61(inF2) + 1283: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 + Store 1279(r008) 1283 + 1285: 56 Load 59(inF0) + 1286: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1285 + Store 1284(r009) 1286 + 1288: 56 Load 59(inF0) + 1289: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 + Store 1287(r010) 1289 + 1291: 56 Load 59(inF0) + 1292: 56 DPdx 1291 + Store 1290(r011) 1292 + 1294: 56 Load 59(inF0) + 1295: 56 DPdxCoarse 1294 + Store 1293(r012) 1295 + 1297: 56 Load 59(inF0) + 1298: 56 DPdxFine 1297 + Store 1296(r013) 1298 + 1300: 56 Load 59(inF0) + 1301: 56 DPdy 1300 + Store 1299(r014) 1301 + 1303: 56 Load 59(inF0) + 1304: 56 DPdyCoarse 1303 + Store 1302(r015) 1304 + 1306: 56 Load 59(inF0) + 1307: 56 DPdyFine 1306 + Store 1305(r016) 1307 + 1309: 56 Load 59(inF0) + 1310: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 + Store 1308(r017) 1310 + 1312: 56 Load 59(inF0) + 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312 + Store 1311(r018) 1313 + 1315: 56 Load 59(inF0) + 1316: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1315 + Store 1314(r019) 1316 + 1318: 56 Load 59(inF0) + 1319: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 + Store 1317(R020) 1319 + 1321: 56 Load 59(inF0) + 1322: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1321 + Store 1320(r021) 1322 + 1324: 56 Load 59(inF0) + 1325: 56 Load 60(inF1) + 1326: 36(fvec3) CompositeExtract 1324 0 + 1327: 36(fvec3) CompositeExtract 1325 0 + 1328: 36(fvec3) FMod 1326 1327 + 1329: 36(fvec3) CompositeExtract 1324 1 + 1330: 36(fvec3) CompositeExtract 1325 1 + 1331: 36(fvec3) FMod 1329 1330 + 1332: 36(fvec3) CompositeExtract 1324 2 + 1333: 36(fvec3) CompositeExtract 1325 2 + 1334: 36(fvec3) FMod 1332 1333 + 1335: 56 CompositeConstruct 1328 1331 1334 + Store 1323(r022) 1335 + 1337: 56 Load 59(inF0) + 1338: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1337 + Store 1336(r023) 1338 + 1340: 56 Load 59(inF0) + 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340 + 1343: 578(ivec3) CompositeExtract 1342 1 + Store 60(inF1) 1343 + 1344: 56 CompositeExtract 1342 0 + Store 1339(r024) 1344 + 1346: 56 Load 59(inF0) + 1347: 56 Fwidth 1346 + Store 1345(r025) 1347 + 1349: 56 Load 59(inF0) + 1350: 56 Load 60(inF1) + 1351: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 + Store 1348(r026) 1351 + 1353: 56 Load 59(inF0) + 1354: 56 Load 60(inF1) + 1355: 56 Load 61(inF2) + 1356: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 + Store 1352(r026a) 1356 + 1358: 56 Load 59(inF0) + 1359: 56 ExtInst 1(GLSL.std.450) 28(Log) 1358 + Store 1357(r027) 1359 + 1361: 56 Load 59(inF0) + 1362: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1361 + 1363: 56 MatrixTimesScalar 1362 253 + Store 1360(r028) 1363 + 1365: 56 Load 59(inF0) + 1366: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1365 + Store 1364(r029) 1366 + 1368: 56 Load 59(inF0) + 1369: 56 Load 60(inF1) + 1370: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 + Store 1367(r030) 1370 + 1372: 56 Load 59(inF0) + 1373: 56 Load 60(inF1) + 1374: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 + Store 1371(r031) 1374 + 1376: 56 Load 59(inF0) + 1377: 56 Load 60(inF1) + 1378: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 + Store 1375(r032) 1378 + 1380: 56 Load 59(inF0) + 1381: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1380 + Store 1379(r033) 1381 + 1383: 56 Load 59(inF0) + 1384: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 + Store 1382(r034) 1384 + 1386: 56 Load 59(inF0) + 1387: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 + Store 1385(r035) 1387 + 1389: 56 Load 59(inF0) + 1390: 36(fvec3) CompositeConstruct 165 165 165 + 1391: 36(fvec3) CompositeConstruct 274 274 274 + 1392: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 + Store 1388(r036) 1392 + 1394: 56 Load 59(inF0) + 1395: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1394 + Store 1393(r037) 1395 1397: 56 Load 59(inF0) 1398: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1397 - Store 60(inF1) 1398 + Store 1396(r038) 1398 1399: 56 Load 59(inF0) - 1400: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1399 - Store 61(inF2) 1400 - 1402: 56 Load 59(inF0) - 1403: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1402 - Store 1401(r039) 1403 - 1405: 56 Load 59(inF0) - 1406: 56 Load 60(inF1) - 1407: 56 Load 61(inF2) - 1408: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1405 1406 1407 - Store 1404(r049) 1408 - 1410: 56 Load 59(inF0) - 1411: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1410 - Store 1409(r041) 1411 - 1413: 56 Load 59(inF0) - 1414: 56 Load 60(inF1) - 1415: 56 ExtInst 1(GLSL.std.450) 48(Step) 1413 1414 - Store 1412(r042) 1415 - 1417: 56 Load 59(inF0) - 1418: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1417 - Store 1416(r043) 1418 - 1420: 56 Load 59(inF0) - 1421: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1420 - Store 1419(r044) 1421 + 1400: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1399 + Store 60(inF1) 1400 + 1401: 56 Load 59(inF0) + 1402: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1401 + Store 61(inF2) 1402 + 1404: 56 Load 59(inF0) + 1405: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 + Store 1403(r039) 1405 + 1407: 56 Load 59(inF0) + 1408: 56 Load 60(inF1) + 1409: 56 Load 61(inF2) + 1410: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 + Store 1406(r049) 1410 + 1412: 56 Load 59(inF0) + 1413: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 + Store 1411(r041) 1413 + 1415: 56 Load 59(inF0) + 1416: 56 Load 60(inF1) + 1417: 56 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 + Store 1414(r042) 1417 + 1419: 56 Load 59(inF0) + 1420: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1419 + Store 1418(r043) 1420 1422: 56 Load 59(inF0) - 1423: 56 Transpose 1422 - 1425: 56 Load 59(inF0) - 1426: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1425 - Store 1424(r046) 1426 - ReturnValue 1428 + 1423: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 + Store 1421(r044) 1423 + 1424: 56 Load 59(inF0) + 1425: 56 Transpose 1424 + 1427: 56 Load 59(inF0) + 1428: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 + Store 1426(r046) 1428 + ReturnValue 1430 FunctionEnd 71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67 68(inF0): 66(ptr) FunctionParameter 69(inF1): 66(ptr) FunctionParameter 70(inF2): 66(ptr) FunctionParameter 72: Label - 1431(r000): 122(ptr) Variable Function - 1434(r001): 66(ptr) Variable Function - 1439(r003): 122(ptr) Variable Function - 1442(r004): 66(ptr) Variable Function - 1445(r005): 66(ptr) Variable Function - 1448(r006): 66(ptr) Variable Function - 1452(r007): 66(ptr) Variable Function - 1463(r008): 66(ptr) Variable Function - 1468(r009): 66(ptr) Variable Function - 1471(r010): 66(ptr) Variable Function - 1474(r011): 66(ptr) Variable Function - 1477(r012): 66(ptr) Variable Function - 1480(r013): 66(ptr) Variable Function - 1483(r014): 66(ptr) Variable Function - 1486(r015): 66(ptr) Variable Function - 1489(r016): 66(ptr) Variable Function - 1492(r017): 66(ptr) Variable Function - 1495(r018): 7(ptr) Variable Function - 1498(r019): 66(ptr) Variable Function - 1501(R020): 66(ptr) Variable Function - 1504(r021): 66(ptr) Variable Function - 1507(r022): 66(ptr) Variable Function - 1523(r023): 66(ptr) Variable Function - 1526(r024): 66(ptr) Variable Function - 1532(r025): 66(ptr) Variable Function - 1535(r026): 66(ptr) Variable Function - 1539(r026a): 66(ptr) Variable Function - 1544(r027): 66(ptr) Variable Function - 1547(r028): 66(ptr) Variable Function - 1551(r029): 66(ptr) Variable Function - 1554(r030): 66(ptr) Variable Function - 1558(r031): 66(ptr) Variable Function - 1562(r032): 66(ptr) Variable Function - 1566(r033): 66(ptr) Variable Function - 1569(r034): 66(ptr) Variable Function - 1572(r035): 66(ptr) Variable Function - 1575(r036): 66(ptr) Variable Function - 1580(r037): 66(ptr) Variable Function - 1583(r038): 66(ptr) Variable Function - 1590(r039): 66(ptr) Variable Function - 1593(r049): 66(ptr) Variable Function - 1598(r041): 66(ptr) Variable Function - 1601(r042): 66(ptr) Variable Function - 1605(r043): 66(ptr) Variable Function - 1608(r044): 66(ptr) Variable Function - 1613(r046): 66(ptr) Variable Function - 1432: 65 Load 68(inF0) - 1433: 121(bool) All 1432 - Store 1431(r000) 1433 - 1435: 65 Load 68(inF0) - 1436: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1435 - Store 1434(r001) 1436 + 1433(r000): 122(ptr) Variable Function + 1436(r001): 66(ptr) Variable Function + 1441(r003): 122(ptr) Variable Function + 1444(r004): 66(ptr) Variable Function + 1447(r005): 66(ptr) Variable Function + 1450(r006): 66(ptr) Variable Function + 1454(r007): 66(ptr) Variable Function + 1465(r008): 66(ptr) Variable Function + 1470(r009): 66(ptr) Variable Function + 1473(r010): 66(ptr) Variable Function + 1476(r011): 66(ptr) Variable Function + 1479(r012): 66(ptr) Variable Function + 1482(r013): 66(ptr) Variable Function + 1485(r014): 66(ptr) Variable Function + 1488(r015): 66(ptr) Variable Function + 1491(r016): 66(ptr) Variable Function + 1494(r017): 66(ptr) Variable Function + 1497(r018): 7(ptr) Variable Function + 1500(r019): 66(ptr) Variable Function + 1503(R020): 66(ptr) Variable Function + 1506(r021): 66(ptr) Variable Function + 1509(r022): 66(ptr) Variable Function + 1525(r023): 66(ptr) Variable Function + 1528(r024): 66(ptr) Variable Function + 1534(r025): 66(ptr) Variable Function + 1537(r026): 66(ptr) Variable Function + 1541(r026a): 66(ptr) Variable Function + 1546(r027): 66(ptr) Variable Function + 1549(r028): 66(ptr) Variable Function + 1553(r029): 66(ptr) Variable Function + 1556(r030): 66(ptr) Variable Function + 1560(r031): 66(ptr) Variable Function + 1564(r032): 66(ptr) Variable Function + 1568(r033): 66(ptr) Variable Function + 1571(r034): 66(ptr) Variable Function + 1574(r035): 66(ptr) Variable Function + 1577(r036): 66(ptr) Variable Function + 1582(r037): 66(ptr) Variable Function + 1585(r038): 66(ptr) Variable Function + 1592(r039): 66(ptr) Variable Function + 1595(r049): 66(ptr) Variable Function + 1600(r041): 66(ptr) Variable Function + 1603(r042): 66(ptr) Variable Function + 1607(r043): 66(ptr) Variable Function + 1610(r044): 66(ptr) Variable Function + 1615(r046): 66(ptr) Variable Function + 1434: 65 Load 68(inF0) + 1435: 121(bool) All 1434 + Store 1433(r000) 1435 1437: 65 Load 68(inF0) - 1438: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1437 - 1440: 65 Load 68(inF0) - 1441: 121(bool) Any 1440 - Store 1439(r003) 1441 - 1443: 65 Load 68(inF0) - 1444: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1443 - Store 1442(r004) 1444 - 1446: 65 Load 68(inF0) - 1447: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1446 - Store 1445(r005) 1447 - 1449: 65 Load 68(inF0) - 1450: 65 Load 69(inF1) - 1451: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1449 1450 - Store 1448(r006) 1451 - 1453: 65 Load 68(inF0) - 1454: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1453 - Store 1452(r007) 1454 + 1438: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 + Store 1436(r001) 1438 + 1439: 65 Load 68(inF0) + 1440: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1439 + 1442: 65 Load 68(inF0) + 1443: 121(bool) Any 1442 + Store 1441(r003) 1443 + 1445: 65 Load 68(inF0) + 1446: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1445 + Store 1444(r004) 1446 + 1448: 65 Load 68(inF0) + 1449: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1448 + Store 1447(r005) 1449 + 1451: 65 Load 68(inF0) + 1452: 65 Load 69(inF1) + 1453: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 + Store 1450(r006) 1453 1455: 65 Load 68(inF0) - 1458: 1457 FOrdLessThan 1455 1456 - 1459: 121(bool) Any 1458 - SelectionMerge 1461 None - BranchConditional 1459 1460 1461 - 1460: Label + 1456: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 + Store 1454(r007) 1456 + 1457: 65 Load 68(inF0) + 1460: 1459 FOrdLessThan 1457 1458 + 1461: 121(bool) Any 1460 + SelectionMerge 1463 None + BranchConditional 1461 1462 1463 + 1462: Label Kill - 1461: Label - 1464: 65 Load 68(inF0) - 1465: 65 Load 69(inF1) - 1466: 65 Load 70(inF2) - 1467: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1464 1465 1466 - Store 1463(r008) 1467 - 1469: 65 Load 68(inF0) - 1470: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1469 - Store 1468(r009) 1470 - 1472: 65 Load 68(inF0) - 1473: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1472 - Store 1471(r010) 1473 - 1475: 65 Load 68(inF0) - 1476: 65 DPdx 1475 - Store 1474(r011) 1476 - 1478: 65 Load 68(inF0) - 1479: 65 DPdxCoarse 1478 - Store 1477(r012) 1479 - 1481: 65 Load 68(inF0) - 1482: 65 DPdxFine 1481 - Store 1480(r013) 1482 - 1484: 65 Load 68(inF0) - 1485: 65 DPdy 1484 - Store 1483(r014) 1485 - 1487: 65 Load 68(inF0) - 1488: 65 DPdyCoarse 1487 - Store 1486(r015) 1488 - 1490: 65 Load 68(inF0) - 1491: 65 DPdyFine 1490 - Store 1489(r016) 1491 - 1493: 65 Load 68(inF0) - 1494: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1493 - Store 1492(r017) 1494 - 1496: 65 Load 68(inF0) - 1497: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1496 - Store 1495(r018) 1497 - 1499: 65 Load 68(inF0) - 1500: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1499 - Store 1498(r019) 1500 - 1502: 65 Load 68(inF0) - 1503: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1502 - Store 1501(R020) 1503 - 1505: 65 Load 68(inF0) - 1506: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1505 - Store 1504(r021) 1506 - 1508: 65 Load 68(inF0) - 1509: 65 Load 69(inF1) - 1510: 64(fvec4) CompositeExtract 1508 0 - 1511: 64(fvec4) CompositeExtract 1509 0 - 1512: 64(fvec4) FMod 1510 1511 - 1513: 64(fvec4) CompositeExtract 1508 1 - 1514: 64(fvec4) CompositeExtract 1509 1 - 1515: 64(fvec4) FMod 1513 1514 - 1516: 64(fvec4) CompositeExtract 1508 2 - 1517: 64(fvec4) CompositeExtract 1509 2 - 1518: 64(fvec4) FMod 1516 1517 - 1519: 64(fvec4) CompositeExtract 1508 3 - 1520: 64(fvec4) CompositeExtract 1509 3 - 1521: 64(fvec4) FMod 1519 1520 - 1522: 65 CompositeConstruct 1512 1515 1518 1521 - Store 1507(r022) 1522 - 1524: 65 Load 68(inF0) - 1525: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1524 - Store 1523(r023) 1525 - 1527: 65 Load 68(inF0) - 1529:1528(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1527 - 1530: 825(ivec4) CompositeExtract 1529 1 - Store 69(inF1) 1530 - 1531: 65 CompositeExtract 1529 0 - Store 1526(r024) 1531 - 1533: 65 Load 68(inF0) - 1534: 65 Fwidth 1533 - Store 1532(r025) 1534 - 1536: 65 Load 68(inF0) - 1537: 65 Load 69(inF1) - 1538: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1536 1537 - Store 1535(r026) 1538 - 1540: 65 Load 68(inF0) - 1541: 65 Load 69(inF1) - 1542: 65 Load 70(inF2) - 1543: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1540 1541 1542 - Store 1539(r026a) 1543 - 1545: 65 Load 68(inF0) - 1546: 65 ExtInst 1(GLSL.std.450) 28(Log) 1545 - Store 1544(r027) 1546 - 1548: 65 Load 68(inF0) - 1549: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1548 - 1550: 65 MatrixTimesScalar 1549 253 - Store 1547(r028) 1550 - 1552: 65 Load 68(inF0) - 1553: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1552 - Store 1551(r029) 1553 - 1555: 65 Load 68(inF0) - 1556: 65 Load 69(inF1) - 1557: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1555 1556 - Store 1554(r030) 1557 - 1559: 65 Load 68(inF0) - 1560: 65 Load 69(inF1) - 1561: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1559 1560 - Store 1558(r031) 1561 - 1563: 65 Load 68(inF0) - 1564: 65 Load 69(inF1) - 1565: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1563 1564 - Store 1562(r032) 1565 - 1567: 65 Load 68(inF0) - 1568: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1567 - Store 1566(r033) 1568 - 1570: 65 Load 68(inF0) - 1571: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1570 - Store 1569(r034) 1571 - 1573: 65 Load 68(inF0) - 1574: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1573 - Store 1572(r035) 1574 - 1576: 65 Load 68(inF0) - 1577: 64(fvec4) CompositeConstruct 165 165 165 165 - 1578: 64(fvec4) CompositeConstruct 274 274 274 274 - 1579: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1576 1577 1578 - Store 1575(r036) 1579 - 1581: 65 Load 68(inF0) - 1582: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1581 - Store 1580(r037) 1582 - 1584: 65 Load 68(inF0) - 1585: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1584 - Store 1583(r038) 1585 + 1463: Label + 1466: 65 Load 68(inF0) + 1467: 65 Load 69(inF1) + 1468: 65 Load 70(inF2) + 1469: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 + Store 1465(r008) 1469 + 1471: 65 Load 68(inF0) + 1472: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1471 + Store 1470(r009) 1472 + 1474: 65 Load 68(inF0) + 1475: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 + Store 1473(r010) 1475 + 1477: 65 Load 68(inF0) + 1478: 65 DPdx 1477 + Store 1476(r011) 1478 + 1480: 65 Load 68(inF0) + 1481: 65 DPdxCoarse 1480 + Store 1479(r012) 1481 + 1483: 65 Load 68(inF0) + 1484: 65 DPdxFine 1483 + Store 1482(r013) 1484 + 1486: 65 Load 68(inF0) + 1487: 65 DPdy 1486 + Store 1485(r014) 1487 + 1489: 65 Load 68(inF0) + 1490: 65 DPdyCoarse 1489 + Store 1488(r015) 1490 + 1492: 65 Load 68(inF0) + 1493: 65 DPdyFine 1492 + Store 1491(r016) 1493 + 1495: 65 Load 68(inF0) + 1496: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 + Store 1494(r017) 1496 + 1498: 65 Load 68(inF0) + 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498 + Store 1497(r018) 1499 + 1501: 65 Load 68(inF0) + 1502: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1501 + Store 1500(r019) 1502 + 1504: 65 Load 68(inF0) + 1505: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 + Store 1503(R020) 1505 + 1507: 65 Load 68(inF0) + 1508: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1507 + Store 1506(r021) 1508 + 1510: 65 Load 68(inF0) + 1511: 65 Load 69(inF1) + 1512: 64(fvec4) CompositeExtract 1510 0 + 1513: 64(fvec4) CompositeExtract 1511 0 + 1514: 64(fvec4) FMod 1512 1513 + 1515: 64(fvec4) CompositeExtract 1510 1 + 1516: 64(fvec4) CompositeExtract 1511 1 + 1517: 64(fvec4) FMod 1515 1516 + 1518: 64(fvec4) CompositeExtract 1510 2 + 1519: 64(fvec4) CompositeExtract 1511 2 + 1520: 64(fvec4) FMod 1518 1519 + 1521: 64(fvec4) CompositeExtract 1510 3 + 1522: 64(fvec4) CompositeExtract 1511 3 + 1523: 64(fvec4) FMod 1521 1522 + 1524: 65 CompositeConstruct 1514 1517 1520 1523 + Store 1509(r022) 1524 + 1526: 65 Load 68(inF0) + 1527: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1526 + Store 1525(r023) 1527 + 1529: 65 Load 68(inF0) + 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529 + 1532: 825(ivec4) CompositeExtract 1531 1 + Store 69(inF1) 1532 + 1533: 65 CompositeExtract 1531 0 + Store 1528(r024) 1533 + 1535: 65 Load 68(inF0) + 1536: 65 Fwidth 1535 + Store 1534(r025) 1536 + 1538: 65 Load 68(inF0) + 1539: 65 Load 69(inF1) + 1540: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 + Store 1537(r026) 1540 + 1542: 65 Load 68(inF0) + 1543: 65 Load 69(inF1) + 1544: 65 Load 70(inF2) + 1545: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 + Store 1541(r026a) 1545 + 1547: 65 Load 68(inF0) + 1548: 65 ExtInst 1(GLSL.std.450) 28(Log) 1547 + Store 1546(r027) 1548 + 1550: 65 Load 68(inF0) + 1551: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1550 + 1552: 65 MatrixTimesScalar 1551 253 + Store 1549(r028) 1552 + 1554: 65 Load 68(inF0) + 1555: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1554 + Store 1553(r029) 1555 + 1557: 65 Load 68(inF0) + 1558: 65 Load 69(inF1) + 1559: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 + Store 1556(r030) 1559 + 1561: 65 Load 68(inF0) + 1562: 65 Load 69(inF1) + 1563: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 + Store 1560(r031) 1563 + 1565: 65 Load 68(inF0) + 1566: 65 Load 69(inF1) + 1567: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 + Store 1564(r032) 1567 + 1569: 65 Load 68(inF0) + 1570: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1569 + Store 1568(r033) 1570 + 1572: 65 Load 68(inF0) + 1573: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 + Store 1571(r034) 1573 + 1575: 65 Load 68(inF0) + 1576: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 + Store 1574(r035) 1576 + 1578: 65 Load 68(inF0) + 1579: 64(fvec4) CompositeConstruct 165 165 165 165 + 1580: 64(fvec4) CompositeConstruct 274 274 274 274 + 1581: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 + Store 1577(r036) 1581 + 1583: 65 Load 68(inF0) + 1584: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1583 + Store 1582(r037) 1584 1586: 65 Load 68(inF0) 1587: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1586 - Store 69(inF1) 1587 + Store 1585(r038) 1587 1588: 65 Load 68(inF0) - 1589: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1588 - Store 70(inF2) 1589 - 1591: 65 Load 68(inF0) - 1592: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1591 - Store 1590(r039) 1592 - 1594: 65 Load 68(inF0) - 1595: 65 Load 69(inF1) - 1596: 65 Load 70(inF2) - 1597: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1594 1595 1596 - Store 1593(r049) 1597 - 1599: 65 Load 68(inF0) - 1600: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1599 - Store 1598(r041) 1600 - 1602: 65 Load 68(inF0) - 1603: 65 Load 69(inF1) - 1604: 65 ExtInst 1(GLSL.std.450) 48(Step) 1602 1603 - Store 1601(r042) 1604 - 1606: 65 Load 68(inF0) - 1607: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1606 - Store 1605(r043) 1607 - 1609: 65 Load 68(inF0) - 1610: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1609 - Store 1608(r044) 1610 + 1589: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1588 + Store 69(inF1) 1589 + 1590: 65 Load 68(inF0) + 1591: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1590 + Store 70(inF2) 1591 + 1593: 65 Load 68(inF0) + 1594: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 + Store 1592(r039) 1594 + 1596: 65 Load 68(inF0) + 1597: 65 Load 69(inF1) + 1598: 65 Load 70(inF2) + 1599: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 + Store 1595(r049) 1599 + 1601: 65 Load 68(inF0) + 1602: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 + Store 1600(r041) 1602 + 1604: 65 Load 68(inF0) + 1605: 65 Load 69(inF1) + 1606: 65 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 + Store 1603(r042) 1606 + 1608: 65 Load 68(inF0) + 1609: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1608 + Store 1607(r043) 1609 1611: 65 Load 68(inF0) - 1612: 65 Transpose 1611 - 1614: 65 Load 68(inF0) - 1615: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1614 - Store 1613(r046) 1615 - ReturnValue 1617 + 1612: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 + Store 1610(r044) 1612 + 1613: 65 Load 68(inF0) + 1614: 65 Transpose 1613 + 1616: 65 Load 68(inF0) + 1617: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 + Store 1615(r046) 1617 + ReturnValue 1619 FunctionEnd 80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73 74(inF0): 7(ptr) FunctionParameter @@ -8109,51 +8119,51 @@ gl_FragCoord origin is upper left 78(inFM0): 49(ptr) FunctionParameter 79(inFM1): 49(ptr) FunctionParameter 81: Label - 1620(r0): 7(ptr) Variable Function - 1624(r1): 25(ptr) Variable Function - 1628(r2): 25(ptr) Variable Function - 1632(r3): 7(ptr) Variable Function - 1636(r4): 25(ptr) Variable Function - 1640(r5): 25(ptr) Variable Function - 1644(r6): 49(ptr) Variable Function - 1648(r7): 49(ptr) Variable Function - 1652(r8): 49(ptr) Variable Function - 1621: 6(float) Load 74(inF0) - 1622: 6(float) Load 75(inF1) - 1623: 6(float) FMul 1621 1622 - Store 1620(r0) 1623 - 1625: 24(fvec2) Load 76(inFV0) - 1626: 6(float) Load 74(inF0) - 1627: 24(fvec2) VectorTimesScalar 1625 1626 - Store 1624(r1) 1627 - 1629: 6(float) Load 74(inF0) - 1630: 24(fvec2) Load 76(inFV0) - 1631: 24(fvec2) VectorTimesScalar 1630 1629 - Store 1628(r2) 1631 - 1633: 24(fvec2) Load 76(inFV0) - 1634: 24(fvec2) Load 77(inFV1) - 1635: 6(float) Dot 1633 1634 - Store 1632(r3) 1635 - 1637: 48 Load 78(inFM0) - 1638: 24(fvec2) Load 76(inFV0) - 1639: 24(fvec2) MatrixTimesVector 1637 1638 - Store 1636(r4) 1639 - 1641: 24(fvec2) Load 76(inFV0) - 1642: 48 Load 78(inFM0) - 1643: 24(fvec2) VectorTimesMatrix 1641 1642 - Store 1640(r5) 1643 - 1645: 48 Load 78(inFM0) - 1646: 6(float) Load 74(inF0) - 1647: 48 MatrixTimesScalar 1645 1646 - Store 1644(r6) 1647 - 1649: 6(float) Load 74(inF0) - 1650: 48 Load 78(inFM0) - 1651: 48 MatrixTimesScalar 1650 1649 - Store 1648(r7) 1651 - 1653: 48 Load 78(inFM0) - 1654: 48 Load 79(inFM1) - 1655: 48 MatrixTimesMatrix 1653 1654 - Store 1652(r8) 1655 + 1622(r0): 7(ptr) Variable Function + 1626(r1): 25(ptr) Variable Function + 1630(r2): 25(ptr) Variable Function + 1634(r3): 7(ptr) Variable Function + 1638(r4): 25(ptr) Variable Function + 1642(r5): 25(ptr) Variable Function + 1646(r6): 49(ptr) Variable Function + 1650(r7): 49(ptr) Variable Function + 1654(r8): 49(ptr) Variable Function + 1623: 6(float) Load 74(inF0) + 1624: 6(float) Load 75(inF1) + 1625: 6(float) FMul 1623 1624 + Store 1622(r0) 1625 + 1627: 24(fvec2) Load 76(inFV0) + 1628: 6(float) Load 74(inF0) + 1629: 24(fvec2) VectorTimesScalar 1627 1628 + Store 1626(r1) 1629 + 1631: 6(float) Load 74(inF0) + 1632: 24(fvec2) Load 76(inFV0) + 1633: 24(fvec2) VectorTimesScalar 1632 1631 + Store 1630(r2) 1633 + 1635: 24(fvec2) Load 76(inFV0) + 1636: 24(fvec2) Load 77(inFV1) + 1637: 6(float) Dot 1635 1636 + Store 1634(r3) 1637 + 1639: 48 Load 78(inFM0) + 1640: 24(fvec2) Load 76(inFV0) + 1641: 24(fvec2) MatrixTimesVector 1639 1640 + Store 1638(r4) 1641 + 1643: 24(fvec2) Load 76(inFV0) + 1644: 48 Load 78(inFM0) + 1645: 24(fvec2) VectorTimesMatrix 1643 1644 + Store 1642(r5) 1645 + 1647: 48 Load 78(inFM0) + 1648: 6(float) Load 74(inF0) + 1649: 48 MatrixTimesScalar 1647 1648 + Store 1646(r6) 1649 + 1651: 6(float) Load 74(inF0) + 1652: 48 Load 78(inFM0) + 1653: 48 MatrixTimesScalar 1652 1651 + Store 1650(r7) 1653 + 1655: 48 Load 78(inFM0) + 1656: 48 Load 79(inFM1) + 1657: 48 MatrixTimesMatrix 1655 1656 + Store 1654(r8) 1657 Return FunctionEnd 89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82 @@ -8164,51 +8174,51 @@ gl_FragCoord origin is upper left 87(inFM0): 57(ptr) FunctionParameter 88(inFM1): 57(ptr) FunctionParameter 90: Label - 1656(r0): 7(ptr) Variable Function - 1660(r1): 37(ptr) Variable Function - 1664(r2): 37(ptr) Variable Function - 1668(r3): 7(ptr) Variable Function - 1672(r4): 37(ptr) Variable Function - 1676(r5): 37(ptr) Variable Function - 1680(r6): 57(ptr) Variable Function - 1684(r7): 57(ptr) Variable Function - 1688(r8): 57(ptr) Variable Function - 1657: 6(float) Load 83(inF0) - 1658: 6(float) Load 84(inF1) - 1659: 6(float) FMul 1657 1658 - Store 1656(r0) 1659 - 1661: 36(fvec3) Load 85(inFV0) - 1662: 6(float) Load 83(inF0) - 1663: 36(fvec3) VectorTimesScalar 1661 1662 - Store 1660(r1) 1663 - 1665: 6(float) Load 83(inF0) - 1666: 36(fvec3) Load 85(inFV0) - 1667: 36(fvec3) VectorTimesScalar 1666 1665 - Store 1664(r2) 1667 - 1669: 36(fvec3) Load 85(inFV0) - 1670: 36(fvec3) Load 86(inFV1) - 1671: 6(float) Dot 1669 1670 - Store 1668(r3) 1671 - 1673: 56 Load 87(inFM0) - 1674: 36(fvec3) Load 85(inFV0) - 1675: 36(fvec3) MatrixTimesVector 1673 1674 - Store 1672(r4) 1675 - 1677: 36(fvec3) Load 85(inFV0) - 1678: 56 Load 87(inFM0) - 1679: 36(fvec3) VectorTimesMatrix 1677 1678 - Store 1676(r5) 1679 - 1681: 56 Load 87(inFM0) - 1682: 6(float) Load 83(inF0) - 1683: 56 MatrixTimesScalar 1681 1682 - Store 1680(r6) 1683 - 1685: 6(float) Load 83(inF0) - 1686: 56 Load 87(inFM0) - 1687: 56 MatrixTimesScalar 1686 1685 - Store 1684(r7) 1687 - 1689: 56 Load 87(inFM0) - 1690: 56 Load 88(inFM1) - 1691: 56 MatrixTimesMatrix 1689 1690 - Store 1688(r8) 1691 + 1658(r0): 7(ptr) Variable Function + 1662(r1): 37(ptr) Variable Function + 1666(r2): 37(ptr) Variable Function + 1670(r3): 7(ptr) Variable Function + 1674(r4): 37(ptr) Variable Function + 1678(r5): 37(ptr) Variable Function + 1682(r6): 57(ptr) Variable Function + 1686(r7): 57(ptr) Variable Function + 1690(r8): 57(ptr) Variable Function + 1659: 6(float) Load 83(inF0) + 1660: 6(float) Load 84(inF1) + 1661: 6(float) FMul 1659 1660 + Store 1658(r0) 1661 + 1663: 36(fvec3) Load 85(inFV0) + 1664: 6(float) Load 83(inF0) + 1665: 36(fvec3) VectorTimesScalar 1663 1664 + Store 1662(r1) 1665 + 1667: 6(float) Load 83(inF0) + 1668: 36(fvec3) Load 85(inFV0) + 1669: 36(fvec3) VectorTimesScalar 1668 1667 + Store 1666(r2) 1669 + 1671: 36(fvec3) Load 85(inFV0) + 1672: 36(fvec3) Load 86(inFV1) + 1673: 6(float) Dot 1671 1672 + Store 1670(r3) 1673 + 1675: 56 Load 87(inFM0) + 1676: 36(fvec3) Load 85(inFV0) + 1677: 36(fvec3) MatrixTimesVector 1675 1676 + Store 1674(r4) 1677 + 1679: 36(fvec3) Load 85(inFV0) + 1680: 56 Load 87(inFM0) + 1681: 36(fvec3) VectorTimesMatrix 1679 1680 + Store 1678(r5) 1681 + 1683: 56 Load 87(inFM0) + 1684: 6(float) Load 83(inF0) + 1685: 56 MatrixTimesScalar 1683 1684 + Store 1682(r6) 1685 + 1687: 6(float) Load 83(inF0) + 1688: 56 Load 87(inFM0) + 1689: 56 MatrixTimesScalar 1688 1687 + Store 1686(r7) 1689 + 1691: 56 Load 87(inFM0) + 1692: 56 Load 88(inFM1) + 1693: 56 MatrixTimesMatrix 1691 1692 + Store 1690(r8) 1693 Return FunctionEnd 99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92 @@ -8219,51 +8229,51 @@ gl_FragCoord origin is upper left 97(inFM0): 66(ptr) FunctionParameter 98(inFM1): 66(ptr) FunctionParameter 100: Label - 1692(r0): 7(ptr) Variable Function - 1696(r1): 91(ptr) Variable Function - 1700(r2): 91(ptr) Variable Function - 1704(r3): 7(ptr) Variable Function - 1708(r4): 91(ptr) Variable Function - 1712(r5): 91(ptr) Variable Function - 1716(r6): 66(ptr) Variable Function - 1720(r7): 66(ptr) Variable Function - 1724(r8): 66(ptr) Variable Function - 1693: 6(float) Load 93(inF0) - 1694: 6(float) Load 94(inF1) - 1695: 6(float) FMul 1693 1694 - Store 1692(r0) 1695 - 1697: 64(fvec4) Load 95(inFV0) - 1698: 6(float) Load 93(inF0) - 1699: 64(fvec4) VectorTimesScalar 1697 1698 - Store 1696(r1) 1699 - 1701: 6(float) Load 93(inF0) - 1702: 64(fvec4) Load 95(inFV0) - 1703: 64(fvec4) VectorTimesScalar 1702 1701 - Store 1700(r2) 1703 - 1705: 64(fvec4) Load 95(inFV0) - 1706: 64(fvec4) Load 96(inFV1) - 1707: 6(float) Dot 1705 1706 - Store 1704(r3) 1707 - 1709: 65 Load 97(inFM0) - 1710: 64(fvec4) Load 95(inFV0) - 1711: 64(fvec4) MatrixTimesVector 1709 1710 - Store 1708(r4) 1711 - 1713: 64(fvec4) Load 95(inFV0) - 1714: 65 Load 97(inFM0) - 1715: 64(fvec4) VectorTimesMatrix 1713 1714 - Store 1712(r5) 1715 - 1717: 65 Load 97(inFM0) - 1718: 6(float) Load 93(inF0) - 1719: 65 MatrixTimesScalar 1717 1718 - Store 1716(r6) 1719 - 1721: 6(float) Load 93(inF0) - 1722: 65 Load 97(inFM0) - 1723: 65 MatrixTimesScalar 1722 1721 - Store 1720(r7) 1723 - 1725: 65 Load 97(inFM0) - 1726: 65 Load 98(inFM1) - 1727: 65 MatrixTimesMatrix 1725 1726 - Store 1724(r8) 1727 + 1694(r0): 7(ptr) Variable Function + 1698(r1): 91(ptr) Variable Function + 1702(r2): 91(ptr) Variable Function + 1706(r3): 7(ptr) Variable Function + 1710(r4): 91(ptr) Variable Function + 1714(r5): 91(ptr) Variable Function + 1718(r6): 66(ptr) Variable Function + 1722(r7): 66(ptr) Variable Function + 1726(r8): 66(ptr) Variable Function + 1695: 6(float) Load 93(inF0) + 1696: 6(float) Load 94(inF1) + 1697: 6(float) FMul 1695 1696 + Store 1694(r0) 1697 + 1699: 64(fvec4) Load 95(inFV0) + 1700: 6(float) Load 93(inF0) + 1701: 64(fvec4) VectorTimesScalar 1699 1700 + Store 1698(r1) 1701 + 1703: 6(float) Load 93(inF0) + 1704: 64(fvec4) Load 95(inFV0) + 1705: 64(fvec4) VectorTimesScalar 1704 1703 + Store 1702(r2) 1705 + 1707: 64(fvec4) Load 95(inFV0) + 1708: 64(fvec4) Load 96(inFV1) + 1709: 6(float) Dot 1707 1708 + Store 1706(r3) 1709 + 1711: 65 Load 97(inFM0) + 1712: 64(fvec4) Load 95(inFV0) + 1713: 64(fvec4) MatrixTimesVector 1711 1712 + Store 1710(r4) 1713 + 1715: 64(fvec4) Load 95(inFV0) + 1716: 65 Load 97(inFM0) + 1717: 64(fvec4) VectorTimesMatrix 1715 1716 + Store 1714(r5) 1717 + 1719: 65 Load 97(inFM0) + 1720: 6(float) Load 93(inF0) + 1721: 65 MatrixTimesScalar 1719 1720 + Store 1718(r6) 1721 + 1723: 6(float) Load 93(inF0) + 1724: 65 Load 97(inFM0) + 1725: 65 MatrixTimesScalar 1724 1723 + Store 1722(r7) 1725 + 1727: 65 Load 97(inFM0) + 1728: 65 Load 98(inFM1) + 1729: 65 MatrixTimesMatrix 1727 1728 + Store 1726(r8) 1729 Return FunctionEnd 119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109 @@ -8277,90 +8287,90 @@ gl_FragCoord origin is upper left 117(inFM3x4): 106(ptr) FunctionParameter 118(inFM2x4): 108(ptr) FunctionParameter 120: Label - 1728(r00): 7(ptr) Variable Function - 1732(r01): 25(ptr) Variable Function - 1736(r02): 37(ptr) Variable Function - 1740(r03): 25(ptr) Variable Function - 1744(r04): 37(ptr) Variable Function - 1748(r05): 7(ptr) Variable Function - 1752(r06): 7(ptr) Variable Function - 1756(r07): 37(ptr) Variable Function - 1760(r08): 25(ptr) Variable Function - 1764(r09): 25(ptr) Variable Function - 1768(r10): 37(ptr) Variable Function - 1772(r11): 102(ptr) Variable Function - 1776(r12): 104(ptr) Variable Function - 1780(r13): 49(ptr) Variable Function - 1784(r14): 102(ptr) Variable Function - 1788(r15): 108(ptr) Variable Function - 1792(r16): 106(ptr) Variable Function - 1729: 6(float) Load 110(inF0) - 1730: 6(float) Load 111(inF1) - 1731: 6(float) FMul 1729 1730 - Store 1728(r00) 1731 - 1733: 24(fvec2) Load 112(inFV2) - 1734: 6(float) Load 110(inF0) - 1735: 24(fvec2) VectorTimesScalar 1733 1734 - Store 1732(r01) 1735 - 1737: 36(fvec3) Load 113(inFV3) - 1738: 6(float) Load 110(inF0) - 1739: 36(fvec3) VectorTimesScalar 1737 1738 - Store 1736(r02) 1739 - 1741: 6(float) Load 110(inF0) - 1742: 24(fvec2) Load 112(inFV2) - 1743: 24(fvec2) VectorTimesScalar 1742 1741 - Store 1740(r03) 1743 - 1745: 6(float) Load 110(inF0) - 1746: 36(fvec3) Load 113(inFV3) - 1747: 36(fvec3) VectorTimesScalar 1746 1745 - Store 1744(r04) 1747 - 1749: 24(fvec2) Load 112(inFV2) - 1750: 24(fvec2) Load 112(inFV2) - 1751: 6(float) Dot 1749 1750 - Store 1748(r05) 1751 - 1753: 36(fvec3) Load 113(inFV3) - 1754: 36(fvec3) Load 113(inFV3) - 1755: 6(float) Dot 1753 1754 - Store 1752(r06) 1755 - 1757: 24(fvec2) Load 112(inFV2) - 1758: 101 Load 114(inFM2x3) - 1759: 36(fvec3) VectorTimesMatrix 1757 1758 - Store 1756(r07) 1759 - 1761: 36(fvec3) Load 113(inFV3) - 1762: 103 Load 115(inFM3x2) - 1763: 24(fvec2) VectorTimesMatrix 1761 1762 - Store 1760(r08) 1763 - 1765: 101 Load 114(inFM2x3) - 1766: 36(fvec3) Load 113(inFV3) - 1767: 24(fvec2) MatrixTimesVector 1765 1766 - Store 1764(r09) 1767 - 1769: 103 Load 115(inFM3x2) - 1770: 24(fvec2) Load 112(inFV2) - 1771: 36(fvec3) MatrixTimesVector 1769 1770 - Store 1768(r10) 1771 - 1773: 101 Load 114(inFM2x3) - 1774: 6(float) Load 110(inF0) - 1775: 101 MatrixTimesScalar 1773 1774 - Store 1772(r11) 1775 - 1777: 103 Load 115(inFM3x2) - 1778: 6(float) Load 110(inF0) - 1779: 103 MatrixTimesScalar 1777 1778 - Store 1776(r12) 1779 - 1781: 101 Load 114(inFM2x3) - 1782: 103 Load 115(inFM3x2) - 1783: 48 MatrixTimesMatrix 1781 1782 - Store 1780(r13) 1783 - 1785: 101 Load 114(inFM2x3) - 1786: 56 Load 116(inFM3x3) - 1787: 101 MatrixTimesMatrix 1785 1786 - Store 1784(r14) 1787 - 1789: 101 Load 114(inFM2x3) - 1790: 105 Load 117(inFM3x4) - 1791: 107 MatrixTimesMatrix 1789 1790 - Store 1788(r15) 1791 - 1793: 103 Load 115(inFM3x2) - 1794: 107 Load 118(inFM2x4) - 1795: 105 MatrixTimesMatrix 1793 1794 - Store 1792(r16) 1795 + 1730(r00): 7(ptr) Variable Function + 1734(r01): 25(ptr) Variable Function + 1738(r02): 37(ptr) Variable Function + 1742(r03): 25(ptr) Variable Function + 1746(r04): 37(ptr) Variable Function + 1750(r05): 7(ptr) Variable Function + 1754(r06): 7(ptr) Variable Function + 1758(r07): 37(ptr) Variable Function + 1762(r08): 25(ptr) Variable Function + 1766(r09): 25(ptr) Variable Function + 1770(r10): 37(ptr) Variable Function + 1774(r11): 102(ptr) Variable Function + 1778(r12): 104(ptr) Variable Function + 1782(r13): 49(ptr) Variable Function + 1786(r14): 102(ptr) Variable Function + 1790(r15): 108(ptr) Variable Function + 1794(r16): 106(ptr) Variable Function + 1731: 6(float) Load 110(inF0) + 1732: 6(float) Load 111(inF1) + 1733: 6(float) FMul 1731 1732 + Store 1730(r00) 1733 + 1735: 24(fvec2) Load 112(inFV2) + 1736: 6(float) Load 110(inF0) + 1737: 24(fvec2) VectorTimesScalar 1735 1736 + Store 1734(r01) 1737 + 1739: 36(fvec3) Load 113(inFV3) + 1740: 6(float) Load 110(inF0) + 1741: 36(fvec3) VectorTimesScalar 1739 1740 + Store 1738(r02) 1741 + 1743: 6(float) Load 110(inF0) + 1744: 24(fvec2) Load 112(inFV2) + 1745: 24(fvec2) VectorTimesScalar 1744 1743 + Store 1742(r03) 1745 + 1747: 6(float) Load 110(inF0) + 1748: 36(fvec3) Load 113(inFV3) + 1749: 36(fvec3) VectorTimesScalar 1748 1747 + Store 1746(r04) 1749 + 1751: 24(fvec2) Load 112(inFV2) + 1752: 24(fvec2) Load 112(inFV2) + 1753: 6(float) Dot 1751 1752 + Store 1750(r05) 1753 + 1755: 36(fvec3) Load 113(inFV3) + 1756: 36(fvec3) Load 113(inFV3) + 1757: 6(float) Dot 1755 1756 + Store 1754(r06) 1757 + 1759: 24(fvec2) Load 112(inFV2) + 1760: 101 Load 114(inFM2x3) + 1761: 36(fvec3) VectorTimesMatrix 1759 1760 + Store 1758(r07) 1761 + 1763: 36(fvec3) Load 113(inFV3) + 1764: 103 Load 115(inFM3x2) + 1765: 24(fvec2) VectorTimesMatrix 1763 1764 + Store 1762(r08) 1765 + 1767: 101 Load 114(inFM2x3) + 1768: 36(fvec3) Load 113(inFV3) + 1769: 24(fvec2) MatrixTimesVector 1767 1768 + Store 1766(r09) 1769 + 1771: 103 Load 115(inFM3x2) + 1772: 24(fvec2) Load 112(inFV2) + 1773: 36(fvec3) MatrixTimesVector 1771 1772 + Store 1770(r10) 1773 + 1775: 101 Load 114(inFM2x3) + 1776: 6(float) Load 110(inF0) + 1777: 101 MatrixTimesScalar 1775 1776 + Store 1774(r11) 1777 + 1779: 103 Load 115(inFM3x2) + 1780: 6(float) Load 110(inF0) + 1781: 103 MatrixTimesScalar 1779 1780 + Store 1778(r12) 1781 + 1783: 101 Load 114(inFM2x3) + 1784: 103 Load 115(inFM3x2) + 1785: 48 MatrixTimesMatrix 1783 1784 + Store 1782(r13) 1785 + 1787: 101 Load 114(inFM2x3) + 1788: 56 Load 116(inFM3x3) + 1789: 101 MatrixTimesMatrix 1787 1788 + Store 1786(r14) 1789 + 1791: 101 Load 114(inFM2x3) + 1792: 105 Load 117(inFM3x4) + 1793: 107 MatrixTimesMatrix 1791 1792 + Store 1790(r15) 1793 + 1795: 103 Load 115(inFM3x2) + 1796: 107 Load 118(inFM2x4) + 1797: 105 MatrixTimesMatrix 1795 1796 + Store 1794(r16) 1797 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index db256050..25788000 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -52,12 +52,15 @@ local_size = (1, 1, 1) 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:199 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return 0:? Linker Objects @@ -117,22 +120,25 @@ local_size = (1, 1, 1) 0:158 'inF2' (in 4-component vector of float) 0:158 'inI0' (in 4-component vector of int) 0:? Sequence -0:199 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:199 Sequence +0:199 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:199 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 63 +// Id's are bound by 65 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" + EntryPoint GLCompute 4 "ComputeShaderFunction" 61 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" @@ -155,6 +161,7 @@ local_size = (1, 1, 1) Name 40 "inF1" Name 41 "inF2" Name 42 "inI0" + Name 61 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -179,11 +186,14 @@ local_size = (1, 1, 1) 55: 6(float) Constant 1077936128 56: 34(fvec3) ConstantComposite 50 51 55 59: TypeVector 6(float) 4 - 60: 6(float) Constant 1082130432 - 61: 59(fvec4) ConstantComposite 50 51 55 60 + 60: TypePointer Output 59(fvec4) +61(@entryPointOutput): 60(ptr) Variable Output + 62: 6(float) Constant 1082130432 + 63: 59(fvec4) ConstantComposite 50 51 55 62 4(ComputeShaderFunction): 2 Function None 3 5: Label - ReturnValue 61 + Store 61(@entryPointOutput) 63 + Return FunctionEnd 15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 90fc2127..1227daed 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -267,12 +267,15 @@ ERROR: node is still EOpNull! 0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 -0:92 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return 0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) @@ -615,12 +618,15 @@ ERROR: node is still EOpNull! 0:89 'inF0' (in 4-component vector of float) 0:90 Constant: 0:90 0.000000 -0:92 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:92 Sequence +0:92 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:92 Branch: Return 0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index de2da898..f00e25ae 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -51,12 +51,15 @@ Shader version: 450 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:217 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return 0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) @@ -180,12 +183,15 @@ Shader version: 450 0:176 'inF2' (in 4-component vector of float) 0:176 'inI0' (in 4-component vector of int) 0:? Sequence -0:217 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 +0:217 Sequence +0:217 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:217 Branch: Return 0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) @@ -255,12 +261,12 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 119 +// Id's are bound by 121 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" + EntryPoint Vertex 4 "VertexShaderFunction" 85 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" @@ -294,18 +300,19 @@ Shader version: 450 Name 65 "inF0" Name 66 "inF1" Name 67 "inF2" - Name 101 "gs_ua" - Name 102 "gs_ub" - Name 103 "gs_uc" - Name 106 "gs_ua2" - Name 107 "gs_ub2" - Name 108 "gs_uc2" - Name 111 "gs_ua3" - Name 112 "gs_ub3" - Name 113 "gs_uc3" - Name 116 "gs_ua4" - Name 117 "gs_ub4" - Name 118 "gs_uc4" + Name 85 "@entryPointOutput" + Name 103 "gs_ua" + Name 104 "gs_ub" + Name 105 "gs_uc" + Name 108 "gs_ua2" + Name 109 "gs_ub2" + Name 110 "gs_uc2" + Name 113 "gs_ua3" + Name 114 "gs_ub3" + Name 115 "gs_uc3" + Name 118 "gs_ua4" + Name 119 "gs_ub4" + Name 120 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -339,37 +346,40 @@ Shader version: 450 77: 23(fvec2) ConstantComposite 75 76 80: 6(float) Constant 1077936128 81: 34(fvec3) ConstantComposite 75 76 80 - 84: 6(float) Constant 1082130432 - 85: 61(fvec4) ConstantComposite 75 76 80 84 - 87: 23(fvec2) ConstantComposite 76 76 - 88: 45 ConstantComposite 87 87 - 91: 34(fvec3) ConstantComposite 80 80 80 - 92: 53 ConstantComposite 91 91 91 - 95: 61(fvec4) ConstantComposite 84 84 84 84 - 96: 62 ConstantComposite 95 95 95 95 - 99: TypeInt 32 0 - 100: TypePointer Private 99(int) - 101(gs_ua): 100(ptr) Variable Private - 102(gs_ub): 100(ptr) Variable Private - 103(gs_uc): 100(ptr) Variable Private - 104: TypeVector 99(int) 2 - 105: TypePointer Private 104(ivec2) - 106(gs_ua2): 105(ptr) Variable Private - 107(gs_ub2): 105(ptr) Variable Private - 108(gs_uc2): 105(ptr) Variable Private - 109: TypeVector 99(int) 3 - 110: TypePointer Private 109(ivec3) - 111(gs_ua3): 110(ptr) Variable Private - 112(gs_ub3): 110(ptr) Variable Private - 113(gs_uc3): 110(ptr) Variable Private - 114: TypeVector 99(int) 4 - 115: TypePointer Private 114(ivec4) - 116(gs_ua4): 115(ptr) Variable Private - 117(gs_ub4): 115(ptr) Variable Private - 118(gs_uc4): 115(ptr) Variable Private + 84: TypePointer Output 61(fvec4) +85(@entryPointOutput): 84(ptr) Variable Output + 86: 6(float) Constant 1082130432 + 87: 61(fvec4) ConstantComposite 75 76 80 86 + 89: 23(fvec2) ConstantComposite 76 76 + 90: 45 ConstantComposite 89 89 + 93: 34(fvec3) ConstantComposite 80 80 80 + 94: 53 ConstantComposite 93 93 93 + 97: 61(fvec4) ConstantComposite 86 86 86 86 + 98: 62 ConstantComposite 97 97 97 97 + 101: TypeInt 32 0 + 102: TypePointer Private 101(int) + 103(gs_ua): 102(ptr) Variable Private + 104(gs_ub): 102(ptr) Variable Private + 105(gs_uc): 102(ptr) Variable Private + 106: TypeVector 101(int) 2 + 107: TypePointer Private 106(ivec2) + 108(gs_ua2): 107(ptr) Variable Private + 109(gs_ub2): 107(ptr) Variable Private + 110(gs_uc2): 107(ptr) Variable Private + 111: TypeVector 101(int) 3 + 112: TypePointer Private 111(ivec3) + 113(gs_ua3): 112(ptr) Variable Private + 114(gs_ub3): 112(ptr) Variable Private + 115(gs_uc3): 112(ptr) Variable Private + 116: TypeVector 101(int) 4 + 117: TypePointer Private 116(ivec4) + 118(gs_ua4): 117(ptr) Variable Private + 119(gs_ub4): 117(ptr) Variable Private + 120(gs_uc4): 117(ptr) Variable Private 4(VertexShaderFunction): 2 Function None 3 5: Label - ReturnValue 85 + Store 85(@entryPointOutput) 87 + Return FunctionEnd 15(VertexShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -408,19 +418,19 @@ Shader version: 450 49(inF1): 46(ptr) FunctionParameter 50(inF2): 46(ptr) FunctionParameter 52: Label - ReturnValue 88 + ReturnValue 90 FunctionEnd 59(VertexShaderFunction3x3(mf33;mf33;mf33;): 53 Function None 55 56(inF0): 54(ptr) FunctionParameter 57(inF1): 54(ptr) FunctionParameter 58(inF2): 54(ptr) FunctionParameter 60: Label - ReturnValue 92 + ReturnValue 94 FunctionEnd 68(VertexShaderFunction4x4(mf44;mf44;mf44;): 62 Function None 64 65(inF0): 63(ptr) FunctionParameter 66(inF1): 63(ptr) FunctionParameter 67(inF2): 63(ptr) FunctionParameter 69: Label - ReturnValue 96 + ReturnValue 98 FunctionEnd diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 6dfee1b4..bff38d8c 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -88,8 +88,11 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Branch: Return with expression -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Sequence +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -200,8 +203,11 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Branch: Return with expression -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Sequence +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) @@ -221,14 +227,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 103 +// Id's are bound by 105 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 92 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -244,12 +250,13 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 95 "g_sSamp" - Name 97 "c1" - Name 99 "c4" - Name 100 "o1" - Name 101 "o3" - Name 102 "o4" + Name 92 "@entryPointOutput" + Name 97 "g_sSamp" + Name 99 "c1" + Name 101 "c4" + Name 102 "o1" + Name 103 "o3" + Name 104 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -257,8 +264,8 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 95(g_sSamp) DescriptorSet 0 - Decorate 95(g_sSamp) Binding 0 + Decorate 97(g_sSamp) DescriptorSet 0 + Decorate 97(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -301,16 +308,18 @@ gl_FragCoord origin is upper left 86: TypePointer Function 17(fvec4) 88: 11(int) Constant 1 89: TypePointer Function 6(float) - 93: TypeSampler - 94: TypePointer UniformConstant 93 - 95(g_sSamp): 94(ptr) Variable UniformConstant - 96: TypePointer UniformConstant 11(int) - 97(c1): 96(ptr) Variable UniformConstant - 98: TypePointer UniformConstant 24(ivec4) - 99(c4): 98(ptr) Variable UniformConstant - 100(o1): 96(ptr) Variable UniformConstant - 101(o3): 52(ptr) Variable UniformConstant - 102(o4): 98(ptr) Variable UniformConstant + 91: TypePointer Output 80(PS_OUTPUT) +92(@entryPointOutput): 91(ptr) Variable Output + 95: TypeSampler + 96: TypePointer UniformConstant 95 + 97(g_sSamp): 96(ptr) Variable UniformConstant + 98: TypePointer UniformConstant 11(int) + 99(c1): 98(ptr) Variable UniformConstant + 100: TypePointer UniformConstant 24(ivec4) + 101(c4): 100(ptr) Variable UniformConstant + 102(o1): 98(ptr) Variable UniformConstant + 103(o3): 52(ptr) Variable UniformConstant + 104(o4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -360,6 +369,7 @@ gl_FragCoord origin is upper left Store 87 85 90: 89(ptr) AccessChain 82(psout) 88 Store 90 84 - 91:80(PS_OUTPUT) Load 82(psout) - ReturnValue 91 + 93:80(PS_OUTPUT) Load 82(psout) + Store 92(@entryPointOutput) 93 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 12636502..b18bec5c 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -106,8 +106,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -251,8 +254,11 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Branch: Return with expression -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Sequence +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -287,14 +293,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 143 +// Id's are bound by 145 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 87 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -309,28 +315,29 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 90 "g_sSamp" - Name 93 "g_tTex1df4" - Name 96 "g_tTex1di4" - Name 99 "g_tTex1du4" - Name 102 "g_tTex2df4" - Name 105 "g_tTex2di4" - Name 108 "g_tTex2du4" - Name 111 "g_tTex3df4" - Name 114 "g_tTex3di4" - Name 117 "g_tTex3du4" - Name 120 "g_tTexcdf4" - Name 123 "g_tTexcdi4" - Name 126 "g_tTexcdu4" - Name 129 "g_tTexcdf4a" - Name 132 "g_tTexcdi4a" - Name 135 "g_tTexcdu4a" - Name 136 "c1" - Name 138 "c2" - Name 139 "o1" - Name 140 "o2" - Name 141 "o3" - Name 142 "o4" + Name 87 "@entryPointOutput" + Name 92 "g_sSamp" + Name 95 "g_tTex1df4" + Name 98 "g_tTex1di4" + Name 101 "g_tTex1du4" + Name 104 "g_tTex2df4" + Name 107 "g_tTex2di4" + Name 110 "g_tTex2du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" + Name 122 "g_tTexcdf4" + Name 125 "g_tTexcdi4" + Name 128 "g_tTexcdu4" + Name 131 "g_tTexcdf4a" + Name 134 "g_tTexcdi4a" + Name 137 "g_tTexcdu4a" + Name 138 "c1" + Name 140 "c2" + Name 141 "o1" + Name 142 "o2" + Name 143 "o3" + Name 144 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -338,24 +345,24 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 90(g_sSamp) DescriptorSet 0 - Decorate 90(g_sSamp) Binding 0 - Decorate 93(g_tTex1df4) DescriptorSet 0 - Decorate 93(g_tTex1df4) Binding 0 - Decorate 96(g_tTex1di4) DescriptorSet 0 - Decorate 99(g_tTex1du4) DescriptorSet 0 - Decorate 102(g_tTex2df4) DescriptorSet 0 - Decorate 105(g_tTex2di4) DescriptorSet 0 - Decorate 108(g_tTex2du4) DescriptorSet 0 - Decorate 111(g_tTex3df4) DescriptorSet 0 - Decorate 114(g_tTex3di4) DescriptorSet 0 - Decorate 117(g_tTex3du4) DescriptorSet 0 - Decorate 120(g_tTexcdf4) DescriptorSet 0 - Decorate 123(g_tTexcdi4) DescriptorSet 0 - Decorate 126(g_tTexcdu4) DescriptorSet 0 - Decorate 129(g_tTexcdf4a) DescriptorSet 0 - Decorate 132(g_tTexcdi4a) DescriptorSet 0 - Decorate 135(g_tTexcdu4a) DescriptorSet 0 + Decorate 92(g_sSamp) DescriptorSet 0 + Decorate 92(g_sSamp) Binding 0 + Decorate 95(g_tTex1df4) DescriptorSet 0 + Decorate 95(g_tTex1df4) Binding 0 + Decorate 98(g_tTex1di4) DescriptorSet 0 + Decorate 101(g_tTex1du4) DescriptorSet 0 + Decorate 104(g_tTex2df4) DescriptorSet 0 + Decorate 107(g_tTex2di4) DescriptorSet 0 + Decorate 110(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 + Decorate 122(g_tTexcdf4) DescriptorSet 0 + Decorate 125(g_tTexcdi4) DescriptorSet 0 + Decorate 128(g_tTexcdu4) DescriptorSet 0 + Decorate 131(g_tTexcdf4a) DescriptorSet 0 + Decorate 134(g_tTexcdi4a) DescriptorSet 0 + Decorate 137(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -399,61 +406,63 @@ gl_FragCoord origin is upper left 81: TypePointer Function 23(fvec4) 83: 11(int) Constant 1 84: TypePointer Function 6(float) - 88: TypeSampler - 89: TypePointer UniformConstant 88 - 90(g_sSamp): 89(ptr) Variable UniformConstant - 91: TypeImage 6(float) 1D sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTex1df4): 92(ptr) Variable UniformConstant - 94: TypeImage 11(int) 1D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex1di4): 95(ptr) Variable UniformConstant - 97: TypeImage 18(int) 1D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex1du4): 98(ptr) Variable UniformConstant - 100: TypeImage 6(float) 2D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex2df4): 101(ptr) Variable UniformConstant - 103: TypeImage 11(int) 2D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex2di4): 104(ptr) Variable UniformConstant - 106: TypeImage 18(int) 2D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex2du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3df4): 110(ptr) Variable UniformConstant - 112: TypeImage 11(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3di4): 113(ptr) Variable UniformConstant - 115: TypeImage 18(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3du4): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdf4): 119(ptr) Variable UniformConstant - 121: TypeImage 11(int) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdi4): 122(ptr) Variable UniformConstant - 124: TypeImage 18(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdu4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) Cube array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTexcdf4a): 128(ptr) Variable UniformConstant - 130: TypeImage 11(int) Cube array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTexcdi4a): 131(ptr) Variable UniformConstant - 133: TypeImage 18(int) Cube array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTexcdu4a): 134(ptr) Variable UniformConstant - 136(c1): 20(ptr) Variable UniformConstant - 137: TypePointer UniformConstant 15(ivec2) - 138(c2): 137(ptr) Variable UniformConstant - 139(o1): 20(ptr) Variable UniformConstant - 140(o2): 137(ptr) Variable UniformConstant - 141(o3): 13(ptr) Variable UniformConstant - 142(o4): 49(ptr) Variable UniformConstant + 86: TypePointer Output 75(PS_OUTPUT) +87(@entryPointOutput): 86(ptr) Variable Output + 90: TypeSampler + 91: TypePointer UniformConstant 90 + 92(g_sSamp): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) 1D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex1df4): 94(ptr) Variable UniformConstant + 96: TypeImage 11(int) 1D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex1di4): 97(ptr) Variable UniformConstant + 99: TypeImage 18(int) 1D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex1du4): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 2D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex2df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 2D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex2di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 2D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex2du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdf4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdi4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdu4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdf4a): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTexcdi4a): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTexcdu4a): 136(ptr) Variable UniformConstant + 138(c1): 20(ptr) Variable UniformConstant + 139: TypePointer UniformConstant 15(ivec2) + 140(c2): 139(ptr) Variable UniformConstant + 141(o1): 20(ptr) Variable UniformConstant + 142(o2): 139(ptr) Variable UniformConstant + 143(o3): 13(ptr) Variable UniformConstant + 144(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -497,6 +506,7 @@ gl_FragCoord origin is upper left Store 82 80 85: 84(ptr) AccessChain 77(psout) 83 Store 85 79 - 86:75(PS_OUTPUT) Load 77(psout) - ReturnValue 86 + 88:75(PS_OUTPUT) Load 77(psout) + Store 87(@entryPointOutput) 88 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 35e6956b..1016ba49 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -317,8 +320,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -353,14 +359,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 165 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -379,24 +385,25 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 121 "g_sSamp" - Name 124 "g_tTexcdf4" - Name 127 "g_tTexcdi4" - Name 130 "g_tTexcdu4" - Name 133 "g_tTex1df4a" - Name 136 "g_tTex1di4a" - Name 139 "g_tTex1du4a" - Name 142 "g_tTex2df4a" - Name 145 "g_tTex2di4a" - Name 148 "g_tTex2du4a" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 158 "c1" - Name 159 "o1" - Name 160 "o2" - Name 161 "o3" - Name 162 "o4" + Name 118 "@entryPointOutput" + Name 123 "g_sSamp" + Name 126 "g_tTexcdf4" + Name 129 "g_tTexcdi4" + Name 132 "g_tTexcdu4" + Name 135 "g_tTex1df4a" + Name 138 "g_tTex1di4a" + Name 141 "g_tTex1du4a" + Name 144 "g_tTex2df4a" + Name 147 "g_tTex2di4a" + Name 150 "g_tTex2du4a" + Name 153 "g_tTexcdf4a" + Name 156 "g_tTexcdi4a" + Name 159 "g_tTexcdu4a" + Name 160 "c1" + Name 161 "o1" + Name 162 "o2" + Name 163 "o3" + Name 164 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -408,20 +415,20 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 127(g_tTexcdi4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 136(g_tTex1di4a) DescriptorSet 0 - Decorate 139(g_tTex1du4a) DescriptorSet 0 - Decorate 142(g_tTex2df4a) DescriptorSet 0 - Decorate 145(g_tTex2di4a) DescriptorSet 0 - Decorate 148(g_tTex2du4a) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + Decorate 123(g_sSamp) DescriptorSet 0 + Decorate 123(g_sSamp) Binding 0 + Decorate 126(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 132(g_tTexcdu4) DescriptorSet 0 + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1di4a) DescriptorSet 0 + Decorate 141(g_tTex1du4a) DescriptorSet 0 + Decorate 144(g_tTex2df4a) DescriptorSet 0 + Decorate 147(g_tTex2di4a) DescriptorSet 0 + Decorate 150(g_tTex2du4a) DescriptorSet 0 + Decorate 153(g_tTexcdf4a) DescriptorSet 0 + Decorate 156(g_tTexcdi4a) DescriptorSet 0 + Decorate 159(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -478,50 +485,52 @@ gl_FragCoord origin is upper left 112: TypePointer Function 23(fvec4) 114: 11(int) Constant 1 115: TypePointer Function 6(float) - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdf4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdi4): 126(ptr) Variable UniformConstant - 128: TypeImage 15(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdu4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 15(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 15(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 15(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158(c1): 17(ptr) Variable UniformConstant - 159(o1): 17(ptr) Variable UniformConstant - 160(o2): 13(ptr) Variable UniformConstant - 161(o3): 50(ptr) Variable UniformConstant - 162(o4): 80(ptr) Variable UniformConstant + 117: TypePointer Output 106(PS_OUTPUT) +118(@entryPointOutput): 117(ptr) Variable Output + 121: TypeSampler + 122: TypePointer UniformConstant 121 + 123(g_sSamp): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdf4): 125(ptr) Variable UniformConstant + 127: TypeImage 11(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 130: TypeImage 15(int) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdu4): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 11(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 15(int) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2df4a): 143(ptr) Variable UniformConstant + 145: TypeImage 11(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2di4a): 146(ptr) Variable UniformConstant + 148: TypeImage 15(int) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2du4a): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdf4a): 152(ptr) Variable UniformConstant + 154: TypeImage 11(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdi4a): 155(ptr) Variable UniformConstant + 157: TypeImage 15(int) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdu4a): 158(ptr) Variable UniformConstant + 160(c1): 17(ptr) Variable UniformConstant + 161(o1): 17(ptr) Variable UniformConstant + 162(o2): 13(ptr) Variable UniformConstant + 163(o3): 50(ptr) Variable UniformConstant + 164(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -583,6 +592,7 @@ gl_FragCoord origin is upper left Store 113 111 116: 115(ptr) AccessChain 108(psout) 114 Store 116 110 - 117:106(PS_OUTPUT) Load 108(psout) - ReturnValue 117 + 119:106(PS_OUTPUT) Load 108(psout) + Store 118(@entryPointOutput) 119 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index a5fccaf3..059b8f59 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -131,8 +131,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Branch: Return with expression -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Sequence +0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -301,8 +304,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Branch: Return with expression -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Sequence +0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -337,14 +343,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 162 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 115 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -361,24 +367,25 @@ Shader version: 450 Name 106 "VS_OUTPUT" MemberName 106(VS_OUTPUT) 0 "Pos" Name 108 "vsout" - Name 118 "g_sSamp" - Name 121 "g_tTexcdf4" - Name 124 "g_tTexcdi4" - Name 127 "g_tTexcdu4" - Name 130 "g_tTex1df4a" - Name 133 "g_tTex1di4a" - Name 136 "g_tTex1du4a" - Name 139 "g_tTex2df4a" - Name 142 "g_tTex2di4a" - Name 145 "g_tTex2du4a" - Name 148 "g_tTexcdf4a" - Name 151 "g_tTexcdi4a" - Name 154 "g_tTexcdu4a" - Name 155 "c1" - Name 156 "o1" - Name 157 "o2" - Name 158 "o3" - Name 159 "o4" + Name 115 "@entryPointOutput" + Name 120 "g_sSamp" + Name 123 "g_tTexcdf4" + Name 126 "g_tTexcdi4" + Name 129 "g_tTexcdu4" + Name 132 "g_tTex1df4a" + Name 135 "g_tTex1di4a" + Name 138 "g_tTex1du4a" + Name 141 "g_tTex2df4a" + Name 144 "g_tTex2di4a" + Name 147 "g_tTex2du4a" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" + Name 157 "c1" + Name 158 "o1" + Name 159 "o2" + Name 160 "o3" + Name 161 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -390,20 +397,20 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 118(g_sSamp) DescriptorSet 0 - Decorate 118(g_sSamp) Binding 0 - Decorate 121(g_tTexcdf4) DescriptorSet 0 - Decorate 124(g_tTexcdi4) DescriptorSet 0 - Decorate 127(g_tTexcdu4) DescriptorSet 0 - Decorate 130(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1di4a) DescriptorSet 0 - Decorate 136(g_tTex1du4a) DescriptorSet 0 - Decorate 139(g_tTex2df4a) DescriptorSet 0 - Decorate 142(g_tTex2di4a) DescriptorSet 0 - Decorate 145(g_tTex2du4a) DescriptorSet 0 - Decorate 148(g_tTexcdf4a) DescriptorSet 0 - Decorate 151(g_tTexcdi4a) DescriptorSet 0 - Decorate 154(g_tTexcdu4a) DescriptorSet 0 + Decorate 120(g_sSamp) DescriptorSet 0 + Decorate 120(g_sSamp) Binding 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 126(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 135(g_tTex1di4a) DescriptorSet 0 + Decorate 138(g_tTex1du4a) DescriptorSet 0 + Decorate 141(g_tTex2df4a) DescriptorSet 0 + Decorate 144(g_tTex2di4a) DescriptorSet 0 + Decorate 147(g_tTex2du4a) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -458,50 +465,52 @@ Shader version: 450 110: 6(float) Constant 0 111: 23(fvec4) ConstantComposite 110 110 110 110 112: TypePointer Function 23(fvec4) - 116: TypeSampler - 117: TypePointer UniformConstant 116 - 118(g_sSamp): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdf4): 120(ptr) Variable UniformConstant - 122: TypeImage 11(int) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdi4): 123(ptr) Variable UniformConstant - 125: TypeImage 15(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdu4): 126(ptr) Variable UniformConstant - 128: TypeImage 6(float) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1df4a): 129(ptr) Variable UniformConstant - 131: TypeImage 11(int) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1di4a): 132(ptr) Variable UniformConstant - 134: TypeImage 15(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1du4a): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2df4a): 138(ptr) Variable UniformConstant - 140: TypeImage 11(int) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2di4a): 141(ptr) Variable UniformConstant - 143: TypeImage 15(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2du4a): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdf4a): 147(ptr) Variable UniformConstant - 149: TypeImage 11(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdi4a): 150(ptr) Variable UniformConstant - 152: TypeImage 15(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdu4a): 153(ptr) Variable UniformConstant - 155(c1): 17(ptr) Variable UniformConstant - 156(o1): 17(ptr) Variable UniformConstant - 157(o2): 13(ptr) Variable UniformConstant - 158(o3): 50(ptr) Variable UniformConstant - 159(o4): 80(ptr) Variable UniformConstant + 114: TypePointer Output 106(VS_OUTPUT) +115(@entryPointOutput): 114(ptr) Variable Output + 118: TypeSampler + 119: TypePointer UniformConstant 118 + 120(g_sSamp): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 124: TypeImage 11(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdi4): 125(ptr) Variable UniformConstant + 127: TypeImage 15(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1df4a): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1di4a): 134(ptr) Variable UniformConstant + 136: TypeImage 15(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1du4a): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 15(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 15(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 157(c1): 17(ptr) Variable UniformConstant + 158(o1): 17(ptr) Variable UniformConstant + 159(o2): 13(ptr) Variable UniformConstant + 160(o3): 50(ptr) Variable UniformConstant + 161(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function @@ -561,6 +570,7 @@ Shader version: 450 105: 43(ivec4) ImageFetch 100 102 Lod 104 113: 112(ptr) AccessChain 108(vsout) 109 Store 113 111 - 114:106(VS_OUTPUT) Load 108(vsout) - ReturnValue 114 + 116:106(VS_OUTPUT) Load 108(vsout) + Store 115(@entryPointOutput) 116 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 220f3ddb..16e5187d 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -40,8 +40,11 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Branch: Return with expression -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Sequence +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) @@ -101,8 +104,11 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Branch: Return with expression -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Sequence +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) 0:? 'g_tTexbf4' (uniform samplerBuffer) @@ -119,13 +125,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 69 +// Id's are bound by 71 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 55 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -139,20 +145,21 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 56 "g_tTexbf4_test" - Name 59 "c2" - Name 62 "c3" - Name 64 "c4" - Name 65 "o1" - Name 66 "o2" - Name 67 "o3" - Name 68 "o4" + Name 55 "@entryPointOutput" + Name 58 "g_tTexbf4_test" + Name 61 "c2" + Name 64 "c3" + Name 66 "c4" + Name 67 "o1" + Name 68 "o2" + Name 69 "o3" + Name 70 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 56(g_tTexbf4_test) DescriptorSet 0 - Decorate 56(g_tTexbf4_test) Binding 0 + Decorate 58(g_tTexbf4_test) DescriptorSet 0 + Decorate 58(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -185,19 +192,21 @@ gl_FragCoord origin is upper left 49: 7(fvec4) ConstantComposite 48 48 48 48 51: 15(int) Constant 1 52: TypePointer Function 6(float) -56(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 57: TypeVector 15(int) 2 - 58: TypePointer UniformConstant 57(ivec2) - 59(c2): 58(ptr) Variable UniformConstant - 60: TypeVector 15(int) 3 - 61: TypePointer UniformConstant 60(ivec3) - 62(c3): 61(ptr) Variable UniformConstant - 63: TypePointer UniformConstant 21(ivec4) - 64(c4): 63(ptr) Variable UniformConstant - 65(o1): 16(ptr) Variable UniformConstant - 66(o2): 58(ptr) Variable UniformConstant - 67(o3): 61(ptr) Variable UniformConstant - 68(o4): 63(ptr) Variable UniformConstant + 54: TypePointer Output 44(PS_OUTPUT) +55(@entryPointOutput): 54(ptr) Variable Output +58(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 59: TypeVector 15(int) 2 + 60: TypePointer UniformConstant 59(ivec2) + 61(c2): 60(ptr) Variable UniformConstant + 62: TypeVector 15(int) 3 + 63: TypePointer UniformConstant 62(ivec3) + 64(c3): 63(ptr) Variable UniformConstant + 65: TypePointer UniformConstant 21(ivec4) + 66(c4): 65(ptr) Variable UniformConstant + 67(o1): 16(ptr) Variable UniformConstant + 68(o2): 60(ptr) Variable UniformConstant + 69(o3): 63(ptr) Variable UniformConstant + 70(o4): 65(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -223,6 +232,7 @@ gl_FragCoord origin is upper left Store 50 49 53: 52(ptr) AccessChain 46(psout) 51 Store 53 48 - 54:44(PS_OUTPUT) Load 46(psout) - ReturnValue 54 + 56:44(PS_OUTPUT) Load 46(psout) + Store 55(@entryPointOutput) 56 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index fb053bfb..acb97a4a 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -148,8 +148,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -335,8 +338,11 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Branch: Return with expression -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Sequence +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -371,7 +377,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 172 +// Id's are bound by 174 Capability Shader Capability ImageGatherExtended @@ -379,7 +385,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -401,21 +407,22 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 133 "g_sSamp" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTex1df4a" - Name 148 "g_tTex1di4a" - Name 151 "g_tTex1du4a" - Name 154 "g_tTex2df4a" - Name 157 "g_tTex2di4a" - Name 160 "g_tTex2du4a" - Name 163 "g_tTexcdf4a" - Name 166 "g_tTexcdi4a" - Name 169 "g_tTexcdu4a" - Name 170 "c1" - Name 171 "o4" + Name 130 "@entryPointOutput" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Name 172 "c1" + Name 173 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -427,20 +434,20 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_sSamp) DescriptorSet 0 - Decorate 133(g_sSamp) Binding 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTex1df4a) DescriptorSet 0 - Decorate 148(g_tTex1di4a) DescriptorSet 0 - Decorate 151(g_tTex1du4a) DescriptorSet 0 - Decorate 154(g_tTex2df4a) DescriptorSet 0 - Decorate 157(g_tTex2di4a) DescriptorSet 0 - Decorate 160(g_tTex2du4a) DescriptorSet 0 - Decorate 163(g_tTexcdf4a) DescriptorSet 0 - Decorate 166(g_tTexcdi4a) DescriptorSet 0 - Decorate 169(g_tTexcdu4a) DescriptorSet 0 + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -500,47 +507,49 @@ gl_FragCoord origin is upper left 124: TypePointer Function 25(fvec4) 126: 11(int) Constant 1 127: TypePointer Function 6(float) - 131: TypeSampler - 132: TypePointer UniformConstant 131 - 133(g_sSamp): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 15(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) 1D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex1df4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) 1D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex1di4a): 147(ptr) Variable UniformConstant - 149: TypeImage 15(int) 1D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex1du4a): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) 2D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex2df4a): 153(ptr) Variable UniformConstant - 155: TypeImage 11(int) 2D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex2di4a): 156(ptr) Variable UniformConstant - 158: TypeImage 15(int) 2D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex2du4a): 159(ptr) Variable UniformConstant - 161: TypeImage 6(float) Cube array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTexcdf4a): 162(ptr) Variable UniformConstant - 164: TypeImage 11(int) Cube array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTexcdi4a): 165(ptr) Variable UniformConstant - 167: TypeImage 15(int) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdu4a): 168(ptr) Variable UniformConstant - 170(c1): 17(ptr) Variable UniformConstant - 171(o4): 88(ptr) Variable UniformConstant + 129: TypePointer Output 118(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 15(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 15(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 15(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 15(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 172(c1): 17(ptr) Variable UniformConstant + 173(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -611,6 +620,7 @@ gl_FragCoord origin is upper left Store 125 123 128: 127(ptr) AccessChain 120(psout) 126 Store 128 122 - 129:118(PS_OUTPUT) Load 120(psout) - ReturnValue 129 + 131:118(PS_OUTPUT) Load 120(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 548a7c70..1751db8c 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Branch: Return with expression -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Sequence +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -263,8 +266,11 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Branch: Return with expression -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Sequence +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -299,7 +305,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 151 Capability Shader Capability ImageGatherExtended @@ -307,7 +313,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 96 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -324,26 +330,27 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 99 "g_sSamp" - Name 102 "g_tTex1df4" - Name 105 "g_tTex1di4" - Name 108 "g_tTex1du4" - Name 111 "g_tTex2df4" - Name 114 "g_tTex2di4" - Name 117 "g_tTex2du4" - Name 120 "g_tTex3df4" - Name 123 "g_tTex3di4" - Name 126 "g_tTex3du4" - Name 129 "g_tTexcdf4" - Name 132 "g_tTexcdi4" - Name 135 "g_tTexcdu4" - Name 138 "g_tTexcdf4a" - Name 141 "g_tTexcdi4a" - Name 144 "g_tTexcdu4a" - Name 145 "c1" - Name 146 "c2" - Name 147 "o3" - Name 148 "o4" + Name 96 "@entryPointOutput" + Name 101 "g_sSamp" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex2df4" + Name 116 "g_tTex2di4" + Name 119 "g_tTex2du4" + Name 122 "g_tTex3df4" + Name 125 "g_tTex3di4" + Name 128 "g_tTex3du4" + Name 131 "g_tTexcdf4" + Name 134 "g_tTexcdi4" + Name 137 "g_tTexcdu4" + Name 140 "g_tTexcdf4a" + Name 143 "g_tTexcdi4a" + Name 146 "g_tTexcdu4a" + Name 147 "c1" + Name 148 "c2" + Name 149 "o3" + Name 150 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -351,24 +358,24 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 99(g_sSamp) DescriptorSet 0 - Decorate 99(g_sSamp) Binding 0 - Decorate 102(g_tTex1df4) DescriptorSet 0 - Decorate 102(g_tTex1df4) Binding 0 - Decorate 105(g_tTex1di4) DescriptorSet 0 - Decorate 108(g_tTex1du4) DescriptorSet 0 - Decorate 111(g_tTex2df4) DescriptorSet 0 - Decorate 114(g_tTex2di4) DescriptorSet 0 - Decorate 117(g_tTex2du4) DescriptorSet 0 - Decorate 120(g_tTex3df4) DescriptorSet 0 - Decorate 123(g_tTex3di4) DescriptorSet 0 - Decorate 126(g_tTex3du4) DescriptorSet 0 - Decorate 129(g_tTexcdf4) DescriptorSet 0 - Decorate 132(g_tTexcdi4) DescriptorSet 0 - Decorate 135(g_tTexcdu4) DescriptorSet 0 - Decorate 138(g_tTexcdf4a) DescriptorSet 0 - Decorate 141(g_tTexcdi4a) DescriptorSet 0 - Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 101(g_sSamp) DescriptorSet 0 + Decorate 101(g_sSamp) Binding 0 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex2df4) DescriptorSet 0 + Decorate 116(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 122(g_tTex3df4) DescriptorSet 0 + Decorate 125(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 131(g_tTexcdf4) DescriptorSet 0 + Decorate 134(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTexcdf4a) DescriptorSet 0 + Decorate 143(g_tTexcdi4a) DescriptorSet 0 + Decorate 146(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -415,58 +422,60 @@ gl_FragCoord origin is upper left 90: TypePointer Function 25(fvec4) 92: 11(int) Constant 1 93: TypePointer Function 6(float) - 97: TypeSampler - 98: TypePointer UniformConstant 97 - 99(g_sSamp): 98(ptr) Variable UniformConstant - 100: TypeImage 6(float) 1D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex1df4): 101(ptr) Variable UniformConstant - 103: TypeImage 11(int) 1D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex1di4): 104(ptr) Variable UniformConstant - 106: TypeImage 18(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1du4): 107(ptr) Variable UniformConstant - 109: TypeImage 6(float) 2D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex2df4): 110(ptr) Variable UniformConstant - 112: TypeImage 11(int) 2D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex2di4): 113(ptr) Variable UniformConstant - 115: TypeImage 18(int) 2D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex2du4): 116(ptr) Variable UniformConstant - 118: TypeImage 6(float) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3df4): 119(ptr) Variable UniformConstant - 121: TypeImage 11(int) 3D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex3di4): 122(ptr) Variable UniformConstant - 124: TypeImage 18(int) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3du4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdf4): 128(ptr) Variable UniformConstant - 130: TypeImage 11(int) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdi4): 131(ptr) Variable UniformConstant - 133: TypeImage 18(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdu4): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTexcdf4a): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) Cube array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTexcdi4a): 140(ptr) Variable UniformConstant - 142: TypeImage 18(int) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdu4a): 143(ptr) Variable UniformConstant - 145(c1): 20(ptr) Variable UniformConstant - 146(c2): 60(ptr) Variable UniformConstant - 147(o3): 13(ptr) Variable UniformConstant - 148(o4): 53(ptr) Variable UniformConstant + 95: TypePointer Output 84(PS_OUTPUT) +96(@entryPointOutput): 95(ptr) Variable Output + 99: TypeSampler + 100: TypePointer UniformConstant 99 + 101(g_sSamp): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex1df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 2D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex2df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 2D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex2di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 2D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3df4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3di4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdf4): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdi4): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTexcdf4a): 139(ptr) Variable UniformConstant + 141: TypeImage 11(int) Cube array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTexcdi4a): 142(ptr) Variable UniformConstant + 144: TypeImage 18(int) Cube array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTexcdu4a): 145(ptr) Variable UniformConstant + 147(c1): 20(ptr) Variable UniformConstant + 148(c2): 60(ptr) Variable UniformConstant + 149(o3): 13(ptr) Variable UniformConstant + 150(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -516,6 +525,7 @@ gl_FragCoord origin is upper left Store 91 89 94: 93(ptr) AccessChain 86(psout) 92 Store 94 88 - 95:84(PS_OUTPUT) Load 86(psout) - ReturnValue 95 + 97:84(PS_OUTPUT) Load 86(psout) + Store 96(@entryPointOutput) 97 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 58505eca..ebb943cc 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -7,10 +7,13 @@ gl_FragCoord origin is upper left 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 max (global 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects @@ -25,35 +28,42 @@ gl_FragCoord origin is upper left 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 max (global 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 15 +// Id's are bound by 17 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input1" - Name 11 "input2" + Name 9 "@entryPointOutput" + Name 11 "input1" + Name 13 "input2" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input1): 8(ptr) Variable Input - 11(input2): 8(ptr) Variable Input + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input1): 10(ptr) Variable Input + 13(input2): 10(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input1) - 12: 7(fvec4) Load 11(input2) - 13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12 - ReturnValue 13 + 12: 7(fvec4) Load 11(input1) + 14: 7(fvec4) Load 13(input2) + 15: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 12 14 + Store 9(@entryPointOutput) 15 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 57013709..721b0d33 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -58,8 +58,11 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Branch: Return with expression -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Branch: Return 0:? Linker Objects @@ -125,18 +128,21 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Branch: Return with expression -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 43 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 40 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -151,6 +157,7 @@ gl_FragCoord origin is upper left Name 30 "PS_OUTPUT" MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" + Name 40 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -172,6 +179,8 @@ gl_FragCoord origin is upper left 31: TypePointer Function 30(PS_OUTPUT) 33: 19(int) Constant 0 37: TypePointer Function 29(fvec4) + 39: TypePointer Output 30(PS_OUTPUT) +40(@entryPointOutput): 39(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -198,6 +207,7 @@ gl_FragCoord origin is upper left 36: 29(fvec4) CompositeConstruct 35 35 35 35 38: 37(ptr) AccessChain 32(ps_output) 33 Store 38 36 - 39:30(PS_OUTPUT) Load 32(ps_output) - ReturnValue 39 + 41:30(PS_OUTPUT) Load 32(ps_output) + Store 40(@entryPointOutput) 41 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 83217581..6bedd3e3 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -348,8 +348,11 @@ gl_FragCoord origin is upper left 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) -0:141 Branch: Return with expression -0:141 'input' (in 4-component vector of float) +0:141 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:141 'input' (in 4-component vector of float) +0:141 Branch: Return 0:? Linker Objects @@ -705,19 +708,22 @@ gl_FragCoord origin is upper left 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) -0:141 Branch: Return with expression -0:141 'input' (in 4-component vector of float) +0:141 Sequence +0:141 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:141 'input' (in 4-component vector of float) +0:141 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 507 +// Id's are bound by 509 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 504 + EntryPoint Fragment 4 "PixelShaderFunction" 504 506 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 13 "foo1(d1;b1;" @@ -901,7 +907,8 @@ gl_FragCoord origin is upper left Name 491 "param" Name 494 "param" Name 500 "param" - Name 504 "input" + Name 504 "@entryPointOutput" + Name 506 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -953,8 +960,10 @@ gl_FragCoord origin is upper left 488: TypeVector 22(int) 4 497: TypeVector 8(bool) 3 502: TypeVector 29(float) 4 - 503: TypePointer Input 502(fvec4) - 504(input): 503(ptr) Variable Input + 503: TypePointer Output 502(fvec4) +504(@entryPointOutput): 503(ptr) Variable Output + 505: TypePointer Input 502(fvec4) + 506(input): 505(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 149(d): 7(ptr) Variable Function @@ -1401,8 +1410,9 @@ gl_FragCoord origin is upper left 499: 8(bool) CompositeExtract 498 0 Store 500(param) 499 501: 2 FunctionCall 147(foo15(vb1;) 500(param) - 505: 502(fvec4) Load 504(input) - ReturnValue 505 + 507: 502(fvec4) Load 506(input) + Store 504(@entryPointOutput) 507 + Return FunctionEnd 13(foo1(d1;b1;): 2 Function None 10 11(a): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 89b9b7b8..4c70ea82 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -31,8 +31,11 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Branch: Return with expression -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Sequence +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Branch: Return 0:? Linker Objects @@ -71,18 +74,21 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Branch: Return with expression -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Sequence +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 27 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -90,6 +96,7 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "Color" MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" + Name 27 "@entryPointOutput" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 @@ -106,6 +113,8 @@ gl_FragCoord origin is upper left 21: TypePointer Function 11(fvec4) 23: 6(int) Constant 1 24: TypePointer Function 10(float) + 26: TypePointer Output 12(PS_OUTPUT) +27(@entryPointOutput): 26(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function @@ -118,6 +127,7 @@ gl_FragCoord origin is upper left Store 22 20 25: 24(ptr) AccessChain 14(psout) 23 Store 25 19 - 26:12(PS_OUTPUT) Load 14(psout) - ReturnValue 26 + 28:12(PS_OUTPUT) Load 14(psout) + Store 27(@entryPointOutput) 28 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 3c9252ed..4ad10ad4 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -9,39 +9,42 @@ gl_FragCoord origin is upper left 0:7 'a3' (in 4-component vector of float) 0:7 'a4' (in 4-component vector of float) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:? Construct vec4 (temp 4-component vector of float) -0:8 component-wise multiply (temp 3-component vector of float) -0:8 vector swizzle (temp 3-component vector of float) +0:8 add (temp 4-component vector of float) 0:8 'a1' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) +0:8 'a3' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return 0:? Linker Objects @@ -58,88 +61,95 @@ gl_FragCoord origin is upper left 0:7 'a3' (in 4-component vector of float) 0:7 'a4' (in 4-component vector of float) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp 4-component vector of float) +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) -0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:? Construct vec4 (temp 4-component vector of float) -0:8 component-wise multiply (temp 3-component vector of float) -0:8 vector swizzle (temp 3-component vector of float) +0:8 add (temp 4-component vector of float) 0:8 'a1' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) -0:8 Constant: -0:8 2 (const int) -0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) -0:8 Constant: -0:8 3 (const int) +0:8 component-wise multiply (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:? Construct vec4 (temp 4-component vector of float) +0:8 component-wise multiply (temp 3-component vector of float) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 vector swizzle (temp 3-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 Sequence +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 1 (const int) +0:8 Constant: +0:8 2 (const int) +0:8 direct index (temp float) +0:8 'a3' (in 4-component vector of float) +0:8 Constant: +0:8 3 (const int) +0:8 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 37 +// Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 17 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 15 19 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "a1" - Name 11 "a2" - Name 13 "a3" - Name 17 "a4" + Name 9 "@entryPointOutput" + Name 11 "a1" + Name 13 "a2" + Name 15 "a3" + Name 19 "a4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(a1): 8(ptr) Variable Input - 11(a2): 8(ptr) Variable Input - 13(a3): 8(ptr) Variable Input - 17(a4): 8(ptr) Variable Input - 20: TypeVector 6(float) 3 - 26: TypeInt 32 0 - 27: 26(int) Constant 3 - 28: TypePointer Input 6(float) + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(a1): 10(ptr) Variable Input + 13(a2): 10(ptr) Variable Input + 15(a3): 10(ptr) Variable Input + 19(a4): 10(ptr) Variable Input + 22: TypeVector 6(float) 3 + 28: TypeInt 32 0 + 29: 28(int) Constant 3 + 30: TypePointer Input 6(float) 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(a1) - 12: 7(fvec4) Load 11(a2) - 14: 7(fvec4) Load 13(a3) - 15: 7(fvec4) FMul 12 14 - 16: 7(fvec4) FAdd 10 15 - 18: 7(fvec4) Load 17(a4) - 19: 7(fvec4) FAdd 16 18 - 21: 7(fvec4) Load 9(a1) - 22: 20(fvec3) VectorShuffle 21 21 0 1 2 - 23: 7(fvec4) Load 11(a2) - 24: 20(fvec3) VectorShuffle 23 23 0 1 2 - 25: 20(fvec3) FMul 22 24 - 29: 28(ptr) AccessChain 13(a3) 27 - 30: 6(float) Load 29 - 31: 6(float) CompositeExtract 25 0 - 32: 6(float) CompositeExtract 25 1 - 33: 6(float) CompositeExtract 25 2 - 34: 7(fvec4) CompositeConstruct 31 32 33 30 - 35: 7(fvec4) FAdd 19 34 - ReturnValue 35 + 12: 7(fvec4) Load 11(a1) + 14: 7(fvec4) Load 13(a2) + 16: 7(fvec4) Load 15(a3) + 17: 7(fvec4) FMul 14 16 + 18: 7(fvec4) FAdd 12 17 + 20: 7(fvec4) Load 19(a4) + 21: 7(fvec4) FAdd 18 20 + 23: 7(fvec4) Load 11(a1) + 24: 22(fvec3) VectorShuffle 23 23 0 1 2 + 25: 7(fvec4) Load 13(a2) + 26: 22(fvec3) VectorShuffle 25 25 0 1 2 + 27: 22(fvec3) FMul 24 26 + 31: 30(ptr) AccessChain 15(a3) 29 + 32: 6(float) Load 31 + 33: 6(float) CompositeExtract 27 0 + 34: 6(float) CompositeExtract 27 1 + 35: 6(float) CompositeExtract 27 2 + 36: 7(fvec4) CompositeConstruct 33 34 35 32 + 37: 7(fvec4) FAdd 21 36 + Store 9(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index a0205f08..a06865a7 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -9,22 +9,25 @@ gl_FragCoord origin is upper left 0:7 'a3' (in int) 0:7 'a4' (in int) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp int) -0:8 left-shift (temp int) -0:8 add (temp int) -0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) -0:8 left-shift (temp int) -0:8 'a1' (in int) -0:8 add (temp int) -0:8 'a2' (in int) -0:8 component-wise multiply (temp int) +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (out int) +0:8 add (temp int) +0:8 left-shift (temp int) +0:8 add (temp int) +0:8 component-wise multiply (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) 0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a4' (in int) +0:8 left-shift (temp int) +0:8 'a1' (in int) +0:8 add (temp int) +0:8 'a2' (in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) +0:8 Branch: Return 0:? Linker Objects @@ -41,62 +44,69 @@ gl_FragCoord origin is upper left 0:7 'a3' (in int) 0:7 'a4' (in int) 0:? Sequence -0:8 Branch: Return with expression -0:8 add (temp int) -0:8 left-shift (temp int) -0:8 add (temp int) -0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) -0:8 left-shift (temp int) -0:8 'a1' (in int) -0:8 add (temp int) -0:8 'a2' (in int) -0:8 component-wise multiply (temp int) +0:8 Sequence +0:8 move second child to first child (temp int) +0:? '@entryPointOutput' (out int) +0:8 add (temp int) +0:8 left-shift (temp int) +0:8 add (temp int) +0:8 component-wise multiply (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) 0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a4' (in int) +0:8 left-shift (temp int) +0:8 'a1' (in int) +0:8 add (temp int) +0:8 'a2' (in int) +0:8 component-wise multiply (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) +0:8 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 8 10 13 16 + EntryPoint Fragment 4 "PixelShaderFunction" 8 10 12 15 18 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 8 "a1" - Name 10 "a2" - Name 13 "a3" - Name 16 "a4" + Name 8 "@entryPointOutput" + Name 10 "a1" + Name 12 "a2" + Name 15 "a3" + Name 18 "a4" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 - 7: TypePointer Input 6(int) - 8(a1): 7(ptr) Variable Input - 10(a2): 7(ptr) Variable Input - 13(a3): 7(ptr) Variable Input - 16(a4): 7(ptr) Variable Input + 7: TypePointer Output 6(int) +8(@entryPointOutput): 7(ptr) Variable Output + 9: TypePointer Input 6(int) + 10(a1): 9(ptr) Variable Input + 12(a2): 9(ptr) Variable Input + 15(a3): 9(ptr) Variable Input + 18(a4): 9(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9: 6(int) Load 8(a1) - 11: 6(int) Load 10(a2) - 12: 6(int) IMul 9 11 - 14: 6(int) Load 13(a3) - 15: 6(int) IAdd 12 14 - 17: 6(int) Load 16(a4) - 18: 6(int) ShiftLeftLogical 15 17 - 19: 6(int) Load 8(a1) - 20: 6(int) Load 10(a2) - 21: 6(int) Load 13(a3) - 22: 6(int) Load 16(a4) - 23: 6(int) IMul 21 22 - 24: 6(int) IAdd 20 23 - 25: 6(int) ShiftLeftLogical 19 24 - 26: 6(int) IAdd 18 25 - ReturnValue 26 + 11: 6(int) Load 10(a1) + 13: 6(int) Load 12(a2) + 14: 6(int) IMul 11 13 + 16: 6(int) Load 15(a3) + 17: 6(int) IAdd 14 16 + 19: 6(int) Load 18(a4) + 20: 6(int) ShiftLeftLogical 17 19 + 21: 6(int) Load 10(a1) + 22: 6(int) Load 12(a2) + 23: 6(int) Load 15(a3) + 24: 6(int) Load 18(a4) + 25: 6(int) IMul 23 24 + 26: 6(int) IAdd 22 25 + 27: 6(int) ShiftLeftLogical 21 26 + 28: 6(int) IAdd 20 27 + Store 8(@entryPointOutput) 28 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 1a277f0a..e2577c7a 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -19,8 +19,11 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Branch: Return with expression -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Sequence +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -48,19 +51,22 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Branch: Return with expression -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Sequence +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 29 +// Id's are bound by 31 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 26 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -69,7 +75,8 @@ gl_FragCoord origin is upper left Name 16 "PS_OUTPUT" MemberName 16(PS_OUTPUT) 0 "color" Name 18 "ps_output" - Name 28 "precisefloat" + Name 26 "@entryPointOutput" + Name 30 "precisefloat" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -85,15 +92,18 @@ gl_FragCoord origin is upper left 21: 6(float) Constant 1065353216 22: 15(fvec4) ConstantComposite 21 21 21 21 23: TypePointer Function 15(fvec4) - 27: TypePointer Private 6(float) -28(precisefloat): 27(ptr) Variable Private + 25: TypePointer Output 16(PS_OUTPUT) +26(@entryPointOutput): 25(ptr) Variable Output + 29: TypePointer Private 6(float) +30(precisefloat): 29(ptr) Variable Private 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function 24: 23(ptr) AccessChain 18(ps_output) 20 Store 24 22 - 25:16(PS_OUTPUT) Load 18(ps_output) - ReturnValue 25 + 27:16(PS_OUTPUT) Load 18(ps_output) + Store 26(@entryPointOutput) 27 + Return FunctionEnd 13(MyFunction(f1;vf3;): 2 Function None 10 11(myfloat): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 41bca2ff..413a4f0f 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -496,8 +496,11 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Branch: Return with expression -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Sequence +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) 0:? 'b3' (uniform 3-component vector of bool) @@ -1011,8 +1014,11 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Branch: Return with expression -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Sequence +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) 0:? 'b3' (uniform 3-component vector of bool) @@ -1027,13 +1033,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 478 +// Id's are bound by 480 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 477 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1122,6 +1128,7 @@ gl_FragCoord origin is upper left Name 471 "PS_OUTPUT" MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" + Name 477 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1192,6 +1199,8 @@ gl_FragCoord origin is upper left 465: 6(float) Constant 1080452710 471(PS_OUTPUT): TypeStruct 462(fvec4) 472: TypePointer Function 471(PS_OUTPUT) + 476: TypePointer Output 471(PS_OUTPUT) +477(@entryPointOutput): 476(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function @@ -1457,8 +1466,9 @@ gl_FragCoord origin is upper left 474: 462(fvec4) Load 464(outval) 475: 463(ptr) AccessChain 473(psout) 149 Store 475 474 - 476:471(PS_OUTPUT) Load 473(psout) - ReturnValue 476 + 478:471(PS_OUTPUT) Load 473(psout) + Store 477(@entryPointOutput) 478 + Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 10(x): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 9ab682ff..5413a6f5 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -121,8 +121,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -262,8 +265,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -279,14 +285,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 132 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -312,7 +318,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 131 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -326,8 +333,8 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 131(g_tTex1df4a) Binding 1 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -405,7 +412,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 25(int) Constant 1 127: TypePointer Function 6(float) -131(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -467,6 +476,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 129:120(PS_OUTPUT) Load 122(psout) - ReturnValue 129 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 6960c32e..9cd4ebd0 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -231,8 +231,11 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Branch: Return with expression -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Sequence +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -485,8 +488,11 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Branch: Return with expression -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Sequence +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -507,13 +513,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 186 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -559,9 +565,10 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 181 "g_sSamp2d" - Name 182 "g_sSamp2D_b" - Name 183 "g_tTex1df4a" + Name 180 "@entryPointOutput" + Name 183 "g_sSamp2d" + Name 184 "g_sSamp2D_b" + Name 185 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -578,10 +585,10 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 181(g_sSamp2d) DescriptorSet 0 - Decorate 182(g_sSamp2D_b) DescriptorSet 0 - Decorate 183(g_tTex1df4a) DescriptorSet 0 - Decorate 183(g_tTex1df4a) Binding 1 + Decorate 183(g_sSamp2d) DescriptorSet 0 + Decorate 184(g_sSamp2D_b) DescriptorSet 0 + Decorate 185(g_tTex1df4a) DescriptorSet 0 + Decorate 185(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -681,9 +688,11 @@ gl_FragCoord origin is upper left 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 181(g_sSamp2d): 44(ptr) Variable UniformConstant -182(g_sSamp2D_b): 44(ptr) Variable UniformConstant -183(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(PS_OUTPUT) +180(@entryPointOutput): 179(ptr) Variable Output + 183(g_sSamp2d): 44(ptr) Variable UniformConstant +184(g_sSamp2D_b): 44(ptr) Variable UniformConstant +185(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -788,6 +797,7 @@ gl_FragCoord origin is upper left Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 179:171(PS_OUTPUT) Load 173(psout) - ReturnValue 179 + 181:171(PS_OUTPUT) Load 173(psout) + Store 180(@entryPointOutput) 181 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 1ec6bdec..d11d16f5 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -301,8 +304,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -321,13 +327,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 147 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -353,10 +359,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "g_tTex1df4a" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -370,11 +377,11 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(g_tTex1df4a) DescriptorSet 0 - Decorate 137(g_tTex1df4a) Binding 1 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -458,16 +465,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) -137(g_tTex1df4a): 11(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 21(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 36(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 21(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 36(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -529,6 +538,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 22 Store 134 130 - 135:127(PS_OUTPUT) Load 129(psout) - ReturnValue 135 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index e976a419..76315296 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -100,8 +100,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -217,8 +220,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -231,13 +237,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 104 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -257,7 +263,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -268,8 +275,8 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -334,7 +341,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) -103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -378,6 +387,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 39 Store 100 96 - 101:93(PS_OUTPUT) Load 95(psout) - ReturnValue 101 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 863a3bad..e735d34d 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 132 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -348,7 +354,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 131 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -362,8 +369,8 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 131(g_tTex1df4a) Binding 1 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -441,7 +448,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 26(int) Constant 1 127: TypePointer Function 6(float) -131(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -503,6 +512,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 129:120(PS_OUTPUT) Load 122(psout) - ReturnValue 129 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 176e58ab..d61eda9d 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -169,8 +169,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -361,8 +364,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -381,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 158 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 154 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -419,7 +425,8 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 155 "g_tTex1df4a" + Name 154 "@entryPointOutput" + Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -436,8 +443,8 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 155(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1df4a) Binding 1 + Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -524,7 +531,9 @@ gl_FragCoord origin is upper left 148: 7(fvec4) ConstantComposite 147 147 147 147 150: 23(int) Constant 1 151: TypePointer Function 6(float) -155(g_tTex1df4a): 11(ptr) Variable UniformConstant + 153: TypePointer Output 143(PS_OUTPUT) +154(@entryPointOutput): 153(ptr) Variable Output +157(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -604,6 +613,7 @@ gl_FragCoord origin is upper left Store 149 148 152: 151(ptr) AccessChain 145(psout) 150 Store 152 147 - 153:143(PS_OUTPUT) Load 145(psout) - ReturnValue 153 + 155:143(PS_OUTPUT) Load 145(psout) + Store 154(@entryPointOutput) 155 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 4dbaf2b0..b2e77efc 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -337,8 +340,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -357,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 147 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -389,10 +395,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "g_tTex1df4a" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -406,11 +413,11 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(g_tTex1df4a) DescriptorSet 0 - Decorate 137(g_tTex1df4a) Binding 1 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -494,16 +501,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) -137(g_tTex1df4a): 11(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 22(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 37(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 22(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 37(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -565,6 +574,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 23 Store 134 130 - 135:127(PS_OUTPUT) Load 129(psout) - ReturnValue 135 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index c4691ddf..52263c49 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -241,8 +244,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -255,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 104 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -281,7 +287,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -292,8 +299,8 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -358,7 +365,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) -103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -402,6 +411,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 40 Store 100 96 - 101:93(PS_OUTPUT) Load 95(psout) - ReturnValue 101 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 6f11d65e..a61aa29b 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -148,8 +148,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -327,8 +330,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -355,14 +361,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 177 +// Id's are bound by 179 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -388,18 +394,19 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 143 "g_tTex1df4" - Name 146 "g_tTex1di4" - Name 149 "g_tTex1du4" - Name 152 "g_tTex2df4" - Name 155 "g_tTex2di4" - Name 158 "g_tTex2du4" - Name 161 "g_tTex3df4" - Name 164 "g_tTex3di4" - Name 167 "g_tTex3du4" - Name 170 "g_tTexcdf4" - Name 173 "g_tTexcdi4" - Name 176 "g_tTexcdu4" + Name 140 "@entryPointOutput" + Name 145 "g_tTex1df4" + Name 148 "g_tTex1di4" + Name 151 "g_tTex1du4" + Name 154 "g_tTex2df4" + Name 157 "g_tTex2di4" + Name 160 "g_tTex2du4" + Name 163 "g_tTex3df4" + Name 166 "g_tTex3di4" + Name 169 "g_tTex3du4" + Name 172 "g_tTexcdf4" + Name 175 "g_tTexcdi4" + Name 178 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -412,19 +419,19 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 143(g_tTex1df4) DescriptorSet 0 - Decorate 143(g_tTex1df4) Binding 0 - Decorate 146(g_tTex1di4) DescriptorSet 0 - Decorate 149(g_tTex1du4) DescriptorSet 0 - Decorate 152(g_tTex2df4) DescriptorSet 0 - Decorate 155(g_tTex2di4) DescriptorSet 0 - Decorate 158(g_tTex2du4) DescriptorSet 0 - Decorate 161(g_tTex3df4) DescriptorSet 0 - Decorate 164(g_tTex3di4) DescriptorSet 0 - Decorate 167(g_tTex3du4) DescriptorSet 0 - Decorate 170(g_tTexcdf4) DescriptorSet 0 - Decorate 173(g_tTexcdi4) DescriptorSet 0 - Decorate 176(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTex1df4) DescriptorSet 0 + Decorate 145(g_tTex1df4) Binding 0 + Decorate 148(g_tTex1di4) DescriptorSet 0 + Decorate 151(g_tTex1du4) DescriptorSet 0 + Decorate 154(g_tTex2df4) DescriptorSet 0 + Decorate 157(g_tTex2di4) DescriptorSet 0 + Decorate 160(g_tTex2du4) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 166(g_tTex3di4) DescriptorSet 0 + Decorate 169(g_tTex3du4) DescriptorSet 0 + Decorate 172(g_tTexcdf4) DescriptorSet 0 + Decorate 175(g_tTexcdi4) DescriptorSet 0 + Decorate 178(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -497,42 +504,44 @@ gl_FragCoord origin is upper left 134: 102(fvec4) ConstantComposite 133 133 133 133 135: TypePointer Function 102(fvec4) 137: 29(int) Constant 1 - 141: TypeImage 6(float) 1D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex1df4): 142(ptr) Variable UniformConstant - 144: TypeImage 29(int) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1di4): 145(ptr) Variable UniformConstant - 147: TypeImage 42(int) 1D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex1du4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 2D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex2df4): 151(ptr) Variable UniformConstant - 153: TypeImage 29(int) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2di4): 154(ptr) Variable UniformConstant - 156: TypeImage 42(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex2du4): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 3D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex3df4): 160(ptr) Variable UniformConstant - 162: TypeImage 29(int) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3di4): 163(ptr) Variable UniformConstant - 165: TypeImage 42(int) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3du4): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTexcdf4): 169(ptr) Variable UniformConstant - 171: TypeImage 29(int) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdi4): 172(ptr) Variable UniformConstant - 174: TypeImage 42(int) Cube sampled format:Unknown - 175: TypePointer UniformConstant 174 - 176(g_tTexcdu4): 175(ptr) Variable UniformConstant + 139: TypePointer Output 129(PS_OUTPUT) +140(@entryPointOutput): 139(ptr) Variable Output + 143: TypeImage 6(float) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1df4): 144(ptr) Variable UniformConstant + 146: TypeImage 29(int) 1D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex1di4): 147(ptr) Variable UniformConstant + 149: TypeImage 42(int) 1D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex1du4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 2D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex2df4): 153(ptr) Variable UniformConstant + 155: TypeImage 29(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex2di4): 156(ptr) Variable UniformConstant + 158: TypeImage 42(int) 2D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex2du4): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) 3D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 164: TypeImage 29(int) 3D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex3di4): 165(ptr) Variable UniformConstant + 167: TypeImage 42(int) 3D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex3du4): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTexcdf4): 171(ptr) Variable UniformConstant + 173: TypeImage 29(int) Cube sampled format:Unknown + 174: TypePointer UniformConstant 173 + 175(g_tTexcdi4): 174(ptr) Variable UniformConstant + 176: TypeImage 42(int) Cube sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTexcdu4): 177(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -609,6 +618,7 @@ gl_FragCoord origin is upper left Store 136 134 138: 7(ptr) AccessChain 131(psout) 137 Store 138 133 - 139:129(PS_OUTPUT) Load 131(psout) - ReturnValue 139 + 141:129(PS_OUTPUT) Load 131(psout) + Store 140(@entryPointOutput) 141 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 7824cc66..93fe73cf 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -309,8 +312,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -337,14 +343,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 175 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 138 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -370,18 +376,19 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 141 "g_tTex3df4" - Name 144 "g_tTex3di4" - Name 147 "g_tTex3du4" - Name 150 "g_tTex1df4a" - Name 153 "g_tTex1di4a" - Name 156 "g_tTex1du4a" - Name 159 "g_tTex2df4a" - Name 162 "g_tTex2di4a" - Name 165 "g_tTex2du4a" - Name 168 "g_tTexcdf4a" - Name 171 "g_tTexcdi4a" - Name 174 "g_tTexcdu4a" + Name 138 "@entryPointOutput" + Name 143 "g_tTex3df4" + Name 146 "g_tTex3di4" + Name 149 "g_tTex3du4" + Name 152 "g_tTex1df4a" + Name 155 "g_tTex1di4a" + Name 158 "g_tTex1du4a" + Name 161 "g_tTex2df4a" + Name 164 "g_tTex2di4a" + Name 167 "g_tTex2du4a" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -395,18 +402,18 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(g_tTex3df4) DescriptorSet 0 - Decorate 144(g_tTex3di4) DescriptorSet 0 - Decorate 147(g_tTex3du4) DescriptorSet 0 - Decorate 150(g_tTex1df4a) DescriptorSet 0 - Decorate 153(g_tTex1di4a) DescriptorSet 0 - Decorate 156(g_tTex1du4a) DescriptorSet 0 - Decorate 159(g_tTex2df4a) DescriptorSet 0 - Decorate 162(g_tTex2di4a) DescriptorSet 0 - Decorate 165(g_tTex2du4a) DescriptorSet 0 - Decorate 168(g_tTexcdf4a) DescriptorSet 0 - Decorate 171(g_tTexcdi4a) DescriptorSet 0 - Decorate 174(g_tTexcdu4a) DescriptorSet 0 + Decorate 143(g_tTex3df4) DescriptorSet 0 + Decorate 146(g_tTex3di4) DescriptorSet 0 + Decorate 149(g_tTex3du4) DescriptorSet 0 + Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1di4a) DescriptorSet 0 + Decorate 158(g_tTex1du4a) DescriptorSet 0 + Decorate 161(g_tTex2df4a) DescriptorSet 0 + Decorate 164(g_tTex2di4a) DescriptorSet 0 + Decorate 167(g_tTex2du4a) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -477,42 +484,44 @@ gl_FragCoord origin is upper left 132: 126(fvec4) ConstantComposite 131 131 131 131 133: TypePointer Function 126(fvec4) 135: 25(int) Constant 1 - 139: TypeImage 6(float) 3D sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTex3df4): 140(ptr) Variable UniformConstant - 142: TypeImage 25(int) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3di4): 143(ptr) Variable UniformConstant - 145: TypeImage 37(int) 3D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex3du4): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1df4a): 149(ptr) Variable UniformConstant - 151: TypeImage 25(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1di4a): 152(ptr) Variable UniformConstant - 154: TypeImage 37(int) 1D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex1du4a): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2df4a): 158(ptr) Variable UniformConstant - 160: TypeImage 25(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2di4a): 161(ptr) Variable UniformConstant - 163: TypeImage 37(int) 2D array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTex2du4a): 164(ptr) Variable UniformConstant - 166: TypeImage 6(float) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdf4a): 167(ptr) Variable UniformConstant - 169: TypeImage 25(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdi4a): 170(ptr) Variable UniformConstant - 172: TypeImage 37(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdu4a): 173(ptr) Variable UniformConstant + 137: TypePointer Output 127(PS_OUTPUT) +138(@entryPointOutput): 137(ptr) Variable Output + 141: TypeImage 6(float) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3df4): 142(ptr) Variable UniformConstant + 144: TypeImage 25(int) 3D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex3di4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) 3D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex3du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1df4a): 151(ptr) Variable UniformConstant + 153: TypeImage 25(int) 1D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex1di4a): 154(ptr) Variable UniformConstant + 156: TypeImage 37(int) 1D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex1du4a): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2df4a): 160(ptr) Variable UniformConstant + 162: TypeImage 25(int) 2D array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTex2di4a): 163(ptr) Variable UniformConstant + 165: TypeImage 37(int) 2D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex2du4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 25(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 37(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -589,6 +598,7 @@ gl_FragCoord origin is upper left Store 134 132 136: 7(ptr) AccessChain 129(psout) 135 Store 136 131 - 137:127(PS_OUTPUT) Load 129(psout) - ReturnValue 137 + 139:127(PS_OUTPUT) Load 129(psout) + Store 138(@entryPointOutput) 139 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 346279bb..71eb5206 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -255,8 +258,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -283,14 +289,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 151 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -310,21 +316,22 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 106 "g_tTex3df4" - Name 109 "g_tTex3di4" - Name 112 "g_tTex3du4" - Name 115 "g_tTexcdf4" - Name 118 "g_tTexcdi4" - Name 121 "g_tTexcdu4" - Name 124 "g_tTex1df4a" - Name 127 "g_tTex1di4a" - Name 130 "g_tTex1du4a" - Name 133 "g_tTex2df4a" - Name 136 "g_tTex2di4a" - Name 139 "g_tTex2du4a" - Name 142 "g_tTexcdf4a" - Name 145 "g_tTexcdi4a" - Name 148 "g_tTexcdu4a" + Name 103 "@entryPointOutput" + Name 108 "g_tTex3df4" + Name 111 "g_tTex3di4" + Name 114 "g_tTex3du4" + Name 117 "g_tTexcdf4" + Name 120 "g_tTexcdi4" + Name 123 "g_tTexcdu4" + Name 126 "g_tTex1df4a" + Name 129 "g_tTex1di4a" + Name 132 "g_tTex1du4a" + Name 135 "g_tTex2df4a" + Name 138 "g_tTex2di4a" + Name 141 "g_tTex2du4a" + Name 144 "g_tTexcdf4a" + Name 147 "g_tTexcdi4a" + Name 150 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -335,21 +342,21 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 106(g_tTex3df4) DescriptorSet 0 - Decorate 109(g_tTex3di4) DescriptorSet 0 - Decorate 112(g_tTex3du4) DescriptorSet 0 - Decorate 115(g_tTexcdf4) DescriptorSet 0 - Decorate 118(g_tTexcdi4) DescriptorSet 0 - Decorate 121(g_tTexcdu4) DescriptorSet 0 - Decorate 124(g_tTex1df4a) DescriptorSet 0 - Decorate 127(g_tTex1di4a) DescriptorSet 0 - Decorate 130(g_tTex1du4a) DescriptorSet 0 - Decorate 133(g_tTex2df4a) DescriptorSet 0 - Decorate 136(g_tTex2di4a) DescriptorSet 0 - Decorate 139(g_tTex2du4a) DescriptorSet 0 - Decorate 142(g_tTexcdf4a) DescriptorSet 0 - Decorate 145(g_tTexcdi4a) DescriptorSet 0 - Decorate 148(g_tTexcdu4a) DescriptorSet 0 + Decorate 108(g_tTex3df4) DescriptorSet 0 + Decorate 111(g_tTex3di4) DescriptorSet 0 + Decorate 114(g_tTex3du4) DescriptorSet 0 + Decorate 117(g_tTexcdf4) DescriptorSet 0 + Decorate 120(g_tTexcdi4) DescriptorSet 0 + Decorate 123(g_tTexcdu4) DescriptorSet 0 + Decorate 126(g_tTex1df4a) DescriptorSet 0 + Decorate 129(g_tTex1di4a) DescriptorSet 0 + Decorate 132(g_tTex1du4a) DescriptorSet 0 + Decorate 135(g_tTex2df4a) DescriptorSet 0 + Decorate 138(g_tTex2di4a) DescriptorSet 0 + Decorate 141(g_tTex2du4a) DescriptorSet 0 + Decorate 144(g_tTexcdf4a) DescriptorSet 0 + Decorate 147(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -406,51 +413,53 @@ gl_FragCoord origin is upper left 97: 91(fvec4) ConstantComposite 96 96 96 96 98: TypePointer Function 91(fvec4) 100: 22(int) Constant 1 - 104: TypeImage 6(float) 3D sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTex3df4): 105(ptr) Variable UniformConstant - 107: TypeImage 22(int) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3di4): 108(ptr) Variable UniformConstant - 110: TypeImage 38(int) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3du4): 111(ptr) Variable UniformConstant - 113: TypeImage 6(float) Cube sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTexcdf4): 114(ptr) Variable UniformConstant - 116: TypeImage 22(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdi4): 117(ptr) Variable UniformConstant - 119: TypeImage 38(int) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdu4): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 1D array sampled format:Unknown - 123: TypePointer UniformConstant 122 -124(g_tTex1df4a): 123(ptr) Variable UniformConstant - 125: TypeImage 22(int) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1di4a): 126(ptr) Variable UniformConstant - 128: TypeImage 38(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1du4a): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 2D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex2df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 22(int) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 38(int) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTexcdf4a): 141(ptr) Variable UniformConstant - 143: TypeImage 22(int) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdi4a): 144(ptr) Variable UniformConstant - 146: TypeImage 38(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdu4a): 147(ptr) Variable UniformConstant + 102: TypePointer Output 92(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output + 106: TypeImage 6(float) 3D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex3df4): 107(ptr) Variable UniformConstant + 109: TypeImage 22(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3di4): 110(ptr) Variable UniformConstant + 112: TypeImage 38(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdf4): 116(ptr) Variable UniformConstant + 118: TypeImage 22(int) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdi4): 119(ptr) Variable UniformConstant + 121: TypeImage 38(int) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdu4): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTex1df4a): 125(ptr) Variable UniformConstant + 127: TypeImage 22(int) 1D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex1di4a): 128(ptr) Variable UniformConstant + 130: TypeImage 38(int) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1du4a): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 2D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex2df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 22(int) 2D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex2di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 38(int) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdf4a): 143(ptr) Variable UniformConstant + 145: TypeImage 22(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdi4a): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -503,6 +512,7 @@ gl_FragCoord origin is upper left Store 99 97 101: 7(ptr) AccessChain 94(psout) 100 Store 101 96 - 102:92(PS_OUTPUT) Load 94(psout) - ReturnValue 102 + 104:92(PS_OUTPUT) Load 94(psout) + Store 103(@entryPointOutput) 104 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 643cef46..c2cdb4d6 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -118,8 +118,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -267,8 +270,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -295,14 +301,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 157 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 109 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -322,21 +328,22 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 112 "g_tTex1df4" - Name 115 "g_tTex1di4" - Name 118 "g_tTex1du4" - Name 121 "g_tTex2df4" - Name 124 "g_tTex2di4" - Name 127 "g_tTex2du4" - Name 130 "g_tTex3df4" - Name 133 "g_tTex3di4" - Name 136 "g_tTex3du4" - Name 139 "g_tTexcdf4" - Name 142 "g_tTexcdi4" - Name 145 "g_tTexcdu4" - Name 148 "g_tTexcdf4a" - Name 151 "g_tTexcdi4a" - Name 154 "g_tTexcdu4a" + Name 109 "@entryPointOutput" + Name 114 "g_tTex1df4" + Name 117 "g_tTex1di4" + Name 120 "g_tTex1du4" + Name 123 "g_tTex2df4" + Name 126 "g_tTex2di4" + Name 129 "g_tTex2du4" + Name 132 "g_tTex3df4" + Name 135 "g_tTex3di4" + Name 138 "g_tTex3du4" + Name 141 "g_tTexcdf4" + Name 144 "g_tTexcdi4" + Name 147 "g_tTexcdu4" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -346,22 +353,22 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 112(g_tTex1df4) DescriptorSet 0 - Decorate 112(g_tTex1df4) Binding 0 - Decorate 115(g_tTex1di4) DescriptorSet 0 - Decorate 118(g_tTex1du4) DescriptorSet 0 - Decorate 121(g_tTex2df4) DescriptorSet 0 - Decorate 124(g_tTex2di4) DescriptorSet 0 - Decorate 127(g_tTex2du4) DescriptorSet 0 - Decorate 130(g_tTex3df4) DescriptorSet 0 - Decorate 133(g_tTex3di4) DescriptorSet 0 - Decorate 136(g_tTex3du4) DescriptorSet 0 - Decorate 139(g_tTexcdf4) DescriptorSet 0 - Decorate 142(g_tTexcdi4) DescriptorSet 0 - Decorate 145(g_tTexcdu4) DescriptorSet 0 - Decorate 148(g_tTexcdf4a) DescriptorSet 0 - Decorate 151(g_tTexcdi4a) DescriptorSet 0 - Decorate 154(g_tTexcdu4a) DescriptorSet 0 + Decorate 114(g_tTex1df4) DescriptorSet 0 + Decorate 114(g_tTex1df4) Binding 0 + Decorate 117(g_tTex1di4) DescriptorSet 0 + Decorate 120(g_tTex1du4) DescriptorSet 0 + Decorate 123(g_tTex2df4) DescriptorSet 0 + Decorate 126(g_tTex2di4) DescriptorSet 0 + Decorate 129(g_tTex2du4) DescriptorSet 0 + Decorate 132(g_tTex3df4) DescriptorSet 0 + Decorate 135(g_tTex3di4) DescriptorSet 0 + Decorate 138(g_tTex3du4) DescriptorSet 0 + Decorate 141(g_tTexcdf4) DescriptorSet 0 + Decorate 144(g_tTexcdi4) DescriptorSet 0 + Decorate 147(g_tTexcdu4) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,51 +428,53 @@ gl_FragCoord origin is upper left 103: 97(fvec4) ConstantComposite 102 102 102 102 104: TypePointer Function 97(fvec4) 106: 26(int) Constant 1 - 110: TypeImage 6(float) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1df4): 111(ptr) Variable UniformConstant - 113: TypeImage 26(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1di4): 114(ptr) Variable UniformConstant - 116: TypeImage 43(int) 1D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex1du4): 117(ptr) Variable UniformConstant - 119: TypeImage 6(float) 2D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex2df4): 120(ptr) Variable UniformConstant - 122: TypeImage 26(int) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2di4): 123(ptr) Variable UniformConstant - 125: TypeImage 43(int) 2D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex2du4): 126(ptr) Variable UniformConstant - 128: TypeImage 6(float) 3D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex3df4): 129(ptr) Variable UniformConstant - 131: TypeImage 26(int) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3di4): 132(ptr) Variable UniformConstant - 134: TypeImage 43(int) 3D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex3du4): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdf4): 138(ptr) Variable UniformConstant - 140: TypeImage 26(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdi4): 141(ptr) Variable UniformConstant - 143: TypeImage 43(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdu4): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdf4a): 147(ptr) Variable UniformConstant - 149: TypeImage 26(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdi4a): 150(ptr) Variable UniformConstant - 152: TypeImage 43(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdu4a): 153(ptr) Variable UniformConstant + 108: TypePointer Output 98(PS_OUTPUT) +109(@entryPointOutput): 108(ptr) Variable Output + 112: TypeImage 6(float) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1df4): 113(ptr) Variable UniformConstant + 115: TypeImage 26(int) 1D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex1di4): 116(ptr) Variable UniformConstant + 118: TypeImage 43(int) 1D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex1du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2df4): 122(ptr) Variable UniformConstant + 124: TypeImage 26(int) 2D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex2di4): 125(ptr) Variable UniformConstant + 127: TypeImage 43(int) 2D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex2du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3df4): 131(ptr) Variable UniformConstant + 133: TypeImage 26(int) 3D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex3di4): 134(ptr) Variable UniformConstant + 136: TypeImage 43(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3du4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdf4): 140(ptr) Variable UniformConstant + 142: TypeImage 26(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdi4): 143(ptr) Variable UniformConstant + 145: TypeImage 43(int) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdu4): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 26(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 43(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -521,6 +530,7 @@ gl_FragCoord origin is upper left Store 105 103 107: 7(ptr) AccessChain 100(psout) 106 Store 107 102 - 108:98(PS_OUTPUT) Load 100(psout) - ReturnValue 108 + 110:98(PS_OUTPUT) Load 100(psout) + Store 109(@entryPointOutput) 110 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index a17e9743..5a7b7409 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -166,8 +166,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -363,8 +366,11 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Branch: Return with expression -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Sequence +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -391,14 +397,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 180 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -424,18 +430,19 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 144 "g_tTex1df4" - Name 147 "g_tTex1di4" - Name 150 "g_tTex1du4" - Name 153 "g_tTex2df4" - Name 156 "g_tTex2di4" - Name 159 "g_tTex2du4" - Name 162 "g_tTex3df4" - Name 165 "g_tTex3di4" - Name 168 "g_tTex3du4" - Name 171 "g_tTexcdf4" - Name 174 "g_tTexcdi4" - Name 177 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 146 "g_tTex1df4" + Name 149 "g_tTex1di4" + Name 152 "g_tTex1du4" + Name 155 "g_tTex2df4" + Name 158 "g_tTex2di4" + Name 161 "g_tTex2du4" + Name 164 "g_tTex3df4" + Name 167 "g_tTex3di4" + Name 170 "g_tTex3du4" + Name 173 "g_tTexcdf4" + Name 176 "g_tTexcdi4" + Name 179 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -448,19 +455,19 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4) DescriptorSet 0 - Decorate 144(g_tTex1df4) Binding 0 - Decorate 147(g_tTex1di4) DescriptorSet 0 - Decorate 150(g_tTex1du4) DescriptorSet 0 - Decorate 153(g_tTex2df4) DescriptorSet 0 - Decorate 156(g_tTex2di4) DescriptorSet 0 - Decorate 159(g_tTex2du4) DescriptorSet 0 - Decorate 162(g_tTex3df4) DescriptorSet 0 - Decorate 165(g_tTex3di4) DescriptorSet 0 - Decorate 168(g_tTex3du4) DescriptorSet 0 - Decorate 171(g_tTexcdf4) DescriptorSet 0 - Decorate 174(g_tTexcdi4) DescriptorSet 0 - Decorate 177(g_tTexcdu4) DescriptorSet 0 + Decorate 146(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1df4) Binding 0 + Decorate 149(g_tTex1di4) DescriptorSet 0 + Decorate 152(g_tTex1du4) DescriptorSet 0 + Decorate 155(g_tTex2df4) DescriptorSet 0 + Decorate 158(g_tTex2di4) DescriptorSet 0 + Decorate 161(g_tTex2du4) DescriptorSet 0 + Decorate 164(g_tTex3df4) DescriptorSet 0 + Decorate 167(g_tTex3di4) DescriptorSet 0 + Decorate 170(g_tTex3du4) DescriptorSet 0 + Decorate 173(g_tTexcdf4) DescriptorSet 0 + Decorate 176(g_tTexcdi4) DescriptorSet 0 + Decorate 179(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -534,42 +541,44 @@ gl_FragCoord origin is upper left 135: 103(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 103(fvec4) 138: 30(int) Constant 1 - 142: TypeImage 6(float) 1D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex1df4): 143(ptr) Variable UniformConstant - 145: TypeImage 30(int) 1D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex1di4): 146(ptr) Variable UniformConstant - 148: TypeImage 43(int) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1du4): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) 2D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex2df4): 152(ptr) Variable UniformConstant - 154: TypeImage 30(int) 2D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex2di4): 155(ptr) Variable UniformConstant - 157: TypeImage 43(int) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2du4): 158(ptr) Variable UniformConstant - 160: TypeImage 6(float) 3D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex3df4): 161(ptr) Variable UniformConstant - 163: TypeImage 30(int) 3D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex3di4): 164(ptr) Variable UniformConstant - 166: TypeImage 43(int) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3du4): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTexcdf4): 170(ptr) Variable UniformConstant - 172: TypeImage 30(int) Cube sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTexcdi4): 173(ptr) Variable UniformConstant - 175: TypeImage 43(int) Cube sampled format:Unknown - 176: TypePointer UniformConstant 175 - 177(g_tTexcdu4): 176(ptr) Variable UniformConstant + 140: TypePointer Output 130(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144: TypeImage 6(float) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1df4): 145(ptr) Variable UniformConstant + 147: TypeImage 30(int) 1D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex1di4): 148(ptr) Variable UniformConstant + 150: TypeImage 43(int) 1D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex1du4): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2df4): 154(ptr) Variable UniformConstant + 156: TypeImage 30(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex2di4): 157(ptr) Variable UniformConstant + 159: TypeImage 43(int) 2D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex2du4): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3df4): 163(ptr) Variable UniformConstant + 165: TypeImage 30(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3di4): 166(ptr) Variable UniformConstant + 168: TypeImage 43(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3du4): 169(ptr) Variable UniformConstant + 171: TypeImage 6(float) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdf4): 172(ptr) Variable UniformConstant + 174: TypeImage 30(int) Cube sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTexcdi4): 175(ptr) Variable UniformConstant + 177: TypeImage 43(int) Cube sampled format:Unknown + 178: TypePointer UniformConstant 177 + 179(g_tTexcdu4): 178(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -646,6 +655,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 132(psout) 138 Store 139 134 - 140:130(PS_OUTPUT) Load 132(psout) - ReturnValue 140 + 142:130(PS_OUTPUT) Load 132(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 4d9f8369..ba84224d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -345,8 +348,11 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Branch: Return with expression -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Sequence +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -373,14 +379,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 176 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 139 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -406,18 +412,19 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 142 "g_tTex3df4" - Name 145 "g_tTex3di4" - Name 148 "g_tTex3du4" - Name 151 "g_tTex1df4a" - Name 154 "g_tTex1di4a" - Name 157 "g_tTex1du4a" - Name 160 "g_tTex2df4a" - Name 163 "g_tTex2di4a" - Name 166 "g_tTex2du4a" - Name 169 "g_tTexcdf4a" - Name 172 "g_tTexcdi4a" - Name 175 "g_tTexcdu4a" + Name 139 "@entryPointOutput" + Name 144 "g_tTex3df4" + Name 147 "g_tTex3di4" + Name 150 "g_tTex3du4" + Name 153 "g_tTex1df4a" + Name 156 "g_tTex1di4a" + Name 159 "g_tTex1du4a" + Name 162 "g_tTex2df4a" + Name 165 "g_tTex2di4a" + Name 168 "g_tTex2du4a" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -431,18 +438,18 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex3df4) DescriptorSet 0 - Decorate 145(g_tTex3di4) DescriptorSet 0 - Decorate 148(g_tTex3du4) DescriptorSet 0 - Decorate 151(g_tTex1df4a) DescriptorSet 0 - Decorate 154(g_tTex1di4a) DescriptorSet 0 - Decorate 157(g_tTex1du4a) DescriptorSet 0 - Decorate 160(g_tTex2df4a) DescriptorSet 0 - Decorate 163(g_tTex2di4a) DescriptorSet 0 - Decorate 166(g_tTex2du4a) DescriptorSet 0 - Decorate 169(g_tTexcdf4a) DescriptorSet 0 - Decorate 172(g_tTexcdi4a) DescriptorSet 0 - Decorate 175(g_tTexcdu4a) DescriptorSet 0 + Decorate 144(g_tTex3df4) DescriptorSet 0 + Decorate 147(g_tTex3di4) DescriptorSet 0 + Decorate 150(g_tTex3du4) DescriptorSet 0 + Decorate 153(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1di4a) DescriptorSet 0 + Decorate 159(g_tTex1du4a) DescriptorSet 0 + Decorate 162(g_tTex2df4a) DescriptorSet 0 + Decorate 165(g_tTex2di4a) DescriptorSet 0 + Decorate 168(g_tTex2du4a) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -514,42 +521,44 @@ gl_FragCoord origin is upper left 133: 127(fvec4) ConstantComposite 132 132 132 132 134: TypePointer Function 127(fvec4) 136: 26(int) Constant 1 - 140: TypeImage 6(float) 3D sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTex3df4): 141(ptr) Variable UniformConstant - 143: TypeImage 26(int) 3D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex3di4): 144(ptr) Variable UniformConstant - 146: TypeImage 38(int) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3du4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) 1D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex1df4a): 150(ptr) Variable UniformConstant - 152: TypeImage 26(int) 1D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex1di4a): 153(ptr) Variable UniformConstant - 155: TypeImage 38(int) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1du4a): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) 2D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex2df4a): 159(ptr) Variable UniformConstant - 161: TypeImage 26(int) 2D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex2di4a): 162(ptr) Variable UniformConstant - 164: TypeImage 38(int) 2D array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTex2du4a): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdf4a): 168(ptr) Variable UniformConstant - 170: TypeImage 26(int) Cube array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTexcdi4a): 171(ptr) Variable UniformConstant - 173: TypeImage 38(int) Cube array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTexcdu4a): 174(ptr) Variable UniformConstant + 138: TypePointer Output 128(PS_OUTPUT) +139(@entryPointOutput): 138(ptr) Variable Output + 142: TypeImage 6(float) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3df4): 143(ptr) Variable UniformConstant + 145: TypeImage 26(int) 3D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex3di4): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) 3D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex3du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1df4a): 152(ptr) Variable UniformConstant + 154: TypeImage 26(int) 1D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex1di4a): 155(ptr) Variable UniformConstant + 157: TypeImage 38(int) 1D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex1du4a): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2df4a): 161(ptr) Variable UniformConstant + 163: TypeImage 26(int) 2D array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTex2di4a): 164(ptr) Variable UniformConstant + 166: TypeImage 38(int) 2D array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTex2du4a): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 26(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 38(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -626,6 +635,7 @@ gl_FragCoord origin is upper left Store 135 133 137: 7(ptr) AccessChain 130(psout) 136 Store 137 132 - 138:128(PS_OUTPUT) Load 130(psout) - ReturnValue 138 + 140:128(PS_OUTPUT) Load 130(psout) + Store 139(@entryPointOutput) 140 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index f4072068..9bed7964 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -124,8 +124,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -279,8 +282,11 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Branch: Return with expression -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Sequence +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -307,14 +313,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -334,21 +340,22 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 107 "g_tTex3df4" - Name 110 "g_tTex3di4" - Name 113 "g_tTex3du4" - Name 116 "g_tTexcdf4" - Name 119 "g_tTexcdi4" - Name 122 "g_tTexcdu4" - Name 125 "g_tTex1df4a" - Name 128 "g_tTex1di4a" - Name 131 "g_tTex1du4a" - Name 134 "g_tTex2df4a" - Name 137 "g_tTex2di4a" - Name 140 "g_tTex2du4a" - Name 143 "g_tTexcdf4a" - Name 146 "g_tTexcdi4a" - Name 149 "g_tTexcdu4a" + Name 104 "@entryPointOutput" + Name 109 "g_tTex3df4" + Name 112 "g_tTex3di4" + Name 115 "g_tTex3du4" + Name 118 "g_tTexcdf4" + Name 121 "g_tTexcdi4" + Name 124 "g_tTexcdu4" + Name 127 "g_tTex1df4a" + Name 130 "g_tTex1di4a" + Name 133 "g_tTex1du4a" + Name 136 "g_tTex2df4a" + Name 139 "g_tTex2di4a" + Name 142 "g_tTex2du4a" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -359,21 +366,21 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 107(g_tTex3df4) DescriptorSet 0 - Decorate 110(g_tTex3di4) DescriptorSet 0 - Decorate 113(g_tTex3du4) DescriptorSet 0 - Decorate 116(g_tTexcdf4) DescriptorSet 0 - Decorate 119(g_tTexcdi4) DescriptorSet 0 - Decorate 122(g_tTexcdu4) DescriptorSet 0 - Decorate 125(g_tTex1df4a) DescriptorSet 0 - Decorate 128(g_tTex1di4a) DescriptorSet 0 - Decorate 131(g_tTex1du4a) DescriptorSet 0 - Decorate 134(g_tTex2df4a) DescriptorSet 0 - Decorate 137(g_tTex2di4a) DescriptorSet 0 - Decorate 140(g_tTex2du4a) DescriptorSet 0 - Decorate 143(g_tTexcdf4a) DescriptorSet 0 - Decorate 146(g_tTexcdi4a) DescriptorSet 0 - Decorate 149(g_tTexcdu4a) DescriptorSet 0 + Decorate 109(g_tTex3df4) DescriptorSet 0 + Decorate 112(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 118(g_tTexcdf4) DescriptorSet 0 + Decorate 121(g_tTexcdi4) DescriptorSet 0 + Decorate 124(g_tTexcdu4) DescriptorSet 0 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 130(g_tTex1di4a) DescriptorSet 0 + Decorate 133(g_tTex1du4a) DescriptorSet 0 + Decorate 136(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 142(g_tTex2du4a) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -431,51 +438,53 @@ gl_FragCoord origin is upper left 98: 92(fvec4) ConstantComposite 97 97 97 97 99: TypePointer Function 92(fvec4) 101: 23(int) Constant 1 - 105: TypeImage 6(float) 3D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex3df4): 106(ptr) Variable UniformConstant - 108: TypeImage 23(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3di4): 109(ptr) Variable UniformConstant - 111: TypeImage 39(int) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) Cube sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTexcdf4): 115(ptr) Variable UniformConstant - 117: TypeImage 23(int) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdi4): 118(ptr) Variable UniformConstant - 120: TypeImage 39(int) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdu4): 121(ptr) Variable UniformConstant - 123: TypeImage 6(float) 1D array sampled format:Unknown - 124: TypePointer UniformConstant 123 -125(g_tTex1df4a): 124(ptr) Variable UniformConstant - 126: TypeImage 23(int) 1D array sampled format:Unknown - 127: TypePointer UniformConstant 126 -128(g_tTex1di4a): 127(ptr) Variable UniformConstant - 129: TypeImage 39(int) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1du4a): 130(ptr) Variable UniformConstant - 132: TypeImage 6(float) 2D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex2df4a): 133(ptr) Variable UniformConstant - 135: TypeImage 23(int) 2D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex2di4a): 136(ptr) Variable UniformConstant - 138: TypeImage 39(int) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2du4a): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTexcdf4a): 142(ptr) Variable UniformConstant - 144: TypeImage 23(int) Cube array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTexcdi4a): 145(ptr) Variable UniformConstant - 147: TypeImage 39(int) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdu4a): 148(ptr) Variable UniformConstant + 103: TypePointer Output 93(PS_OUTPUT) +104(@entryPointOutput): 103(ptr) Variable Output + 107: TypeImage 6(float) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3df4): 108(ptr) Variable UniformConstant + 110: TypeImage 23(int) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3di4): 111(ptr) Variable UniformConstant + 113: TypeImage 39(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdf4): 117(ptr) Variable UniformConstant + 119: TypeImage 23(int) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdi4): 120(ptr) Variable UniformConstant + 122: TypeImage 39(int) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdu4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1df4a): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1di4a): 129(ptr) Variable UniformConstant + 131: TypeImage 39(int) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1du4a): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2df4a): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 140: TypeImage 39(int) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2du4a): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 39(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -528,6 +537,7 @@ gl_FragCoord origin is upper left Store 100 98 102: 7(ptr) AccessChain 95(psout) 101 Store 102 97 - 103:93(PS_OUTPUT) Load 95(psout) - ReturnValue 103 + 105:93(PS_OUTPUT) Load 95(psout) + Store 104(@entryPointOutput) 105 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 81048321..b2dcaecc 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -130,8 +130,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -291,8 +294,11 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Branch: Return with expression -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Sequence +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -319,14 +325,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 158 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 110 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -346,21 +352,22 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 113 "g_tTex1df4" - Name 116 "g_tTex1di4" - Name 119 "g_tTex1du4" - Name 122 "g_tTex2df4" - Name 125 "g_tTex2di4" - Name 128 "g_tTex2du4" - Name 131 "g_tTex3df4" - Name 134 "g_tTex3di4" - Name 137 "g_tTex3du4" - Name 140 "g_tTexcdf4" - Name 143 "g_tTexcdi4" - Name 146 "g_tTexcdu4" - Name 149 "g_tTexcdf4a" - Name 152 "g_tTexcdi4a" - Name 155 "g_tTexcdu4a" + Name 110 "@entryPointOutput" + Name 115 "g_tTex1df4" + Name 118 "g_tTex1di4" + Name 121 "g_tTex1du4" + Name 124 "g_tTex2df4" + Name 127 "g_tTex2di4" + Name 130 "g_tTex2du4" + Name 133 "g_tTex3df4" + Name 136 "g_tTex3di4" + Name 139 "g_tTex3du4" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -370,22 +377,22 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 113(g_tTex1df4) DescriptorSet 0 - Decorate 113(g_tTex1df4) Binding 0 - Decorate 116(g_tTex1di4) DescriptorSet 0 - Decorate 119(g_tTex1du4) DescriptorSet 0 - Decorate 122(g_tTex2df4) DescriptorSet 0 - Decorate 125(g_tTex2di4) DescriptorSet 0 - Decorate 128(g_tTex2du4) DescriptorSet 0 - Decorate 131(g_tTex3df4) DescriptorSet 0 - Decorate 134(g_tTex3di4) DescriptorSet 0 - Decorate 137(g_tTex3du4) DescriptorSet 0 - Decorate 140(g_tTexcdf4) DescriptorSet 0 - Decorate 143(g_tTexcdi4) DescriptorSet 0 - Decorate 146(g_tTexcdu4) DescriptorSet 0 - Decorate 149(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdu4a) DescriptorSet 0 + Decorate 115(g_tTex1df4) DescriptorSet 0 + Decorate 115(g_tTex1df4) Binding 0 + Decorate 118(g_tTex1di4) DescriptorSet 0 + Decorate 121(g_tTex1du4) DescriptorSet 0 + Decorate 124(g_tTex2df4) DescriptorSet 0 + Decorate 127(g_tTex2di4) DescriptorSet 0 + Decorate 130(g_tTex2du4) DescriptorSet 0 + Decorate 133(g_tTex3df4) DescriptorSet 0 + Decorate 136(g_tTex3di4) DescriptorSet 0 + Decorate 139(g_tTex3du4) DescriptorSet 0 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -446,51 +453,53 @@ gl_FragCoord origin is upper left 104: 98(fvec4) ConstantComposite 103 103 103 103 105: TypePointer Function 98(fvec4) 107: 27(int) Constant 1 - 111: TypeImage 6(float) 1D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex1df4): 112(ptr) Variable UniformConstant - 114: TypeImage 27(int) 1D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex1di4): 115(ptr) Variable UniformConstant - 117: TypeImage 44(int) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) 2D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex2df4): 121(ptr) Variable UniformConstant - 123: TypeImage 27(int) 2D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex2di4): 124(ptr) Variable UniformConstant - 126: TypeImage 44(int) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2du4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) 3D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex3df4): 130(ptr) Variable UniformConstant - 132: TypeImage 27(int) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex3di4): 133(ptr) Variable UniformConstant - 135: TypeImage 44(int) 3D sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTex3du4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTexcdf4): 139(ptr) Variable UniformConstant - 141: TypeImage 27(int) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdi4): 142(ptr) Variable UniformConstant - 144: TypeImage 44(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdu4): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdf4a): 148(ptr) Variable UniformConstant - 150: TypeImage 27(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdi4a): 151(ptr) Variable UniformConstant - 153: TypeImage 44(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdu4a): 154(ptr) Variable UniformConstant + 109: TypePointer Output 99(PS_OUTPUT) +110(@entryPointOutput): 109(ptr) Variable Output + 113: TypeImage 6(float) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1df4): 114(ptr) Variable UniformConstant + 116: TypeImage 27(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1di4): 117(ptr) Variable UniformConstant + 119: TypeImage 44(int) 1D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex1du4): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2df4): 123(ptr) Variable UniformConstant + 125: TypeImage 27(int) 2D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex2di4): 126(ptr) Variable UniformConstant + 128: TypeImage 44(int) 2D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex2du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3df4): 132(ptr) Variable UniformConstant + 134: TypeImage 27(int) 3D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex3di4): 135(ptr) Variable UniformConstant + 137: TypeImage 44(int) 3D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex3du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 27(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 44(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 27(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 44(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -546,6 +555,7 @@ gl_FragCoord origin is upper left Store 106 104 108: 7(ptr) AccessChain 101(psout) 107 Store 108 103 - 109:99(PS_OUTPUT) Load 101(psout) - ReturnValue 109 + 111:99(PS_OUTPUT) Load 101(psout) + Store 110(@entryPointOutput) 111 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 375dfb96..f42074b8 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -175,8 +175,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -370,8 +373,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -387,14 +393,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 126 +// Id's are bound by 128 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 124 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -420,7 +426,8 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 125 "g_tTex1df4a" + Name 124 "@entryPointOutput" + Name 127 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -434,8 +441,8 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 125(g_tTex1df4a) DescriptorSet 0 - Decorate 125(g_tTex1df4a) Binding 1 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 127(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -507,7 +514,9 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 117 117 117 117 120: 27(int) Constant 1 121: TypePointer Function 6(float) -125(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123: TypePointer Output 113(PS_OUTPUT) +124(@entryPointOutput): 123(ptr) Variable Output +127(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -569,6 +578,7 @@ gl_FragCoord origin is upper left Store 119 118 122: 121(ptr) AccessChain 115(psout) 120 Store 122 117 - 123:113(PS_OUTPUT) Load 115(psout) - ReturnValue 123 + 125:113(PS_OUTPUT) Load 115(psout) + Store 124(@entryPointOutput) 125 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 30c4c7d7..403bfca1 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -223,8 +223,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -469,8 +472,11 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Branch: Return with expression -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Sequence +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -489,13 +495,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 161 +// Id's are bound by 163 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 159 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -527,7 +533,8 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 160 "g_tTex1df4a" + Name 159 "@entryPointOutput" + Name 162 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -544,8 +551,8 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 160(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1df4a) Binding 1 + Decorate 162(g_tTex1df4a) DescriptorSet 0 + Decorate 162(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -637,7 +644,9 @@ gl_FragCoord origin is upper left 153: 7(fvec4) ConstantComposite 152 152 152 152 155: 24(int) Constant 1 156: TypePointer Function 6(float) -160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 158: TypePointer Output 148(PS_OUTPUT) +159(@entryPointOutput): 158(ptr) Variable Output +162(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -717,6 +726,7 @@ gl_FragCoord origin is upper left Store 154 153 157: 156(ptr) AccessChain 150(psout) 155 Store 157 152 - 158:148(PS_OUTPUT) Load 150(psout) - ReturnValue 158 + 160:148(PS_OUTPUT) Load 150(psout) + Store 159(@entryPointOutput) 160 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 7e7f4561..54874f1a 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -215,8 +215,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -453,8 +456,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -473,13 +479,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 156 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -509,7 +515,8 @@ Shader version: 450 Name 148 "VS_OUTPUT" MemberName 148(VS_OUTPUT) 0 "Pos" Name 150 "vsout" - Name 157 "g_tTex1df4a" + Name 156 "@entryPointOutput" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -526,8 +533,8 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -617,7 +624,9 @@ Shader version: 450 151: 24(int) Constant 0 152: 6(float) Constant 0 153: 7(fvec4) ConstantComposite 152 152 152 152 -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 155: TypePointer Output 148(VS_OUTPUT) +156(@entryPointOutput): 155(ptr) Variable Output +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -695,6 +704,7 @@ Shader version: 450 Store 139(txval42) 147 154: 8(ptr) AccessChain 150(vsout) 151 Store 154 153 - 155:148(VS_OUTPUT) Load 150(vsout) - ReturnValue 155 + 157:148(VS_OUTPUT) Load 150(vsout) + Store 156(@entryPointOutput) 157 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index be5b7a03..f73d8cf6 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -193,8 +193,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -409,8 +412,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -429,13 +435,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -461,10 +467,11 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 142 "g_tTex1df4a" - Name 145 "g_tTexcdf4" - Name 148 "g_tTexcdi4" - Name 151 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -478,11 +485,11 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(g_tTex1df4a) DescriptorSet 0 - Decorate 142(g_tTex1df4a) Binding 1 - Decorate 145(g_tTexcdf4) DescriptorSet 0 - Decorate 148(g_tTexcdi4) DescriptorSet 0 - Decorate 151(g_tTexcdu4) DescriptorSet 0 + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -571,16 +578,18 @@ gl_FragCoord origin is upper left 135: 6(float) Constant 1065353216 136: 7(fvec4) ConstantComposite 135 135 135 135 138: TypePointer Function 6(float) -142(g_tTex1df4a): 11(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdf4): 144(ptr) Variable UniformConstant - 146: TypeImage 23(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdi4): 147(ptr) Variable UniformConstant - 149: TypeImage 38(int) Cube sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTexcdu4): 150(ptr) Variable UniformConstant + 140: TypePointer Output 132(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 23(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 38(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -642,6 +651,7 @@ gl_FragCoord origin is upper left Store 137 136 139: 138(ptr) AccessChain 134(psout) 24 Store 139 135 - 140:132(PS_OUTPUT) Load 134(psout) - ReturnValue 140 + 142:132(PS_OUTPUT) Load 134(psout) + Store 141(@entryPointOutput) 142 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index a152cb77..d6bc7643 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -130,8 +130,11 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Branch: Return with expression -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Sequence +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -280,8 +283,11 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Branch: Return with expression -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Sequence +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -297,14 +303,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 108 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 95 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -324,10 +330,11 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 96 "g_tTex1df4a" - Name 99 "g_tTexcdf4" - Name 102 "g_tTexcdi4" - Name 105 "g_tTexcdu4" + Name 95 "@entryPointOutput" + Name 98 "g_tTex1df4a" + Name 101 "g_tTexcdf4" + Name 104 "g_tTexcdi4" + Name 107 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -338,11 +345,11 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 96(g_tTex1df4a) DescriptorSet 0 - Decorate 96(g_tTex1df4a) Binding 1 - Decorate 99(g_tTexcdf4) DescriptorSet 0 - Decorate 102(g_tTexcdi4) DescriptorSet 0 - Decorate 105(g_tTexcdu4) DescriptorSet 0 + Decorate 98(g_tTex1df4a) DescriptorSet 0 + Decorate 98(g_tTex1df4a) Binding 1 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 104(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -400,16 +407,18 @@ gl_FragCoord origin is upper left 89: 6(float) Constant 1065353216 90: 7(fvec4) ConstantComposite 89 89 89 89 92: TypePointer Function 6(float) - 96(g_tTex1df4a): 11(ptr) Variable UniformConstant - 97: TypeImage 6(float) Cube array sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdf4): 98(ptr) Variable UniformConstant - 100: TypeImage 26(int) Cube array sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTexcdi4): 101(ptr) Variable UniformConstant - 103: TypeImage 40(int) Cube array sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdu4): 104(ptr) Variable UniformConstant + 94: TypePointer Output 86(PS_OUTPUT) +95(@entryPointOutput): 94(ptr) Variable Output + 98(g_tTex1df4a): 11(ptr) Variable UniformConstant + 99: TypeImage 6(float) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 102: TypeImage 26(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTexcdi4): 103(ptr) Variable UniformConstant + 105: TypeImage 40(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -453,6 +462,7 @@ gl_FragCoord origin is upper left Store 91 90 93: 92(ptr) AccessChain 88(psout) 27 Store 93 89 - 94:86(PS_OUTPUT) Load 88(psout) - ReturnValue 94 + 96:86(PS_OUTPUT) Load 88(psout) + Store 95(@entryPointOutput) 96 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 1b675b22..9ed0650f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -139,8 +139,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -298,8 +301,11 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Branch: Return with expression -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Sequence +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -315,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 133 +// Id's are bound by 135 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -348,7 +354,8 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 132 "g_tTex1df4" + Name 131 "@entryPointOutput" + Name 134 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -362,8 +369,8 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 132(g_tTex1df4) DescriptorSet 0 - Decorate 132(g_tTex1df4) Binding 0 + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -442,7 +449,9 @@ gl_FragCoord origin is upper left 125: 7(fvec4) ConstantComposite 118 118 118 118 127: 26(int) Constant 1 128: TypePointer Function 6(float) - 132(g_tTex1df4): 11(ptr) Variable UniformConstant + 130: TypePointer Output 121(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output + 134(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -504,6 +513,7 @@ gl_FragCoord origin is upper left Store 126 125 129: 128(ptr) AccessChain 123(psout) 127 Store 129 118 - 130:121(PS_OUTPUT) Load 123(psout) - ReturnValue 130 + 132:121(PS_OUTPUT) Load 123(psout) + Store 131(@entryPointOutput) 132 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index dbdc7778..38676721 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -169,8 +169,11 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Branch: Return with expression -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Sequence +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -362,8 +365,11 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Branch: Return with expression -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Sequence +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) @@ -383,13 +389,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 155 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -421,8 +427,9 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 156 "g_sSamp2d" - Name 157 "g_tTex1df4a" + Name 155 "@entryPointOutput" + Name 158 "g_sSamp2d" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -439,9 +446,9 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 156(g_sSamp2d) DescriptorSet 0 - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 + Decorate 158(g_sSamp2d) DescriptorSet 0 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -529,8 +536,10 @@ gl_FragCoord origin is upper left 149: 7(fvec4) ConstantComposite 148 148 148 148 151: 23(int) Constant 1 152: TypePointer Function 6(float) - 156(g_sSamp2d): 15(ptr) Variable UniformConstant -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 154: TypePointer Output 144(PS_OUTPUT) +155(@entryPointOutput): 154(ptr) Variable Output + 158(g_sSamp2d): 15(ptr) Variable UniformConstant +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -610,6 +619,7 @@ gl_FragCoord origin is upper left Store 150 149 153: 152(ptr) AccessChain 146(psout) 151 Store 153 148 - 154:144(PS_OUTPUT) Load 146(psout) - ReturnValue 154 + 156:144(PS_OUTPUT) Load 146(psout) + Store 155(@entryPointOutput) 156 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 0a55d855..aafcb825 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -161,8 +161,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -345,8 +348,11 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Branch: Return with expression -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -365,13 +371,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 156 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" + EntryPoint Vertex 4 "main" 152 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -401,7 +407,8 @@ Shader version: 450 Name 144 "VS_OUTPUT" MemberName 144(VS_OUTPUT) 0 "Pos" Name 146 "vsout" - Name 153 "g_tTex1df4a" + Name 152 "@entryPointOutput" + Name 155 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -418,8 +425,8 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord - Decorate 153(g_tTex1df4a) DescriptorSet 0 - Decorate 153(g_tTex1df4a) Binding 1 + Decorate 155(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -505,7 +512,9 @@ Shader version: 450 147: 23(int) Constant 0 148: 6(float) Constant 0 149: 7(fvec4) ConstantComposite 148 148 148 148 -153(g_tTex1df4a): 11(ptr) Variable UniformConstant + 151: TypePointer Output 144(VS_OUTPUT) +152(@entryPointOutput): 151(ptr) Variable Output +155(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -583,6 +592,7 @@ Shader version: 450 Store 135(txval42) 143 150: 8(ptr) AccessChain 146(vsout) 147 Store 150 149 - 151:144(VS_OUTPUT) Load 146(vsout) - ReturnValue 151 + 153:144(VS_OUTPUT) Load 146(vsout) + Store 152(@entryPointOutput) 153 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index a7b54f99..2dc61c75 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -157,8 +157,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -337,8 +340,11 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Branch: Return with expression -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -357,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 148 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -389,10 +395,11 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 138 "g_tTex1df4a" - Name 141 "g_tTexcdf4" - Name 144 "g_tTexcdi4" - Name 147 "g_tTexcdu4" + Name 137 "@entryPointOutput" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -406,11 +413,11 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 138(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1df4a) Binding 1 - Decorate 141(g_tTexcdf4) DescriptorSet 0 - Decorate 144(g_tTexcdi4) DescriptorSet 0 - Decorate 147(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTex1df4a) Binding 1 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -495,16 +502,18 @@ gl_FragCoord origin is upper left 131: 6(float) Constant 1065353216 132: 7(fvec4) ConstantComposite 131 131 131 131 134: TypePointer Function 6(float) -138(g_tTex1df4a): 11(ptr) Variable UniformConstant - 139: TypeImage 6(float) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdf4): 140(ptr) Variable UniformConstant - 142: TypeImage 22(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdi4): 143(ptr) Variable UniformConstant - 145: TypeImage 37(int) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdu4): 146(ptr) Variable UniformConstant + 136: TypePointer Output 128(PS_OUTPUT) +137(@entryPointOutput): 136(ptr) Variable Output +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 22(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -566,6 +575,7 @@ gl_FragCoord origin is upper left Store 133 132 135: 134(ptr) AccessChain 130(psout) 23 Store 135 131 - 136:128(PS_OUTPUT) Load 130(psout) - ReturnValue 136 + 138:128(PS_OUTPUT) Load 130(psout) + Store 137(@entryPointOutput) 138 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index b37c00c7..bc3c4ae2 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -112,8 +112,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -241,8 +244,11 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Branch: Return with expression -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Sequence +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) @@ -255,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 105 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -281,7 +287,8 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 104 "g_tTex1df4a" + Name 103 "@entryPointOutput" + Name 106 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -292,8 +299,8 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -359,7 +366,9 @@ gl_FragCoord origin is upper left 97: 6(float) Constant 1065353216 98: 7(fvec4) ConstantComposite 97 97 97 97 100: TypePointer Function 6(float) -104(g_tTex1df4a): 11(ptr) Variable UniformConstant + 102: TypePointer Output 94(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output +106(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -403,6 +412,7 @@ gl_FragCoord origin is upper left Store 99 98 101: 100(ptr) AccessChain 96(psout) 40 Store 101 97 - 102:94(PS_OUTPUT) Load 96(psout) - ReturnValue 102 + 104:94(PS_OUTPUT) Load 96(psout) + Store 103(@entryPointOutput) 104 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 58ec350a..470556ed 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -19,8 +19,11 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Branch: Return with expression -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Branch: Return 0:? Linker Objects @@ -47,18 +50,21 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Branch: Return with expression -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 23 +// Id's are bound by 25 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 22 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -66,6 +72,7 @@ gl_FragCoord origin is upper left Name 12 "PS_OUTPUT" MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" + Name 22 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -77,13 +84,16 @@ gl_FragCoord origin is upper left 17: 10(float) Constant 1065353216 18: 11(fvec4) ConstantComposite 17 17 17 17 19: TypePointer Function 11(fvec4) + 21: TypePointer Output 12(PS_OUTPUT) +22(@entryPointOutput): 21(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function 20: 19(ptr) AccessChain 14(ps_output) 16 Store 20 18 - 21:12(PS_OUTPUT) Load 14(ps_output) - ReturnValue 21 + 23:12(PS_OUTPUT) Load 14(ps_output) + Store 22(@entryPointOutput) 23 + Return FunctionEnd 6(MyFunc(): 2 Function None 3 7: Label diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index db8e3112..d4309427 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -6,9 +6,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 sine (global 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects @@ -22,31 +25,38 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence -0:3 Branch: Return with expression -0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 sine (global 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 13 +// Id's are bound by 15 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "input" + Name 9 "@entryPointOutput" + Name 11 "input" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Input 7(fvec4) - 9(input): 8(ptr) Variable Input + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(input): 10(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 10: 7(fvec4) Load 9(input) - 11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10 - ReturnValue 11 + 12: 7(fvec4) Load 11(input) + 13: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 12 + Store 9(@entryPointOutput) 13 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index cb2a4913..e5fbf654 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -15,8 +15,11 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Branch: Return with expression -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) @@ -41,28 +44,32 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Branch: Return with expression -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 19 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 22 "TestTexture" - Name 24 "TestUF" - Decorate 22(TestTexture) DescriptorSet 0 + Name 19 "@entryPointOutput" + Name 24 "TestTexture" + Name 26 "TestUF" + Decorate 24(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -75,16 +82,19 @@ gl_FragCoord origin is upper left 14: 6(float) Constant 1065353216 15: 7(fvec4) ConstantComposite 13 13 13 14 16: TypePointer Function 7(fvec4) - 20: TypeImage 6(float) 2D sampled format:Unknown - 21: TypePointer UniformConstant 20 - 22(TestTexture): 21(ptr) Variable UniformConstant - 23: TypePointer UniformConstant 7(fvec4) - 24(TestUF): 23(ptr) Variable UniformConstant + 18: TypePointer Output 8(PS_OUTPUT) +19(@entryPointOutput): 18(ptr) Variable Output + 22: TypeImage 6(float) 2D sampled format:Unknown + 23: TypePointer UniformConstant 22 + 24(TestTexture): 23(ptr) Variable UniformConstant + 25: TypePointer UniformConstant 7(fvec4) + 26(TestUF): 25(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function 17: 16(ptr) AccessChain 10(psout) 12 Store 17 15 - 18:8(PS_OUTPUT) Load 10(psout) - ReturnValue 18 + 20:8(PS_OUTPUT) Load 10(psout) + Store 19(@entryPointOutput) 20 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index a4cd170b..fed3a893 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -22,8 +22,11 @@ gl_FragCoord origin is upper left 0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:40 Constant: 0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:42 'input' (in 4-component vector of float) +0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) @@ -54,8 +57,11 @@ gl_FragCoord origin is upper left 0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) 0:40 Constant: 0:40 7 (const int) -0:42 Branch: Return with expression -0:42 'input' (in 4-component vector of float) +0:42 Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:42 'input' (in 4-component vector of float) +0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) @@ -65,12 +71,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 34 + EntryPoint Fragment 4 "PixelShaderFunction" 34 36 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -89,21 +95,22 @@ gl_FragCoord origin is upper left MemberName 25 6 "ff3" MemberName 25 7 "ff4" Name 27 "s4" - Name 34 "input" - Name 37 "myS" - MemberName 37(myS) 0 "b" - MemberName 37(myS) 1 "c" - MemberName 37(myS) 2 "a" - MemberName 37(myS) 3 "d" - Name 39 "s1" - Name 42 "ff5" - Name 43 "ff6" + Name 34 "@entryPointOutput" + Name 36 "input" + Name 39 "myS" + MemberName 39(myS) 0 "b" + MemberName 39(myS) 1 "c" + MemberName 39(myS) 2 "a" + MemberName 39(myS) 3 "d" + Name 41 "s1" + Name 44 "ff5" + Name 45 "ff6" MemberDecorate 25 4 BuiltIn FrontFacing MemberDecorate 25 7 BuiltIn FragCoord - Decorate 42(ff5) Offset 20 - Decorate 42(ff5) Binding 5 - Decorate 43(ff6) Offset 36 - Decorate 43(ff6) Binding 8 + Decorate 44(ff5) Offset 20 + Decorate 44(ff5) Binding 5 + Decorate 45(ff6) Offset 36 + Decorate 45(ff6) Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -123,15 +130,17 @@ gl_FragCoord origin is upper left 27(s4): 26(ptr) Variable Private 28: 22(int) Constant 7 29: TypePointer Private 18(fvec4) - 33: TypePointer Input 18(fvec4) - 34(input): 33(ptr) Variable Input - 37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 38: TypePointer Private 37(myS) - 39(s1): 38(ptr) Variable Private - 40: TypeVector 17(float) 3 - 41: TypePointer Private 40(fvec3) - 42(ff5): 41(ptr) Variable Private - 43(ff6): 41(ptr) Variable Private + 33: TypePointer Output 18(fvec4) +34(@entryPointOutput): 33(ptr) Variable Output + 35: TypePointer Input 18(fvec4) + 36(input): 35(ptr) Variable Input + 39(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 40: TypePointer Private 39(myS) + 41(s1): 40(ptr) Variable Private + 42: TypeVector 17(float) 3 + 43: TypePointer Private 42(fvec3) + 44(ff5): 43(ptr) Variable Private + 45(ff6): 43(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -145,6 +154,7 @@ gl_FragCoord origin is upper left 31: 18(fvec4) Load 30 32: 29(ptr) AccessChain 21(s2) 23 Store 32 31 - 35: 18(fvec4) Load 34(input) - ReturnValue 35 + 37: 18(fvec4) Load 36(input) + Store 34(@entryPointOutput) 37 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index 7c54f9c3..ba5ce50d 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -119,8 +119,11 @@ gl_FragCoord origin is upper left 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) 0:51 'input' (in 4-component vector of float) -0:54 Branch: Return with expression -0:54 'input' (in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:54 'input' (in 4-component vector of float) +0:54 Branch: Return 0:? Linker Objects @@ -247,23 +250,27 @@ gl_FragCoord origin is upper left 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) 0:51 'input' (in 4-component vector of float) -0:54 Branch: Return with expression -0:54 'input' (in 4-component vector of float) +0:54 Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:54 'input' (in 4-component vector of float) +0:54 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 82 +// Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 + EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 81 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "c" Name 21 "input" Name 41 "d" + Name 81 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -278,6 +285,8 @@ gl_FragCoord origin is upper left 46: 18(float) Constant 1073741824 51: 18(float) Constant 1077936128 58: 18(float) Constant 1082130432 + 80: TypePointer Output 19(fvec4) +81(@entryPointOutput): 80(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 9: 6(int) Load 8(c) @@ -370,6 +379,7 @@ gl_FragCoord origin is upper left Store 21(input) 78 Branch 71 71: Label - 80: 19(fvec4) Load 21(input) - ReturnValue 80 + 82: 19(fvec4) Load 21(input) + Store 81(@entryPointOutput) 82 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 74611993..e3c8baad 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -239,9 +239,12 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Branch: Return with expression -0:45 Constant: -0:45 0.000000 +0:45 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return 0:? Linker Objects @@ -488,20 +491,23 @@ gl_FragCoord origin is upper left 0:? 10.000000 0:? 11.000000 0:? 12.000000 -0:45 Branch: Return with expression -0:45 Constant: -0:45 0.000000 +0:45 Sequence +0:45 move second child to first child (temp float) +0:? '@entryPointOutput' (out float) +0:45 Constant: +0:45 0.000000 +0:45 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 147 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 145 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "r00" @@ -532,6 +538,7 @@ gl_FragCoord origin is upper left Name 131 "r62" Name 136 "r65" Name 141 "r66" + Name 145 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -644,6 +651,8 @@ gl_FragCoord origin is upper left 140: TypePointer Function 139 142: 7(fvec4) ConstantComposite 112 113 114 116 143: 139 ConstantComposite 14 137 142 + 144: TypePointer Output 6(float) +145(@entryPointOutput): 144(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -702,5 +711,6 @@ gl_FragCoord origin is upper left Store 131(r62) 133 Store 136(r65) 138 Store 141(r66) 143 - ReturnValue 106 + Store 145(@entryPointOutput) 106 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 08488cea..3d2ba925 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -13,8 +13,11 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Branch: Return with expression -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -50,8 +53,11 @@ gl_FragCoord origin is upper left 0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence -0:3 Branch: Return with expression -0:3 'input' (in 4-component vector of float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -71,15 +77,16 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 39 +// Id's are bound by 41 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 14 + EntryPoint Fragment 4 "PixelShaderFunction" 14 22 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 14 "input" + Name 22 "@entryPointOutput" 2: TypeVoid 3: TypeFunction 2 11: TypeFloat 32 @@ -88,7 +95,9 @@ gl_FragCoord origin is upper left 14(input): 13(ptr) Variable Input 17: TypeBool 18: TypeVector 17(bool) 4 - 28: 17(bool) ConstantFalse + 21: TypePointer Output 12(fvec4) +22(@entryPointOutput): 21(ptr) Variable Output + 30: 17(bool) ConstantFalse 4(PixelShaderFunction): 2 Function None 3 5: Label Branch 6 @@ -102,43 +111,44 @@ gl_FragCoord origin is upper left 20: 17(bool) Any 19 BranchConditional 20 7 8 7: Label - 21: 12(fvec4) Load 14(input) - ReturnValue 21 + 23: 12(fvec4) Load 14(input) + Store 22(@entryPointOutput) 23 + Return 9: Label Branch 6 8: Label - Branch 23 - 23: Label - LoopMerge 25 26 None - Branch 27 - 27: Label - BranchConditional 28 24 25 - 24: Label - Branch 26 - 26: Label - Branch 23 + Branch 25 25: Label + LoopMerge 27 28 None Branch 29 29: Label - LoopMerge 31 32 None - Branch 33 - 33: Label - BranchConditional 28 30 31 - 30: Label - Branch 32 - 32: Label - Branch 29 + BranchConditional 30 26 27 + 26: Label + Branch 28 + 28: Label + Branch 25 + 27: Label + Branch 31 31: Label - Branch 34 - 34: Label - LoopMerge 36 37 None - Branch 38 - 38: Label - BranchConditional 28 35 36 - 35: Label - Branch 37 - 37: Label + LoopMerge 33 34 None + Branch 35 + 35: Label + BranchConditional 30 32 33 + 32: Label Branch 34 + 34: Label + Branch 31 + 33: Label + Branch 36 36: Label + LoopMerge 38 39 None + Branch 40 + 40: Label + BranchConditional 30 37 38 + 37: Label + Branch 39 + 39: Label + Branch 36 + 38: Label Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 2347ace5..297730e9 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -13,7 +13,7 @@ Linked fragment stage: Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" + EntryPoint Fragment 5663 "main" 4045 ExecutionMode 5663 OriginUpperLeft Decorate 4727 DescriptorSet 0 Decorate 4727 Binding 0 @@ -128,6 +128,8 @@ Linked fragment stage: 138: 13(float) Constant 1065353216 1284: 29(fvec4) ConstantComposite 138 138 138 138 650: TypePointer Function 13(float) + 1670: TypePointer Output 1032(struct) + 4045: 1670(ptr) Variable Output 5663: 8 Function None 1282 24915: Label 5830: 1972(ptr) Variable Function @@ -208,6 +210,7 @@ Linked fragment stage: Store 20158 1284 19657: 650(ptr) AccessChain 5072 2574 Store 19657 138 - 21536:1032(struct) Load 5072 - ReturnValue 21536 + 17934:1032(struct) Load 5072 + Store 4045 17934 + Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index 3c1e9e92..fe4d1b05 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 185 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -59,9 +59,10 @@ Linked fragment stage: MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 180 "g_sSamp2d" - Name 181 "g_sSamp2D_b" - Name 182 "g_tTex1df4a" + Name 180 "@entryPointOutput" + Name 182 "g_sSamp2d" + Name 183 "g_sSamp2D_b" + Name 184 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -78,10 +79,10 @@ Linked fragment stage: Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 180(g_sSamp2d) DescriptorSet 0 - Decorate 181(g_sSamp2D_b) DescriptorSet 0 - Decorate 182(g_tTex1df4a) DescriptorSet 0 - Decorate 182(g_tTex1df4a) Binding 1 + Decorate 182(g_sSamp2d) DescriptorSet 0 + Decorate 183(g_sSamp2D_b) DescriptorSet 0 + Decorate 184(g_tTex1df4a) DescriptorSet 0 + Decorate 184(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -181,9 +182,11 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 180(g_sSamp2d): 44(ptr) Variable UniformConstant -181(g_sSamp2D_b): 44(ptr) Variable UniformConstant -182(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(PS_OUTPUT) +180(@entryPointOutput): 179(ptr) Variable Output + 182(g_sSamp2d): 44(ptr) Variable UniformConstant +183(g_sSamp2D_b): 44(ptr) Variable UniformConstant +184(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -288,6 +291,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 179:171(PS_OUTPUT) Load 173(psout) - ReturnValue 179 + 181:171(PS_OUTPUT) Load 173(psout) + Store 180(@entryPointOutput) 181 + Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index a0f896c3..d7f3003e 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 185 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Decorate 41 DescriptorSet 0 Decorate 41 Binding 0 @@ -31,10 +31,10 @@ Linked fragment stage: Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 MemberDecorate 171 1 BuiltIn FragDepth - Decorate 180 DescriptorSet 0 - Decorate 181 DescriptorSet 0 Decorate 182 DescriptorSet 0 - Decorate 182 Binding 1 + Decorate 183 DescriptorSet 0 + Decorate 184 DescriptorSet 0 + Decorate 184 Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -134,9 +134,11 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 180: 44(ptr) Variable UniformConstant - 181: 44(ptr) Variable UniformConstant - 182: 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(struct) + 180: 179(ptr) Variable Output + 182: 44(ptr) Variable UniformConstant + 183: 44(ptr) Variable UniformConstant + 184: 40(ptr) Variable UniformConstant 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function @@ -241,6 +243,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173 10 Store 178 174 - 179: 171(struct) Load 173 - ReturnValue 179 + 181: 171(struct) Load 173 + Store 180 181 + Return FunctionEnd diff --git a/Test/hlsl.entry-out.frag b/Test/hlsl.entry-out.frag new file mode 100644 index 00000000..72389914 --- /dev/null +++ b/Test/hlsl.entry-out.frag @@ -0,0 +1,12 @@ +struct OutParam { + float2 v; + int2 i; +}; + +float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2) : COLOR0 +{ + out1 = input; + out2.v = 2.0; + out2.i = 3; + return out1; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 070089c5..516f434a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1442" -#define GLSLANG_DATE "26-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1444" +#define GLSLANG_DATE "28-Aug-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2e51bb48..8c9b5558 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -83,6 +83,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.constructexpr.frag", "main"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, + {"hlsl.entry-out.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2b5d6c0f..7ca93d07 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -55,7 +55,8 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), - afterEOF(false) + afterEOF(false), + entryPointOutput(nullptr) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms linkage = new TIntermAggregate; @@ -754,9 +755,20 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); if (inEntrypoint) { - // parameters are actually shader-level inputs - for (int i = 0; i < function.getParamCount(); i++) - function[i].type->getQualifier().storage = EvqVaryingIn; + // in parameters are actually shader-scoped inputs (in) + for (int i = 0; i < function.getParamCount(); i++) { + if (function[i].type->getQualifier().storage == EvqIn || + function[i].type->getQualifier().storage == EvqConstReadOnly) + function[i].type->getQualifier().storage = EvqVaryingIn; + else + function[i].type->getQualifier().storage = EvqVaryingOut; + } + + // return value is actually shader-scoped output (out) + if (function.getType().getBasicType() != EbtVoid) { + entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); + entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + } } // @@ -805,17 +817,36 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { + TIntermTyped* converted = value; + if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { - TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); if (converted) { return intermediate.addBranch(EOpReturn, converted, loc); } else { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - return intermediate.addBranch(EOpReturn, value, loc); + converted = value; } + } + + // The entry point needs to send any return value to the entry-point output instead. + // So, a subtree is built up, as a two-part sequence, with the first part being an + // assignment subtree, and the second part being a return with no value. + // + // Otherwise, for a non entry point, just return a return statement. + if (inEntrypoint) { + assert(entryPointOutput != nullptr); // should have been error tested at the beginning + TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), + entryPointOutput->getType()); + TIntermNode* returnSequence = intermediate.addAssign(EOpAssign, left, converted, loc); + returnSequence = intermediate.makeAggregate(returnSequence); + returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc)); + returnSequence->getAsAggregate()->setOperator(EOpSequence); + + return returnSequence; } else return intermediate.addBranch(EOpReturn, value, loc); } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 659ec4a7..4f8a2e9a 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -196,6 +196,7 @@ protected: TString currentCaller; // name of last function body entered (not valid when at global scope) TIdSetType inductiveLoopIds; TVector needsIndexLimitationChecking; + TVariable* entryPointOutput; // // Geometry shader input arrays: From 6f220c0fd18f597d0319f91e42abd4df7e785037 Mon Sep 17 00:00:00 2001 From: Dan Baker Date: Mon, 29 Aug 2016 15:56:55 -0400 Subject: [PATCH 098/217] HLSL: Setting SV_DEPTHGREATEREQUAL and SV_DEPTHLESSEQUAL to EbvFragDepth for now --- hlsl/hlslParseHelper.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 8e87c6e2..efa8b2ab 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2359,14 +2359,14 @@ void HlslParseContext::handleSemantic(TType& type, const TString& semantic) type.getQualifier().builtIn = EbvTessCoord; else if (semanticUpperCase == "SV_DEPTH") type.getQualifier().builtIn = EbvFragDepth; - - + //TODO, these need to get refined to be more specific + else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") + type.getQualifier().builtIn = EbvFragDepth; + else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") + type.getQualifier().builtIn = EbvFragDepth; //not supported or not trivial //else if( semanticUpperCase == "SV_STENCILREF") - // type.getQualifier().builtIn = gl_FragStencilRef - //else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") - // type.getQualifier().builtIn = ?? - //else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") + // type.getQualifier().builtIn = gl_FragStencilRef // type.getQualifier().builtIn = ?? //else if( semanticUpperCase == "SV_COVERAGE") // type.getQualifier().builtIn = ?? From 510d83b384a3f61b9f0319f5b86eff3f7c06a6d2 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 29 Aug 2016 16:34:12 -0600 Subject: [PATCH 099/217] HLSL: Create test results for the previous commits. --- Test/baseResults/hlsl.array.frag.out | 46 ++- Test/baseResults/hlsl.assoc.frag.out | 65 +-- Test/baseResults/hlsl.attribute.frag.out | 4 +- Test/baseResults/hlsl.buffer.frag.out | 9 +- .../hlsl.calculatelod.dx10.frag.out | 29 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 28 +- Test/baseResults/hlsl.cast.frag.out | 13 +- Test/baseResults/hlsl.conditional.frag.out | 33 +- Test/baseResults/hlsl.constructexpr.frag.out | 25 +- Test/baseResults/hlsl.discard.frag.out | 17 +- Test/baseResults/hlsl.doLoop.frag.out | 17 +- Test/baseResults/hlsl.entry-out.frag.out | 9 +- Test/baseResults/hlsl.float4.frag.out | 5 +- Test/baseResults/hlsl.forLoop.frag.out | 57 +-- .../hlsl.gather.array.dx10.frag.out | 29 +- .../hlsl.gather.basic.dx10.frag.out | 29 +- .../hlsl.gather.basic.dx10.vert.out | 26 +- .../hlsl.gather.offset.dx10.frag.out | 29 +- .../hlsl.gather.offsetarray.dx10.frag.out | 29 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 29 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 29 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 29 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 29 +- .../hlsl.getdimensions.dx10.frag.out | 29 +- .../hlsl.getdimensions.dx10.vert.out | 26 +- .../hlsl.getsampleposition.dx10.frag.out | 28 +- Test/baseResults/hlsl.if.frag.out | 81 ++-- Test/baseResults/hlsl.init.frag.out | 9 +- Test/baseResults/hlsl.init2.frag.out | 25 +- Test/baseResults/hlsl.inoutquals.frag.out | 29 +- Test/baseResults/hlsl.intrinsics.comp.out | 25 +- .../hlsl.intrinsics.double.frag.out | 57 +-- .../hlsl.intrinsics.evalfns.frag.out | 49 ++- .../hlsl.intrinsics.f1632.frag.out | 8 +- Test/baseResults/hlsl.intrinsics.frag.out | 376 +++++++++--------- Test/baseResults/hlsl.intrinsics.lit.frag.out | 35 +- .../hlsl.intrinsics.negative.comp.out | 16 +- .../hlsl.intrinsics.negative.frag.out | 44 +- .../hlsl.intrinsics.negative.vert.out | 16 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 29 +- .../baseResults/hlsl.load.array.dx10.frag.out | 29 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 29 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 26 +- .../hlsl.load.buffer.dx10.frag.out | 29 +- .../hlsl.load.offset.dx10.frag.out | 29 +- .../hlsl.load.offsetarray.dx10.frag.out | 29 +- Test/baseResults/hlsl.max.frag.out | 18 +- .../baseResults/hlsl.numericsuffixes.frag.out | 29 +- Test/baseResults/hlsl.overload.frag.out | 9 +- Test/baseResults/hlsl.pp.line.frag.out | 29 +- Test/baseResults/hlsl.precedence.frag.out | 48 ++- Test/baseResults/hlsl.precedence2.frag.out | 52 +-- Test/baseResults/hlsl.precise.frag.out | 25 +- Test/baseResults/hlsl.promotions.frag.out | 25 +- .../hlsl.sample.array.dx10.frag.out | 29 +- .../hlsl.sample.basic.dx10.frag.out | 29 +- .../hlsl.sample.offset.dx10.frag.out | 29 +- .../hlsl.sample.offsetarray.dx10.frag.out | 29 +- .../hlsl.samplebias.array.dx10.frag.out | 29 +- .../hlsl.samplebias.basic.dx10.frag.out | 29 +- .../hlsl.samplebias.offset.dx10.frag.out | 29 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 29 +- .../hlsl.samplecmp.array.dx10.frag.out | 29 +- .../hlsl.samplecmp.basic.dx10.frag.out | 29 +- .../hlsl.samplecmp.offset.dx10.frag.out | 29 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 29 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 29 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 29 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 29 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 29 +- .../hlsl.samplegrad.array.dx10.frag.out | 29 +- .../hlsl.samplegrad.basic.dx10.frag.out | 29 +- .../hlsl.samplegrad.basic.dx10.vert.out | 26 +- .../hlsl.samplegrad.offset.dx10.frag.out | 29 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 29 +- .../hlsl.samplelevel.array.dx10.frag.out | 29 +- .../hlsl.samplelevel.basic.dx10.frag.out | 29 +- .../hlsl.samplelevel.basic.dx10.vert.out | 26 +- .../hlsl.samplelevel.offset.dx10.frag.out | 29 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 29 +- Test/baseResults/hlsl.scope.frag.out | 4 +- Test/baseResults/hlsl.semicolons.frag.out | 25 +- Test/baseResults/hlsl.sin.frag.out | 9 +- Test/baseResults/hlsl.stringtoken.frag.out | 25 +- Test/baseResults/hlsl.struct.frag.out | 22 +- Test/baseResults/hlsl.switch.frag.out | 79 ++-- Test/baseResults/hlsl.void.frag.out | 4 +- Test/baseResults/hlsl.whileLoop.frag.out | 17 +- ...emap.hlsl.sample.basic.everything.frag.out | 1 + .../remap.hlsl.sample.basic.none.frag.out | 1 + .../remap.hlsl.sample.basic.strip.frag.out | 1 + glslang/Include/revision.h | 2 +- 92 files changed, 1471 insertions(+), 1370 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 5c519ee5..4d075111 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -4,8 +4,8 @@ gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'i' (in int) -0:8 'input' (in 3-element array of 4-component vector of float) +0:8 'i' (layout(location=0 ) in int) +0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) @@ -22,29 +22,29 @@ gl_FragCoord origin is upper left 0:10 1 (const int) 0:10 indirect index (temp 4-component vector of float) 0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) +0:10 indirect index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) 0:10 direct index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 Constant: 0:10 5 (const int) 0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) 0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) 0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) @@ -59,8 +59,8 @@ gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'i' (in int) -0:8 'input' (in 3-element array of 4-component vector of float) +0:8 'i' (layout(location=0 ) in int) +0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) @@ -77,29 +77,29 @@ gl_FragCoord origin is upper left 0:10 1 (const int) 0:10 indirect index (temp 4-component vector of float) 0:10 'a' (global 4-element array of 4-component vector of float) -0:10 'i' (in int) -0:10 direct index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) +0:10 direct index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) 0:10 Constant: 0:10 2 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'input' (in 3-element array of 4-component vector of float) -0:10 'i' (in int) +0:10 indirect index (layout(location=1 ) temp 4-component vector of float) +0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:10 'i' (layout(location=0 ) in int) 0:10 direct index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) 0:10 Constant: 0:10 5 (const int) 0:10 indirect index (temp 4-component vector of float) 0:10 'b' (temp 10-element array of 4-component vector of float) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) 0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) 0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) -0:10 'i' (in int) +0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) @@ -123,6 +123,8 @@ gl_FragCoord origin is upper left Name 54 "" MemberName 54 0 "m" Name 58 "s" + Decorate 21(i) Location 0 + Decorate 29(input) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 5f617c90..b419cc01 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -4,21 +4,21 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (in 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:8 'a5' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) +0:8 'a5' (layout(location=4 ) in 4-component vector of float) 0:? Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (in 4-component vector of float) +0:9 'a1' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (in 4-component vector of float) +0:9 'a2' (layout(location=1 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (in 4-component vector of float) +0:9 'a3' (layout(location=2 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (in 4-component vector of float) -0:9 'a5' (in 4-component vector of float) +0:9 'a4' (layout(location=3 ) in 4-component vector of float) +0:9 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -26,11 +26,11 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 'a1' (layout(location=0 ) in 4-component vector of float) +0:10 'a2' (layout(location=1 ) in 4-component vector of float) +0:10 'a3' (layout(location=2 ) in 4-component vector of float) +0:10 'a4' (layout(location=3 ) in 4-component vector of float) +0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects @@ -43,21 +43,21 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (in 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) -0:8 'a5' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) +0:8 'a5' (layout(location=4 ) in 4-component vector of float) 0:? Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (in 4-component vector of float) +0:9 'a1' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (in 4-component vector of float) +0:9 'a2' (layout(location=1 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (in 4-component vector of float) +0:9 'a3' (layout(location=2 ) in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (in 4-component vector of float) -0:9 'a5' (in 4-component vector of float) +0:9 'a4' (layout(location=3 ) in 4-component vector of float) +0:9 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -65,11 +65,11 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (in 4-component vector of float) -0:10 'a2' (in 4-component vector of float) -0:10 'a3' (in 4-component vector of float) -0:10 'a4' (in 4-component vector of float) -0:10 'a5' (in 4-component vector of float) +0:10 'a1' (layout(location=0 ) in 4-component vector of float) +0:10 'a2' (layout(location=1 ) in 4-component vector of float) +0:10 'a3' (layout(location=2 ) in 4-component vector of float) +0:10 'a4' (layout(location=3 ) in 4-component vector of float) +0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects @@ -89,6 +89,11 @@ gl_FragCoord origin is upper left Name 12 "a4" Name 13 "a5" Name 16 "@entryPointOutput" + Decorate 9(a1) Location 0 + Decorate 10(a2) Location 1 + Decorate 11(a3) Location 2 + Decorate 12(a4) Location 3 + Decorate 13(a5) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 60c6d1d2..cb0b68bd 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:11 Test condition and select (temp void) 0:11 Condition @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:11 Test condition and select (temp void) 0:11 Condition diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index a51cb165..edcbbb84 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:26 Function Parameters: -0:26 'input' (in 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) @@ -13,7 +13,7 @@ gl_FragCoord origin is upper left 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) +0:27 'input' (layout(location=0 ) in 4-component vector of float) 0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) 0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:27 Constant: @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:26 Function Parameters: -0:26 'input' (in 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) @@ -55,7 +55,7 @@ gl_FragCoord origin is upper left 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) -0:27 'input' (in 4-component vector of float) +0:27 'input' (layout(location=0 ) in 4-component vector of float) 0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) 0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:27 Constant: @@ -111,6 +111,7 @@ gl_FragCoord origin is upper left MemberName 34 6 "f6" MemberName 34 7 "f7" Name 36 "" + Decorate 11(input) Location 0 MemberDecorate 13 0 Offset 0 Decorate 13 Block Decorate 15 DescriptorSet 0 diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 0ce3e645..2ae921a3 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -369,6 +369,7 @@ gl_FragCoord origin is upper left Decorate 93(g_tTexcdf4a) DescriptorSet 0 Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 131(PS_OUTPUT) 0 Location 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex1df4) DescriptorSet 0 Decorate 144(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 8dbdc57b..0ef98d74 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -135,8 +135,8 @@ ERROR: node is still EOpNull! 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -146,15 +146,15 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -297,8 +297,8 @@ ERROR: node is still EOpNull! 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -308,15 +308,15 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 4710ba42..5554be15 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) @@ -12,10 +12,10 @@ gl_FragCoord origin is upper left 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Convert int to float (temp 4-component vector of float) 0:3 Convert float to int (temp 4-component vector of int) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Constant: 0:3 1.198000 0:3 1.198000 @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) @@ -41,10 +41,10 @@ gl_FragCoord origin is upper left 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Convert int to float (temp 4-component vector of float) 0:3 Convert float to int (temp 4-component vector of int) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Constant: 0:3 1.198000 0:3 1.198000 @@ -65,6 +65,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" Name 11 "input" + Decorate 11(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index ce354f17..672024c4 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp int) @@ -35,19 +35,19 @@ gl_FragCoord origin is upper left 0:7 vector-scale (temp 4-component vector of float) 0:7 Convert int to float (temp float) 0:7 'a' (temp int) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:8 vector-scale (temp 4-component vector of float) 0:8 Convert int to float (temp float) 0:8 'b' (temp int) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 vector-scale (temp 4-component vector of float) 0:9 Convert int to float (temp float) 0:9 'c' (temp int) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:10 vector-scale (temp 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 'd' (temp int) -0:10 'input' (in 4-component vector of float) +0:10 'input' (layout(location=0 ) in 4-component vector of float) 0:12 Comma (temp int) 0:12 move second child to first child (temp int) 0:12 'e' (temp int) @@ -85,19 +85,19 @@ gl_FragCoord origin is upper left 0:14 Constant: 0:14 0 (const int) 0:14 direct index (temp float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 Constant: 0:14 1 (const int) 0:14 true case 0:14 vector-scale (temp 4-component vector of float) 0:14 Convert int to float (temp float) 0:14 'c' (temp int) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 false case 0:14 vector-scale (temp 4-component vector of float) 0:14 Convert int to float (temp float) 0:14 'd' (temp int) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Sequence 0:15 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp int) @@ -150,19 +150,19 @@ gl_FragCoord origin is upper left 0:7 vector-scale (temp 4-component vector of float) 0:7 Convert int to float (temp float) 0:7 'a' (temp int) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:8 vector-scale (temp 4-component vector of float) 0:8 Convert int to float (temp float) 0:8 'b' (temp int) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 vector-scale (temp 4-component vector of float) 0:9 Convert int to float (temp float) 0:9 'c' (temp int) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:10 vector-scale (temp 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 'd' (temp int) -0:10 'input' (in 4-component vector of float) +0:10 'input' (layout(location=0 ) in 4-component vector of float) 0:12 Comma (temp int) 0:12 move second child to first child (temp int) 0:12 'e' (temp int) @@ -200,19 +200,19 @@ gl_FragCoord origin is upper left 0:14 Constant: 0:14 0 (const int) 0:14 direct index (temp float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 Constant: 0:14 1 (const int) 0:14 true case 0:14 vector-scale (temp 4-component vector of float) 0:14 Convert int to float (temp float) 0:14 'c' (temp int) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 false case 0:14 vector-scale (temp 4-component vector of float) 0:14 Convert int to float (temp float) 0:14 'd' (temp int) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Sequence 0:15 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -244,6 +244,7 @@ gl_FragCoord origin is upper left Name 40 "e" Name 57 "f" Name 83 "@entryPointOutput" + Decorate 22(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 0dab6a80..c9fb8ed3 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -2,7 +2,7 @@ hlsl.constructexpr.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -25,8 +25,8 @@ gl_FragCoord origin is upper left 0:? 11.000000 0:? 12.000000 0:15 move second child to first child (temp 4-component vector of float) -0:15 color: direct index for structure (temp 4-component vector of float) -0:15 'ps_output' (temp structure{temp 4-component vector of float color}) +0:15 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:15 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: @@ -35,9 +35,9 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects @@ -48,7 +48,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -71,8 +71,8 @@ gl_FragCoord origin is upper left 0:? 11.000000 0:? 12.000000 0:15 move second child to first child (temp 4-component vector of float) -0:15 color: direct index for structure (temp 4-component vector of float) -0:15 'ps_output' (temp structure{temp 4-component vector of float color}) +0:15 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:15 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: @@ -81,9 +81,9 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects @@ -101,6 +101,7 @@ gl_FragCoord origin is upper left MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" Name 31 "@entryPointOutput" + MemberDecorate 22(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 5495deac..cee9a456 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -16,17 +16,17 @@ gl_FragCoord origin is upper left 0:4 Branch: Kill 0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:9 Function Call: foo(f1; (global void) 0:9 direct index (temp float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: 0:9 2 (const int) 0:10 Test condition and select (temp void) 0:10 Condition 0:10 direct index (temp float) -0:10 'input' (in 4-component vector of float) +0:10 'input' (layout(location=0 ) in 4-component vector of float) 0:10 Constant: 0:10 0 (const int) 0:10 true case @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:12 move second child to first child (temp float) 0:12 'f' (temp float) 0:12 direct index (temp float) -0:12 'input' (in 4-component vector of float) +0:12 'input' (layout(location=0 ) in 4-component vector of float) 0:12 Constant: 0:12 0 (const int) 0:13 Branch: Kill @@ -62,17 +62,17 @@ gl_FragCoord origin is upper left 0:4 Branch: Kill 0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:8 Function Parameters: -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:9 Function Call: foo(f1; (global void) 0:9 direct index (temp float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: 0:9 2 (const int) 0:10 Test condition and select (temp void) 0:10 Condition 0:10 direct index (temp float) -0:10 'input' (in 4-component vector of float) +0:10 'input' (layout(location=0 ) in 4-component vector of float) 0:10 Constant: 0:10 0 (const int) 0:10 true case @@ -81,7 +81,7 @@ gl_FragCoord origin is upper left 0:12 move second child to first child (temp float) 0:12 'f' (temp float) 0:12 direct index (temp float) -0:12 'input' (in 4-component vector of float) +0:12 'input' (layout(location=0 ) in 4-component vector of float) 0:12 Constant: 0:12 0 (const int) 0:13 Branch: Kill @@ -102,6 +102,7 @@ gl_FragCoord origin is upper left Name 21 "input" Name 22 "param" Name 35 "f" + Decorate 21(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 3fdd46f0..3de57472 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Loop with condition not tested first 0:3 Loop Condition @@ -19,13 +19,13 @@ gl_FragCoord origin is upper left 0:5 Loop with condition not tested first 0:5 Loop Condition 0:5 Compare Equal (temp bool) -0:5 'input' (in 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Loop with condition not tested first 0:3 Loop Condition @@ -53,13 +53,13 @@ gl_FragCoord origin is upper left 0:5 Loop with condition not tested first 0:5 Loop Condition 0:5 Compare Equal (temp bool) -0:5 'input' (in 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects @@ -75,6 +75,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 23 "@entryPointOutput" Name 25 "input" + Decorate 25(input) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeBool diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 96f5b78b..f63bb3da 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -4,13 +4,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (out 4-component vector of float) 0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (out 4-component vector of float) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 2-component vector of float) 0:9 v: direct index for structure (temp 2-component vector of float) 0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) @@ -43,13 +43,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (out 4-component vector of float) 0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (out 4-component vector of float) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 2-component vector of float) 0:9 v: direct index for structure (temp 2-component vector of float) 0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) @@ -90,6 +90,7 @@ gl_FragCoord origin is upper left MemberName 16(OutParam) 1 "i" Name 18 "out2" Name 29 "@entryPointOutput" + Decorate 11(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 08a98756..ba443261 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:? 'ff1' (global bool Face) 0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) 0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord) +0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) Linked fragment stage: @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:? 'ff1' (global bool Face) 0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) 0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord) +0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 @@ -81,7 +81,6 @@ gl_FragCoord origin is upper left Decorate 28(ff3) Binding 0 Decorate 29(ff4) Offset 4 Decorate 29(ff4) Binding 1 - Decorate 29(ff4) BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 3fd9a973..44010957 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:? Sequence 0:3 Loop with condition tested first @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:3 No loop body 0:4 Sequence 0:4 Pre-Increment (temp 4-component vector of float) -0:4 'input' (in 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Loop with condition tested first 0:4 No loop condition 0:4 No loop body @@ -20,42 +20,42 @@ gl_FragCoord origin is upper left 0:5 Loop with condition tested first 0:5 Loop Condition 0:5 Compare Not Equal (temp bool) -0:5 'input' (in 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition 0:6 Compare Not Equal (temp bool) -0:6 'input' (in 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition 0:7 Compare Not Equal (temp bool) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Constant: 0:7 2.000000 0:? Sequence @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:8 Condition 0:8 Compare Greater Than (temp bool) 0:8 direct index (temp float) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: @@ -81,7 +81,7 @@ gl_FragCoord origin is upper left 0:9 Condition 0:9 Compare Greater Than (temp bool) 0:9 direct index (temp float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:? Sequence 0:3 Loop with condition tested first @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:3 No loop body 0:4 Sequence 0:4 Pre-Increment (temp 4-component vector of float) -0:4 'input' (in 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Loop with condition tested first 0:4 No loop condition 0:4 No loop body @@ -140,42 +140,42 @@ gl_FragCoord origin is upper left 0:5 Loop with condition tested first 0:5 Loop Condition 0:5 Compare Not Equal (temp bool) -0:5 'input' (in 4-component vector of float) -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition 0:6 Compare Not Equal (temp bool) -0:6 'input' (in 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:6 Negate value (temp 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Branch: Return 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition 0:7 Compare Not Equal (temp bool) -0:7 'input' (in 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:7 Negate value (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Constant: 0:7 2.000000 0:? Sequence @@ -186,7 +186,7 @@ gl_FragCoord origin is upper left 0:8 Condition 0:8 Compare Greater Than (temp bool) 0:8 direct index (temp float) -0:8 'input' (in 4-component vector of float) +0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: @@ -201,7 +201,7 @@ gl_FragCoord origin is upper left 0:9 Condition 0:9 Compare Greater Than (temp bool) 0:9 direct index (temp float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: @@ -249,6 +249,7 @@ gl_FragCoord origin is upper left Name 43 "@entryPointOutput" Name 91 "ii" Name 111 "ii" + Decorate 13(input) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 58f7a77c..27b24387 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -75,8 +75,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -86,15 +86,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -189,8 +189,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -200,15 +200,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -265,6 +265,7 @@ gl_FragCoord origin is upper left Decorate 60(g_tTexcdf4a) DescriptorSet 0 Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 90(PS_OUTPUT) 0 Location 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 104(g_tTex1df4a) DescriptorSet 0 Decorate 104(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index c75a0598..98be6d59 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -69,8 +69,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) -0:44 Color: direct index for structure (temp 4-component vector of float) -0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:44 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -80,15 +80,15 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Sequence -0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -114,7 +114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -181,8 +181,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) -0:44 Color: direct index for structure (temp 4-component vector of float) -0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:44 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -192,15 +192,15 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Sequence -0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -264,6 +264,7 @@ gl_FragCoord origin is upper left Decorate 59(g_tTexcdf4) DescriptorSet 0 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 90(PS_OUTPUT) 0 Location 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(g_sSamp2d) DescriptorSet 0 Decorate 106(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 209c041d..291caa76 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.gather.basic.dx10.vert Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -68,8 +68,8 @@ Shader version: 450 0:? 0.800000 0:? 0.900000 0:43 move second child to first child (temp 4-component vector of float) -0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:43 Pos: direct index for structure (temp 4-component vector of float Position) +0:43 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: @@ -78,9 +78,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:45 Sequence -0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -105,7 +105,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -172,8 +172,8 @@ Shader version: 450 0:? 0.800000 0:? 0.900000 0:43 move second child to first child (temp 4-component vector of float) -0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:43 Pos: direct index for structure (temp 4-component vector of float Position) +0:43 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: @@ -182,9 +182,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:45 Sequence -0:45 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -246,7 +246,7 @@ Shader version: 450 Decorate 59(g_tTexcdf4) DescriptorSet 0 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord + MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position Decorate 100(g_sSamp2d) DescriptorSet 0 Decorate 103(g_tTex1df4a) DescriptorSet 0 Decorate 103(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 2f856642..3e19e5f8 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -45,8 +45,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -56,15 +56,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,6 +207,7 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 + MemberDecorate 62(PS_OUTPUT) 0 Location 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 76(g_tTex1df4a) DescriptorSet 0 Decorate 76(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 5cfae1ef..5e0a07e3 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -48,8 +48,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) -0:32 Color: direct index for structure (temp 4-component vector of float) -0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:32 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -59,15 +59,15 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Sequence -0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -86,7 +86,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) -0:32 Color: direct index for structure (temp 4-component vector of float) -0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:32 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Sequence -0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -195,6 +195,7 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 + MemberDecorate 63(PS_OUTPUT) 0 Location 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 77(g_tTex1df4a) DescriptorSet 0 Decorate 77(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index ac59887b..ddeb525f 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -246,8 +246,8 @@ gl_FragCoord origin is upper left 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -257,15 +257,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -291,7 +291,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -535,8 +535,8 @@ gl_FragCoord origin is upper left 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -546,15 +546,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -637,6 +637,7 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4a) DescriptorSet 0 Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 195(PS_OUTPUT) 0 Location 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 207(g_sSamp2d) DescriptorSet 0 Decorate 210(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 63c9946d..79e779b9 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:78 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -246,8 +246,8 @@ gl_FragCoord origin is upper left 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) -0:73 Color: direct index for structure (temp 4-component vector of float) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -257,15 +257,15 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:74 move second child to first child (temp float) 0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 0:76 Sequence -0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -295,7 +295,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:78 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -539,8 +539,8 @@ gl_FragCoord origin is upper left 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) -0:73 Color: direct index for structure (temp 4-component vector of float) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -550,15 +550,15 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:74 move second child to first child (temp float) 0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 0:76 Sequence -0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -648,6 +648,7 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4) DescriptorSet 0 Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 196(PS_OUTPUT) 0 Location 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 208(g_sSamp2d) DescriptorSet 0 Decorate 211(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 5df5248e..4d6fd70c 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:117 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -318,8 +318,8 @@ gl_FragCoord origin is upper left 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) -0:112 Color: direct index for structure (temp 4-component vector of float) -0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:112 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -329,15 +329,15 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:113 move second child to first child (temp float) 0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 0:115 Sequence -0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -371,7 +371,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:117 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -687,8 +687,8 @@ gl_FragCoord origin is upper left 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) -0:112 Color: direct index for structure (temp 4-component vector of float) -0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:112 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -698,15 +698,15 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:113 move second child to first child (temp float) 0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 0:115 Sequence -0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -802,6 +802,7 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 0 Location 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 5838f08a..7d1cf674 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:111 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -318,8 +318,8 @@ gl_FragCoord origin is upper left 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) -0:106 Color: direct index for structure (temp 4-component vector of float) -0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:106 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -329,15 +329,15 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:107 move second child to first child (temp float) 0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 0:109 Sequence -0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -367,7 +367,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:111 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -683,8 +683,8 @@ gl_FragCoord origin is upper left 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) -0:106 Color: direct index for structure (temp 4-component vector of float) -0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:106 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -694,15 +694,15 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:107 move second child to first child (temp float) 0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 0:109 Sequence -0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -791,6 +791,7 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 258(PS_OUTPUT) 0 Location 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index a3eba63c..94177dec 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:281 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1044,8 +1044,8 @@ gl_FragCoord origin is upper left 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) -0:276 Color: direct index for structure (temp 4-component vector of float) -0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:276 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -1055,15 +1055,15 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 0:279 Sequence -0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1102,7 +1102,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:281 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -2144,8 +2144,8 @@ gl_FragCoord origin is upper left 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) -0:276 Color: direct index for structure (temp 4-component vector of float) -0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:276 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -2155,15 +2155,15 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 0:279 Sequence -0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -2324,6 +2324,7 @@ gl_FragCoord origin is upper left Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 + MemberDecorate 522(PS_OUTPUT) 0 Location 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 539(g_sSamp) DescriptorSet 0 Decorate 539(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index a8761cdf..6ea1852e 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.getdimensions.dx10.vert Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -27,8 +27,8 @@ Shader version: 450 0:22 textureQueryLevels (temp uint) 0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) -0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:24 Pos: direct index for structure (temp 4-component vector of float Position) +0:24 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: @@ -37,9 +37,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:26 Sequence -0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -51,7 +51,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -77,8 +77,8 @@ Shader version: 450 0:22 textureQueryLevels (temp uint) 0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) -0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:24 Pos: direct index for structure (temp 4-component vector of float Position) +0:24 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: @@ -87,9 +87,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:26 Sequence -0:26 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -118,7 +118,7 @@ Shader version: 450 Name 41 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 - MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord + MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position Decorate 41(g_sSamp) DescriptorSet 0 Decorate 41(g_sSamp) Binding 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index d120c315..3c90fabd 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,7 +7,7 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -27,8 +27,8 @@ ERROR: node is still EOpNull! 0:17 Constant: 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -38,15 +38,15 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 0:22 Sequence -0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -80,8 +80,8 @@ ERROR: node is still EOpNull! 0:17 Constant: 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) -0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -91,15 +91,15 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 0:22 Sequence -0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index cd768bec..10a50035 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -4,72 +4,72 @@ gl_FragCoord origin is upper left 0:? Sequence 0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition 0:3 Compare Equal (temp bool) -0:3 'input' (in 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:4 'input' (in 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) -0:6 'input' (in 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:6 false case 0:9 Sequence 0:9 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) -0:11 'input' (in 4-component vector of float) -0:11 'input' (in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition 0:14 Compare Equal (temp bool) -0:14 'input' (in 4-component vector of float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition 0:19 Compare Equal (temp bool) -0:19 'input' (in 4-component vector of float) -0:19 'input' (in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence 0:20 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:20 'input' (in 4-component vector of float) +0:20 'input' (layout(location=0 ) in 4-component vector of float) 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) -0:23 'input' (in 4-component vector of float) -0:23 'input' (in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:24 'input' (in 4-component vector of float) +0:24 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Return 0:23 false case 0:? Sequence @@ -77,14 +77,14 @@ gl_FragCoord origin is upper left 0:26 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) 0:30 'ii' (temp float) 0:30 direct index (temp float) -0:30 'input' (in 4-component vector of float) +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:30 Constant: 0:30 2 (const int) 0:30 true case @@ -103,72 +103,72 @@ gl_FragCoord origin is upper left 0:? Sequence 0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition 0:3 Compare Equal (temp bool) -0:3 'input' (in 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:4 'input' (in 4-component vector of float) +0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) -0:6 'input' (in 4-component vector of float) -0:6 'input' (in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:7 'input' (in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:6 false case 0:9 Sequence 0:9 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) -0:9 'input' (in 4-component vector of float) +0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) -0:11 'input' (in 4-component vector of float) -0:11 'input' (in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition 0:14 Compare Equal (temp bool) -0:14 'input' (in 4-component vector of float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition 0:19 Compare Equal (temp bool) -0:19 'input' (in 4-component vector of float) -0:19 'input' (in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence 0:20 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:20 'input' (in 4-component vector of float) +0:20 'input' (layout(location=0 ) in 4-component vector of float) 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) -0:23 'input' (in 4-component vector of float) -0:23 'input' (in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:24 'input' (in 4-component vector of float) +0:24 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Return 0:23 false case 0:? Sequence @@ -176,14 +176,14 @@ gl_FragCoord origin is upper left 0:26 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:26 Negate value (temp 4-component vector of float) -0:26 'input' (in 4-component vector of float) +0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:26 Branch: Return 0:30 Test condition and select (temp void) 0:30 Condition 0:30 move second child to first child (temp float) 0:30 'ii' (temp float) 0:30 direct index (temp float) -0:30 'input' (in 4-component vector of float) +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:30 Constant: 0:30 2 (const int) 0:30 true case @@ -207,6 +207,7 @@ gl_FragCoord origin is upper left Name 19 "@entryPointOutput" Name 67 "ii" Name 80 "ii" + Decorate 9(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 42e0d3e7..1323a166 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:18 5 (const uint) 0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:21 Function Parameters: -0:21 'input' (in 4-component vector of float) +0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) @@ -128,7 +128,7 @@ gl_FragCoord origin is upper left 0:35 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) +0:35 'input' (layout(location=0 ) in 4-component vector of float) 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects @@ -236,7 +236,7 @@ gl_FragCoord origin is upper left 0:18 5 (const uint) 0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:21 Function Parameters: -0:21 'input' (in 4-component vector of float) +0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:35 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:35 component-wise multiply (temp 4-component vector of float) -0:35 'input' (in 4-component vector of float) +0:35 'input' (layout(location=0 ) in 4-component vector of float) 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects @@ -357,6 +357,7 @@ gl_FragCoord origin is upper left Name 90 "input" Name 95 "c4" Name 96 "b5" + Decorate 90(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 03ce8b5d..f175991c 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -29,13 +29,13 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:33 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) 0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:30 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: @@ -44,9 +44,9 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:31 Sequence -0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects @@ -84,13 +84,13 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:33 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) 0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (temp 4-component vector of float) -0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:30 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: @@ -99,9 +99,9 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:31 Sequence -0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects @@ -130,6 +130,7 @@ gl_FragCoord origin is upper left MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" Name 43 "@entryPointOutput" + MemberDecorate 34(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 044943da..083d8cf2 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:26 Function Definition: main(vf4; (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -36,8 +36,8 @@ gl_FragCoord origin is upper left 0:19 'y' (temp float) 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:21 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:21 1.000000 0:22 move second child to first child (temp float) 0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -56,9 +56,9 @@ gl_FragCoord origin is upper left 0:22 Constant: 0:22 3 (const int) 0:24 Sequence -0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:26 Function Definition: main(vf4; (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -103,8 +103,8 @@ gl_FragCoord origin is upper left 0:19 'y' (temp float) 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:21 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:21 1.000000 0:22 move second child to first child (temp float) 0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -123,9 +123,9 @@ gl_FragCoord origin is upper left 0:22 Constant: 0:22 3 (const int) 0:24 Sequence -0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects @@ -155,6 +155,7 @@ gl_FragCoord origin is upper left Name 33 "psout" Name 45 "inpos" Name 53 "@entryPointOutput" + MemberDecorate 31(PS_OUTPUT) 0 Location 0 MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index e2fb4e57..fd31c426 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -232,14 +232,14 @@ local_size = (1, 1, 1) 0:? 3.000000 0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (in 4-component vector of float) -0:105 'inF1' (in 4-component vector of float) -0:105 'inF2' (in 4-component vector of float) -0:105 'inU0' (in 4-component vector of uint) -0:105 'inU1' (in 4-component vector of uint) +0:105 'inF0' (layout(location=0 ) in 4-component vector of float) +0:105 'inF1' (layout(location=1 ) in 4-component vector of float) +0:105 'inF2' (layout(location=2 ) in 4-component vector of float) +0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence 0:109 all (global bool) -0:109 'inF0' (in 4-component vector of float) +0:109 'inF0' (layout(location=0 ) in 4-component vector of float) 0:112 AtomicAdd (global void) 0:112 'gs_ua4' (global 4-component vector of uint) 0:112 'gs_ub4' (global 4-component vector of uint) @@ -559,14 +559,14 @@ local_size = (1, 1, 1) 0:? 3.000000 0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (in 4-component vector of float) -0:105 'inF1' (in 4-component vector of float) -0:105 'inF2' (in 4-component vector of float) -0:105 'inU0' (in 4-component vector of uint) -0:105 'inU1' (in 4-component vector of uint) +0:105 'inF0' (layout(location=0 ) in 4-component vector of float) +0:105 'inF1' (layout(location=1 ) in 4-component vector of float) +0:105 'inF2' (layout(location=2 ) in 4-component vector of float) +0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence 0:109 all (global bool) -0:109 'inF0' (in 4-component vector of float) +0:109 'inF0' (layout(location=0 ) in 4-component vector of float) 0:112 AtomicAdd (global void) 0:112 'gs_ua4' (global 4-component vector of uint) 0:112 'gs_ub4' (global 4-component vector of uint) @@ -699,6 +699,7 @@ local_size = (1, 1, 1) Name 185 "out_u4" Name 193 "gs_uc4" Name 215 "@entryPointOutput" + Decorate 175(inF0) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 68edc7f0..6b1fb385 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -4,29 +4,29 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) 0:5 Function Parameters: -0:5 'inDV1a' (in double) -0:5 'inDV1b' (in double) -0:5 'inDV1c' (in double) -0:5 'inDV2' (in 2-component vector of double) -0:5 'inDV3' (in 3-component vector of double) -0:5 'inDV4' (in 4-component vector of double) -0:5 'inU1a' (in uint) -0:5 'inU1b' (in uint) +0:5 'inDV1a' (layout(location=0 ) in double) +0:5 'inDV1b' (layout(location=1 ) in double) +0:5 'inDV1c' (layout(location=2 ) in double) +0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:5 'inDV4' (layout(location=5 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=6 ) in uint) +0:5 'inU1b' (layout(location=7 ) in uint) 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) 0:6 fma (global double) -0:6 'inDV1a' (in double) -0:6 'inDV1b' (in double) -0:6 'inDV1c' (in double) +0:6 'inDV1a' (layout(location=0 ) in double) +0:6 'inDV1b' (layout(location=1 ) in double) +0:6 'inDV1c' (layout(location=2 ) in double) 0:7 Sequence 0:7 move second child to first child (temp double) 0:7 'r01' (temp double) 0:7 uint64BitsToDouble (temp double) 0:7 Construct uvec2 (temp 2-component vector of uint) -0:7 'inU1a' (in uint) -0:7 'inU1b' (in uint) +0:7 'inU1a' (layout(location=6 ) in uint) +0:7 'inU1b' (layout(location=7 ) in uint) 0:9 Sequence 0:9 move second child to first child (temp float) 0:? '@entryPointOutput' (out float) @@ -44,29 +44,29 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) 0:5 Function Parameters: -0:5 'inDV1a' (in double) -0:5 'inDV1b' (in double) -0:5 'inDV1c' (in double) -0:5 'inDV2' (in 2-component vector of double) -0:5 'inDV3' (in 3-component vector of double) -0:5 'inDV4' (in 4-component vector of double) -0:5 'inU1a' (in uint) -0:5 'inU1b' (in uint) +0:5 'inDV1a' (layout(location=0 ) in double) +0:5 'inDV1b' (layout(location=1 ) in double) +0:5 'inDV1c' (layout(location=2 ) in double) +0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:5 'inDV4' (layout(location=5 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=6 ) in uint) +0:5 'inU1b' (layout(location=7 ) in uint) 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) 0:6 fma (global double) -0:6 'inDV1a' (in double) -0:6 'inDV1b' (in double) -0:6 'inDV1c' (in double) +0:6 'inDV1a' (layout(location=0 ) in double) +0:6 'inDV1b' (layout(location=1 ) in double) +0:6 'inDV1c' (layout(location=2 ) in double) 0:7 Sequence 0:7 move second child to first child (temp double) 0:7 'r01' (temp double) 0:7 uint64BitsToDouble (temp double) 0:7 Construct uvec2 (temp 2-component vector of uint) -0:7 'inU1a' (in uint) -0:7 'inU1b' (in uint) +0:7 'inU1a' (layout(location=6 ) in uint) +0:7 'inU1b' (layout(location=7 ) in uint) 0:9 Sequence 0:9 move second child to first child (temp float) 0:? '@entryPointOutput' (out float) @@ -94,6 +94,11 @@ gl_FragCoord origin is upper left Name 20 "inU1a" Name 22 "inU1b" Name 29 "@entryPointOutput" + Decorate 10(inDV1a) Location 0 + Decorate 12(inDV1b) Location 1 + Decorate 14(inDV1c) Location 2 + Decorate 20(inU1a) Location 6 + Decorate 22(inU1b) Location 7 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index c0314694..818c89c4 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -4,39 +4,39 @@ gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: -0:3 'inF1' (in float) -0:3 'inF2' (in 2-component vector of float) -0:3 'inF3' (in 3-component vector of float) -0:3 'inF4' (in 4-component vector of float) -0:3 'inI2' (in 2-component vector of int) +0:3 'inF1' (layout(location=0 ) in float) +0:3 'inF2' (layout(location=1 ) in 2-component vector of float) +0:3 'inF3' (layout(location=2 ) in 3-component vector of float) +0:3 'inF4' (layout(location=3 ) in 4-component vector of float) +0:3 'inI2' (layout(location=4 ) in 2-component vector of int) 0:? Sequence 0:4 interpolateAtOffset (temp float) -0:4 'inF1' (in float) +0:4 'inF1' (layout(location=0 ) in float) 0:? Constant: 0:? -0.500000 0:? -0.062500 0:5 interpolateAtOffset (temp 2-component vector of float) -0:5 'inF2' (in 2-component vector of float) +0:5 'inF2' (layout(location=1 ) in 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.062500 0:6 interpolateAtOffset (temp 3-component vector of float) -0:6 'inF3' (in 3-component vector of float) +0:6 'inF3' (layout(location=2 ) in 3-component vector of float) 0:? Constant: 0:? 0.187500 0:? -0.375000 0:7 interpolateAtOffset (temp 4-component vector of float) -0:7 'inF4' (in 4-component vector of float) +0:7 'inF4' (layout(location=3 ) in 4-component vector of float) 0:? Constant: 0:? 0.437500 0:? -0.500000 0:9 interpolateAtOffset (temp float) -0:9 'inF1' (in float) +0:9 'inF1' (layout(location=0 ) in float) 0:9 vector-scale (temp 2-component vector of float) 0:9 Convert int to float (temp 2-component vector of float) 0:9 right-shift (temp 2-component vector of int) 0:9 left-shift (temp 2-component vector of int) -0:9 'inI2' (in 2-component vector of int) +0:9 'inI2' (layout(location=4 ) in 2-component vector of int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: @@ -54,39 +54,39 @@ gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: -0:3 'inF1' (in float) -0:3 'inF2' (in 2-component vector of float) -0:3 'inF3' (in 3-component vector of float) -0:3 'inF4' (in 4-component vector of float) -0:3 'inI2' (in 2-component vector of int) +0:3 'inF1' (layout(location=0 ) in float) +0:3 'inF2' (layout(location=1 ) in 2-component vector of float) +0:3 'inF3' (layout(location=2 ) in 3-component vector of float) +0:3 'inF4' (layout(location=3 ) in 4-component vector of float) +0:3 'inI2' (layout(location=4 ) in 2-component vector of int) 0:? Sequence 0:4 interpolateAtOffset (temp float) -0:4 'inF1' (in float) +0:4 'inF1' (layout(location=0 ) in float) 0:? Constant: 0:? -0.500000 0:? -0.062500 0:5 interpolateAtOffset (temp 2-component vector of float) -0:5 'inF2' (in 2-component vector of float) +0:5 'inF2' (layout(location=1 ) in 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.062500 0:6 interpolateAtOffset (temp 3-component vector of float) -0:6 'inF3' (in 3-component vector of float) +0:6 'inF3' (layout(location=2 ) in 3-component vector of float) 0:? Constant: 0:? 0.187500 0:? -0.375000 0:7 interpolateAtOffset (temp 4-component vector of float) -0:7 'inF4' (in 4-component vector of float) +0:7 'inF4' (layout(location=3 ) in 4-component vector of float) 0:? Constant: 0:? 0.437500 0:? -0.500000 0:9 interpolateAtOffset (temp float) -0:9 'inF1' (in float) +0:9 'inF1' (layout(location=0 ) in float) 0:9 vector-scale (temp 2-component vector of float) 0:9 Convert int to float (temp 2-component vector of float) 0:9 right-shift (temp 2-component vector of int) 0:9 left-shift (temp 2-component vector of int) -0:9 'inI2' (in 2-component vector of int) +0:9 'inI2' (layout(location=4 ) in 2-component vector of int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: @@ -111,6 +111,11 @@ gl_FragCoord origin is upper left Name 22 "inF3" Name 29 "inF4" Name 36 "inI2" + Decorate 8(inF1) Location 0 + Decorate 15(inF2) Location 1 + Decorate 22(inF3) Location 2 + Decorate 29(inF4) Location 3 + Decorate 36(inI2) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 8adf5620..65db73ab 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -51,11 +51,11 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: -0:29 'inF0' (in 4-component vector of float) +0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op (global 4-component vector of uint) -0:30 'inF0' (in 4-component vector of float) +0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -116,11 +116,11 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: -0:29 'inF0' (in 4-component vector of float) +0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op (global 4-component vector of uint) -0:30 'inF0' (in 4-component vector of float) +0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index cc8be757..3f8cf120 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -1140,80 +1140,80 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: -0:260 'inF0' (in 4-component vector of float) -0:260 'inF1' (in 4-component vector of float) -0:260 'inF2' (in 4-component vector of float) -0:260 'inU0' (in 4-component vector of uint) -0:260 'inU1' (in 4-component vector of uint) +0:260 'inF0' (layout(location=0 ) in 4-component vector of float) +0:260 'inF1' (layout(location=1 ) in 4-component vector of float) +0:260 'inF2' (layout(location=2 ) in 4-component vector of float) +0:260 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:260 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) 0:263 all (global bool) -0:263 'inF0' (in 4-component vector of float) +0:263 'inF0' (layout(location=0 ) in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) 0:264 Absolute value (global 4-component vector of float) -0:264 'inF0' (in 4-component vector of float) +0:264 'inF0' (layout(location=0 ) in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) 0:265 arc cosine (global 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) +0:265 'inF0' (layout(location=0 ) in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) 0:266 any (global bool) -0:266 'inF0' (in 4-component vector of float) +0:266 'inF0' (layout(location=0 ) in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) 0:267 arc sine (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) +0:267 'inF0' (layout(location=0 ) in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) 0:268 floatBitsToInt (global 4-component vector of int) -0:268 'inF0' (in 4-component vector of float) +0:268 'inF0' (layout(location=0 ) in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) 0:269 floatBitsToUint (global 4-component vector of uint) -0:269 'inF0' (in 4-component vector of float) +0:269 'inF0' (layout(location=0 ) in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) 0:270 intBitsToFloat (global 4-component vector of float) -0:270 'inU0' (in 4-component vector of uint) +0:270 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) -0:272 'inF0' (in 4-component vector of float) +0:272 'inF0' (layout(location=0 ) in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) 0:273 arc tangent (global 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:273 'inF1' (in 4-component vector of float) +0:273 'inF0' (layout(location=0 ) in 4-component vector of float) +0:273 'inF1' (layout(location=1 ) in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) 0:274 Ceiling (global 4-component vector of float) -0:274 'inF0' (in 4-component vector of float) +0:274 'inF0' (layout(location=0 ) in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) 0:275 clamp (global 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:275 'inF1' (in 4-component vector of float) -0:275 'inF2' (in 4-component vector of float) +0:275 'inF0' (layout(location=0 ) in 4-component vector of float) +0:275 'inF1' (layout(location=1 ) in 4-component vector of float) +0:275 'inF2' (layout(location=2 ) in 4-component vector of float) 0:276 Test condition and select (temp void) 0:276 Condition 0:276 any (temp bool) 0:276 Compare Less Than (temp 4-component vector of bool) -0:276 'inF0' (in 4-component vector of float) +0:276 'inF0' (layout(location=0 ) in 4-component vector of float) 0:276 Constant: 0:276 0.000000 0:276 0.000000 @@ -1225,12 +1225,12 @@ gl_FragCoord origin is upper left 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) 0:277 cosine (global 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) +0:277 'inF0' (layout(location=0 ) in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) 0:278 hyp. cosine (global 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) +0:278 'inF0' (layout(location=0 ) in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) @@ -1244,49 +1244,49 @@ gl_FragCoord origin is upper left 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) 0:280 dPdx (global 4-component vector of float) -0:280 'inF0' (in 4-component vector of float) +0:280 'inF0' (layout(location=0 ) in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) 0:281 dPdxCoarse (global 4-component vector of float) -0:281 'inF0' (in 4-component vector of float) +0:281 'inF0' (layout(location=0 ) in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) 0:282 dPdxFine (global 4-component vector of float) -0:282 'inF0' (in 4-component vector of float) +0:282 'inF0' (layout(location=0 ) in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) 0:283 dPdy (global 4-component vector of float) -0:283 'inF0' (in 4-component vector of float) +0:283 'inF0' (layout(location=0 ) in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) 0:284 dPdyCoarse (global 4-component vector of float) -0:284 'inF0' (in 4-component vector of float) +0:284 'inF0' (layout(location=0 ) in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) 0:285 dPdyFine (global 4-component vector of float) -0:285 'inF0' (in 4-component vector of float) +0:285 'inF0' (layout(location=0 ) in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) 0:286 degrees (global 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) +0:286 'inF0' (layout(location=0 ) in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) 0:287 distance (global float) -0:287 'inF0' (in 4-component vector of float) -0:287 'inF1' (in 4-component vector of float) +0:287 'inF0' (layout(location=0 ) in 4-component vector of float) +0:287 'inF1' (layout(location=1 ) in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) 0:288 dot-product (global float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) +0:288 'inF0' (layout(location=0 ) in 4-component vector of float) +0:288 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Sequence 0:289 move second child to first child (temp 4-component vector of float) 0:289 'r025' (temp 4-component vector of float) @@ -1295,38 +1295,38 @@ gl_FragCoord origin is upper left 0:289 1.000000 0:289 component-wise multiply (temp float) 0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) +0:289 'inF0' (layout(location=0 ) in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) +0:289 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) +0:289 'inF0' (layout(location=0 ) in 4-component vector of float) 0:289 Constant: 0:289 2 (const int) 0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) +0:289 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Constant: 0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) 0:293 exp (global 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) +0:293 'inF0' (layout(location=0 ) in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) 0:294 exp2 (global 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) +0:294 'inF0' (layout(location=0 ) in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) 0:295 face-forward (global 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:295 'inF2' (in 4-component vector of float) +0:295 'inF0' (layout(location=0 ) in 4-component vector of float) +0:295 'inF1' (layout(location=1 ) in 4-component vector of float) +0:295 'inF2' (layout(location=2 ) in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) @@ -1349,122 +1349,122 @@ gl_FragCoord origin is upper left 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) 0:298 Floor (global 4-component vector of float) -0:298 'inF0' (in 4-component vector of float) +0:298 'inF0' (layout(location=0 ) in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) 0:300 mod (global 4-component vector of float) -0:300 'inF0' (in 4-component vector of float) -0:300 'inF1' (in 4-component vector of float) +0:300 'inF0' (layout(location=0 ) in 4-component vector of float) +0:300 'inF1' (layout(location=1 ) in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) 0:301 Fraction (global 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) +0:301 'inF0' (layout(location=0 ) in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) 0:302 frexp (global 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 'inF1' (in 4-component vector of float) +0:302 'inF0' (layout(location=0 ) in 4-component vector of float) +0:302 'inF1' (layout(location=1 ) in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) 0:303 fwidth (global 4-component vector of float) -0:303 'inF0' (in 4-component vector of float) +0:303 'inF0' (layout(location=0 ) in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) 0:304 isinf (global 4-component vector of bool) -0:304 'inF0' (in 4-component vector of float) +0:304 'inF0' (layout(location=0 ) in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) 0:305 isnan (global 4-component vector of bool) -0:305 'inF0' (in 4-component vector of float) +0:305 'inF0' (layout(location=0 ) in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) 0:306 ldexp (global 4-component vector of float) -0:306 'inF0' (in 4-component vector of float) -0:306 'inF1' (in 4-component vector of float) +0:306 'inF0' (layout(location=0 ) in 4-component vector of float) +0:306 'inF1' (layout(location=1 ) in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) 0:307 mix (global 4-component vector of float) -0:307 'inF0' (in 4-component vector of float) -0:307 'inF1' (in 4-component vector of float) -0:307 'inF2' (in 4-component vector of float) +0:307 'inF0' (layout(location=0 ) in 4-component vector of float) +0:307 'inF1' (layout(location=1 ) in 4-component vector of float) +0:307 'inF2' (layout(location=2 ) in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) 0:308 length (global float) -0:308 'inF0' (in 4-component vector of float) +0:308 'inF0' (layout(location=0 ) in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) 0:309 log (global 4-component vector of float) -0:309 'inF0' (in 4-component vector of float) +0:309 'inF0' (layout(location=0 ) in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) 0:310 'r045' (temp 4-component vector of float) 0:310 vector-scale (temp 4-component vector of float) 0:310 log2 (temp 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) +0:310 'inF0' (layout(location=0 ) in 4-component vector of float) 0:310 Constant: 0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) 0:311 log2 (global 4-component vector of float) -0:311 'inF0' (in 4-component vector of float) +0:311 'inF0' (layout(location=0 ) in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) 0:312 max (global 4-component vector of float) -0:312 'inF0' (in 4-component vector of float) -0:312 'inF1' (in 4-component vector of float) +0:312 'inF0' (layout(location=0 ) in 4-component vector of float) +0:312 'inF1' (layout(location=1 ) in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) 0:313 min (global 4-component vector of float) -0:313 'inF0' (in 4-component vector of float) -0:313 'inF1' (in 4-component vector of float) +0:313 'inF0' (layout(location=0 ) in 4-component vector of float) +0:313 'inF1' (layout(location=1 ) in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) 0:314 normalize (global 4-component vector of float) -0:314 'inF0' (in 4-component vector of float) +0:314 'inF0' (layout(location=0 ) in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) 0:315 pow (global 4-component vector of float) -0:315 'inF0' (in 4-component vector of float) -0:315 'inF1' (in 4-component vector of float) +0:315 'inF0' (layout(location=0 ) in 4-component vector of float) +0:315 'inF1' (layout(location=1 ) in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) 0:316 radians (global 4-component vector of float) -0:316 'inF0' (in 4-component vector of float) +0:316 'inF0' (layout(location=0 ) in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) 0:317 'r052' (temp 4-component vector of float) 0:317 divide (temp 4-component vector of float) 0:317 Constant: 0:317 1.000000 -0:317 'inF0' (in 4-component vector of float) +0:317 'inF0' (layout(location=0 ) in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) 0:318 reflect (global 4-component vector of float) -0:318 'inF0' (in 4-component vector of float) -0:318 'inF1' (in 4-component vector of float) +0:318 'inF0' (layout(location=0 ) in 4-component vector of float) +0:318 'inF1' (layout(location=1 ) in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) 0:319 refract (global 4-component vector of float) -0:319 'inF0' (in 4-component vector of float) -0:319 'inF1' (in 4-component vector of float) +0:319 'inF0' (layout(location=0 ) in 4-component vector of float) +0:319 'inF1' (layout(location=1 ) in 4-component vector of float) 0:319 Constant: 0:319 2.000000 0:320 Sequence @@ -1480,17 +1480,17 @@ gl_FragCoord origin is upper left 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) 0:321 roundEven (global 4-component vector of float) -0:321 'inF0' (in 4-component vector of float) +0:321 'inF0' (layout(location=0 ) in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) 0:322 inverse sqrt (global 4-component vector of float) -0:322 'inF0' (in 4-component vector of float) +0:322 'inF0' (layout(location=0 ) in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) 0:323 'r058' (temp 4-component vector of float) 0:323 clamp (temp 4-component vector of float) -0:323 'inF0' (in 4-component vector of float) +0:323 'inF0' (layout(location=0 ) in 4-component vector of float) 0:323 Constant: 0:323 0.000000 0:323 Constant: @@ -1499,59 +1499,59 @@ gl_FragCoord origin is upper left 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) 0:324 Sign (global 4-component vector of float) -0:324 'inF0' (in 4-component vector of float) +0:324 'inF0' (layout(location=0 ) in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) 0:325 sine (global 4-component vector of float) -0:325 'inF0' (in 4-component vector of float) +0:325 'inF0' (layout(location=0 ) in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF1' (in 4-component vector of float) +0:326 'inF1' (layout(location=1 ) in 4-component vector of float) 0:326 sine (temp 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) +0:326 'inF0' (layout(location=0 ) in 4-component vector of float) 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF2' (in 4-component vector of float) +0:326 'inF2' (layout(location=2 ) in 4-component vector of float) 0:326 cosine (temp 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) +0:326 'inF0' (layout(location=0 ) in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) 0:327 hyp. sine (global 4-component vector of float) -0:327 'inF0' (in 4-component vector of float) +0:327 'inF0' (layout(location=0 ) in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) 0:328 smoothstep (global 4-component vector of float) -0:328 'inF0' (in 4-component vector of float) -0:328 'inF1' (in 4-component vector of float) -0:328 'inF2' (in 4-component vector of float) +0:328 'inF0' (layout(location=0 ) in 4-component vector of float) +0:328 'inF1' (layout(location=1 ) in 4-component vector of float) +0:328 'inF2' (layout(location=2 ) in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) 0:329 sqrt (global 4-component vector of float) -0:329 'inF0' (in 4-component vector of float) +0:329 'inF0' (layout(location=0 ) in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) 0:330 step (global 4-component vector of float) -0:330 'inF0' (in 4-component vector of float) -0:330 'inF1' (in 4-component vector of float) +0:330 'inF0' (layout(location=0 ) in 4-component vector of float) +0:330 'inF1' (layout(location=1 ) in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) 0:331 tangent (global 4-component vector of float) -0:331 'inF0' (in 4-component vector of float) +0:331 'inF0' (layout(location=0 ) in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) 0:332 hyp. tangent (global 4-component vector of float) -0:332 'inF0' (in 4-component vector of float) +0:332 'inF0' (layout(location=0 ) in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) -0:334 'inF0' (in 4-component vector of float) +0:334 'inF0' (layout(location=0 ) in 4-component vector of float) 0:337 Sequence 0:337 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -3921,80 +3921,80 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: -0:260 'inF0' (in 4-component vector of float) -0:260 'inF1' (in 4-component vector of float) -0:260 'inF2' (in 4-component vector of float) -0:260 'inU0' (in 4-component vector of uint) -0:260 'inU1' (in 4-component vector of uint) +0:260 'inF0' (layout(location=0 ) in 4-component vector of float) +0:260 'inF1' (layout(location=1 ) in 4-component vector of float) +0:260 'inF2' (layout(location=2 ) in 4-component vector of float) +0:260 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:260 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) 0:263 all (global bool) -0:263 'inF0' (in 4-component vector of float) +0:263 'inF0' (layout(location=0 ) in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) 0:264 Absolute value (global 4-component vector of float) -0:264 'inF0' (in 4-component vector of float) +0:264 'inF0' (layout(location=0 ) in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) 0:265 arc cosine (global 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) +0:265 'inF0' (layout(location=0 ) in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) 0:266 any (global bool) -0:266 'inF0' (in 4-component vector of float) +0:266 'inF0' (layout(location=0 ) in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) 0:267 arc sine (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) +0:267 'inF0' (layout(location=0 ) in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) 0:268 floatBitsToInt (global 4-component vector of int) -0:268 'inF0' (in 4-component vector of float) +0:268 'inF0' (layout(location=0 ) in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) 0:269 floatBitsToUint (global 4-component vector of uint) -0:269 'inF0' (in 4-component vector of float) +0:269 'inF0' (layout(location=0 ) in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) 0:270 intBitsToFloat (global 4-component vector of float) -0:270 'inU0' (in 4-component vector of uint) +0:270 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) -0:272 'inF0' (in 4-component vector of float) +0:272 'inF0' (layout(location=0 ) in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) 0:273 arc tangent (global 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:273 'inF1' (in 4-component vector of float) +0:273 'inF0' (layout(location=0 ) in 4-component vector of float) +0:273 'inF1' (layout(location=1 ) in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) 0:274 Ceiling (global 4-component vector of float) -0:274 'inF0' (in 4-component vector of float) +0:274 'inF0' (layout(location=0 ) in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) 0:275 clamp (global 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:275 'inF1' (in 4-component vector of float) -0:275 'inF2' (in 4-component vector of float) +0:275 'inF0' (layout(location=0 ) in 4-component vector of float) +0:275 'inF1' (layout(location=1 ) in 4-component vector of float) +0:275 'inF2' (layout(location=2 ) in 4-component vector of float) 0:276 Test condition and select (temp void) 0:276 Condition 0:276 any (temp bool) 0:276 Compare Less Than (temp 4-component vector of bool) -0:276 'inF0' (in 4-component vector of float) +0:276 'inF0' (layout(location=0 ) in 4-component vector of float) 0:276 Constant: 0:276 0.000000 0:276 0.000000 @@ -4006,12 +4006,12 @@ gl_FragCoord origin is upper left 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) 0:277 cosine (global 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) +0:277 'inF0' (layout(location=0 ) in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) 0:278 hyp. cosine (global 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) +0:278 'inF0' (layout(location=0 ) in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) @@ -4025,49 +4025,49 @@ gl_FragCoord origin is upper left 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) 0:280 dPdx (global 4-component vector of float) -0:280 'inF0' (in 4-component vector of float) +0:280 'inF0' (layout(location=0 ) in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) 0:281 dPdxCoarse (global 4-component vector of float) -0:281 'inF0' (in 4-component vector of float) +0:281 'inF0' (layout(location=0 ) in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) 0:282 dPdxFine (global 4-component vector of float) -0:282 'inF0' (in 4-component vector of float) +0:282 'inF0' (layout(location=0 ) in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) 0:283 dPdy (global 4-component vector of float) -0:283 'inF0' (in 4-component vector of float) +0:283 'inF0' (layout(location=0 ) in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) 0:284 dPdyCoarse (global 4-component vector of float) -0:284 'inF0' (in 4-component vector of float) +0:284 'inF0' (layout(location=0 ) in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) 0:285 dPdyFine (global 4-component vector of float) -0:285 'inF0' (in 4-component vector of float) +0:285 'inF0' (layout(location=0 ) in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) 0:286 degrees (global 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) +0:286 'inF0' (layout(location=0 ) in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) 0:287 distance (global float) -0:287 'inF0' (in 4-component vector of float) -0:287 'inF1' (in 4-component vector of float) +0:287 'inF0' (layout(location=0 ) in 4-component vector of float) +0:287 'inF1' (layout(location=1 ) in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) 0:288 dot-product (global float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) +0:288 'inF0' (layout(location=0 ) in 4-component vector of float) +0:288 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Sequence 0:289 move second child to first child (temp 4-component vector of float) 0:289 'r025' (temp 4-component vector of float) @@ -4076,38 +4076,38 @@ gl_FragCoord origin is upper left 0:289 1.000000 0:289 component-wise multiply (temp float) 0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) +0:289 'inF0' (layout(location=0 ) in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) +0:289 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF0' (in 4-component vector of float) +0:289 'inF0' (layout(location=0 ) in 4-component vector of float) 0:289 Constant: 0:289 2 (const int) 0:289 direct index (temp float) -0:289 'inF1' (in 4-component vector of float) +0:289 'inF1' (layout(location=1 ) in 4-component vector of float) 0:289 Constant: 0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) 0:293 exp (global 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) +0:293 'inF0' (layout(location=0 ) in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) 0:294 exp2 (global 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) +0:294 'inF0' (layout(location=0 ) in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) 0:295 face-forward (global 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:295 'inF2' (in 4-component vector of float) +0:295 'inF0' (layout(location=0 ) in 4-component vector of float) +0:295 'inF1' (layout(location=1 ) in 4-component vector of float) +0:295 'inF2' (layout(location=2 ) in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) @@ -4130,122 +4130,122 @@ gl_FragCoord origin is upper left 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) 0:298 Floor (global 4-component vector of float) -0:298 'inF0' (in 4-component vector of float) +0:298 'inF0' (layout(location=0 ) in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) 0:300 mod (global 4-component vector of float) -0:300 'inF0' (in 4-component vector of float) -0:300 'inF1' (in 4-component vector of float) +0:300 'inF0' (layout(location=0 ) in 4-component vector of float) +0:300 'inF1' (layout(location=1 ) in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) 0:301 Fraction (global 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) +0:301 'inF0' (layout(location=0 ) in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) 0:302 frexp (global 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 'inF1' (in 4-component vector of float) +0:302 'inF0' (layout(location=0 ) in 4-component vector of float) +0:302 'inF1' (layout(location=1 ) in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) 0:303 fwidth (global 4-component vector of float) -0:303 'inF0' (in 4-component vector of float) +0:303 'inF0' (layout(location=0 ) in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) 0:304 isinf (global 4-component vector of bool) -0:304 'inF0' (in 4-component vector of float) +0:304 'inF0' (layout(location=0 ) in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) 0:305 isnan (global 4-component vector of bool) -0:305 'inF0' (in 4-component vector of float) +0:305 'inF0' (layout(location=0 ) in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) 0:306 ldexp (global 4-component vector of float) -0:306 'inF0' (in 4-component vector of float) -0:306 'inF1' (in 4-component vector of float) +0:306 'inF0' (layout(location=0 ) in 4-component vector of float) +0:306 'inF1' (layout(location=1 ) in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) 0:307 mix (global 4-component vector of float) -0:307 'inF0' (in 4-component vector of float) -0:307 'inF1' (in 4-component vector of float) -0:307 'inF2' (in 4-component vector of float) +0:307 'inF0' (layout(location=0 ) in 4-component vector of float) +0:307 'inF1' (layout(location=1 ) in 4-component vector of float) +0:307 'inF2' (layout(location=2 ) in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) 0:308 length (global float) -0:308 'inF0' (in 4-component vector of float) +0:308 'inF0' (layout(location=0 ) in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) 0:309 log (global 4-component vector of float) -0:309 'inF0' (in 4-component vector of float) +0:309 'inF0' (layout(location=0 ) in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) 0:310 'r045' (temp 4-component vector of float) 0:310 vector-scale (temp 4-component vector of float) 0:310 log2 (temp 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) +0:310 'inF0' (layout(location=0 ) in 4-component vector of float) 0:310 Constant: 0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) 0:311 log2 (global 4-component vector of float) -0:311 'inF0' (in 4-component vector of float) +0:311 'inF0' (layout(location=0 ) in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) 0:312 max (global 4-component vector of float) -0:312 'inF0' (in 4-component vector of float) -0:312 'inF1' (in 4-component vector of float) +0:312 'inF0' (layout(location=0 ) in 4-component vector of float) +0:312 'inF1' (layout(location=1 ) in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) 0:313 min (global 4-component vector of float) -0:313 'inF0' (in 4-component vector of float) -0:313 'inF1' (in 4-component vector of float) +0:313 'inF0' (layout(location=0 ) in 4-component vector of float) +0:313 'inF1' (layout(location=1 ) in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) 0:314 normalize (global 4-component vector of float) -0:314 'inF0' (in 4-component vector of float) +0:314 'inF0' (layout(location=0 ) in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) 0:315 pow (global 4-component vector of float) -0:315 'inF0' (in 4-component vector of float) -0:315 'inF1' (in 4-component vector of float) +0:315 'inF0' (layout(location=0 ) in 4-component vector of float) +0:315 'inF1' (layout(location=1 ) in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) 0:316 radians (global 4-component vector of float) -0:316 'inF0' (in 4-component vector of float) +0:316 'inF0' (layout(location=0 ) in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) 0:317 'r052' (temp 4-component vector of float) 0:317 divide (temp 4-component vector of float) 0:317 Constant: 0:317 1.000000 -0:317 'inF0' (in 4-component vector of float) +0:317 'inF0' (layout(location=0 ) in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) 0:318 reflect (global 4-component vector of float) -0:318 'inF0' (in 4-component vector of float) -0:318 'inF1' (in 4-component vector of float) +0:318 'inF0' (layout(location=0 ) in 4-component vector of float) +0:318 'inF1' (layout(location=1 ) in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) 0:319 refract (global 4-component vector of float) -0:319 'inF0' (in 4-component vector of float) -0:319 'inF1' (in 4-component vector of float) +0:319 'inF0' (layout(location=0 ) in 4-component vector of float) +0:319 'inF1' (layout(location=1 ) in 4-component vector of float) 0:319 Constant: 0:319 2.000000 0:320 Sequence @@ -4261,17 +4261,17 @@ gl_FragCoord origin is upper left 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) 0:321 roundEven (global 4-component vector of float) -0:321 'inF0' (in 4-component vector of float) +0:321 'inF0' (layout(location=0 ) in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) 0:322 inverse sqrt (global 4-component vector of float) -0:322 'inF0' (in 4-component vector of float) +0:322 'inF0' (layout(location=0 ) in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) 0:323 'r058' (temp 4-component vector of float) 0:323 clamp (temp 4-component vector of float) -0:323 'inF0' (in 4-component vector of float) +0:323 'inF0' (layout(location=0 ) in 4-component vector of float) 0:323 Constant: 0:323 0.000000 0:323 Constant: @@ -4280,59 +4280,59 @@ gl_FragCoord origin is upper left 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) 0:324 Sign (global 4-component vector of float) -0:324 'inF0' (in 4-component vector of float) +0:324 'inF0' (layout(location=0 ) in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) 0:325 sine (global 4-component vector of float) -0:325 'inF0' (in 4-component vector of float) +0:325 'inF0' (layout(location=0 ) in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF1' (in 4-component vector of float) +0:326 'inF1' (layout(location=1 ) in 4-component vector of float) 0:326 sine (temp 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) +0:326 'inF0' (layout(location=0 ) in 4-component vector of float) 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF2' (in 4-component vector of float) +0:326 'inF2' (layout(location=2 ) in 4-component vector of float) 0:326 cosine (temp 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) +0:326 'inF0' (layout(location=0 ) in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) 0:327 hyp. sine (global 4-component vector of float) -0:327 'inF0' (in 4-component vector of float) +0:327 'inF0' (layout(location=0 ) in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) 0:328 smoothstep (global 4-component vector of float) -0:328 'inF0' (in 4-component vector of float) -0:328 'inF1' (in 4-component vector of float) -0:328 'inF2' (in 4-component vector of float) +0:328 'inF0' (layout(location=0 ) in 4-component vector of float) +0:328 'inF1' (layout(location=1 ) in 4-component vector of float) +0:328 'inF2' (layout(location=2 ) in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) 0:329 sqrt (global 4-component vector of float) -0:329 'inF0' (in 4-component vector of float) +0:329 'inF0' (layout(location=0 ) in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) 0:330 step (global 4-component vector of float) -0:330 'inF0' (in 4-component vector of float) -0:330 'inF1' (in 4-component vector of float) +0:330 'inF0' (layout(location=0 ) in 4-component vector of float) +0:330 'inF1' (layout(location=1 ) in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) 0:331 tangent (global 4-component vector of float) -0:331 'inF0' (in 4-component vector of float) +0:331 'inF0' (layout(location=0 ) in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) 0:332 hyp. tangent (global 4-component vector of float) -0:332 'inF0' (in 4-component vector of float) +0:332 'inF0' (layout(location=0 ) in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) -0:334 'inF0' (in 4-component vector of float) +0:334 'inF0' (layout(location=0 ) in 4-component vector of float) 0:337 Sequence 0:337 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) @@ -6087,6 +6087,10 @@ gl_FragCoord origin is upper left Name 1811 "gs_ua4" Name 1812 "gs_ub4" Name 1813 "gs_uc4" + Decorate 810(inF0) Location 0 + Decorate 837(inU0) Location 3 + Decorate 845(inF1) Location 1 + Decorate 854(inF2) Location 2 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index c5647631..12e5919f 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -4,9 +4,9 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: -0:2 'n_dot_l' (in float) -0:2 'n_dot_h' (in float) -0:2 'm' (in float) +0:2 'n_dot_l' (layout(location=0 ) in float) +0:2 'n_dot_h' (layout(location=1 ) in float) +0:2 'm' (layout(location=2 ) in float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) @@ -15,15 +15,15 @@ gl_FragCoord origin is upper left 0:3 Constant: 0:3 1.000000 0:3 max (temp float) -0:3 'n_dot_l' (in float) +0:3 'n_dot_l' (layout(location=0 ) in float) 0:3 Constant: 0:3 0.000000 0:3 Test condition and select (temp float) 0:3 Condition 0:3 Compare Less Than (temp bool) 0:3 min (temp float) -0:3 'n_dot_l' (in float) -0:3 'n_dot_h' (in float) +0:3 'n_dot_l' (layout(location=0 ) in float) +0:3 'n_dot_h' (layout(location=1 ) in float) 0:3 Constant: 0:3 0.000000 0:3 true case @@ -31,8 +31,8 @@ gl_FragCoord origin is upper left 0:3 0.000000 0:3 false case 0:3 component-wise multiply (temp float) -0:3 'n_dot_h' (in float) -0:3 'm' (in float) +0:3 'n_dot_h' (layout(location=1 ) in float) +0:3 'm' (layout(location=2 ) in float) 0:3 Constant: 0:3 1.000000 0:? Linker Objects @@ -46,9 +46,9 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: -0:2 'n_dot_l' (in float) -0:2 'n_dot_h' (in float) -0:2 'm' (in float) +0:2 'n_dot_l' (layout(location=0 ) in float) +0:2 'n_dot_h' (layout(location=1 ) in float) +0:2 'm' (layout(location=2 ) in float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) @@ -57,15 +57,15 @@ gl_FragCoord origin is upper left 0:3 Constant: 0:3 1.000000 0:3 max (temp float) -0:3 'n_dot_l' (in float) +0:3 'n_dot_l' (layout(location=0 ) in float) 0:3 Constant: 0:3 0.000000 0:3 Test condition and select (temp float) 0:3 Condition 0:3 Compare Less Than (temp bool) 0:3 min (temp float) -0:3 'n_dot_l' (in float) -0:3 'n_dot_h' (in float) +0:3 'n_dot_l' (layout(location=0 ) in float) +0:3 'n_dot_h' (layout(location=1 ) in float) 0:3 Constant: 0:3 0.000000 0:3 true case @@ -73,8 +73,8 @@ gl_FragCoord origin is upper left 0:3 0.000000 0:3 false case 0:3 component-wise multiply (temp float) -0:3 'n_dot_h' (in float) -0:3 'm' (in float) +0:3 'n_dot_h' (layout(location=1 ) in float) +0:3 'm' (layout(location=2 ) in float) 0:3 Constant: 0:3 1.000000 0:? Linker Objects @@ -93,6 +93,9 @@ gl_FragCoord origin is upper left Name 12 "n_dot_l" Name 19 "n_dot_h" Name 28 "m" + Decorate 12(n_dot_l) Location 0 + Decorate 19(n_dot_h) Location 1 + Decorate 28(m) Location 2 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 25788000..9641513d 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -47,10 +47,10 @@ local_size = (1, 1, 1) 0:? 3.000000 0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (in 4-component vector of float) -0:158 'inF1' (in 4-component vector of float) -0:158 'inF2' (in 4-component vector of float) -0:158 'inI0' (in 4-component vector of int) +0:158 'inF0' (layout(location=0 ) in 4-component vector of float) +0:158 'inF1' (layout(location=1 ) in 4-component vector of float) +0:158 'inF2' (layout(location=2 ) in 4-component vector of float) +0:158 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:199 Sequence 0:199 move second child to first child (temp 4-component vector of float) @@ -115,10 +115,10 @@ local_size = (1, 1, 1) 0:? 3.000000 0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (in 4-component vector of float) -0:158 'inF1' (in 4-component vector of float) -0:158 'inF2' (in 4-component vector of float) -0:158 'inI0' (in 4-component vector of int) +0:158 'inF0' (layout(location=0 ) in 4-component vector of float) +0:158 'inF1' (layout(location=1 ) in 4-component vector of float) +0:158 'inF2' (layout(location=2 ) in 4-component vector of float) +0:158 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:199 Sequence 0:199 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 1227daed..e6ab9472 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -235,36 +235,36 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (in 4-component vector of float) -0:80 'inF1' (in 4-component vector of float) -0:80 'inF2' (in 4-component vector of float) -0:80 'inI0' (in 4-component vector of int) +0:80 'inF0' (layout(location=0 ) in 4-component vector of float) +0:80 'inF1' (layout(location=1 ) in 4-component vector of float) +0:80 'inF2' (layout(location=2 ) in 4-component vector of float) +0:80 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 0:82 bitCount (global 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) -0:82 'inF0' (in 4-component vector of float) +0:82 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 cross-product (global 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF0' (in 4-component vector of float) +0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF1' (in 4-component vector of float) +0:83 'inF1' (layout(location=1 ) in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op (global 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) -0:85 'inF0' (in 4-component vector of float) +0:85 'inF0' (layout(location=0 ) in 4-component vector of float) 0:86 findMSB (global 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) -0:86 'inF0' (in 4-component vector of float) +0:86 'inF0' (layout(location=0 ) in 4-component vector of float) 0:87 findLSB (global 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) -0:87 'inF0' (in 4-component vector of float) +0:87 'inF0' (layout(location=0 ) in 4-component vector of float) 0:89 bitFieldReverse (global 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) -0:89 'inF0' (in 4-component vector of float) +0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Sequence @@ -586,36 +586,36 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (in 4-component vector of float) -0:80 'inF1' (in 4-component vector of float) -0:80 'inF2' (in 4-component vector of float) -0:80 'inI0' (in 4-component vector of int) +0:80 'inF0' (layout(location=0 ) in 4-component vector of float) +0:80 'inF1' (layout(location=1 ) in 4-component vector of float) +0:80 'inF2' (layout(location=2 ) in 4-component vector of float) +0:80 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 0:82 bitCount (global 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) -0:82 'inF0' (in 4-component vector of float) +0:82 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 cross-product (global 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF0' (in 4-component vector of float) +0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) -0:83 'inF1' (in 4-component vector of float) +0:83 'inF1' (layout(location=1 ) in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op (global 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) -0:85 'inF0' (in 4-component vector of float) +0:85 'inF0' (layout(location=0 ) in 4-component vector of float) 0:86 findMSB (global 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) -0:86 'inF0' (in 4-component vector of float) +0:86 'inF0' (layout(location=0 ) in 4-component vector of float) 0:87 findLSB (global 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) -0:87 'inF0' (in 4-component vector of float) +0:87 'inF0' (layout(location=0 ) in 4-component vector of float) 0:89 bitFieldReverse (global 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) -0:89 'inF0' (in 4-component vector of float) +0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Sequence diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index f00e25ae..1d6f21d3 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -46,10 +46,10 @@ Shader version: 450 0:? 3.000000 0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (in 4-component vector of float) -0:176 'inF1' (in 4-component vector of float) -0:176 'inF2' (in 4-component vector of float) -0:176 'inI0' (in 4-component vector of int) +0:176 'inF0' (layout(location=0 ) in 4-component vector of float) +0:176 'inF1' (layout(location=1 ) in 4-component vector of float) +0:176 'inF2' (layout(location=2 ) in 4-component vector of float) +0:176 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:217 Sequence 0:217 move second child to first child (temp 4-component vector of float) @@ -178,10 +178,10 @@ Shader version: 450 0:? 3.000000 0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (in 4-component vector of float) -0:176 'inF1' (in 4-component vector of float) -0:176 'inF2' (in 4-component vector of float) -0:176 'inI0' (in 4-component vector of int) +0:176 'inF0' (layout(location=0 ) in 4-component vector of float) +0:176 'inF1' (layout(location=1 ) in 4-component vector of float) +0:176 'inF2' (layout(location=2 ) in 4-component vector of float) +0:176 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? Sequence 0:217 Sequence 0:217 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index bff38d8c..57ef9a5d 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -72,8 +72,8 @@ gl_FragCoord origin is upper left 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) -0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -83,15 +83,15 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Sequence -0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -117,7 +117,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -187,8 +187,8 @@ gl_FragCoord origin is upper left 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) -0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -198,15 +198,15 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Sequence -0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -263,6 +263,7 @@ gl_FragCoord origin is upper left Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 + MemberDecorate 80(PS_OUTPUT) 0 Location 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 97(g_sSamp) DescriptorSet 0 Decorate 97(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index b18bec5c..5c47fdb9 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -90,8 +90,8 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -101,15 +101,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -150,7 +150,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -238,8 +238,8 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -249,15 +249,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -344,6 +344,7 @@ gl_FragCoord origin is upper left Decorate 47(g_tTex2df4a) DescriptorSet 0 Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 75(PS_OUTPUT) 0 Location 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 92(g_sSamp) DescriptorSet 0 Decorate 92(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 1016ba49..cf1dbcc5 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -183,7 +183,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -304,8 +304,8 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -315,15 +315,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -414,6 +414,7 @@ gl_FragCoord origin is upper left Decorate 78(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 + MemberDecorate 106(PS_OUTPUT) 0 Location 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 123(g_sSamp) DescriptorSet 0 Decorate 123(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 059b8f59..f0311ba3 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.load.basic.dx10.vert Shader version: 450 0:? Sequence -0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:71 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) @@ -122,8 +122,8 @@ Shader version: 450 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:67 Pos: direct index for structure (temp 4-component vector of float Position) +0:67 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: @@ -132,9 +132,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:69 Sequence -0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -174,7 +174,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:71 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) @@ -295,8 +295,8 @@ Shader version: 450 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:67 Pos: direct index for structure (temp 4-component vector of float Position) +0:67 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: @@ -305,9 +305,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:69 Sequence -0:69 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -396,7 +396,7 @@ Shader version: 450 Decorate 78(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 - MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord + MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position Decorate 120(g_sSamp) DescriptorSet 0 Decorate 120(g_sSamp) Binding 0 Decorate 123(g_tTexcdf4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 16e5187d..8c005b83 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -24,8 +24,8 @@ gl_FragCoord origin is upper left 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) -0:34 Color: direct index for structure (temp 4-component vector of float) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -35,15 +35,15 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 0:37 Sequence -0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -66,7 +66,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -88,8 +88,8 @@ gl_FragCoord origin is upper left 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) -0:34 Color: direct index for structure (temp 4-component vector of float) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -99,15 +99,15 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 0:37 Sequence -0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -157,6 +157,7 @@ gl_FragCoord origin is upper left Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 + MemberDecorate 44(PS_OUTPUT) 0 Location 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 58(g_tTexbf4_test) DescriptorSet 0 Decorate 58(g_tTexbf4_test) Binding 0 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index acb97a4a..6d215e4c 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -192,7 +192,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -322,8 +322,8 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -333,15 +333,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -433,6 +433,7 @@ gl_FragCoord origin is upper left Decorate 86(g_tTex3df4) DescriptorSet 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 + MemberDecorate 118(PS_OUTPUT) 0 Location 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 135(g_sSamp) DescriptorSet 0 Decorate 135(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 1751db8c..b5226ad8 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Sequence -0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -250,8 +250,8 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) -0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -261,15 +261,15 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Sequence -0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -357,6 +357,7 @@ gl_FragCoord origin is upper left Decorate 51(g_tTex2df4a) DescriptorSet 0 Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 84(PS_OUTPUT) 0 Location 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 101(g_sSamp) DescriptorSet 0 Decorate 101(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index ebb943cc..57390695 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -4,15 +4,15 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (in 4-component vector of float) -0:2 'input2' (in 4-component vector of float) +0:2 'input1' (layout(location=0 ) in 4-component vector of float) +0:2 'input2' (layout(location=1 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 'input1' (layout(location=0 ) in 4-component vector of float) +0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -25,15 +25,15 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (in 4-component vector of float) -0:2 'input2' (in 4-component vector of float) +0:2 'input1' (layout(location=0 ) in 4-component vector of float) +0:2 'input2' (layout(location=1 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:3 max (global 4-component vector of float) -0:3 'input1' (in 4-component vector of float) -0:3 'input2' (in 4-component vector of float) +0:3 'input1' (layout(location=0 ) in 4-component vector of float) +0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -50,6 +50,8 @@ gl_FragCoord origin is upper left Name 9 "@entryPointOutput" Name 11 "input1" Name 13 "input2" + Decorate 11(input1) Location 0 + Decorate 13(input2) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 721b0d33..e09256c7 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -51,17 +51,17 @@ gl_FragCoord origin is upper left 0:15 Constant: 0:15 58 (const uint) 0:18 move second child to first child (temp 4-component vector of float) -0:18 color: direct index for structure (temp 4-component vector of float) -0:18 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:18 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:18 Constant: 0:18 0 (const int) -0:18 Construct vec4 (temp 4-component vector of float) +0:18 Construct vec4 (layout(location=0 ) temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) 0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -121,17 +121,17 @@ gl_FragCoord origin is upper left 0:15 Constant: 0:15 58 (const uint) 0:18 move second child to first child (temp 4-component vector of float) -0:18 color: direct index for structure (temp 4-component vector of float) -0:18 'ps_output' (temp structure{temp 4-component vector of float color}) +0:18 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:18 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:18 Constant: 0:18 0 (const int) -0:18 Construct vec4 (temp 4-component vector of float) +0:18 Construct vec4 (layout(location=0 ) temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) 0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects @@ -158,6 +158,7 @@ gl_FragCoord origin is upper left MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" Name 40 "@entryPointOutput" + MemberDecorate 30(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 6bedd3e3..7863ed22 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:43 '' (in 1-component vector of bool) 0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:46 Function Parameters: -0:46 'input' (in 4-component vector of float) +0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:53 Function Call: foo1(d1;b1; (global void) 0:53 'd' (temp double) @@ -351,7 +351,7 @@ gl_FragCoord origin is upper left 0:141 Sequence 0:141 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:141 'input' (in 4-component vector of float) +0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects @@ -470,7 +470,7 @@ gl_FragCoord origin is upper left 0:43 '' (in 1-component vector of bool) 0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:46 Function Parameters: -0:46 'input' (in 4-component vector of float) +0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:53 Function Call: foo1(d1;b1; (global void) 0:53 'd' (temp double) @@ -711,7 +711,7 @@ gl_FragCoord origin is upper left 0:141 Sequence 0:141 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:141 'input' (in 4-component vector of float) +0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects @@ -909,6 +909,7 @@ gl_FragCoord origin is upper left Name 500 "param" Name 504 "@entryPointOutput" Name 506 "input" + Decorate 506(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 4c70ea82..27db9211 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:131 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -11,8 +11,8 @@ gl_FragCoord origin is upper left 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) -0:126 Color: direct index for structure (temp 4-component vector of float) -0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:126 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -26,15 +26,15 @@ gl_FragCoord origin is upper left 0:126 1.000000 0:127 move second child to first child (temp float) 0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Sequence -0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects @@ -45,7 +45,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:131 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -54,8 +54,8 @@ gl_FragCoord origin is upper left 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) -0:126 Color: direct index for structure (temp 4-component vector of float) -0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:126 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -69,15 +69,15 @@ gl_FragCoord origin is upper left 0:126 1.000000 0:127 move second child to first child (temp float) 0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Sequence -0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects @@ -97,6 +97,7 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" Name 27 "@entryPointOutput" + MemberDecorate 12(PS_OUTPUT) 0 Location 0 MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 4ad10ad4..e6982c65 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -4,10 +4,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (in 4-component vector of float) -0:7 'a2' (in 4-component vector of float) -0:7 'a3' (in 4-component vector of float) -0:7 'a4' (in 4-component vector of float) +0:7 'a1' (layout(location=0 ) in 4-component vector of float) +0:7 'a2' (layout(location=1 ) in 4-component vector of float) +0:7 'a3' (layout(location=2 ) in 4-component vector of float) +0:7 'a4' (layout(location=3 ) in 4-component vector of float) 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp 4-component vector of float) @@ -15,15 +15,15 @@ gl_FragCoord origin is upper left 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) 0:? Construct vec4 (temp 4-component vector of float) 0:8 component-wise multiply (temp 3-component vector of float) 0:8 vector swizzle (temp 3-component vector of float) -0:8 'a1' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:8 Constant: 0:8 2 (const int) 0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:8 Constant: 0:8 2 (const int) 0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) 0:8 Constant: 0:8 3 (const int) 0:8 Branch: Return @@ -56,10 +56,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (in 4-component vector of float) -0:7 'a2' (in 4-component vector of float) -0:7 'a3' (in 4-component vector of float) -0:7 'a4' (in 4-component vector of float) +0:7 'a1' (layout(location=0 ) in 4-component vector of float) +0:7 'a2' (layout(location=1 ) in 4-component vector of float) +0:7 'a3' (layout(location=2 ) in 4-component vector of float) +0:7 'a4' (layout(location=3 ) in 4-component vector of float) 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp 4-component vector of float) @@ -67,15 +67,15 @@ gl_FragCoord origin is upper left 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (in 4-component vector of float) -0:8 'a3' (in 4-component vector of float) -0:8 'a4' (in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) +0:8 'a4' (layout(location=3 ) in 4-component vector of float) 0:? Construct vec4 (temp 4-component vector of float) 0:8 component-wise multiply (temp 3-component vector of float) 0:8 vector swizzle (temp 3-component vector of float) -0:8 'a1' (in 4-component vector of float) +0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:8 Constant: 0:8 2 (const int) 0:8 vector swizzle (temp 3-component vector of float) -0:8 'a2' (in 4-component vector of float) +0:8 'a2' (layout(location=1 ) in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:8 Constant: 0:8 2 (const int) 0:8 direct index (temp float) -0:8 'a3' (in 4-component vector of float) +0:8 'a3' (layout(location=2 ) in 4-component vector of float) 0:8 Constant: 0:8 3 (const int) 0:8 Branch: Return @@ -114,6 +114,10 @@ gl_FragCoord origin is upper left Name 13 "a2" Name 15 "a3" Name 19 "a4" + Decorate 11(a1) Location 0 + Decorate 13(a2) Location 1 + Decorate 15(a3) Location 2 + Decorate 19(a4) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index a06865a7..c1feb6de 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -4,10 +4,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: -0:7 'a1' (in int) -0:7 'a2' (in int) -0:7 'a3' (in int) -0:7 'a4' (in int) +0:7 'a1' (layout(location=0 ) in int) +0:7 'a2' (layout(location=1 ) in int) +0:7 'a3' (layout(location=2 ) in int) +0:7 'a4' (layout(location=3 ) in int) 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp int) @@ -16,17 +16,17 @@ gl_FragCoord origin is upper left 0:8 left-shift (temp int) 0:8 add (temp int) 0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a1' (layout(location=0 ) in int) +0:8 'a2' (layout(location=1 ) in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) 0:8 left-shift (temp int) -0:8 'a1' (in int) +0:8 'a1' (layout(location=0 ) in int) 0:8 add (temp int) -0:8 'a2' (in int) +0:8 'a2' (layout(location=1 ) in int) 0:8 component-wise multiply (temp int) -0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects @@ -39,10 +39,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: -0:7 'a1' (in int) -0:7 'a2' (in int) -0:7 'a3' (in int) -0:7 'a4' (in int) +0:7 'a1' (layout(location=0 ) in int) +0:7 'a2' (layout(location=1 ) in int) +0:7 'a3' (layout(location=2 ) in int) +0:7 'a4' (layout(location=3 ) in int) 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp int) @@ -51,17 +51,17 @@ gl_FragCoord origin is upper left 0:8 left-shift (temp int) 0:8 add (temp int) 0:8 component-wise multiply (temp int) -0:8 'a1' (in int) -0:8 'a2' (in int) -0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a1' (layout(location=0 ) in int) +0:8 'a2' (layout(location=1 ) in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) 0:8 left-shift (temp int) -0:8 'a1' (in int) +0:8 'a1' (layout(location=0 ) in int) 0:8 add (temp int) -0:8 'a2' (in int) +0:8 'a2' (layout(location=1 ) in int) 0:8 component-wise multiply (temp int) -0:8 'a3' (in int) -0:8 'a4' (in int) +0:8 'a3' (layout(location=2 ) in int) +0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects @@ -80,6 +80,10 @@ gl_FragCoord origin is upper left Name 12 "a2" Name 15 "a3" Name 18 "a4" + Decorate 10(a1) Location 0 + Decorate 12(a2) Location 1 + Decorate 15(a3) Location 2 + Decorate 18(a4) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index e2577c7a..252205dd 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -6,12 +6,12 @@ gl_FragCoord origin is upper left 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:15 Function Definition: main( (global structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) -0:11 color: direct index for structure (noContraction temp 4-component vector of float) -0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:11 color: direct index for structure (layout(location=0 ) noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: @@ -20,9 +20,9 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:12 Sequence -0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 move second child to first child (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -38,12 +38,12 @@ gl_FragCoord origin is upper left 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:15 Function Definition: main( (global structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) -0:11 color: direct index for structure (noContraction temp 4-component vector of float) -0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:11 color: direct index for structure (layout(location=0 ) noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: @@ -52,9 +52,9 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:12 Sequence -0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 move second child to first child (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -77,6 +77,7 @@ gl_FragCoord origin is upper left Name 18 "ps_output" Name 26 "@entryPointOutput" Name 30 "precisefloat" + MemberDecorate 16(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 413a4f0f..e6387e55 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:202 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence @@ -491,15 +491,15 @@ gl_FragCoord origin is upper left 0:196 Convert int to float (temp float) 0:196 'c2' (temp int) 0:199 move second child to first child (temp 4-component vector of float) -0:199 Color: direct index for structure (temp 4-component vector of float) -0:199 'psout' (temp structure{temp 4-component vector of float Color}) +0:199 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:199 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence -0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) +0:200 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -755,7 +755,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:202 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence @@ -1009,15 +1009,15 @@ gl_FragCoord origin is upper left 0:196 Convert int to float (temp float) 0:196 'c2' (temp int) 0:199 move second child to first child (temp 4-component vector of float) -0:199 Color: direct index for structure (temp 4-component vector of float) -0:199 'psout' (temp structure{temp 4-component vector of float Color}) +0:199 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:199 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence -0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) +0:200 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -1129,6 +1129,7 @@ gl_FragCoord origin is upper left MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" Name 477 "@entryPointOutput" + MemberDecorate 471(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 5413a6f5..304ff5ef 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -105,8 +105,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -116,15 +116,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -249,8 +249,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -260,15 +260,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -332,6 +332,7 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 120(PS_OUTPUT) 0 Location 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 9cd4ebd0..e0156718 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:91 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -215,8 +215,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) -0:86 Color: direct index for structure (temp 4-component vector of float) -0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:86 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -226,15 +226,15 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Sequence -0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:91 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -472,8 +472,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) -0:86 Color: direct index for structure (temp 4-component vector of float) -0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:86 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -483,15 +483,15 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Sequence -0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -584,6 +584,7 @@ gl_FragCoord origin is upper left Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 171(PS_OUTPUT) 0 Location 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 183(g_sSamp2d) DescriptorSet 0 Decorate 184(g_sSamp2D_b) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index d11d16f5..12deed41 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -167,7 +167,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -288,8 +288,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -299,15 +299,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -376,6 +376,7 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 76315296..939595a3 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -84,8 +84,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -95,15 +95,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -122,7 +122,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -204,8 +204,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -215,15 +215,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -274,6 +274,7 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4) DescriptorSet 0 Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index e735d34d..d81c4a70 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -368,6 +368,7 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 120(PS_OUTPUT) 0 Location 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index d61eda9d..99e63c96 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -153,8 +153,8 @@ gl_FragCoord origin is upper left 0:45 Constant: 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -164,15 +164,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -348,8 +348,8 @@ gl_FragCoord origin is upper left 0:45 Constant: 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -359,15 +359,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -442,6 +442,7 @@ gl_FragCoord origin is upper left Decorate 119(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 143(PS_OUTPUT) 0 Location 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 157(g_tTex1df4a) DescriptorSet 0 Decorate 157(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index b2e77efc..0165eb35 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -335,15 +335,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -412,6 +412,7 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 52263c49..da8f8958 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -228,8 +228,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -239,15 +239,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,6 +298,7 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index a61aa29b..4a4d5f4b 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -314,8 +314,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -325,15 +325,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -418,6 +418,7 @@ gl_FragCoord origin is upper left Decorate 96(g_tTexcdf4a) DescriptorSet 0 Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 129(PS_OUTPUT) 0 Location 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 145(g_tTex1df4) DescriptorSet 0 Decorate 145(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 93fe73cf..1779e8dd 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -175,7 +175,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -296,8 +296,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -307,15 +307,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -401,6 +401,7 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 143(g_tTex3df4) DescriptorSet 0 Decorate 146(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 71eb5206..f659c7fb 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -148,7 +148,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -242,8 +242,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -253,15 +253,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,6 +341,7 @@ gl_FragCoord origin is upper left Decorate 52(g_tTex2df4) DescriptorSet 0 Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 + MemberDecorate 92(PS_OUTPUT) 0 Location 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 108(g_tTex3df4) DescriptorSet 0 Decorate 111(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index c2cdb4d6..caf9357b 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -102,8 +102,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -113,15 +113,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -154,7 +154,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -254,8 +254,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -265,15 +265,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -352,6 +352,7 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2df4a) DescriptorSet 0 Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 98(PS_OUTPUT) 0 Location 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 114(g_tTex1df4) DescriptorSet 0 Decorate 114(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 5a7b7409..0d60dda0 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -150,8 +150,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -161,15 +161,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -202,7 +202,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -350,8 +350,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -361,15 +361,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -454,6 +454,7 @@ gl_FragCoord origin is upper left Decorate 97(g_tTexcdf4a) DescriptorSet 0 Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 130(PS_OUTPUT) 0 Location 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 146(g_tTex1df4) DescriptorSet 0 Decorate 146(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index ba84224d..42ced8cd 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -193,7 +193,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -332,8 +332,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -343,15 +343,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -437,6 +437,7 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4) DescriptorSet 0 Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 0 Location 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex3df4) DescriptorSet 0 Decorate 147(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 9bed7964..467013fe 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -108,8 +108,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -119,15 +119,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -160,7 +160,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -266,8 +266,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -277,15 +277,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -365,6 +365,7 @@ gl_FragCoord origin is upper left Decorate 53(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 + MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 109(g_tTex3df4) DescriptorSet 0 Decorate 112(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index b2dcaecc..ffcc6d7a 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -114,8 +114,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -125,15 +125,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -278,8 +278,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -289,15 +289,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -376,6 +376,7 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4a) DescriptorSet 0 Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 + MemberDecorate 99(PS_OUTPUT) 0 Location 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 115(g_tTex1df4) DescriptorSet 0 Decorate 115(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index f42074b8..49e6b72f 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -159,8 +159,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -170,15 +170,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -200,7 +200,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -357,8 +357,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -368,15 +368,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -440,6 +440,7 @@ gl_FragCoord origin is upper left Decorate 85(g_tTexcdf4) DescriptorSet 0 Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 113(PS_OUTPUT) 0 Location 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 127(g_tTex1df4a) DescriptorSet 0 Decorate 127(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 403bfca1..80be6468 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -207,8 +207,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -218,15 +218,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -251,7 +251,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -456,8 +456,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -467,15 +467,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -550,6 +550,7 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 148(PS_OUTPUT) 0 Location 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 162(g_tTex1df4a) DescriptorSet 0 Decorate 162(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 54874f1a..6b83def7 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplegrad.basic.dx10.vert Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -206,8 +206,8 @@ Shader version: 450 0:? 1.200000 0:? 1.300000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float Position) +0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -216,9 +216,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -447,8 +447,8 @@ Shader version: 450 0:? 1.200000 0:? 1.300000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float Position) +0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -457,9 +457,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -532,7 +532,7 @@ Shader version: 450 Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord + MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position Decorate 159(g_tTex1df4a) DescriptorSet 0 Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index f73d8cf6..732e731b 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -177,8 +177,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -188,15 +188,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -396,8 +396,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -407,15 +407,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -484,6 +484,7 @@ gl_FragCoord origin is upper left Decorate 95(g_tTex3df4) DescriptorSet 0 Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 + MemberDecorate 132(PS_OUTPUT) 0 Location 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex1df4a) DescriptorSet 0 Decorate 144(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index d6bc7643..290296e1 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -114,8 +114,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) -0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -125,15 +125,15 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Sequence -0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -155,7 +155,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -267,8 +267,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) -0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -278,15 +278,15 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Sequence -0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -344,6 +344,7 @@ gl_FragCoord origin is upper left Decorate 55(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 + MemberDecorate 86(PS_OUTPUT) 0 Location 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 98(g_tTex1df4a) DescriptorSet 0 Decorate 98(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 9ed0650f..b47e5e0f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -368,6 +368,7 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4a) DescriptorSet 0 Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 121(PS_OUTPUT) 0 Location 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 134(g_tTex1df4) DescriptorSet 0 Decorate 134(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 38676721..f91f8c13 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -153,8 +153,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -164,15 +164,15 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Sequence -0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -198,7 +198,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -349,8 +349,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) -0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -360,15 +360,15 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Sequence -0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -445,6 +445,7 @@ gl_FragCoord origin is upper left Decorate 120(g_tTexcdf4) DescriptorSet 0 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 144(PS_OUTPUT) 0 Location 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 158(g_sSamp2d) DescriptorSet 0 Decorate 159(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index aafcb825..088c465e 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplelevel.basic.dx10.vert Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -152,8 +152,8 @@ Shader version: 450 0:44 Constant: 0:44 0.750000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float Position) +0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -162,9 +162,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -188,7 +188,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -339,8 +339,8 @@ Shader version: 450 0:44 Constant: 0:44 0.750000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord) -0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float Position) +0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -349,9 +349,9 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float FragCoord Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float FragCoord Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -424,7 +424,7 @@ Shader version: 450 Decorate 120(g_tTexcdf4) DescriptorSet 0 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord + MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position Decorate 155(g_tTex1df4a) DescriptorSet 0 Decorate 155(g_tTex1df4a) Binding 1 2: TypeVoid diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 2dc61c75..ddda3b39 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -335,15 +335,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -412,6 +412,7 @@ gl_FragCoord origin is upper left Decorate 93(g_tTex3df4) DescriptorSet 0 Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 + MemberDecorate 128(PS_OUTPUT) 0 Location 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 140(g_tTex1df4a) DescriptorSet 0 Decorate 140(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index bc3c4ae2..69b65440 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -228,8 +228,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -239,15 +239,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,6 +298,7 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 + MemberDecorate 94(PS_OUTPUT) 0 Location 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 106(g_tTex1df4a) DescriptorSet 0 Decorate 106(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 20e5c14c..ba0c2d53 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:4 'x' (temp int) 0:? Sequence @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:4 'x' (temp int) 0:? Sequence diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 470556ed..ce7ae918 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -6,12 +6,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) -0:16 color: direct index for structure (temp 4-component vector of float) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: @@ -20,9 +20,9 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects @@ -37,12 +37,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) -0:16 color: direct index for structure (temp 4-component vector of float) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: @@ -51,9 +51,9 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects @@ -73,6 +73,7 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" Name 22 "@entryPointOutput" + MemberDecorate 12(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index d4309427..ab72308a 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -4,13 +4,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -23,13 +23,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) 0:3 sine (global 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -45,6 +45,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" Name 11 "input" + Decorate 11(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index e5fbf654..16e1fba4 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -2,12 +2,12 @@ hlsl.stringtoken.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) -0:18 Color: direct index for structure (temp 4-component vector of float) -0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:18 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: @@ -16,9 +16,9 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 1.000000 0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) +0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -31,12 +31,12 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) -0:18 Color: direct index for structure (temp 4-component vector of float) -0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) +0:18 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: @@ -45,9 +45,9 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 1.000000 0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) +0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -69,6 +69,7 @@ gl_FragCoord origin is upper left Name 19 "@entryPointOutput" Name 24 "TestTexture" Name 26 "TestUF" + MemberDecorate 8(PS_OUTPUT) 0 Location 0 Decorate 24(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index fed3a893..36fa18f0 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:34 Function Parameters: -0:34 'input' (in 4-component vector of float) +0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) @@ -18,19 +18,19 @@ gl_FragCoord origin is upper left 0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: 0:40 0 (const int) -0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) -0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float) +0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:40 Constant: 0:40 7 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:42 'input' (in 4-component vector of float) +0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:34 Function Parameters: -0:34 'input' (in 4-component vector of float) +0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) @@ -53,19 +53,19 @@ gl_FragCoord origin is upper left 0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: 0:40 0 (const int) -0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord) -0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float) +0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:40 Constant: 0:40 7 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:42 'input' (in 4-component vector of float) +0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4}) +0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left Name 44 "ff5" Name 45 "ff6" MemberDecorate 25 4 BuiltIn FrontFacing - MemberDecorate 25 7 BuiltIn FragCoord + Decorate 36(input) Location 0 Decorate 44(ff5) Offset 20 Decorate 44(ff5) Binding 5 Decorate 45(ff6) Offset 36 diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index ba5ce50d..7185eb04 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -4,14 +4,14 @@ gl_FragCoord origin is upper left 0:? Sequence 0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) -0:2 'c' (in int) -0:2 'd' (in int) +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'c' (layout(location=1 ) in int) +0:2 'd' (layout(location=2 ) in int) 0:? Sequence -0:3 'c' (in int) +0:3 'c' (layout(location=1 ) in int) 0:7 switch 0:7 condition -0:7 'c' (in int) +0:7 'c' (layout(location=1 ) in int) 0:7 body 0:7 Sequence 0:9 default: @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:7 Branch: Break 0:12 switch 0:12 condition -0:12 'c' (in int) +0:12 'c' (layout(location=1 ) in int) 0:12 body 0:12 Sequence 0:13 case: with expression @@ -27,18 +27,18 @@ gl_FragCoord origin is upper left 0:13 1 (const int) 0:? Sequence 0:14 Pre-Increment (temp 4-component vector of float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Branch: Break 0:16 case: with expression 0:16 Constant: 0:16 2 (const int) 0:? Sequence 0:17 Pre-Decrement (temp 4-component vector of float) -0:17 'input' (in 4-component vector of float) +0:17 'input' (layout(location=0 ) in 4-component vector of float) 0:18 Branch: Break 0:21 switch 0:21 condition -0:21 'c' (in int) +0:21 'c' (layout(location=1 ) in int) 0:21 body 0:21 Sequence 0:22 case: with expression @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:22 1 (const int) 0:? Sequence 0:23 Pre-Increment (temp 4-component vector of float) -0:23 'input' (in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Break 0:25 case: with expression 0:25 Constant: @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:26 switch 0:26 condition -0:26 'd' (in int) +0:26 'd' (layout(location=2 ) in int) 0:26 body 0:26 Sequence 0:27 case: with expression @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:27 2 (const int) 0:? Sequence 0:28 add second child into first child (temp 4-component vector of float) -0:28 'input' (in 4-component vector of float) +0:28 'input' (layout(location=0 ) in 4-component vector of float) 0:28 Constant: 0:28 2.000000 0:29 Branch: Break @@ -71,7 +71,7 @@ gl_FragCoord origin is upper left 0:30 3 (const int) 0:? Sequence 0:31 add second child into first child (temp 4-component vector of float) -0:31 'input' (in 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) 0:31 Constant: 0:31 3.000000 0:32 Branch: Break @@ -79,12 +79,12 @@ gl_FragCoord origin is upper left 0:35 default: 0:? Sequence 0:36 add second child into first child (temp 4-component vector of float) -0:36 'input' (in 4-component vector of float) +0:36 'input' (layout(location=0 ) in 4-component vector of float) 0:36 Constant: 0:36 4.000000 0:39 switch 0:39 condition -0:39 'c' (in int) +0:39 'c' (layout(location=1 ) in int) 0:39 body 0:39 Sequence 0:40 case: with expression @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Break 0:43 switch 0:43 condition -0:43 'c' (in int) +0:43 'c' (layout(location=1 ) in int) 0:43 body 0:43 Sequence 0:44 case: with expression @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:46 3 (const int) 0:? Sequence 0:47 Pre-Increment (temp 4-component vector of float) -0:47 'input' (in 4-component vector of float) +0:47 'input' (layout(location=0 ) in 4-component vector of float) 0:48 Branch: Break 0:49 case: with expression 0:49 Constant: @@ -118,11 +118,11 @@ gl_FragCoord origin is upper left 0:50 5 (const int) 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) -0:51 'input' (in 4-component vector of float) +0:51 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:54 'input' (in 4-component vector of float) +0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects @@ -135,14 +135,14 @@ gl_FragCoord origin is upper left 0:? Sequence 0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) -0:2 'c' (in int) -0:2 'd' (in int) +0:2 'input' (layout(location=0 ) in 4-component vector of float) +0:2 'c' (layout(location=1 ) in int) +0:2 'd' (layout(location=2 ) in int) 0:? Sequence -0:3 'c' (in int) +0:3 'c' (layout(location=1 ) in int) 0:7 switch 0:7 condition -0:7 'c' (in int) +0:7 'c' (layout(location=1 ) in int) 0:7 body 0:7 Sequence 0:9 default: @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:7 Branch: Break 0:12 switch 0:12 condition -0:12 'c' (in int) +0:12 'c' (layout(location=1 ) in int) 0:12 body 0:12 Sequence 0:13 case: with expression @@ -158,18 +158,18 @@ gl_FragCoord origin is upper left 0:13 1 (const int) 0:? Sequence 0:14 Pre-Increment (temp 4-component vector of float) -0:14 'input' (in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Branch: Break 0:16 case: with expression 0:16 Constant: 0:16 2 (const int) 0:? Sequence 0:17 Pre-Decrement (temp 4-component vector of float) -0:17 'input' (in 4-component vector of float) +0:17 'input' (layout(location=0 ) in 4-component vector of float) 0:18 Branch: Break 0:21 switch 0:21 condition -0:21 'c' (in int) +0:21 'c' (layout(location=1 ) in int) 0:21 body 0:21 Sequence 0:22 case: with expression @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:22 1 (const int) 0:? Sequence 0:23 Pre-Increment (temp 4-component vector of float) -0:23 'input' (in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Break 0:25 case: with expression 0:25 Constant: @@ -185,7 +185,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:26 switch 0:26 condition -0:26 'd' (in int) +0:26 'd' (layout(location=2 ) in int) 0:26 body 0:26 Sequence 0:27 case: with expression @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:27 2 (const int) 0:? Sequence 0:28 add second child into first child (temp 4-component vector of float) -0:28 'input' (in 4-component vector of float) +0:28 'input' (layout(location=0 ) in 4-component vector of float) 0:28 Constant: 0:28 2.000000 0:29 Branch: Break @@ -202,7 +202,7 @@ gl_FragCoord origin is upper left 0:30 3 (const int) 0:? Sequence 0:31 add second child into first child (temp 4-component vector of float) -0:31 'input' (in 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) 0:31 Constant: 0:31 3.000000 0:32 Branch: Break @@ -210,12 +210,12 @@ gl_FragCoord origin is upper left 0:35 default: 0:? Sequence 0:36 add second child into first child (temp 4-component vector of float) -0:36 'input' (in 4-component vector of float) +0:36 'input' (layout(location=0 ) in 4-component vector of float) 0:36 Constant: 0:36 4.000000 0:39 switch 0:39 condition -0:39 'c' (in int) +0:39 'c' (layout(location=1 ) in int) 0:39 body 0:39 Sequence 0:40 case: with expression @@ -225,7 +225,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Break 0:43 switch 0:43 condition -0:43 'c' (in int) +0:43 'c' (layout(location=1 ) in int) 0:43 body 0:43 Sequence 0:44 case: with expression @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:46 3 (const int) 0:? Sequence 0:47 Pre-Increment (temp 4-component vector of float) -0:47 'input' (in 4-component vector of float) +0:47 'input' (layout(location=0 ) in 4-component vector of float) 0:48 Branch: Break 0:49 case: with expression 0:49 Constant: @@ -249,11 +249,11 @@ gl_FragCoord origin is upper left 0:50 5 (const int) 0:? Sequence 0:51 Pre-Decrement (temp 4-component vector of float) -0:51 'input' (in 4-component vector of float) +0:51 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:54 'input' (in 4-component vector of float) +0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects @@ -271,6 +271,9 @@ gl_FragCoord origin is upper left Name 21 "input" Name 41 "d" Name 81 "@entryPointOutput" + Decorate 8(c) Location 1 + Decorate 21(input) Location 0 + Decorate 41(d) Location 2 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 830cff7a..df1ef864 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (global void) 0:7 Function Call: foo2( (global void) @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (global void) 0:7 Function Call: foo2( (global void) diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 3d2ba925..a3fb1986 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -4,19 +4,19 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition 0:3 Compare Not Equal (temp bool) -0:3 'input' (in 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition @@ -44,19 +44,19 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (in 4-component vector of float) +0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition 0:3 Compare Not Equal (temp bool) -0:3 'input' (in 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float) -0:3 'input' (in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:4 Loop with condition tested first 0:4 Loop Condition @@ -87,6 +87,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 14 "input" Name 22 "@entryPointOutput" + Decorate 14(input) Location 0 2: TypeVoid 3: TypeFunction 2 11: TypeFloat 32 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 297730e9..fdb0d34b 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -30,6 +30,7 @@ Linked fragment stage: Decorate 3789 DescriptorSet 0 Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 + MemberDecorate 1032 0 Location 0 MemberDecorate 1032 1 BuiltIn FragDepth 8: TypeVoid 1282: TypeFunction 8 diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index fe4d1b05..db03ad9d 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -78,6 +78,7 @@ Linked fragment stage: Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 171(PS_OUTPUT) 0 Location 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 182(g_sSamp2d) DescriptorSet 0 Decorate 183(g_sSamp2D_b) DescriptorSet 0 diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index d7f3003e..fe865a16 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -30,6 +30,7 @@ Linked fragment stage: Decorate 147 DescriptorSet 0 Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 + MemberDecorate 171 0 Location 0 MemberDecorate 171 1 BuiltIn FragDepth Decorate 182 DescriptorSet 0 Decorate 183 DescriptorSet 0 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 6577370b..31e43ca9 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1447" +#define GLSLANG_REVISION "Overload400-PrecQual.1452" #define GLSLANG_DATE "29-Aug-2016" From a05d8b56045cf2e7c8cc154ebaa5b3864a80e41e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 29 Aug 2016 16:49:39 -0600 Subject: [PATCH 100/217] HLSL: Remove recent change to put locations on SV_TARGET*. This put locations on members of structures, which is not allowed in either AST or SPIR-V. This was caught by asserts in the debug build. --- .../hlsl.calculatelod.dx10.frag.out | 29 +++++++++---------- .../hlsl.calculatelodunclamped.dx10.frag.out | 28 +++++++++--------- Test/baseResults/hlsl.constructexpr.frag.out | 25 ++++++++-------- .../hlsl.gather.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.gather.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.gather.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.gather.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.gatherRGBA.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.gatherRGBA.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.gatherRGBA.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.getdimensions.dx10.frag.out | 29 +++++++++---------- .../hlsl.getsampleposition.dx10.frag.out | 28 +++++++++--------- Test/baseResults/hlsl.init2.frag.out | 25 ++++++++-------- Test/baseResults/hlsl.inoutquals.frag.out | 29 +++++++++---------- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 29 +++++++++---------- .../baseResults/hlsl.load.array.dx10.frag.out | 29 +++++++++---------- .../baseResults/hlsl.load.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.load.buffer.dx10.frag.out | 29 +++++++++---------- .../hlsl.load.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.load.offsetarray.dx10.frag.out | 29 +++++++++---------- .../baseResults/hlsl.numericsuffixes.frag.out | 29 +++++++++---------- Test/baseResults/hlsl.pp.line.frag.out | 29 +++++++++---------- Test/baseResults/hlsl.precise.frag.out | 25 ++++++++-------- Test/baseResults/hlsl.promotions.frag.out | 25 ++++++++-------- .../hlsl.sample.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.sample.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.sample.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.sample.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplebias.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplebias.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplebias.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplebias.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplecmp.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplecmp.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplecmp.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 29 +++++++++---------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 29 +++++++++---------- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 29 +++++++++---------- ...sl.samplecmplevelzero.offset.dx10.frag.out | 29 +++++++++---------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplegrad.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplegrad.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplegrad.offset.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplelevel.array.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplelevel.basic.dx10.frag.out | 29 +++++++++---------- .../hlsl.samplelevel.offset.dx10.frag.out | 29 +++++++++---------- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 29 +++++++++---------- Test/baseResults/hlsl.semicolons.frag.out | 25 ++++++++-------- Test/baseResults/hlsl.stringtoken.frag.out | 25 ++++++++-------- ...emap.hlsl.sample.basic.everything.frag.out | 1 - .../remap.hlsl.sample.basic.none.frag.out | 1 - .../remap.hlsl.sample.basic.strip.frag.out | 1 - glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 18 ++++++------ 56 files changed, 712 insertions(+), 764 deletions(-) diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 2ae921a3..0ce3e645 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -369,7 +369,6 @@ gl_FragCoord origin is upper left Decorate 93(g_tTexcdf4a) DescriptorSet 0 Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 131(PS_OUTPUT) 0 Location 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex1df4) DescriptorSet 0 Decorate 144(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 0ef98d74..8dbdc57b 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -135,8 +135,8 @@ ERROR: node is still EOpNull! 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -146,15 +146,15 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -297,8 +297,8 @@ ERROR: node is still EOpNull! 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -308,15 +308,15 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index c9fb8ed3..0dab6a80 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -2,7 +2,7 @@ hlsl.constructexpr.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -25,8 +25,8 @@ gl_FragCoord origin is upper left 0:? 11.000000 0:? 12.000000 0:15 move second child to first child (temp 4-component vector of float) -0:15 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:15 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:15 color: direct index for structure (temp 4-component vector of float) +0:15 'ps_output' (temp structure{temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: @@ -35,9 +35,9 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:16 Sequence -0:16 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects @@ -48,7 +48,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -71,8 +71,8 @@ gl_FragCoord origin is upper left 0:? 11.000000 0:? 12.000000 0:15 move second child to first child (temp 4-component vector of float) -0:15 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:15 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:15 color: direct index for structure (temp 4-component vector of float) +0:15 'ps_output' (temp structure{temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: @@ -81,9 +81,9 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:16 Sequence -0:16 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects @@ -101,7 +101,6 @@ gl_FragCoord origin is upper left MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" Name 31 "@entryPointOutput" - MemberDecorate 22(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 27b24387..58f7a77c 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -75,8 +75,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -86,15 +86,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -189,8 +189,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -200,15 +200,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -265,7 +265,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTexcdf4a) DescriptorSet 0 Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 90(PS_OUTPUT) 0 Location 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 104(g_tTex1df4a) DescriptorSet 0 Decorate 104(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 98be6d59..c75a0598 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -69,8 +69,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) -0:44 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:44 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Color: direct index for structure (temp 4-component vector of float) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -80,15 +80,15 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Sequence -0:47 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -114,7 +114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -181,8 +181,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) -0:44 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:44 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Color: direct index for structure (temp 4-component vector of float) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -192,15 +192,15 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:45 move second child to first child (temp float) 0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Sequence -0:47 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -264,7 +264,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTexcdf4) DescriptorSet 0 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 90(PS_OUTPUT) 0 Location 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(g_sSamp2d) DescriptorSet 0 Decorate 106(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 3e19e5f8..2f856642 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -45,8 +45,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -56,15 +56,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) -0:40 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Color: direct index for structure (temp 4-component vector of float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:41 move second child to first child (temp float) 0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Sequence -0:43 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,7 +207,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 - MemberDecorate 62(PS_OUTPUT) 0 Location 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 76(g_tTex1df4a) DescriptorSet 0 Decorate 76(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 5e0a07e3..5cfae1ef 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -48,8 +48,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) -0:32 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:32 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -59,15 +59,15 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Sequence -0:35 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -86,7 +86,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) -0:32 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:32 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:33 move second child to first child (temp float) 0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Sequence -0:35 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -195,7 +195,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 - MemberDecorate 63(PS_OUTPUT) 0 Location 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 77(g_tTex1df4a) DescriptorSet 0 Decorate 77(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index ddeb525f..ac59887b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -246,8 +246,8 @@ gl_FragCoord origin is upper left 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -257,15 +257,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -291,7 +291,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -535,8 +535,8 @@ gl_FragCoord origin is upper left 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -546,15 +546,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -637,7 +637,6 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4a) DescriptorSet 0 Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 195(PS_OUTPUT) 0 Location 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 207(g_sSamp2d) DescriptorSet 0 Decorate 210(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 79e779b9..63c9946d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -246,8 +246,8 @@ gl_FragCoord origin is upper left 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) -0:73 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Color: direct index for structure (temp 4-component vector of float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -257,15 +257,15 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:74 move second child to first child (temp float) 0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 0:76 Sequence -0:76 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -295,7 +295,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -539,8 +539,8 @@ gl_FragCoord origin is upper left 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) -0:73 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Color: direct index for structure (temp 4-component vector of float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -550,15 +550,15 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:74 move second child to first child (temp float) 0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 0:76 Sequence -0:76 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -648,7 +648,6 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4) DescriptorSet 0 Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 196(PS_OUTPUT) 0 Location 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 208(g_sSamp2d) DescriptorSet 0 Decorate 211(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 4d6fd70c..5df5248e 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -318,8 +318,8 @@ gl_FragCoord origin is upper left 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) -0:112 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:112 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -329,15 +329,15 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:113 move second child to first child (temp float) 0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 0:115 Sequence -0:115 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -371,7 +371,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -687,8 +687,8 @@ gl_FragCoord origin is upper left 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) -0:112 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:112 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 Color: direct index for structure (temp 4-component vector of float) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -698,15 +698,15 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:113 move second child to first child (temp float) 0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 0:115 Sequence -0:115 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -802,7 +802,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 - MemberDecorate 258(PS_OUTPUT) 0 Location 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 7d1cf674..5838f08a 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -318,8 +318,8 @@ gl_FragCoord origin is upper left 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) -0:106 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:106 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -329,15 +329,15 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:107 move second child to first child (temp float) 0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 0:109 Sequence -0:109 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -367,7 +367,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -683,8 +683,8 @@ gl_FragCoord origin is upper left 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) -0:106 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:106 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 Color: direct index for structure (temp 4-component vector of float) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -694,15 +694,15 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:107 move second child to first child (temp float) 0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 0:109 Sequence -0:109 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -791,7 +791,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 258(PS_OUTPUT) 0 Location 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 94177dec..a3eba63c 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1044,8 +1044,8 @@ gl_FragCoord origin is upper left 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) -0:276 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:276 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Color: direct index for structure (temp 4-component vector of float) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -1055,15 +1055,15 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 0:279 Sequence -0:279 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1102,7 +1102,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -2144,8 +2144,8 @@ gl_FragCoord origin is upper left 0:164 imageQuerySamples (temp uint) 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) -0:276 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:276 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 Color: direct index for structure (temp 4-component vector of float) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -2155,15 +2155,15 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:277 move second child to first child (temp float) 0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 0:279 Sequence -0:279 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -2324,7 +2324,6 @@ gl_FragCoord origin is upper left Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 - MemberDecorate 522(PS_OUTPUT) 0 Location 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 539(g_sSamp) DescriptorSet 0 Decorate 539(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 3c90fabd..d120c315 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,7 +7,7 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -27,8 +27,8 @@ ERROR: node is still EOpNull! 0:17 Constant: 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) -0:19 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -38,15 +38,15 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 0:22 Sequence -0:22 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -80,8 +80,8 @@ ERROR: node is still EOpNull! 0:17 Constant: 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) -0:19 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -91,15 +91,15 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:20 move second child to first child (temp float) 0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 0:22 Sequence -0:22 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index f175991c..03ce8b5d 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -29,13 +29,13 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) 0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:30 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: @@ -44,9 +44,9 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:31 Sequence -0:31 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects @@ -84,13 +84,13 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) 0:30 move second child to first child (temp 4-component vector of float) -0:30 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:30 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: @@ -99,9 +99,9 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:31 Sequence -0:31 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:31 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects @@ -130,7 +130,6 @@ gl_FragCoord origin is upper left MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" Name 43 "@entryPointOutput" - MemberDecorate 34(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 083d8cf2..044943da 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -36,8 +36,8 @@ gl_FragCoord origin is upper left 0:19 'y' (temp float) 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:21 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:21 1.000000 0:22 move second child to first child (temp float) 0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -56,9 +56,9 @@ gl_FragCoord origin is upper left 0:22 Constant: 0:22 3 (const int) 0:24 Sequence -0:24 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -103,8 +103,8 @@ gl_FragCoord origin is upper left 0:19 'y' (temp float) 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) -0:21 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:21 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 Color: direct index for structure (temp 4-component vector of float) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:21 1.000000 0:22 move second child to first child (temp float) 0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -123,9 +123,9 @@ gl_FragCoord origin is upper left 0:22 Constant: 0:22 3 (const int) 0:24 Sequence -0:24 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects @@ -155,7 +155,6 @@ gl_FragCoord origin is upper left Name 33 "psout" Name 45 "inpos" Name 53 "@entryPointOutput" - MemberDecorate 31(PS_OUTPUT) 0 Location 0 MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 57ef9a5d..bff38d8c 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -72,8 +72,8 @@ gl_FragCoord origin is upper left 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) -0:51 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -83,15 +83,15 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Sequence -0:54 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -117,7 +117,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -187,8 +187,8 @@ gl_FragCoord origin is upper left 0:49 3 (const int) 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) -0:51 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -198,15 +198,15 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:52 move second child to first child (temp float) 0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Sequence -0:54 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -263,7 +263,6 @@ gl_FragCoord origin is upper left Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 - MemberDecorate 80(PS_OUTPUT) 0 Location 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 97(g_sSamp) DescriptorSet 0 Decorate 97(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 5c47fdb9..b18bec5c 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -90,8 +90,8 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -101,15 +101,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -150,7 +150,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -238,8 +238,8 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:67 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Color: direct index for structure (temp 4-component vector of float) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -249,15 +249,15 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:68 move second child to first child (temp float) 0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 0:70 Sequence -0:70 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -344,7 +344,6 @@ gl_FragCoord origin is upper left Decorate 47(g_tTex2df4a) DescriptorSet 0 Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 75(PS_OUTPUT) 0 Location 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 92(g_sSamp) DescriptorSet 0 Decorate 92(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index cf1dbcc5..1016ba49 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -183,7 +183,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -304,8 +304,8 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -315,15 +315,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -414,7 +414,6 @@ gl_FragCoord origin is upper left Decorate 78(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 - MemberDecorate 106(PS_OUTPUT) 0 Location 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 123(g_sSamp) DescriptorSet 0 Decorate 123(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 8c005b83..16e5187d 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -24,8 +24,8 @@ gl_FragCoord origin is upper left 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) -0:34 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -35,15 +35,15 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 0:37 Sequence -0:37 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -66,7 +66,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -88,8 +88,8 @@ gl_FragCoord origin is upper left 0:30 'g_tTexbu4' (uniform usamplerBuffer) 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) -0:34 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -99,15 +99,15 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:35 move second child to first child (temp float) 0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 0:37 Sequence -0:37 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -157,7 +157,6 @@ gl_FragCoord origin is upper left Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 - MemberDecorate 44(PS_OUTPUT) 0 Location 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 58(g_tTexbf4_test) DescriptorSet 0 Decorate 58(g_tTexbf4_test) Binding 0 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 6d215e4c..acb97a4a 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -192,7 +192,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -322,8 +322,8 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) -0:72 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:72 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -333,15 +333,15 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:73 move second child to first child (temp float) 0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Sequence -0:75 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -433,7 +433,6 @@ gl_FragCoord origin is upper left Decorate 86(g_tTex3df4) DescriptorSet 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 - MemberDecorate 118(PS_OUTPUT) 0 Location 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 135(g_sSamp) DescriptorSet 0 Decorate 135(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index b5226ad8..1751db8c 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) -0:65 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Sequence -0:68 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -250,8 +250,8 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) -0:65 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -261,15 +261,15 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:66 move second child to first child (temp float) 0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Sequence -0:68 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -357,7 +357,6 @@ gl_FragCoord origin is upper left Decorate 51(g_tTex2df4a) DescriptorSet 0 Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 84(PS_OUTPUT) 0 Location 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 101(g_sSamp) DescriptorSet 0 Decorate 101(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index e09256c7..721b0d33 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -51,17 +51,17 @@ gl_FragCoord origin is upper left 0:15 Constant: 0:15 58 (const uint) 0:18 move second child to first child (temp 4-component vector of float) -0:18 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:18 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 color: direct index for structure (temp 4-component vector of float) +0:18 'ps_output' (temp structure{temp 4-component vector of float color}) 0:18 Constant: 0:18 0 (const int) -0:18 Construct vec4 (layout(location=0 ) temp 4-component vector of float) +0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) 0:19 Sequence -0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -121,17 +121,17 @@ gl_FragCoord origin is upper left 0:15 Constant: 0:15 58 (const uint) 0:18 move second child to first child (temp 4-component vector of float) -0:18 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:18 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 color: direct index for structure (temp 4-component vector of float) +0:18 'ps_output' (temp structure{temp 4-component vector of float color}) 0:18 Constant: 0:18 0 (const int) -0:18 Construct vec4 (layout(location=0 ) temp 4-component vector of float) +0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) 0:19 Sequence -0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:19 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects @@ -158,7 +158,6 @@ gl_FragCoord origin is upper left MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" Name 40 "@entryPointOutput" - MemberDecorate 30(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 27db9211..4c70ea82 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -11,8 +11,8 @@ gl_FragCoord origin is upper left 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) -0:126 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:126 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Color: direct index for structure (temp 4-component vector of float) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -26,15 +26,15 @@ gl_FragCoord origin is upper left 0:126 1.000000 0:127 move second child to first child (temp float) 0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Sequence -0:129 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects @@ -45,7 +45,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -54,8 +54,8 @@ gl_FragCoord origin is upper left 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) -0:126 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:126 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 Color: direct index for structure (temp 4-component vector of float) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -69,15 +69,15 @@ gl_FragCoord origin is upper left 0:126 1.000000 0:127 move second child to first child (temp float) 0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Sequence -0:129 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects @@ -97,7 +97,6 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" Name 27 "@entryPointOutput" - MemberDecorate 12(PS_OUTPUT) 0 Location 0 MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 252205dd..e2577c7a 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -6,12 +6,12 @@ gl_FragCoord origin is upper left 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) -0:11 color: direct index for structure (layout(location=0 ) noContraction temp 4-component vector of float) -0:11 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:11 color: direct index for structure (noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: @@ -20,9 +20,9 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:12 Sequence -0:12 move second child to first child (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -38,12 +38,12 @@ gl_FragCoord origin is upper left 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) -0:11 color: direct index for structure (layout(location=0 ) noContraction temp 4-component vector of float) -0:11 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:11 color: direct index for structure (noContraction temp 4-component vector of float) +0:11 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: @@ -52,9 +52,9 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:12 Sequence -0:12 move second child to first child (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{layout(location=0 ) noContraction temp 4-component vector of float color}) +0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -77,7 +77,6 @@ gl_FragCoord origin is upper left Name 18 "ps_output" Name 26 "@entryPointOutput" Name 30 "precisefloat" - MemberDecorate 16(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index e6387e55..413a4f0f 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) +0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence @@ -491,15 +491,15 @@ gl_FragCoord origin is upper left 0:196 Convert int to float (temp float) 0:196 'c2' (temp int) 0:199 move second child to first child (temp 4-component vector of float) -0:199 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:199 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:199 Color: direct index for structure (temp 4-component vector of float) +0:199 'psout' (temp structure{temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence -0:200 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) -0:200 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -755,7 +755,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) +0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence @@ -1009,15 +1009,15 @@ gl_FragCoord origin is upper left 0:196 Convert int to float (temp float) 0:196 'c2' (temp int) 0:199 move second child to first child (temp 4-component vector of float) -0:199 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:199 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:199 Color: direct index for structure (temp 4-component vector of float) +0:199 'psout' (temp structure{temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence -0:200 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) -0:200 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -1129,7 +1129,6 @@ gl_FragCoord origin is upper left MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" Name 477 "@entryPointOutput" - MemberDecorate 471(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 304ff5ef..5413a6f5 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -105,8 +105,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -116,15 +116,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -249,8 +249,8 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -260,15 +260,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -332,7 +332,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 120(PS_OUTPUT) 0 Location 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index e0156718..9cd4ebd0 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -215,8 +215,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) -0:86 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:86 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Color: direct index for structure (temp 4-component vector of float) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -226,15 +226,15 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Sequence -0:89 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -472,8 +472,8 @@ gl_FragCoord origin is upper left 0:? 0.800000 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) -0:86 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:86 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 Color: direct index for structure (temp 4-component vector of float) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -483,15 +483,15 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:87 move second child to first child (temp float) 0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Sequence -0:89 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -584,7 +584,6 @@ gl_FragCoord origin is upper left Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 171(PS_OUTPUT) 0 Location 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 183(g_sSamp2d) DescriptorSet 0 Decorate 184(g_sSamp2D_b) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 12deed41..d11d16f5 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -167,7 +167,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -288,8 +288,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -299,15 +299,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -376,7 +376,6 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 939595a3..76315296 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -84,8 +84,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -95,15 +95,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -122,7 +122,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -204,8 +204,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -215,15 +215,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -274,7 +274,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4) DescriptorSet 0 Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index d81c4a70..e735d34d 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -368,7 +368,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 120(PS_OUTPUT) 0 Location 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 99e63c96..d61eda9d 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -153,8 +153,8 @@ gl_FragCoord origin is upper left 0:45 Constant: 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -164,15 +164,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -348,8 +348,8 @@ gl_FragCoord origin is upper left 0:45 Constant: 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -359,15 +359,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -442,7 +442,6 @@ gl_FragCoord origin is upper left Decorate 119(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 143(PS_OUTPUT) 0 Location 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 157(g_tTex1df4a) DescriptorSet 0 Decorate 157(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 0165eb35..b2e77efc 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -335,15 +335,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -412,7 +412,6 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index da8f8958..52263c49 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -228,8 +228,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -239,15 +239,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 4a4d5f4b..a61aa29b 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -132,8 +132,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -143,15 +143,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -314,8 +314,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -325,15 +325,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -418,7 +418,6 @@ gl_FragCoord origin is upper left Decorate 96(g_tTexcdf4a) DescriptorSet 0 Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 129(PS_OUTPUT) 0 Location 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 145(g_tTex1df4) DescriptorSet 0 Decorate 145(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 1779e8dd..93fe73cf 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -175,7 +175,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -296,8 +296,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -307,15 +307,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -401,7 +401,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 0 Location 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 143(g_tTex3df4) DescriptorSet 0 Decorate 146(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index f659c7fb..71eb5206 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -148,7 +148,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -242,8 +242,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -253,15 +253,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,7 +341,6 @@ gl_FragCoord origin is upper left Decorate 52(g_tTex2df4) DescriptorSet 0 Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 - MemberDecorate 92(PS_OUTPUT) 0 Location 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 108(g_tTex3df4) DescriptorSet 0 Decorate 111(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index caf9357b..c2cdb4d6 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -102,8 +102,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -113,15 +113,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -154,7 +154,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -254,8 +254,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -265,15 +265,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -352,7 +352,6 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2df4a) DescriptorSet 0 Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 98(PS_OUTPUT) 0 Location 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 114(g_tTex1df4) DescriptorSet 0 Decorate 114(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 0d60dda0..5a7b7409 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -150,8 +150,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -161,15 +161,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -202,7 +202,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -350,8 +350,8 @@ gl_FragCoord origin is upper left 0:54 Constant: 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) -0:56 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:56 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -361,15 +361,15 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:57 move second child to first child (temp float) 0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Sequence -0:59 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -454,7 +454,6 @@ gl_FragCoord origin is upper left Decorate 97(g_tTexcdf4a) DescriptorSet 0 Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 130(PS_OUTPUT) 0 Location 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 146(g_tTex1df4) DescriptorSet 0 Decorate 146(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 42ced8cd..ba84224d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -193,7 +193,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -332,8 +332,8 @@ gl_FragCoord origin is upper left 0:55 Constant: 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) -0:57 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:57 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Color: direct index for structure (temp 4-component vector of float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -343,15 +343,15 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:58 move second child to first child (temp float) 0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Sequence -0:60 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -437,7 +437,6 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4) DescriptorSet 0 Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 128(PS_OUTPUT) 0 Location 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex3df4) DescriptorSet 0 Decorate 147(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 467013fe..9bed7964 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -108,8 +108,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -119,15 +119,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -160,7 +160,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -266,8 +266,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) -0:62 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:62 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 Color: direct index for structure (temp 4-component vector of float) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -277,15 +277,15 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:63 move second child to first child (temp float) 0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Sequence -0:65 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -365,7 +365,6 @@ gl_FragCoord origin is upper left Decorate 53(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 0 Location 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 109(g_tTex3df4) DescriptorSet 0 Decorate 112(g_tTex3di4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index ffcc6d7a..b2dcaecc 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -114,8 +114,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -125,15 +125,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -278,8 +278,8 @@ gl_FragCoord origin is upper left 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) -0:63 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:63 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Color: direct index for structure (temp 4-component vector of float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -289,15 +289,15 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:64 move second child to first child (temp float) 0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Sequence -0:66 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -376,7 +376,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4a) DescriptorSet 0 Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 99(PS_OUTPUT) 0 Location 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 115(g_tTex1df4) DescriptorSet 0 Decorate 115(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 49e6b72f..f42074b8 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -159,8 +159,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -170,15 +170,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -200,7 +200,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -357,8 +357,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -368,15 +368,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -440,7 +440,6 @@ gl_FragCoord origin is upper left Decorate 85(g_tTexcdf4) DescriptorSet 0 Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 113(PS_OUTPUT) 0 Location 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 127(g_tTex1df4a) DescriptorSet 0 Decorate 127(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 80be6468..403bfca1 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -207,8 +207,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -218,15 +218,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -251,7 +251,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -456,8 +456,8 @@ gl_FragCoord origin is upper left 0:? 1.200000 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) -0:47 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:47 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -467,15 +467,15 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:48 move second child to first child (temp float) 0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Sequence -0:50 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -550,7 +550,6 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 148(PS_OUTPUT) 0 Location 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 162(g_tTex1df4a) DescriptorSet 0 Decorate 162(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 732e731b..f73d8cf6 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -177,8 +177,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -188,15 +188,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -396,8 +396,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -407,15 +407,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -484,7 +484,6 @@ gl_FragCoord origin is upper left Decorate 95(g_tTex3df4) DescriptorSet 0 Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 - MemberDecorate 132(PS_OUTPUT) 0 Location 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 144(g_tTex1df4a) DescriptorSet 0 Decorate 144(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 290296e1..d6bc7643 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -114,8 +114,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) -0:35 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -125,15 +125,15 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Sequence -0:38 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -155,7 +155,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -267,8 +267,8 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) -0:35 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:35 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -278,15 +278,15 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:36 move second child to first child (temp float) 0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Sequence -0:38 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -344,7 +344,6 @@ gl_FragCoord origin is upper left Decorate 55(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 - MemberDecorate 86(PS_OUTPUT) 0 Location 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 98(g_tTex1df4a) DescriptorSet 0 Decorate 98(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index b47e5e0f..9ed0650f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -123,8 +123,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -134,15 +134,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -285,8 +285,8 @@ gl_FragCoord origin is upper left 0:37 Constant: 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) -0:39 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:39 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Color: direct index for structure (temp 4-component vector of float) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -296,15 +296,15 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:40 move second child to first child (temp float) 0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Sequence -0:42 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -368,7 +368,6 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4a) DescriptorSet 0 Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 121(PS_OUTPUT) 0 Location 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 134(g_tTex1df4) DescriptorSet 0 Decorate 134(g_tTex1df4) Binding 0 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index f91f8c13..38676721 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -153,8 +153,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) -0:48 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -164,15 +164,15 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Sequence -0:51 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -198,7 +198,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -349,8 +349,8 @@ gl_FragCoord origin is upper left 0:46 Constant: 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) -0:48 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -360,15 +360,15 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:49 move second child to first child (temp float) 0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Sequence -0:51 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -445,7 +445,6 @@ gl_FragCoord origin is upper left Decorate 120(g_tTexcdf4) DescriptorSet 0 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 144(PS_OUTPUT) 0 Location 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 158(g_sSamp2d) DescriptorSet 0 Decorate 159(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index ddda3b39..2dc61c75 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -141,8 +141,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -152,15 +152,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) -0:45 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:45 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Color: direct index for structure (temp 4-component vector of float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -335,15 +335,15 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:46 move second child to first child (temp float) 0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Sequence -0:48 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -412,7 +412,6 @@ gl_FragCoord origin is upper left Decorate 93(g_tTex3df4) DescriptorSet 0 Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 - MemberDecorate 128(PS_OUTPUT) 0 Location 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 140(g_tTex1df4a) DescriptorSet 0 Decorate 140(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 69b65440..bc3c4ae2 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -96,8 +96,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -107,15 +107,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -228,8 +228,8 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) -0:33 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:33 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -239,15 +239,15 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:34 move second child to first child (temp float) 0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Sequence -0:36 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 - MemberDecorate 94(PS_OUTPUT) 0 Location 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 106(g_tTex1df4a) DescriptorSet 0 Decorate 106(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index ce7ae918..470556ed 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -6,12 +6,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) -0:16 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: @@ -20,9 +20,9 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:17 Sequence -0:17 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects @@ -37,12 +37,12 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float color}) +0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) -0:16 color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:16 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: @@ -51,9 +51,9 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:17 Sequence -0:17 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{layout(location=0 ) temp 4-component vector of float color}) +0:17 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects @@ -73,7 +73,6 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" Name 22 "@entryPointOutput" - MemberDecorate 12(PS_OUTPUT) 0 Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 16e1fba4..e5fbf654 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -2,12 +2,12 @@ hlsl.stringtoken.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) +0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) -0:18 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:18 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: @@ -16,9 +16,9 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 1.000000 0:19 Sequence -0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) -0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -31,12 +31,12 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{layout(location=0 ) temp 4-component vector of float Color}) +0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) -0:18 Color: direct index for structure (layout(location=0 ) temp 4-component vector of float) -0:18 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: @@ -45,9 +45,9 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 1.000000 0:19 Sequence -0:19 move second child to first child (temp structure{layout(location=0 ) temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{layout(location=0 ) temp 4-component vector of float Color}) -0:19 'psout' (temp structure{layout(location=0 ) temp 4-component vector of float Color}) +0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -69,7 +69,6 @@ gl_FragCoord origin is upper left Name 19 "@entryPointOutput" Name 24 "TestTexture" Name 26 "TestUF" - MemberDecorate 8(PS_OUTPUT) 0 Location 0 Decorate 24(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index fdb0d34b..297730e9 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -30,7 +30,6 @@ Linked fragment stage: Decorate 3789 DescriptorSet 0 Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 - MemberDecorate 1032 0 Location 0 MemberDecorate 1032 1 BuiltIn FragDepth 8: TypeVoid 1282: TypeFunction 8 diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index db03ad9d..fe4d1b05 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -78,7 +78,6 @@ Linked fragment stage: Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 171(PS_OUTPUT) 0 Location 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 182(g_sSamp2d) DescriptorSet 0 Decorate 183(g_sSamp2D_b) DescriptorSet 0 diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index fe865a16..d7f3003e 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -30,7 +30,6 @@ Linked fragment stage: Decorate 147 DescriptorSet 0 Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 - MemberDecorate 171 0 Location 0 MemberDecorate 171 1 BuiltIn FragDepth Decorate 182 DescriptorSet 0 Decorate 183 DescriptorSet 0 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 31e43ca9..2248b476 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1452" +#define GLSLANG_REVISION "Overload400-PrecQual.1453" #define GLSLANG_DATE "29-Aug-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 02ff5148..9f957a6d 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2343,31 +2343,31 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TType& type, const TString //Targets are defined 0-7 else if (semanticUpperCase == "SV_TARGET") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 0; + //type.getQualifier().layoutLocation = 0; } else if (semanticUpperCase == "SV_TARGET0") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 0; + //type.getQualifier().layoutLocation = 0; } else if (semanticUpperCase == "SV_TARGET1") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 1; + //type.getQualifier().layoutLocation = 1; } else if (semanticUpperCase == "SV_TARGET2") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 2; + //type.getQualifier().layoutLocation = 2; } else if (semanticUpperCase == "SV_TARGET3") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 3; + //type.getQualifier().layoutLocation = 3; } else if (semanticUpperCase == "SV_TARGET4") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 4; + //type.getQualifier().layoutLocation = 4; } else if (semanticUpperCase == "SV_TARGET5") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 5; + //type.getQualifier().layoutLocation = 5; } else if (semanticUpperCase == "SV_TARGET6") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 6; + //type.getQualifier().layoutLocation = 6; } else if (semanticUpperCase == "SV_TARGET7") { type.getQualifier().builtIn = EbvNone; - type.getQualifier().layoutLocation = 7; + //type.getQualifier().layoutLocation = 7; } else if (semanticUpperCase == "SV_SAMPLEINDEX") type.getQualifier().builtIn = EbvSampleId; else if (semanticUpperCase == "SV_RENDERTARGETARRAYINDEX") From 830b0cc98b86b24f33af3e4c0419f67d9eb869b8 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 29 Aug 2016 18:10:47 -0600 Subject: [PATCH 101/217] HLSL: Start location numbering with the entry-point return value. Also, increment location numbers by the size of the objects. --- Test/baseResults/hlsl.array.frag.out | 5 +- Test/baseResults/hlsl.assoc.frag.out | 5 +- Test/baseResults/hlsl.buffer.frag.out | 5 +- .../hlsl.calculatelod.dx10.frag.out | 32 +-- .../hlsl.calculatelodunclamped.dx10.frag.out | 4 +- Test/baseResults/hlsl.cast.frag.out | 5 +- Test/baseResults/hlsl.conditional.frag.out | 5 +- Test/baseResults/hlsl.constructexpr.frag.out | 22 +- Test/baseResults/hlsl.doLoop.frag.out | 5 +- Test/baseResults/hlsl.entry-out.frag.out | 5 +- Test/baseResults/hlsl.forLoop.frag.out | 9 +- .../hlsl.gather.array.dx10.frag.out | 64 +++--- .../hlsl.gather.basic.dx10.frag.out | 100 ++++---- .../hlsl.gather.basic.dx10.vert.out | 99 ++++---- .../hlsl.gather.offset.dx10.frag.out | 124 +++++----- .../hlsl.gather.offsetarray.dx10.frag.out | 64 +++--- .../hlsl.gatherRGBA.array.dx10.frag.out | 76 ++++--- .../hlsl.gatherRGBA.basic.dx10.frag.out | 112 ++++----- .../hlsl.gatherRGBA.offset.dx10.frag.out | 170 +++++++------- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 132 +++++------ .../hlsl.getdimensions.dx10.frag.out | 36 +-- .../hlsl.getdimensions.dx10.vert.out | 35 +-- .../hlsl.getsampleposition.dx10.frag.out | 4 +- Test/baseResults/hlsl.if.frag.out | 25 +- Test/baseResults/hlsl.init.frag.out | 5 +- Test/baseResults/hlsl.init2.frag.out | 22 +- Test/baseResults/hlsl.inoutquals.frag.out | 24 +- .../hlsl.intrinsics.barriers.comp.out | 5 +- Test/baseResults/hlsl.intrinsics.comp.out | 5 +- .../hlsl.intrinsics.double.frag.out | 29 +-- .../hlsl.intrinsics.f1632.frag.out | 4 +- Test/baseResults/hlsl.intrinsics.frag.out | 5 +- .../hlsl.intrinsics.negative.comp.out | 5 +- .../hlsl.intrinsics.negative.frag.out | 4 +- .../hlsl.intrinsics.negative.vert.out | 5 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 60 ++--- .../baseResults/hlsl.load.array.dx10.frag.out | 214 +++++++++--------- .../baseResults/hlsl.load.basic.dx10.frag.out | 176 +++++++------- .../baseResults/hlsl.load.basic.dx10.vert.out | 175 +++++++------- .../hlsl.load.buffer.dx10.frag.out | 70 +++--- .../hlsl.load.offset.dx10.frag.out | 164 +++++++------- .../hlsl.load.offsetarray.dx10.frag.out | 204 +++++++++-------- Test/baseResults/hlsl.max.frag.out | 5 +- .../baseResults/hlsl.numericsuffixes.frag.out | 22 +- Test/baseResults/hlsl.overload.frag.out | 5 +- Test/baseResults/hlsl.pp.line.frag.out | 24 +- Test/baseResults/hlsl.precedence.frag.out | 5 +- Test/baseResults/hlsl.precedence2.frag.out | 5 +- Test/baseResults/hlsl.precise.frag.out | 28 ++- Test/baseResults/hlsl.promotions.frag.out | 22 +- .../hlsl.sample.array.dx10.frag.out | 32 +-- .../hlsl.sample.basic.dx10.frag.out | 44 ++-- .../hlsl.sample.offset.dx10.frag.out | 62 ++--- .../hlsl.sample.offsetarray.dx10.frag.out | 32 +-- .../hlsl.samplebias.array.dx10.frag.out | 32 +-- .../hlsl.samplebias.basic.dx10.frag.out | 32 +-- .../hlsl.samplebias.offset.dx10.frag.out | 62 ++--- .../hlsl.samplebias.offsetarray.dx10.frag.out | 32 +-- .../hlsl.samplecmp.array.dx10.frag.out | 146 ++++++------ .../hlsl.samplecmp.basic.dx10.frag.out | 144 ++++++------ .../hlsl.samplecmp.offset.dx10.frag.out | 174 +++++++------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 176 +++++++------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 146 ++++++------ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 144 ++++++------ ...sl.samplecmplevelzero.offset.dx10.frag.out | 174 +++++++------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 176 +++++++------- .../hlsl.samplegrad.array.dx10.frag.out | 32 +-- .../hlsl.samplegrad.basic.dx10.frag.out | 32 +-- .../hlsl.samplegrad.basic.dx10.vert.out | 31 +-- .../hlsl.samplegrad.offset.dx10.frag.out | 62 ++--- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 62 ++--- .../hlsl.samplelevel.array.dx10.frag.out | 32 +-- .../hlsl.samplelevel.basic.dx10.frag.out | 38 ++-- .../hlsl.samplelevel.basic.dx10.vert.out | 31 +-- .../hlsl.samplelevel.offset.dx10.frag.out | 62 ++--- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 32 +-- Test/baseResults/hlsl.semicolons.frag.out | 22 +- Test/baseResults/hlsl.sin.frag.out | 5 +- Test/baseResults/hlsl.stringtoken.frag.out | 38 ++-- Test/baseResults/hlsl.struct.frag.out | 5 +- Test/baseResults/hlsl.switch.frag.out | 5 +- Test/baseResults/hlsl.templatetypes.frag.out | 5 +- Test/baseResults/hlsl.whileLoop.frag.out | 5 +- ...emap.hlsl.sample.basic.everything.frag.out | 5 +- .../remap.hlsl.sample.basic.none.frag.out | 40 ++-- .../remap.hlsl.sample.basic.strip.frag.out | 23 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 61 +++-- hlsl/hlslParseHelper.h | 1 + 89 files changed, 2517 insertions(+), 2157 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 4d075111..cb1589e6 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) @@ -123,6 +123,7 @@ gl_FragCoord origin is upper left Name 54 "" MemberName 54 0 "m" Name 58 "s" + Decorate 9(@entryPointOutput) Location 0 Decorate 21(i) Location 0 Decorate 29(input) Location 1 2: TypeVoid diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index b419cc01..8201aaf3 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:9 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:9 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) @@ -94,6 +94,7 @@ gl_FragCoord origin is upper left Decorate 11(a3) Location 2 Decorate 12(a4) Location 3 Decorate 13(a5) Location 4 + Decorate 16(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index edcbbb84..9f79ab90 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) 0:27 add (temp 4-component vector of float) @@ -111,6 +111,7 @@ gl_FragCoord origin is upper left MemberName 34 6 "f6" MemberName 34 7 "f7" Name 36 "" + Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 MemberDecorate 13 0 Offset 0 Decorate 13 Block diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 0ce3e645..9e4f3678 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -303,7 +303,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 146 Capability Shader Capability Sampled1D @@ -329,7 +329,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 142 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -355,8 +355,11 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 141 "@entryPointOutput" - Name 144 "g_tTex1df4" + Name 140 "PS_OUTPUT" + MemberName 140(PS_OUTPUT) 0 "Color" + MemberName 140(PS_OUTPUT) 1 "Depth" + Name 142 "@entryPointOutput" + Name 145 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -370,8 +373,10 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4) DescriptorSet 0 - Decorate 144(g_tTex1df4) Binding 0 + MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 142(@entryPointOutput) Location 0 + Decorate 145(g_tTex1df4) DescriptorSet 0 + Decorate 145(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -442,9 +447,10 @@ gl_FragCoord origin is upper left 135: 130(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 130(fvec4) 138: 23(int) Constant 1 - 140: TypePointer Output 131(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output - 144(g_tTex1df4): 10(ptr) Variable UniformConstant + 140(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) + 141: TypePointer Output 140(PS_OUTPUT) +142(@entryPointOutput): 141(ptr) Variable Output + 145(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -524,7 +530,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 133(psout) 138 Store 139 134 - 142:131(PS_OUTPUT) Load 133(psout) - Store 141(@entryPointOutput) 142 + 143:131(PS_OUTPUT) Load 133(psout) + Store 142(@entryPointOutput) 143 Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 8dbdc57b..e46c1a65 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -153,7 +153,7 @@ ERROR: node is still EOpNull! 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -315,7 +315,7 @@ ERROR: node is still EOpNull! 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 5554be15..bcf35cb1 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) @@ -65,6 +65,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" Name 11 "input" + Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index 672024c4..e0356b5e 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -100,7 +100,7 @@ gl_FragCoord origin is upper left 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Sequence 0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:15 add (temp 4-component vector of float) 0:15 vector-scale (temp 4-component vector of float) 0:15 Convert int to float (temp float) @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:15 Sequence 0:15 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:15 add (temp 4-component vector of float) 0:15 vector-scale (temp 4-component vector of float) 0:15 Convert int to float (temp float) @@ -245,6 +245,7 @@ gl_FragCoord origin is upper left Name 57 "f" Name 83 "@entryPointOutput" Decorate 22(input) Location 0 + Decorate 83(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 0dab6a80..a8ed49cf 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects @@ -82,25 +82,28 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 34 +// Id's are bound by 35 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 31 + EntryPoint Fragment 4 "main" 32 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" - Name 31 "@entryPointOutput" + Name 30 "PS_OUTPUT" + MemberName 30(PS_OUTPUT) 0 "color" + Name 32 "@entryPointOutput" + Decorate 32(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -125,14 +128,15 @@ gl_FragCoord origin is upper left 26: 13(float) Constant 1065353216 27: 21(fvec4) ConstantComposite 26 26 26 26 28: TypePointer Function 21(fvec4) - 30: TypePointer Output 22(PS_OUTPUT) -31(@entryPointOutput): 30(ptr) Variable Output + 30(PS_OUTPUT): TypeStruct 21(fvec4) + 31: TypePointer Output 30(PS_OUTPUT) +32(@entryPointOutput): 31(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function 29: 28(ptr) AccessChain 24(ps_output) 25 Store 29 27 - 32:22(PS_OUTPUT) Load 24(ps_output) - Store 31(@entryPointOutput) 32 + 33:22(PS_OUTPUT) Load 24(ps_output) + Store 32(@entryPointOutput) 33 Return FunctionEnd diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 3de57472..5f5d384e 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects @@ -58,7 +58,7 @@ gl_FragCoord origin is upper left 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects @@ -75,6 +75,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 23 "@entryPointOutput" Name 25 "input" + Decorate 23(@entryPointOutput) Location 0 Decorate 25(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index f63bb3da..a5cac6fe 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:10 3 (const int) 0:11 Sequence 0:11 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:11 'out1' (out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:10 3 (const int) 0:11 Sequence 0:11 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:11 'out1' (out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects @@ -91,6 +91,7 @@ gl_FragCoord origin is upper left Name 18 "out2" Name 29 "@entryPointOutput" Decorate 11(input) Location 0 + Decorate 29(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 44010957..ad9dc88f 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:6 Negate value (temp 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Branch: Return @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:7 Negate value (temp 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return @@ -153,7 +153,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:6 Negate value (temp 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Branch: Return @@ -169,7 +169,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:7 Negate value (temp 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return @@ -250,6 +250,7 @@ gl_FragCoord origin is upper left Name 91 "ii" Name 111 "ii" Decorate 13(input) Location 0 + Decorate 43(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 58f7a77c..f2042c54 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -225,14 +225,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 112 +// Id's are bound by 113 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 99 + EntryPoint Fragment 4 "main" 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -252,11 +252,14 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 99 "@entryPointOutput" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4a" - Name 111 "g_tTex1du4a" + Name 98 "PS_OUTPUT" + MemberName 98(PS_OUTPUT) 0 "Color" + MemberName 98(PS_OUTPUT) 1 "Depth" + Name 100 "@entryPointOutput" + Name 105 "g_tTex1df4a" + Name 106 "g_tTex1df4" + Name 109 "g_tTex1di4a" + Name 112 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -266,12 +269,14 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4a) DescriptorSet 0 - Decorate 111(g_tTex1du4a) DescriptorSet 0 + MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 100(@entryPointOutput) Location 0 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 + Decorate 106(g_tTex1df4) DescriptorSet 0 + Decorate 106(g_tTex1df4) Binding 0 + Decorate 109(g_tTex1di4a) DescriptorSet 0 + Decorate 112(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -333,18 +338,19 @@ gl_FragCoord origin is upper left 93: 7(fvec4) ConstantComposite 87 87 87 87 95: 25(int) Constant 1 96: TypePointer Function 6(float) - 98: TypePointer Output 90(PS_OUTPUT) -99(@entryPointOutput): 98(ptr) Variable Output - 102: TypeImage 6(float) 1D array sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 25(int) 1D array sampled format:Unknown - 107: TypePointer UniformConstant 106 -108(g_tTex1di4a): 107(ptr) Variable UniformConstant - 109: TypeImage 42(int) 1D array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTex1du4a): 110(ptr) Variable UniformConstant + 98(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 99: TypePointer Output 98(PS_OUTPUT) +100(@entryPointOutput): 99(ptr) Variable Output + 103: TypeImage 6(float) 1D array sampled format:Unknown + 104: TypePointer UniformConstant 103 +105(g_tTex1df4a): 104(ptr) Variable UniformConstant + 106(g_tTex1df4): 104(ptr) Variable UniformConstant + 107: TypeImage 25(int) 1D array sampled format:Unknown + 108: TypePointer UniformConstant 107 +109(g_tTex1di4a): 108(ptr) Variable UniformConstant + 110: TypeImage 42(int) 1D array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTex1du4a): 111(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -388,7 +394,7 @@ gl_FragCoord origin is upper left Store 94 93 97: 96(ptr) AccessChain 92(psout) 95 Store 97 87 - 100:90(PS_OUTPUT) Load 92(psout) - Store 99(@entryPointOutput) 100 + 101:90(PS_OUTPUT) Load 92(psout) + Store 100(@entryPointOutput) 101 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index c75a0598..94bd1b02 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:47 Sequence 0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects @@ -199,7 +199,7 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:47 Sequence 0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects @@ -221,13 +221,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 123 +// Id's are bound by 124 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 100 + EntryPoint Fragment 4 "main" 101 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -247,15 +247,18 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 100 "@entryPointOutput" - Name 103 "g_sSamp2d" - Name 106 "g_tTex1df4a" - Name 107 "g_tTex1df4" - Name 110 "g_tTex1di4" - Name 113 "g_tTex1du4" - Name 116 "g_tTex3df4" - Name 119 "g_tTex3di4" - Name 122 "g_tTex3du4" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "@entryPointOutput" + Name 104 "g_sSamp2d" + Name 107 "g_tTex1df4a" + Name 108 "g_tTex1df4" + Name 111 "g_tTex1di4" + Name 114 "g_tTex1du4" + Name 117 "g_tTex3df4" + Name 120 "g_tTex3di4" + Name 123 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -265,16 +268,18 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_sSamp2d) DescriptorSet 0 - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 - Decorate 107(g_tTex1df4) DescriptorSet 0 - Decorate 107(g_tTex1df4) Binding 0 - Decorate 110(g_tTex1di4) DescriptorSet 0 - Decorate 113(g_tTex1du4) DescriptorSet 0 - Decorate 116(g_tTex3df4) DescriptorSet 0 - Decorate 119(g_tTex3di4) DescriptorSet 0 - Decorate 122(g_tTex3du4) DescriptorSet 0 + MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 101(@entryPointOutput) Location 0 + Decorate 104(g_sSamp2d) DescriptorSet 0 + Decorate 107(g_tTex1df4a) DescriptorSet 0 + Decorate 107(g_tTex1df4a) Binding 1 + Decorate 108(g_tTex1df4) DescriptorSet 0 + Decorate 108(g_tTex1df4) Binding 0 + Decorate 111(g_tTex1di4) DescriptorSet 0 + Decorate 114(g_tTex1du4) DescriptorSet 0 + Decorate 117(g_tTex3df4) DescriptorSet 0 + Decorate 120(g_tTex3di4) DescriptorSet 0 + Decorate 123(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -337,28 +342,29 @@ gl_FragCoord origin is upper left 94: 7(fvec4) ConstantComposite 93 93 93 93 96: 24(int) Constant 1 97: TypePointer Function 6(float) - 99: TypePointer Output 90(PS_OUTPUT) -100(@entryPointOutput): 99(ptr) Variable Output - 103(g_sSamp2d): 15(ptr) Variable UniformConstant - 104: TypeImage 6(float) 1D sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTex1df4a): 105(ptr) Variable UniformConstant - 107(g_tTex1df4): 105(ptr) Variable UniformConstant - 108: TypeImage 24(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1di4): 109(ptr) Variable UniformConstant - 111: TypeImage 41(int) 1D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex1du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3df4): 115(ptr) Variable UniformConstant - 117: TypeImage 24(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3di4): 118(ptr) Variable UniformConstant - 120: TypeImage 41(int) 3D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex3du4): 121(ptr) Variable UniformConstant + 99(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 100: TypePointer Output 99(PS_OUTPUT) +101(@entryPointOutput): 100(ptr) Variable Output + 104(g_sSamp2d): 15(ptr) Variable UniformConstant + 105: TypeImage 6(float) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 +107(g_tTex1df4a): 106(ptr) Variable UniformConstant + 108(g_tTex1df4): 106(ptr) Variable UniformConstant + 109: TypeImage 24(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1di4): 110(ptr) Variable UniformConstant + 112: TypeImage 41(int) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3df4): 116(ptr) Variable UniformConstant + 118: TypeImage 24(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3di4): 119(ptr) Variable UniformConstant + 121: TypeImage 41(int) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3du4): 122(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -402,7 +408,7 @@ gl_FragCoord origin is upper left Store 95 94 98: 97(ptr) AccessChain 92(psout) 96 Store 98 93 - 101:90(PS_OUTPUT) Load 92(psout) - Store 100(@entryPointOutput) 101 + 102:90(PS_OUTPUT) Load 92(psout) + Store 101(@entryPointOutput) 102 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 291caa76..13fd9484 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -79,7 +79,7 @@ Shader version: 450 0:? 0.000000 0:45 Sequence 0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects @@ -183,7 +183,7 @@ Shader version: 450 0:? 0.000000 0:45 Sequence 0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects @@ -205,13 +205,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 120 +// Id's are bound by 121 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 97 + EntryPoint Vertex 4 "main" 98 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -229,15 +229,17 @@ Shader version: 450 Name 90 "VS_OUTPUT" MemberName 90(VS_OUTPUT) 0 "Pos" Name 92 "vsout" - Name 97 "@entryPointOutput" - Name 100 "g_sSamp2d" - Name 103 "g_tTex1df4a" - Name 104 "g_tTex1df4" - Name 107 "g_tTex1di4" - Name 110 "g_tTex1du4" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" + Name 96 "VS_OUTPUT" + MemberName 96(VS_OUTPUT) 0 "Pos" + Name 98 "@entryPointOutput" + Name 101 "g_sSamp2d" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4" + Name 111 "g_tTex1du4" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -247,16 +249,18 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position - Decorate 100(g_sSamp2d) DescriptorSet 0 - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 - Decorate 104(g_tTex1df4) DescriptorSet 0 - Decorate 104(g_tTex1df4) Binding 0 - Decorate 107(g_tTex1di4) DescriptorSet 0 - Decorate 110(g_tTex1du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 + MemberDecorate 96(VS_OUTPUT) 0 BuiltIn Position + Decorate 98(@entryPointOutput) Location 0 + Decorate 101(g_sSamp2d) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4) DescriptorSet 0 + Decorate 111(g_tTex1du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -317,28 +321,29 @@ Shader version: 450 91: TypePointer Function 90(VS_OUTPUT) 93: 6(float) Constant 0 94: 7(fvec4) ConstantComposite 93 93 93 93 - 96: TypePointer Output 90(VS_OUTPUT) -97(@entryPointOutput): 96(ptr) Variable Output - 100(g_sSamp2d): 15(ptr) Variable UniformConstant - 101: TypeImage 6(float) 1D sampled format:Unknown - 102: TypePointer UniformConstant 101 -103(g_tTex1df4a): 102(ptr) Variable UniformConstant - 104(g_tTex1df4): 102(ptr) Variable UniformConstant - 105: TypeImage 24(int) 1D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex1di4): 106(ptr) Variable UniformConstant - 108: TypeImage 41(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 24(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 41(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 96(VS_OUTPUT): TypeStruct 7(fvec4) + 97: TypePointer Output 96(VS_OUTPUT) +98(@entryPointOutput): 97(ptr) Variable Output + 101(g_sSamp2d): 15(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 24(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1di4): 107(ptr) Variable UniformConstant + 109: TypeImage 41(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 24(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 41(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -380,7 +385,7 @@ Shader version: 450 Store 77(txval42) 89 95: 8(ptr) AccessChain 92(vsout) 25 Store 95 94 - 98:90(VS_OUTPUT) Load 92(vsout) - Store 97(@entryPointOutput) 98 + 99:90(VS_OUTPUT) Load 92(vsout) + Store 98(@entryPointOutput) 99 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 2f856642..7cb6ad7a 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -171,13 +171,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 102 +// Id's are bound by 103 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 + EntryPoint Fragment 4 "main" 72 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -191,35 +191,40 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 71 "@entryPointOutput" - Name 76 "g_tTex1df4a" - Name 77 "g_tTex1df4" - Name 80 "g_tTex1di4" - Name 83 "g_tTex1du4" - Name 86 "g_tTex3df4" - Name 89 "g_tTex3di4" - Name 92 "g_tTex3du4" - Name 95 "g_tTexcdf4" - Name 98 "g_tTexcdi4" - Name 101 "g_tTexcdu4" + Name 70 "PS_OUTPUT" + MemberName 70(PS_OUTPUT) 0 "Color" + MemberName 70(PS_OUTPUT) 1 "Depth" + Name 72 "@entryPointOutput" + Name 77 "g_tTex1df4a" + Name 78 "g_tTex1df4" + Name 81 "g_tTex1di4" + Name 84 "g_tTex1du4" + Name 87 "g_tTex3df4" + Name 90 "g_tTex3di4" + Name 93 "g_tTex3du4" + Name 96 "g_tTexcdf4" + Name 99 "g_tTexcdi4" + Name 102 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 76(g_tTex1df4a) DescriptorSet 0 - Decorate 76(g_tTex1df4a) Binding 1 - Decorate 77(g_tTex1df4) DescriptorSet 0 - Decorate 77(g_tTex1df4) Binding 0 - Decorate 80(g_tTex1di4) DescriptorSet 0 - Decorate 83(g_tTex1du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 89(g_tTex3di4) DescriptorSet 0 - Decorate 92(g_tTex3du4) DescriptorSet 0 - Decorate 95(g_tTexcdf4) DescriptorSet 0 - Decorate 98(g_tTexcdi4) DescriptorSet 0 - Decorate 101(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 70(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 72(@entryPointOutput) Location 0 + Decorate 77(g_tTex1df4a) DescriptorSet 0 + Decorate 77(g_tTex1df4a) Binding 1 + Decorate 78(g_tTex1df4) DescriptorSet 0 + Decorate 78(g_tTex1df4) Binding 0 + Decorate 81(g_tTex1di4) DescriptorSet 0 + Decorate 84(g_tTex1du4) DescriptorSet 0 + Decorate 87(g_tTex3df4) DescriptorSet 0 + Decorate 90(g_tTex3di4) DescriptorSet 0 + Decorate 93(g_tTex3du4) DescriptorSet 0 + Decorate 96(g_tTexcdf4) DescriptorSet 0 + Decorate 99(g_tTexcdi4) DescriptorSet 0 + Decorate 102(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -268,36 +273,37 @@ gl_FragCoord origin is upper left 65: 6(float) Constant 1065353216 66: 7(fvec4) ConstantComposite 65 65 65 65 68: TypePointer Function 6(float) - 70: TypePointer Output 62(PS_OUTPUT) -71(@entryPointOutput): 70(ptr) Variable Output - 74: TypeImage 6(float) 1D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex1df4a): 75(ptr) Variable UniformConstant - 77(g_tTex1df4): 75(ptr) Variable UniformConstant - 78: TypeImage 24(int) 1D sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTex1di4): 79(ptr) Variable UniformConstant - 81: TypeImage 45(int) 1D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex1du4): 82(ptr) Variable UniformConstant - 84: TypeImage 6(float) 3D sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 87: TypeImage 24(int) 3D sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex3di4): 88(ptr) Variable UniformConstant - 90: TypeImage 45(int) 3D sampled format:Unknown - 91: TypePointer UniformConstant 90 - 92(g_tTex3du4): 91(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTexcdf4): 94(ptr) Variable UniformConstant - 96: TypeImage 24(int) Cube sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTexcdi4): 97(ptr) Variable UniformConstant - 99: TypeImage 45(int) Cube sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTexcdu4): 100(ptr) Variable UniformConstant + 70(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 71: TypePointer Output 70(PS_OUTPUT) +72(@entryPointOutput): 71(ptr) Variable Output + 75: TypeImage 6(float) 1D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex1df4a): 76(ptr) Variable UniformConstant + 78(g_tTex1df4): 76(ptr) Variable UniformConstant + 79: TypeImage 24(int) 1D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1di4): 80(ptr) Variable UniformConstant + 82: TypeImage 45(int) 1D sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex1du4): 83(ptr) Variable UniformConstant + 85: TypeImage 6(float) 3D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex3df4): 86(ptr) Variable UniformConstant + 88: TypeImage 24(int) 3D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex3di4): 89(ptr) Variable UniformConstant + 91: TypeImage 45(int) 3D sampled format:Unknown + 92: TypePointer UniformConstant 91 + 93(g_tTex3du4): 92(ptr) Variable UniformConstant + 94: TypeImage 6(float) Cube sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTexcdf4): 95(ptr) Variable UniformConstant + 97: TypeImage 24(int) Cube sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdi4): 98(ptr) Variable UniformConstant + 100: TypeImage 45(int) Cube sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTexcdu4): 101(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -323,7 +329,7 @@ gl_FragCoord origin is upper left Store 67 66 69: 68(ptr) AccessChain 64(psout) 26 Store 69 65 - 72:62(PS_OUTPUT) Load 64(psout) - Store 71(@entryPointOutput) 72 + 73:62(PS_OUTPUT) Load 64(psout) + Store 72(@entryPointOutput) 73 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 5cfae1ef..d4cfa005 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:35 Sequence 0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:35 Sequence 0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects @@ -165,13 +165,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 85 +// Id's are bound by 86 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 72 + EntryPoint Fragment 4 "main" 73 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -185,23 +185,28 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 72 "@entryPointOutput" - Name 77 "g_tTex1df4a" - Name 78 "g_tTex1df4" - Name 81 "g_tTex1di4" - Name 84 "g_tTex1du4" + Name 71 "PS_OUTPUT" + MemberName 71(PS_OUTPUT) 0 "Color" + MemberName 71(PS_OUTPUT) 1 "Depth" + Name 73 "@entryPointOutput" + Name 78 "g_tTex1df4a" + Name 79 "g_tTex1df4" + Name 82 "g_tTex1di4" + Name 85 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 77(g_tTex1df4a) DescriptorSet 0 - Decorate 77(g_tTex1df4a) Binding 1 - Decorate 78(g_tTex1df4) DescriptorSet 0 - Decorate 78(g_tTex1df4) Binding 0 - Decorate 81(g_tTex1di4) DescriptorSet 0 - Decorate 84(g_tTex1du4) DescriptorSet 0 + MemberDecorate 71(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 73(@entryPointOutput) Location 0 + Decorate 78(g_tTex1df4a) DescriptorSet 0 + Decorate 78(g_tTex1df4a) Binding 1 + Decorate 79(g_tTex1df4) DescriptorSet 0 + Decorate 79(g_tTex1df4) Binding 0 + Decorate 82(g_tTex1di4) DescriptorSet 0 + Decorate 85(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -251,18 +256,19 @@ gl_FragCoord origin is upper left 66: 6(float) Constant 1065353216 67: 7(fvec4) ConstantComposite 66 66 66 66 69: TypePointer Function 6(float) - 71: TypePointer Output 63(PS_OUTPUT) -72(@entryPointOutput): 71(ptr) Variable Output - 75: TypeImage 6(float) 1D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex1df4a): 76(ptr) Variable UniformConstant - 78(g_tTex1df4): 76(ptr) Variable UniformConstant - 79: TypeImage 25(int) 1D array sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1di4): 80(ptr) Variable UniformConstant - 82: TypeImage 45(int) 1D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex1du4): 83(ptr) Variable UniformConstant + 71(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 72: TypePointer Output 71(PS_OUTPUT) +73(@entryPointOutput): 72(ptr) Variable Output + 76: TypeImage 6(float) 1D array sampled format:Unknown + 77: TypePointer UniformConstant 76 + 78(g_tTex1df4a): 77(ptr) Variable UniformConstant + 79(g_tTex1df4): 77(ptr) Variable UniformConstant + 80: TypeImage 25(int) 1D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex1di4): 81(ptr) Variable UniformConstant + 83: TypeImage 45(int) 1D array sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex1du4): 84(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -288,7 +294,7 @@ gl_FragCoord origin is upper left Store 68 67 70: 69(ptr) AccessChain 65(psout) 27 Store 70 66 - 73:63(PS_OUTPUT) Load 65(psout) - Store 72(@entryPointOutput) 73 + 74:63(PS_OUTPUT) Load 65(psout) + Store 73(@entryPointOutput) 74 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index ac59887b..c2ccd50d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -264,7 +264,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -553,7 +553,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -575,14 +575,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 222 +// Id's are bound by 223 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 204 + EntryPoint Fragment 4 "main" 205 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -622,13 +622,16 @@ gl_FragCoord origin is upper left MemberName 195(PS_OUTPUT) 0 "Color" MemberName 195(PS_OUTPUT) 1 "Depth" Name 197 "psout" - Name 204 "@entryPointOutput" - Name 207 "g_sSamp2d" - Name 210 "g_tTex1df4a" - Name 213 "g_tTex1di4a" - Name 216 "g_tTex1du4a" - Name 218 "c1" - Name 221 "c2" + Name 203 "PS_OUTPUT" + MemberName 203(PS_OUTPUT) 0 "Color" + MemberName 203(PS_OUTPUT) 1 "Depth" + Name 205 "@entryPointOutput" + Name 208 "g_sSamp2d" + Name 211 "g_tTex1df4a" + Name 214 "g_tTex1di4a" + Name 217 "g_tTex1du4a" + Name 219 "c1" + Name 222 "c2" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -638,11 +641,13 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 207(g_sSamp2d) DescriptorSet 0 - Decorate 210(g_tTex1df4a) DescriptorSet 0 - Decorate 210(g_tTex1df4a) Binding 0 - Decorate 213(g_tTex1di4a) DescriptorSet 0 - Decorate 216(g_tTex1du4a) DescriptorSet 0 + MemberDecorate 203(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 205(@entryPointOutput) Location 0 + Decorate 208(g_sSamp2d) DescriptorSet 0 + Decorate 211(g_tTex1df4a) DescriptorSet 0 + Decorate 211(g_tTex1df4a) Binding 0 + Decorate 214(g_tTex1di4a) DescriptorSet 0 + Decorate 217(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -695,23 +700,24 @@ gl_FragCoord origin is upper left 198: 6(float) Constant 1065353216 199: 7(fvec4) ConstantComposite 198 198 198 198 201: TypePointer Function 6(float) - 203: TypePointer Output 195(PS_OUTPUT) -204(@entryPointOutput): 203(ptr) Variable Output - 207(g_sSamp2d): 15(ptr) Variable UniformConstant - 208: TypeImage 6(float) 1D array sampled format:Unknown - 209: TypePointer UniformConstant 208 -210(g_tTex1df4a): 209(ptr) Variable UniformConstant - 211: TypeImage 24(int) 1D array sampled format:Unknown - 212: TypePointer UniformConstant 211 -213(g_tTex1di4a): 212(ptr) Variable UniformConstant - 214: TypeImage 39(int) 1D array sampled format:Unknown - 215: TypePointer UniformConstant 214 -216(g_tTex1du4a): 215(ptr) Variable UniformConstant - 217: TypePointer UniformConstant 6(float) - 218(c1): 217(ptr) Variable UniformConstant - 219: TypeVector 6(float) 2 - 220: TypePointer UniformConstant 219(fvec2) - 221(c2): 220(ptr) Variable UniformConstant + 203(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 204: TypePointer Output 203(PS_OUTPUT) +205(@entryPointOutput): 204(ptr) Variable Output + 208(g_sSamp2d): 15(ptr) Variable UniformConstant + 209: TypeImage 6(float) 1D array sampled format:Unknown + 210: TypePointer UniformConstant 209 +211(g_tTex1df4a): 210(ptr) Variable UniformConstant + 212: TypeImage 24(int) 1D array sampled format:Unknown + 213: TypePointer UniformConstant 212 +214(g_tTex1di4a): 213(ptr) Variable UniformConstant + 215: TypeImage 39(int) 1D array sampled format:Unknown + 216: TypePointer UniformConstant 215 +217(g_tTex1du4a): 216(ptr) Variable UniformConstant + 218: TypePointer UniformConstant 6(float) + 219(c1): 218(ptr) Variable UniformConstant + 220: TypeVector 6(float) 2 + 221: TypePointer UniformConstant 220(fvec2) + 222(c2): 221(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -887,7 +893,7 @@ gl_FragCoord origin is upper left Store 200 199 202: 201(ptr) AccessChain 197(psout) 57 Store 202 198 - 205:195(PS_OUTPUT) Load 197(psout) - Store 204(@entryPointOutput) 205 + 206:195(PS_OUTPUT) Load 197(psout) + Store 205(@entryPointOutput) 206 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 63c9946d..8be5ba60 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -264,7 +264,7 @@ gl_FragCoord origin is upper left 0:74 1.000000 0:76 Sequence 0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects @@ -557,7 +557,7 @@ gl_FragCoord origin is upper left 0:74 1.000000 0:76 Sequence 0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects @@ -583,13 +583,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 232 +// Id's are bound by 233 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 + EntryPoint Fragment 4 "main" 206 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -629,17 +629,20 @@ gl_FragCoord origin is upper left MemberName 196(PS_OUTPUT) 0 "Color" MemberName 196(PS_OUTPUT) 1 "Depth" Name 198 "psout" - Name 205 "@entryPointOutput" - Name 208 "g_sSamp2d" - Name 211 "g_tTex1df4a" - Name 212 "g_tTex1df4" - Name 215 "g_tTex1di4" - Name 218 "g_tTex1du4" - Name 221 "g_tTex3df4" - Name 224 "g_tTex3di4" - Name 227 "g_tTex3du4" - Name 229 "c1" - Name 231 "c4" + Name 204 "PS_OUTPUT" + MemberName 204(PS_OUTPUT) 0 "Color" + MemberName 204(PS_OUTPUT) 1 "Depth" + Name 206 "@entryPointOutput" + Name 209 "g_sSamp2d" + Name 212 "g_tTex1df4a" + Name 213 "g_tTex1df4" + Name 216 "g_tTex1di4" + Name 219 "g_tTex1du4" + Name 222 "g_tTex3df4" + Name 225 "g_tTex3di4" + Name 228 "g_tTex3du4" + Name 230 "c1" + Name 232 "c4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -649,16 +652,18 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 208(g_sSamp2d) DescriptorSet 0 - Decorate 211(g_tTex1df4a) DescriptorSet 0 - Decorate 211(g_tTex1df4a) Binding 1 - Decorate 212(g_tTex1df4) DescriptorSet 0 - Decorate 212(g_tTex1df4) Binding 0 - Decorate 215(g_tTex1di4) DescriptorSet 0 - Decorate 218(g_tTex1du4) DescriptorSet 0 - Decorate 221(g_tTex3df4) DescriptorSet 0 - Decorate 224(g_tTex3di4) DescriptorSet 0 - Decorate 227(g_tTex3du4) DescriptorSet 0 + MemberDecorate 204(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 206(@entryPointOutput) Location 0 + Decorate 209(g_sSamp2d) DescriptorSet 0 + Decorate 212(g_tTex1df4a) DescriptorSet 0 + Decorate 212(g_tTex1df4a) Binding 1 + Decorate 213(g_tTex1df4) DescriptorSet 0 + Decorate 213(g_tTex1df4) Binding 0 + Decorate 216(g_tTex1di4) DescriptorSet 0 + Decorate 219(g_tTex1du4) DescriptorSet 0 + Decorate 222(g_tTex3df4) DescriptorSet 0 + Decorate 225(g_tTex3di4) DescriptorSet 0 + Decorate 228(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -712,32 +717,33 @@ gl_FragCoord origin is upper left 199: 6(float) Constant 1065353216 200: 7(fvec4) ConstantComposite 199 199 199 199 202: TypePointer Function 6(float) - 204: TypePointer Output 196(PS_OUTPUT) -205(@entryPointOutput): 204(ptr) Variable Output - 208(g_sSamp2d): 15(ptr) Variable UniformConstant - 209: TypeImage 6(float) 1D sampled format:Unknown - 210: TypePointer UniformConstant 209 -211(g_tTex1df4a): 210(ptr) Variable UniformConstant - 212(g_tTex1df4): 210(ptr) Variable UniformConstant - 213: TypeImage 24(int) 1D sampled format:Unknown - 214: TypePointer UniformConstant 213 - 215(g_tTex1di4): 214(ptr) Variable UniformConstant - 216: TypeImage 39(int) 1D sampled format:Unknown - 217: TypePointer UniformConstant 216 - 218(g_tTex1du4): 217(ptr) Variable UniformConstant - 219: TypeImage 6(float) 3D sampled format:Unknown - 220: TypePointer UniformConstant 219 - 221(g_tTex3df4): 220(ptr) Variable UniformConstant - 222: TypeImage 24(int) 3D sampled format:Unknown - 223: TypePointer UniformConstant 222 - 224(g_tTex3di4): 223(ptr) Variable UniformConstant - 225: TypeImage 39(int) 3D sampled format:Unknown - 226: TypePointer UniformConstant 225 - 227(g_tTex3du4): 226(ptr) Variable UniformConstant - 228: TypePointer UniformConstant 6(float) - 229(c1): 228(ptr) Variable UniformConstant - 230: TypePointer UniformConstant 7(fvec4) - 231(c4): 230(ptr) Variable UniformConstant + 204(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 205: TypePointer Output 204(PS_OUTPUT) +206(@entryPointOutput): 205(ptr) Variable Output + 209(g_sSamp2d): 15(ptr) Variable UniformConstant + 210: TypeImage 6(float) 1D sampled format:Unknown + 211: TypePointer UniformConstant 210 +212(g_tTex1df4a): 211(ptr) Variable UniformConstant + 213(g_tTex1df4): 211(ptr) Variable UniformConstant + 214: TypeImage 24(int) 1D sampled format:Unknown + 215: TypePointer UniformConstant 214 + 216(g_tTex1di4): 215(ptr) Variable UniformConstant + 217: TypeImage 39(int) 1D sampled format:Unknown + 218: TypePointer UniformConstant 217 + 219(g_tTex1du4): 218(ptr) Variable UniformConstant + 220: TypeImage 6(float) 3D sampled format:Unknown + 221: TypePointer UniformConstant 220 + 222(g_tTex3df4): 221(ptr) Variable UniformConstant + 223: TypeImage 24(int) 3D sampled format:Unknown + 224: TypePointer UniformConstant 223 + 225(g_tTex3di4): 224(ptr) Variable UniformConstant + 226: TypeImage 39(int) 3D sampled format:Unknown + 227: TypePointer UniformConstant 226 + 228(g_tTex3du4): 227(ptr) Variable UniformConstant + 229: TypePointer UniformConstant 6(float) + 230(c1): 229(ptr) Variable UniformConstant + 231: TypePointer UniformConstant 7(fvec4) + 232(c4): 231(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -913,7 +919,7 @@ gl_FragCoord origin is upper left Store 201 200 203: 202(ptr) AccessChain 198(psout) 57 Store 203 199 - 206:196(PS_OUTPUT) Load 198(psout) - Store 205(@entryPointOutput) 206 + 207:196(PS_OUTPUT) Load 198(psout) + Store 206(@entryPointOutput) 207 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 5df5248e..922d3493 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:113 1.000000 0:115 Sequence 0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects @@ -705,7 +705,7 @@ gl_FragCoord origin is upper left 0:113 1.000000 0:115 Sequence 0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects @@ -735,14 +735,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 313 +// Id's are bound by 314 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 + EntryPoint Fragment 4 "main" 268 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -779,43 +779,48 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 267 "@entryPointOutput" - Name 270 "g_sSamp2d" - Name 273 "g_tTex1df4a" - Name 274 "g_tTex1df4" - Name 277 "g_tTex1di4" - Name 280 "g_tTex1du4" - Name 283 "g_tTex3df4" - Name 286 "g_tTex3di4" - Name 289 "g_tTex3du4" - Name 292 "g_tTexcdf4" - Name 295 "g_tTexcdi4" - Name 298 "g_tTexcdu4" - Name 300 "c1" - Name 303 "c3" - Name 305 "c4" - Name 307 "o1" - Name 310 "o3" - Name 312 "o4" + Name 266 "PS_OUTPUT" + MemberName 266(PS_OUTPUT) 0 "Color" + MemberName 266(PS_OUTPUT) 1 "Depth" + Name 268 "@entryPointOutput" + Name 271 "g_sSamp2d" + Name 274 "g_tTex1df4a" + Name 275 "g_tTex1df4" + Name 278 "g_tTex1di4" + Name 281 "g_tTex1du4" + Name 284 "g_tTex3df4" + Name 287 "g_tTex3di4" + Name 290 "g_tTex3du4" + Name 293 "g_tTexcdf4" + Name 296 "g_tTexcdi4" + Name 299 "g_tTexcdu4" + Name 301 "c1" + Name 304 "c3" + Name 306 "c4" + Name 308 "o1" + Name 311 "o3" + Name 313 "o4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 270(g_sSamp2d) DescriptorSet 0 - Decorate 273(g_tTex1df4a) DescriptorSet 0 - Decorate 273(g_tTex1df4a) Binding 1 - Decorate 274(g_tTex1df4) DescriptorSet 0 - Decorate 274(g_tTex1df4) Binding 0 - Decorate 277(g_tTex1di4) DescriptorSet 0 - Decorate 280(g_tTex1du4) DescriptorSet 0 - Decorate 283(g_tTex3df4) DescriptorSet 0 - Decorate 286(g_tTex3di4) DescriptorSet 0 - Decorate 289(g_tTex3du4) DescriptorSet 0 - Decorate 292(g_tTexcdf4) DescriptorSet 0 - Decorate 295(g_tTexcdi4) DescriptorSet 0 - Decorate 298(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 266(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(@entryPointOutput) Location 0 + Decorate 271(g_sSamp2d) DescriptorSet 0 + Decorate 274(g_tTex1df4a) DescriptorSet 0 + Decorate 274(g_tTex1df4a) Binding 1 + Decorate 275(g_tTex1df4) DescriptorSet 0 + Decorate 275(g_tTex1df4) Binding 0 + Decorate 278(g_tTex1di4) DescriptorSet 0 + Decorate 281(g_tTex1du4) DescriptorSet 0 + Decorate 284(g_tTex3df4) DescriptorSet 0 + Decorate 287(g_tTex3di4) DescriptorSet 0 + Decorate 290(g_tTex3du4) DescriptorSet 0 + Decorate 293(g_tTexcdf4) DescriptorSet 0 + Decorate 296(g_tTexcdi4) DescriptorSet 0 + Decorate 299(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -859,51 +864,52 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266: TypePointer Output 258(PS_OUTPUT) -267(@entryPointOutput): 266(ptr) Variable Output - 270(g_sSamp2d): 15(ptr) Variable UniformConstant - 271: TypeImage 6(float) 1D sampled format:Unknown - 272: TypePointer UniformConstant 271 -273(g_tTex1df4a): 272(ptr) Variable UniformConstant - 274(g_tTex1df4): 272(ptr) Variable UniformConstant - 275: TypeImage 24(int) 1D sampled format:Unknown - 276: TypePointer UniformConstant 275 - 277(g_tTex1di4): 276(ptr) Variable UniformConstant - 278: TypeImage 44(int) 1D sampled format:Unknown - 279: TypePointer UniformConstant 278 - 280(g_tTex1du4): 279(ptr) Variable UniformConstant - 281: TypeImage 6(float) 3D sampled format:Unknown - 282: TypePointer UniformConstant 281 - 283(g_tTex3df4): 282(ptr) Variable UniformConstant - 284: TypeImage 24(int) 3D sampled format:Unknown - 285: TypePointer UniformConstant 284 - 286(g_tTex3di4): 285(ptr) Variable UniformConstant - 287: TypeImage 44(int) 3D sampled format:Unknown - 288: TypePointer UniformConstant 287 - 289(g_tTex3du4): 288(ptr) Variable UniformConstant - 290: TypeImage 6(float) Cube sampled format:Unknown - 291: TypePointer UniformConstant 290 - 292(g_tTexcdf4): 291(ptr) Variable UniformConstant - 293: TypeImage 24(int) Cube sampled format:Unknown - 294: TypePointer UniformConstant 293 - 295(g_tTexcdi4): 294(ptr) Variable UniformConstant - 296: TypeImage 44(int) Cube sampled format:Unknown - 297: TypePointer UniformConstant 296 - 298(g_tTexcdu4): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 6(float) - 300(c1): 299(ptr) Variable UniformConstant - 301: TypeVector 6(float) 3 - 302: TypePointer UniformConstant 301(fvec3) - 303(c3): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 7(fvec4) - 305(c4): 304(ptr) Variable UniformConstant - 306: TypePointer UniformConstant 24(int) - 307(o1): 306(ptr) Variable UniformConstant - 308: TypeVector 24(int) 3 - 309: TypePointer UniformConstant 308(ivec3) - 310(o3): 309(ptr) Variable UniformConstant - 311: TypePointer UniformConstant 31(ivec4) - 312(o4): 311(ptr) Variable UniformConstant + 266(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 267: TypePointer Output 266(PS_OUTPUT) +268(@entryPointOutput): 267(ptr) Variable Output + 271(g_sSamp2d): 15(ptr) Variable UniformConstant + 272: TypeImage 6(float) 1D sampled format:Unknown + 273: TypePointer UniformConstant 272 +274(g_tTex1df4a): 273(ptr) Variable UniformConstant + 275(g_tTex1df4): 273(ptr) Variable UniformConstant + 276: TypeImage 24(int) 1D sampled format:Unknown + 277: TypePointer UniformConstant 276 + 278(g_tTex1di4): 277(ptr) Variable UniformConstant + 279: TypeImage 44(int) 1D sampled format:Unknown + 280: TypePointer UniformConstant 279 + 281(g_tTex1du4): 280(ptr) Variable UniformConstant + 282: TypeImage 6(float) 3D sampled format:Unknown + 283: TypePointer UniformConstant 282 + 284(g_tTex3df4): 283(ptr) Variable UniformConstant + 285: TypeImage 24(int) 3D sampled format:Unknown + 286: TypePointer UniformConstant 285 + 287(g_tTex3di4): 286(ptr) Variable UniformConstant + 288: TypeImage 44(int) 3D sampled format:Unknown + 289: TypePointer UniformConstant 288 + 290(g_tTex3du4): 289(ptr) Variable UniformConstant + 291: TypeImage 6(float) Cube sampled format:Unknown + 292: TypePointer UniformConstant 291 + 293(g_tTexcdf4): 292(ptr) Variable UniformConstant + 294: TypeImage 24(int) Cube sampled format:Unknown + 295: TypePointer UniformConstant 294 + 296(g_tTexcdi4): 295(ptr) Variable UniformConstant + 297: TypeImage 44(int) Cube sampled format:Unknown + 298: TypePointer UniformConstant 297 + 299(g_tTexcdu4): 298(ptr) Variable UniformConstant + 300: TypePointer UniformConstant 6(float) + 301(c1): 300(ptr) Variable UniformConstant + 302: TypeVector 6(float) 3 + 303: TypePointer UniformConstant 302(fvec3) + 304(c3): 303(ptr) Variable UniformConstant + 305: TypePointer UniformConstant 7(fvec4) + 306(c4): 305(ptr) Variable UniformConstant + 307: TypePointer UniformConstant 24(int) + 308(o1): 307(ptr) Variable UniformConstant + 309: TypeVector 24(int) 3 + 310: TypePointer UniformConstant 309(ivec3) + 311(o3): 310(ptr) Variable UniformConstant + 312: TypePointer UniformConstant 31(ivec4) + 313(o4): 312(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1151,7 +1157,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 268:258(PS_OUTPUT) Load 260(psout) - Store 267(@entryPointOutput) 268 + 269:258(PS_OUTPUT) Load 260(psout) + Store 268(@entryPointOutput) 269 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 5838f08a..76546757 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:107 1.000000 0:109 Sequence 0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects @@ -701,7 +701,7 @@ gl_FragCoord origin is upper left 0:107 1.000000 0:109 Sequence 0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects @@ -727,7 +727,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 303 +// Id's are bound by 304 Capability Shader Capability ImageGatherExtended @@ -735,7 +735,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 + EntryPoint Fragment 4 "main" 268 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -772,34 +772,39 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 267 "@entryPointOutput" - Name 270 "g_sSamp2d" - Name 273 "g_tTex1df4a" - Name 276 "g_tTex1di4a" - Name 279 "g_tTex1du4a" - Name 282 "g_tTexcdf4a" - Name 285 "g_tTexcdi4a" - Name 288 "g_tTexcdu4a" - Name 290 "c1" - Name 293 "c2" - Name 295 "c4" - Name 297 "o1" - Name 300 "o3" - Name 302 "o4" + Name 266 "PS_OUTPUT" + MemberName 266(PS_OUTPUT) 0 "Color" + MemberName 266(PS_OUTPUT) 1 "Depth" + Name 268 "@entryPointOutput" + Name 271 "g_sSamp2d" + Name 274 "g_tTex1df4a" + Name 277 "g_tTex1di4a" + Name 280 "g_tTex1du4a" + Name 283 "g_tTexcdf4a" + Name 286 "g_tTexcdi4a" + Name 289 "g_tTexcdu4a" + Name 291 "c1" + Name 294 "c2" + Name 296 "c4" + Name 298 "o1" + Name 301 "o3" + Name 303 "o4" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 270(g_sSamp2d) DescriptorSet 0 - Decorate 273(g_tTex1df4a) DescriptorSet 0 - Decorate 273(g_tTex1df4a) Binding 0 - Decorate 276(g_tTex1di4a) DescriptorSet 0 - Decorate 279(g_tTex1du4a) DescriptorSet 0 - Decorate 282(g_tTexcdf4a) DescriptorSet 0 - Decorate 285(g_tTexcdi4a) DescriptorSet 0 - Decorate 288(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 266(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 268(@entryPointOutput) Location 0 + Decorate 271(g_sSamp2d) DescriptorSet 0 + Decorate 274(g_tTex1df4a) DescriptorSet 0 + Decorate 274(g_tTex1df4a) Binding 0 + Decorate 277(g_tTex1di4a) DescriptorSet 0 + Decorate 280(g_tTex1du4a) DescriptorSet 0 + Decorate 283(g_tTexcdf4a) DescriptorSet 0 + Decorate 286(g_tTexcdi4a) DescriptorSet 0 + Decorate 289(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -843,41 +848,42 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266: TypePointer Output 258(PS_OUTPUT) -267(@entryPointOutput): 266(ptr) Variable Output - 270(g_sSamp2d): 15(ptr) Variable UniformConstant - 271: TypeImage 6(float) 1D array sampled format:Unknown - 272: TypePointer UniformConstant 271 -273(g_tTex1df4a): 272(ptr) Variable UniformConstant - 274: TypeImage 24(int) 1D array sampled format:Unknown - 275: TypePointer UniformConstant 274 -276(g_tTex1di4a): 275(ptr) Variable UniformConstant - 277: TypeImage 44(int) 1D array sampled format:Unknown - 278: TypePointer UniformConstant 277 -279(g_tTex1du4a): 278(ptr) Variable UniformConstant - 280: TypeImage 6(float) Cube array sampled format:Unknown - 281: TypePointer UniformConstant 280 -282(g_tTexcdf4a): 281(ptr) Variable UniformConstant - 283: TypeImage 24(int) Cube array sampled format:Unknown - 284: TypePointer UniformConstant 283 -285(g_tTexcdi4a): 284(ptr) Variable UniformConstant - 286: TypeImage 44(int) Cube array sampled format:Unknown - 287: TypePointer UniformConstant 286 -288(g_tTexcdu4a): 287(ptr) Variable UniformConstant - 289: TypePointer UniformConstant 6(float) - 290(c1): 289(ptr) Variable UniformConstant - 291: TypeVector 6(float) 2 - 292: TypePointer UniformConstant 291(fvec2) - 293(c2): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 7(fvec4) - 295(c4): 294(ptr) Variable UniformConstant - 296: TypePointer UniformConstant 24(int) - 297(o1): 296(ptr) Variable UniformConstant - 298: TypeVector 24(int) 3 - 299: TypePointer UniformConstant 298(ivec3) - 300(o3): 299(ptr) Variable UniformConstant - 301: TypePointer UniformConstant 31(ivec4) - 302(o4): 301(ptr) Variable UniformConstant + 266(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 267: TypePointer Output 266(PS_OUTPUT) +268(@entryPointOutput): 267(ptr) Variable Output + 271(g_sSamp2d): 15(ptr) Variable UniformConstant + 272: TypeImage 6(float) 1D array sampled format:Unknown + 273: TypePointer UniformConstant 272 +274(g_tTex1df4a): 273(ptr) Variable UniformConstant + 275: TypeImage 24(int) 1D array sampled format:Unknown + 276: TypePointer UniformConstant 275 +277(g_tTex1di4a): 276(ptr) Variable UniformConstant + 278: TypeImage 44(int) 1D array sampled format:Unknown + 279: TypePointer UniformConstant 278 +280(g_tTex1du4a): 279(ptr) Variable UniformConstant + 281: TypeImage 6(float) Cube array sampled format:Unknown + 282: TypePointer UniformConstant 281 +283(g_tTexcdf4a): 282(ptr) Variable UniformConstant + 284: TypeImage 24(int) Cube array sampled format:Unknown + 285: TypePointer UniformConstant 284 +286(g_tTexcdi4a): 285(ptr) Variable UniformConstant + 287: TypeImage 44(int) Cube array sampled format:Unknown + 288: TypePointer UniformConstant 287 +289(g_tTexcdu4a): 288(ptr) Variable UniformConstant + 290: TypePointer UniformConstant 6(float) + 291(c1): 290(ptr) Variable UniformConstant + 292: TypeVector 6(float) 2 + 293: TypePointer UniformConstant 292(fvec2) + 294(c2): 293(ptr) Variable UniformConstant + 295: TypePointer UniformConstant 7(fvec4) + 296(c4): 295(ptr) Variable UniformConstant + 297: TypePointer UniformConstant 24(int) + 298(o1): 297(ptr) Variable UniformConstant + 299: TypeVector 24(int) 3 + 300: TypePointer UniformConstant 299(ivec3) + 301(o3): 300(ptr) Variable UniformConstant + 302: TypePointer UniformConstant 31(ivec4) + 303(o4): 302(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1125,7 +1131,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 268:258(PS_OUTPUT) Load 260(psout) - Store 267(@entryPointOutput) 268 + 269:258(PS_OUTPUT) Load 260(psout) + Store 268(@entryPointOutput) 269 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index a3eba63c..1dd69fd0 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1062,7 +1062,7 @@ gl_FragCoord origin is upper left 0:277 1.000000 0:279 Sequence 0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects @@ -2162,7 +2162,7 @@ gl_FragCoord origin is upper left 0:277 1.000000 0:279 Sequence 0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects @@ -2197,7 +2197,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 540 +// Id's are bound by 541 Capability Shader Capability Sampled1D @@ -2206,7 +2206,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 534 + EntryPoint Fragment 4 "main" 535 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2294,8 +2294,11 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 534 "@entryPointOutput" - Name 539 "g_sSamp" + Name 533 "PS_OUTPUT" + MemberName 533(PS_OUTPUT) 0 "Color" + MemberName 533(PS_OUTPUT) 1 "Depth" + Name 535 "@entryPointOutput" + Name 540 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2325,8 +2328,10 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 539(g_sSamp) DescriptorSet 0 - Decorate 539(g_sSamp) Binding 0 + MemberDecorate 533(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 535(@entryPointOutput) Location 0 + Decorate 540(g_sSamp) DescriptorSet 0 + Decorate 540(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2433,11 +2438,12 @@ gl_FragCoord origin is upper left 528: TypePointer Function 521(fvec4) 530: 14(int) Constant 1 531: TypePointer Function 9(float) - 533: TypePointer Output 522(PS_OUTPUT) -534(@entryPointOutput): 533(ptr) Variable Output - 537: TypeSampler - 538: TypePointer UniformConstant 537 - 539(g_sSamp): 538(ptr) Variable UniformConstant + 533(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) + 534: TypePointer Output 533(PS_OUTPUT) +535(@entryPointOutput): 534(ptr) Variable Output + 538: TypeSampler + 539: TypePointer UniformConstant 538 + 540(g_sSamp): 539(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3051,7 +3057,7 @@ gl_FragCoord origin is upper left Store 529 527 532: 531(ptr) AccessChain 524(psout) 530 Store 532 526 - 535:522(PS_OUTPUT) Load 524(psout) - Store 534(@entryPointOutput) 535 + 536:522(PS_OUTPUT) Load 524(psout) + Store 535(@entryPointOutput) 536 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 6ea1852e..34f23ee8 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -38,7 +38,7 @@ Shader version: 450 0:? 0.000000 0:26 Sequence 0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects @@ -88,7 +88,7 @@ Shader version: 450 0:? 0.000000 0:26 Sequence 0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects @@ -97,14 +97,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 42 +// Id's are bound by 43 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 36 + EntryPoint Vertex 4 "main" 37 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -114,13 +114,17 @@ Shader version: 450 Name 27 "VS_OUTPUT" MemberName 27(VS_OUTPUT) 0 "Pos" Name 29 "vsout" - Name 36 "@entryPointOutput" - Name 41 "g_sSamp" + Name 35 "VS_OUTPUT" + MemberName 35(VS_OUTPUT) 0 "Pos" + Name 37 "@entryPointOutput" + Name 42 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position - Decorate 41(g_sSamp) DescriptorSet 0 - Decorate 41(g_sSamp) Binding 0 + MemberDecorate 35(VS_OUTPUT) 0 BuiltIn Position + Decorate 37(@entryPointOutput) Location 0 + Decorate 42(g_sSamp) DescriptorSet 0 + Decorate 42(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -138,11 +142,12 @@ Shader version: 450 31: 9(float) Constant 0 32: 26(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 26(fvec4) - 35: TypePointer Output 27(VS_OUTPUT) -36(@entryPointOutput): 35(ptr) Variable Output - 39: TypeSampler - 40: TypePointer UniformConstant 39 - 41(g_sSamp): 40(ptr) Variable UniformConstant + 35(VS_OUTPUT): TypeStruct 26(fvec4) + 36: TypePointer Output 35(VS_OUTPUT) +37(@entryPointOutput): 36(ptr) Variable Output + 40: TypeSampler + 41: TypePointer UniformConstant 40 + 42(g_sSamp): 41(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -165,7 +170,7 @@ Shader version: 450 Store 23(NumberOfLevelsU) 25 34: 33(ptr) AccessChain 29(vsout) 30 Store 34 32 - 37:27(VS_OUTPUT) Load 29(vsout) - Store 36(@entryPointOutput) 37 + 38:27(VS_OUTPUT) Load 29(vsout) + Store 37(@entryPointOutput) 38 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index d120c315..c138707f 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -45,7 +45,7 @@ ERROR: node is still EOpNull! 0:20 1.000000 0:22 Sequence 0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects @@ -98,7 +98,7 @@ ERROR: node is still EOpNull! 0:20 1.000000 0:22 Sequence 0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 10a50035..5c8f2176 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -14,7 +14,7 @@ gl_FragCoord origin is upper left 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Branch: Return 0:6 Test condition and select (temp void) @@ -25,13 +25,13 @@ gl_FragCoord origin is upper left 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:6 false case 0:9 Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Branch: Return @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:20 Sequence 0:20 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:20 'input' (layout(location=0 ) in 4-component vector of float) 0:20 Branch: Return 0:23 Test condition and select (temp void) @@ -68,14 +68,14 @@ gl_FragCoord origin is upper left 0:? Sequence 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:24 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Return 0:23 false case 0:? Sequence 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:26 Negate value (temp 4-component vector of float) 0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:26 Branch: Return @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:4 'input' (layout(location=0 ) in 4-component vector of float) 0:4 Branch: Return 0:6 Test condition and select (temp void) @@ -124,13 +124,13 @@ gl_FragCoord origin is upper left 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Branch: Return 0:6 false case 0:9 Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Branch: Return @@ -155,7 +155,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:20 Sequence 0:20 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:20 'input' (layout(location=0 ) in 4-component vector of float) 0:20 Branch: Return 0:23 Test condition and select (temp void) @@ -167,14 +167,14 @@ gl_FragCoord origin is upper left 0:? Sequence 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:24 'input' (layout(location=0 ) in 4-component vector of float) 0:24 Branch: Return 0:23 false case 0:? Sequence 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:26 Negate value (temp 4-component vector of float) 0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:26 Branch: Return @@ -208,6 +208,7 @@ gl_FragCoord origin is upper left Name 67 "ii" Name 80 "ii" Decorate 9(input) Location 0 + Decorate 19(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 1323a166..61a63a41 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:33 'a5' (global float) 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:35 component-wise multiply (temp 4-component vector of float) 0:35 'input' (layout(location=0 ) in 4-component vector of float) 0:35 'a1' (global 4-component vector of float) @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:33 'a5' (global float) 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:35 component-wise multiply (temp 4-component vector of float) 0:35 'input' (layout(location=0 ) in 4-component vector of float) 0:35 'a1' (global 4-component vector of float) @@ -357,6 +357,7 @@ gl_FragCoord origin is upper left Name 90 "input" Name 95 "c4" Name 96 "b5" + Decorate 88(@entryPointOutput) Location 0 Decorate 90(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 03ce8b5d..f56ca2c4 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -45,7 +45,7 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:31 Sequence 0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects @@ -100,19 +100,19 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:31 Sequence 0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 47 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 43 + EntryPoint Fragment 4 "main" 44 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -129,7 +129,10 @@ gl_FragCoord origin is upper left Name 34 "PS_OUTPUT" MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" - Name 43 "@entryPointOutput" + Name 42 "PS_OUTPUT" + MemberName 42(PS_OUTPUT) 0 "color" + Name 44 "@entryPointOutput" + Decorate 44(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -159,16 +162,17 @@ gl_FragCoord origin is upper left 38: 37(int) Constant 0 39: 33(fvec4) ConstantComposite 13 13 13 13 40: TypePointer Function 33(fvec4) - 42: TypePointer Output 34(PS_OUTPUT) -43(@entryPointOutput): 42(ptr) Variable Output + 42(PS_OUTPUT): TypeStruct 33(fvec4) + 43: TypePointer Output 42(PS_OUTPUT) +44(@entryPointOutput): 43(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function 32: 2 FunctionCall 6(Test1() 41: 40(ptr) AccessChain 36(ps_output) 38 Store 41 39 - 44:34(PS_OUTPUT) Load 36(ps_output) - Store 43(@entryPointOutput) 44 + 45:34(PS_OUTPUT) Load 36(ps_output) + Store 44(@entryPointOutput) 45 Return FunctionEnd 6(Test1(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 044943da..6ba87928 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:22 3 (const int) 0:24 Sequence 0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects @@ -124,19 +124,19 @@ gl_FragCoord origin is upper left 0:22 3 (const int) 0:24 Sequence 0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 56 +// Id's are bound by 57 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 + EntryPoint Fragment 4 "main" 45 54 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -154,10 +154,15 @@ gl_FragCoord origin is upper left MemberName 31(PS_OUTPUT) 1 "Depth" Name 33 "psout" Name 45 "inpos" - Name 53 "@entryPointOutput" + Name 52 "PS_OUTPUT" + MemberName 52(PS_OUTPUT) 0 "Color" + MemberName 52(PS_OUTPUT) 1 "Depth" + Name 54 "@entryPointOutput" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord + MemberDecorate 52(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 54(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -179,8 +184,9 @@ gl_FragCoord origin is upper left 46: TypeInt 32 0 47: 46(int) Constant 3 48: TypePointer Input 6(float) - 52: TypePointer Output 31(PS_OUTPUT) -53(@entryPointOutput): 52(ptr) Variable Output + 52(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 53: TypePointer Output 52(PS_OUTPUT) +54(@entryPointOutput): 53(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function @@ -211,8 +217,8 @@ gl_FragCoord origin is upper left 50: 6(float) Load 49 51: 7(ptr) AccessChain 33(psout) 43 Store 51 50 - 54:31(PS_OUTPUT) Load 33(psout) - Store 53(@entryPointOutput) 54 + 55:31(PS_OUTPUT) Load 33(psout) + Store 54(@entryPointOutput) 55 Return FunctionEnd 12(MyFunc(f1;f1;f1;): 2 Function None 8 diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index ab697685..9178ddcd 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -13,7 +13,7 @@ local_size = (1, 1, 1) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) 0:11 Sequence 0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:11 Constant: 0:11 0.000000 0:11 Branch: Return @@ -37,7 +37,7 @@ local_size = (1, 1, 1) 0:9 WorkgroupMemoryBarrierWithGroupSync (global void) 0:11 Sequence 0:11 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:11 Constant: 0:11 0.000000 0:11 Branch: Return @@ -54,6 +54,7 @@ local_size = (1, 1, 1) ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 14 "@entryPointOutput" + Decorate 14(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index fd31c426..fa1d8343 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -301,7 +301,7 @@ local_size = (1, 1, 1) 0:125 'gs_ub4' (global 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -628,7 +628,7 @@ local_size = (1, 1, 1) 0:125 'gs_ub4' (global 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -700,6 +700,7 @@ local_size = (1, 1, 1) Name 193 "gs_uc4" Name 215 "@entryPointOutput" Decorate 175(inF0) Location 0 + Decorate 215(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 6b1fb385..07317af4 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -9,9 +9,9 @@ gl_FragCoord origin is upper left 0:5 'inDV1c' (layout(location=2 ) in double) 0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) 0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:5 'inDV4' (layout(location=5 ) in 4-component vector of double) -0:5 'inU1a' (layout(location=6 ) in uint) -0:5 'inU1b' (layout(location=7 ) in uint) +0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=8 ) in uint) +0:5 'inU1b' (layout(location=9 ) in uint) 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp double) @@ -25,11 +25,11 @@ gl_FragCoord origin is upper left 0:7 'r01' (temp double) 0:7 uint64BitsToDouble (temp double) 0:7 Construct uvec2 (temp 2-component vector of uint) -0:7 'inU1a' (layout(location=6 ) in uint) -0:7 'inU1b' (layout(location=7 ) in uint) +0:7 'inU1a' (layout(location=8 ) in uint) +0:7 'inU1b' (layout(location=9 ) in uint) 0:9 Sequence 0:9 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:9 Constant: 0:9 0.000000 0:9 Branch: Return @@ -49,9 +49,9 @@ gl_FragCoord origin is upper left 0:5 'inDV1c' (layout(location=2 ) in double) 0:5 'inDV2' (layout(location=3 ) in 2-component vector of double) 0:5 'inDV3' (layout(location=4 ) in 3-component vector of double) -0:5 'inDV4' (layout(location=5 ) in 4-component vector of double) -0:5 'inU1a' (layout(location=6 ) in uint) -0:5 'inU1b' (layout(location=7 ) in uint) +0:5 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:5 'inU1a' (layout(location=8 ) in uint) +0:5 'inU1b' (layout(location=9 ) in uint) 0:? Sequence 0:6 Sequence 0:6 move second child to first child (temp double) @@ -65,11 +65,11 @@ gl_FragCoord origin is upper left 0:7 'r01' (temp double) 0:7 uint64BitsToDouble (temp double) 0:7 Construct uvec2 (temp 2-component vector of uint) -0:7 'inU1a' (layout(location=6 ) in uint) -0:7 'inU1b' (layout(location=7 ) in uint) +0:7 'inU1a' (layout(location=8 ) in uint) +0:7 'inU1b' (layout(location=9 ) in uint) 0:9 Sequence 0:9 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:9 Constant: 0:9 0.000000 0:9 Branch: Return @@ -97,8 +97,9 @@ gl_FragCoord origin is upper left Decorate 10(inDV1a) Location 0 Decorate 12(inDV1b) Location 1 Decorate 14(inDV1c) Location 2 - Decorate 20(inU1a) Location 6 - Decorate 22(inU1b) Location 7 + Decorate 20(inU1a) Location 8 + Decorate 22(inU1b) Location 9 + Decorate 29(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 65db73ab..9eefd5ff 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -58,7 +58,7 @@ ERROR: node is still EOpNull! 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -123,7 +123,7 @@ ERROR: node is still EOpNull! 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 3f8cf120..8bf2e283 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -1554,7 +1554,7 @@ gl_FragCoord origin is upper left 0:334 'inF0' (layout(location=0 ) in 4-component vector of float) 0:337 Sequence 0:337 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -4335,7 +4335,7 @@ gl_FragCoord origin is upper left 0:334 'inF0' (layout(location=0 ) in 4-component vector of float) 0:337 Sequence 0:337 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -6091,6 +6091,7 @@ gl_FragCoord origin is upper left Decorate 837(inU0) Location 3 Decorate 845(inF1) Location 1 Decorate 854(inF2) Location 2 + Decorate 1060(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 9641513d..75f8d685 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -54,7 +54,7 @@ local_size = (1, 1, 1) 0:? Sequence 0:199 Sequence 0:199 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -122,7 +122,7 @@ local_size = (1, 1, 1) 0:? Sequence 0:199 Sequence 0:199 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -162,6 +162,7 @@ local_size = (1, 1, 1) Name 41 "inF2" Name 42 "inI0" Name 61 "@entryPointOutput" + Decorate 61(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index e6ab9472..95a30212 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -269,7 +269,7 @@ ERROR: node is still EOpNull! 0:90 0.000000 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -620,7 +620,7 @@ ERROR: node is still EOpNull! 0:90 0.000000 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 1d6f21d3..c3165e74 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -53,7 +53,7 @@ Shader version: 450 0:? Sequence 0:217 Sequence 0:217 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -185,7 +185,7 @@ Shader version: 450 0:? Sequence 0:217 Sequence 0:217 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -313,6 +313,7 @@ Shader version: 450 Name 118 "gs_ua4" Name 119 "gs_ub4" Name 120 "gs_uc4" + Decorate 85(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index bff38d8c..1b82811d 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:52 1.000000 0:54 Sequence 0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:52 1.000000 0:54 Sequence 0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects @@ -227,14 +227,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 105 +// Id's are bound by 106 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 + EntryPoint Fragment 4 "main" 93 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -250,13 +250,16 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 92 "@entryPointOutput" - Name 97 "g_sSamp" - Name 99 "c1" - Name 101 "c4" - Name 102 "o1" - Name 103 "o3" - Name 104 "o4" + Name 91 "PS_OUTPUT" + MemberName 91(PS_OUTPUT) 0 "Color" + MemberName 91(PS_OUTPUT) 1 "Depth" + Name 93 "@entryPointOutput" + Name 98 "g_sSamp" + Name 100 "c1" + Name 102 "c4" + Name 103 "o1" + Name 104 "o3" + Name 105 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -264,8 +267,10 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 97(g_sSamp) DescriptorSet 0 - Decorate 97(g_sSamp) Binding 0 + MemberDecorate 91(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 93(@entryPointOutput) Location 0 + Decorate 98(g_sSamp) DescriptorSet 0 + Decorate 98(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -308,18 +313,19 @@ gl_FragCoord origin is upper left 86: TypePointer Function 17(fvec4) 88: 11(int) Constant 1 89: TypePointer Function 6(float) - 91: TypePointer Output 80(PS_OUTPUT) -92(@entryPointOutput): 91(ptr) Variable Output - 95: TypeSampler - 96: TypePointer UniformConstant 95 - 97(g_sSamp): 96(ptr) Variable UniformConstant - 98: TypePointer UniformConstant 11(int) - 99(c1): 98(ptr) Variable UniformConstant - 100: TypePointer UniformConstant 24(ivec4) - 101(c4): 100(ptr) Variable UniformConstant - 102(o1): 98(ptr) Variable UniformConstant - 103(o3): 52(ptr) Variable UniformConstant - 104(o4): 100(ptr) Variable UniformConstant + 91(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) + 92: TypePointer Output 91(PS_OUTPUT) +93(@entryPointOutput): 92(ptr) Variable Output + 96: TypeSampler + 97: TypePointer UniformConstant 96 + 98(g_sSamp): 97(ptr) Variable UniformConstant + 99: TypePointer UniformConstant 11(int) + 100(c1): 99(ptr) Variable UniformConstant + 101: TypePointer UniformConstant 24(ivec4) + 102(c4): 101(ptr) Variable UniformConstant + 103(o1): 99(ptr) Variable UniformConstant + 104(o3): 52(ptr) Variable UniformConstant + 105(o4): 101(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -369,7 +375,7 @@ gl_FragCoord origin is upper left Store 87 85 90: 89(ptr) AccessChain 82(psout) 88 Store 90 84 - 93:80(PS_OUTPUT) Load 82(psout) - Store 92(@entryPointOutput) 93 + 94:80(PS_OUTPUT) Load 82(psout) + Store 93(@entryPointOutput) 94 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index b18bec5c..564bccbc 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -256,7 +256,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -293,14 +293,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 146 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 87 + EntryPoint Fragment 4 "main" 88 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -315,29 +315,32 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 87 "@entryPointOutput" - Name 92 "g_sSamp" - Name 95 "g_tTex1df4" - Name 98 "g_tTex1di4" - Name 101 "g_tTex1du4" - Name 104 "g_tTex2df4" - Name 107 "g_tTex2di4" - Name 110 "g_tTex2du4" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 122 "g_tTexcdf4" - Name 125 "g_tTexcdi4" - Name 128 "g_tTexcdu4" - Name 131 "g_tTexcdf4a" - Name 134 "g_tTexcdi4a" - Name 137 "g_tTexcdu4a" - Name 138 "c1" - Name 140 "c2" - Name 141 "o1" - Name 142 "o2" - Name 143 "o3" - Name 144 "o4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "@entryPointOutput" + Name 93 "g_sSamp" + Name 96 "g_tTex1df4" + Name 99 "g_tTex1di4" + Name 102 "g_tTex1du4" + Name 105 "g_tTex2df4" + Name 108 "g_tTex2di4" + Name 111 "g_tTex2du4" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" + Name 123 "g_tTexcdf4" + Name 126 "g_tTexcdi4" + Name 129 "g_tTexcdu4" + Name 132 "g_tTexcdf4a" + Name 135 "g_tTexcdi4a" + Name 138 "g_tTexcdu4a" + Name 139 "c1" + Name 141 "c2" + Name 142 "o1" + Name 143 "o2" + Name 144 "o3" + Name 145 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -345,24 +348,26 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 92(g_sSamp) DescriptorSet 0 - Decorate 92(g_sSamp) Binding 0 - Decorate 95(g_tTex1df4) DescriptorSet 0 - Decorate 95(g_tTex1df4) Binding 0 - Decorate 98(g_tTex1di4) DescriptorSet 0 - Decorate 101(g_tTex1du4) DescriptorSet 0 - Decorate 104(g_tTex2df4) DescriptorSet 0 - Decorate 107(g_tTex2di4) DescriptorSet 0 - Decorate 110(g_tTex2du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 122(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 128(g_tTexcdu4) DescriptorSet 0 - Decorate 131(g_tTexcdf4a) DescriptorSet 0 - Decorate 134(g_tTexcdi4a) DescriptorSet 0 - Decorate 137(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 88(@entryPointOutput) Location 0 + Decorate 93(g_sSamp) DescriptorSet 0 + Decorate 93(g_sSamp) Binding 0 + Decorate 96(g_tTex1df4) DescriptorSet 0 + Decorate 96(g_tTex1df4) Binding 0 + Decorate 99(g_tTex1di4) DescriptorSet 0 + Decorate 102(g_tTex1du4) DescriptorSet 0 + Decorate 105(g_tTex2df4) DescriptorSet 0 + Decorate 108(g_tTex2di4) DescriptorSet 0 + Decorate 111(g_tTex2du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 126(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 132(g_tTexcdf4a) DescriptorSet 0 + Decorate 135(g_tTexcdi4a) DescriptorSet 0 + Decorate 138(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -406,63 +411,64 @@ gl_FragCoord origin is upper left 81: TypePointer Function 23(fvec4) 83: 11(int) Constant 1 84: TypePointer Function 6(float) - 86: TypePointer Output 75(PS_OUTPUT) -87(@entryPointOutput): 86(ptr) Variable Output - 90: TypeSampler - 91: TypePointer UniformConstant 90 - 92(g_sSamp): 91(ptr) Variable UniformConstant - 93: TypeImage 6(float) 1D sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTex1df4): 94(ptr) Variable UniformConstant - 96: TypeImage 11(int) 1D sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex1di4): 97(ptr) Variable UniformConstant - 99: TypeImage 18(int) 1D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex1du4): 100(ptr) Variable UniformConstant - 102: TypeImage 6(float) 2D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex2df4): 103(ptr) Variable UniformConstant - 105: TypeImage 11(int) 2D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex2di4): 106(ptr) Variable UniformConstant - 108: TypeImage 18(int) 2D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex2du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 11(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 18(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdf4): 121(ptr) Variable UniformConstant - 123: TypeImage 11(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 126: TypeImage 18(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdu4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTexcdf4a): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTexcdi4a): 133(ptr) Variable UniformConstant - 135: TypeImage 18(int) Cube array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTexcdu4a): 136(ptr) Variable UniformConstant - 138(c1): 20(ptr) Variable UniformConstant - 139: TypePointer UniformConstant 15(ivec2) - 140(c2): 139(ptr) Variable UniformConstant - 141(o1): 20(ptr) Variable UniformConstant - 142(o2): 139(ptr) Variable UniformConstant - 143(o3): 13(ptr) Variable UniformConstant - 144(o4): 49(ptr) Variable UniformConstant + 86(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 87: TypePointer Output 86(PS_OUTPUT) +88(@entryPointOutput): 87(ptr) Variable Output + 91: TypeSampler + 92: TypePointer UniformConstant 91 + 93(g_sSamp): 92(ptr) Variable UniformConstant + 94: TypeImage 6(float) 1D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex1df4): 95(ptr) Variable UniformConstant + 97: TypeImage 11(int) 1D sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTex1di4): 98(ptr) Variable UniformConstant + 100: TypeImage 18(int) 1D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex1du4): 101(ptr) Variable UniformConstant + 103: TypeImage 6(float) 2D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex2df4): 104(ptr) Variable UniformConstant + 106: TypeImage 11(int) 2D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex2di4): 107(ptr) Variable UniformConstant + 109: TypeImage 18(int) 2D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex2du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 11(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 18(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 124: TypeImage 11(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdi4): 125(ptr) Variable UniformConstant + 127: TypeImage 18(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTexcdf4a): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTexcdi4a): 134(ptr) Variable UniformConstant + 136: TypeImage 18(int) Cube array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTexcdu4a): 137(ptr) Variable UniformConstant + 139(c1): 20(ptr) Variable UniformConstant + 140: TypePointer UniformConstant 15(ivec2) + 141(c2): 140(ptr) Variable UniformConstant + 142(o1): 20(ptr) Variable UniformConstant + 143(o2): 140(ptr) Variable UniformConstant + 144(o3): 13(ptr) Variable UniformConstant + 145(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -506,7 +512,7 @@ gl_FragCoord origin is upper left Store 82 80 85: 84(ptr) AccessChain 77(psout) 83 Store 85 79 - 88:75(PS_OUTPUT) Load 77(psout) - Store 87(@entryPointOutput) 88 + 89:75(PS_OUTPUT) Load 77(psout) + Store 88(@entryPointOutput) 89 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 1016ba49..cc2ca4a9 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -322,7 +322,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -359,14 +359,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 165 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 118 + EntryPoint Fragment 4 "main" 119 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -385,25 +385,28 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 118 "@entryPointOutput" - Name 123 "g_sSamp" - Name 126 "g_tTexcdf4" - Name 129 "g_tTexcdi4" - Name 132 "g_tTexcdu4" - Name 135 "g_tTex1df4a" - Name 138 "g_tTex1di4a" - Name 141 "g_tTex1du4a" - Name 144 "g_tTex2df4a" - Name 147 "g_tTex2di4a" - Name 150 "g_tTex2du4a" - Name 153 "g_tTexcdf4a" - Name 156 "g_tTexcdi4a" - Name 159 "g_tTexcdu4a" - Name 160 "c1" - Name 161 "o1" - Name 162 "o2" - Name 163 "o3" - Name 164 "o4" + Name 117 "PS_OUTPUT" + MemberName 117(PS_OUTPUT) 0 "Color" + MemberName 117(PS_OUTPUT) 1 "Depth" + Name 119 "@entryPointOutput" + Name 124 "g_sSamp" + Name 127 "g_tTexcdf4" + Name 130 "g_tTexcdi4" + Name 133 "g_tTexcdu4" + Name 136 "g_tTex1df4a" + Name 139 "g_tTex1di4a" + Name 142 "g_tTex1du4a" + Name 145 "g_tTex2df4a" + Name 148 "g_tTex2di4a" + Name 151 "g_tTex2du4a" + Name 154 "g_tTexcdf4a" + Name 157 "g_tTexcdi4a" + Name 160 "g_tTexcdu4a" + Name 161 "c1" + Name 162 "o1" + Name 163 "o2" + Name 164 "o3" + Name 165 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -415,20 +418,22 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 123(g_sSamp) DescriptorSet 0 - Decorate 123(g_sSamp) Binding 0 - Decorate 126(g_tTexcdf4) DescriptorSet 0 - Decorate 129(g_tTexcdi4) DescriptorSet 0 - Decorate 132(g_tTexcdu4) DescriptorSet 0 - Decorate 135(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1di4a) DescriptorSet 0 - Decorate 141(g_tTex1du4a) DescriptorSet 0 - Decorate 144(g_tTex2df4a) DescriptorSet 0 - Decorate 147(g_tTex2di4a) DescriptorSet 0 - Decorate 150(g_tTex2du4a) DescriptorSet 0 - Decorate 153(g_tTexcdf4a) DescriptorSet 0 - Decorate 156(g_tTexcdi4a) DescriptorSet 0 - Decorate 159(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 117(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 119(@entryPointOutput) Location 0 + Decorate 124(g_sSamp) DescriptorSet 0 + Decorate 124(g_sSamp) Binding 0 + Decorate 127(g_tTexcdf4) DescriptorSet 0 + Decorate 130(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 136(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1di4a) DescriptorSet 0 + Decorate 142(g_tTex1du4a) DescriptorSet 0 + Decorate 145(g_tTex2df4a) DescriptorSet 0 + Decorate 148(g_tTex2di4a) DescriptorSet 0 + Decorate 151(g_tTex2du4a) DescriptorSet 0 + Decorate 154(g_tTexcdf4a) DescriptorSet 0 + Decorate 157(g_tTexcdi4a) DescriptorSet 0 + Decorate 160(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -485,52 +490,53 @@ gl_FragCoord origin is upper left 112: TypePointer Function 23(fvec4) 114: 11(int) Constant 1 115: TypePointer Function 6(float) - 117: TypePointer Output 106(PS_OUTPUT) -118(@entryPointOutput): 117(ptr) Variable Output - 121: TypeSampler - 122: TypePointer UniformConstant 121 - 123(g_sSamp): 122(ptr) Variable UniformConstant - 124: TypeImage 6(float) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdf4): 125(ptr) Variable UniformConstant - 127: TypeImage 11(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdi4): 128(ptr) Variable UniformConstant - 130: TypeImage 15(int) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdu4): 131(ptr) Variable UniformConstant - 133: TypeImage 6(float) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1df4a): 134(ptr) Variable UniformConstant - 136: TypeImage 11(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1di4a): 137(ptr) Variable UniformConstant - 139: TypeImage 15(int) 1D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex1du4a): 140(ptr) Variable UniformConstant - 142: TypeImage 6(float) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2df4a): 143(ptr) Variable UniformConstant - 145: TypeImage 11(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2di4a): 146(ptr) Variable UniformConstant - 148: TypeImage 15(int) 2D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex2du4a): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdf4a): 152(ptr) Variable UniformConstant - 154: TypeImage 11(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdi4a): 155(ptr) Variable UniformConstant - 157: TypeImage 15(int) Cube array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTexcdu4a): 158(ptr) Variable UniformConstant - 160(c1): 17(ptr) Variable UniformConstant - 161(o1): 17(ptr) Variable UniformConstant - 162(o2): 13(ptr) Variable UniformConstant - 163(o3): 50(ptr) Variable UniformConstant - 164(o4): 80(ptr) Variable UniformConstant + 117(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 118: TypePointer Output 117(PS_OUTPUT) +119(@entryPointOutput): 118(ptr) Variable Output + 122: TypeSampler + 123: TypePointer UniformConstant 122 + 124(g_sSamp): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdf4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) Cube sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdi4): 129(ptr) Variable UniformConstant + 131: TypeImage 15(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) 1D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex1df4a): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) 1D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex1di4a): 138(ptr) Variable UniformConstant + 140: TypeImage 15(int) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1du4a): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex2df4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) 2D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex2di4a): 147(ptr) Variable UniformConstant + 149: TypeImage 15(int) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2du4a): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdf4a): 153(ptr) Variable UniformConstant + 155: TypeImage 11(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdi4a): 156(ptr) Variable UniformConstant + 158: TypeImage 15(int) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdu4a): 159(ptr) Variable UniformConstant + 161(c1): 17(ptr) Variable UniformConstant + 162(o1): 17(ptr) Variable UniformConstant + 163(o2): 13(ptr) Variable UniformConstant + 164(o3): 50(ptr) Variable UniformConstant + 165(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -592,7 +598,7 @@ gl_FragCoord origin is upper left Store 113 111 116: 115(ptr) AccessChain 108(psout) 114 Store 116 110 - 119:106(PS_OUTPUT) Load 108(psout) - Store 118(@entryPointOutput) 119 + 120:106(PS_OUTPUT) Load 108(psout) + Store 119(@entryPointOutput) 120 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index f0311ba3..da91781a 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -133,7 +133,7 @@ Shader version: 450 0:? 0.000000 0:69 Sequence 0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects @@ -306,7 +306,7 @@ Shader version: 450 0:? 0.000000 0:69 Sequence 0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects @@ -343,14 +343,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 163 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 115 + EntryPoint Vertex 4 "main" 116 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -367,25 +367,27 @@ Shader version: 450 Name 106 "VS_OUTPUT" MemberName 106(VS_OUTPUT) 0 "Pos" Name 108 "vsout" - Name 115 "@entryPointOutput" - Name 120 "g_sSamp" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTex1df4a" - Name 135 "g_tTex1di4a" - Name 138 "g_tTex1du4a" - Name 141 "g_tTex2df4a" - Name 144 "g_tTex2di4a" - Name 147 "g_tTex2du4a" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" - Name 157 "c1" - Name 158 "o1" - Name 159 "o2" - Name 160 "o3" - Name 161 "o4" + Name 114 "VS_OUTPUT" + MemberName 114(VS_OUTPUT) 0 "Pos" + Name 116 "@entryPointOutput" + Name 121 "g_sSamp" + Name 124 "g_tTexcdf4" + Name 127 "g_tTexcdi4" + Name 130 "g_tTexcdu4" + Name 133 "g_tTex1df4a" + Name 136 "g_tTex1di4a" + Name 139 "g_tTex1du4a" + Name 142 "g_tTex2df4a" + Name 145 "g_tTex2di4a" + Name 148 "g_tTex2du4a" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" + Name 158 "c1" + Name 159 "o1" + Name 160 "o2" + Name 161 "o3" + Name 162 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -397,20 +399,22 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position - Decorate 120(g_sSamp) DescriptorSet 0 - Decorate 120(g_sSamp) Binding 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 135(g_tTex1di4a) DescriptorSet 0 - Decorate 138(g_tTex1du4a) DescriptorSet 0 - Decorate 141(g_tTex2df4a) DescriptorSet 0 - Decorate 144(g_tTex2di4a) DescriptorSet 0 - Decorate 147(g_tTex2du4a) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 114(VS_OUTPUT) 0 BuiltIn Position + Decorate 116(@entryPointOutput) Location 0 + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 127(g_tTexcdi4) DescriptorSet 0 + Decorate 130(g_tTexcdu4) DescriptorSet 0 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 136(g_tTex1di4a) DescriptorSet 0 + Decorate 139(g_tTex1du4a) DescriptorSet 0 + Decorate 142(g_tTex2df4a) DescriptorSet 0 + Decorate 145(g_tTex2di4a) DescriptorSet 0 + Decorate 148(g_tTex2du4a) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -465,52 +469,53 @@ Shader version: 450 110: 6(float) Constant 0 111: 23(fvec4) ConstantComposite 110 110 110 110 112: TypePointer Function 23(fvec4) - 114: TypePointer Output 106(VS_OUTPUT) -115(@entryPointOutput): 114(ptr) Variable Output - 118: TypeSampler - 119: TypePointer UniformConstant 118 - 120(g_sSamp): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 11(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 15(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1df4a): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1di4a): 134(ptr) Variable UniformConstant - 136: TypeImage 15(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1du4a): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 11(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 15(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 11(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 15(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant - 157(c1): 17(ptr) Variable UniformConstant - 158(o1): 17(ptr) Variable UniformConstant - 159(o2): 13(ptr) Variable UniformConstant - 160(o3): 50(ptr) Variable UniformConstant - 161(o4): 80(ptr) Variable UniformConstant + 114(VS_OUTPUT): TypeStruct 23(fvec4) + 115: TypePointer Output 114(VS_OUTPUT) +116(@entryPointOutput): 115(ptr) Variable Output + 119: TypeSampler + 120: TypePointer UniformConstant 119 + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdi4): 126(ptr) Variable UniformConstant + 128: TypeImage 15(int) Cube sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdu4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1df4a): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 1D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex1di4a): 135(ptr) Variable UniformConstant + 137: TypeImage 15(int) 1D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex1du4a): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex2di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 15(int) 2D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex2du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 15(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 158(c1): 17(ptr) Variable UniformConstant + 159(o1): 17(ptr) Variable UniformConstant + 160(o2): 13(ptr) Variable UniformConstant + 161(o3): 50(ptr) Variable UniformConstant + 162(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function @@ -570,7 +575,7 @@ Shader version: 450 105: 43(ivec4) ImageFetch 100 102 Lod 104 113: 112(ptr) AccessChain 108(vsout) 109 Store 113 111 - 116:106(VS_OUTPUT) Load 108(vsout) - Store 115(@entryPointOutput) 116 + 117:106(VS_OUTPUT) Load 108(vsout) + Store 116(@entryPointOutput) 117 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 16e5187d..319347c5 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:37 Sequence 0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:37 Sequence 0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects @@ -125,13 +125,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 71 +// Id's are bound by 72 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 + EntryPoint Fragment 4 "main" 56 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -145,21 +145,26 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 55 "@entryPointOutput" - Name 58 "g_tTexbf4_test" - Name 61 "c2" - Name 64 "c3" - Name 66 "c4" - Name 67 "o1" - Name 68 "o2" - Name 69 "o3" - Name 70 "o4" + Name 54 "PS_OUTPUT" + MemberName 54(PS_OUTPUT) 0 "Color" + MemberName 54(PS_OUTPUT) 1 "Depth" + Name 56 "@entryPointOutput" + Name 59 "g_tTexbf4_test" + Name 62 "c2" + Name 65 "c3" + Name 67 "c4" + Name 68 "o1" + Name 69 "o2" + Name 70 "o3" + Name 71 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 58(g_tTexbf4_test) DescriptorSet 0 - Decorate 58(g_tTexbf4_test) Binding 0 + MemberDecorate 54(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 56(@entryPointOutput) Location 0 + Decorate 59(g_tTexbf4_test) DescriptorSet 0 + Decorate 59(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -192,21 +197,22 @@ gl_FragCoord origin is upper left 49: 7(fvec4) ConstantComposite 48 48 48 48 51: 15(int) Constant 1 52: TypePointer Function 6(float) - 54: TypePointer Output 44(PS_OUTPUT) -55(@entryPointOutput): 54(ptr) Variable Output -58(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 59: TypeVector 15(int) 2 - 60: TypePointer UniformConstant 59(ivec2) - 61(c2): 60(ptr) Variable UniformConstant - 62: TypeVector 15(int) 3 - 63: TypePointer UniformConstant 62(ivec3) - 64(c3): 63(ptr) Variable UniformConstant - 65: TypePointer UniformConstant 21(ivec4) - 66(c4): 65(ptr) Variable UniformConstant - 67(o1): 16(ptr) Variable UniformConstant - 68(o2): 60(ptr) Variable UniformConstant - 69(o3): 63(ptr) Variable UniformConstant - 70(o4): 65(ptr) Variable UniformConstant + 54(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 55: TypePointer Output 54(PS_OUTPUT) +56(@entryPointOutput): 55(ptr) Variable Output +59(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 60: TypeVector 15(int) 2 + 61: TypePointer UniformConstant 60(ivec2) + 62(c2): 61(ptr) Variable UniformConstant + 63: TypeVector 15(int) 3 + 64: TypePointer UniformConstant 63(ivec3) + 65(c3): 64(ptr) Variable UniformConstant + 66: TypePointer UniformConstant 21(ivec4) + 67(c4): 66(ptr) Variable UniformConstant + 68(o1): 16(ptr) Variable UniformConstant + 69(o2): 61(ptr) Variable UniformConstant + 70(o3): 64(ptr) Variable UniformConstant + 71(o4): 66(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -232,7 +238,7 @@ gl_FragCoord origin is upper left Store 50 49 53: 52(ptr) AccessChain 46(psout) 51 Store 53 48 - 56:44(PS_OUTPUT) Load 46(psout) - Store 55(@entryPointOutput) 56 + 57:44(PS_OUTPUT) Load 46(psout) + Store 56(@entryPointOutput) 57 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index acb97a4a..f641fe40 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -340,7 +340,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -377,7 +377,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 174 +// Id's are bound by 175 Capability Shader Capability ImageGatherExtended @@ -385,7 +385,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -407,22 +407,25 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 130 "@entryPointOutput" - Name 135 "g_sSamp" - Name 138 "g_tTexcdf4" - Name 141 "g_tTexcdi4" - Name 144 "g_tTexcdu4" - Name 147 "g_tTex1df4a" - Name 150 "g_tTex1di4a" - Name 153 "g_tTex1du4a" - Name 156 "g_tTex2df4a" - Name 159 "g_tTex2di4a" - Name 162 "g_tTex2du4a" - Name 165 "g_tTexcdf4a" - Name 168 "g_tTexcdi4a" - Name 171 "g_tTexcdu4a" - Name 172 "c1" - Name 173 "o4" + Name 129 "PS_OUTPUT" + MemberName 129(PS_OUTPUT) 0 "Color" + MemberName 129(PS_OUTPUT) 1 "Depth" + Name 131 "@entryPointOutput" + Name 136 "g_sSamp" + Name 139 "g_tTexcdf4" + Name 142 "g_tTexcdi4" + Name 145 "g_tTexcdu4" + Name 148 "g_tTex1df4a" + Name 151 "g_tTex1di4a" + Name 154 "g_tTex1du4a" + Name 157 "g_tTex2df4a" + Name 160 "g_tTex2di4a" + Name 163 "g_tTex2du4a" + Name 166 "g_tTexcdf4a" + Name 169 "g_tTexcdi4a" + Name 172 "g_tTexcdu4a" + Name 173 "c1" + Name 174 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -434,20 +437,22 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 135(g_sSamp) DescriptorSet 0 - Decorate 135(g_sSamp) Binding 0 - Decorate 138(g_tTexcdf4) DescriptorSet 0 - Decorate 141(g_tTexcdi4) DescriptorSet 0 - Decorate 144(g_tTexcdu4) DescriptorSet 0 - Decorate 147(g_tTex1df4a) DescriptorSet 0 - Decorate 150(g_tTex1di4a) DescriptorSet 0 - Decorate 153(g_tTex1du4a) DescriptorSet 0 - Decorate 156(g_tTex2df4a) DescriptorSet 0 - Decorate 159(g_tTex2di4a) DescriptorSet 0 - Decorate 162(g_tTex2du4a) DescriptorSet 0 - Decorate 165(g_tTexcdf4a) DescriptorSet 0 - Decorate 168(g_tTexcdi4a) DescriptorSet 0 - Decorate 171(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 131(@entryPointOutput) Location 0 + Decorate 136(g_sSamp) DescriptorSet 0 + Decorate 136(g_sSamp) Binding 0 + Decorate 139(g_tTexcdf4) DescriptorSet 0 + Decorate 142(g_tTexcdi4) DescriptorSet 0 + Decorate 145(g_tTexcdu4) DescriptorSet 0 + Decorate 148(g_tTex1df4a) DescriptorSet 0 + Decorate 151(g_tTex1di4a) DescriptorSet 0 + Decorate 154(g_tTex1du4a) DescriptorSet 0 + Decorate 157(g_tTex2df4a) DescriptorSet 0 + Decorate 160(g_tTex2di4a) DescriptorSet 0 + Decorate 163(g_tTex2du4a) DescriptorSet 0 + Decorate 166(g_tTexcdf4a) DescriptorSet 0 + Decorate 169(g_tTexcdi4a) DescriptorSet 0 + Decorate 172(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -507,49 +512,50 @@ gl_FragCoord origin is upper left 124: TypePointer Function 25(fvec4) 126: 11(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 118(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output - 133: TypeSampler - 134: TypePointer UniformConstant 133 - 135(g_sSamp): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdf4): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdi4): 140(ptr) Variable UniformConstant - 142: TypeImage 15(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdu4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1df4a): 146(ptr) Variable UniformConstant - 148: TypeImage 11(int) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1di4a): 149(ptr) Variable UniformConstant - 151: TypeImage 15(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1du4a): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2df4a): 155(ptr) Variable UniformConstant - 157: TypeImage 11(int) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2di4a): 158(ptr) Variable UniformConstant - 160: TypeImage 15(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2du4a): 161(ptr) Variable UniformConstant - 163: TypeImage 6(float) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdf4a): 164(ptr) Variable UniformConstant - 166: TypeImage 11(int) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdi4a): 167(ptr) Variable UniformConstant - 169: TypeImage 15(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdu4a): 170(ptr) Variable UniformConstant - 172(c1): 17(ptr) Variable UniformConstant - 173(o4): 88(ptr) Variable UniformConstant + 129(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) + 130: TypePointer Output 129(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output + 134: TypeSampler + 135: TypePointer UniformConstant 134 + 136(g_sSamp): 135(ptr) Variable UniformConstant + 137: TypeImage 6(float) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdf4): 138(ptr) Variable UniformConstant + 140: TypeImage 11(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdi4): 141(ptr) Variable UniformConstant + 143: TypeImage 15(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdu4): 144(ptr) Variable UniformConstant + 146: TypeImage 6(float) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1df4a): 147(ptr) Variable UniformConstant + 149: TypeImage 11(int) 1D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex1di4a): 150(ptr) Variable UniformConstant + 152: TypeImage 15(int) 1D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex1du4a): 153(ptr) Variable UniformConstant + 155: TypeImage 6(float) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2df4a): 156(ptr) Variable UniformConstant + 158: TypeImage 11(int) 2D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex2di4a): 159(ptr) Variable UniformConstant + 161: TypeImage 15(int) 2D array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTex2du4a): 162(ptr) Variable UniformConstant + 164: TypeImage 6(float) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdf4a): 165(ptr) Variable UniformConstant + 167: TypeImage 11(int) Cube array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTexcdi4a): 168(ptr) Variable UniformConstant + 170: TypeImage 15(int) Cube array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTexcdu4a): 171(ptr) Variable UniformConstant + 173(c1): 17(ptr) Variable UniformConstant + 174(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -620,7 +626,7 @@ gl_FragCoord origin is upper left Store 125 123 128: 127(ptr) AccessChain 120(psout) 126 Store 128 122 - 131:118(PS_OUTPUT) Load 120(psout) - Store 130(@entryPointOutput) 131 + 132:118(PS_OUTPUT) Load 120(psout) + Store 131(@entryPointOutput) 132 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 1751db8c..e2e3c601 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:66 1.000000 0:68 Sequence 0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:66 1.000000 0:68 Sequence 0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects @@ -305,7 +305,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 152 Capability Shader Capability ImageGatherExtended @@ -313,7 +313,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 + EntryPoint Fragment 4 "main" 97 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -330,27 +330,30 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 96 "@entryPointOutput" - Name 101 "g_sSamp" - Name 104 "g_tTex1df4" - Name 107 "g_tTex1di4" - Name 110 "g_tTex1du4" - Name 113 "g_tTex2df4" - Name 116 "g_tTex2di4" - Name 119 "g_tTex2du4" - Name 122 "g_tTex3df4" - Name 125 "g_tTex3di4" - Name 128 "g_tTex3du4" - Name 131 "g_tTexcdf4" - Name 134 "g_tTexcdi4" - Name 137 "g_tTexcdu4" - Name 140 "g_tTexcdf4a" - Name 143 "g_tTexcdi4a" - Name 146 "g_tTexcdu4a" - Name 147 "c1" - Name 148 "c2" - Name 149 "o3" - Name 150 "o4" + Name 95 "PS_OUTPUT" + MemberName 95(PS_OUTPUT) 0 "Color" + MemberName 95(PS_OUTPUT) 1 "Depth" + Name 97 "@entryPointOutput" + Name 102 "g_sSamp" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4" + Name 111 "g_tTex1du4" + Name 114 "g_tTex2df4" + Name 117 "g_tTex2di4" + Name 120 "g_tTex2du4" + Name 123 "g_tTex3df4" + Name 126 "g_tTex3di4" + Name 129 "g_tTex3du4" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTexcdf4a" + Name 144 "g_tTexcdi4a" + Name 147 "g_tTexcdu4a" + Name 148 "c1" + Name 149 "c2" + Name 150 "o3" + Name 151 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -358,24 +361,26 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_sSamp) DescriptorSet 0 - Decorate 101(g_sSamp) Binding 0 - Decorate 104(g_tTex1df4) DescriptorSet 0 - Decorate 104(g_tTex1df4) Binding 0 - Decorate 107(g_tTex1di4) DescriptorSet 0 - Decorate 110(g_tTex1du4) DescriptorSet 0 - Decorate 113(g_tTex2df4) DescriptorSet 0 - Decorate 116(g_tTex2di4) DescriptorSet 0 - Decorate 119(g_tTex2du4) DescriptorSet 0 - Decorate 122(g_tTex3df4) DescriptorSet 0 - Decorate 125(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3du4) DescriptorSet 0 - Decorate 131(g_tTexcdf4) DescriptorSet 0 - Decorate 134(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdu4) DescriptorSet 0 - Decorate 140(g_tTexcdf4a) DescriptorSet 0 - Decorate 143(g_tTexcdi4a) DescriptorSet 0 - Decorate 146(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 95(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 97(@entryPointOutput) Location 0 + Decorate 102(g_sSamp) DescriptorSet 0 + Decorate 102(g_sSamp) Binding 0 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4) DescriptorSet 0 + Decorate 111(g_tTex1du4) DescriptorSet 0 + Decorate 114(g_tTex2df4) DescriptorSet 0 + Decorate 117(g_tTex2di4) DescriptorSet 0 + Decorate 120(g_tTex2du4) DescriptorSet 0 + Decorate 123(g_tTex3df4) DescriptorSet 0 + Decorate 126(g_tTex3di4) DescriptorSet 0 + Decorate 129(g_tTex3du4) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTexcdf4a) DescriptorSet 0 + Decorate 144(g_tTexcdi4a) DescriptorSet 0 + Decorate 147(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -422,60 +427,61 @@ gl_FragCoord origin is upper left 90: TypePointer Function 25(fvec4) 92: 11(int) Constant 1 93: TypePointer Function 6(float) - 95: TypePointer Output 84(PS_OUTPUT) -96(@entryPointOutput): 95(ptr) Variable Output - 99: TypeSampler - 100: TypePointer UniformConstant 99 - 101(g_sSamp): 100(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex1df4): 103(ptr) Variable UniformConstant - 105: TypeImage 11(int) 1D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex1di4): 106(ptr) Variable UniformConstant - 108: TypeImage 18(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 2D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex2df4): 112(ptr) Variable UniformConstant - 114: TypeImage 11(int) 2D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex2di4): 115(ptr) Variable UniformConstant - 117: TypeImage 18(int) 2D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex2du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) 3D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex3df4): 121(ptr) Variable UniformConstant - 123: TypeImage 11(int) 3D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex3di4): 124(ptr) Variable UniformConstant - 126: TypeImage 18(int) 3D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex3du4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTexcdf4): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTexcdi4): 133(ptr) Variable UniformConstant - 135: TypeImage 18(int) Cube sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTexcdu4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTexcdf4a): 139(ptr) Variable UniformConstant - 141: TypeImage 11(int) Cube array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTexcdi4a): 142(ptr) Variable UniformConstant - 144: TypeImage 18(int) Cube array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTexcdu4a): 145(ptr) Variable UniformConstant - 147(c1): 20(ptr) Variable UniformConstant - 148(c2): 60(ptr) Variable UniformConstant - 149(o3): 13(ptr) Variable UniformConstant - 150(o4): 53(ptr) Variable UniformConstant + 95(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) + 96: TypePointer Output 95(PS_OUTPUT) +97(@entryPointOutput): 96(ptr) Variable Output + 100: TypeSampler + 101: TypePointer UniformConstant 100 + 102(g_sSamp): 101(ptr) Variable UniformConstant + 103: TypeImage 6(float) 1D sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTex1df4): 104(ptr) Variable UniformConstant + 106: TypeImage 11(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1di4): 107(ptr) Variable UniformConstant + 109: TypeImage 18(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 2D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex2df4): 113(ptr) Variable UniformConstant + 115: TypeImage 11(int) 2D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex2di4): 116(ptr) Variable UniformConstant + 118: TypeImage 18(int) 2D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex2du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3df4): 122(ptr) Variable UniformConstant + 124: TypeImage 11(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3di4): 125(ptr) Variable UniformConstant + 127: TypeImage 18(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 18(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) Cube array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTexcdf4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdi4a): 143(ptr) Variable UniformConstant + 145: TypeImage 18(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdu4a): 146(ptr) Variable UniformConstant + 148(c1): 20(ptr) Variable UniformConstant + 149(c2): 60(ptr) Variable UniformConstant + 150(o3): 13(ptr) Variable UniformConstant + 151(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -525,7 +531,7 @@ gl_FragCoord origin is upper left Store 91 89 94: 93(ptr) AccessChain 86(psout) 92 Store 94 88 - 97:84(PS_OUTPUT) Load 86(psout) - Store 96(@entryPointOutput) 97 + 98:84(PS_OUTPUT) Load 86(psout) + Store 97(@entryPointOutput) 98 Return FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 57390695..2fe397a6 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 max (global 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 max (global 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) @@ -50,6 +50,7 @@ gl_FragCoord origin is upper left Name 9 "@entryPointOutput" Name 11 "input1" Name 13 "input2" + Decorate 9(@entryPointOutput) Location 0 Decorate 11(input1) Location 0 Decorate 13(input2) Location 1 2: TypeVoid diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 721b0d33..18c16b8f 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:18 'r07' (temp int) 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects @@ -130,19 +130,19 @@ gl_FragCoord origin is upper left 0:18 'r07' (temp int) 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 43 +// Id's are bound by 44 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 40 + EntryPoint Fragment 4 "main" 41 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -157,7 +157,10 @@ gl_FragCoord origin is upper left Name 30 "PS_OUTPUT" MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" - Name 40 "@entryPointOutput" + Name 39 "PS_OUTPUT" + MemberName 39(PS_OUTPUT) 0 "color" + Name 41 "@entryPointOutput" + Decorate 41(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -179,8 +182,9 @@ gl_FragCoord origin is upper left 31: TypePointer Function 30(PS_OUTPUT) 33: 19(int) Constant 0 37: TypePointer Function 29(fvec4) - 39: TypePointer Output 30(PS_OUTPUT) -40(@entryPointOutput): 39(ptr) Variable Output + 39(PS_OUTPUT): TypeStruct 29(fvec4) + 40: TypePointer Output 39(PS_OUTPUT) +41(@entryPointOutput): 40(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -207,7 +211,7 @@ gl_FragCoord origin is upper left 36: 29(fvec4) CompositeConstruct 35 35 35 35 38: 37(ptr) AccessChain 32(ps_output) 33 Store 38 36 - 41:30(PS_OUTPUT) Load 32(ps_output) - Store 40(@entryPointOutput) 41 + 42:30(PS_OUTPUT) Load 32(ps_output) + Store 41(@entryPointOutput) 42 Return FunctionEnd diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 7863ed22..15123182 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -350,7 +350,7 @@ gl_FragCoord origin is upper left 0:139 'b' (temp bool) 0:141 Sequence 0:141 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects @@ -710,7 +710,7 @@ gl_FragCoord origin is upper left 0:139 'b' (temp bool) 0:141 Sequence 0:141 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects @@ -909,6 +909,7 @@ gl_FragCoord origin is upper left Name 500 "param" Name 504 "@entryPointOutput" Name 506 "input" + Decorate 504(@entryPointOutput) Location 0 Decorate 506(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 4c70ea82..41fc3400 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:127 1.000000 0:129 Sequence 0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects @@ -76,19 +76,19 @@ gl_FragCoord origin is upper left 0:127 1.000000 0:129 Sequence 0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 31 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 + EntryPoint Fragment 4 "main" 28 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -96,8 +96,13 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "Color" MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" - Name 27 "@entryPointOutput" + Name 26 "PS_OUTPUT" + MemberName 26(PS_OUTPUT) 0 "Color" + MemberName 26(PS_OUTPUT) 1 "Depth" + Name 28 "@entryPointOutput" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth + MemberDecorate 26(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 28(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -113,8 +118,9 @@ gl_FragCoord origin is upper left 21: TypePointer Function 11(fvec4) 23: 6(int) Constant 1 24: TypePointer Function 10(float) - 26: TypePointer Output 12(PS_OUTPUT) -27(@entryPointOutput): 26(ptr) Variable Output + 26(PS_OUTPUT): TypeStruct 11(fvec4) 10(float) + 27: TypePointer Output 26(PS_OUTPUT) +28(@entryPointOutput): 27(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function @@ -127,7 +133,7 @@ gl_FragCoord origin is upper left Store 22 20 25: 24(ptr) AccessChain 14(psout) 23 Store 25 19 - 28:12(PS_OUTPUT) Load 14(psout) - Store 27(@entryPointOutput) 28 + 29:12(PS_OUTPUT) Load 14(psout) + Store 28(@entryPointOutput) 29 Return FunctionEnd diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index e6982c65..5144f9df 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) @@ -114,6 +114,7 @@ gl_FragCoord origin is upper left Name 13 "a2" Name 15 "a3" Name 19 "a4" + Decorate 9(@entryPointOutput) Location 0 Decorate 11(a1) Location 0 Decorate 13(a2) Location 1 Decorate 15(a3) Location 2 diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index c1feb6de..57fab462 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -11,7 +11,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp int) -0:? '@entryPointOutput' (out int) +0:? '@entryPointOutput' (layout(location=0 ) out int) 0:8 add (temp int) 0:8 left-shift (temp int) 0:8 add (temp int) @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Sequence 0:8 move second child to first child (temp int) -0:? '@entryPointOutput' (out int) +0:? '@entryPointOutput' (layout(location=0 ) out int) 0:8 add (temp int) 0:8 left-shift (temp int) 0:8 add (temp int) @@ -80,6 +80,7 @@ gl_FragCoord origin is upper left Name 12 "a2" Name 15 "a3" Name 18 "a4" + Decorate 8(@entryPointOutput) Location 0 Decorate 10(a1) Location 0 Decorate 12(a2) Location 1 Decorate 15(a3) Location 2 diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index e2577c7a..51788101 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:12 Sequence 0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{noContraction temp 4-component vector of float color}) 0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:12 Sequence 0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{noContraction temp 4-component vector of float color}) 0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects @@ -61,12 +61,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 31 +// Id's are bound by 32 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 + EntryPoint Fragment 4 "main" 27 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -75,8 +75,11 @@ gl_FragCoord origin is upper left Name 16 "PS_OUTPUT" MemberName 16(PS_OUTPUT) 0 "color" Name 18 "ps_output" - Name 26 "@entryPointOutput" - Name 30 "precisefloat" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "color" + Name 27 "@entryPointOutput" + Name 31 "precisefloat" + Decorate 27(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -92,17 +95,18 @@ gl_FragCoord origin is upper left 21: 6(float) Constant 1065353216 22: 15(fvec4) ConstantComposite 21 21 21 21 23: TypePointer Function 15(fvec4) - 25: TypePointer Output 16(PS_OUTPUT) -26(@entryPointOutput): 25(ptr) Variable Output - 29: TypePointer Private 6(float) -30(precisefloat): 29(ptr) Variable Private + 25(PS_OUTPUT): TypeStruct 15(fvec4) + 26: TypePointer Output 25(PS_OUTPUT) +27(@entryPointOutput): 26(ptr) Variable Output + 30: TypePointer Private 6(float) +31(precisefloat): 30(ptr) Variable Private 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function 24: 23(ptr) AccessChain 18(ps_output) 20 Store 24 22 - 27:16(PS_OUTPUT) Load 18(ps_output) - Store 26(@entryPointOutput) 27 + 28:16(PS_OUTPUT) Load 18(ps_output) + Store 27(@entryPointOutput) 28 Return FunctionEnd 13(MyFunction(f1;vf3;): 2 Function None 10 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 413a4f0f..b8c68e74 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -498,7 +498,7 @@ gl_FragCoord origin is upper left 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) 0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects @@ -1016,7 +1016,7 @@ gl_FragCoord origin is upper left 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) 0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects @@ -1033,13 +1033,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 480 +// Id's are bound by 481 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 477 + EntryPoint Fragment 4 "main" 478 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1128,7 +1128,10 @@ gl_FragCoord origin is upper left Name 471 "PS_OUTPUT" MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" - Name 477 "@entryPointOutput" + Name 476 "PS_OUTPUT" + MemberName 476(PS_OUTPUT) 0 "Color" + Name 478 "@entryPointOutput" + Decorate 478(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1199,8 +1202,9 @@ gl_FragCoord origin is upper left 465: 6(float) Constant 1080452710 471(PS_OUTPUT): TypeStruct 462(fvec4) 472: TypePointer Function 471(PS_OUTPUT) - 476: TypePointer Output 471(PS_OUTPUT) -477(@entryPointOutput): 476(ptr) Variable Output + 476(PS_OUTPUT): TypeStruct 462(fvec4) + 477: TypePointer Output 476(PS_OUTPUT) +478(@entryPointOutput): 477(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function @@ -1466,8 +1470,8 @@ gl_FragCoord origin is upper left 474: 462(fvec4) Load 464(outval) 475: 463(ptr) AccessChain 473(psout) 149 Store 475 474 - 478:471(PS_OUTPUT) Load 473(psout) - Store 477(@entryPointOutput) 478 + 479:471(PS_OUTPUT) Load 473(psout) + Store 478(@entryPointOutput) 479 Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 5413a6f5..48c5343a 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -267,7 +267,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -285,14 +285,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 134 +// Id's are bound by 135 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -318,8 +318,11 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 130 "@entryPointOutput" - Name 133 "g_tTex1df4a" + Name 129 "PS_OUTPUT" + MemberName 129(PS_OUTPUT) 0 "Color" + MemberName 129(PS_OUTPUT) 1 "Depth" + Name 131 "@entryPointOutput" + Name 134 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -333,8 +336,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1df4a) Binding 1 + MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 131(@entryPointOutput) Location 0 + Decorate 134(g_tTex1df4a) DescriptorSet 0 + Decorate 134(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -412,9 +417,10 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 25(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 120(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output -133(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 130: TypePointer Output 129(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output +134(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -476,7 +482,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 131:120(PS_OUTPUT) Load 122(psout) - Store 130(@entryPointOutput) 131 + 132:120(PS_OUTPUT) Load 122(psout) + Store 131(@entryPointOutput) 132 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 9cd4ebd0..ee209ec8 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left 0:87 1.000000 0:89 Sequence 0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects @@ -490,7 +490,7 @@ gl_FragCoord origin is upper left 0:87 1.000000 0:89 Sequence 0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects @@ -513,13 +513,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 186 +// Id's are bound by 187 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 181 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -565,10 +565,13 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 180 "@entryPointOutput" - Name 183 "g_sSamp2d" - Name 184 "g_sSamp2D_b" - Name 185 "g_tTex1df4a" + Name 179 "PS_OUTPUT" + MemberName 179(PS_OUTPUT) 0 "Color" + MemberName 179(PS_OUTPUT) 1 "Depth" + Name 181 "@entryPointOutput" + Name 184 "g_sSamp2d" + Name 185 "g_sSamp2D_b" + Name 186 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -585,10 +588,12 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 183(g_sSamp2d) DescriptorSet 0 - Decorate 184(g_sSamp2D_b) DescriptorSet 0 - Decorate 185(g_tTex1df4a) DescriptorSet 0 - Decorate 185(g_tTex1df4a) Binding 1 + MemberDecorate 179(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 181(@entryPointOutput) Location 0 + Decorate 184(g_sSamp2d) DescriptorSet 0 + Decorate 185(g_sSamp2D_b) DescriptorSet 0 + Decorate 186(g_tTex1df4a) DescriptorSet 0 + Decorate 186(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -688,11 +693,12 @@ gl_FragCoord origin is upper left 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(PS_OUTPUT) -180(@entryPointOutput): 179(ptr) Variable Output - 183(g_sSamp2d): 44(ptr) Variable UniformConstant -184(g_sSamp2D_b): 44(ptr) Variable UniformConstant -185(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 180: TypePointer Output 179(PS_OUTPUT) +181(@entryPointOutput): 180(ptr) Variable Output + 184(g_sSamp2d): 44(ptr) Variable UniformConstant +185(g_sSamp2D_b): 44(ptr) Variable UniformConstant +186(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -797,7 +803,7 @@ gl_FragCoord origin is upper left Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 181:171(PS_OUTPUT) Load 173(psout) - Store 180(@entryPointOutput) 181 + 182:171(PS_OUTPUT) Load 173(psout) + Store 181(@entryPointOutput) 182 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index d11d16f5..62aaa6f0 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -306,7 +306,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -327,13 +327,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 + EntryPoint Fragment 4 "main" 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -359,11 +359,14 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 136 "@entryPointOutput" - Name 139 "g_tTex1df4a" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" + Name 135 "PS_OUTPUT" + MemberName 135(PS_OUTPUT) 0 "Color" + MemberName 135(PS_OUTPUT) 1 "Depth" + Name 137 "@entryPointOutput" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -377,11 +380,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTex1df4a) Binding 1 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 135(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 137(@entryPointOutput) Location 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTex1df4a) Binding 1 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -465,18 +470,19 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135: TypePointer Output 127(PS_OUTPUT) -136(@entryPointOutput): 135(ptr) Variable Output -139(g_tTex1df4a): 11(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 21(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 36(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 135(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 136: TypePointer Output 135(PS_OUTPUT) +137(@entryPointOutput): 136(ptr) Variable Output +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 21(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 36(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -538,7 +544,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 22 Store 134 130 - 137:127(PS_OUTPUT) Load 129(psout) - Store 136(@entryPointOutput) 137 + 138:127(PS_OUTPUT) Load 129(psout) + Store 137(@entryPointOutput) 138 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 76315296..2d031eb8 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -222,7 +222,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -237,13 +237,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -263,8 +263,11 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 102 "@entryPointOutput" - Name 105 "g_tTex1df4a" + Name 101 "PS_OUTPUT" + MemberName 101(PS_OUTPUT) 0 "Color" + MemberName 101(PS_OUTPUT) 1 "Depth" + Name 103 "@entryPointOutput" + Name 106 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -275,8 +278,10 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 105(g_tTex1df4a) DescriptorSet 0 - Decorate 105(g_tTex1df4a) Binding 1 + MemberDecorate 101(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 103(@entryPointOutput) Location 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -341,9 +346,10 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101: TypePointer Output 93(PS_OUTPUT) -102(@entryPointOutput): 101(ptr) Variable Output -105(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 102: TypePointer Output 101(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output +106(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -387,7 +393,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 39 Store 100 96 - 103:93(PS_OUTPUT) Load 95(psout) - Store 102(@entryPointOutput) 103 + 104:93(PS_OUTPUT) Load 95(psout) + Store 103(@entryPointOutput) 104 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index e735d34d..a33dd9e8 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -303,7 +303,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -321,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 134 +// Id's are bound by 135 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -354,8 +354,11 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 130 "@entryPointOutput" - Name 133 "g_tTex1df4a" + Name 129 "PS_OUTPUT" + MemberName 129(PS_OUTPUT) 0 "Color" + MemberName 129(PS_OUTPUT) 1 "Depth" + Name 131 "@entryPointOutput" + Name 134 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -369,8 +372,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1df4a) Binding 1 + MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 131(@entryPointOutput) Location 0 + Decorate 134(g_tTex1df4a) DescriptorSet 0 + Decorate 134(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -448,9 +453,10 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 26(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 120(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output -133(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 130: TypePointer Output 129(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output +134(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -512,7 +518,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 131:120(PS_OUTPUT) Load 122(psout) - Store 130(@entryPointOutput) 131 + 132:120(PS_OUTPUT) Load 122(psout) + Store 131(@entryPointOutput) 132 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index d61eda9d..076bfff3 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -366,7 +366,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -387,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 159 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 154 + EntryPoint Fragment 4 "main" 155 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -425,8 +425,11 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 154 "@entryPointOutput" - Name 157 "g_tTex1df4a" + Name 153 "PS_OUTPUT" + MemberName 153(PS_OUTPUT) 0 "Color" + MemberName 153(PS_OUTPUT) 1 "Depth" + Name 155 "@entryPointOutput" + Name 158 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -443,8 +446,10 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 + MemberDecorate 153(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 155(@entryPointOutput) Location 0 + Decorate 158(g_tTex1df4a) DescriptorSet 0 + Decorate 158(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -531,9 +536,10 @@ gl_FragCoord origin is upper left 148: 7(fvec4) ConstantComposite 147 147 147 147 150: 23(int) Constant 1 151: TypePointer Function 6(float) - 153: TypePointer Output 143(PS_OUTPUT) -154(@entryPointOutput): 153(ptr) Variable Output -157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 153(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 154: TypePointer Output 153(PS_OUTPUT) +155(@entryPointOutput): 154(ptr) Variable Output +158(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -613,7 +619,7 @@ gl_FragCoord origin is upper left Store 149 148 152: 151(ptr) AccessChain 145(psout) 150 Store 152 147 - 155:143(PS_OUTPUT) Load 145(psout) - Store 154(@entryPointOutput) 155 + 156:143(PS_OUTPUT) Load 145(psout) + Store 155(@entryPointOutput) 156 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index b2e77efc..10281a86 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -342,7 +342,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -363,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 + EntryPoint Fragment 4 "main" 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -395,11 +395,14 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 136 "@entryPointOutput" - Name 139 "g_tTex1df4a" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" + Name 135 "PS_OUTPUT" + MemberName 135(PS_OUTPUT) 0 "Color" + MemberName 135(PS_OUTPUT) 1 "Depth" + Name 137 "@entryPointOutput" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -413,11 +416,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTex1df4a) Binding 1 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 135(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 137(@entryPointOutput) Location 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTex1df4a) Binding 1 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -501,18 +506,19 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135: TypePointer Output 127(PS_OUTPUT) -136(@entryPointOutput): 135(ptr) Variable Output -139(g_tTex1df4a): 11(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 22(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 37(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 135(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 136: TypePointer Output 135(PS_OUTPUT) +137(@entryPointOutput): 136(ptr) Variable Output +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 22(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -574,7 +580,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 23 Store 134 130 - 137:127(PS_OUTPUT) Load 129(psout) - Store 136(@entryPointOutput) 137 + 138:127(PS_OUTPUT) Load 129(psout) + Store 137(@entryPointOutput) 138 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 52263c49..c33e8dc4 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -287,8 +287,11 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 102 "@entryPointOutput" - Name 105 "g_tTex1df4a" + Name 101 "PS_OUTPUT" + MemberName 101(PS_OUTPUT) 0 "Color" + MemberName 101(PS_OUTPUT) 1 "Depth" + Name 103 "@entryPointOutput" + Name 106 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -299,8 +302,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 105(g_tTex1df4a) DescriptorSet 0 - Decorate 105(g_tTex1df4a) Binding 1 + MemberDecorate 101(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 103(@entryPointOutput) Location 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -365,9 +370,10 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101: TypePointer Output 93(PS_OUTPUT) -102(@entryPointOutput): 101(ptr) Variable Output -105(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 102: TypePointer Output 101(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output +106(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -411,7 +417,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 40 Store 100 96 - 103:93(PS_OUTPUT) Load 95(psout) - Store 102(@entryPointOutput) 103 + 104:93(PS_OUTPUT) Load 95(psout) + Store 103(@entryPointOutput) 104 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index a61aa29b..c3c15f01 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -332,7 +332,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -361,14 +361,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 179 +// Id's are bound by 180 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -394,19 +394,22 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 140 "@entryPointOutput" - Name 145 "g_tTex1df4" - Name 148 "g_tTex1di4" - Name 151 "g_tTex1du4" - Name 154 "g_tTex2df4" - Name 157 "g_tTex2di4" - Name 160 "g_tTex2du4" - Name 163 "g_tTex3df4" - Name 166 "g_tTex3di4" - Name 169 "g_tTex3du4" - Name 172 "g_tTexcdf4" - Name 175 "g_tTexcdi4" - Name 178 "g_tTexcdu4" + Name 139 "PS_OUTPUT" + MemberName 139(PS_OUTPUT) 0 "Color" + MemberName 139(PS_OUTPUT) 1 "Depth" + Name 141 "@entryPointOutput" + Name 146 "g_tTex1df4" + Name 149 "g_tTex1di4" + Name 152 "g_tTex1du4" + Name 155 "g_tTex2df4" + Name 158 "g_tTex2di4" + Name 161 "g_tTex2du4" + Name 164 "g_tTex3df4" + Name 167 "g_tTex3di4" + Name 170 "g_tTex3du4" + Name 173 "g_tTexcdf4" + Name 176 "g_tTexcdi4" + Name 179 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -419,19 +422,21 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 145(g_tTex1df4) DescriptorSet 0 - Decorate 145(g_tTex1df4) Binding 0 - Decorate 148(g_tTex1di4) DescriptorSet 0 - Decorate 151(g_tTex1du4) DescriptorSet 0 - Decorate 154(g_tTex2df4) DescriptorSet 0 - Decorate 157(g_tTex2di4) DescriptorSet 0 - Decorate 160(g_tTex2du4) DescriptorSet 0 - Decorate 163(g_tTex3df4) DescriptorSet 0 - Decorate 166(g_tTex3di4) DescriptorSet 0 - Decorate 169(g_tTex3du4) DescriptorSet 0 - Decorate 172(g_tTexcdf4) DescriptorSet 0 - Decorate 175(g_tTexcdi4) DescriptorSet 0 - Decorate 178(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 139(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 141(@entryPointOutput) Location 0 + Decorate 146(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1df4) Binding 0 + Decorate 149(g_tTex1di4) DescriptorSet 0 + Decorate 152(g_tTex1du4) DescriptorSet 0 + Decorate 155(g_tTex2df4) DescriptorSet 0 + Decorate 158(g_tTex2di4) DescriptorSet 0 + Decorate 161(g_tTex2du4) DescriptorSet 0 + Decorate 164(g_tTex3df4) DescriptorSet 0 + Decorate 167(g_tTex3di4) DescriptorSet 0 + Decorate 170(g_tTex3du4) DescriptorSet 0 + Decorate 173(g_tTexcdf4) DescriptorSet 0 + Decorate 176(g_tTexcdi4) DescriptorSet 0 + Decorate 179(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -504,44 +509,45 @@ gl_FragCoord origin is upper left 134: 102(fvec4) ConstantComposite 133 133 133 133 135: TypePointer Function 102(fvec4) 137: 29(int) Constant 1 - 139: TypePointer Output 129(PS_OUTPUT) -140(@entryPointOutput): 139(ptr) Variable Output - 143: TypeImage 6(float) 1D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex1df4): 144(ptr) Variable UniformConstant - 146: TypeImage 29(int) 1D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex1di4): 147(ptr) Variable UniformConstant - 149: TypeImage 42(int) 1D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex1du4): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) 2D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex2df4): 153(ptr) Variable UniformConstant - 155: TypeImage 29(int) 2D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex2di4): 156(ptr) Variable UniformConstant - 158: TypeImage 42(int) 2D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex2du4): 159(ptr) Variable UniformConstant - 161: TypeImage 6(float) 3D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex3df4): 162(ptr) Variable UniformConstant - 164: TypeImage 29(int) 3D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex3di4): 165(ptr) Variable UniformConstant - 167: TypeImage 42(int) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3du4): 168(ptr) Variable UniformConstant - 170: TypeImage 6(float) Cube sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTexcdf4): 171(ptr) Variable UniformConstant - 173: TypeImage 29(int) Cube sampled format:Unknown - 174: TypePointer UniformConstant 173 - 175(g_tTexcdi4): 174(ptr) Variable UniformConstant - 176: TypeImage 42(int) Cube sampled format:Unknown - 177: TypePointer UniformConstant 176 - 178(g_tTexcdu4): 177(ptr) Variable UniformConstant + 139(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 140: TypePointer Output 139(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144: TypeImage 6(float) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1df4): 145(ptr) Variable UniformConstant + 147: TypeImage 29(int) 1D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex1di4): 148(ptr) Variable UniformConstant + 150: TypeImage 42(int) 1D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex1du4): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2df4): 154(ptr) Variable UniformConstant + 156: TypeImage 29(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex2di4): 157(ptr) Variable UniformConstant + 159: TypeImage 42(int) 2D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex2du4): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3df4): 163(ptr) Variable UniformConstant + 165: TypeImage 29(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3di4): 166(ptr) Variable UniformConstant + 168: TypeImage 42(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3du4): 169(ptr) Variable UniformConstant + 171: TypeImage 6(float) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdf4): 172(ptr) Variable UniformConstant + 174: TypeImage 29(int) Cube sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTexcdi4): 175(ptr) Variable UniformConstant + 177: TypeImage 42(int) Cube sampled format:Unknown + 178: TypePointer UniformConstant 177 + 179(g_tTexcdu4): 178(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -618,7 +624,7 @@ gl_FragCoord origin is upper left Store 136 134 138: 7(ptr) AccessChain 131(psout) 137 Store 138 133 - 141:129(PS_OUTPUT) Load 131(psout) - Store 140(@entryPointOutput) 141 + 142:129(PS_OUTPUT) Load 131(psout) + Store 141(@entryPointOutput) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 93fe73cf..4cab81cc 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -314,7 +314,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -343,14 +343,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 177 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 + EntryPoint Fragment 4 "main" 139 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -376,19 +376,22 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 138 "@entryPointOutput" - Name 143 "g_tTex3df4" - Name 146 "g_tTex3di4" - Name 149 "g_tTex3du4" - Name 152 "g_tTex1df4a" - Name 155 "g_tTex1di4a" - Name 158 "g_tTex1du4a" - Name 161 "g_tTex2df4a" - Name 164 "g_tTex2di4a" - Name 167 "g_tTex2du4a" - Name 170 "g_tTexcdf4a" - Name 173 "g_tTexcdi4a" - Name 176 "g_tTexcdu4a" + Name 137 "PS_OUTPUT" + MemberName 137(PS_OUTPUT) 0 "Color" + MemberName 137(PS_OUTPUT) 1 "Depth" + Name 139 "@entryPointOutput" + Name 144 "g_tTex3df4" + Name 147 "g_tTex3di4" + Name 150 "g_tTex3du4" + Name 153 "g_tTex1df4a" + Name 156 "g_tTex1di4a" + Name 159 "g_tTex1du4a" + Name 162 "g_tTex2df4a" + Name 165 "g_tTex2di4a" + Name 168 "g_tTex2du4a" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -402,18 +405,20 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 143(g_tTex3df4) DescriptorSet 0 - Decorate 146(g_tTex3di4) DescriptorSet 0 - Decorate 149(g_tTex3du4) DescriptorSet 0 - Decorate 152(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1di4a) DescriptorSet 0 - Decorate 158(g_tTex1du4a) DescriptorSet 0 - Decorate 161(g_tTex2df4a) DescriptorSet 0 - Decorate 164(g_tTex2di4a) DescriptorSet 0 - Decorate 167(g_tTex2du4a) DescriptorSet 0 - Decorate 170(g_tTexcdf4a) DescriptorSet 0 - Decorate 173(g_tTexcdi4a) DescriptorSet 0 - Decorate 176(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 137(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 139(@entryPointOutput) Location 0 + Decorate 144(g_tTex3df4) DescriptorSet 0 + Decorate 147(g_tTex3di4) DescriptorSet 0 + Decorate 150(g_tTex3du4) DescriptorSet 0 + Decorate 153(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1di4a) DescriptorSet 0 + Decorate 159(g_tTex1du4a) DescriptorSet 0 + Decorate 162(g_tTex2df4a) DescriptorSet 0 + Decorate 165(g_tTex2di4a) DescriptorSet 0 + Decorate 168(g_tTex2du4a) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -484,44 +489,45 @@ gl_FragCoord origin is upper left 132: 126(fvec4) ConstantComposite 131 131 131 131 133: TypePointer Function 126(fvec4) 135: 25(int) Constant 1 - 137: TypePointer Output 127(PS_OUTPUT) -138(@entryPointOutput): 137(ptr) Variable Output - 141: TypeImage 6(float) 3D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex3df4): 142(ptr) Variable UniformConstant - 144: TypeImage 25(int) 3D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex3di4): 145(ptr) Variable UniformConstant - 147: TypeImage 37(int) 3D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex3du4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 1D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex1df4a): 151(ptr) Variable UniformConstant - 153: TypeImage 25(int) 1D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex1di4a): 154(ptr) Variable UniformConstant - 156: TypeImage 37(int) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1du4a): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 2D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex2df4a): 160(ptr) Variable UniformConstant - 162: TypeImage 25(int) 2D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex2di4a): 163(ptr) Variable UniformConstant - 165: TypeImage 37(int) 2D array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTex2du4a): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdf4a): 169(ptr) Variable UniformConstant - 171: TypeImage 25(int) Cube array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTexcdi4a): 172(ptr) Variable UniformConstant - 174: TypeImage 37(int) Cube array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTexcdu4a): 175(ptr) Variable UniformConstant + 137(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) + 138: TypePointer Output 137(PS_OUTPUT) +139(@entryPointOutput): 138(ptr) Variable Output + 142: TypeImage 6(float) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3df4): 143(ptr) Variable UniformConstant + 145: TypeImage 25(int) 3D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex3di4): 146(ptr) Variable UniformConstant + 148: TypeImage 37(int) 3D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex3du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1df4a): 152(ptr) Variable UniformConstant + 154: TypeImage 25(int) 1D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex1di4a): 155(ptr) Variable UniformConstant + 157: TypeImage 37(int) 1D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex1du4a): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2df4a): 161(ptr) Variable UniformConstant + 163: TypeImage 25(int) 2D array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTex2di4a): 164(ptr) Variable UniformConstant + 166: TypeImage 37(int) 2D array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTex2du4a): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 25(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 37(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -598,7 +604,7 @@ gl_FragCoord origin is upper left Store 134 132 136: 7(ptr) AccessChain 129(psout) 135 Store 136 131 - 139:127(PS_OUTPUT) Load 129(psout) - Store 138(@entryPointOutput) 139 + 140:127(PS_OUTPUT) Load 129(psout) + Store 139(@entryPointOutput) 140 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 71eb5206..0ebe3e5f 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -289,14 +289,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -316,22 +316,25 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 103 "@entryPointOutput" - Name 108 "g_tTex3df4" - Name 111 "g_tTex3di4" - Name 114 "g_tTex3du4" - Name 117 "g_tTexcdf4" - Name 120 "g_tTexcdi4" - Name 123 "g_tTexcdu4" - Name 126 "g_tTex1df4a" - Name 129 "g_tTex1di4a" - Name 132 "g_tTex1du4a" - Name 135 "g_tTex2df4a" - Name 138 "g_tTex2di4a" - Name 141 "g_tTex2du4a" - Name 144 "g_tTexcdf4a" - Name 147 "g_tTexcdi4a" - Name 150 "g_tTexcdu4a" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "@entryPointOutput" + Name 109 "g_tTex3df4" + Name 112 "g_tTex3di4" + Name 115 "g_tTex3du4" + Name 118 "g_tTexcdf4" + Name 121 "g_tTexcdi4" + Name 124 "g_tTexcdu4" + Name 127 "g_tTex1df4a" + Name 130 "g_tTex1di4a" + Name 133 "g_tTex1du4a" + Name 136 "g_tTex2df4a" + Name 139 "g_tTex2di4a" + Name 142 "g_tTex2du4a" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -342,21 +345,23 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 108(g_tTex3df4) DescriptorSet 0 - Decorate 111(g_tTex3di4) DescriptorSet 0 - Decorate 114(g_tTex3du4) DescriptorSet 0 - Decorate 117(g_tTexcdf4) DescriptorSet 0 - Decorate 120(g_tTexcdi4) DescriptorSet 0 - Decorate 123(g_tTexcdu4) DescriptorSet 0 - Decorate 126(g_tTex1df4a) DescriptorSet 0 - Decorate 129(g_tTex1di4a) DescriptorSet 0 - Decorate 132(g_tTex1du4a) DescriptorSet 0 - Decorate 135(g_tTex2df4a) DescriptorSet 0 - Decorate 138(g_tTex2di4a) DescriptorSet 0 - Decorate 141(g_tTex2du4a) DescriptorSet 0 - Decorate 144(g_tTexcdf4a) DescriptorSet 0 - Decorate 147(g_tTexcdi4a) DescriptorSet 0 - Decorate 150(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 102(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 104(@entryPointOutput) Location 0 + Decorate 109(g_tTex3df4) DescriptorSet 0 + Decorate 112(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 118(g_tTexcdf4) DescriptorSet 0 + Decorate 121(g_tTexcdi4) DescriptorSet 0 + Decorate 124(g_tTexcdu4) DescriptorSet 0 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 130(g_tTex1di4a) DescriptorSet 0 + Decorate 133(g_tTex1du4a) DescriptorSet 0 + Decorate 136(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 142(g_tTex2du4a) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -413,53 +418,54 @@ gl_FragCoord origin is upper left 97: 91(fvec4) ConstantComposite 96 96 96 96 98: TypePointer Function 91(fvec4) 100: 22(int) Constant 1 - 102: TypePointer Output 92(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output - 106: TypeImage 6(float) 3D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex3df4): 107(ptr) Variable UniformConstant - 109: TypeImage 22(int) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3di4): 110(ptr) Variable UniformConstant - 112: TypeImage 38(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3du4): 113(ptr) Variable UniformConstant - 115: TypeImage 6(float) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdf4): 116(ptr) Variable UniformConstant - 118: TypeImage 22(int) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdi4): 119(ptr) Variable UniformConstant - 121: TypeImage 38(int) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdu4): 122(ptr) Variable UniformConstant - 124: TypeImage 6(float) 1D array sampled format:Unknown - 125: TypePointer UniformConstant 124 -126(g_tTex1df4a): 125(ptr) Variable UniformConstant - 127: TypeImage 22(int) 1D array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTex1di4a): 128(ptr) Variable UniformConstant - 130: TypeImage 38(int) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1du4a): 131(ptr) Variable UniformConstant - 133: TypeImage 6(float) 2D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex2df4a): 134(ptr) Variable UniformConstant - 136: TypeImage 22(int) 2D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex2di4a): 137(ptr) Variable UniformConstant - 139: TypeImage 38(int) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2du4a): 140(ptr) Variable UniformConstant - 142: TypeImage 6(float) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdf4a): 143(ptr) Variable UniformConstant - 145: TypeImage 22(int) Cube array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTexcdi4a): 146(ptr) Variable UniformConstant - 148: TypeImage 38(int) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 102(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) + 103: TypePointer Output 102(PS_OUTPUT) +104(@entryPointOutput): 103(ptr) Variable Output + 107: TypeImage 6(float) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3df4): 108(ptr) Variable UniformConstant + 110: TypeImage 22(int) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3di4): 111(ptr) Variable UniformConstant + 113: TypeImage 38(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdf4): 117(ptr) Variable UniformConstant + 119: TypeImage 22(int) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdi4): 120(ptr) Variable UniformConstant + 122: TypeImage 38(int) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdu4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1df4a): 126(ptr) Variable UniformConstant + 128: TypeImage 22(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1di4a): 129(ptr) Variable UniformConstant + 131: TypeImage 38(int) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1du4a): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2df4a): 135(ptr) Variable UniformConstant + 137: TypeImage 22(int) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 140: TypeImage 38(int) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2du4a): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 22(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 38(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -512,7 +518,7 @@ gl_FragCoord origin is upper left Store 99 97 101: 7(ptr) AccessChain 94(psout) 100 Store 101 96 - 104:92(PS_OUTPUT) Load 94(psout) - Store 103(@entryPointOutput) 104 + 105:92(PS_OUTPUT) Load 94(psout) + Store 104(@entryPointOutput) 105 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index c2cdb4d6..63b74a38 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -301,14 +301,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 158 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 + EntryPoint Fragment 4 "main" 110 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -328,22 +328,25 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 109 "@entryPointOutput" - Name 114 "g_tTex1df4" - Name 117 "g_tTex1di4" - Name 120 "g_tTex1du4" - Name 123 "g_tTex2df4" - Name 126 "g_tTex2di4" - Name 129 "g_tTex2du4" - Name 132 "g_tTex3df4" - Name 135 "g_tTex3di4" - Name 138 "g_tTex3du4" - Name 141 "g_tTexcdf4" - Name 144 "g_tTexcdi4" - Name 147 "g_tTexcdu4" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" + Name 108 "PS_OUTPUT" + MemberName 108(PS_OUTPUT) 0 "Color" + MemberName 108(PS_OUTPUT) 1 "Depth" + Name 110 "@entryPointOutput" + Name 115 "g_tTex1df4" + Name 118 "g_tTex1di4" + Name 121 "g_tTex1du4" + Name 124 "g_tTex2df4" + Name 127 "g_tTex2di4" + Name 130 "g_tTex2du4" + Name 133 "g_tTex3df4" + Name 136 "g_tTex3di4" + Name 139 "g_tTex3du4" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -353,22 +356,24 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 114(g_tTex1df4) DescriptorSet 0 - Decorate 114(g_tTex1df4) Binding 0 - Decorate 117(g_tTex1di4) DescriptorSet 0 - Decorate 120(g_tTex1du4) DescriptorSet 0 - Decorate 123(g_tTex2df4) DescriptorSet 0 - Decorate 126(g_tTex2di4) DescriptorSet 0 - Decorate 129(g_tTex2du4) DescriptorSet 0 - Decorate 132(g_tTex3df4) DescriptorSet 0 - Decorate 135(g_tTex3di4) DescriptorSet 0 - Decorate 138(g_tTex3du4) DescriptorSet 0 - Decorate 141(g_tTexcdf4) DescriptorSet 0 - Decorate 144(g_tTexcdi4) DescriptorSet 0 - Decorate 147(g_tTexcdu4) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 108(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 110(@entryPointOutput) Location 0 + Decorate 115(g_tTex1df4) DescriptorSet 0 + Decorate 115(g_tTex1df4) Binding 0 + Decorate 118(g_tTex1di4) DescriptorSet 0 + Decorate 121(g_tTex1du4) DescriptorSet 0 + Decorate 124(g_tTex2df4) DescriptorSet 0 + Decorate 127(g_tTex2di4) DescriptorSet 0 + Decorate 130(g_tTex2du4) DescriptorSet 0 + Decorate 133(g_tTex3df4) DescriptorSet 0 + Decorate 136(g_tTex3di4) DescriptorSet 0 + Decorate 139(g_tTex3du4) DescriptorSet 0 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -428,53 +433,54 @@ gl_FragCoord origin is upper left 103: 97(fvec4) ConstantComposite 102 102 102 102 104: TypePointer Function 97(fvec4) 106: 26(int) Constant 1 - 108: TypePointer Output 98(PS_OUTPUT) -109(@entryPointOutput): 108(ptr) Variable Output - 112: TypeImage 6(float) 1D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex1df4): 113(ptr) Variable UniformConstant - 115: TypeImage 26(int) 1D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex1di4): 116(ptr) Variable UniformConstant - 118: TypeImage 43(int) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex1du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) 2D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex2df4): 122(ptr) Variable UniformConstant - 124: TypeImage 26(int) 2D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex2di4): 125(ptr) Variable UniformConstant - 127: TypeImage 43(int) 2D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex2du4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 3D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex3df4): 131(ptr) Variable UniformConstant - 133: TypeImage 26(int) 3D sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTex3di4): 134(ptr) Variable UniformConstant - 136: TypeImage 43(int) 3D sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTex3du4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdf4): 140(ptr) Variable UniformConstant - 142: TypeImage 26(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdi4): 143(ptr) Variable UniformConstant - 145: TypeImage 43(int) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdu4): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 26(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 43(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 108(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) + 109: TypePointer Output 108(PS_OUTPUT) +110(@entryPointOutput): 109(ptr) Variable Output + 113: TypeImage 6(float) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1df4): 114(ptr) Variable UniformConstant + 116: TypeImage 26(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1di4): 117(ptr) Variable UniformConstant + 119: TypeImage 43(int) 1D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex1du4): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2df4): 123(ptr) Variable UniformConstant + 125: TypeImage 26(int) 2D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex2di4): 126(ptr) Variable UniformConstant + 128: TypeImage 43(int) 2D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex2du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3df4): 132(ptr) Variable UniformConstant + 134: TypeImage 26(int) 3D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex3di4): 135(ptr) Variable UniformConstant + 137: TypeImage 43(int) 3D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex3du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 26(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 43(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 26(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 43(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -530,7 +536,7 @@ gl_FragCoord origin is upper left Store 105 103 107: 7(ptr) AccessChain 100(psout) 106 Store 107 102 - 110:98(PS_OUTPUT) Load 100(psout) - Store 109(@entryPointOutput) 110 + 111:98(PS_OUTPUT) Load 100(psout) + Store 110(@entryPointOutput) 111 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 5a7b7409..b0f13a4e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -168,7 +168,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -368,7 +368,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -397,14 +397,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 180 +// Id's are bound by 181 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 142 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -430,19 +430,22 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 141 "@entryPointOutput" - Name 146 "g_tTex1df4" - Name 149 "g_tTex1di4" - Name 152 "g_tTex1du4" - Name 155 "g_tTex2df4" - Name 158 "g_tTex2di4" - Name 161 "g_tTex2du4" - Name 164 "g_tTex3df4" - Name 167 "g_tTex3di4" - Name 170 "g_tTex3du4" - Name 173 "g_tTexcdf4" - Name 176 "g_tTexcdi4" - Name 179 "g_tTexcdu4" + Name 140 "PS_OUTPUT" + MemberName 140(PS_OUTPUT) 0 "Color" + MemberName 140(PS_OUTPUT) 1 "Depth" + Name 142 "@entryPointOutput" + Name 147 "g_tTex1df4" + Name 150 "g_tTex1di4" + Name 153 "g_tTex1du4" + Name 156 "g_tTex2df4" + Name 159 "g_tTex2di4" + Name 162 "g_tTex2du4" + Name 165 "g_tTex3df4" + Name 168 "g_tTex3di4" + Name 171 "g_tTex3du4" + Name 174 "g_tTexcdf4" + Name 177 "g_tTexcdi4" + Name 180 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -455,19 +458,21 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 146(g_tTex1df4) DescriptorSet 0 - Decorate 146(g_tTex1df4) Binding 0 - Decorate 149(g_tTex1di4) DescriptorSet 0 - Decorate 152(g_tTex1du4) DescriptorSet 0 - Decorate 155(g_tTex2df4) DescriptorSet 0 - Decorate 158(g_tTex2di4) DescriptorSet 0 - Decorate 161(g_tTex2du4) DescriptorSet 0 - Decorate 164(g_tTex3df4) DescriptorSet 0 - Decorate 167(g_tTex3di4) DescriptorSet 0 - Decorate 170(g_tTex3du4) DescriptorSet 0 - Decorate 173(g_tTexcdf4) DescriptorSet 0 - Decorate 176(g_tTexcdi4) DescriptorSet 0 - Decorate 179(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 142(@entryPointOutput) Location 0 + Decorate 147(g_tTex1df4) DescriptorSet 0 + Decorate 147(g_tTex1df4) Binding 0 + Decorate 150(g_tTex1di4) DescriptorSet 0 + Decorate 153(g_tTex1du4) DescriptorSet 0 + Decorate 156(g_tTex2df4) DescriptorSet 0 + Decorate 159(g_tTex2di4) DescriptorSet 0 + Decorate 162(g_tTex2du4) DescriptorSet 0 + Decorate 165(g_tTex3df4) DescriptorSet 0 + Decorate 168(g_tTex3di4) DescriptorSet 0 + Decorate 171(g_tTex3du4) DescriptorSet 0 + Decorate 174(g_tTexcdf4) DescriptorSet 0 + Decorate 177(g_tTexcdi4) DescriptorSet 0 + Decorate 180(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -541,44 +546,45 @@ gl_FragCoord origin is upper left 135: 103(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 103(fvec4) 138: 30(int) Constant 1 - 140: TypePointer Output 130(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output - 144: TypeImage 6(float) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1df4): 145(ptr) Variable UniformConstant - 147: TypeImage 30(int) 1D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex1di4): 148(ptr) Variable UniformConstant - 150: TypeImage 43(int) 1D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex1du4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2df4): 154(ptr) Variable UniformConstant - 156: TypeImage 30(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex2di4): 157(ptr) Variable UniformConstant - 159: TypeImage 43(int) 2D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex2du4): 160(ptr) Variable UniformConstant - 162: TypeImage 6(float) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3df4): 163(ptr) Variable UniformConstant - 165: TypeImage 30(int) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3di4): 166(ptr) Variable UniformConstant - 168: TypeImage 43(int) 3D sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTex3du4): 169(ptr) Variable UniformConstant - 171: TypeImage 6(float) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdf4): 172(ptr) Variable UniformConstant - 174: TypeImage 30(int) Cube sampled format:Unknown - 175: TypePointer UniformConstant 174 - 176(g_tTexcdi4): 175(ptr) Variable UniformConstant - 177: TypeImage 43(int) Cube sampled format:Unknown - 178: TypePointer UniformConstant 177 - 179(g_tTexcdu4): 178(ptr) Variable UniformConstant + 140(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) + 141: TypePointer Output 140(PS_OUTPUT) +142(@entryPointOutput): 141(ptr) Variable Output + 145: TypeImage 6(float) 1D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex1df4): 146(ptr) Variable UniformConstant + 148: TypeImage 30(int) 1D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex1di4): 149(ptr) Variable UniformConstant + 151: TypeImage 43(int) 1D sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTex1du4): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTex2df4): 155(ptr) Variable UniformConstant + 157: TypeImage 30(int) 2D sampled format:Unknown + 158: TypePointer UniformConstant 157 + 159(g_tTex2di4): 158(ptr) Variable UniformConstant + 160: TypeImage 43(int) 2D sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTex2du4): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) 3D sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTex3df4): 164(ptr) Variable UniformConstant + 166: TypeImage 30(int) 3D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex3di4): 167(ptr) Variable UniformConstant + 169: TypeImage 43(int) 3D sampled format:Unknown + 170: TypePointer UniformConstant 169 + 171(g_tTex3du4): 170(ptr) Variable UniformConstant + 172: TypeImage 6(float) Cube sampled format:Unknown + 173: TypePointer UniformConstant 172 + 174(g_tTexcdf4): 173(ptr) Variable UniformConstant + 175: TypeImage 30(int) Cube sampled format:Unknown + 176: TypePointer UniformConstant 175 + 177(g_tTexcdi4): 176(ptr) Variable UniformConstant + 178: TypeImage 43(int) Cube sampled format:Unknown + 179: TypePointer UniformConstant 178 + 180(g_tTexcdu4): 179(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -655,7 +661,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 132(psout) 138 Store 139 134 - 142:130(PS_OUTPUT) Load 132(psout) - Store 141(@entryPointOutput) 142 + 143:130(PS_OUTPUT) Load 132(psout) + Store 142(@entryPointOutput) 143 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index ba84224d..4139a17e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -350,7 +350,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -379,14 +379,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 179 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 + EntryPoint Fragment 4 "main" 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -412,19 +412,22 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 139 "@entryPointOutput" - Name 144 "g_tTex3df4" - Name 147 "g_tTex3di4" - Name 150 "g_tTex3du4" - Name 153 "g_tTex1df4a" - Name 156 "g_tTex1di4a" - Name 159 "g_tTex1du4a" - Name 162 "g_tTex2df4a" - Name 165 "g_tTex2di4a" - Name 168 "g_tTex2du4a" - Name 171 "g_tTexcdf4a" - Name 174 "g_tTexcdi4a" - Name 177 "g_tTexcdu4a" + Name 138 "PS_OUTPUT" + MemberName 138(PS_OUTPUT) 0 "Color" + MemberName 138(PS_OUTPUT) 1 "Depth" + Name 140 "@entryPointOutput" + Name 145 "g_tTex3df4" + Name 148 "g_tTex3di4" + Name 151 "g_tTex3du4" + Name 154 "g_tTex1df4a" + Name 157 "g_tTex1di4a" + Name 160 "g_tTex1du4a" + Name 163 "g_tTex2df4a" + Name 166 "g_tTex2di4a" + Name 169 "g_tTex2du4a" + Name 172 "g_tTexcdf4a" + Name 175 "g_tTexcdi4a" + Name 178 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -438,18 +441,20 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex3df4) DescriptorSet 0 - Decorate 147(g_tTex3di4) DescriptorSet 0 - Decorate 150(g_tTex3du4) DescriptorSet 0 - Decorate 153(g_tTex1df4a) DescriptorSet 0 - Decorate 156(g_tTex1di4a) DescriptorSet 0 - Decorate 159(g_tTex1du4a) DescriptorSet 0 - Decorate 162(g_tTex2df4a) DescriptorSet 0 - Decorate 165(g_tTex2di4a) DescriptorSet 0 - Decorate 168(g_tTex2du4a) DescriptorSet 0 - Decorate 171(g_tTexcdf4a) DescriptorSet 0 - Decorate 174(g_tTexcdi4a) DescriptorSet 0 - Decorate 177(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 138(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 140(@entryPointOutput) Location 0 + Decorate 145(g_tTex3df4) DescriptorSet 0 + Decorate 148(g_tTex3di4) DescriptorSet 0 + Decorate 151(g_tTex3du4) DescriptorSet 0 + Decorate 154(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1di4a) DescriptorSet 0 + Decorate 160(g_tTex1du4a) DescriptorSet 0 + Decorate 163(g_tTex2df4a) DescriptorSet 0 + Decorate 166(g_tTex2di4a) DescriptorSet 0 + Decorate 169(g_tTex2du4a) DescriptorSet 0 + Decorate 172(g_tTexcdf4a) DescriptorSet 0 + Decorate 175(g_tTexcdi4a) DescriptorSet 0 + Decorate 178(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -521,44 +526,45 @@ gl_FragCoord origin is upper left 133: 127(fvec4) ConstantComposite 132 132 132 132 134: TypePointer Function 127(fvec4) 136: 26(int) Constant 1 - 138: TypePointer Output 128(PS_OUTPUT) -139(@entryPointOutput): 138(ptr) Variable Output - 142: TypeImage 6(float) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3df4): 143(ptr) Variable UniformConstant - 145: TypeImage 26(int) 3D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex3di4): 146(ptr) Variable UniformConstant - 148: TypeImage 38(int) 3D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex3du4): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1df4a): 152(ptr) Variable UniformConstant - 154: TypeImage 26(int) 1D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex1di4a): 155(ptr) Variable UniformConstant - 157: TypeImage 38(int) 1D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex1du4a): 158(ptr) Variable UniformConstant - 160: TypeImage 6(float) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2df4a): 161(ptr) Variable UniformConstant - 163: TypeImage 26(int) 2D array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTex2di4a): 164(ptr) Variable UniformConstant - 166: TypeImage 38(int) 2D array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTex2du4a): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdf4a): 170(ptr) Variable UniformConstant - 172: TypeImage 26(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdi4a): 173(ptr) Variable UniformConstant - 175: TypeImage 38(int) Cube array sampled format:Unknown - 176: TypePointer UniformConstant 175 -177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 138(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) + 139: TypePointer Output 138(PS_OUTPUT) +140(@entryPointOutput): 139(ptr) Variable Output + 143: TypeImage 6(float) 3D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex3df4): 144(ptr) Variable UniformConstant + 146: TypeImage 26(int) 3D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex3di4): 147(ptr) Variable UniformConstant + 149: TypeImage 38(int) 3D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex3du4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 1D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex1df4a): 153(ptr) Variable UniformConstant + 155: TypeImage 26(int) 1D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex1di4a): 156(ptr) Variable UniformConstant + 158: TypeImage 38(int) 1D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex1du4a): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) 2D array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTex2df4a): 162(ptr) Variable UniformConstant + 164: TypeImage 26(int) 2D array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTex2di4a): 165(ptr) Variable UniformConstant + 167: TypeImage 38(int) 2D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex2du4a): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTexcdf4a): 171(ptr) Variable UniformConstant + 173: TypeImage 26(int) Cube array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTexcdi4a): 174(ptr) Variable UniformConstant + 176: TypeImage 38(int) Cube array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTexcdu4a): 177(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -635,7 +641,7 @@ gl_FragCoord origin is upper left Store 135 133 137: 7(ptr) AccessChain 130(psout) 136 Store 137 132 - 140:128(PS_OUTPUT) Load 130(psout) - Store 139(@entryPointOutput) 140 + 141:128(PS_OUTPUT) Load 130(psout) + Store 140(@entryPointOutput) 141 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 9bed7964..1ea38853 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -313,14 +313,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 153 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 + EntryPoint Fragment 4 "main" 105 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -340,22 +340,25 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 104 "@entryPointOutput" - Name 109 "g_tTex3df4" - Name 112 "g_tTex3di4" - Name 115 "g_tTex3du4" - Name 118 "g_tTexcdf4" - Name 121 "g_tTexcdi4" - Name 124 "g_tTexcdu4" - Name 127 "g_tTex1df4a" - Name 130 "g_tTex1di4a" - Name 133 "g_tTex1du4a" - Name 136 "g_tTex2df4a" - Name 139 "g_tTex2di4a" - Name 142 "g_tTex2du4a" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" + Name 103 "PS_OUTPUT" + MemberName 103(PS_OUTPUT) 0 "Color" + MemberName 103(PS_OUTPUT) 1 "Depth" + Name 105 "@entryPointOutput" + Name 110 "g_tTex3df4" + Name 113 "g_tTex3di4" + Name 116 "g_tTex3du4" + Name 119 "g_tTexcdf4" + Name 122 "g_tTexcdi4" + Name 125 "g_tTexcdu4" + Name 128 "g_tTex1df4a" + Name 131 "g_tTex1di4a" + Name 134 "g_tTex1du4a" + Name 137 "g_tTex2df4a" + Name 140 "g_tTex2di4a" + Name 143 "g_tTex2du4a" + Name 146 "g_tTexcdf4a" + Name 149 "g_tTexcdi4a" + Name 152 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -366,21 +369,23 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 109(g_tTex3df4) DescriptorSet 0 - Decorate 112(g_tTex3di4) DescriptorSet 0 - Decorate 115(g_tTex3du4) DescriptorSet 0 - Decorate 118(g_tTexcdf4) DescriptorSet 0 - Decorate 121(g_tTexcdi4) DescriptorSet 0 - Decorate 124(g_tTexcdu4) DescriptorSet 0 - Decorate 127(g_tTex1df4a) DescriptorSet 0 - Decorate 130(g_tTex1di4a) DescriptorSet 0 - Decorate 133(g_tTex1du4a) DescriptorSet 0 - Decorate 136(g_tTex2df4a) DescriptorSet 0 - Decorate 139(g_tTex2di4a) DescriptorSet 0 - Decorate 142(g_tTex2du4a) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 103(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 105(@entryPointOutput) Location 0 + Decorate 110(g_tTex3df4) DescriptorSet 0 + Decorate 113(g_tTex3di4) DescriptorSet 0 + Decorate 116(g_tTex3du4) DescriptorSet 0 + Decorate 119(g_tTexcdf4) DescriptorSet 0 + Decorate 122(g_tTexcdi4) DescriptorSet 0 + Decorate 125(g_tTexcdu4) DescriptorSet 0 + Decorate 128(g_tTex1df4a) DescriptorSet 0 + Decorate 131(g_tTex1di4a) DescriptorSet 0 + Decorate 134(g_tTex1du4a) DescriptorSet 0 + Decorate 137(g_tTex2df4a) DescriptorSet 0 + Decorate 140(g_tTex2di4a) DescriptorSet 0 + Decorate 143(g_tTex2du4a) DescriptorSet 0 + Decorate 146(g_tTexcdf4a) DescriptorSet 0 + Decorate 149(g_tTexcdi4a) DescriptorSet 0 + Decorate 152(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -438,53 +443,54 @@ gl_FragCoord origin is upper left 98: 92(fvec4) ConstantComposite 97 97 97 97 99: TypePointer Function 92(fvec4) 101: 23(int) Constant 1 - 103: TypePointer Output 93(PS_OUTPUT) -104(@entryPointOutput): 103(ptr) Variable Output - 107: TypeImage 6(float) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3df4): 108(ptr) Variable UniformConstant - 110: TypeImage 23(int) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3di4): 111(ptr) Variable UniformConstant - 113: TypeImage 39(int) 3D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex3du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdf4): 117(ptr) Variable UniformConstant - 119: TypeImage 23(int) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdi4): 120(ptr) Variable UniformConstant - 122: TypeImage 39(int) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdu4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1df4a): 126(ptr) Variable UniformConstant - 128: TypeImage 23(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1di4a): 129(ptr) Variable UniformConstant - 131: TypeImage 39(int) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1du4a): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2df4a): 135(ptr) Variable UniformConstant - 137: TypeImage 23(int) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2di4a): 138(ptr) Variable UniformConstant - 140: TypeImage 39(int) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2du4a): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 23(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 39(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 103(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) + 104: TypePointer Output 103(PS_OUTPUT) +105(@entryPointOutput): 104(ptr) Variable Output + 108: TypeImage 6(float) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3df4): 109(ptr) Variable UniformConstant + 111: TypeImage 23(int) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3di4): 112(ptr) Variable UniformConstant + 114: TypeImage 39(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3du4): 115(ptr) Variable UniformConstant + 117: TypeImage 6(float) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdf4): 118(ptr) Variable UniformConstant + 120: TypeImage 23(int) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdi4): 121(ptr) Variable UniformConstant + 123: TypeImage 39(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdu4): 124(ptr) Variable UniformConstant + 126: TypeImage 6(float) 1D array sampled format:Unknown + 127: TypePointer UniformConstant 126 +128(g_tTex1df4a): 127(ptr) Variable UniformConstant + 129: TypeImage 23(int) 1D array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTex1di4a): 130(ptr) Variable UniformConstant + 132: TypeImage 39(int) 1D array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTex1du4a): 133(ptr) Variable UniformConstant + 135: TypeImage 6(float) 2D array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTex2df4a): 136(ptr) Variable UniformConstant + 138: TypeImage 23(int) 2D array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTex2di4a): 139(ptr) Variable UniformConstant + 141: TypeImage 39(int) 2D array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTex2du4a): 142(ptr) Variable UniformConstant + 144: TypeImage 6(float) Cube array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTexcdf4a): 145(ptr) Variable UniformConstant + 147: TypeImage 23(int) Cube array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTexcdi4a): 148(ptr) Variable UniformConstant + 150: TypeImage 39(int) Cube array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTexcdu4a): 151(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -537,7 +543,7 @@ gl_FragCoord origin is upper left Store 100 98 102: 7(ptr) AccessChain 95(psout) 101 Store 102 97 - 105:93(PS_OUTPUT) Load 95(psout) - Store 104(@entryPointOutput) 105 + 106:93(PS_OUTPUT) Load 95(psout) + Store 105(@entryPointOutput) 106 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index b2dcaecc..4ef2c65d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -296,7 +296,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -325,14 +325,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 159 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 + EntryPoint Fragment 4 "main" 111 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -352,22 +352,25 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 110 "@entryPointOutput" - Name 115 "g_tTex1df4" - Name 118 "g_tTex1di4" - Name 121 "g_tTex1du4" - Name 124 "g_tTex2df4" - Name 127 "g_tTex2di4" - Name 130 "g_tTex2du4" - Name 133 "g_tTex3df4" - Name 136 "g_tTex3di4" - Name 139 "g_tTex3du4" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" + Name 109 "PS_OUTPUT" + MemberName 109(PS_OUTPUT) 0 "Color" + MemberName 109(PS_OUTPUT) 1 "Depth" + Name 111 "@entryPointOutput" + Name 116 "g_tTex1df4" + Name 119 "g_tTex1di4" + Name 122 "g_tTex1du4" + Name 125 "g_tTex2df4" + Name 128 "g_tTex2di4" + Name 131 "g_tTex2du4" + Name 134 "g_tTex3df4" + Name 137 "g_tTex3di4" + Name 140 "g_tTex3du4" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" + Name 152 "g_tTexcdf4a" + Name 155 "g_tTexcdi4a" + Name 158 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -377,22 +380,24 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 115(g_tTex1df4) DescriptorSet 0 - Decorate 115(g_tTex1df4) Binding 0 - Decorate 118(g_tTex1di4) DescriptorSet 0 - Decorate 121(g_tTex1du4) DescriptorSet 0 - Decorate 124(g_tTex2df4) DescriptorSet 0 - Decorate 127(g_tTex2di4) DescriptorSet 0 - Decorate 130(g_tTex2du4) DescriptorSet 0 - Decorate 133(g_tTex3df4) DescriptorSet 0 - Decorate 136(g_tTex3di4) DescriptorSet 0 - Decorate 139(g_tTex3du4) DescriptorSet 0 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 109(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 111(@entryPointOutput) Location 0 + Decorate 116(g_tTex1df4) DescriptorSet 0 + Decorate 116(g_tTex1df4) Binding 0 + Decorate 119(g_tTex1di4) DescriptorSet 0 + Decorate 122(g_tTex1du4) DescriptorSet 0 + Decorate 125(g_tTex2df4) DescriptorSet 0 + Decorate 128(g_tTex2di4) DescriptorSet 0 + Decorate 131(g_tTex2du4) DescriptorSet 0 + Decorate 134(g_tTex3df4) DescriptorSet 0 + Decorate 137(g_tTex3di4) DescriptorSet 0 + Decorate 140(g_tTex3du4) DescriptorSet 0 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 152(g_tTexcdf4a) DescriptorSet 0 + Decorate 155(g_tTexcdi4a) DescriptorSet 0 + Decorate 158(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -453,53 +458,54 @@ gl_FragCoord origin is upper left 104: 98(fvec4) ConstantComposite 103 103 103 103 105: TypePointer Function 98(fvec4) 107: 27(int) Constant 1 - 109: TypePointer Output 99(PS_OUTPUT) -110(@entryPointOutput): 109(ptr) Variable Output - 113: TypeImage 6(float) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1df4): 114(ptr) Variable UniformConstant - 116: TypeImage 27(int) 1D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex1di4): 117(ptr) Variable UniformConstant - 119: TypeImage 44(int) 1D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex1du4): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2df4): 123(ptr) Variable UniformConstant - 125: TypeImage 27(int) 2D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex2di4): 126(ptr) Variable UniformConstant - 128: TypeImage 44(int) 2D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex2du4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3df4): 132(ptr) Variable UniformConstant - 134: TypeImage 27(int) 3D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex3di4): 135(ptr) Variable UniformConstant - 137: TypeImage 44(int) 3D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex3du4): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 27(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 44(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 27(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 44(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 109(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) + 110: TypePointer Output 109(PS_OUTPUT) +111(@entryPointOutput): 110(ptr) Variable Output + 114: TypeImage 6(float) 1D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex1df4): 115(ptr) Variable UniformConstant + 117: TypeImage 27(int) 1D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex1di4): 118(ptr) Variable UniformConstant + 120: TypeImage 44(int) 1D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex1du4): 121(ptr) Variable UniformConstant + 123: TypeImage 6(float) 2D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex2df4): 124(ptr) Variable UniformConstant + 126: TypeImage 27(int) 2D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex2di4): 127(ptr) Variable UniformConstant + 129: TypeImage 44(int) 2D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex2du4): 130(ptr) Variable UniformConstant + 132: TypeImage 6(float) 3D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex3df4): 133(ptr) Variable UniformConstant + 135: TypeImage 27(int) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3di4): 136(ptr) Variable UniformConstant + 138: TypeImage 44(int) 3D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex3du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 27(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 44(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) Cube array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTexcdf4a): 151(ptr) Variable UniformConstant + 153: TypeImage 27(int) Cube array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTexcdi4a): 154(ptr) Variable UniformConstant + 156: TypeImage 44(int) Cube array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTexcdu4a): 157(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -555,7 +561,7 @@ gl_FragCoord origin is upper left Store 106 104 108: 7(ptr) AccessChain 101(psout) 107 Store 108 103 - 111:99(PS_OUTPUT) Load 101(psout) - Store 110(@entryPointOutput) 111 + 112:99(PS_OUTPUT) Load 101(psout) + Store 111(@entryPointOutput) 112 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index f42074b8..44574aaa 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -375,7 +375,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -393,14 +393,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 128 +// Id's are bound by 129 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 124 + EntryPoint Fragment 4 "main" 125 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -426,8 +426,11 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 124 "@entryPointOutput" - Name 127 "g_tTex1df4a" + Name 123 "PS_OUTPUT" + MemberName 123(PS_OUTPUT) 0 "Color" + MemberName 123(PS_OUTPUT) 1 "Depth" + Name 125 "@entryPointOutput" + Name 128 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -441,8 +444,10 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 127(g_tTex1df4a) DescriptorSet 0 - Decorate 127(g_tTex1df4a) Binding 1 + MemberDecorate 123(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 125(@entryPointOutput) Location 0 + Decorate 128(g_tTex1df4a) DescriptorSet 0 + Decorate 128(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -514,9 +519,10 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 117 117 117 117 120: 27(int) Constant 1 121: TypePointer Function 6(float) - 123: TypePointer Output 113(PS_OUTPUT) -124(@entryPointOutput): 123(ptr) Variable Output -127(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 124: TypePointer Output 123(PS_OUTPUT) +125(@entryPointOutput): 124(ptr) Variable Output +128(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -578,7 +584,7 @@ gl_FragCoord origin is upper left Store 119 118 122: 121(ptr) AccessChain 115(psout) 120 Store 122 117 - 125:113(PS_OUTPUT) Load 115(psout) - Store 124(@entryPointOutput) 125 + 126:113(PS_OUTPUT) Load 115(psout) + Store 125(@entryPointOutput) 126 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 403bfca1..06a34d88 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -225,7 +225,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -474,7 +474,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -495,13 +495,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 164 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 159 + EntryPoint Fragment 4 "main" 160 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -533,8 +533,11 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 159 "@entryPointOutput" - Name 162 "g_tTex1df4a" + Name 158 "PS_OUTPUT" + MemberName 158(PS_OUTPUT) 0 "Color" + MemberName 158(PS_OUTPUT) 1 "Depth" + Name 160 "@entryPointOutput" + Name 163 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -551,8 +554,10 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 162(g_tTex1df4a) DescriptorSet 0 - Decorate 162(g_tTex1df4a) Binding 1 + MemberDecorate 158(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 160(@entryPointOutput) Location 0 + Decorate 163(g_tTex1df4a) DescriptorSet 0 + Decorate 163(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -644,9 +649,10 @@ gl_FragCoord origin is upper left 153: 7(fvec4) ConstantComposite 152 152 152 152 155: 24(int) Constant 1 156: TypePointer Function 6(float) - 158: TypePointer Output 148(PS_OUTPUT) -159(@entryPointOutput): 158(ptr) Variable Output -162(g_tTex1df4a): 11(ptr) Variable UniformConstant + 158(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 159: TypePointer Output 158(PS_OUTPUT) +160(@entryPointOutput): 159(ptr) Variable Output +163(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -726,7 +732,7 @@ gl_FragCoord origin is upper left Store 154 153 157: 156(ptr) AccessChain 150(psout) 155 Store 157 152 - 160:148(PS_OUTPUT) Load 150(psout) - Store 159(@entryPointOutput) 160 + 161:148(PS_OUTPUT) Load 150(psout) + Store 160(@entryPointOutput) 161 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 6b83def7..156d2db0 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -217,7 +217,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -458,7 +458,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -479,13 +479,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 161 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 156 + EntryPoint Vertex 4 "main" 157 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -515,8 +515,10 @@ Shader version: 450 Name 148 "VS_OUTPUT" MemberName 148(VS_OUTPUT) 0 "Pos" Name 150 "vsout" - Name 156 "@entryPointOutput" - Name 159 "g_tTex1df4a" + Name 155 "VS_OUTPUT" + MemberName 155(VS_OUTPUT) 0 "Pos" + Name 157 "@entryPointOutput" + Name 160 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -533,8 +535,10 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position - Decorate 159(g_tTex1df4a) DescriptorSet 0 - Decorate 159(g_tTex1df4a) Binding 1 + MemberDecorate 155(VS_OUTPUT) 0 BuiltIn Position + Decorate 157(@entryPointOutput) Location 0 + Decorate 160(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -624,9 +628,10 @@ Shader version: 450 151: 24(int) Constant 0 152: 6(float) Constant 0 153: 7(fvec4) ConstantComposite 152 152 152 152 - 155: TypePointer Output 148(VS_OUTPUT) -156(@entryPointOutput): 155(ptr) Variable Output -159(g_tTex1df4a): 11(ptr) Variable UniformConstant + 155(VS_OUTPUT): TypeStruct 7(fvec4) + 156: TypePointer Output 155(VS_OUTPUT) +157(@entryPointOutput): 156(ptr) Variable Output +160(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -704,7 +709,7 @@ Shader version: 450 Store 139(txval42) 147 154: 8(ptr) AccessChain 150(vsout) 151 Store 154 153 - 157:148(VS_OUTPUT) Load 150(vsout) - Store 156(@entryPointOutput) 157 + 158:148(VS_OUTPUT) Load 150(vsout) + Store 157(@entryPointOutput) 158 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index f73d8cf6..9a273d9d 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -414,7 +414,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -435,13 +435,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 155 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 142 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -467,11 +467,14 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 141 "@entryPointOutput" - Name 144 "g_tTex1df4a" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" + Name 140 "PS_OUTPUT" + MemberName 140(PS_OUTPUT) 0 "Color" + MemberName 140(PS_OUTPUT) 1 "Depth" + Name 142 "@entryPointOutput" + Name 145 "g_tTex1df4a" + Name 148 "g_tTexcdf4" + Name 151 "g_tTexcdi4" + Name 154 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -485,11 +488,13 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1df4a) Binding 1 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 142(@entryPointOutput) Location 0 + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1df4a) Binding 1 + Decorate 148(g_tTexcdf4) DescriptorSet 0 + Decorate 151(g_tTexcdi4) DescriptorSet 0 + Decorate 154(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -578,18 +583,19 @@ gl_FragCoord origin is upper left 135: 6(float) Constant 1065353216 136: 7(fvec4) ConstantComposite 135 135 135 135 138: TypePointer Function 6(float) - 140: TypePointer Output 132(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output -144(g_tTex1df4a): 11(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 23(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 38(int) Cube sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 140(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 141: TypePointer Output 140(PS_OUTPUT) +142(@entryPointOutput): 141(ptr) Variable Output +145(g_tTex1df4a): 11(ptr) Variable UniformConstant + 146: TypeImage 6(float) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdf4): 147(ptr) Variable UniformConstant + 149: TypeImage 23(int) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdi4): 150(ptr) Variable UniformConstant + 152: TypeImage 38(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdu4): 153(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -651,7 +657,7 @@ gl_FragCoord origin is upper left Store 137 136 139: 138(ptr) AccessChain 134(psout) 24 Store 139 135 - 142:132(PS_OUTPUT) Load 134(psout) - Store 141(@entryPointOutput) 142 + 143:132(PS_OUTPUT) Load 134(psout) + Store 142(@entryPointOutput) 143 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index d6bc7643..3750d992 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:36 1.000000 0:38 Sequence 0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:36 1.000000 0:38 Sequence 0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects @@ -303,14 +303,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 108 +// Id's are bound by 109 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 95 + EntryPoint Fragment 4 "main" 96 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -330,11 +330,14 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 95 "@entryPointOutput" - Name 98 "g_tTex1df4a" - Name 101 "g_tTexcdf4" - Name 104 "g_tTexcdi4" - Name 107 "g_tTexcdu4" + Name 94 "PS_OUTPUT" + MemberName 94(PS_OUTPUT) 0 "Color" + MemberName 94(PS_OUTPUT) 1 "Depth" + Name 96 "@entryPointOutput" + Name 99 "g_tTex1df4a" + Name 102 "g_tTexcdf4" + Name 105 "g_tTexcdi4" + Name 108 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -345,11 +348,13 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 98(g_tTex1df4a) DescriptorSet 0 - Decorate 98(g_tTex1df4a) Binding 1 - Decorate 101(g_tTexcdf4) DescriptorSet 0 - Decorate 104(g_tTexcdi4) DescriptorSet 0 - Decorate 107(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 96(@entryPointOutput) Location 0 + Decorate 99(g_tTex1df4a) DescriptorSet 0 + Decorate 99(g_tTex1df4a) Binding 1 + Decorate 102(g_tTexcdf4) DescriptorSet 0 + Decorate 105(g_tTexcdi4) DescriptorSet 0 + Decorate 108(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -407,18 +412,19 @@ gl_FragCoord origin is upper left 89: 6(float) Constant 1065353216 90: 7(fvec4) ConstantComposite 89 89 89 89 92: TypePointer Function 6(float) - 94: TypePointer Output 86(PS_OUTPUT) -95(@entryPointOutput): 94(ptr) Variable Output - 98(g_tTex1df4a): 11(ptr) Variable UniformConstant - 99: TypeImage 6(float) Cube array sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTexcdf4): 100(ptr) Variable UniformConstant - 102: TypeImage 26(int) Cube array sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTexcdi4): 103(ptr) Variable UniformConstant - 105: TypeImage 40(int) Cube array sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTexcdu4): 106(ptr) Variable UniformConstant + 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 95: TypePointer Output 94(PS_OUTPUT) +96(@entryPointOutput): 95(ptr) Variable Output + 99(g_tTex1df4a): 11(ptr) Variable UniformConstant + 100: TypeImage 6(float) Cube array sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTexcdf4): 101(ptr) Variable UniformConstant + 103: TypeImage 26(int) Cube array sampled format:Unknown + 104: TypePointer UniformConstant 103 + 105(g_tTexcdi4): 104(ptr) Variable UniformConstant + 106: TypeImage 40(int) Cube array sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTexcdu4): 107(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -462,7 +468,7 @@ gl_FragCoord origin is upper left Store 91 90 93: 92(ptr) AccessChain 88(psout) 27 Store 93 89 - 96:86(PS_OUTPUT) Load 88(psout) - Store 95(@entryPointOutput) 96 + 97:86(PS_OUTPUT) Load 88(psout) + Store 96(@entryPointOutput) 97 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 9ed0650f..4dc08b8c 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -303,7 +303,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -321,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 135 +// Id's are bound by 136 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 + EntryPoint Fragment 4 "main" 132 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -354,8 +354,11 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 131 "@entryPointOutput" - Name 134 "g_tTex1df4" + Name 130 "PS_OUTPUT" + MemberName 130(PS_OUTPUT) 0 "Color" + MemberName 130(PS_OUTPUT) 1 "Depth" + Name 132 "@entryPointOutput" + Name 135 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -369,8 +372,10 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 134(g_tTex1df4) DescriptorSet 0 - Decorate 134(g_tTex1df4) Binding 0 + MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 132(@entryPointOutput) Location 0 + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -449,9 +454,10 @@ gl_FragCoord origin is upper left 125: 7(fvec4) ConstantComposite 118 118 118 118 127: 26(int) Constant 1 128: TypePointer Function 6(float) - 130: TypePointer Output 121(PS_OUTPUT) -131(@entryPointOutput): 130(ptr) Variable Output - 134(g_tTex1df4): 11(ptr) Variable UniformConstant + 130(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 131: TypePointer Output 130(PS_OUTPUT) +132(@entryPointOutput): 131(ptr) Variable Output + 135(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -513,7 +519,7 @@ gl_FragCoord origin is upper left Store 126 125 129: 128(ptr) AccessChain 123(psout) 127 Store 129 118 - 132:121(PS_OUTPUT) Load 123(psout) - Store 131(@entryPointOutput) 132 + 133:121(PS_OUTPUT) Load 123(psout) + Store 132(@entryPointOutput) 133 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 38676721..b23e723f 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:49 1.000000 0:51 Sequence 0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects @@ -367,7 +367,7 @@ gl_FragCoord origin is upper left 0:49 1.000000 0:51 Sequence 0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects @@ -389,13 +389,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 161 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 155 + EntryPoint Fragment 4 "main" 156 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -427,9 +427,12 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 155 "@entryPointOutput" - Name 158 "g_sSamp2d" - Name 159 "g_tTex1df4a" + Name 154 "PS_OUTPUT" + MemberName 154(PS_OUTPUT) 0 "Color" + MemberName 154(PS_OUTPUT) 1 "Depth" + Name 156 "@entryPointOutput" + Name 159 "g_sSamp2d" + Name 160 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -446,9 +449,11 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 158(g_sSamp2d) DescriptorSet 0 - Decorate 159(g_tTex1df4a) DescriptorSet 0 - Decorate 159(g_tTex1df4a) Binding 1 + MemberDecorate 154(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 156(@entryPointOutput) Location 0 + Decorate 159(g_sSamp2d) DescriptorSet 0 + Decorate 160(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -536,10 +541,11 @@ gl_FragCoord origin is upper left 149: 7(fvec4) ConstantComposite 148 148 148 148 151: 23(int) Constant 1 152: TypePointer Function 6(float) - 154: TypePointer Output 144(PS_OUTPUT) -155(@entryPointOutput): 154(ptr) Variable Output - 158(g_sSamp2d): 15(ptr) Variable UniformConstant -159(g_tTex1df4a): 11(ptr) Variable UniformConstant + 154(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 155: TypePointer Output 154(PS_OUTPUT) +156(@entryPointOutput): 155(ptr) Variable Output + 159(g_sSamp2d): 15(ptr) Variable UniformConstant +160(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -619,7 +625,7 @@ gl_FragCoord origin is upper left Store 150 149 153: 152(ptr) AccessChain 146(psout) 151 Store 153 148 - 156:144(PS_OUTPUT) Load 146(psout) - Store 155(@entryPointOutput) 156 + 157:144(PS_OUTPUT) Load 146(psout) + Store 156(@entryPointOutput) 157 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 088c465e..e8edd2ad 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -163,7 +163,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -350,7 +350,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -371,13 +371,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 157 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 152 + EntryPoint Vertex 4 "main" 153 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -407,8 +407,10 @@ Shader version: 450 Name 144 "VS_OUTPUT" MemberName 144(VS_OUTPUT) 0 "Pos" Name 146 "vsout" - Name 152 "@entryPointOutput" - Name 155 "g_tTex1df4a" + Name 151 "VS_OUTPUT" + MemberName 151(VS_OUTPUT) 0 "Pos" + Name 153 "@entryPointOutput" + Name 156 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -425,8 +427,10 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position - Decorate 155(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1df4a) Binding 1 + MemberDecorate 151(VS_OUTPUT) 0 BuiltIn Position + Decorate 153(@entryPointOutput) Location 0 + Decorate 156(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -512,9 +516,10 @@ Shader version: 450 147: 23(int) Constant 0 148: 6(float) Constant 0 149: 7(fvec4) ConstantComposite 148 148 148 148 - 151: TypePointer Output 144(VS_OUTPUT) -152(@entryPointOutput): 151(ptr) Variable Output -155(g_tTex1df4a): 11(ptr) Variable UniformConstant + 151(VS_OUTPUT): TypeStruct 7(fvec4) + 152: TypePointer Output 151(VS_OUTPUT) +153(@entryPointOutput): 152(ptr) Variable Output +156(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -592,7 +597,7 @@ Shader version: 450 Store 135(txval42) 143 150: 8(ptr) AccessChain 146(vsout) 147 Store 150 149 - 153:144(VS_OUTPUT) Load 146(vsout) - Store 152(@entryPointOutput) 153 + 154:144(VS_OUTPUT) Load 146(vsout) + Store 153(@entryPointOutput) 154 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 2dc61c75..fa7ffd9d 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -342,7 +342,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -363,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 151 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 + EntryPoint Fragment 4 "main" 138 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -395,11 +395,14 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 137 "@entryPointOutput" - Name 140 "g_tTex1df4a" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + MemberName 136(PS_OUTPUT) 1 "Depth" + Name 138 "@entryPointOutput" + Name 141 "g_tTex1df4a" + Name 144 "g_tTexcdf4" + Name 147 "g_tTexcdi4" + Name 150 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -413,11 +416,13 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 140(g_tTex1df4a) Binding 1 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 136(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 138(@entryPointOutput) Location 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 141(g_tTex1df4a) Binding 1 + Decorate 144(g_tTexcdf4) DescriptorSet 0 + Decorate 147(g_tTexcdi4) DescriptorSet 0 + Decorate 150(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -502,18 +507,19 @@ gl_FragCoord origin is upper left 131: 6(float) Constant 1065353216 132: 7(fvec4) ConstantComposite 131 131 131 131 134: TypePointer Function 6(float) - 136: TypePointer Output 128(PS_OUTPUT) -137(@entryPointOutput): 136(ptr) Variable Output -140(g_tTex1df4a): 11(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 22(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 37(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 136(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 137: TypePointer Output 136(PS_OUTPUT) +138(@entryPointOutput): 137(ptr) Variable Output +141(g_tTex1df4a): 11(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdf4): 143(ptr) Variable UniformConstant + 145: TypeImage 22(int) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdi4): 146(ptr) Variable UniformConstant + 148: TypeImage 37(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdu4): 149(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -575,7 +581,7 @@ gl_FragCoord origin is upper left Store 133 132 135: 134(ptr) AccessChain 130(psout) 23 Store 135 131 - 138:128(PS_OUTPUT) Load 130(psout) - Store 137(@entryPointOutput) 138 + 139:128(PS_OUTPUT) Load 130(psout) + Store 138(@entryPointOutput) 139 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index bc3c4ae2..7402e75c 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 107 +// Id's are bound by 108 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -287,8 +287,11 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 103 "@entryPointOutput" - Name 106 "g_tTex1df4a" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "@entryPointOutput" + Name 107 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -299,8 +302,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 + MemberDecorate 102(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 104(@entryPointOutput) Location 0 + Decorate 107(g_tTex1df4a) DescriptorSet 0 + Decorate 107(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -366,9 +371,10 @@ gl_FragCoord origin is upper left 97: 6(float) Constant 1065353216 98: 7(fvec4) ConstantComposite 97 97 97 97 100: TypePointer Function 6(float) - 102: TypePointer Output 94(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output -106(g_tTex1df4a): 11(ptr) Variable UniformConstant + 102(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 103: TypePointer Output 102(PS_OUTPUT) +104(@entryPointOutput): 103(ptr) Variable Output +107(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -412,7 +418,7 @@ gl_FragCoord origin is upper left Store 99 98 101: 100(ptr) AccessChain 96(psout) 40 Store 101 97 - 104:94(PS_OUTPUT) Load 96(psout) - Store 103(@entryPointOutput) 104 + 105:94(PS_OUTPUT) Load 96(psout) + Store 104(@entryPointOutput) 105 Return FunctionEnd diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 470556ed..733ff991 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:17 Sequence 0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects @@ -52,19 +52,19 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:17 Sequence 0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 26 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 22 + EntryPoint Fragment 4 "main" 23 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -72,7 +72,10 @@ gl_FragCoord origin is upper left Name 12 "PS_OUTPUT" MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" - Name 22 "@entryPointOutput" + Name 21 "PS_OUTPUT" + MemberName 21(PS_OUTPUT) 0 "color" + Name 23 "@entryPointOutput" + Decorate 23(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -84,15 +87,16 @@ gl_FragCoord origin is upper left 17: 10(float) Constant 1065353216 18: 11(fvec4) ConstantComposite 17 17 17 17 19: TypePointer Function 11(fvec4) - 21: TypePointer Output 12(PS_OUTPUT) -22(@entryPointOutput): 21(ptr) Variable Output + 21(PS_OUTPUT): TypeStruct 11(fvec4) + 22: TypePointer Output 21(PS_OUTPUT) +23(@entryPointOutput): 22(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function 20: 19(ptr) AccessChain 14(ps_output) 16 Store 20 18 - 23:12(PS_OUTPUT) Load 14(ps_output) - Store 22(@entryPointOutput) 23 + 24:12(PS_OUTPUT) Load 14(ps_output) + Store 23(@entryPointOutput) 24 Return FunctionEnd 6(MyFunc(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index ab72308a..c32282be 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 sine (global 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 sine (global 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return @@ -45,6 +45,7 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" Name 11 "input" + Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index e5fbf654..8edda1d8 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -17,7 +17,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) 0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) 0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects @@ -55,21 +55,24 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 27 +// Id's are bound by 28 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 + EntryPoint Fragment 4 "main" 20 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 19 "@entryPointOutput" - Name 24 "TestTexture" - Name 26 "TestUF" - Decorate 24(TestTexture) DescriptorSet 0 + Name 18 "PS_OUTPUT" + MemberName 18(PS_OUTPUT) 0 "Color" + Name 20 "@entryPointOutput" + Name 25 "TestTexture" + Name 27 "TestUF" + Decorate 20(@entryPointOutput) Location 0 + Decorate 25(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -82,19 +85,20 @@ gl_FragCoord origin is upper left 14: 6(float) Constant 1065353216 15: 7(fvec4) ConstantComposite 13 13 13 14 16: TypePointer Function 7(fvec4) - 18: TypePointer Output 8(PS_OUTPUT) -19(@entryPointOutput): 18(ptr) Variable Output - 22: TypeImage 6(float) 2D sampled format:Unknown - 23: TypePointer UniformConstant 22 - 24(TestTexture): 23(ptr) Variable UniformConstant - 25: TypePointer UniformConstant 7(fvec4) - 26(TestUF): 25(ptr) Variable UniformConstant + 18(PS_OUTPUT): TypeStruct 7(fvec4) + 19: TypePointer Output 18(PS_OUTPUT) +20(@entryPointOutput): 19(ptr) Variable Output + 23: TypeImage 6(float) 2D sampled format:Unknown + 24: TypePointer UniformConstant 23 + 25(TestTexture): 24(ptr) Variable UniformConstant + 26: TypePointer UniformConstant 7(fvec4) + 27(TestUF): 26(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function 17: 16(ptr) AccessChain 10(psout) 12 Store 17 15 - 20:8(PS_OUTPUT) Load 10(psout) - Store 19(@entryPointOutput) 20 + 21:8(PS_OUTPUT) Load 10(psout) + Store 20(@entryPointOutput) 21 Return FunctionEnd diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 36fa18f0..a1c23a27 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:40 7 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:40 7 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects @@ -106,6 +106,7 @@ gl_FragCoord origin is upper left Name 44 "ff5" Name 45 "ff6" MemberDecorate 25 4 BuiltIn FrontFacing + Decorate 34(@entryPointOutput) Location 0 Decorate 36(input) Location 0 Decorate 44(ff5) Offset 20 Decorate 44(ff5) Binding 5 diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index 7185eb04..ac46f01b 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:51 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects @@ -252,7 +252,7 @@ gl_FragCoord origin is upper left 0:51 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects @@ -274,6 +274,7 @@ gl_FragCoord origin is upper left Decorate 8(c) Location 1 Decorate 21(input) Location 0 Decorate 41(d) Location 2 + Decorate 81(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index e3c8baad..06f3f480 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:? 12.000000 0:45 Sequence 0:45 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:45 Constant: 0:45 0.000000 0:45 Branch: Return @@ -493,7 +493,7 @@ gl_FragCoord origin is upper left 0:? 12.000000 0:45 Sequence 0:45 move second child to first child (temp float) -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:45 Constant: 0:45 0.000000 0:45 Branch: Return @@ -539,6 +539,7 @@ gl_FragCoord origin is upper left Name 136 "r65" Name 141 "r66" Name 145 "@entryPointOutput" + Decorate 145(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index a3fb1986..564c74c4 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -15,7 +15,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:4 Loop with condition tested first @@ -55,7 +55,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:4 Loop with condition tested first @@ -88,6 +88,7 @@ gl_FragCoord origin is upper left Name 14 "input" Name 22 "@entryPointOutput" Decorate 14(input) Location 0 + Decorate 22(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 11: TypeFloat 32 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 297730e9..a51134c3 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -31,6 +31,8 @@ Linked fragment stage: Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 MemberDecorate 1032 1 BuiltIn FragDepth + MemberDecorate 1033 1 BuiltIn FragDepth + Decorate 4045 Location 0 8: TypeVoid 1282: TypeFunction 8 12: TypeInt 32 1 @@ -128,7 +130,8 @@ Linked fragment stage: 138: 13(float) Constant 1065353216 1284: 29(fvec4) ConstantComposite 138 138 138 138 650: TypePointer Function 13(float) - 1670: TypePointer Output 1032(struct) + 1033: TypeStruct 29(fvec4) 13(float) + 1670: TypePointer Output 1033(struct) 4045: 1670(ptr) Variable Output 5663: 8 Function None 1282 24915: Label diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index fe4d1b05..a70b8317 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 186 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 181 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -59,10 +59,13 @@ Linked fragment stage: MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 180 "@entryPointOutput" - Name 182 "g_sSamp2d" - Name 183 "g_sSamp2D_b" - Name 184 "g_tTex1df4a" + Name 179 "PS_OUTPUT" + MemberName 179(PS_OUTPUT) 0 "Color" + MemberName 179(PS_OUTPUT) 1 "Depth" + Name 181 "@entryPointOutput" + Name 183 "g_sSamp2d" + Name 184 "g_sSamp2D_b" + Name 185 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -79,10 +82,12 @@ Linked fragment stage: Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 182(g_sSamp2d) DescriptorSet 0 - Decorate 183(g_sSamp2D_b) DescriptorSet 0 - Decorate 184(g_tTex1df4a) DescriptorSet 0 - Decorate 184(g_tTex1df4a) Binding 1 + MemberDecorate 179(PS_OUTPUT) 1 BuiltIn FragDepth + Decorate 181(@entryPointOutput) Location 0 + Decorate 183(g_sSamp2d) DescriptorSet 0 + Decorate 184(g_sSamp2D_b) DescriptorSet 0 + Decorate 185(g_tTex1df4a) DescriptorSet 0 + Decorate 185(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -182,11 +187,12 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(PS_OUTPUT) -180(@entryPointOutput): 179(ptr) Variable Output - 182(g_sSamp2d): 44(ptr) Variable UniformConstant -183(g_sSamp2D_b): 44(ptr) Variable UniformConstant -184(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) + 180: TypePointer Output 179(PS_OUTPUT) +181(@entryPointOutput): 180(ptr) Variable Output + 183(g_sSamp2d): 44(ptr) Variable UniformConstant +184(g_sSamp2D_b): 44(ptr) Variable UniformConstant +185(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -291,7 +297,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 181:171(PS_OUTPUT) Load 173(psout) - Store 180(@entryPointOutput) 181 + 182:171(PS_OUTPUT) Load 173(psout) + Store 181(@entryPointOutput) 182 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index d7f3003e..60b2b780 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 186 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 181 ExecutionMode 4 OriginUpperLeft Decorate 41 DescriptorSet 0 Decorate 41 Binding 0 @@ -31,10 +31,12 @@ Linked fragment stage: Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 MemberDecorate 171 1 BuiltIn FragDepth - Decorate 182 DescriptorSet 0 + MemberDecorate 179 1 BuiltIn FragDepth + Decorate 181 Location 0 Decorate 183 DescriptorSet 0 Decorate 184 DescriptorSet 0 - Decorate 184 Binding 1 + Decorate 185 DescriptorSet 0 + Decorate 185 Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -134,11 +136,12 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(struct) - 180: 179(ptr) Variable Output - 182: 44(ptr) Variable UniformConstant + 179: TypeStruct 36(fvec4) 35(float) + 180: TypePointer Output 179(struct) + 181: 180(ptr) Variable Output 183: 44(ptr) Variable UniformConstant - 184: 40(ptr) Variable UniformConstant + 184: 44(ptr) Variable UniformConstant + 185: 40(ptr) Variable UniformConstant 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function @@ -243,7 +246,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173 10 Store 178 174 - 181: 171(struct) Load 173 - Store 180 181 + 182: 171(struct) Load 173 + Store 181 182 Return FunctionEnd diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2248b476..b064e5b2 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1453" +#define GLSLANG_REVISION "Overload400-PrecQual.1454" #define GLSLANG_DATE "29-Aug-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9f957a6d..74609b77 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -754,28 +754,8 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l functionReturnsValue = false; inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); - if (inEntrypoint) { - // parameters are actually shader-scoped inputs and outputs (in or out) - unsigned int inCount = 0; - unsigned int outCount = 0; - for (int i = 0; i < function.getParamCount(); i++) { - if (function[i].type->getQualifier().isParamInput()) { - if (function[i].type->getQualifier().builtIn == EbvNone) - function[i].type->getQualifier().layoutLocation = inCount++; - function[i].type->getQualifier().storage = EvqVaryingIn; - } else { - if (function[i].type->getQualifier().builtIn == EbvNone && language != EShLangFragment) - function[i].type->getQualifier().layoutLocation = outCount++; - function[i].type->getQualifier().storage = EvqVaryingOut; - } - } - - // return value is actually shader-scoped output (out) - if (function.getType().getBasicType() != EbtVoid) { - entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); - entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; - } - } + if (inEntrypoint) + remapEntrypointIO(function); // // New symbol table scope for body of function plus its arguments @@ -819,6 +799,43 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l return paramNodes; } +// AST I/O is done through shader globals declared in the 'in' or 'out' +// storage class. An HLSL entry point has a return value, input parameters +// and output parameters. These need to get remapped to the AST I/O. +void HlslParseContext::remapEntrypointIO(TFunction& function) +{ + // Will auto-assign locations here to the inputs/outputs defined by the entry point + unsigned int inCount = 0; + unsigned int outCount = 0; + + // return value is actually a shader-scoped output (out) + if (function.getType().getBasicType() != EbtVoid) { + entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); + entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + if (function.getType().getQualifier().builtIn == EbvNone) { + entryPointOutput->getWritableType().getQualifier().layoutLocation = outCount; + outCount += intermediate.computeTypeLocationSize(function.getType()); + } + } + + // parameters are actually shader-scoped inputs and outputs (in or out) + for (int i = 0; i < function.getParamCount(); i++) { + if (function[i].type->getQualifier().isParamInput()) { + function[i].type->getQualifier().storage = EvqVaryingIn; + if (function[i].type->getQualifier().builtIn == EbvNone) { + function[i].type->getQualifier().layoutLocation = inCount; + inCount += intermediate.computeTypeLocationSize(*function[i].type); + } + } else { + function[i].type->getQualifier().storage = EvqVaryingOut; + if (function[i].type->getQualifier().builtIn == EbvNone && language != EShLangFragment) { + function[i].type->getQualifier().layoutLocation = outCount; + outCount += intermediate.computeTypeLocationSize(*function[i].type); + } + } + } +} + // Handle function returns, including type conversions to the function return type // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 50f3e8b2..f7ac1750 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -85,6 +85,7 @@ public: TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); + void remapEntrypointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); From 5e56423046b470d7cf3bdd8b58339a169d9524f6 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 31 Aug 2016 13:43:51 -0600 Subject: [PATCH 102/217] Front-ends: Remove now defunct afterEOF and related, use scanner's instead. Code using atEndOfFile was dead, instead do something useful with the scanners atEndOfInput(). This allows a better error message for early termination of cascading errors. --- Test/baseResults/badMacroArgs.frag.out | 2 +- Test/baseResults/cppNest.vert.out | 2 +- glslang/Include/revision.h | 4 ++-- glslang/MachineIndependent/ParseHelper.cpp | 11 ++++++----- glslang/MachineIndependent/ParseHelper.h | 4 +--- glslang/MachineIndependent/Scan.h | 2 ++ glslang/MachineIndependent/preprocessor/PpScanner.cpp | 6 +----- hlsl/hlslParseHelper.cpp | 1 - hlsl/hlslParseHelper.h | 1 - 9 files changed, 14 insertions(+), 19 deletions(-) diff --git a/Test/baseResults/badMacroArgs.frag.out b/Test/baseResults/badMacroArgs.frag.out index 6a46a0f3..95937ce3 100644 --- a/Test/baseResults/badMacroArgs.frag.out +++ b/Test/baseResults/badMacroArgs.frag.out @@ -1,7 +1,7 @@ badMacroArgs.frag Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:4: 'macro expansion' : Too few args in Macro m -ERROR: 0:4: '' : syntax error +ERROR: 0:4: '' : compilation terminated ERROR: 2 compilation errors. No code generated. diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out index 4f95f5a2..df905579 100644 --- a/Test/baseResults/cppNest.vert.out +++ b/Test/baseResults/cppNest.vert.out @@ -4,7 +4,7 @@ ERROR: 0:152: '#else' : #else after #else ERROR: 0:161: '#elif' : #elif after #else ERROR: 0:169: '#else' : #else after #else ERROR: 0:177: 'macro expansion' : End of input in macro FUNC -ERROR: 0:178: '' : syntax error +ERROR: 0:178: '' : compilation terminated ERROR: 6 compilation errors. No code generated. diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index b064e5b2..f5cd5f15 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1454" -#define GLSLANG_DATE "29-Aug-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1456" +#define GLSLANG_DATE "31-Aug-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 42dafbd1..24f106a4 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -55,7 +55,6 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr), limits(resources.limits), parsingBuiltins(parsingBuiltins), - afterEOF(false), atomicUintOffsets(nullptr), anyIndexLimits(false) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms @@ -193,13 +192,15 @@ bool TParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& inp } // This is called from bison when it has a parse (syntax) error +// Note though that to stop cascading errors, we set EOF, which +// will usually cause a syntax error, so be more accurate that +// compilation is terminating. void TParseContext::parserError(const char* s) { - if (afterEOF) { - if (tokensBeforeEOF == 1) - error(getCurrentLoc(), "", "premature end of input", s, ""); - } else + if (! getScanner()->atEndOfInput() || numErrors == 0) error(getCurrentLoc(), "", "", s, ""); + else + error(getCurrentLoc(), "compilation terminated", "", ""); } void TParseContext::handlePragma(const TSourceLoc& loc, const TVector& tokens) diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 19830399..aa92954b 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -77,7 +77,7 @@ public: EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), - symbolTable(symbolTable), tokensBeforeEOF(false), + symbolTable(symbolTable), linkage(nullptr), scanContext(nullptr), ppContext(nullptr) { } virtual ~TParseContextBase() { } @@ -125,7 +125,6 @@ public: } TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile - bool tokensBeforeEOF; protected: TParseContextBase(TParseContextBase&); @@ -387,7 +386,6 @@ protected: static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; TPrecisionManager precisionManager; - bool afterEOF; TQualifier globalBufferDefaults; TQualifier globalUniformDefaults; TQualifier globalInputDefaults; diff --git a/glslang/MachineIndependent/Scan.h b/glslang/MachineIndependent/Scan.h index 4282cd59..67c86d2e 100644 --- a/glslang/MachineIndependent/Scan.h +++ b/glslang/MachineIndependent/Scan.h @@ -204,6 +204,8 @@ public: currentSource = numSources; } + bool atEndOfInput() const { return endOfFileReached; } + const TSourceLoc& getSourceLoc() const { if (singleLogical) { diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index dad4c425..d6b76c57 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -762,12 +762,8 @@ const char* TPpContext::tokenize(TPpToken* ppToken) break; } - if (tokenString) { - if (tokenString[0] != 0) - parseContext.tokensBeforeEOF = 1; - + if (tokenString) return tokenString; - } } } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 74609b77..a214df96 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -55,7 +55,6 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), - afterEOF(false), entryPointOutput(nullptr) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index f7ac1750..2f5ee570 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -189,7 +189,6 @@ protected: HlslParseContext& operator=(HlslParseContext&); static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex() - bool afterEOF; TQualifier globalBufferDefaults; TQualifier globalUniformDefaults; TQualifier globalInputDefaults; From f2b7f3353b7f3ca633bac3e88ab2e520d258b17f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 1 Sep 2016 17:05:23 -0600 Subject: [PATCH 103/217] SPV: Tighten up number of struct-types declared based on decoration. Takes some pressure off of issue #304. Structures don't inherit locations and then explicitly decorate members with them, so removed this reason to have another instance of a structure type. --- SPIRV/GlslangToSpv.cpp | 27 ++- SPIRV/SpvBuilder.h | 2 +- .../hlsl.calculatelod.dx10.frag.out | 29 +-- Test/baseResults/hlsl.constructexpr.frag.out | 19 +- .../hlsl.gather.array.dx10.frag.out | 61 +++-- .../hlsl.gather.basic.dx10.frag.out | 97 ++++---- .../hlsl.gather.basic.dx10.vert.out | 96 ++++---- .../hlsl.gather.offset.dx10.frag.out | 121 +++++----- .../hlsl.gather.offsetarray.dx10.frag.out | 61 +++-- .../hlsl.gatherRGBA.array.dx10.frag.out | 73 +++--- .../hlsl.gatherRGBA.basic.dx10.frag.out | 109 +++++---- .../hlsl.gatherRGBA.offset.dx10.frag.out | 167 +++++++------- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 129 +++++------ .../hlsl.getdimensions.dx10.frag.out | 33 ++- .../hlsl.getdimensions.dx10.vert.out | 32 ++- Test/baseResults/hlsl.init2.frag.out | 19 +- Test/baseResults/hlsl.inoutquals.frag.out | 21 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 57 +++-- .../baseResults/hlsl.load.array.dx10.frag.out | 211 +++++++++--------- .../baseResults/hlsl.load.basic.dx10.frag.out | 173 +++++++------- .../baseResults/hlsl.load.basic.dx10.vert.out | 172 +++++++------- .../hlsl.load.buffer.dx10.frag.out | 67 +++--- .../hlsl.load.offset.dx10.frag.out | 161 +++++++------ .../hlsl.load.offsetarray.dx10.frag.out | 201 ++++++++--------- .../baseResults/hlsl.numericsuffixes.frag.out | 19 +- Test/baseResults/hlsl.pp.line.frag.out | 21 +- Test/baseResults/hlsl.precise.frag.out | 25 +-- Test/baseResults/hlsl.promotions.frag.out | 19 +- .../hlsl.sample.array.dx10.frag.out | 29 +-- .../hlsl.sample.basic.dx10.frag.out | 41 ++-- .../hlsl.sample.offset.dx10.frag.out | 59 +++-- .../hlsl.sample.offsetarray.dx10.frag.out | 29 +-- .../hlsl.samplebias.array.dx10.frag.out | 29 +-- .../hlsl.samplebias.basic.dx10.frag.out | 29 +-- .../hlsl.samplebias.offset.dx10.frag.out | 59 +++-- .../hlsl.samplebias.offsetarray.dx10.frag.out | 29 +-- .../hlsl.samplecmp.array.dx10.frag.out | 143 ++++++------ .../hlsl.samplecmp.basic.dx10.frag.out | 141 ++++++------ .../hlsl.samplecmp.offset.dx10.frag.out | 171 +++++++------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 173 +++++++------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 143 ++++++------ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 141 ++++++------ ...sl.samplecmplevelzero.offset.dx10.frag.out | 171 +++++++------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 173 +++++++------- .../hlsl.samplegrad.array.dx10.frag.out | 29 +-- .../hlsl.samplegrad.basic.dx10.frag.out | 29 +-- .../hlsl.samplegrad.basic.dx10.vert.out | 28 +-- .../hlsl.samplegrad.offset.dx10.frag.out | 59 +++-- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 59 +++-- .../hlsl.samplelevel.array.dx10.frag.out | 29 +-- .../hlsl.samplelevel.basic.dx10.frag.out | 35 ++- .../hlsl.samplelevel.basic.dx10.vert.out | 28 +-- .../hlsl.samplelevel.offset.dx10.frag.out | 59 +++-- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 29 +-- Test/baseResults/hlsl.semicolons.frag.out | 19 +- Test/baseResults/hlsl.stringtoken.frag.out | 35 ++- ...emap.hlsl.sample.basic.everything.frag.out | 4 +- .../remap.hlsl.sample.basic.none.frag.out | 41 ++-- .../remap.hlsl.sample.basic.strip.frag.out | 24 +- Test/baseResults/spv.450.tesc.out | 74 +++--- glslang/Include/revision.h | 2 +- 61 files changed, 2057 insertions(+), 2308 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 14666652..ddad636b 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -683,13 +683,17 @@ void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& pa child.writeonly = true; } -bool HasNonLayoutQualifiers(const glslang::TQualifier& qualifier) +bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifier& qualifier) { // This should list qualifiers that simultaneous satisfy: - // - struct members can inherit from a struct declaration - // - affect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object) + // - struct members might inherit from a struct declaration + // (note that non-block structs don't explicitly inherit, + // only implicitly, meaning no decoration involved) + // - affect decorations on the struct members + // (note smooth does not, and expecting something like volatile + // to effect the whole object) // - are not part of the offset/st430/etc or row/column-major layout - return qualifier.invariant || qualifier.hasLocation(); + return qualifier.invariant || (qualifier.hasLocation() && type.getBasicType() == glslang::EbtBlock); } // @@ -961,7 +965,16 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T // store the result builder.setAccessChain(lValue); - accessChainStore(node->getType(), rValue); + if (builder.isStructType(builder.getTypeId(rValue))) { + //spv::Id lType = builder.getContainedTypeId(builder.getTypeId(builder.accessChainGetLValue())); + //spv::Id rType = builder.getTypeId(rValue); + //if (lType != rType) { + // TODO: do member-wise copy instead, this is current issue + // https://github.com/KhronosGroup/glslang/issues/304 + //} else + accessChainStore(node->getType(), rValue); + } else + accessChainStore(node->getType(), rValue); // assignments are expressions having an rValue after they are evaluated... builder.clearAccessChain(); @@ -1958,7 +1971,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty // Try to share structs for different layouts, but not yet for other // kinds of qualification (primarily not yet including interpolant qualification). - if (! HasNonLayoutQualifiers(qualifier)) + if (! HasNonLayoutQualifiers(type, qualifier)) spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers]; if (spvType != spv::NoResult) break; @@ -2068,7 +2081,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TTy // Make the SPIR-V type spv::Id spvType = builder.makeStructType(spvMembers, type.getTypeName().c_str()); - if (! HasNonLayoutQualifiers(qualifier)) + if (! HasNonLayoutQualifiers(type, qualifier)) structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers] = spvType; // Decorate it diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 00e85b8c..787d98e7 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -467,7 +467,7 @@ public: // // the SPIR-V builder maintains a single active chain that - // the following methods operated on + // the following methods operate on // // for external save and restore diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 9e4f3678..7afcf873 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 146 +// Id's are bound by 145 Capability Shader Capability Sampled1D @@ -329,7 +329,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 142 + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -355,11 +355,8 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 140 "PS_OUTPUT" - MemberName 140(PS_OUTPUT) 0 "Color" - MemberName 140(PS_OUTPUT) 1 "Depth" - Name 142 "@entryPointOutput" - Name 145 "g_tTex1df4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -373,10 +370,9 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(@entryPointOutput) Location 0 - Decorate 145(g_tTex1df4) DescriptorSet 0 - Decorate 145(g_tTex1df4) Binding 0 + Decorate 141(@entryPointOutput) Location 0 + Decorate 144(g_tTex1df4) DescriptorSet 0 + Decorate 144(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -447,10 +443,9 @@ gl_FragCoord origin is upper left 135: 130(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 130(fvec4) 138: 23(int) Constant 1 - 140(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) - 141: TypePointer Output 140(PS_OUTPUT) -142(@entryPointOutput): 141(ptr) Variable Output - 145(g_tTex1df4): 10(ptr) Variable UniformConstant + 140: TypePointer Output 131(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -530,7 +525,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 133(psout) 138 Store 139 134 - 143:131(PS_OUTPUT) Load 133(psout) - Store 142(@entryPointOutput) 143 + 142:131(PS_OUTPUT) Load 133(psout) + Store 141(@entryPointOutput) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index a8ed49cf..24e5f34e 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -89,21 +89,19 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 35 +// Id's are bound by 34 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 32 + EntryPoint Fragment 4 "main" 31 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" - Name 30 "PS_OUTPUT" - MemberName 30(PS_OUTPUT) 0 "color" - Name 32 "@entryPointOutput" - Decorate 32(@entryPointOutput) Location 0 + Name 31 "@entryPointOutput" + Decorate 31(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -128,15 +126,14 @@ gl_FragCoord origin is upper left 26: 13(float) Constant 1065353216 27: 21(fvec4) ConstantComposite 26 26 26 26 28: TypePointer Function 21(fvec4) - 30(PS_OUTPUT): TypeStruct 21(fvec4) - 31: TypePointer Output 30(PS_OUTPUT) -32(@entryPointOutput): 31(ptr) Variable Output + 30: TypePointer Output 22(PS_OUTPUT) +31(@entryPointOutput): 30(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function 29: 28(ptr) AccessChain 24(ps_output) 25 Store 29 27 - 33:22(PS_OUTPUT) Load 24(ps_output) - Store 32(@entryPointOutput) 33 + 32:22(PS_OUTPUT) Load 24(ps_output) + Store 31(@entryPointOutput) 32 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index f2042c54..314aa7f1 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -225,14 +225,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 113 +// Id's are bound by 112 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 100 + EntryPoint Fragment 4 "main" 99 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -252,14 +252,11 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 98 "PS_OUTPUT" - MemberName 98(PS_OUTPUT) 0 "Color" - MemberName 98(PS_OUTPUT) 1 "Depth" - Name 100 "@entryPointOutput" - Name 105 "g_tTex1df4a" - Name 106 "g_tTex1df4" - Name 109 "g_tTex1di4a" - Name 112 "g_tTex1du4a" + Name 99 "@entryPointOutput" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4a" + Name 111 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -269,14 +266,13 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 100(@entryPointOutput) Location 0 - Decorate 105(g_tTex1df4a) DescriptorSet 0 - Decorate 105(g_tTex1df4a) Binding 1 - Decorate 106(g_tTex1df4) DescriptorSet 0 - Decorate 106(g_tTex1df4) Binding 0 - Decorate 109(g_tTex1di4a) DescriptorSet 0 - Decorate 112(g_tTex1du4a) DescriptorSet 0 + Decorate 99(@entryPointOutput) Location 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4a) DescriptorSet 0 + Decorate 111(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -338,19 +334,18 @@ gl_FragCoord origin is upper left 93: 7(fvec4) ConstantComposite 87 87 87 87 95: 25(int) Constant 1 96: TypePointer Function 6(float) - 98(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 99: TypePointer Output 98(PS_OUTPUT) -100(@entryPointOutput): 99(ptr) Variable Output - 103: TypeImage 6(float) 1D array sampled format:Unknown - 104: TypePointer UniformConstant 103 -105(g_tTex1df4a): 104(ptr) Variable UniformConstant - 106(g_tTex1df4): 104(ptr) Variable UniformConstant - 107: TypeImage 25(int) 1D array sampled format:Unknown - 108: TypePointer UniformConstant 107 -109(g_tTex1di4a): 108(ptr) Variable UniformConstant - 110: TypeImage 42(int) 1D array sampled format:Unknown - 111: TypePointer UniformConstant 110 -112(g_tTex1du4a): 111(ptr) Variable UniformConstant + 98: TypePointer Output 90(PS_OUTPUT) +99(@entryPointOutput): 98(ptr) Variable Output + 102: TypeImage 6(float) 1D array sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 25(int) 1D array sampled format:Unknown + 107: TypePointer UniformConstant 106 +108(g_tTex1di4a): 107(ptr) Variable UniformConstant + 109: TypeImage 42(int) 1D array sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTex1du4a): 110(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -394,7 +389,7 @@ gl_FragCoord origin is upper left Store 94 93 97: 96(ptr) AccessChain 92(psout) 95 Store 97 87 - 101:90(PS_OUTPUT) Load 92(psout) - Store 100(@entryPointOutput) 101 + 100:90(PS_OUTPUT) Load 92(psout) + Store 99(@entryPointOutput) 100 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 94bd1b02..9c38bb67 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -221,13 +221,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 124 +// Id's are bound by 123 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 101 + EntryPoint Fragment 4 "main" 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -247,18 +247,15 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 99 "PS_OUTPUT" - MemberName 99(PS_OUTPUT) 0 "Color" - MemberName 99(PS_OUTPUT) 1 "Depth" - Name 101 "@entryPointOutput" - Name 104 "g_sSamp2d" - Name 107 "g_tTex1df4a" - Name 108 "g_tTex1df4" - Name 111 "g_tTex1di4" - Name 114 "g_tTex1du4" - Name 117 "g_tTex3df4" - Name 120 "g_tTex3di4" - Name 123 "g_tTex3du4" + Name 100 "@entryPointOutput" + Name 103 "g_sSamp2d" + Name 106 "g_tTex1df4a" + Name 107 "g_tTex1df4" + Name 110 "g_tTex1di4" + Name 113 "g_tTex1du4" + Name 116 "g_tTex3df4" + Name 119 "g_tTex3di4" + Name 122 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -268,18 +265,17 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(@entryPointOutput) Location 0 - Decorate 104(g_sSamp2d) DescriptorSet 0 - Decorate 107(g_tTex1df4a) DescriptorSet 0 - Decorate 107(g_tTex1df4a) Binding 1 - Decorate 108(g_tTex1df4) DescriptorSet 0 - Decorate 108(g_tTex1df4) Binding 0 - Decorate 111(g_tTex1di4) DescriptorSet 0 - Decorate 114(g_tTex1du4) DescriptorSet 0 - Decorate 117(g_tTex3df4) DescriptorSet 0 - Decorate 120(g_tTex3di4) DescriptorSet 0 - Decorate 123(g_tTex3du4) DescriptorSet 0 + Decorate 100(@entryPointOutput) Location 0 + Decorate 103(g_sSamp2d) DescriptorSet 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 + Decorate 107(g_tTex1df4) DescriptorSet 0 + Decorate 107(g_tTex1df4) Binding 0 + Decorate 110(g_tTex1di4) DescriptorSet 0 + Decorate 113(g_tTex1du4) DescriptorSet 0 + Decorate 116(g_tTex3df4) DescriptorSet 0 + Decorate 119(g_tTex3di4) DescriptorSet 0 + Decorate 122(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -342,29 +338,28 @@ gl_FragCoord origin is upper left 94: 7(fvec4) ConstantComposite 93 93 93 93 96: 24(int) Constant 1 97: TypePointer Function 6(float) - 99(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 100: TypePointer Output 99(PS_OUTPUT) -101(@entryPointOutput): 100(ptr) Variable Output - 104(g_sSamp2d): 15(ptr) Variable UniformConstant - 105: TypeImage 6(float) 1D sampled format:Unknown - 106: TypePointer UniformConstant 105 -107(g_tTex1df4a): 106(ptr) Variable UniformConstant - 108(g_tTex1df4): 106(ptr) Variable UniformConstant - 109: TypeImage 24(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1di4): 110(ptr) Variable UniformConstant - 112: TypeImage 41(int) 1D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex1du4): 113(ptr) Variable UniformConstant - 115: TypeImage 6(float) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3df4): 116(ptr) Variable UniformConstant - 118: TypeImage 24(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3di4): 119(ptr) Variable UniformConstant - 121: TypeImage 41(int) 3D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex3du4): 122(ptr) Variable UniformConstant + 99: TypePointer Output 90(PS_OUTPUT) +100(@entryPointOutput): 99(ptr) Variable Output + 103(g_sSamp2d): 15(ptr) Variable UniformConstant + 104: TypeImage 6(float) 1D sampled format:Unknown + 105: TypePointer UniformConstant 104 +106(g_tTex1df4a): 105(ptr) Variable UniformConstant + 107(g_tTex1df4): 105(ptr) Variable UniformConstant + 108: TypeImage 24(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1di4): 109(ptr) Variable UniformConstant + 111: TypeImage 41(int) 1D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex1du4): 112(ptr) Variable UniformConstant + 114: TypeImage 6(float) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3df4): 115(ptr) Variable UniformConstant + 117: TypeImage 24(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3di4): 118(ptr) Variable UniformConstant + 120: TypeImage 41(int) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3du4): 121(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -408,7 +403,7 @@ gl_FragCoord origin is upper left Store 95 94 98: 97(ptr) AccessChain 92(psout) 96 Store 98 93 - 102:90(PS_OUTPUT) Load 92(psout) - Store 101(@entryPointOutput) 102 + 101:90(PS_OUTPUT) Load 92(psout) + Store 100(@entryPointOutput) 101 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 13fd9484..b0e35787 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -205,13 +205,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 121 +// Id's are bound by 120 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 98 + EntryPoint Vertex 4 "main" 97 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -229,17 +229,15 @@ Shader version: 450 Name 90 "VS_OUTPUT" MemberName 90(VS_OUTPUT) 0 "Pos" Name 92 "vsout" - Name 96 "VS_OUTPUT" - MemberName 96(VS_OUTPUT) 0 "Pos" - Name 98 "@entryPointOutput" - Name 101 "g_sSamp2d" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4" - Name 111 "g_tTex1du4" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" + Name 97 "@entryPointOutput" + Name 100 "g_sSamp2d" + Name 103 "g_tTex1df4a" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -249,18 +247,17 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position - MemberDecorate 96(VS_OUTPUT) 0 BuiltIn Position - Decorate 98(@entryPointOutput) Location 0 - Decorate 101(g_sSamp2d) DescriptorSet 0 - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4) DescriptorSet 0 - Decorate 111(g_tTex1du4) DescriptorSet 0 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 97(@entryPointOutput) Location 0 + Decorate 100(g_sSamp2d) DescriptorSet 0 + Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -321,29 +318,28 @@ Shader version: 450 91: TypePointer Function 90(VS_OUTPUT) 93: 6(float) Constant 0 94: 7(fvec4) ConstantComposite 93 93 93 93 - 96(VS_OUTPUT): TypeStruct 7(fvec4) - 97: TypePointer Output 96(VS_OUTPUT) -98(@entryPointOutput): 97(ptr) Variable Output - 101(g_sSamp2d): 15(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 24(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1di4): 107(ptr) Variable UniformConstant - 109: TypeImage 41(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 24(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 41(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 96: TypePointer Output 90(VS_OUTPUT) +97(@entryPointOutput): 96(ptr) Variable Output + 100(g_sSamp2d): 15(ptr) Variable UniformConstant + 101: TypeImage 6(float) 1D sampled format:Unknown + 102: TypePointer UniformConstant 101 +103(g_tTex1df4a): 102(ptr) Variable UniformConstant + 104(g_tTex1df4): 102(ptr) Variable UniformConstant + 105: TypeImage 24(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 41(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 24(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 41(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -385,7 +381,7 @@ Shader version: 450 Store 77(txval42) 89 95: 8(ptr) AccessChain 92(vsout) 25 Store 95 94 - 99:90(VS_OUTPUT) Load 92(vsout) - Store 98(@entryPointOutput) 99 + 98:90(VS_OUTPUT) Load 92(vsout) + Store 97(@entryPointOutput) 98 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 7cb6ad7a..f5d818d0 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -171,13 +171,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 103 +// Id's are bound by 102 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 72 + EntryPoint Fragment 4 "main" 71 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -191,40 +191,36 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 70 "PS_OUTPUT" - MemberName 70(PS_OUTPUT) 0 "Color" - MemberName 70(PS_OUTPUT) 1 "Depth" - Name 72 "@entryPointOutput" - Name 77 "g_tTex1df4a" - Name 78 "g_tTex1df4" - Name 81 "g_tTex1di4" - Name 84 "g_tTex1du4" - Name 87 "g_tTex3df4" - Name 90 "g_tTex3di4" - Name 93 "g_tTex3du4" - Name 96 "g_tTexcdf4" - Name 99 "g_tTexcdi4" - Name 102 "g_tTexcdu4" + Name 71 "@entryPointOutput" + Name 76 "g_tTex1df4a" + Name 77 "g_tTex1df4" + Name 80 "g_tTex1di4" + Name 83 "g_tTex1du4" + Name 86 "g_tTex3df4" + Name 89 "g_tTex3di4" + Name 92 "g_tTex3du4" + Name 95 "g_tTexcdf4" + Name 98 "g_tTexcdi4" + Name 101 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 70(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 72(@entryPointOutput) Location 0 - Decorate 77(g_tTex1df4a) DescriptorSet 0 - Decorate 77(g_tTex1df4a) Binding 1 - Decorate 78(g_tTex1df4) DescriptorSet 0 - Decorate 78(g_tTex1df4) Binding 0 - Decorate 81(g_tTex1di4) DescriptorSet 0 - Decorate 84(g_tTex1du4) DescriptorSet 0 - Decorate 87(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3di4) DescriptorSet 0 - Decorate 93(g_tTex3du4) DescriptorSet 0 - Decorate 96(g_tTexcdf4) DescriptorSet 0 - Decorate 99(g_tTexcdi4) DescriptorSet 0 - Decorate 102(g_tTexcdu4) DescriptorSet 0 + Decorate 71(@entryPointOutput) Location 0 + Decorate 76(g_tTex1df4a) DescriptorSet 0 + Decorate 76(g_tTex1df4a) Binding 1 + Decorate 77(g_tTex1df4) DescriptorSet 0 + Decorate 77(g_tTex1df4) Binding 0 + Decorate 80(g_tTex1di4) DescriptorSet 0 + Decorate 83(g_tTex1du4) DescriptorSet 0 + Decorate 86(g_tTex3df4) DescriptorSet 0 + Decorate 89(g_tTex3di4) DescriptorSet 0 + Decorate 92(g_tTex3du4) DescriptorSet 0 + Decorate 95(g_tTexcdf4) DescriptorSet 0 + Decorate 98(g_tTexcdi4) DescriptorSet 0 + Decorate 101(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -273,37 +269,36 @@ gl_FragCoord origin is upper left 65: 6(float) Constant 1065353216 66: 7(fvec4) ConstantComposite 65 65 65 65 68: TypePointer Function 6(float) - 70(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 71: TypePointer Output 70(PS_OUTPUT) -72(@entryPointOutput): 71(ptr) Variable Output - 75: TypeImage 6(float) 1D sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex1df4a): 76(ptr) Variable UniformConstant - 78(g_tTex1df4): 76(ptr) Variable UniformConstant - 79: TypeImage 24(int) 1D sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1di4): 80(ptr) Variable UniformConstant - 82: TypeImage 45(int) 1D sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex1du4): 83(ptr) Variable UniformConstant - 85: TypeImage 6(float) 3D sampled format:Unknown - 86: TypePointer UniformConstant 85 - 87(g_tTex3df4): 86(ptr) Variable UniformConstant - 88: TypeImage 24(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3di4): 89(ptr) Variable UniformConstant - 91: TypeImage 45(int) 3D sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTex3du4): 92(ptr) Variable UniformConstant - 94: TypeImage 6(float) Cube sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdf4): 95(ptr) Variable UniformConstant - 97: TypeImage 24(int) Cube sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTexcdi4): 98(ptr) Variable UniformConstant - 100: TypeImage 45(int) Cube sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTexcdu4): 101(ptr) Variable UniformConstant + 70: TypePointer Output 62(PS_OUTPUT) +71(@entryPointOutput): 70(ptr) Variable Output + 74: TypeImage 6(float) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1df4a): 75(ptr) Variable UniformConstant + 77(g_tTex1df4): 75(ptr) Variable UniformConstant + 78: TypeImage 24(int) 1D sampled format:Unknown + 79: TypePointer UniformConstant 78 + 80(g_tTex1di4): 79(ptr) Variable UniformConstant + 81: TypeImage 45(int) 1D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex1du4): 82(ptr) Variable UniformConstant + 84: TypeImage 6(float) 3D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex3df4): 85(ptr) Variable UniformConstant + 87: TypeImage 24(int) 3D sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex3di4): 88(ptr) Variable UniformConstant + 90: TypeImage 45(int) 3D sampled format:Unknown + 91: TypePointer UniformConstant 90 + 92(g_tTex3du4): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTexcdf4): 94(ptr) Variable UniformConstant + 96: TypeImage 24(int) Cube sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTexcdi4): 97(ptr) Variable UniformConstant + 99: TypeImage 45(int) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdu4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -329,7 +324,7 @@ gl_FragCoord origin is upper left Store 67 66 69: 68(ptr) AccessChain 64(psout) 26 Store 69 65 - 73:62(PS_OUTPUT) Load 64(psout) - Store 72(@entryPointOutput) 73 + 72:62(PS_OUTPUT) Load 64(psout) + Store 71(@entryPointOutput) 72 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index d4cfa005..32d56133 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -165,13 +165,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 86 +// Id's are bound by 85 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 73 + EntryPoint Fragment 4 "main" 72 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -185,28 +185,24 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 71 "PS_OUTPUT" - MemberName 71(PS_OUTPUT) 0 "Color" - MemberName 71(PS_OUTPUT) 1 "Depth" - Name 73 "@entryPointOutput" - Name 78 "g_tTex1df4a" - Name 79 "g_tTex1df4" - Name 82 "g_tTex1di4" - Name 85 "g_tTex1du4" + Name 72 "@entryPointOutput" + Name 77 "g_tTex1df4a" + Name 78 "g_tTex1df4" + Name 81 "g_tTex1di4" + Name 84 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 71(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 73(@entryPointOutput) Location 0 - Decorate 78(g_tTex1df4a) DescriptorSet 0 - Decorate 78(g_tTex1df4a) Binding 1 - Decorate 79(g_tTex1df4) DescriptorSet 0 - Decorate 79(g_tTex1df4) Binding 0 - Decorate 82(g_tTex1di4) DescriptorSet 0 - Decorate 85(g_tTex1du4) DescriptorSet 0 + Decorate 72(@entryPointOutput) Location 0 + Decorate 77(g_tTex1df4a) DescriptorSet 0 + Decorate 77(g_tTex1df4a) Binding 1 + Decorate 78(g_tTex1df4) DescriptorSet 0 + Decorate 78(g_tTex1df4) Binding 0 + Decorate 81(g_tTex1di4) DescriptorSet 0 + Decorate 84(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -256,19 +252,18 @@ gl_FragCoord origin is upper left 66: 6(float) Constant 1065353216 67: 7(fvec4) ConstantComposite 66 66 66 66 69: TypePointer Function 6(float) - 71(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 72: TypePointer Output 71(PS_OUTPUT) -73(@entryPointOutput): 72(ptr) Variable Output - 76: TypeImage 6(float) 1D array sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex1df4a): 77(ptr) Variable UniformConstant - 79(g_tTex1df4): 77(ptr) Variable UniformConstant - 80: TypeImage 25(int) 1D array sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex1di4): 81(ptr) Variable UniformConstant - 83: TypeImage 45(int) 1D array sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex1du4): 84(ptr) Variable UniformConstant + 71: TypePointer Output 63(PS_OUTPUT) +72(@entryPointOutput): 71(ptr) Variable Output + 75: TypeImage 6(float) 1D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex1df4a): 76(ptr) Variable UniformConstant + 78(g_tTex1df4): 76(ptr) Variable UniformConstant + 79: TypeImage 25(int) 1D array sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1di4): 80(ptr) Variable UniformConstant + 82: TypeImage 45(int) 1D array sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex1du4): 83(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -294,7 +289,7 @@ gl_FragCoord origin is upper left Store 68 67 70: 69(ptr) AccessChain 65(psout) 27 Store 70 66 - 74:63(PS_OUTPUT) Load 65(psout) - Store 73(@entryPointOutput) 74 + 73:63(PS_OUTPUT) Load 65(psout) + Store 72(@entryPointOutput) 73 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index c2ccd50d..8e7a9266 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -575,14 +575,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 223 +// Id's are bound by 222 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 + EntryPoint Fragment 4 "main" 204 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -622,16 +622,13 @@ gl_FragCoord origin is upper left MemberName 195(PS_OUTPUT) 0 "Color" MemberName 195(PS_OUTPUT) 1 "Depth" Name 197 "psout" - Name 203 "PS_OUTPUT" - MemberName 203(PS_OUTPUT) 0 "Color" - MemberName 203(PS_OUTPUT) 1 "Depth" - Name 205 "@entryPointOutput" - Name 208 "g_sSamp2d" - Name 211 "g_tTex1df4a" - Name 214 "g_tTex1di4a" - Name 217 "g_tTex1du4a" - Name 219 "c1" - Name 222 "c2" + Name 204 "@entryPointOutput" + Name 207 "g_sSamp2d" + Name 210 "g_tTex1df4a" + Name 213 "g_tTex1di4a" + Name 216 "g_tTex1du4a" + Name 218 "c1" + Name 221 "c2" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -641,13 +638,12 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 203(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 205(@entryPointOutput) Location 0 - Decorate 208(g_sSamp2d) DescriptorSet 0 - Decorate 211(g_tTex1df4a) DescriptorSet 0 - Decorate 211(g_tTex1df4a) Binding 0 - Decorate 214(g_tTex1di4a) DescriptorSet 0 - Decorate 217(g_tTex1du4a) DescriptorSet 0 + Decorate 204(@entryPointOutput) Location 0 + Decorate 207(g_sSamp2d) DescriptorSet 0 + Decorate 210(g_tTex1df4a) DescriptorSet 0 + Decorate 210(g_tTex1df4a) Binding 0 + Decorate 213(g_tTex1di4a) DescriptorSet 0 + Decorate 216(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -700,24 +696,23 @@ gl_FragCoord origin is upper left 198: 6(float) Constant 1065353216 199: 7(fvec4) ConstantComposite 198 198 198 198 201: TypePointer Function 6(float) - 203(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 204: TypePointer Output 203(PS_OUTPUT) -205(@entryPointOutput): 204(ptr) Variable Output - 208(g_sSamp2d): 15(ptr) Variable UniformConstant - 209: TypeImage 6(float) 1D array sampled format:Unknown - 210: TypePointer UniformConstant 209 -211(g_tTex1df4a): 210(ptr) Variable UniformConstant - 212: TypeImage 24(int) 1D array sampled format:Unknown - 213: TypePointer UniformConstant 212 -214(g_tTex1di4a): 213(ptr) Variable UniformConstant - 215: TypeImage 39(int) 1D array sampled format:Unknown - 216: TypePointer UniformConstant 215 -217(g_tTex1du4a): 216(ptr) Variable UniformConstant - 218: TypePointer UniformConstant 6(float) - 219(c1): 218(ptr) Variable UniformConstant - 220: TypeVector 6(float) 2 - 221: TypePointer UniformConstant 220(fvec2) - 222(c2): 221(ptr) Variable UniformConstant + 203: TypePointer Output 195(PS_OUTPUT) +204(@entryPointOutput): 203(ptr) Variable Output + 207(g_sSamp2d): 15(ptr) Variable UniformConstant + 208: TypeImage 6(float) 1D array sampled format:Unknown + 209: TypePointer UniformConstant 208 +210(g_tTex1df4a): 209(ptr) Variable UniformConstant + 211: TypeImage 24(int) 1D array sampled format:Unknown + 212: TypePointer UniformConstant 211 +213(g_tTex1di4a): 212(ptr) Variable UniformConstant + 214: TypeImage 39(int) 1D array sampled format:Unknown + 215: TypePointer UniformConstant 214 +216(g_tTex1du4a): 215(ptr) Variable UniformConstant + 217: TypePointer UniformConstant 6(float) + 218(c1): 217(ptr) Variable UniformConstant + 219: TypeVector 6(float) 2 + 220: TypePointer UniformConstant 219(fvec2) + 221(c2): 220(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -893,7 +888,7 @@ gl_FragCoord origin is upper left Store 200 199 202: 201(ptr) AccessChain 197(psout) 57 Store 202 198 - 206:195(PS_OUTPUT) Load 197(psout) - Store 205(@entryPointOutput) 206 + 205:195(PS_OUTPUT) Load 197(psout) + Store 204(@entryPointOutput) 205 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 8be5ba60..24ad0a27 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -583,13 +583,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 233 +// Id's are bound by 232 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 206 + EntryPoint Fragment 4 "main" 205 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -629,20 +629,17 @@ gl_FragCoord origin is upper left MemberName 196(PS_OUTPUT) 0 "Color" MemberName 196(PS_OUTPUT) 1 "Depth" Name 198 "psout" - Name 204 "PS_OUTPUT" - MemberName 204(PS_OUTPUT) 0 "Color" - MemberName 204(PS_OUTPUT) 1 "Depth" - Name 206 "@entryPointOutput" - Name 209 "g_sSamp2d" - Name 212 "g_tTex1df4a" - Name 213 "g_tTex1df4" - Name 216 "g_tTex1di4" - Name 219 "g_tTex1du4" - Name 222 "g_tTex3df4" - Name 225 "g_tTex3di4" - Name 228 "g_tTex3du4" - Name 230 "c1" - Name 232 "c4" + Name 205 "@entryPointOutput" + Name 208 "g_sSamp2d" + Name 211 "g_tTex1df4a" + Name 212 "g_tTex1df4" + Name 215 "g_tTex1di4" + Name 218 "g_tTex1du4" + Name 221 "g_tTex3df4" + Name 224 "g_tTex3di4" + Name 227 "g_tTex3du4" + Name 229 "c1" + Name 231 "c4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -652,18 +649,17 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 204(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 206(@entryPointOutput) Location 0 - Decorate 209(g_sSamp2d) DescriptorSet 0 - Decorate 212(g_tTex1df4a) DescriptorSet 0 - Decorate 212(g_tTex1df4a) Binding 1 - Decorate 213(g_tTex1df4) DescriptorSet 0 - Decorate 213(g_tTex1df4) Binding 0 - Decorate 216(g_tTex1di4) DescriptorSet 0 - Decorate 219(g_tTex1du4) DescriptorSet 0 - Decorate 222(g_tTex3df4) DescriptorSet 0 - Decorate 225(g_tTex3di4) DescriptorSet 0 - Decorate 228(g_tTex3du4) DescriptorSet 0 + Decorate 205(@entryPointOutput) Location 0 + Decorate 208(g_sSamp2d) DescriptorSet 0 + Decorate 211(g_tTex1df4a) DescriptorSet 0 + Decorate 211(g_tTex1df4a) Binding 1 + Decorate 212(g_tTex1df4) DescriptorSet 0 + Decorate 212(g_tTex1df4) Binding 0 + Decorate 215(g_tTex1di4) DescriptorSet 0 + Decorate 218(g_tTex1du4) DescriptorSet 0 + Decorate 221(g_tTex3df4) DescriptorSet 0 + Decorate 224(g_tTex3di4) DescriptorSet 0 + Decorate 227(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -717,33 +713,32 @@ gl_FragCoord origin is upper left 199: 6(float) Constant 1065353216 200: 7(fvec4) ConstantComposite 199 199 199 199 202: TypePointer Function 6(float) - 204(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 205: TypePointer Output 204(PS_OUTPUT) -206(@entryPointOutput): 205(ptr) Variable Output - 209(g_sSamp2d): 15(ptr) Variable UniformConstant - 210: TypeImage 6(float) 1D sampled format:Unknown - 211: TypePointer UniformConstant 210 -212(g_tTex1df4a): 211(ptr) Variable UniformConstant - 213(g_tTex1df4): 211(ptr) Variable UniformConstant - 214: TypeImage 24(int) 1D sampled format:Unknown - 215: TypePointer UniformConstant 214 - 216(g_tTex1di4): 215(ptr) Variable UniformConstant - 217: TypeImage 39(int) 1D sampled format:Unknown - 218: TypePointer UniformConstant 217 - 219(g_tTex1du4): 218(ptr) Variable UniformConstant - 220: TypeImage 6(float) 3D sampled format:Unknown - 221: TypePointer UniformConstant 220 - 222(g_tTex3df4): 221(ptr) Variable UniformConstant - 223: TypeImage 24(int) 3D sampled format:Unknown - 224: TypePointer UniformConstant 223 - 225(g_tTex3di4): 224(ptr) Variable UniformConstant - 226: TypeImage 39(int) 3D sampled format:Unknown - 227: TypePointer UniformConstant 226 - 228(g_tTex3du4): 227(ptr) Variable UniformConstant - 229: TypePointer UniformConstant 6(float) - 230(c1): 229(ptr) Variable UniformConstant - 231: TypePointer UniformConstant 7(fvec4) - 232(c4): 231(ptr) Variable UniformConstant + 204: TypePointer Output 196(PS_OUTPUT) +205(@entryPointOutput): 204(ptr) Variable Output + 208(g_sSamp2d): 15(ptr) Variable UniformConstant + 209: TypeImage 6(float) 1D sampled format:Unknown + 210: TypePointer UniformConstant 209 +211(g_tTex1df4a): 210(ptr) Variable UniformConstant + 212(g_tTex1df4): 210(ptr) Variable UniformConstant + 213: TypeImage 24(int) 1D sampled format:Unknown + 214: TypePointer UniformConstant 213 + 215(g_tTex1di4): 214(ptr) Variable UniformConstant + 216: TypeImage 39(int) 1D sampled format:Unknown + 217: TypePointer UniformConstant 216 + 218(g_tTex1du4): 217(ptr) Variable UniformConstant + 219: TypeImage 6(float) 3D sampled format:Unknown + 220: TypePointer UniformConstant 219 + 221(g_tTex3df4): 220(ptr) Variable UniformConstant + 222: TypeImage 24(int) 3D sampled format:Unknown + 223: TypePointer UniformConstant 222 + 224(g_tTex3di4): 223(ptr) Variable UniformConstant + 225: TypeImage 39(int) 3D sampled format:Unknown + 226: TypePointer UniformConstant 225 + 227(g_tTex3du4): 226(ptr) Variable UniformConstant + 228: TypePointer UniformConstant 6(float) + 229(c1): 228(ptr) Variable UniformConstant + 230: TypePointer UniformConstant 7(fvec4) + 231(c4): 230(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -919,7 +914,7 @@ gl_FragCoord origin is upper left Store 201 200 203: 202(ptr) AccessChain 198(psout) 57 Store 203 199 - 207:196(PS_OUTPUT) Load 198(psout) - Store 206(@entryPointOutput) 207 + 206:196(PS_OUTPUT) Load 198(psout) + Store 205(@entryPointOutput) 206 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 922d3493..32ab1286 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -735,14 +735,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 314 +// Id's are bound by 313 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 268 + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -779,48 +779,44 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 266 "PS_OUTPUT" - MemberName 266(PS_OUTPUT) 0 "Color" - MemberName 266(PS_OUTPUT) 1 "Depth" - Name 268 "@entryPointOutput" - Name 271 "g_sSamp2d" - Name 274 "g_tTex1df4a" - Name 275 "g_tTex1df4" - Name 278 "g_tTex1di4" - Name 281 "g_tTex1du4" - Name 284 "g_tTex3df4" - Name 287 "g_tTex3di4" - Name 290 "g_tTex3du4" - Name 293 "g_tTexcdf4" - Name 296 "g_tTexcdi4" - Name 299 "g_tTexcdu4" - Name 301 "c1" - Name 304 "c3" - Name 306 "c4" - Name 308 "o1" - Name 311 "o3" - Name 313 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 274 "g_tTex1df4" + Name 277 "g_tTex1di4" + Name 280 "g_tTex1du4" + Name 283 "g_tTex3df4" + Name 286 "g_tTex3di4" + Name 289 "g_tTex3du4" + Name 292 "g_tTexcdf4" + Name 295 "g_tTexcdi4" + Name 298 "g_tTexcdu4" + Name 300 "c1" + Name 303 "c3" + Name 305 "c4" + Name 307 "o1" + Name 310 "o3" + Name 312 "o4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 266(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(@entryPointOutput) Location 0 - Decorate 271(g_sSamp2d) DescriptorSet 0 - Decorate 274(g_tTex1df4a) DescriptorSet 0 - Decorate 274(g_tTex1df4a) Binding 1 - Decorate 275(g_tTex1df4) DescriptorSet 0 - Decorate 275(g_tTex1df4) Binding 0 - Decorate 278(g_tTex1di4) DescriptorSet 0 - Decorate 281(g_tTex1du4) DescriptorSet 0 - Decorate 284(g_tTex3df4) DescriptorSet 0 - Decorate 287(g_tTex3di4) DescriptorSet 0 - Decorate 290(g_tTex3du4) DescriptorSet 0 - Decorate 293(g_tTexcdf4) DescriptorSet 0 - Decorate 296(g_tTexcdi4) DescriptorSet 0 - Decorate 299(g_tTexcdu4) DescriptorSet 0 + Decorate 267(@entryPointOutput) Location 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 1 + Decorate 274(g_tTex1df4) DescriptorSet 0 + Decorate 274(g_tTex1df4) Binding 0 + Decorate 277(g_tTex1di4) DescriptorSet 0 + Decorate 280(g_tTex1du4) DescriptorSet 0 + Decorate 283(g_tTex3df4) DescriptorSet 0 + Decorate 286(g_tTex3di4) DescriptorSet 0 + Decorate 289(g_tTex3du4) DescriptorSet 0 + Decorate 292(g_tTexcdf4) DescriptorSet 0 + Decorate 295(g_tTexcdi4) DescriptorSet 0 + Decorate 298(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -864,52 +860,51 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 267: TypePointer Output 266(PS_OUTPUT) -268(@entryPointOutput): 267(ptr) Variable Output - 271(g_sSamp2d): 15(ptr) Variable UniformConstant - 272: TypeImage 6(float) 1D sampled format:Unknown - 273: TypePointer UniformConstant 272 -274(g_tTex1df4a): 273(ptr) Variable UniformConstant - 275(g_tTex1df4): 273(ptr) Variable UniformConstant - 276: TypeImage 24(int) 1D sampled format:Unknown - 277: TypePointer UniformConstant 276 - 278(g_tTex1di4): 277(ptr) Variable UniformConstant - 279: TypeImage 44(int) 1D sampled format:Unknown - 280: TypePointer UniformConstant 279 - 281(g_tTex1du4): 280(ptr) Variable UniformConstant - 282: TypeImage 6(float) 3D sampled format:Unknown - 283: TypePointer UniformConstant 282 - 284(g_tTex3df4): 283(ptr) Variable UniformConstant - 285: TypeImage 24(int) 3D sampled format:Unknown - 286: TypePointer UniformConstant 285 - 287(g_tTex3di4): 286(ptr) Variable UniformConstant - 288: TypeImage 44(int) 3D sampled format:Unknown - 289: TypePointer UniformConstant 288 - 290(g_tTex3du4): 289(ptr) Variable UniformConstant - 291: TypeImage 6(float) Cube sampled format:Unknown - 292: TypePointer UniformConstant 291 - 293(g_tTexcdf4): 292(ptr) Variable UniformConstant - 294: TypeImage 24(int) Cube sampled format:Unknown - 295: TypePointer UniformConstant 294 - 296(g_tTexcdi4): 295(ptr) Variable UniformConstant - 297: TypeImage 44(int) Cube sampled format:Unknown - 298: TypePointer UniformConstant 297 - 299(g_tTexcdu4): 298(ptr) Variable UniformConstant - 300: TypePointer UniformConstant 6(float) - 301(c1): 300(ptr) Variable UniformConstant - 302: TypeVector 6(float) 3 - 303: TypePointer UniformConstant 302(fvec3) - 304(c3): 303(ptr) Variable UniformConstant - 305: TypePointer UniformConstant 7(fvec4) - 306(c4): 305(ptr) Variable UniformConstant - 307: TypePointer UniformConstant 24(int) - 308(o1): 307(ptr) Variable UniformConstant - 309: TypeVector 24(int) 3 - 310: TypePointer UniformConstant 309(ivec3) - 311(o3): 310(ptr) Variable UniformConstant - 312: TypePointer UniformConstant 31(ivec4) - 313(o4): 312(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274(g_tTex1df4): 272(ptr) Variable UniformConstant + 275: TypeImage 24(int) 1D sampled format:Unknown + 276: TypePointer UniformConstant 275 + 277(g_tTex1di4): 276(ptr) Variable UniformConstant + 278: TypeImage 44(int) 1D sampled format:Unknown + 279: TypePointer UniformConstant 278 + 280(g_tTex1du4): 279(ptr) Variable UniformConstant + 281: TypeImage 6(float) 3D sampled format:Unknown + 282: TypePointer UniformConstant 281 + 283(g_tTex3df4): 282(ptr) Variable UniformConstant + 284: TypeImage 24(int) 3D sampled format:Unknown + 285: TypePointer UniformConstant 284 + 286(g_tTex3di4): 285(ptr) Variable UniformConstant + 287: TypeImage 44(int) 3D sampled format:Unknown + 288: TypePointer UniformConstant 287 + 289(g_tTex3du4): 288(ptr) Variable UniformConstant + 290: TypeImage 6(float) Cube sampled format:Unknown + 291: TypePointer UniformConstant 290 + 292(g_tTexcdf4): 291(ptr) Variable UniformConstant + 293: TypeImage 24(int) Cube sampled format:Unknown + 294: TypePointer UniformConstant 293 + 295(g_tTexcdi4): 294(ptr) Variable UniformConstant + 296: TypeImage 44(int) Cube sampled format:Unknown + 297: TypePointer UniformConstant 296 + 298(g_tTexcdu4): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 6(float) + 300(c1): 299(ptr) Variable UniformConstant + 301: TypeVector 6(float) 3 + 302: TypePointer UniformConstant 301(fvec3) + 303(c3): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 7(fvec4) + 305(c4): 304(ptr) Variable UniformConstant + 306: TypePointer UniformConstant 24(int) + 307(o1): 306(ptr) Variable UniformConstant + 308: TypeVector 24(int) 3 + 309: TypePointer UniformConstant 308(ivec3) + 310(o3): 309(ptr) Variable UniformConstant + 311: TypePointer UniformConstant 31(ivec4) + 312(o4): 311(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1157,7 +1152,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 269:258(PS_OUTPUT) Load 260(psout) - Store 268(@entryPointOutput) 269 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 76546757..771b3717 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -727,7 +727,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 304 +// Id's are bound by 303 Capability Shader Capability ImageGatherExtended @@ -735,7 +735,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 268 + EntryPoint Fragment 4 "main" 267 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -772,39 +772,35 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 266 "PS_OUTPUT" - MemberName 266(PS_OUTPUT) 0 "Color" - MemberName 266(PS_OUTPUT) 1 "Depth" - Name 268 "@entryPointOutput" - Name 271 "g_sSamp2d" - Name 274 "g_tTex1df4a" - Name 277 "g_tTex1di4a" - Name 280 "g_tTex1du4a" - Name 283 "g_tTexcdf4a" - Name 286 "g_tTexcdi4a" - Name 289 "g_tTexcdu4a" - Name 291 "c1" - Name 294 "c2" - Name 296 "c4" - Name 298 "o1" - Name 301 "o3" - Name 303 "o4" + Name 267 "@entryPointOutput" + Name 270 "g_sSamp2d" + Name 273 "g_tTex1df4a" + Name 276 "g_tTex1di4a" + Name 279 "g_tTex1du4a" + Name 282 "g_tTexcdf4a" + Name 285 "g_tTexcdi4a" + Name 288 "g_tTexcdu4a" + Name 290 "c1" + Name 293 "c2" + Name 295 "c4" + Name 297 "o1" + Name 300 "o3" + Name 302 "o4" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 266(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 268(@entryPointOutput) Location 0 - Decorate 271(g_sSamp2d) DescriptorSet 0 - Decorate 274(g_tTex1df4a) DescriptorSet 0 - Decorate 274(g_tTex1df4a) Binding 0 - Decorate 277(g_tTex1di4a) DescriptorSet 0 - Decorate 280(g_tTex1du4a) DescriptorSet 0 - Decorate 283(g_tTexcdf4a) DescriptorSet 0 - Decorate 286(g_tTexcdi4a) DescriptorSet 0 - Decorate 289(g_tTexcdu4a) DescriptorSet 0 + Decorate 267(@entryPointOutput) Location 0 + Decorate 270(g_sSamp2d) DescriptorSet 0 + Decorate 273(g_tTex1df4a) DescriptorSet 0 + Decorate 273(g_tTex1df4a) Binding 0 + Decorate 276(g_tTex1di4a) DescriptorSet 0 + Decorate 279(g_tTex1du4a) DescriptorSet 0 + Decorate 282(g_tTexcdf4a) DescriptorSet 0 + Decorate 285(g_tTexcdi4a) DescriptorSet 0 + Decorate 288(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -848,42 +844,41 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 267: TypePointer Output 266(PS_OUTPUT) -268(@entryPointOutput): 267(ptr) Variable Output - 271(g_sSamp2d): 15(ptr) Variable UniformConstant - 272: TypeImage 6(float) 1D array sampled format:Unknown - 273: TypePointer UniformConstant 272 -274(g_tTex1df4a): 273(ptr) Variable UniformConstant - 275: TypeImage 24(int) 1D array sampled format:Unknown - 276: TypePointer UniformConstant 275 -277(g_tTex1di4a): 276(ptr) Variable UniformConstant - 278: TypeImage 44(int) 1D array sampled format:Unknown - 279: TypePointer UniformConstant 278 -280(g_tTex1du4a): 279(ptr) Variable UniformConstant - 281: TypeImage 6(float) Cube array sampled format:Unknown - 282: TypePointer UniformConstant 281 -283(g_tTexcdf4a): 282(ptr) Variable UniformConstant - 284: TypeImage 24(int) Cube array sampled format:Unknown - 285: TypePointer UniformConstant 284 -286(g_tTexcdi4a): 285(ptr) Variable UniformConstant - 287: TypeImage 44(int) Cube array sampled format:Unknown - 288: TypePointer UniformConstant 287 -289(g_tTexcdu4a): 288(ptr) Variable UniformConstant - 290: TypePointer UniformConstant 6(float) - 291(c1): 290(ptr) Variable UniformConstant - 292: TypeVector 6(float) 2 - 293: TypePointer UniformConstant 292(fvec2) - 294(c2): 293(ptr) Variable UniformConstant - 295: TypePointer UniformConstant 7(fvec4) - 296(c4): 295(ptr) Variable UniformConstant - 297: TypePointer UniformConstant 24(int) - 298(o1): 297(ptr) Variable UniformConstant - 299: TypeVector 24(int) 3 - 300: TypePointer UniformConstant 299(ivec3) - 301(o3): 300(ptr) Variable UniformConstant - 302: TypePointer UniformConstant 31(ivec4) - 303(o4): 302(ptr) Variable UniformConstant + 266: TypePointer Output 258(PS_OUTPUT) +267(@entryPointOutput): 266(ptr) Variable Output + 270(g_sSamp2d): 15(ptr) Variable UniformConstant + 271: TypeImage 6(float) 1D array sampled format:Unknown + 272: TypePointer UniformConstant 271 +273(g_tTex1df4a): 272(ptr) Variable UniformConstant + 274: TypeImage 24(int) 1D array sampled format:Unknown + 275: TypePointer UniformConstant 274 +276(g_tTex1di4a): 275(ptr) Variable UniformConstant + 277: TypeImage 44(int) 1D array sampled format:Unknown + 278: TypePointer UniformConstant 277 +279(g_tTex1du4a): 278(ptr) Variable UniformConstant + 280: TypeImage 6(float) Cube array sampled format:Unknown + 281: TypePointer UniformConstant 280 +282(g_tTexcdf4a): 281(ptr) Variable UniformConstant + 283: TypeImage 24(int) Cube array sampled format:Unknown + 284: TypePointer UniformConstant 283 +285(g_tTexcdi4a): 284(ptr) Variable UniformConstant + 286: TypeImage 44(int) Cube array sampled format:Unknown + 287: TypePointer UniformConstant 286 +288(g_tTexcdu4a): 287(ptr) Variable UniformConstant + 289: TypePointer UniformConstant 6(float) + 290(c1): 289(ptr) Variable UniformConstant + 291: TypeVector 6(float) 2 + 292: TypePointer UniformConstant 291(fvec2) + 293(c2): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 7(fvec4) + 295(c4): 294(ptr) Variable UniformConstant + 296: TypePointer UniformConstant 24(int) + 297(o1): 296(ptr) Variable UniformConstant + 298: TypeVector 24(int) 3 + 299: TypePointer UniformConstant 298(ivec3) + 300(o3): 299(ptr) Variable UniformConstant + 301: TypePointer UniformConstant 31(ivec4) + 302(o4): 301(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1131,7 +1126,7 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 269:258(PS_OUTPUT) Load 260(psout) - Store 268(@entryPointOutput) 269 + 268:258(PS_OUTPUT) Load 260(psout) + Store 267(@entryPointOutput) 268 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 1dd69fd0..53864af1 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2197,7 +2197,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 541 +// Id's are bound by 540 Capability Shader Capability Sampled1D @@ -2206,7 +2206,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 535 + EntryPoint Fragment 4 "main" 534 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2294,11 +2294,8 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 533 "PS_OUTPUT" - MemberName 533(PS_OUTPUT) 0 "Color" - MemberName 533(PS_OUTPUT) 1 "Depth" - Name 535 "@entryPointOutput" - Name 540 "g_sSamp" + Name 534 "@entryPointOutput" + Name 539 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2328,10 +2325,9 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 533(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 535(@entryPointOutput) Location 0 - Decorate 540(g_sSamp) DescriptorSet 0 - Decorate 540(g_sSamp) Binding 0 + Decorate 534(@entryPointOutput) Location 0 + Decorate 539(g_sSamp) DescriptorSet 0 + Decorate 539(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2438,12 +2434,11 @@ gl_FragCoord origin is upper left 528: TypePointer Function 521(fvec4) 530: 14(int) Constant 1 531: TypePointer Function 9(float) - 533(PS_OUTPUT): TypeStruct 521(fvec4) 9(float) - 534: TypePointer Output 533(PS_OUTPUT) -535(@entryPointOutput): 534(ptr) Variable Output - 538: TypeSampler - 539: TypePointer UniformConstant 538 - 540(g_sSamp): 539(ptr) Variable UniformConstant + 533: TypePointer Output 522(PS_OUTPUT) +534(@entryPointOutput): 533(ptr) Variable Output + 537: TypeSampler + 538: TypePointer UniformConstant 537 + 539(g_sSamp): 538(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3057,7 +3052,7 @@ gl_FragCoord origin is upper left Store 529 527 532: 531(ptr) AccessChain 524(psout) 530 Store 532 526 - 536:522(PS_OUTPUT) Load 524(psout) - Store 535(@entryPointOutput) 536 + 535:522(PS_OUTPUT) Load 524(psout) + Store 534(@entryPointOutput) 535 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 34f23ee8..605540e8 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -97,14 +97,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 43 +// Id's are bound by 42 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 37 + EntryPoint Vertex 4 "main" 36 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -114,17 +114,14 @@ Shader version: 450 Name 27 "VS_OUTPUT" MemberName 27(VS_OUTPUT) 0 "Pos" Name 29 "vsout" - Name 35 "VS_OUTPUT" - MemberName 35(VS_OUTPUT) 0 "Pos" - Name 37 "@entryPointOutput" - Name 42 "g_sSamp" + Name 36 "@entryPointOutput" + Name 41 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position - MemberDecorate 35(VS_OUTPUT) 0 BuiltIn Position - Decorate 37(@entryPointOutput) Location 0 - Decorate 42(g_sSamp) DescriptorSet 0 - Decorate 42(g_sSamp) Binding 0 + Decorate 36(@entryPointOutput) Location 0 + Decorate 41(g_sSamp) DescriptorSet 0 + Decorate 41(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -142,12 +139,11 @@ Shader version: 450 31: 9(float) Constant 0 32: 26(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 26(fvec4) - 35(VS_OUTPUT): TypeStruct 26(fvec4) - 36: TypePointer Output 35(VS_OUTPUT) -37(@entryPointOutput): 36(ptr) Variable Output - 40: TypeSampler - 41: TypePointer UniformConstant 40 - 42(g_sSamp): 41(ptr) Variable UniformConstant + 35: TypePointer Output 27(VS_OUTPUT) +36(@entryPointOutput): 35(ptr) Variable Output + 39: TypeSampler + 40: TypePointer UniformConstant 39 + 41(g_sSamp): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -170,7 +166,7 @@ Shader version: 450 Store 23(NumberOfLevelsU) 25 34: 33(ptr) AccessChain 29(vsout) 30 Store 34 32 - 38:27(VS_OUTPUT) Load 29(vsout) - Store 37(@entryPointOutput) 38 + 37:27(VS_OUTPUT) Load 29(vsout) + Store 36(@entryPointOutput) 37 Return FunctionEnd diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index f56ca2c4..6fed4767 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -107,12 +107,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 47 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 44 + EntryPoint Fragment 4 "main" 43 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -129,10 +129,8 @@ gl_FragCoord origin is upper left Name 34 "PS_OUTPUT" MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" - Name 42 "PS_OUTPUT" - MemberName 42(PS_OUTPUT) 0 "color" - Name 44 "@entryPointOutput" - Decorate 44(@entryPointOutput) Location 0 + Name 43 "@entryPointOutput" + Decorate 43(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -162,17 +160,16 @@ gl_FragCoord origin is upper left 38: 37(int) Constant 0 39: 33(fvec4) ConstantComposite 13 13 13 13 40: TypePointer Function 33(fvec4) - 42(PS_OUTPUT): TypeStruct 33(fvec4) - 43: TypePointer Output 42(PS_OUTPUT) -44(@entryPointOutput): 43(ptr) Variable Output + 42: TypePointer Output 34(PS_OUTPUT) +43(@entryPointOutput): 42(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function 32: 2 FunctionCall 6(Test1() 41: 40(ptr) AccessChain 36(ps_output) 38 Store 41 39 - 45:34(PS_OUTPUT) Load 36(ps_output) - Store 44(@entryPointOutput) 45 + 44:34(PS_OUTPUT) Load 36(ps_output) + Store 43(@entryPointOutput) 44 Return FunctionEnd 6(Test1(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 6ba87928..c396c8fd 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -131,12 +131,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 57 +// Id's are bound by 56 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 54 + EntryPoint Fragment 4 "main" 45 53 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -154,15 +154,11 @@ gl_FragCoord origin is upper left MemberName 31(PS_OUTPUT) 1 "Depth" Name 33 "psout" Name 45 "inpos" - Name 52 "PS_OUTPUT" - MemberName 52(PS_OUTPUT) 0 "Color" - MemberName 52(PS_OUTPUT) 1 "Depth" - Name 54 "@entryPointOutput" + Name 53 "@entryPointOutput" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord - MemberDecorate 52(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 54(@entryPointOutput) Location 0 + Decorate 53(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -184,9 +180,8 @@ gl_FragCoord origin is upper left 46: TypeInt 32 0 47: 46(int) Constant 3 48: TypePointer Input 6(float) - 52(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) - 53: TypePointer Output 52(PS_OUTPUT) -54(@entryPointOutput): 53(ptr) Variable Output + 52: TypePointer Output 31(PS_OUTPUT) +53(@entryPointOutput): 52(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function @@ -217,8 +212,8 @@ gl_FragCoord origin is upper left 50: 6(float) Load 49 51: 7(ptr) AccessChain 33(psout) 43 Store 51 50 - 55:31(PS_OUTPUT) Load 33(psout) - Store 54(@entryPointOutput) 55 + 54:31(PS_OUTPUT) Load 33(psout) + Store 53(@entryPointOutput) 54 Return FunctionEnd 12(MyFunc(f1;f1;f1;): 2 Function None 8 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 1b82811d..f8b930cb 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -227,14 +227,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 105 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 93 + EntryPoint Fragment 4 "main" 92 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -250,16 +250,13 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 91 "PS_OUTPUT" - MemberName 91(PS_OUTPUT) 0 "Color" - MemberName 91(PS_OUTPUT) 1 "Depth" - Name 93 "@entryPointOutput" - Name 98 "g_sSamp" - Name 100 "c1" - Name 102 "c4" - Name 103 "o1" - Name 104 "o3" - Name 105 "o4" + Name 92 "@entryPointOutput" + Name 97 "g_sSamp" + Name 99 "c1" + Name 101 "c4" + Name 102 "o1" + Name 103 "o3" + Name 104 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -267,10 +264,9 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 91(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 93(@entryPointOutput) Location 0 - Decorate 98(g_sSamp) DescriptorSet 0 - Decorate 98(g_sSamp) Binding 0 + Decorate 92(@entryPointOutput) Location 0 + Decorate 97(g_sSamp) DescriptorSet 0 + Decorate 97(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -313,19 +309,18 @@ gl_FragCoord origin is upper left 86: TypePointer Function 17(fvec4) 88: 11(int) Constant 1 89: TypePointer Function 6(float) - 91(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) - 92: TypePointer Output 91(PS_OUTPUT) -93(@entryPointOutput): 92(ptr) Variable Output - 96: TypeSampler - 97: TypePointer UniformConstant 96 - 98(g_sSamp): 97(ptr) Variable UniformConstant - 99: TypePointer UniformConstant 11(int) - 100(c1): 99(ptr) Variable UniformConstant - 101: TypePointer UniformConstant 24(ivec4) - 102(c4): 101(ptr) Variable UniformConstant - 103(o1): 99(ptr) Variable UniformConstant - 104(o3): 52(ptr) Variable UniformConstant - 105(o4): 101(ptr) Variable UniformConstant + 91: TypePointer Output 80(PS_OUTPUT) +92(@entryPointOutput): 91(ptr) Variable Output + 95: TypeSampler + 96: TypePointer UniformConstant 95 + 97(g_sSamp): 96(ptr) Variable UniformConstant + 98: TypePointer UniformConstant 11(int) + 99(c1): 98(ptr) Variable UniformConstant + 100: TypePointer UniformConstant 24(ivec4) + 101(c4): 100(ptr) Variable UniformConstant + 102(o1): 98(ptr) Variable UniformConstant + 103(o3): 52(ptr) Variable UniformConstant + 104(o4): 100(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -375,7 +370,7 @@ gl_FragCoord origin is upper left Store 87 85 90: 89(ptr) AccessChain 82(psout) 88 Store 90 84 - 94:80(PS_OUTPUT) Load 82(psout) - Store 93(@entryPointOutput) 94 + 93:80(PS_OUTPUT) Load 82(psout) + Store 92(@entryPointOutput) 93 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 564bccbc..a9280b4c 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -293,14 +293,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 146 +// Id's are bound by 145 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 88 + EntryPoint Fragment 4 "main" 87 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -315,32 +315,29 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 86 "PS_OUTPUT" - MemberName 86(PS_OUTPUT) 0 "Color" - MemberName 86(PS_OUTPUT) 1 "Depth" - Name 88 "@entryPointOutput" - Name 93 "g_sSamp" - Name 96 "g_tTex1df4" - Name 99 "g_tTex1di4" - Name 102 "g_tTex1du4" - Name 105 "g_tTex2df4" - Name 108 "g_tTex2di4" - Name 111 "g_tTex2du4" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTexcdf4a" - Name 135 "g_tTexcdi4a" - Name 138 "g_tTexcdu4a" - Name 139 "c1" - Name 141 "c2" - Name 142 "o1" - Name 143 "o2" - Name 144 "o3" - Name 145 "o4" + Name 87 "@entryPointOutput" + Name 92 "g_sSamp" + Name 95 "g_tTex1df4" + Name 98 "g_tTex1di4" + Name 101 "g_tTex1du4" + Name 104 "g_tTex2df4" + Name 107 "g_tTex2di4" + Name 110 "g_tTex2du4" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" + Name 122 "g_tTexcdf4" + Name 125 "g_tTexcdi4" + Name 128 "g_tTexcdu4" + Name 131 "g_tTexcdf4a" + Name 134 "g_tTexcdi4a" + Name 137 "g_tTexcdu4a" + Name 138 "c1" + Name 140 "c2" + Name 141 "o1" + Name 142 "o2" + Name 143 "o3" + Name 144 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -348,26 +345,25 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 88(@entryPointOutput) Location 0 - Decorate 93(g_sSamp) DescriptorSet 0 - Decorate 93(g_sSamp) Binding 0 - Decorate 96(g_tTex1df4) DescriptorSet 0 - Decorate 96(g_tTex1df4) Binding 0 - Decorate 99(g_tTex1di4) DescriptorSet 0 - Decorate 102(g_tTex1du4) DescriptorSet 0 - Decorate 105(g_tTex2df4) DescriptorSet 0 - Decorate 108(g_tTex2di4) DescriptorSet 0 - Decorate 111(g_tTex2du4) DescriptorSet 0 - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTexcdf4a) DescriptorSet 0 - Decorate 135(g_tTexcdi4a) DescriptorSet 0 - Decorate 138(g_tTexcdu4a) DescriptorSet 0 + Decorate 87(@entryPointOutput) Location 0 + Decorate 92(g_sSamp) DescriptorSet 0 + Decorate 92(g_sSamp) Binding 0 + Decorate 95(g_tTex1df4) DescriptorSet 0 + Decorate 95(g_tTex1df4) Binding 0 + Decorate 98(g_tTex1di4) DescriptorSet 0 + Decorate 101(g_tTex1du4) DescriptorSet 0 + Decorate 104(g_tTex2df4) DescriptorSet 0 + Decorate 107(g_tTex2di4) DescriptorSet 0 + Decorate 110(g_tTex2du4) DescriptorSet 0 + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 + Decorate 122(g_tTexcdf4) DescriptorSet 0 + Decorate 125(g_tTexcdi4) DescriptorSet 0 + Decorate 128(g_tTexcdu4) DescriptorSet 0 + Decorate 131(g_tTexcdf4a) DescriptorSet 0 + Decorate 134(g_tTexcdi4a) DescriptorSet 0 + Decorate 137(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -411,64 +407,63 @@ gl_FragCoord origin is upper left 81: TypePointer Function 23(fvec4) 83: 11(int) Constant 1 84: TypePointer Function 6(float) - 86(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 87: TypePointer Output 86(PS_OUTPUT) -88(@entryPointOutput): 87(ptr) Variable Output - 91: TypeSampler - 92: TypePointer UniformConstant 91 - 93(g_sSamp): 92(ptr) Variable UniformConstant - 94: TypeImage 6(float) 1D sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTex1df4): 95(ptr) Variable UniformConstant - 97: TypeImage 11(int) 1D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex1di4): 98(ptr) Variable UniformConstant - 100: TypeImage 18(int) 1D sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTex1du4): 101(ptr) Variable UniformConstant - 103: TypeImage 6(float) 2D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex2df4): 104(ptr) Variable UniformConstant - 106: TypeImage 11(int) 2D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex2di4): 107(ptr) Variable UniformConstant - 109: TypeImage 18(int) 2D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex2du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 11(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 18(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 11(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 18(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) Cube array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTexcdf4a): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) Cube array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTexcdi4a): 134(ptr) Variable UniformConstant - 136: TypeImage 18(int) Cube array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTexcdu4a): 137(ptr) Variable UniformConstant - 139(c1): 20(ptr) Variable UniformConstant - 140: TypePointer UniformConstant 15(ivec2) - 141(c2): 140(ptr) Variable UniformConstant - 142(o1): 20(ptr) Variable UniformConstant - 143(o2): 140(ptr) Variable UniformConstant - 144(o3): 13(ptr) Variable UniformConstant - 145(o4): 49(ptr) Variable UniformConstant + 86: TypePointer Output 75(PS_OUTPUT) +87(@entryPointOutput): 86(ptr) Variable Output + 90: TypeSampler + 91: TypePointer UniformConstant 90 + 92(g_sSamp): 91(ptr) Variable UniformConstant + 93: TypeImage 6(float) 1D sampled format:Unknown + 94: TypePointer UniformConstant 93 + 95(g_tTex1df4): 94(ptr) Variable UniformConstant + 96: TypeImage 11(int) 1D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex1di4): 97(ptr) Variable UniformConstant + 99: TypeImage 18(int) 1D sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTex1du4): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 2D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex2df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 2D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex2di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 2D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex2du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdf4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdi4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdu4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdf4a): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTexcdi4a): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTexcdu4a): 136(ptr) Variable UniformConstant + 138(c1): 20(ptr) Variable UniformConstant + 139: TypePointer UniformConstant 15(ivec2) + 140(c2): 139(ptr) Variable UniformConstant + 141(o1): 20(ptr) Variable UniformConstant + 142(o2): 139(ptr) Variable UniformConstant + 143(o3): 13(ptr) Variable UniformConstant + 144(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -512,7 +507,7 @@ gl_FragCoord origin is upper left Store 82 80 85: 84(ptr) AccessChain 77(psout) 83 Store 85 79 - 89:75(PS_OUTPUT) Load 77(psout) - Store 88(@entryPointOutput) 89 + 88:75(PS_OUTPUT) Load 77(psout) + Store 87(@entryPointOutput) 88 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index cc2ca4a9..81465770 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -359,14 +359,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 166 +// Id's are bound by 165 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 119 + EntryPoint Fragment 4 "main" 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -385,28 +385,25 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 117 "PS_OUTPUT" - MemberName 117(PS_OUTPUT) 0 "Color" - MemberName 117(PS_OUTPUT) 1 "Depth" - Name 119 "@entryPointOutput" - Name 124 "g_sSamp" - Name 127 "g_tTexcdf4" - Name 130 "g_tTexcdi4" - Name 133 "g_tTexcdu4" - Name 136 "g_tTex1df4a" - Name 139 "g_tTex1di4a" - Name 142 "g_tTex1du4a" - Name 145 "g_tTex2df4a" - Name 148 "g_tTex2di4a" - Name 151 "g_tTex2du4a" - Name 154 "g_tTexcdf4a" - Name 157 "g_tTexcdi4a" - Name 160 "g_tTexcdu4a" - Name 161 "c1" - Name 162 "o1" - Name 163 "o2" - Name 164 "o3" - Name 165 "o4" + Name 118 "@entryPointOutput" + Name 123 "g_sSamp" + Name 126 "g_tTexcdf4" + Name 129 "g_tTexcdi4" + Name 132 "g_tTexcdu4" + Name 135 "g_tTex1df4a" + Name 138 "g_tTex1di4a" + Name 141 "g_tTex1du4a" + Name 144 "g_tTex2df4a" + Name 147 "g_tTex2di4a" + Name 150 "g_tTex2du4a" + Name 153 "g_tTexcdf4a" + Name 156 "g_tTexcdi4a" + Name 159 "g_tTexcdu4a" + Name 160 "c1" + Name 161 "o1" + Name 162 "o2" + Name 163 "o3" + Name 164 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -418,22 +415,21 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 117(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 119(@entryPointOutput) Location 0 - Decorate 124(g_sSamp) DescriptorSet 0 - Decorate 124(g_sSamp) Binding 0 - Decorate 127(g_tTexcdf4) DescriptorSet 0 - Decorate 130(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdu4) DescriptorSet 0 - Decorate 136(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTex1di4a) DescriptorSet 0 - Decorate 142(g_tTex1du4a) DescriptorSet 0 - Decorate 145(g_tTex2df4a) DescriptorSet 0 - Decorate 148(g_tTex2di4a) DescriptorSet 0 - Decorate 151(g_tTex2du4a) DescriptorSet 0 - Decorate 154(g_tTexcdf4a) DescriptorSet 0 - Decorate 157(g_tTexcdi4a) DescriptorSet 0 - Decorate 160(g_tTexcdu4a) DescriptorSet 0 + Decorate 118(@entryPointOutput) Location 0 + Decorate 123(g_sSamp) DescriptorSet 0 + Decorate 123(g_sSamp) Binding 0 + Decorate 126(g_tTexcdf4) DescriptorSet 0 + Decorate 129(g_tTexcdi4) DescriptorSet 0 + Decorate 132(g_tTexcdu4) DescriptorSet 0 + Decorate 135(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1di4a) DescriptorSet 0 + Decorate 141(g_tTex1du4a) DescriptorSet 0 + Decorate 144(g_tTex2df4a) DescriptorSet 0 + Decorate 147(g_tTex2di4a) DescriptorSet 0 + Decorate 150(g_tTex2du4a) DescriptorSet 0 + Decorate 153(g_tTexcdf4a) DescriptorSet 0 + Decorate 156(g_tTexcdi4a) DescriptorSet 0 + Decorate 159(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -490,53 +486,52 @@ gl_FragCoord origin is upper left 112: TypePointer Function 23(fvec4) 114: 11(int) Constant 1 115: TypePointer Function 6(float) - 117(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 118: TypePointer Output 117(PS_OUTPUT) -119(@entryPointOutput): 118(ptr) Variable Output - 122: TypeSampler - 123: TypePointer UniformConstant 122 - 124(g_sSamp): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdf4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdi4): 129(ptr) Variable UniformConstant - 131: TypeImage 15(int) Cube sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTexcdu4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1df4a): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1di4a): 138(ptr) Variable UniformConstant - 140: TypeImage 15(int) 1D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex1du4a): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2df4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2di4a): 147(ptr) Variable UniformConstant - 149: TypeImage 15(int) 2D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex2du4a): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdf4a): 153(ptr) Variable UniformConstant - 155: TypeImage 11(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdi4a): 156(ptr) Variable UniformConstant - 158: TypeImage 15(int) Cube array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTexcdu4a): 159(ptr) Variable UniformConstant - 161(c1): 17(ptr) Variable UniformConstant - 162(o1): 17(ptr) Variable UniformConstant - 163(o2): 13(ptr) Variable UniformConstant - 164(o3): 50(ptr) Variable UniformConstant - 165(o4): 80(ptr) Variable UniformConstant + 117: TypePointer Output 106(PS_OUTPUT) +118(@entryPointOutput): 117(ptr) Variable Output + 121: TypeSampler + 122: TypePointer UniformConstant 121 + 123(g_sSamp): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdf4): 125(ptr) Variable UniformConstant + 127: TypeImage 11(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdi4): 128(ptr) Variable UniformConstant + 130: TypeImage 15(int) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdu4): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 11(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 15(int) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2df4a): 143(ptr) Variable UniformConstant + 145: TypeImage 11(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2di4a): 146(ptr) Variable UniformConstant + 148: TypeImage 15(int) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2du4a): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdf4a): 152(ptr) Variable UniformConstant + 154: TypeImage 11(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdi4a): 155(ptr) Variable UniformConstant + 157: TypeImage 15(int) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdu4a): 158(ptr) Variable UniformConstant + 160(c1): 17(ptr) Variable UniformConstant + 161(o1): 17(ptr) Variable UniformConstant + 162(o2): 13(ptr) Variable UniformConstant + 163(o3): 50(ptr) Variable UniformConstant + 164(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -598,7 +593,7 @@ gl_FragCoord origin is upper left Store 113 111 116: 115(ptr) AccessChain 108(psout) 114 Store 116 110 - 120:106(PS_OUTPUT) Load 108(psout) - Store 119(@entryPointOutput) 120 + 119:106(PS_OUTPUT) Load 108(psout) + Store 118(@entryPointOutput) 119 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index da91781a..8cae6d41 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -343,14 +343,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 162 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 116 + EntryPoint Vertex 4 "main" 115 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -367,27 +367,25 @@ Shader version: 450 Name 106 "VS_OUTPUT" MemberName 106(VS_OUTPUT) 0 "Pos" Name 108 "vsout" - Name 114 "VS_OUTPUT" - MemberName 114(VS_OUTPUT) 0 "Pos" - Name 116 "@entryPointOutput" - Name 121 "g_sSamp" - Name 124 "g_tTexcdf4" - Name 127 "g_tTexcdi4" - Name 130 "g_tTexcdu4" - Name 133 "g_tTex1df4a" - Name 136 "g_tTex1di4a" - Name 139 "g_tTex1du4a" - Name 142 "g_tTex2df4a" - Name 145 "g_tTex2di4a" - Name 148 "g_tTex2du4a" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 158 "c1" - Name 159 "o1" - Name 160 "o2" - Name 161 "o3" - Name 162 "o4" + Name 115 "@entryPointOutput" + Name 120 "g_sSamp" + Name 123 "g_tTexcdf4" + Name 126 "g_tTexcdi4" + Name 129 "g_tTexcdu4" + Name 132 "g_tTex1df4a" + Name 135 "g_tTex1di4a" + Name 138 "g_tTex1du4a" + Name 141 "g_tTex2df4a" + Name 144 "g_tTex2di4a" + Name 147 "g_tTex2du4a" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" + Name 157 "c1" + Name 158 "o1" + Name 159 "o2" + Name 160 "o3" + Name 161 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -399,22 +397,21 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position - MemberDecorate 114(VS_OUTPUT) 0 BuiltIn Position - Decorate 116(@entryPointOutput) Location 0 - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 127(g_tTexcdi4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 136(g_tTex1di4a) DescriptorSet 0 - Decorate 139(g_tTex1du4a) DescriptorSet 0 - Decorate 142(g_tTex2df4a) DescriptorSet 0 - Decorate 145(g_tTex2di4a) DescriptorSet 0 - Decorate 148(g_tTex2du4a) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + Decorate 115(@entryPointOutput) Location 0 + Decorate 120(g_sSamp) DescriptorSet 0 + Decorate 120(g_sSamp) Binding 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 126(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 135(g_tTex1di4a) DescriptorSet 0 + Decorate 138(g_tTex1du4a) DescriptorSet 0 + Decorate 141(g_tTex2df4a) DescriptorSet 0 + Decorate 144(g_tTex2di4a) DescriptorSet 0 + Decorate 147(g_tTex2du4a) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -469,53 +466,52 @@ Shader version: 450 110: 6(float) Constant 0 111: 23(fvec4) ConstantComposite 110 110 110 110 112: TypePointer Function 23(fvec4) - 114(VS_OUTPUT): TypeStruct 23(fvec4) - 115: TypePointer Output 114(VS_OUTPUT) -116(@entryPointOutput): 115(ptr) Variable Output - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdf4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdi4): 126(ptr) Variable UniformConstant - 128: TypeImage 15(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdu4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 15(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 15(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 15(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158(c1): 17(ptr) Variable UniformConstant - 159(o1): 17(ptr) Variable UniformConstant - 160(o2): 13(ptr) Variable UniformConstant - 161(o3): 50(ptr) Variable UniformConstant - 162(o4): 80(ptr) Variable UniformConstant + 114: TypePointer Output 106(VS_OUTPUT) +115(@entryPointOutput): 114(ptr) Variable Output + 118: TypeSampler + 119: TypePointer UniformConstant 118 + 120(g_sSamp): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 124: TypeImage 11(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdi4): 125(ptr) Variable UniformConstant + 127: TypeImage 15(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1df4a): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1di4a): 134(ptr) Variable UniformConstant + 136: TypeImage 15(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1du4a): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 15(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 15(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 157(c1): 17(ptr) Variable UniformConstant + 158(o1): 17(ptr) Variable UniformConstant + 159(o2): 13(ptr) Variable UniformConstant + 160(o3): 50(ptr) Variable UniformConstant + 161(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function @@ -575,7 +571,7 @@ Shader version: 450 105: 43(ivec4) ImageFetch 100 102 Lod 104 113: 112(ptr) AccessChain 108(vsout) 109 Store 113 111 - 117:106(VS_OUTPUT) Load 108(vsout) - Store 116(@entryPointOutput) 117 + 116:106(VS_OUTPUT) Load 108(vsout) + Store 115(@entryPointOutput) 116 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 319347c5..9e14aef0 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -125,13 +125,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 72 +// Id's are bound by 71 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 56 + EntryPoint Fragment 4 "main" 55 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -145,26 +145,22 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 54 "PS_OUTPUT" - MemberName 54(PS_OUTPUT) 0 "Color" - MemberName 54(PS_OUTPUT) 1 "Depth" - Name 56 "@entryPointOutput" - Name 59 "g_tTexbf4_test" - Name 62 "c2" - Name 65 "c3" - Name 67 "c4" - Name 68 "o1" - Name 69 "o2" - Name 70 "o3" - Name 71 "o4" + Name 55 "@entryPointOutput" + Name 58 "g_tTexbf4_test" + Name 61 "c2" + Name 64 "c3" + Name 66 "c4" + Name 67 "o1" + Name 68 "o2" + Name 69 "o3" + Name 70 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 54(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 56(@entryPointOutput) Location 0 - Decorate 59(g_tTexbf4_test) DescriptorSet 0 - Decorate 59(g_tTexbf4_test) Binding 0 + Decorate 55(@entryPointOutput) Location 0 + Decorate 58(g_tTexbf4_test) DescriptorSet 0 + Decorate 58(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -197,22 +193,21 @@ gl_FragCoord origin is upper left 49: 7(fvec4) ConstantComposite 48 48 48 48 51: 15(int) Constant 1 52: TypePointer Function 6(float) - 54(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 55: TypePointer Output 54(PS_OUTPUT) -56(@entryPointOutput): 55(ptr) Variable Output -59(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 60: TypeVector 15(int) 2 - 61: TypePointer UniformConstant 60(ivec2) - 62(c2): 61(ptr) Variable UniformConstant - 63: TypeVector 15(int) 3 - 64: TypePointer UniformConstant 63(ivec3) - 65(c3): 64(ptr) Variable UniformConstant - 66: TypePointer UniformConstant 21(ivec4) - 67(c4): 66(ptr) Variable UniformConstant - 68(o1): 16(ptr) Variable UniformConstant - 69(o2): 61(ptr) Variable UniformConstant - 70(o3): 64(ptr) Variable UniformConstant - 71(o4): 66(ptr) Variable UniformConstant + 54: TypePointer Output 44(PS_OUTPUT) +55(@entryPointOutput): 54(ptr) Variable Output +58(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 59: TypeVector 15(int) 2 + 60: TypePointer UniformConstant 59(ivec2) + 61(c2): 60(ptr) Variable UniformConstant + 62: TypeVector 15(int) 3 + 63: TypePointer UniformConstant 62(ivec3) + 64(c3): 63(ptr) Variable UniformConstant + 65: TypePointer UniformConstant 21(ivec4) + 66(c4): 65(ptr) Variable UniformConstant + 67(o1): 16(ptr) Variable UniformConstant + 68(o2): 60(ptr) Variable UniformConstant + 69(o3): 63(ptr) Variable UniformConstant + 70(o4): 65(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -238,7 +233,7 @@ gl_FragCoord origin is upper left Store 50 49 53: 52(ptr) AccessChain 46(psout) 51 Store 53 48 - 57:44(PS_OUTPUT) Load 46(psout) - Store 56(@entryPointOutput) 57 + 56:44(PS_OUTPUT) Load 46(psout) + Store 55(@entryPointOutput) 56 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index f641fe40..7f32c688 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -377,7 +377,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 175 +// Id's are bound by 174 Capability Shader Capability ImageGatherExtended @@ -385,7 +385,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -407,25 +407,22 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "@entryPointOutput" - Name 136 "g_sSamp" - Name 139 "g_tTexcdf4" - Name 142 "g_tTexcdi4" - Name 145 "g_tTexcdu4" - Name 148 "g_tTex1df4a" - Name 151 "g_tTex1di4a" - Name 154 "g_tTex1du4a" - Name 157 "g_tTex2df4a" - Name 160 "g_tTex2di4a" - Name 163 "g_tTex2du4a" - Name 166 "g_tTexcdf4a" - Name 169 "g_tTexcdi4a" - Name 172 "g_tTexcdu4a" - Name 173 "c1" - Name 174 "o4" + Name 130 "@entryPointOutput" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" + Name 172 "c1" + Name 173 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -437,22 +434,21 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(@entryPointOutput) Location 0 - Decorate 136(g_sSamp) DescriptorSet 0 - Decorate 136(g_sSamp) Binding 0 - Decorate 139(g_tTexcdf4) DescriptorSet 0 - Decorate 142(g_tTexcdi4) DescriptorSet 0 - Decorate 145(g_tTexcdu4) DescriptorSet 0 - Decorate 148(g_tTex1df4a) DescriptorSet 0 - Decorate 151(g_tTex1di4a) DescriptorSet 0 - Decorate 154(g_tTex1du4a) DescriptorSet 0 - Decorate 157(g_tTex2df4a) DescriptorSet 0 - Decorate 160(g_tTex2di4a) DescriptorSet 0 - Decorate 163(g_tTex2du4a) DescriptorSet 0 - Decorate 166(g_tTexcdf4a) DescriptorSet 0 - Decorate 169(g_tTexcdi4a) DescriptorSet 0 - Decorate 172(g_tTexcdu4a) DescriptorSet 0 + Decorate 130(@entryPointOutput) Location 0 + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -512,50 +508,49 @@ gl_FragCoord origin is upper left 124: TypePointer Function 25(fvec4) 126: 11(int) Constant 1 127: TypePointer Function 6(float) - 129(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 130: TypePointer Output 129(PS_OUTPUT) -131(@entryPointOutput): 130(ptr) Variable Output - 134: TypeSampler - 135: TypePointer UniformConstant 134 - 136(g_sSamp): 135(ptr) Variable UniformConstant - 137: TypeImage 6(float) Cube sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTexcdf4): 138(ptr) Variable UniformConstant - 140: TypeImage 11(int) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdi4): 141(ptr) Variable UniformConstant - 143: TypeImage 15(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdu4): 144(ptr) Variable UniformConstant - 146: TypeImage 6(float) 1D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex1df4a): 147(ptr) Variable UniformConstant - 149: TypeImage 11(int) 1D array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTex1di4a): 150(ptr) Variable UniformConstant - 152: TypeImage 15(int) 1D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex1du4a): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) 2D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex2df4a): 156(ptr) Variable UniformConstant - 158: TypeImage 11(int) 2D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex2di4a): 159(ptr) Variable UniformConstant - 161: TypeImage 15(int) 2D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex2du4a): 162(ptr) Variable UniformConstant - 164: TypeImage 6(float) Cube array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTexcdf4a): 165(ptr) Variable UniformConstant - 167: TypeImage 11(int) Cube array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTexcdi4a): 168(ptr) Variable UniformConstant - 170: TypeImage 15(int) Cube array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTexcdu4a): 171(ptr) Variable UniformConstant - 173(c1): 17(ptr) Variable UniformConstant - 174(o4): 88(ptr) Variable UniformConstant + 129: TypePointer Output 118(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 15(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 15(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 15(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 15(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant + 172(c1): 17(ptr) Variable UniformConstant + 173(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -626,7 +621,7 @@ gl_FragCoord origin is upper left Store 125 123 128: 127(ptr) AccessChain 120(psout) 126 Store 128 122 - 132:118(PS_OUTPUT) Load 120(psout) - Store 131(@entryPointOutput) 132 + 131:118(PS_OUTPUT) Load 120(psout) + Store 130(@entryPointOutput) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index e2e3c601..1997d3df 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -305,7 +305,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 151 Capability Shader Capability ImageGatherExtended @@ -313,7 +313,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 97 + EntryPoint Fragment 4 "main" 96 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -330,30 +330,27 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 95 "PS_OUTPUT" - MemberName 95(PS_OUTPUT) 0 "Color" - MemberName 95(PS_OUTPUT) 1 "Depth" - Name 97 "@entryPointOutput" - Name 102 "g_sSamp" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4" - Name 111 "g_tTex1du4" - Name 114 "g_tTex2df4" - Name 117 "g_tTex2di4" - Name 120 "g_tTex2du4" - Name 123 "g_tTex3df4" - Name 126 "g_tTex3di4" - Name 129 "g_tTex3du4" - Name 132 "g_tTexcdf4" - Name 135 "g_tTexcdi4" - Name 138 "g_tTexcdu4" - Name 141 "g_tTexcdf4a" - Name 144 "g_tTexcdi4a" - Name 147 "g_tTexcdu4a" - Name 148 "c1" - Name 149 "c2" - Name 150 "o3" - Name 151 "o4" + Name 96 "@entryPointOutput" + Name 101 "g_sSamp" + Name 104 "g_tTex1df4" + Name 107 "g_tTex1di4" + Name 110 "g_tTex1du4" + Name 113 "g_tTex2df4" + Name 116 "g_tTex2di4" + Name 119 "g_tTex2du4" + Name 122 "g_tTex3df4" + Name 125 "g_tTex3di4" + Name 128 "g_tTex3du4" + Name 131 "g_tTexcdf4" + Name 134 "g_tTexcdi4" + Name 137 "g_tTexcdu4" + Name 140 "g_tTexcdf4a" + Name 143 "g_tTexcdi4a" + Name 146 "g_tTexcdu4a" + Name 147 "c1" + Name 148 "c2" + Name 149 "o3" + Name 150 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -361,26 +358,25 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 95(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 97(@entryPointOutput) Location 0 - Decorate 102(g_sSamp) DescriptorSet 0 - Decorate 102(g_sSamp) Binding 0 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4) DescriptorSet 0 - Decorate 111(g_tTex1du4) DescriptorSet 0 - Decorate 114(g_tTex2df4) DescriptorSet 0 - Decorate 117(g_tTex2di4) DescriptorSet 0 - Decorate 120(g_tTex2du4) DescriptorSet 0 - Decorate 123(g_tTex3df4) DescriptorSet 0 - Decorate 126(g_tTex3di4) DescriptorSet 0 - Decorate 129(g_tTex3du4) DescriptorSet 0 - Decorate 132(g_tTexcdf4) DescriptorSet 0 - Decorate 135(g_tTexcdi4) DescriptorSet 0 - Decorate 138(g_tTexcdu4) DescriptorSet 0 - Decorate 141(g_tTexcdf4a) DescriptorSet 0 - Decorate 144(g_tTexcdi4a) DescriptorSet 0 - Decorate 147(g_tTexcdu4a) DescriptorSet 0 + Decorate 96(@entryPointOutput) Location 0 + Decorate 101(g_sSamp) DescriptorSet 0 + Decorate 101(g_sSamp) Binding 0 + Decorate 104(g_tTex1df4) DescriptorSet 0 + Decorate 104(g_tTex1df4) Binding 0 + Decorate 107(g_tTex1di4) DescriptorSet 0 + Decorate 110(g_tTex1du4) DescriptorSet 0 + Decorate 113(g_tTex2df4) DescriptorSet 0 + Decorate 116(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 122(g_tTex3df4) DescriptorSet 0 + Decorate 125(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 131(g_tTexcdf4) DescriptorSet 0 + Decorate 134(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTexcdf4a) DescriptorSet 0 + Decorate 143(g_tTexcdi4a) DescriptorSet 0 + Decorate 146(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -427,61 +423,60 @@ gl_FragCoord origin is upper left 90: TypePointer Function 25(fvec4) 92: 11(int) Constant 1 93: TypePointer Function 6(float) - 95(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 96: TypePointer Output 95(PS_OUTPUT) -97(@entryPointOutput): 96(ptr) Variable Output - 100: TypeSampler - 101: TypePointer UniformConstant 100 - 102(g_sSamp): 101(ptr) Variable UniformConstant - 103: TypeImage 6(float) 1D sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTex1df4): 104(ptr) Variable UniformConstant - 106: TypeImage 11(int) 1D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex1di4): 107(ptr) Variable UniformConstant - 109: TypeImage 18(int) 1D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex1du4): 110(ptr) Variable UniformConstant - 112: TypeImage 6(float) 2D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex2df4): 113(ptr) Variable UniformConstant - 115: TypeImage 11(int) 2D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex2di4): 116(ptr) Variable UniformConstant - 118: TypeImage 18(int) 2D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex2du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) 3D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex3df4): 122(ptr) Variable UniformConstant - 124: TypeImage 11(int) 3D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex3di4): 125(ptr) Variable UniformConstant - 127: TypeImage 18(int) 3D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex3du4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdf4): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdi4): 134(ptr) Variable UniformConstant - 136: TypeImage 18(int) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdu4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) Cube array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTexcdf4a): 140(ptr) Variable UniformConstant - 142: TypeImage 11(int) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdi4a): 143(ptr) Variable UniformConstant - 145: TypeImage 18(int) Cube array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTexcdu4a): 146(ptr) Variable UniformConstant - 148(c1): 20(ptr) Variable UniformConstant - 149(c2): 60(ptr) Variable UniformConstant - 150(o3): 13(ptr) Variable UniformConstant - 151(o4): 53(ptr) Variable UniformConstant + 95: TypePointer Output 84(PS_OUTPUT) +96(@entryPointOutput): 95(ptr) Variable Output + 99: TypeSampler + 100: TypePointer UniformConstant 99 + 101(g_sSamp): 100(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTex1df4): 103(ptr) Variable UniformConstant + 105: TypeImage 11(int) 1D sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTex1di4): 106(ptr) Variable UniformConstant + 108: TypeImage 18(int) 1D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex1du4): 109(ptr) Variable UniformConstant + 111: TypeImage 6(float) 2D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex2df4): 112(ptr) Variable UniformConstant + 114: TypeImage 11(int) 2D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex2di4): 115(ptr) Variable UniformConstant + 117: TypeImage 18(int) 2D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) 3D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex3df4): 121(ptr) Variable UniformConstant + 123: TypeImage 11(int) 3D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex3di4): 124(ptr) Variable UniformConstant + 126: TypeImage 18(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdf4): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdi4): 133(ptr) Variable UniformConstant + 135: TypeImage 18(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) Cube array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTexcdf4a): 139(ptr) Variable UniformConstant + 141: TypeImage 11(int) Cube array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTexcdi4a): 142(ptr) Variable UniformConstant + 144: TypeImage 18(int) Cube array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTexcdu4a): 145(ptr) Variable UniformConstant + 147(c1): 20(ptr) Variable UniformConstant + 148(c2): 60(ptr) Variable UniformConstant + 149(o3): 13(ptr) Variable UniformConstant + 150(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -531,7 +526,7 @@ gl_FragCoord origin is upper left Store 91 89 94: 93(ptr) AccessChain 86(psout) 92 Store 94 88 - 98:84(PS_OUTPUT) Load 86(psout) - Store 97(@entryPointOutput) 98 + 97:84(PS_OUTPUT) Load 86(psout) + Store 96(@entryPointOutput) 97 Return FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 18c16b8f..ea6c4dd6 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -137,12 +137,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 43 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 41 + EntryPoint Fragment 4 "main" 40 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -157,10 +157,8 @@ gl_FragCoord origin is upper left Name 30 "PS_OUTPUT" MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" - Name 39 "PS_OUTPUT" - MemberName 39(PS_OUTPUT) 0 "color" - Name 41 "@entryPointOutput" - Decorate 41(@entryPointOutput) Location 0 + Name 40 "@entryPointOutput" + Decorate 40(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -182,9 +180,8 @@ gl_FragCoord origin is upper left 31: TypePointer Function 30(PS_OUTPUT) 33: 19(int) Constant 0 37: TypePointer Function 29(fvec4) - 39(PS_OUTPUT): TypeStruct 29(fvec4) - 40: TypePointer Output 39(PS_OUTPUT) -41(@entryPointOutput): 40(ptr) Variable Output + 39: TypePointer Output 30(PS_OUTPUT) +40(@entryPointOutput): 39(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -211,7 +208,7 @@ gl_FragCoord origin is upper left 36: 29(fvec4) CompositeConstruct 35 35 35 35 38: 37(ptr) AccessChain 32(ps_output) 33 Store 38 36 - 42:30(PS_OUTPUT) Load 32(ps_output) - Store 41(@entryPointOutput) 42 + 41:30(PS_OUTPUT) Load 32(ps_output) + Store 40(@entryPointOutput) 41 Return FunctionEnd diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 41fc3400..94a061f5 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -83,12 +83,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 31 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 28 + EntryPoint Fragment 4 "main" 27 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -96,13 +96,9 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "Color" MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" - Name 26 "PS_OUTPUT" - MemberName 26(PS_OUTPUT) 0 "Color" - MemberName 26(PS_OUTPUT) 1 "Depth" - Name 28 "@entryPointOutput" + Name 27 "@entryPointOutput" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 26(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 28(@entryPointOutput) Location 0 + Decorate 27(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -118,9 +114,8 @@ gl_FragCoord origin is upper left 21: TypePointer Function 11(fvec4) 23: 6(int) Constant 1 24: TypePointer Function 10(float) - 26(PS_OUTPUT): TypeStruct 11(fvec4) 10(float) - 27: TypePointer Output 26(PS_OUTPUT) -28(@entryPointOutput): 27(ptr) Variable Output + 26: TypePointer Output 12(PS_OUTPUT) +27(@entryPointOutput): 26(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function @@ -133,7 +128,7 @@ gl_FragCoord origin is upper left Store 22 20 25: 24(ptr) AccessChain 14(psout) 23 Store 25 19 - 29:12(PS_OUTPUT) Load 14(psout) - Store 28(@entryPointOutput) 29 + 28:12(PS_OUTPUT) Load 14(psout) + Store 27(@entryPointOutput) 28 Return FunctionEnd diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 51788101..1cf38b36 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -61,12 +61,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 31 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 + EntryPoint Fragment 4 "main" 26 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -75,11 +75,9 @@ gl_FragCoord origin is upper left Name 16 "PS_OUTPUT" MemberName 16(PS_OUTPUT) 0 "color" Name 18 "ps_output" - Name 25 "PS_OUTPUT" - MemberName 25(PS_OUTPUT) 0 "color" - Name 27 "@entryPointOutput" - Name 31 "precisefloat" - Decorate 27(@entryPointOutput) Location 0 + Name 26 "@entryPointOutput" + Name 30 "precisefloat" + Decorate 26(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -95,18 +93,17 @@ gl_FragCoord origin is upper left 21: 6(float) Constant 1065353216 22: 15(fvec4) ConstantComposite 21 21 21 21 23: TypePointer Function 15(fvec4) - 25(PS_OUTPUT): TypeStruct 15(fvec4) - 26: TypePointer Output 25(PS_OUTPUT) -27(@entryPointOutput): 26(ptr) Variable Output - 30: TypePointer Private 6(float) -31(precisefloat): 30(ptr) Variable Private + 25: TypePointer Output 16(PS_OUTPUT) +26(@entryPointOutput): 25(ptr) Variable Output + 29: TypePointer Private 6(float) +30(precisefloat): 29(ptr) Variable Private 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function 24: 23(ptr) AccessChain 18(ps_output) 20 Store 24 22 - 28:16(PS_OUTPUT) Load 18(ps_output) - Store 27(@entryPointOutput) 28 + 27:16(PS_OUTPUT) Load 18(ps_output) + Store 26(@entryPointOutput) 27 Return FunctionEnd 13(MyFunction(f1;vf3;): 2 Function None 10 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index b8c68e74..5586d57a 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -1033,13 +1033,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 481 +// Id's are bound by 480 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 478 + EntryPoint Fragment 4 "main" 477 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1128,10 +1128,8 @@ gl_FragCoord origin is upper left Name 471 "PS_OUTPUT" MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" - Name 476 "PS_OUTPUT" - MemberName 476(PS_OUTPUT) 0 "Color" - Name 478 "@entryPointOutput" - Decorate 478(@entryPointOutput) Location 0 + Name 477 "@entryPointOutput" + Decorate 477(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1202,9 +1200,8 @@ gl_FragCoord origin is upper left 465: 6(float) Constant 1080452710 471(PS_OUTPUT): TypeStruct 462(fvec4) 472: TypePointer Function 471(PS_OUTPUT) - 476(PS_OUTPUT): TypeStruct 462(fvec4) - 477: TypePointer Output 476(PS_OUTPUT) -478(@entryPointOutput): 477(ptr) Variable Output + 476: TypePointer Output 471(PS_OUTPUT) +477(@entryPointOutput): 476(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function @@ -1470,8 +1467,8 @@ gl_FragCoord origin is upper left 474: 462(fvec4) Load 464(outval) 475: 463(ptr) AccessChain 473(psout) 149 Store 475 474 - 479:471(PS_OUTPUT) Load 473(psout) - Store 478(@entryPointOutput) 479 + 478:471(PS_OUTPUT) Load 473(psout) + Store 477(@entryPointOutput) 478 Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 48c5343a..9d367f09 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -285,14 +285,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 135 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -318,11 +318,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "@entryPointOutput" - Name 134 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -336,10 +333,9 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(@entryPointOutput) Location 0 - Decorate 134(g_tTex1df4a) DescriptorSet 0 - Decorate 134(g_tTex1df4a) Binding 1 + Decorate 130(@entryPointOutput) Location 0 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -417,10 +413,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 25(int) Constant 1 127: TypePointer Function 6(float) - 129(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 130: TypePointer Output 129(PS_OUTPUT) -131(@entryPointOutput): 130(ptr) Variable Output -134(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -482,7 +477,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 132:120(PS_OUTPUT) Load 122(psout) - Store 131(@entryPointOutput) 132 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index ee209ec8..4423c5c3 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -513,13 +513,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 187 +// Id's are bound by 186 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 181 + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -565,13 +565,10 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 179 "PS_OUTPUT" - MemberName 179(PS_OUTPUT) 0 "Color" - MemberName 179(PS_OUTPUT) 1 "Depth" - Name 181 "@entryPointOutput" - Name 184 "g_sSamp2d" - Name 185 "g_sSamp2D_b" - Name 186 "g_tTex1df4a" + Name 180 "@entryPointOutput" + Name 183 "g_sSamp2d" + Name 184 "g_sSamp2D_b" + Name 185 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -588,12 +585,11 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 179(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 181(@entryPointOutput) Location 0 - Decorate 184(g_sSamp2d) DescriptorSet 0 - Decorate 185(g_sSamp2D_b) DescriptorSet 0 - Decorate 186(g_tTex1df4a) DescriptorSet 0 - Decorate 186(g_tTex1df4a) Binding 1 + Decorate 180(@entryPointOutput) Location 0 + Decorate 183(g_sSamp2d) DescriptorSet 0 + Decorate 184(g_sSamp2D_b) DescriptorSet 0 + Decorate 185(g_tTex1df4a) DescriptorSet 0 + Decorate 185(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -693,12 +689,11 @@ gl_FragCoord origin is upper left 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) - 180: TypePointer Output 179(PS_OUTPUT) -181(@entryPointOutput): 180(ptr) Variable Output - 184(g_sSamp2d): 44(ptr) Variable UniformConstant -185(g_sSamp2D_b): 44(ptr) Variable UniformConstant -186(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(PS_OUTPUT) +180(@entryPointOutput): 179(ptr) Variable Output + 183(g_sSamp2d): 44(ptr) Variable UniformConstant +184(g_sSamp2D_b): 44(ptr) Variable UniformConstant +185(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -803,7 +798,7 @@ gl_FragCoord origin is upper left Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 182:171(PS_OUTPUT) Load 173(psout) - Store 181(@entryPointOutput) 182 + 181:171(PS_OUTPUT) Load 173(psout) + Store 180(@entryPointOutput) 181 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 62aaa6f0..80846509 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -327,13 +327,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -359,14 +359,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 135 "PS_OUTPUT" - MemberName 135(PS_OUTPUT) 0 "Color" - MemberName 135(PS_OUTPUT) 1 "Depth" - Name 137 "@entryPointOutput" - Name 140 "g_tTex1df4a" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -380,13 +377,12 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 135(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(@entryPointOutput) Location 0 - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 140(g_tTex1df4a) Binding 1 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 136(@entryPointOutput) Location 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -470,19 +466,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 136: TypePointer Output 135(PS_OUTPUT) -137(@entryPointOutput): 136(ptr) Variable Output -140(g_tTex1df4a): 11(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 21(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 36(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 21(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 36(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -544,7 +539,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 22 Store 134 130 - 138:127(PS_OUTPUT) Load 129(psout) - Store 137(@entryPointOutput) 138 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 2d031eb8..3887bbab 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -237,13 +237,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 107 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -263,11 +263,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 101 "PS_OUTPUT" - MemberName 101(PS_OUTPUT) 0 "Color" - MemberName 101(PS_OUTPUT) 1 "Depth" - Name 103 "@entryPointOutput" - Name 106 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -278,10 +275,9 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 101(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(@entryPointOutput) Location 0 - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 + Decorate 102(@entryPointOutput) Location 0 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -346,10 +342,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 102: TypePointer Output 101(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output -106(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -393,7 +388,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 39 Store 100 96 - 104:93(PS_OUTPUT) Load 95(psout) - Store 103(@entryPointOutput) 104 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index a33dd9e8..6ed1f206 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -321,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 135 +// Id's are bound by 134 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 + EntryPoint Fragment 4 "main" 130 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -354,11 +354,8 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "@entryPointOutput" - Name 134 "g_tTex1df4a" + Name 130 "@entryPointOutput" + Name 133 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -372,10 +369,9 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(@entryPointOutput) Location 0 - Decorate 134(g_tTex1df4a) DescriptorSet 0 - Decorate 134(g_tTex1df4a) Binding 1 + Decorate 130(@entryPointOutput) Location 0 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 133(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -453,10 +449,9 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 26(int) Constant 1 127: TypePointer Function 6(float) - 129(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 130: TypePointer Output 129(PS_OUTPUT) -131(@entryPointOutput): 130(ptr) Variable Output -134(g_tTex1df4a): 11(ptr) Variable UniformConstant + 129: TypePointer Output 120(PS_OUTPUT) +130(@entryPointOutput): 129(ptr) Variable Output +133(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -518,7 +513,7 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 132:120(PS_OUTPUT) Load 122(psout) - Store 131(@entryPointOutput) 132 + 131:120(PS_OUTPUT) Load 122(psout) + Store 130(@entryPointOutput) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 076bfff3..26ebe477 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -387,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 159 +// Id's are bound by 158 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 155 + EntryPoint Fragment 4 "main" 154 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -425,11 +425,8 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 153 "PS_OUTPUT" - MemberName 153(PS_OUTPUT) 0 "Color" - MemberName 153(PS_OUTPUT) 1 "Depth" - Name 155 "@entryPointOutput" - Name 158 "g_tTex1df4a" + Name 154 "@entryPointOutput" + Name 157 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -446,10 +443,9 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 153(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 155(@entryPointOutput) Location 0 - Decorate 158(g_tTex1df4a) DescriptorSet 0 - Decorate 158(g_tTex1df4a) Binding 1 + Decorate 154(@entryPointOutput) Location 0 + Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 157(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -536,10 +532,9 @@ gl_FragCoord origin is upper left 148: 7(fvec4) ConstantComposite 147 147 147 147 150: 23(int) Constant 1 151: TypePointer Function 6(float) - 153(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 154: TypePointer Output 153(PS_OUTPUT) -155(@entryPointOutput): 154(ptr) Variable Output -158(g_tTex1df4a): 11(ptr) Variable UniformConstant + 153: TypePointer Output 143(PS_OUTPUT) +154(@entryPointOutput): 153(ptr) Variable Output +157(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -619,7 +614,7 @@ gl_FragCoord origin is upper left Store 149 148 152: 151(ptr) AccessChain 145(psout) 150 Store 152 147 - 156:143(PS_OUTPUT) Load 145(psout) - Store 155(@entryPointOutput) 156 + 155:143(PS_OUTPUT) Load 145(psout) + Store 154(@entryPointOutput) 155 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 10281a86..c7e379de 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -363,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 149 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 + EntryPoint Fragment 4 "main" 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -395,14 +395,11 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 135 "PS_OUTPUT" - MemberName 135(PS_OUTPUT) 0 "Color" - MemberName 135(PS_OUTPUT) 1 "Depth" - Name 137 "@entryPointOutput" - Name 140 "g_tTex1df4a" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" + Name 136 "@entryPointOutput" + Name 139 "g_tTex1df4a" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -416,13 +413,12 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 135(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(@entryPointOutput) Location 0 - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 140(g_tTex1df4a) Binding 1 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 136(@entryPointOutput) Location 0 + Decorate 139(g_tTex1df4a) DescriptorSet 0 + Decorate 139(g_tTex1df4a) Binding 1 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -506,19 +502,18 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 136: TypePointer Output 135(PS_OUTPUT) -137(@entryPointOutput): 136(ptr) Variable Output -140(g_tTex1df4a): 11(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 22(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 37(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 135: TypePointer Output 127(PS_OUTPUT) +136(@entryPointOutput): 135(ptr) Variable Output +139(g_tTex1df4a): 11(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 22(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 37(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -580,7 +575,7 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 23 Store 134 130 - 138:127(PS_OUTPUT) Load 129(psout) - Store 137(@entryPointOutput) 138 + 137:127(PS_OUTPUT) Load 129(psout) + Store 136(@entryPointOutput) 137 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index c33e8dc4..d2955b0a 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 107 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 102 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -287,11 +287,8 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 101 "PS_OUTPUT" - MemberName 101(PS_OUTPUT) 0 "Color" - MemberName 101(PS_OUTPUT) 1 "Depth" - Name 103 "@entryPointOutput" - Name 106 "g_tTex1df4a" + Name 102 "@entryPointOutput" + Name 105 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -302,10 +299,9 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 101(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(@entryPointOutput) Location 0 - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 + Decorate 102(@entryPointOutput) Location 0 + Decorate 105(g_tTex1df4a) DescriptorSet 0 + Decorate 105(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -370,10 +366,9 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 102: TypePointer Output 101(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output -106(g_tTex1df4a): 11(ptr) Variable UniformConstant + 101: TypePointer Output 93(PS_OUTPUT) +102(@entryPointOutput): 101(ptr) Variable Output +105(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -417,7 +412,7 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 40 Store 100 96 - 104:93(PS_OUTPUT) Load 95(psout) - Store 103(@entryPointOutput) 104 + 103:93(PS_OUTPUT) Load 95(psout) + Store 102(@entryPointOutput) 103 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index c3c15f01..847e2916 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -361,14 +361,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 180 +// Id's are bound by 179 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -394,22 +394,19 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 139 "PS_OUTPUT" - MemberName 139(PS_OUTPUT) 0 "Color" - MemberName 139(PS_OUTPUT) 1 "Depth" - Name 141 "@entryPointOutput" - Name 146 "g_tTex1df4" - Name 149 "g_tTex1di4" - Name 152 "g_tTex1du4" - Name 155 "g_tTex2df4" - Name 158 "g_tTex2di4" - Name 161 "g_tTex2du4" - Name 164 "g_tTex3df4" - Name 167 "g_tTex3di4" - Name 170 "g_tTex3du4" - Name 173 "g_tTexcdf4" - Name 176 "g_tTexcdi4" - Name 179 "g_tTexcdu4" + Name 140 "@entryPointOutput" + Name 145 "g_tTex1df4" + Name 148 "g_tTex1di4" + Name 151 "g_tTex1du4" + Name 154 "g_tTex2df4" + Name 157 "g_tTex2di4" + Name 160 "g_tTex2du4" + Name 163 "g_tTex3df4" + Name 166 "g_tTex3di4" + Name 169 "g_tTex3du4" + Name 172 "g_tTexcdf4" + Name 175 "g_tTexcdi4" + Name 178 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -422,21 +419,20 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 139(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(@entryPointOutput) Location 0 - Decorate 146(g_tTex1df4) DescriptorSet 0 - Decorate 146(g_tTex1df4) Binding 0 - Decorate 149(g_tTex1di4) DescriptorSet 0 - Decorate 152(g_tTex1du4) DescriptorSet 0 - Decorate 155(g_tTex2df4) DescriptorSet 0 - Decorate 158(g_tTex2di4) DescriptorSet 0 - Decorate 161(g_tTex2du4) DescriptorSet 0 - Decorate 164(g_tTex3df4) DescriptorSet 0 - Decorate 167(g_tTex3di4) DescriptorSet 0 - Decorate 170(g_tTex3du4) DescriptorSet 0 - Decorate 173(g_tTexcdf4) DescriptorSet 0 - Decorate 176(g_tTexcdi4) DescriptorSet 0 - Decorate 179(g_tTexcdu4) DescriptorSet 0 + Decorate 140(@entryPointOutput) Location 0 + Decorate 145(g_tTex1df4) DescriptorSet 0 + Decorate 145(g_tTex1df4) Binding 0 + Decorate 148(g_tTex1di4) DescriptorSet 0 + Decorate 151(g_tTex1du4) DescriptorSet 0 + Decorate 154(g_tTex2df4) DescriptorSet 0 + Decorate 157(g_tTex2di4) DescriptorSet 0 + Decorate 160(g_tTex2du4) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 166(g_tTex3di4) DescriptorSet 0 + Decorate 169(g_tTex3du4) DescriptorSet 0 + Decorate 172(g_tTexcdf4) DescriptorSet 0 + Decorate 175(g_tTexcdi4) DescriptorSet 0 + Decorate 178(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -509,45 +505,44 @@ gl_FragCoord origin is upper left 134: 102(fvec4) ConstantComposite 133 133 133 133 135: TypePointer Function 102(fvec4) 137: 29(int) Constant 1 - 139(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) - 140: TypePointer Output 139(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output - 144: TypeImage 6(float) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1df4): 145(ptr) Variable UniformConstant - 147: TypeImage 29(int) 1D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex1di4): 148(ptr) Variable UniformConstant - 150: TypeImage 42(int) 1D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex1du4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2df4): 154(ptr) Variable UniformConstant - 156: TypeImage 29(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex2di4): 157(ptr) Variable UniformConstant - 159: TypeImage 42(int) 2D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex2du4): 160(ptr) Variable UniformConstant - 162: TypeImage 6(float) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3df4): 163(ptr) Variable UniformConstant - 165: TypeImage 29(int) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3di4): 166(ptr) Variable UniformConstant - 168: TypeImage 42(int) 3D sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTex3du4): 169(ptr) Variable UniformConstant - 171: TypeImage 6(float) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdf4): 172(ptr) Variable UniformConstant - 174: TypeImage 29(int) Cube sampled format:Unknown - 175: TypePointer UniformConstant 174 - 176(g_tTexcdi4): 175(ptr) Variable UniformConstant - 177: TypeImage 42(int) Cube sampled format:Unknown - 178: TypePointer UniformConstant 177 - 179(g_tTexcdu4): 178(ptr) Variable UniformConstant + 139: TypePointer Output 129(PS_OUTPUT) +140(@entryPointOutput): 139(ptr) Variable Output + 143: TypeImage 6(float) 1D sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTex1df4): 144(ptr) Variable UniformConstant + 146: TypeImage 29(int) 1D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex1di4): 147(ptr) Variable UniformConstant + 149: TypeImage 42(int) 1D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex1du4): 150(ptr) Variable UniformConstant + 152: TypeImage 6(float) 2D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex2df4): 153(ptr) Variable UniformConstant + 155: TypeImage 29(int) 2D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex2di4): 156(ptr) Variable UniformConstant + 158: TypeImage 42(int) 2D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex2du4): 159(ptr) Variable UniformConstant + 161: TypeImage 6(float) 3D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 164: TypeImage 29(int) 3D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex3di4): 165(ptr) Variable UniformConstant + 167: TypeImage 42(int) 3D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex3du4): 168(ptr) Variable UniformConstant + 170: TypeImage 6(float) Cube sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTexcdf4): 171(ptr) Variable UniformConstant + 173: TypeImage 29(int) Cube sampled format:Unknown + 174: TypePointer UniformConstant 173 + 175(g_tTexcdi4): 174(ptr) Variable UniformConstant + 176: TypeImage 42(int) Cube sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTexcdu4): 177(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -624,7 +619,7 @@ gl_FragCoord origin is upper left Store 136 134 138: 7(ptr) AccessChain 131(psout) 137 Store 138 133 - 142:129(PS_OUTPUT) Load 131(psout) - Store 141(@entryPointOutput) 142 + 141:129(PS_OUTPUT) Load 131(psout) + Store 140(@entryPointOutput) 141 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 4cab81cc..ab624e24 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -343,14 +343,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 + EntryPoint Fragment 4 "main" 138 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -376,22 +376,19 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 137 "PS_OUTPUT" - MemberName 137(PS_OUTPUT) 0 "Color" - MemberName 137(PS_OUTPUT) 1 "Depth" - Name 139 "@entryPointOutput" - Name 144 "g_tTex3df4" - Name 147 "g_tTex3di4" - Name 150 "g_tTex3du4" - Name 153 "g_tTex1df4a" - Name 156 "g_tTex1di4a" - Name 159 "g_tTex1du4a" - Name 162 "g_tTex2df4a" - Name 165 "g_tTex2di4a" - Name 168 "g_tTex2du4a" - Name 171 "g_tTexcdf4a" - Name 174 "g_tTexcdi4a" - Name 177 "g_tTexcdu4a" + Name 138 "@entryPointOutput" + Name 143 "g_tTex3df4" + Name 146 "g_tTex3di4" + Name 149 "g_tTex3du4" + Name 152 "g_tTex1df4a" + Name 155 "g_tTex1di4a" + Name 158 "g_tTex1du4a" + Name 161 "g_tTex2df4a" + Name 164 "g_tTex2di4a" + Name 167 "g_tTex2du4a" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -405,20 +402,19 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 137(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(@entryPointOutput) Location 0 - Decorate 144(g_tTex3df4) DescriptorSet 0 - Decorate 147(g_tTex3di4) DescriptorSet 0 - Decorate 150(g_tTex3du4) DescriptorSet 0 - Decorate 153(g_tTex1df4a) DescriptorSet 0 - Decorate 156(g_tTex1di4a) DescriptorSet 0 - Decorate 159(g_tTex1du4a) DescriptorSet 0 - Decorate 162(g_tTex2df4a) DescriptorSet 0 - Decorate 165(g_tTex2di4a) DescriptorSet 0 - Decorate 168(g_tTex2du4a) DescriptorSet 0 - Decorate 171(g_tTexcdf4a) DescriptorSet 0 - Decorate 174(g_tTexcdi4a) DescriptorSet 0 - Decorate 177(g_tTexcdu4a) DescriptorSet 0 + Decorate 138(@entryPointOutput) Location 0 + Decorate 143(g_tTex3df4) DescriptorSet 0 + Decorate 146(g_tTex3di4) DescriptorSet 0 + Decorate 149(g_tTex3du4) DescriptorSet 0 + Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1di4a) DescriptorSet 0 + Decorate 158(g_tTex1du4a) DescriptorSet 0 + Decorate 161(g_tTex2df4a) DescriptorSet 0 + Decorate 164(g_tTex2di4a) DescriptorSet 0 + Decorate 167(g_tTex2du4a) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -489,45 +485,44 @@ gl_FragCoord origin is upper left 132: 126(fvec4) ConstantComposite 131 131 131 131 133: TypePointer Function 126(fvec4) 135: 25(int) Constant 1 - 137(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) - 138: TypePointer Output 137(PS_OUTPUT) -139(@entryPointOutput): 138(ptr) Variable Output - 142: TypeImage 6(float) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3df4): 143(ptr) Variable UniformConstant - 145: TypeImage 25(int) 3D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex3di4): 146(ptr) Variable UniformConstant - 148: TypeImage 37(int) 3D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex3du4): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1df4a): 152(ptr) Variable UniformConstant - 154: TypeImage 25(int) 1D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex1di4a): 155(ptr) Variable UniformConstant - 157: TypeImage 37(int) 1D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex1du4a): 158(ptr) Variable UniformConstant - 160: TypeImage 6(float) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2df4a): 161(ptr) Variable UniformConstant - 163: TypeImage 25(int) 2D array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTex2di4a): 164(ptr) Variable UniformConstant - 166: TypeImage 37(int) 2D array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTex2du4a): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdf4a): 170(ptr) Variable UniformConstant - 172: TypeImage 25(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdi4a): 173(ptr) Variable UniformConstant - 175: TypeImage 37(int) Cube array sampled format:Unknown - 176: TypePointer UniformConstant 175 -177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 137: TypePointer Output 127(PS_OUTPUT) +138(@entryPointOutput): 137(ptr) Variable Output + 141: TypeImage 6(float) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3df4): 142(ptr) Variable UniformConstant + 144: TypeImage 25(int) 3D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex3di4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) 3D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex3du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1df4a): 151(ptr) Variable UniformConstant + 153: TypeImage 25(int) 1D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex1di4a): 154(ptr) Variable UniformConstant + 156: TypeImage 37(int) 1D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex1du4a): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2df4a): 160(ptr) Variable UniformConstant + 162: TypeImage 25(int) 2D array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTex2di4a): 163(ptr) Variable UniformConstant + 165: TypeImage 37(int) 2D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex2du4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 25(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 37(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -604,7 +599,7 @@ gl_FragCoord origin is upper left Store 134 132 136: 7(ptr) AccessChain 129(psout) 135 Store 136 131 - 140:127(PS_OUTPUT) Load 129(psout) - Store 139(@entryPointOutput) 140 + 139:127(PS_OUTPUT) Load 129(psout) + Store 138(@entryPointOutput) 139 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 0ebe3e5f..3c5a9143 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -289,14 +289,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 151 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -316,25 +316,22 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 102 "PS_OUTPUT" - MemberName 102(PS_OUTPUT) 0 "Color" - MemberName 102(PS_OUTPUT) 1 "Depth" - Name 104 "@entryPointOutput" - Name 109 "g_tTex3df4" - Name 112 "g_tTex3di4" - Name 115 "g_tTex3du4" - Name 118 "g_tTexcdf4" - Name 121 "g_tTexcdi4" - Name 124 "g_tTexcdu4" - Name 127 "g_tTex1df4a" - Name 130 "g_tTex1di4a" - Name 133 "g_tTex1du4a" - Name 136 "g_tTex2df4a" - Name 139 "g_tTex2di4a" - Name 142 "g_tTex2du4a" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" + Name 103 "@entryPointOutput" + Name 108 "g_tTex3df4" + Name 111 "g_tTex3di4" + Name 114 "g_tTex3du4" + Name 117 "g_tTexcdf4" + Name 120 "g_tTexcdi4" + Name 123 "g_tTexcdu4" + Name 126 "g_tTex1df4a" + Name 129 "g_tTex1di4a" + Name 132 "g_tTex1du4a" + Name 135 "g_tTex2df4a" + Name 138 "g_tTex2di4a" + Name 141 "g_tTex2du4a" + Name 144 "g_tTexcdf4a" + Name 147 "g_tTexcdi4a" + Name 150 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -345,23 +342,22 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 102(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(@entryPointOutput) Location 0 - Decorate 109(g_tTex3df4) DescriptorSet 0 - Decorate 112(g_tTex3di4) DescriptorSet 0 - Decorate 115(g_tTex3du4) DescriptorSet 0 - Decorate 118(g_tTexcdf4) DescriptorSet 0 - Decorate 121(g_tTexcdi4) DescriptorSet 0 - Decorate 124(g_tTexcdu4) DescriptorSet 0 - Decorate 127(g_tTex1df4a) DescriptorSet 0 - Decorate 130(g_tTex1di4a) DescriptorSet 0 - Decorate 133(g_tTex1du4a) DescriptorSet 0 - Decorate 136(g_tTex2df4a) DescriptorSet 0 - Decorate 139(g_tTex2di4a) DescriptorSet 0 - Decorate 142(g_tTex2du4a) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + Decorate 103(@entryPointOutput) Location 0 + Decorate 108(g_tTex3df4) DescriptorSet 0 + Decorate 111(g_tTex3di4) DescriptorSet 0 + Decorate 114(g_tTex3du4) DescriptorSet 0 + Decorate 117(g_tTexcdf4) DescriptorSet 0 + Decorate 120(g_tTexcdi4) DescriptorSet 0 + Decorate 123(g_tTexcdu4) DescriptorSet 0 + Decorate 126(g_tTex1df4a) DescriptorSet 0 + Decorate 129(g_tTex1di4a) DescriptorSet 0 + Decorate 132(g_tTex1du4a) DescriptorSet 0 + Decorate 135(g_tTex2df4a) DescriptorSet 0 + Decorate 138(g_tTex2di4a) DescriptorSet 0 + Decorate 141(g_tTex2du4a) DescriptorSet 0 + Decorate 144(g_tTexcdf4a) DescriptorSet 0 + Decorate 147(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -418,54 +414,53 @@ gl_FragCoord origin is upper left 97: 91(fvec4) ConstantComposite 96 96 96 96 98: TypePointer Function 91(fvec4) 100: 22(int) Constant 1 - 102(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) - 103: TypePointer Output 102(PS_OUTPUT) -104(@entryPointOutput): 103(ptr) Variable Output - 107: TypeImage 6(float) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3df4): 108(ptr) Variable UniformConstant - 110: TypeImage 22(int) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3di4): 111(ptr) Variable UniformConstant - 113: TypeImage 38(int) 3D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex3du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdf4): 117(ptr) Variable UniformConstant - 119: TypeImage 22(int) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdi4): 120(ptr) Variable UniformConstant - 122: TypeImage 38(int) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdu4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1df4a): 126(ptr) Variable UniformConstant - 128: TypeImage 22(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1di4a): 129(ptr) Variable UniformConstant - 131: TypeImage 38(int) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1du4a): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2df4a): 135(ptr) Variable UniformConstant - 137: TypeImage 22(int) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2di4a): 138(ptr) Variable UniformConstant - 140: TypeImage 38(int) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2du4a): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 22(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 38(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 102: TypePointer Output 92(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output + 106: TypeImage 6(float) 3D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex3df4): 107(ptr) Variable UniformConstant + 109: TypeImage 22(int) 3D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex3di4): 110(ptr) Variable UniformConstant + 112: TypeImage 38(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3du4): 113(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTexcdf4): 116(ptr) Variable UniformConstant + 118: TypeImage 22(int) Cube sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTexcdi4): 119(ptr) Variable UniformConstant + 121: TypeImage 38(int) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdu4): 122(ptr) Variable UniformConstant + 124: TypeImage 6(float) 1D array sampled format:Unknown + 125: TypePointer UniformConstant 124 +126(g_tTex1df4a): 125(ptr) Variable UniformConstant + 127: TypeImage 22(int) 1D array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTex1di4a): 128(ptr) Variable UniformConstant + 130: TypeImage 38(int) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1du4a): 131(ptr) Variable UniformConstant + 133: TypeImage 6(float) 2D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex2df4a): 134(ptr) Variable UniformConstant + 136: TypeImage 22(int) 2D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex2di4a): 137(ptr) Variable UniformConstant + 139: TypeImage 38(int) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2du4a): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdf4a): 143(ptr) Variable UniformConstant + 145: TypeImage 22(int) Cube array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTexcdi4a): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -518,7 +513,7 @@ gl_FragCoord origin is upper left Store 99 97 101: 7(ptr) AccessChain 94(psout) 100 Store 101 96 - 105:92(PS_OUTPUT) Load 94(psout) - Store 104(@entryPointOutput) 105 + 104:92(PS_OUTPUT) Load 94(psout) + Store 103(@entryPointOutput) 104 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 63b74a38..84918d0d 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -301,14 +301,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 157 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 + EntryPoint Fragment 4 "main" 109 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -328,25 +328,22 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 108 "PS_OUTPUT" - MemberName 108(PS_OUTPUT) 0 "Color" - MemberName 108(PS_OUTPUT) 1 "Depth" - Name 110 "@entryPointOutput" - Name 115 "g_tTex1df4" - Name 118 "g_tTex1di4" - Name 121 "g_tTex1du4" - Name 124 "g_tTex2df4" - Name 127 "g_tTex2di4" - Name 130 "g_tTex2du4" - Name 133 "g_tTex3df4" - Name 136 "g_tTex3di4" - Name 139 "g_tTex3du4" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" + Name 109 "@entryPointOutput" + Name 114 "g_tTex1df4" + Name 117 "g_tTex1di4" + Name 120 "g_tTex1du4" + Name 123 "g_tTex2df4" + Name 126 "g_tTex2di4" + Name 129 "g_tTex2du4" + Name 132 "g_tTex3df4" + Name 135 "g_tTex3di4" + Name 138 "g_tTex3du4" + Name 141 "g_tTexcdf4" + Name 144 "g_tTexcdi4" + Name 147 "g_tTexcdu4" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -356,24 +353,23 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 108(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 110(@entryPointOutput) Location 0 - Decorate 115(g_tTex1df4) DescriptorSet 0 - Decorate 115(g_tTex1df4) Binding 0 - Decorate 118(g_tTex1di4) DescriptorSet 0 - Decorate 121(g_tTex1du4) DescriptorSet 0 - Decorate 124(g_tTex2df4) DescriptorSet 0 - Decorate 127(g_tTex2di4) DescriptorSet 0 - Decorate 130(g_tTex2du4) DescriptorSet 0 - Decorate 133(g_tTex3df4) DescriptorSet 0 - Decorate 136(g_tTex3di4) DescriptorSet 0 - Decorate 139(g_tTex3du4) DescriptorSet 0 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + Decorate 109(@entryPointOutput) Location 0 + Decorate 114(g_tTex1df4) DescriptorSet 0 + Decorate 114(g_tTex1df4) Binding 0 + Decorate 117(g_tTex1di4) DescriptorSet 0 + Decorate 120(g_tTex1du4) DescriptorSet 0 + Decorate 123(g_tTex2df4) DescriptorSet 0 + Decorate 126(g_tTex2di4) DescriptorSet 0 + Decorate 129(g_tTex2du4) DescriptorSet 0 + Decorate 132(g_tTex3df4) DescriptorSet 0 + Decorate 135(g_tTex3di4) DescriptorSet 0 + Decorate 138(g_tTex3du4) DescriptorSet 0 + Decorate 141(g_tTexcdf4) DescriptorSet 0 + Decorate 144(g_tTexcdi4) DescriptorSet 0 + Decorate 147(g_tTexcdu4) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -433,54 +429,53 @@ gl_FragCoord origin is upper left 103: 97(fvec4) ConstantComposite 102 102 102 102 104: TypePointer Function 97(fvec4) 106: 26(int) Constant 1 - 108(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) - 109: TypePointer Output 108(PS_OUTPUT) -110(@entryPointOutput): 109(ptr) Variable Output - 113: TypeImage 6(float) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1df4): 114(ptr) Variable UniformConstant - 116: TypeImage 26(int) 1D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex1di4): 117(ptr) Variable UniformConstant - 119: TypeImage 43(int) 1D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex1du4): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2df4): 123(ptr) Variable UniformConstant - 125: TypeImage 26(int) 2D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex2di4): 126(ptr) Variable UniformConstant - 128: TypeImage 43(int) 2D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex2du4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3df4): 132(ptr) Variable UniformConstant - 134: TypeImage 26(int) 3D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex3di4): 135(ptr) Variable UniformConstant - 137: TypeImage 43(int) 3D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex3du4): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 26(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 43(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 26(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 43(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 108: TypePointer Output 98(PS_OUTPUT) +109(@entryPointOutput): 108(ptr) Variable Output + 112: TypeImage 6(float) 1D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex1df4): 113(ptr) Variable UniformConstant + 115: TypeImage 26(int) 1D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex1di4): 116(ptr) Variable UniformConstant + 118: TypeImage 43(int) 1D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex1du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) 2D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex2df4): 122(ptr) Variable UniformConstant + 124: TypeImage 26(int) 2D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex2di4): 125(ptr) Variable UniformConstant + 127: TypeImage 43(int) 2D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex2du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 3D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex3df4): 131(ptr) Variable UniformConstant + 133: TypeImage 26(int) 3D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex3di4): 134(ptr) Variable UniformConstant + 136: TypeImage 43(int) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3du4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdf4): 140(ptr) Variable UniformConstant + 142: TypeImage 26(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdi4): 143(ptr) Variable UniformConstant + 145: TypeImage 43(int) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdu4): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 26(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 43(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -536,7 +531,7 @@ gl_FragCoord origin is upper left Store 105 103 107: 7(ptr) AccessChain 100(psout) 106 Store 107 102 - 111:98(PS_OUTPUT) Load 100(psout) - Store 110(@entryPointOutput) 111 + 110:98(PS_OUTPUT) Load 100(psout) + Store 109(@entryPointOutput) 110 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index b0f13a4e..e8e2603f 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -397,14 +397,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 181 +// Id's are bound by 180 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 142 + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -430,22 +430,19 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 140 "PS_OUTPUT" - MemberName 140(PS_OUTPUT) 0 "Color" - MemberName 140(PS_OUTPUT) 1 "Depth" - Name 142 "@entryPointOutput" - Name 147 "g_tTex1df4" - Name 150 "g_tTex1di4" - Name 153 "g_tTex1du4" - Name 156 "g_tTex2df4" - Name 159 "g_tTex2di4" - Name 162 "g_tTex2du4" - Name 165 "g_tTex3df4" - Name 168 "g_tTex3di4" - Name 171 "g_tTex3du4" - Name 174 "g_tTexcdf4" - Name 177 "g_tTexcdi4" - Name 180 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 146 "g_tTex1df4" + Name 149 "g_tTex1di4" + Name 152 "g_tTex1du4" + Name 155 "g_tTex2df4" + Name 158 "g_tTex2di4" + Name 161 "g_tTex2du4" + Name 164 "g_tTex3df4" + Name 167 "g_tTex3di4" + Name 170 "g_tTex3du4" + Name 173 "g_tTexcdf4" + Name 176 "g_tTexcdi4" + Name 179 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -458,21 +455,20 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(@entryPointOutput) Location 0 - Decorate 147(g_tTex1df4) DescriptorSet 0 - Decorate 147(g_tTex1df4) Binding 0 - Decorate 150(g_tTex1di4) DescriptorSet 0 - Decorate 153(g_tTex1du4) DescriptorSet 0 - Decorate 156(g_tTex2df4) DescriptorSet 0 - Decorate 159(g_tTex2di4) DescriptorSet 0 - Decorate 162(g_tTex2du4) DescriptorSet 0 - Decorate 165(g_tTex3df4) DescriptorSet 0 - Decorate 168(g_tTex3di4) DescriptorSet 0 - Decorate 171(g_tTex3du4) DescriptorSet 0 - Decorate 174(g_tTexcdf4) DescriptorSet 0 - Decorate 177(g_tTexcdi4) DescriptorSet 0 - Decorate 180(g_tTexcdu4) DescriptorSet 0 + Decorate 141(@entryPointOutput) Location 0 + Decorate 146(g_tTex1df4) DescriptorSet 0 + Decorate 146(g_tTex1df4) Binding 0 + Decorate 149(g_tTex1di4) DescriptorSet 0 + Decorate 152(g_tTex1du4) DescriptorSet 0 + Decorate 155(g_tTex2df4) DescriptorSet 0 + Decorate 158(g_tTex2di4) DescriptorSet 0 + Decorate 161(g_tTex2du4) DescriptorSet 0 + Decorate 164(g_tTex3df4) DescriptorSet 0 + Decorate 167(g_tTex3di4) DescriptorSet 0 + Decorate 170(g_tTex3du4) DescriptorSet 0 + Decorate 173(g_tTexcdf4) DescriptorSet 0 + Decorate 176(g_tTexcdi4) DescriptorSet 0 + Decorate 179(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -546,45 +542,44 @@ gl_FragCoord origin is upper left 135: 103(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 103(fvec4) 138: 30(int) Constant 1 - 140(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) - 141: TypePointer Output 140(PS_OUTPUT) -142(@entryPointOutput): 141(ptr) Variable Output - 145: TypeImage 6(float) 1D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex1df4): 146(ptr) Variable UniformConstant - 148: TypeImage 30(int) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1di4): 149(ptr) Variable UniformConstant - 151: TypeImage 43(int) 1D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex1du4): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) 2D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex2df4): 155(ptr) Variable UniformConstant - 157: TypeImage 30(int) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2di4): 158(ptr) Variable UniformConstant - 160: TypeImage 43(int) 2D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex2du4): 161(ptr) Variable UniformConstant - 163: TypeImage 6(float) 3D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex3df4): 164(ptr) Variable UniformConstant - 166: TypeImage 30(int) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3di4): 167(ptr) Variable UniformConstant - 169: TypeImage 43(int) 3D sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTex3du4): 170(ptr) Variable UniformConstant - 172: TypeImage 6(float) Cube sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTexcdf4): 173(ptr) Variable UniformConstant - 175: TypeImage 30(int) Cube sampled format:Unknown - 176: TypePointer UniformConstant 175 - 177(g_tTexcdi4): 176(ptr) Variable UniformConstant - 178: TypeImage 43(int) Cube sampled format:Unknown - 179: TypePointer UniformConstant 178 - 180(g_tTexcdu4): 179(ptr) Variable UniformConstant + 140: TypePointer Output 130(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output + 144: TypeImage 6(float) 1D sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTex1df4): 145(ptr) Variable UniformConstant + 147: TypeImage 30(int) 1D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex1di4): 148(ptr) Variable UniformConstant + 150: TypeImage 43(int) 1D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex1du4): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) 2D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex2df4): 154(ptr) Variable UniformConstant + 156: TypeImage 30(int) 2D sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTex2di4): 157(ptr) Variable UniformConstant + 159: TypeImage 43(int) 2D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex2du4): 160(ptr) Variable UniformConstant + 162: TypeImage 6(float) 3D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex3df4): 163(ptr) Variable UniformConstant + 165: TypeImage 30(int) 3D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex3di4): 166(ptr) Variable UniformConstant + 168: TypeImage 43(int) 3D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex3du4): 169(ptr) Variable UniformConstant + 171: TypeImage 6(float) Cube sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTexcdf4): 172(ptr) Variable UniformConstant + 174: TypeImage 30(int) Cube sampled format:Unknown + 175: TypePointer UniformConstant 174 + 176(g_tTexcdi4): 175(ptr) Variable UniformConstant + 177: TypeImage 43(int) Cube sampled format:Unknown + 178: TypePointer UniformConstant 177 + 179(g_tTexcdu4): 178(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -661,7 +656,7 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 132(psout) 138 Store 139 134 - 143:130(PS_OUTPUT) Load 132(psout) - Store 142(@entryPointOutput) 143 + 142:130(PS_OUTPUT) Load 132(psout) + Store 141(@entryPointOutput) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 4139a17e..a1f48e6c 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -379,14 +379,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 179 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 + EntryPoint Fragment 4 "main" 139 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -412,22 +412,19 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 138 "PS_OUTPUT" - MemberName 138(PS_OUTPUT) 0 "Color" - MemberName 138(PS_OUTPUT) 1 "Depth" - Name 140 "@entryPointOutput" - Name 145 "g_tTex3df4" - Name 148 "g_tTex3di4" - Name 151 "g_tTex3du4" - Name 154 "g_tTex1df4a" - Name 157 "g_tTex1di4a" - Name 160 "g_tTex1du4a" - Name 163 "g_tTex2df4a" - Name 166 "g_tTex2di4a" - Name 169 "g_tTex2du4a" - Name 172 "g_tTexcdf4a" - Name 175 "g_tTexcdi4a" - Name 178 "g_tTexcdu4a" + Name 139 "@entryPointOutput" + Name 144 "g_tTex3df4" + Name 147 "g_tTex3di4" + Name 150 "g_tTex3du4" + Name 153 "g_tTex1df4a" + Name 156 "g_tTex1di4a" + Name 159 "g_tTex1du4a" + Name 162 "g_tTex2df4a" + Name 165 "g_tTex2di4a" + Name 168 "g_tTex2du4a" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -441,20 +438,19 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 138(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(@entryPointOutput) Location 0 - Decorate 145(g_tTex3df4) DescriptorSet 0 - Decorate 148(g_tTex3di4) DescriptorSet 0 - Decorate 151(g_tTex3du4) DescriptorSet 0 - Decorate 154(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1di4a) DescriptorSet 0 - Decorate 160(g_tTex1du4a) DescriptorSet 0 - Decorate 163(g_tTex2df4a) DescriptorSet 0 - Decorate 166(g_tTex2di4a) DescriptorSet 0 - Decorate 169(g_tTex2du4a) DescriptorSet 0 - Decorate 172(g_tTexcdf4a) DescriptorSet 0 - Decorate 175(g_tTexcdi4a) DescriptorSet 0 - Decorate 178(g_tTexcdu4a) DescriptorSet 0 + Decorate 139(@entryPointOutput) Location 0 + Decorate 144(g_tTex3df4) DescriptorSet 0 + Decorate 147(g_tTex3di4) DescriptorSet 0 + Decorate 150(g_tTex3du4) DescriptorSet 0 + Decorate 153(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1di4a) DescriptorSet 0 + Decorate 159(g_tTex1du4a) DescriptorSet 0 + Decorate 162(g_tTex2df4a) DescriptorSet 0 + Decorate 165(g_tTex2di4a) DescriptorSet 0 + Decorate 168(g_tTex2du4a) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -526,45 +522,44 @@ gl_FragCoord origin is upper left 133: 127(fvec4) ConstantComposite 132 132 132 132 134: TypePointer Function 127(fvec4) 136: 26(int) Constant 1 - 138(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) - 139: TypePointer Output 138(PS_OUTPUT) -140(@entryPointOutput): 139(ptr) Variable Output - 143: TypeImage 6(float) 3D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex3df4): 144(ptr) Variable UniformConstant - 146: TypeImage 26(int) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3di4): 147(ptr) Variable UniformConstant - 149: TypeImage 38(int) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3du4): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) 1D array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTex1df4a): 153(ptr) Variable UniformConstant - 155: TypeImage 26(int) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1di4a): 156(ptr) Variable UniformConstant - 158: TypeImage 38(int) 1D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex1du4a): 159(ptr) Variable UniformConstant - 161: TypeImage 6(float) 2D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex2df4a): 162(ptr) Variable UniformConstant - 164: TypeImage 26(int) 2D array sampled format:Unknown - 165: TypePointer UniformConstant 164 -166(g_tTex2di4a): 165(ptr) Variable UniformConstant - 167: TypeImage 38(int) 2D array sampled format:Unknown - 168: TypePointer UniformConstant 167 -169(g_tTex2du4a): 168(ptr) Variable UniformConstant - 170: TypeImage 6(float) Cube array sampled format:Unknown - 171: TypePointer UniformConstant 170 -172(g_tTexcdf4a): 171(ptr) Variable UniformConstant - 173: TypeImage 26(int) Cube array sampled format:Unknown - 174: TypePointer UniformConstant 173 -175(g_tTexcdi4a): 174(ptr) Variable UniformConstant - 176: TypeImage 38(int) Cube array sampled format:Unknown - 177: TypePointer UniformConstant 176 -178(g_tTexcdu4a): 177(ptr) Variable UniformConstant + 138: TypePointer Output 128(PS_OUTPUT) +139(@entryPointOutput): 138(ptr) Variable Output + 142: TypeImage 6(float) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3df4): 143(ptr) Variable UniformConstant + 145: TypeImage 26(int) 3D sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTex3di4): 146(ptr) Variable UniformConstant + 148: TypeImage 38(int) 3D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex3du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1df4a): 152(ptr) Variable UniformConstant + 154: TypeImage 26(int) 1D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex1di4a): 155(ptr) Variable UniformConstant + 157: TypeImage 38(int) 1D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex1du4a): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2df4a): 161(ptr) Variable UniformConstant + 163: TypeImage 26(int) 2D array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTex2di4a): 164(ptr) Variable UniformConstant + 166: TypeImage 38(int) 2D array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTex2du4a): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 26(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 38(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -641,7 +636,7 @@ gl_FragCoord origin is upper left Store 135 133 137: 7(ptr) AccessChain 130(psout) 136 Store 137 132 - 141:128(PS_OUTPUT) Load 130(psout) - Store 140(@entryPointOutput) 141 + 140:128(PS_OUTPUT) Load 130(psout) + Store 139(@entryPointOutput) 140 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 1ea38853..d9563a72 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -313,14 +313,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 153 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 105 + EntryPoint Fragment 4 "main" 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -340,25 +340,22 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 103 "PS_OUTPUT" - MemberName 103(PS_OUTPUT) 0 "Color" - MemberName 103(PS_OUTPUT) 1 "Depth" - Name 105 "@entryPointOutput" - Name 110 "g_tTex3df4" - Name 113 "g_tTex3di4" - Name 116 "g_tTex3du4" - Name 119 "g_tTexcdf4" - Name 122 "g_tTexcdi4" - Name 125 "g_tTexcdu4" - Name 128 "g_tTex1df4a" - Name 131 "g_tTex1di4a" - Name 134 "g_tTex1du4a" - Name 137 "g_tTex2df4a" - Name 140 "g_tTex2di4a" - Name 143 "g_tTex2du4a" - Name 146 "g_tTexcdf4a" - Name 149 "g_tTexcdi4a" - Name 152 "g_tTexcdu4a" + Name 104 "@entryPointOutput" + Name 109 "g_tTex3df4" + Name 112 "g_tTex3di4" + Name 115 "g_tTex3du4" + Name 118 "g_tTexcdf4" + Name 121 "g_tTexcdi4" + Name 124 "g_tTexcdu4" + Name 127 "g_tTex1df4a" + Name 130 "g_tTex1di4a" + Name 133 "g_tTex1du4a" + Name 136 "g_tTex2df4a" + Name 139 "g_tTex2di4a" + Name 142 "g_tTex2du4a" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -369,23 +366,22 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 103(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 105(@entryPointOutput) Location 0 - Decorate 110(g_tTex3df4) DescriptorSet 0 - Decorate 113(g_tTex3di4) DescriptorSet 0 - Decorate 116(g_tTex3du4) DescriptorSet 0 - Decorate 119(g_tTexcdf4) DescriptorSet 0 - Decorate 122(g_tTexcdi4) DescriptorSet 0 - Decorate 125(g_tTexcdu4) DescriptorSet 0 - Decorate 128(g_tTex1df4a) DescriptorSet 0 - Decorate 131(g_tTex1di4a) DescriptorSet 0 - Decorate 134(g_tTex1du4a) DescriptorSet 0 - Decorate 137(g_tTex2df4a) DescriptorSet 0 - Decorate 140(g_tTex2di4a) DescriptorSet 0 - Decorate 143(g_tTex2du4a) DescriptorSet 0 - Decorate 146(g_tTexcdf4a) DescriptorSet 0 - Decorate 149(g_tTexcdi4a) DescriptorSet 0 - Decorate 152(g_tTexcdu4a) DescriptorSet 0 + Decorate 104(@entryPointOutput) Location 0 + Decorate 109(g_tTex3df4) DescriptorSet 0 + Decorate 112(g_tTex3di4) DescriptorSet 0 + Decorate 115(g_tTex3du4) DescriptorSet 0 + Decorate 118(g_tTexcdf4) DescriptorSet 0 + Decorate 121(g_tTexcdi4) DescriptorSet 0 + Decorate 124(g_tTexcdu4) DescriptorSet 0 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 130(g_tTex1di4a) DescriptorSet 0 + Decorate 133(g_tTex1du4a) DescriptorSet 0 + Decorate 136(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 142(g_tTex2du4a) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -443,54 +439,53 @@ gl_FragCoord origin is upper left 98: 92(fvec4) ConstantComposite 97 97 97 97 99: TypePointer Function 92(fvec4) 101: 23(int) Constant 1 - 103(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) - 104: TypePointer Output 103(PS_OUTPUT) -105(@entryPointOutput): 104(ptr) Variable Output - 108: TypeImage 6(float) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3df4): 109(ptr) Variable UniformConstant - 111: TypeImage 23(int) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3di4): 112(ptr) Variable UniformConstant - 114: TypeImage 39(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3du4): 115(ptr) Variable UniformConstant - 117: TypeImage 6(float) Cube sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTexcdf4): 118(ptr) Variable UniformConstant - 120: TypeImage 23(int) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdi4): 121(ptr) Variable UniformConstant - 123: TypeImage 39(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdu4): 124(ptr) Variable UniformConstant - 126: TypeImage 6(float) 1D array sampled format:Unknown - 127: TypePointer UniformConstant 126 -128(g_tTex1df4a): 127(ptr) Variable UniformConstant - 129: TypeImage 23(int) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1di4a): 130(ptr) Variable UniformConstant - 132: TypeImage 39(int) 1D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex1du4a): 133(ptr) Variable UniformConstant - 135: TypeImage 6(float) 2D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex2df4a): 136(ptr) Variable UniformConstant - 138: TypeImage 23(int) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2di4a): 139(ptr) Variable UniformConstant - 141: TypeImage 39(int) 2D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex2du4a): 142(ptr) Variable UniformConstant - 144: TypeImage 6(float) Cube array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTexcdf4a): 145(ptr) Variable UniformConstant - 147: TypeImage 23(int) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdi4a): 148(ptr) Variable UniformConstant - 150: TypeImage 39(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdu4a): 151(ptr) Variable UniformConstant + 103: TypePointer Output 93(PS_OUTPUT) +104(@entryPointOutput): 103(ptr) Variable Output + 107: TypeImage 6(float) 3D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex3df4): 108(ptr) Variable UniformConstant + 110: TypeImage 23(int) 3D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex3di4): 111(ptr) Variable UniformConstant + 113: TypeImage 39(int) 3D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex3du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdf4): 117(ptr) Variable UniformConstant + 119: TypeImage 23(int) Cube sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTexcdi4): 120(ptr) Variable UniformConstant + 122: TypeImage 39(int) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdu4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 1D array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTex1df4a): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTex1di4a): 129(ptr) Variable UniformConstant + 131: TypeImage 39(int) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1du4a): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) 2D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex2df4a): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 140: TypeImage 39(int) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2du4a): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 39(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -543,7 +538,7 @@ gl_FragCoord origin is upper left Store 100 98 102: 7(ptr) AccessChain 95(psout) 101 Store 102 97 - 106:93(PS_OUTPUT) Load 95(psout) - Store 105(@entryPointOutput) 106 + 105:93(PS_OUTPUT) Load 95(psout) + Store 104(@entryPointOutput) 105 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 4ef2c65d..9e04bb0f 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -325,14 +325,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 159 +// Id's are bound by 158 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 111 + EntryPoint Fragment 4 "main" 110 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -352,25 +352,22 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 109 "PS_OUTPUT" - MemberName 109(PS_OUTPUT) 0 "Color" - MemberName 109(PS_OUTPUT) 1 "Depth" - Name 111 "@entryPointOutput" - Name 116 "g_tTex1df4" - Name 119 "g_tTex1di4" - Name 122 "g_tTex1du4" - Name 125 "g_tTex2df4" - Name 128 "g_tTex2di4" - Name 131 "g_tTex2du4" - Name 134 "g_tTex3df4" - Name 137 "g_tTex3di4" - Name 140 "g_tTex3du4" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" - Name 152 "g_tTexcdf4a" - Name 155 "g_tTexcdi4a" - Name 158 "g_tTexcdu4a" + Name 110 "@entryPointOutput" + Name 115 "g_tTex1df4" + Name 118 "g_tTex1di4" + Name 121 "g_tTex1du4" + Name 124 "g_tTex2df4" + Name 127 "g_tTex2di4" + Name 130 "g_tTex2du4" + Name 133 "g_tTex3df4" + Name 136 "g_tTex3di4" + Name 139 "g_tTex3du4" + Name 142 "g_tTexcdf4" + Name 145 "g_tTexcdi4" + Name 148 "g_tTexcdu4" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -380,24 +377,23 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 109(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 111(@entryPointOutput) Location 0 - Decorate 116(g_tTex1df4) DescriptorSet 0 - Decorate 116(g_tTex1df4) Binding 0 - Decorate 119(g_tTex1di4) DescriptorSet 0 - Decorate 122(g_tTex1du4) DescriptorSet 0 - Decorate 125(g_tTex2df4) DescriptorSet 0 - Decorate 128(g_tTex2di4) DescriptorSet 0 - Decorate 131(g_tTex2du4) DescriptorSet 0 - Decorate 134(g_tTex3df4) DescriptorSet 0 - Decorate 137(g_tTex3di4) DescriptorSet 0 - Decorate 140(g_tTex3du4) DescriptorSet 0 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 - Decorate 152(g_tTexcdf4a) DescriptorSet 0 - Decorate 155(g_tTexcdi4a) DescriptorSet 0 - Decorate 158(g_tTexcdu4a) DescriptorSet 0 + Decorate 110(@entryPointOutput) Location 0 + Decorate 115(g_tTex1df4) DescriptorSet 0 + Decorate 115(g_tTex1df4) Binding 0 + Decorate 118(g_tTex1di4) DescriptorSet 0 + Decorate 121(g_tTex1du4) DescriptorSet 0 + Decorate 124(g_tTex2df4) DescriptorSet 0 + Decorate 127(g_tTex2di4) DescriptorSet 0 + Decorate 130(g_tTex2du4) DescriptorSet 0 + Decorate 133(g_tTex3df4) DescriptorSet 0 + Decorate 136(g_tTex3di4) DescriptorSet 0 + Decorate 139(g_tTex3du4) DescriptorSet 0 + Decorate 142(g_tTexcdf4) DescriptorSet 0 + Decorate 145(g_tTexcdi4) DescriptorSet 0 + Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -458,54 +454,53 @@ gl_FragCoord origin is upper left 104: 98(fvec4) ConstantComposite 103 103 103 103 105: TypePointer Function 98(fvec4) 107: 27(int) Constant 1 - 109(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) - 110: TypePointer Output 109(PS_OUTPUT) -111(@entryPointOutput): 110(ptr) Variable Output - 114: TypeImage 6(float) 1D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex1df4): 115(ptr) Variable UniformConstant - 117: TypeImage 27(int) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1di4): 118(ptr) Variable UniformConstant - 120: TypeImage 44(int) 1D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex1du4): 121(ptr) Variable UniformConstant - 123: TypeImage 6(float) 2D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex2df4): 124(ptr) Variable UniformConstant - 126: TypeImage 27(int) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2di4): 127(ptr) Variable UniformConstant - 129: TypeImage 44(int) 2D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex2du4): 130(ptr) Variable UniformConstant - 132: TypeImage 6(float) 3D sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTex3df4): 133(ptr) Variable UniformConstant - 135: TypeImage 27(int) 3D sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTex3di4): 136(ptr) Variable UniformConstant - 138: TypeImage 44(int) 3D sampled format:Unknown - 139: TypePointer UniformConstant 138 - 140(g_tTex3du4): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 27(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 44(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdf4a): 151(ptr) Variable UniformConstant - 153: TypeImage 27(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdi4a): 154(ptr) Variable UniformConstant - 156: TypeImage 44(int) Cube array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTexcdu4a): 157(ptr) Variable UniformConstant + 109: TypePointer Output 99(PS_OUTPUT) +110(@entryPointOutput): 109(ptr) Variable Output + 113: TypeImage 6(float) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1df4): 114(ptr) Variable UniformConstant + 116: TypeImage 27(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1di4): 117(ptr) Variable UniformConstant + 119: TypeImage 44(int) 1D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex1du4): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2df4): 123(ptr) Variable UniformConstant + 125: TypeImage 27(int) 2D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex2di4): 126(ptr) Variable UniformConstant + 128: TypeImage 44(int) 2D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex2du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3df4): 132(ptr) Variable UniformConstant + 134: TypeImage 27(int) 3D sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTex3di4): 135(ptr) Variable UniformConstant + 137: TypeImage 44(int) 3D sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTex3du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdf4): 141(ptr) Variable UniformConstant + 143: TypeImage 27(int) Cube sampled format:Unknown + 144: TypePointer UniformConstant 143 + 145(g_tTexcdi4): 144(ptr) Variable UniformConstant + 146: TypeImage 44(int) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 27(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 44(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -561,7 +556,7 @@ gl_FragCoord origin is upper left Store 106 104 108: 7(ptr) AccessChain 101(psout) 107 Store 108 103 - 112:99(PS_OUTPUT) Load 101(psout) - Store 111(@entryPointOutput) 112 + 111:99(PS_OUTPUT) Load 101(psout) + Store 110(@entryPointOutput) 111 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 44574aaa..10fa4792 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -393,14 +393,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 129 +// Id's are bound by 128 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 125 + EntryPoint Fragment 4 "main" 124 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -426,11 +426,8 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 123 "PS_OUTPUT" - MemberName 123(PS_OUTPUT) 0 "Color" - MemberName 123(PS_OUTPUT) 1 "Depth" - Name 125 "@entryPointOutput" - Name 128 "g_tTex1df4a" + Name 124 "@entryPointOutput" + Name 127 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -444,10 +441,9 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 123(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 125(@entryPointOutput) Location 0 - Decorate 128(g_tTex1df4a) DescriptorSet 0 - Decorate 128(g_tTex1df4a) Binding 1 + Decorate 124(@entryPointOutput) Location 0 + Decorate 127(g_tTex1df4a) DescriptorSet 0 + Decorate 127(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -519,10 +515,9 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 117 117 117 117 120: 27(int) Constant 1 121: TypePointer Function 6(float) - 123(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 124: TypePointer Output 123(PS_OUTPUT) -125(@entryPointOutput): 124(ptr) Variable Output -128(g_tTex1df4a): 11(ptr) Variable UniformConstant + 123: TypePointer Output 113(PS_OUTPUT) +124(@entryPointOutput): 123(ptr) Variable Output +127(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -584,7 +579,7 @@ gl_FragCoord origin is upper left Store 119 118 122: 121(ptr) AccessChain 115(psout) 120 Store 122 117 - 126:113(PS_OUTPUT) Load 115(psout) - Store 125(@entryPointOutput) 126 + 125:113(PS_OUTPUT) Load 115(psout) + Store 124(@entryPointOutput) 125 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 06a34d88..4580f21f 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -495,13 +495,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 164 +// Id's are bound by 163 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 160 + EntryPoint Fragment 4 "main" 159 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -533,11 +533,8 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 158 "PS_OUTPUT" - MemberName 158(PS_OUTPUT) 0 "Color" - MemberName 158(PS_OUTPUT) 1 "Depth" - Name 160 "@entryPointOutput" - Name 163 "g_tTex1df4a" + Name 159 "@entryPointOutput" + Name 162 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -554,10 +551,9 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 158(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 160(@entryPointOutput) Location 0 - Decorate 163(g_tTex1df4a) DescriptorSet 0 - Decorate 163(g_tTex1df4a) Binding 1 + Decorate 159(@entryPointOutput) Location 0 + Decorate 162(g_tTex1df4a) DescriptorSet 0 + Decorate 162(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -649,10 +645,9 @@ gl_FragCoord origin is upper left 153: 7(fvec4) ConstantComposite 152 152 152 152 155: 24(int) Constant 1 156: TypePointer Function 6(float) - 158(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 159: TypePointer Output 158(PS_OUTPUT) -160(@entryPointOutput): 159(ptr) Variable Output -163(g_tTex1df4a): 11(ptr) Variable UniformConstant + 158: TypePointer Output 148(PS_OUTPUT) +159(@entryPointOutput): 158(ptr) Variable Output +162(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -732,7 +727,7 @@ gl_FragCoord origin is upper left Store 154 153 157: 156(ptr) AccessChain 150(psout) 155 Store 157 152 - 161:148(PS_OUTPUT) Load 150(psout) - Store 160(@entryPointOutput) 161 + 160:148(PS_OUTPUT) Load 150(psout) + Store 159(@entryPointOutput) 160 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 156d2db0..c5fbcaa3 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -479,13 +479,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 161 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 157 + EntryPoint Vertex 4 "main" 156 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -515,10 +515,8 @@ Shader version: 450 Name 148 "VS_OUTPUT" MemberName 148(VS_OUTPUT) 0 "Pos" Name 150 "vsout" - Name 155 "VS_OUTPUT" - MemberName 155(VS_OUTPUT) 0 "Pos" - Name 157 "@entryPointOutput" - Name 160 "g_tTex1df4a" + Name 156 "@entryPointOutput" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -535,10 +533,9 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position - MemberDecorate 155(VS_OUTPUT) 0 BuiltIn Position - Decorate 157(@entryPointOutput) Location 0 - Decorate 160(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1df4a) Binding 1 + Decorate 156(@entryPointOutput) Location 0 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -628,10 +625,9 @@ Shader version: 450 151: 24(int) Constant 0 152: 6(float) Constant 0 153: 7(fvec4) ConstantComposite 152 152 152 152 - 155(VS_OUTPUT): TypeStruct 7(fvec4) - 156: TypePointer Output 155(VS_OUTPUT) -157(@entryPointOutput): 156(ptr) Variable Output -160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 155: TypePointer Output 148(VS_OUTPUT) +156(@entryPointOutput): 155(ptr) Variable Output +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -709,7 +705,7 @@ Shader version: 450 Store 139(txval42) 147 154: 8(ptr) AccessChain 150(vsout) 151 Store 154 153 - 158:148(VS_OUTPUT) Load 150(vsout) - Store 157(@entryPointOutput) 158 + 157:148(VS_OUTPUT) Load 150(vsout) + Store 156(@entryPointOutput) 157 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 9a273d9d..ad1adae7 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -435,13 +435,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 142 + EntryPoint Fragment 4 "main" 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -467,14 +467,11 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 140 "PS_OUTPUT" - MemberName 140(PS_OUTPUT) 0 "Color" - MemberName 140(PS_OUTPUT) 1 "Depth" - Name 142 "@entryPointOutput" - Name 145 "g_tTex1df4a" - Name 148 "g_tTexcdf4" - Name 151 "g_tTexcdi4" - Name 154 "g_tTexcdu4" + Name 141 "@entryPointOutput" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -488,13 +485,12 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 140(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 142(@entryPointOutput) Location 0 - Decorate 145(g_tTex1df4a) DescriptorSet 0 - Decorate 145(g_tTex1df4a) Binding 1 - Decorate 148(g_tTexcdf4) DescriptorSet 0 - Decorate 151(g_tTexcdi4) DescriptorSet 0 - Decorate 154(g_tTexcdu4) DescriptorSet 0 + Decorate 141(@entryPointOutput) Location 0 + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -583,19 +579,18 @@ gl_FragCoord origin is upper left 135: 6(float) Constant 1065353216 136: 7(fvec4) ConstantComposite 135 135 135 135 138: TypePointer Function 6(float) - 140(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 141: TypePointer Output 140(PS_OUTPUT) -142(@entryPointOutput): 141(ptr) Variable Output -145(g_tTex1df4a): 11(ptr) Variable UniformConstant - 146: TypeImage 6(float) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdf4): 147(ptr) Variable UniformConstant - 149: TypeImage 23(int) Cube sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTexcdi4): 150(ptr) Variable UniformConstant - 152: TypeImage 38(int) Cube sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTexcdu4): 153(ptr) Variable UniformConstant + 140: TypePointer Output 132(PS_OUTPUT) +141(@entryPointOutput): 140(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 23(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 38(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -657,7 +652,7 @@ gl_FragCoord origin is upper left Store 137 136 139: 138(ptr) AccessChain 134(psout) 24 Store 139 135 - 143:132(PS_OUTPUT) Load 134(psout) - Store 142(@entryPointOutput) 143 + 142:132(PS_OUTPUT) Load 134(psout) + Store 141(@entryPointOutput) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 3750d992..d1dd59ec 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -303,14 +303,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 109 +// Id's are bound by 108 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 + EntryPoint Fragment 4 "main" 95 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -330,14 +330,11 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 94 "PS_OUTPUT" - MemberName 94(PS_OUTPUT) 0 "Color" - MemberName 94(PS_OUTPUT) 1 "Depth" - Name 96 "@entryPointOutput" - Name 99 "g_tTex1df4a" - Name 102 "g_tTexcdf4" - Name 105 "g_tTexcdi4" - Name 108 "g_tTexcdu4" + Name 95 "@entryPointOutput" + Name 98 "g_tTex1df4a" + Name 101 "g_tTexcdf4" + Name 104 "g_tTexcdi4" + Name 107 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -348,13 +345,12 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 96(@entryPointOutput) Location 0 - Decorate 99(g_tTex1df4a) DescriptorSet 0 - Decorate 99(g_tTex1df4a) Binding 1 - Decorate 102(g_tTexcdf4) DescriptorSet 0 - Decorate 105(g_tTexcdi4) DescriptorSet 0 - Decorate 108(g_tTexcdu4) DescriptorSet 0 + Decorate 95(@entryPointOutput) Location 0 + Decorate 98(g_tTex1df4a) DescriptorSet 0 + Decorate 98(g_tTex1df4a) Binding 1 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 104(g_tTexcdi4) DescriptorSet 0 + Decorate 107(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -412,19 +408,18 @@ gl_FragCoord origin is upper left 89: 6(float) Constant 1065353216 90: 7(fvec4) ConstantComposite 89 89 89 89 92: TypePointer Function 6(float) - 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 95: TypePointer Output 94(PS_OUTPUT) -96(@entryPointOutput): 95(ptr) Variable Output - 99(g_tTex1df4a): 11(ptr) Variable UniformConstant - 100: TypeImage 6(float) Cube array sampled format:Unknown - 101: TypePointer UniformConstant 100 - 102(g_tTexcdf4): 101(ptr) Variable UniformConstant - 103: TypeImage 26(int) Cube array sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdi4): 104(ptr) Variable UniformConstant - 106: TypeImage 40(int) Cube array sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTexcdu4): 107(ptr) Variable UniformConstant + 94: TypePointer Output 86(PS_OUTPUT) +95(@entryPointOutput): 94(ptr) Variable Output + 98(g_tTex1df4a): 11(ptr) Variable UniformConstant + 99: TypeImage 6(float) Cube array sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 102: TypeImage 26(int) Cube array sampled format:Unknown + 103: TypePointer UniformConstant 102 + 104(g_tTexcdi4): 103(ptr) Variable UniformConstant + 105: TypeImage 40(int) Cube array sampled format:Unknown + 106: TypePointer UniformConstant 105 + 107(g_tTexcdu4): 106(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -468,7 +463,7 @@ gl_FragCoord origin is upper left Store 91 90 93: 92(ptr) AccessChain 88(psout) 27 Store 93 89 - 97:86(PS_OUTPUT) Load 88(psout) - Store 96(@entryPointOutput) 97 + 96:86(PS_OUTPUT) Load 88(psout) + Store 95(@entryPointOutput) 96 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 4dc08b8c..246fb89b 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -321,14 +321,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 136 +// Id's are bound by 135 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 132 + EntryPoint Fragment 4 "main" 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -354,11 +354,8 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 130 "PS_OUTPUT" - MemberName 130(PS_OUTPUT) 0 "Color" - MemberName 130(PS_OUTPUT) 1 "Depth" - Name 132 "@entryPointOutput" - Name 135 "g_tTex1df4" + Name 131 "@entryPointOutput" + Name 134 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -372,10 +369,9 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 132(@entryPointOutput) Location 0 - Decorate 135(g_tTex1df4) DescriptorSet 0 - Decorate 135(g_tTex1df4) Binding 0 + Decorate 131(@entryPointOutput) Location 0 + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -454,10 +450,9 @@ gl_FragCoord origin is upper left 125: 7(fvec4) ConstantComposite 118 118 118 118 127: 26(int) Constant 1 128: TypePointer Function 6(float) - 130(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 131: TypePointer Output 130(PS_OUTPUT) -132(@entryPointOutput): 131(ptr) Variable Output - 135(g_tTex1df4): 11(ptr) Variable UniformConstant + 130: TypePointer Output 121(PS_OUTPUT) +131(@entryPointOutput): 130(ptr) Variable Output + 134(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -519,7 +514,7 @@ gl_FragCoord origin is upper left Store 126 125 129: 128(ptr) AccessChain 123(psout) 127 Store 129 118 - 133:121(PS_OUTPUT) Load 123(psout) - Store 132(@entryPointOutput) 133 + 132:121(PS_OUTPUT) Load 123(psout) + Store 131(@entryPointOutput) 132 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index b23e723f..230eb9e7 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -389,13 +389,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 161 +// Id's are bound by 160 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 156 + EntryPoint Fragment 4 "main" 155 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -427,12 +427,9 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 154 "PS_OUTPUT" - MemberName 154(PS_OUTPUT) 0 "Color" - MemberName 154(PS_OUTPUT) 1 "Depth" - Name 156 "@entryPointOutput" - Name 159 "g_sSamp2d" - Name 160 "g_tTex1df4a" + Name 155 "@entryPointOutput" + Name 158 "g_sSamp2d" + Name 159 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -449,11 +446,10 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 154(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 156(@entryPointOutput) Location 0 - Decorate 159(g_sSamp2d) DescriptorSet 0 - Decorate 160(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1df4a) Binding 1 + Decorate 155(@entryPointOutput) Location 0 + Decorate 158(g_sSamp2d) DescriptorSet 0 + Decorate 159(g_tTex1df4a) DescriptorSet 0 + Decorate 159(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -541,11 +537,10 @@ gl_FragCoord origin is upper left 149: 7(fvec4) ConstantComposite 148 148 148 148 151: 23(int) Constant 1 152: TypePointer Function 6(float) - 154(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 155: TypePointer Output 154(PS_OUTPUT) -156(@entryPointOutput): 155(ptr) Variable Output - 159(g_sSamp2d): 15(ptr) Variable UniformConstant -160(g_tTex1df4a): 11(ptr) Variable UniformConstant + 154: TypePointer Output 144(PS_OUTPUT) +155(@entryPointOutput): 154(ptr) Variable Output + 158(g_sSamp2d): 15(ptr) Variable UniformConstant +159(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -625,7 +620,7 @@ gl_FragCoord origin is upper left Store 150 149 153: 152(ptr) AccessChain 146(psout) 151 Store 153 148 - 157:144(PS_OUTPUT) Load 146(psout) - Store 156(@entryPointOutput) 157 + 156:144(PS_OUTPUT) Load 146(psout) + Store 155(@entryPointOutput) 156 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index e8edd2ad..a04ef218 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -371,13 +371,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 156 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 153 + EntryPoint Vertex 4 "main" 152 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -407,10 +407,8 @@ Shader version: 450 Name 144 "VS_OUTPUT" MemberName 144(VS_OUTPUT) 0 "Pos" Name 146 "vsout" - Name 151 "VS_OUTPUT" - MemberName 151(VS_OUTPUT) 0 "Pos" - Name 153 "@entryPointOutput" - Name 156 "g_tTex1df4a" + Name 152 "@entryPointOutput" + Name 155 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -427,10 +425,9 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position - MemberDecorate 151(VS_OUTPUT) 0 BuiltIn Position - Decorate 153(@entryPointOutput) Location 0 - Decorate 156(g_tTex1df4a) DescriptorSet 0 - Decorate 156(g_tTex1df4a) Binding 1 + Decorate 152(@entryPointOutput) Location 0 + Decorate 155(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -516,10 +513,9 @@ Shader version: 450 147: 23(int) Constant 0 148: 6(float) Constant 0 149: 7(fvec4) ConstantComposite 148 148 148 148 - 151(VS_OUTPUT): TypeStruct 7(fvec4) - 152: TypePointer Output 151(VS_OUTPUT) -153(@entryPointOutput): 152(ptr) Variable Output -156(g_tTex1df4a): 11(ptr) Variable UniformConstant + 151: TypePointer Output 144(VS_OUTPUT) +152(@entryPointOutput): 151(ptr) Variable Output +155(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -597,7 +593,7 @@ Shader version: 450 Store 135(txval42) 143 150: 8(ptr) AccessChain 146(vsout) 147 Store 150 149 - 154:144(VS_OUTPUT) Load 146(vsout) - Store 153(@entryPointOutput) 154 + 153:144(VS_OUTPUT) Load 146(vsout) + Store 152(@entryPointOutput) 153 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index fa7ffd9d..71be1ef1 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -363,13 +363,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 + EntryPoint Fragment 4 "main" 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -395,14 +395,11 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 136 "PS_OUTPUT" - MemberName 136(PS_OUTPUT) 0 "Color" - MemberName 136(PS_OUTPUT) 1 "Depth" - Name 138 "@entryPointOutput" - Name 141 "g_tTex1df4a" - Name 144 "g_tTexcdf4" - Name 147 "g_tTexcdi4" - Name 150 "g_tTexcdu4" + Name 137 "@entryPointOutput" + Name 140 "g_tTex1df4a" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -416,13 +413,12 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 136(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 138(@entryPointOutput) Location 0 - Decorate 141(g_tTex1df4a) DescriptorSet 0 - Decorate 141(g_tTex1df4a) Binding 1 - Decorate 144(g_tTexcdf4) DescriptorSet 0 - Decorate 147(g_tTexcdi4) DescriptorSet 0 - Decorate 150(g_tTexcdu4) DescriptorSet 0 + Decorate 137(@entryPointOutput) Location 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 140(g_tTex1df4a) Binding 1 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -507,19 +503,18 @@ gl_FragCoord origin is upper left 131: 6(float) Constant 1065353216 132: 7(fvec4) ConstantComposite 131 131 131 131 134: TypePointer Function 6(float) - 136(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 137: TypePointer Output 136(PS_OUTPUT) -138(@entryPointOutput): 137(ptr) Variable Output -141(g_tTex1df4a): 11(ptr) Variable UniformConstant - 142: TypeImage 6(float) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdf4): 143(ptr) Variable UniformConstant - 145: TypeImage 22(int) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdi4): 146(ptr) Variable UniformConstant - 148: TypeImage 37(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdu4): 149(ptr) Variable UniformConstant + 136: TypePointer Output 128(PS_OUTPUT) +137(@entryPointOutput): 136(ptr) Variable Output +140(g_tTex1df4a): 11(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 22(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 37(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -581,7 +576,7 @@ gl_FragCoord origin is upper left Store 133 132 135: 134(ptr) AccessChain 130(psout) 23 Store 135 131 - 139:128(PS_OUTPUT) Load 130(psout) - Store 138(@entryPointOutput) 139 + 138:128(PS_OUTPUT) Load 130(psout) + Store 137(@entryPointOutput) 138 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 7402e75c..ffe344d6 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 108 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 + EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -287,11 +287,8 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 102 "PS_OUTPUT" - MemberName 102(PS_OUTPUT) 0 "Color" - MemberName 102(PS_OUTPUT) 1 "Depth" - Name 104 "@entryPointOutput" - Name 107 "g_tTex1df4a" + Name 103 "@entryPointOutput" + Name 106 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -302,10 +299,9 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 102(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(@entryPointOutput) Location 0 - Decorate 107(g_tTex1df4a) DescriptorSet 0 - Decorate 107(g_tTex1df4a) Binding 1 + Decorate 103(@entryPointOutput) Location 0 + Decorate 106(g_tTex1df4a) DescriptorSet 0 + Decorate 106(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -371,10 +367,9 @@ gl_FragCoord origin is upper left 97: 6(float) Constant 1065353216 98: 7(fvec4) ConstantComposite 97 97 97 97 100: TypePointer Function 6(float) - 102(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 103: TypePointer Output 102(PS_OUTPUT) -104(@entryPointOutput): 103(ptr) Variable Output -107(g_tTex1df4a): 11(ptr) Variable UniformConstant + 102: TypePointer Output 94(PS_OUTPUT) +103(@entryPointOutput): 102(ptr) Variable Output +106(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -418,7 +413,7 @@ gl_FragCoord origin is upper left Store 99 98 101: 100(ptr) AccessChain 96(psout) 40 Store 101 97 - 105:94(PS_OUTPUT) Load 96(psout) - Store 104(@entryPointOutput) 105 + 104:94(PS_OUTPUT) Load 96(psout) + Store 103(@entryPointOutput) 104 Return FunctionEnd diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 733ff991..53c599eb 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -59,12 +59,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 26 +// Id's are bound by 25 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 23 + EntryPoint Fragment 4 "main" 22 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -72,10 +72,8 @@ gl_FragCoord origin is upper left Name 12 "PS_OUTPUT" MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" - Name 21 "PS_OUTPUT" - MemberName 21(PS_OUTPUT) 0 "color" - Name 23 "@entryPointOutput" - Decorate 23(@entryPointOutput) Location 0 + Name 22 "@entryPointOutput" + Decorate 22(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -87,16 +85,15 @@ gl_FragCoord origin is upper left 17: 10(float) Constant 1065353216 18: 11(fvec4) ConstantComposite 17 17 17 17 19: TypePointer Function 11(fvec4) - 21(PS_OUTPUT): TypeStruct 11(fvec4) - 22: TypePointer Output 21(PS_OUTPUT) -23(@entryPointOutput): 22(ptr) Variable Output + 21: TypePointer Output 12(PS_OUTPUT) +22(@entryPointOutput): 21(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function 20: 19(ptr) AccessChain 14(ps_output) 16 Store 20 18 - 24:12(PS_OUTPUT) Load 14(ps_output) - Store 23(@entryPointOutput) 24 + 23:12(PS_OUTPUT) Load 14(ps_output) + Store 22(@entryPointOutput) 23 Return FunctionEnd 6(MyFunc(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 8edda1d8..2cf9dc0a 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -55,24 +55,22 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 20 + EntryPoint Fragment 4 "main" 19 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 18 "PS_OUTPUT" - MemberName 18(PS_OUTPUT) 0 "Color" - Name 20 "@entryPointOutput" - Name 25 "TestTexture" - Name 27 "TestUF" - Decorate 20(@entryPointOutput) Location 0 - Decorate 25(TestTexture) DescriptorSet 0 + Name 19 "@entryPointOutput" + Name 24 "TestTexture" + Name 26 "TestUF" + Decorate 19(@entryPointOutput) Location 0 + Decorate 24(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -85,20 +83,19 @@ gl_FragCoord origin is upper left 14: 6(float) Constant 1065353216 15: 7(fvec4) ConstantComposite 13 13 13 14 16: TypePointer Function 7(fvec4) - 18(PS_OUTPUT): TypeStruct 7(fvec4) - 19: TypePointer Output 18(PS_OUTPUT) -20(@entryPointOutput): 19(ptr) Variable Output - 23: TypeImage 6(float) 2D sampled format:Unknown - 24: TypePointer UniformConstant 23 - 25(TestTexture): 24(ptr) Variable UniformConstant - 26: TypePointer UniformConstant 7(fvec4) - 27(TestUF): 26(ptr) Variable UniformConstant + 18: TypePointer Output 8(PS_OUTPUT) +19(@entryPointOutput): 18(ptr) Variable Output + 22: TypeImage 6(float) 2D sampled format:Unknown + 23: TypePointer UniformConstant 22 + 24(TestTexture): 23(ptr) Variable UniformConstant + 25: TypePointer UniformConstant 7(fvec4) + 26(TestUF): 25(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function 17: 16(ptr) AccessChain 10(psout) 12 Store 17 15 - 21:8(PS_OUTPUT) Load 10(psout) - Store 20(@entryPointOutput) 21 + 20:8(PS_OUTPUT) Load 10(psout) + Store 19(@entryPointOutput) 20 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index a51134c3..e8eb2b8f 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -31,7 +31,6 @@ Linked fragment stage: Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 MemberDecorate 1032 1 BuiltIn FragDepth - MemberDecorate 1033 1 BuiltIn FragDepth Decorate 4045 Location 0 8: TypeVoid 1282: TypeFunction 8 @@ -130,8 +129,7 @@ Linked fragment stage: 138: 13(float) Constant 1065353216 1284: 29(fvec4) ConstantComposite 138 138 138 138 650: TypePointer Function 13(float) - 1033: TypeStruct 29(fvec4) 13(float) - 1670: TypePointer Output 1033(struct) + 1670: TypePointer Output 1032(struct) 4045: 1670(ptr) Variable Output 5663: 8 Function None 1282 24915: Label diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index a70b8317..0d67cd76 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 186 +// Id's are bound by 185 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 181 + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -59,13 +59,10 @@ Linked fragment stage: MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 179 "PS_OUTPUT" - MemberName 179(PS_OUTPUT) 0 "Color" - MemberName 179(PS_OUTPUT) 1 "Depth" - Name 181 "@entryPointOutput" - Name 183 "g_sSamp2d" - Name 184 "g_sSamp2D_b" - Name 185 "g_tTex1df4a" + Name 180 "@entryPointOutput" + Name 182 "g_sSamp2d" + Name 183 "g_sSamp2D_b" + Name 184 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -82,12 +79,11 @@ Linked fragment stage: Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - MemberDecorate 179(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 181(@entryPointOutput) Location 0 - Decorate 183(g_sSamp2d) DescriptorSet 0 - Decorate 184(g_sSamp2D_b) DescriptorSet 0 - Decorate 185(g_tTex1df4a) DescriptorSet 0 - Decorate 185(g_tTex1df4a) Binding 1 + Decorate 180(@entryPointOutput) Location 0 + Decorate 182(g_sSamp2d) DescriptorSet 0 + Decorate 183(g_sSamp2D_b) DescriptorSet 0 + Decorate 184(g_tTex1df4a) DescriptorSet 0 + Decorate 184(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -187,12 +183,11 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179(PS_OUTPUT): TypeStruct 36(fvec4) 35(float) - 180: TypePointer Output 179(PS_OUTPUT) -181(@entryPointOutput): 180(ptr) Variable Output - 183(g_sSamp2d): 44(ptr) Variable UniformConstant -184(g_sSamp2D_b): 44(ptr) Variable UniformConstant -185(g_tTex1df4a): 40(ptr) Variable UniformConstant + 179: TypePointer Output 171(PS_OUTPUT) +180(@entryPointOutput): 179(ptr) Variable Output + 182(g_sSamp2d): 44(ptr) Variable UniformConstant +183(g_sSamp2D_b): 44(ptr) Variable UniformConstant +184(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -297,7 +292,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 182:171(PS_OUTPUT) Load 173(psout) - Store 181(@entryPointOutput) 182 + 181:171(PS_OUTPUT) Load 173(psout) + Store 180(@entryPointOutput) 181 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index 60b2b780..37ef7c88 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 186 +// Id's are bound by 185 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 181 + EntryPoint Fragment 4 "main" 180 ExecutionMode 4 OriginUpperLeft Decorate 41 DescriptorSet 0 Decorate 41 Binding 0 @@ -31,12 +31,11 @@ Linked fragment stage: Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 MemberDecorate 171 1 BuiltIn FragDepth - MemberDecorate 179 1 BuiltIn FragDepth - Decorate 181 Location 0 + Decorate 180 Location 0 + Decorate 182 DescriptorSet 0 Decorate 183 DescriptorSet 0 Decorate 184 DescriptorSet 0 - Decorate 185 DescriptorSet 0 - Decorate 185 Binding 1 + Decorate 184 Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -136,12 +135,11 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypeStruct 36(fvec4) 35(float) - 180: TypePointer Output 179(struct) - 181: 180(ptr) Variable Output + 179: TypePointer Output 171(struct) + 180: 179(ptr) Variable Output + 182: 44(ptr) Variable UniformConstant 183: 44(ptr) Variable UniformConstant - 184: 44(ptr) Variable UniformConstant - 185: 40(ptr) Variable UniformConstant + 184: 40(ptr) Variable UniformConstant 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function @@ -246,7 +244,7 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173 10 Store 178 174 - 182: 171(struct) Load 173 - Store 181 182 + 181: 171(struct) Load 173 + Store 180 181 Return FunctionEnd diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out index 95eda65f..2900fdfc 100755 --- a/Test/baseResults/spv.450.tesc.out +++ b/Test/baseResults/spv.450.tesc.out @@ -7,12 +7,12 @@ Linked tessellation control stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 24 +// Id's are bound by 23 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 9 16 20 23 + EntryPoint TessellationControl 4 "main" 9 16 19 22 ExecutionMode 4 OutputVertices 4 Source GLSL 450 Name 4 "main" @@ -25,42 +25,39 @@ Linked tessellation control stage: MemberName 11(TheBlock) 1 "bMem2" MemberName 11(TheBlock) 2 "s" Name 16 "tcBlock" - Name 17 "S" - MemberName 17(S) 0 "sMem1" - MemberName 17(S) 1 "sMem2" - Name 18 "SingleBlock" - MemberName 18(SingleBlock) 0 "bMem1" - MemberName 18(SingleBlock) 1 "bMem2" - MemberName 18(SingleBlock) 2 "s" - Name 20 "singleBlock" - Name 21 "bn" - MemberName 21(bn) 0 "v1" - MemberName 21(bn) 1 "v2" - MemberName 21(bn) 2 "v3" - Name 23 "" + Name 17 "SingleBlock" + MemberName 17(SingleBlock) 0 "bMem1" + MemberName 17(SingleBlock) 1 "bMem2" + MemberName 17(SingleBlock) 2 "s" + Name 19 "singleBlock" + Name 20 "bn" + MemberName 20(bn) 0 "v1" + MemberName 20(bn) 1 "v2" + MemberName 20(bn) 2 "v3" + Name 22 "" Decorate 9(patchOut) Patch MemberDecorate 11(TheBlock) 0 Patch MemberDecorate 11(TheBlock) 1 Patch MemberDecorate 11(TheBlock) 2 Patch Decorate 11(TheBlock) Block Decorate 16(tcBlock) Location 12 - MemberDecorate 18(SingleBlock) 0 Patch - MemberDecorate 18(SingleBlock) 0 Location 2 - MemberDecorate 18(SingleBlock) 1 Patch - MemberDecorate 18(SingleBlock) 1 Location 3 - MemberDecorate 18(SingleBlock) 2 Patch - MemberDecorate 18(SingleBlock) 2 Location 4 - Decorate 18(SingleBlock) Block - Decorate 20(singleBlock) Location 2 - MemberDecorate 21(bn) 0 Patch - MemberDecorate 21(bn) 0 Location 20 - MemberDecorate 21(bn) 0 Component 0 - MemberDecorate 21(bn) 1 Patch - MemberDecorate 21(bn) 1 Location 24 - MemberDecorate 21(bn) 2 Patch - MemberDecorate 21(bn) 2 Location 25 - MemberDecorate 21(bn) 2 Component 0 - Decorate 21(bn) Block + MemberDecorate 17(SingleBlock) 0 Patch + MemberDecorate 17(SingleBlock) 0 Location 2 + MemberDecorate 17(SingleBlock) 1 Patch + MemberDecorate 17(SingleBlock) 1 Location 3 + MemberDecorate 17(SingleBlock) 2 Patch + MemberDecorate 17(SingleBlock) 2 Location 4 + Decorate 17(SingleBlock) Block + Decorate 19(singleBlock) Location 2 + MemberDecorate 20(bn) 0 Patch + MemberDecorate 20(bn) 0 Location 20 + MemberDecorate 20(bn) 0 Component 0 + MemberDecorate 20(bn) 1 Patch + MemberDecorate 20(bn) 1 Location 24 + MemberDecorate 20(bn) 2 Patch + MemberDecorate 20(bn) 2 Location 25 + MemberDecorate 20(bn) 2 Component 0 + Decorate 20(bn) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -74,13 +71,12 @@ Linked tessellation control stage: 14: TypeArray 11(TheBlock) 13 15: TypePointer Output 14 16(tcBlock): 15(ptr) Variable Output - 17(S): TypeStruct 6(float) 6(float) - 18(SingleBlock): TypeStruct 6(float) 6(float) 17(S) - 19: TypePointer Output 18(SingleBlock) - 20(singleBlock): 19(ptr) Variable Output - 21(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) - 22: TypePointer Output 21(bn) - 23: 22(ptr) Variable Output + 17(SingleBlock): TypeStruct 6(float) 6(float) 10(S) + 18: TypePointer Output 17(SingleBlock) + 19(singleBlock): 18(ptr) Variable Output + 20(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) + 21: TypePointer Output 20(bn) + 22: 21(ptr) Variable Output 4(main): 2 Function None 3 5: Label Return diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index f5cd5f15..91b40ad5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "Overload400-PrecQual.1456" -#define GLSLANG_DATE "31-Aug-2016" +#define GLSLANG_DATE "01-Sep-2016" From 65564a4ad647b0e1b100f4e5a188759d990f015b Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 2 Sep 2016 09:21:12 -0600 Subject: [PATCH 104/217] Remapper: move remapper tests into the glslangtests executable. --- gtests/CMakeLists.txt | 37 +++---------------------------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index 2b301836..8a91eef3 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -18,6 +18,8 @@ if (TARGET gmock) ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp + # -- Remapper tests + ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp ) add_executable(glslangtests ${TEST_SOURCES}) @@ -34,40 +36,7 @@ if (TARGET gmock) ${gmock_SOURCE_DIR}/include ${gtest_SOURCE_DIR}/include) target_link_libraries(glslangtests PRIVATE - glslang OSDependent OGLCompiler HLSL glslang + SPVRemapper glslang OSDependent OGLCompiler HLSL glslang SPIRV glslang-default-resource-limits gmock) add_test(NAME glslang-gtests COMMAND glslangtests) - - # -- Remapper tests - set(REMAPPER_TEST_SOURCES - # Framework related source files - ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h - ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h - ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h - - # Test related source files - ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp - ) - - add_executable(remappertests ${REMAPPER_TEST_SOURCES}) - set_property(TARGET remappertests PROPERTY FOLDER tests) - glslang_set_link_args(remappertests) - install(TARGETS remappertests - RUNTIME DESTINATION bin) - - target_compile_definitions(remappertests - PRIVATE GLSLANG_TEST_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/../Test") - target_include_directories(remappertests PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${PROJECT_SOURCE_DIR} - ${gmock_SOURCE_DIR}/include - ${gtest_SOURCE_DIR}/include) - target_link_libraries(remappertests PRIVATE - SPVRemapper - glslang OSDependent OGLCompiler HLSL glslang - SPIRV glslang-default-resource-limits gmock) - add_test(NAME remapper-gtests COMMAND remappertests) endif() From 4bf71550519121504c171a8c5b569d048e78d597 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 11:20:21 -0600 Subject: [PATCH 105/217] SPV: Flatten structs for copy when they are GLSL type aliases. Addresses issue #304 and issue #307 by replacing unmatched type OpStores with per-member copies. Covers assignment statements and most argument passing, but does not yet cover r-value-based argument passing. --- SPIRV/GlslangToSpv.cpp | 94 ++++++--- Test/baseResults/spv.multiStruct.comp.out | 192 ++++++++++++++++++ .../spv.multiStructFuncall.frag.out | 120 +++++++++++ Test/spv.multiStruct.comp | 48 +++++ Test/spv.multiStructFuncall.frag | 21 ++ glslang/Include/revision.h | 4 +- gtests/Spv.FromFile.cpp | 2 + 7 files changed, 455 insertions(+), 26 deletions(-) create mode 100755 Test/baseResults/spv.multiStruct.comp.out create mode 100755 Test/baseResults/spv.multiStructFuncall.frag.out create mode 100644 Test/spv.multiStruct.comp create mode 100755 Test/spv.multiStructFuncall.frag diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index ddad636b..84c9e734 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -130,6 +130,7 @@ protected: spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim); spv::Id accessChainLoad(const glslang::TType& type); void accessChainStore(const glslang::TType& type, spv::Id rvalue); + void multiTypeStore(const glslang::TType&, spv::Id rValue); glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const; int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix); @@ -188,7 +189,7 @@ protected: std::unordered_map extBuiltinMap; std::unordered_map symbolValues; - std::unordered_set constReadOnlyParameters; // set of formal function parameters that have glslang qualifier constReadOnly, so we know they are not local function "const" that are write-once + std::unordered_set rValueParameters; // set of formal function parameters passed as rValues, rather than a pointer std::unordered_map functionMap; std::unordered_map structMap[glslang::ElpCount][glslang::ElmCount]; std::unordered_map > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members) @@ -897,13 +898,12 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol) // For now, we consider all user variables as being in memory, so they are pointers, // except for - // A) "const in" arguments to a function, which are an intermediate object. + // A) R-Value arguments to a function, which are an intermediate object. // See comments in handleUserFunctionCall(). - // B) Specialization constants (normal constant don't even come in as a variable), + // B) Specialization constants (normal constants don't even come in as a variable), // These are also pure R-values. glslang::TQualifier qualifier = symbol->getQualifier(); - if ((qualifier.storage == glslang::EvqConstReadOnly && constReadOnlyParameters.find(symbol->getId()) != constReadOnlyParameters.end()) || - qualifier.isSpecConstant()) + if (qualifier.isSpecConstant() || rValueParameters.find(symbol->getId()) != rValueParameters.end()) builder.setAccessChainRValue(id); else builder.setAccessChainLValue(id); @@ -965,16 +965,7 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T // store the result builder.setAccessChain(lValue); - if (builder.isStructType(builder.getTypeId(rValue))) { - //spv::Id lType = builder.getContainedTypeId(builder.getTypeId(builder.accessChainGetLValue())); - //spv::Id rType = builder.getTypeId(rValue); - //if (lType != rType) { - // TODO: do member-wise copy instead, this is current issue - // https://github.com/KhronosGroup/glslang/issues/304 - //} else - accessChainStore(node->getType(), rValue); - } else - accessChainStore(node->getType(), rValue); + multiTypeStore(node->getType(), rValue); // assignments are expressions having an rValue after they are evaluated... builder.clearAccessChain(); @@ -2248,6 +2239,8 @@ spv::Id TGlslangToSpvTraverser::accessChainLoad(const glslang::TType& type) // Wrap the builder's accessChainStore to: // - do conversion of concrete to abstract type +// +// Implicitly uses the existing builder.accessChain as the storage target. void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::Id rvalue) { // Need to convert to abstract types when necessary @@ -2277,6 +2270,57 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I builder.accessChainStore(rvalue); } +// For storing when types match at the glslang level, but not might match at the +// SPIR-V level. +// +// This especially happens when a single glslang type expands to multiple +// SPIR-V types, like a struct that is used in an member-undecorated way as well +// as in a member-decorated way. +// +// NOTE: This function can handle any store request; if it's not special it +// simplifies to a simple OpStore. +// +// Implicitly uses the existing builder.accessChain as the storage target. +void TGlslangToSpvTraverser::multiTypeStore(const glslang::TType& type, spv::Id rValue) +{ + // we only do the complex path here if it's a structure + if (! type.isStruct()) { + accessChainStore(type, rValue); + return; + } + + // and, it has to be a case of structure type aliasing + spv::Id rType = builder.getTypeId(rValue); + spv::Id lValue = builder.accessChainGetLValue(); + spv::Id lType = builder.getContainedTypeId(builder.getTypeId(lValue)); + if (lType == rType) { + accessChainStore(type, rValue); + return; + } + + // Recursively (as needed) copy a struct type to a different struct type, + // where the two types were the same type in GLSL. This requires member + // by member copy, recursively. + + // loop over members + const glslang::TTypeList& members = *type.getStruct(); + for (int m = 0; m < (int)members.size(); ++m) { + const glslang::TType& glslangMemberType = *members[m].type; + + // get the source member + spv::Id memberRType = builder.getContainedTypeId(rType, m); + spv::Id memberRValue = builder.createCompositeExtract(rValue, memberRType, m); + + // set up the target storage + builder.clearAccessChain(); + builder.setAccessChainLValue(lValue); + builder.accessChainPush(builder.makeIntConstant(m)); + + // store the member + multiTypeStore(glslangMemberType, memberRValue); + } +} + // Decide whether or not this type should be // decorated with offsets and strides, and if so // whether std140 or std430 rules should be applied. @@ -2403,19 +2447,18 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF continue; // We're on a user function. Set up the basic interface for the function now, - // so that it's available to call. - // Translating the body will happen later. + // so that it's available to call. Translating the body will happen later. // // Typically (except for a "const in" parameter), an address will be passed to the // function. What it is an address of varies: // - // - "in" parameters not marked as "const" can be written to without modifying the argument, - // so that write needs to be to a copy, hence the address of a copy works. + // - "in" parameters not marked as "const" can be written to without modifying the calling + // argument so that write needs to be to a copy, hence the address of a copy works. // // - "const in" parameters can just be the r-value, as no writes need occur. // - // - "out" and "inout" arguments can't be done as direct pointers, because GLSL has - // copy-in/copy-out semantics. They can be handled though with a pointer to a copy. + // - "out" and "inout" arguments can't be done as pointers to the calling argument, because + // GLSL has copy-in/copy-out semantics. They can be handled though with a pointer to a copy. std::vector paramTypes; std::vector paramPrecisions; @@ -2429,7 +2472,7 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) typeId = builder.makePointer(spv::StorageClassFunction, typeId); else - constReadOnlyParameters.insert(parameters[p]->getAsSymbolNode()->getId()); + rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId()); paramPrecisions.push_back(TranslatePrecisionDecoration(paramType)); paramTypes.push_back(typeId); } @@ -2914,7 +2957,9 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // need to copy the input into output space builder.setAccessChain(lValues[lValueCount]); spv::Id copy = accessChainLoad(*argTypes[a]); - builder.createStore(copy, arg); + builder.clearAccessChain(); + builder.setAccessChainLValue(arg); + multiTypeStore(paramType, copy); } ++lValueCount; } else { @@ -2931,11 +2976,12 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg // 4. Copy back out an "out" arguments. lValueCount = 0; for (int a = 0; a < (int)glslangArgs.size(); ++a) { + const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); if (qualifiers[a] != glslang::EvqConstReadOnly) { if (qualifiers[a] == glslang::EvqOut || qualifiers[a] == glslang::EvqInOut) { spv::Id copy = builder.createLoad(spvArgs[a]); builder.setAccessChain(lValues[lValueCount]); - accessChainStore(glslangArgs[a]->getAsTyped()->getType(), copy); + multiTypeStore(paramType, copy); } ++lValueCount; } diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out new file mode 100755 index 00000000..a2ab8f81 --- /dev/null +++ b/Test/baseResults/spv.multiStruct.comp.out @@ -0,0 +1,192 @@ +spv.multiStruct.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked compute stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 97 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Name 9 "MyStruct" + MemberName 9(MyStruct) 0 "foo" + MemberName 9(MyStruct) 1 "sb" + Name 11 "t" + Name 13 "MyStruct" + MemberName 13(MyStruct) 0 "foo" + MemberName 13(MyStruct) 1 "sb" + Name 14 "SSBO0" + MemberName 14(SSBO0) 0 "a" + Name 16 "inBuf" + Name 29 "SSBO1" + MemberName 29(SSBO1) 0 "b" + Name 31 "outBuf" + Name 43 "MyStruct" + MemberName 43(MyStruct) 0 "foo" + MemberName 43(MyStruct) 1 "sb" + Name 44 "UBO" + MemberName 44(UBO) 0 "c" + Name 46 "uBuf" + Name 61 "Nested" + MemberName 61(Nested) 0 "f" + MemberName 61(Nested) 1 "S" + Name 63 "n" + Name 64 "Nested" + MemberName 64(Nested) 0 "f" + MemberName 64(Nested) 1 "S" + Name 65 "UBON" + MemberName 65(UBON) 0 "N1" + Name 67 "uBufN" + Name 80 "Nested" + MemberName 80(Nested) 0 "f" + MemberName 80(Nested) 1 "S" + Name 81 "SSBO1N" + MemberName 81(SSBO1N) 0 "N2" + Name 83 "outBufN" + MemberDecorate 13(MyStruct) 0 Offset 0 + MemberDecorate 13(MyStruct) 1 Offset 16 + MemberDecorate 14(SSBO0) 0 Offset 0 + Decorate 14(SSBO0) BufferBlock + Decorate 16(inBuf) DescriptorSet 0 + Decorate 16(inBuf) Binding 0 + MemberDecorate 29(SSBO1) 0 Offset 0 + Decorate 29(SSBO1) BufferBlock + Decorate 31(outBuf) DescriptorSet 0 + Decorate 31(outBuf) Binding 1 + MemberDecorate 43(MyStruct) 0 Offset 0 + MemberDecorate 43(MyStruct) 1 Offset 16 + MemberDecorate 44(UBO) 0 Offset 0 + Decorate 44(UBO) Block + Decorate 46(uBuf) DescriptorSet 0 + Decorate 46(uBuf) Binding 2 + MemberDecorate 64(Nested) 0 Offset 0 + MemberDecorate 64(Nested) 1 Offset 16 + MemberDecorate 65(UBON) 0 Offset 0 + Decorate 65(UBON) Block + Decorate 67(uBufN) DescriptorSet 0 + Decorate 67(uBufN) Binding 2 + MemberDecorate 80(Nested) 0 Offset 0 + MemberDecorate 80(Nested) 1 Offset 16 + MemberDecorate 81(SSBO1N) 0 Offset 0 + Decorate 81(SSBO1N) BufferBlock + Decorate 83(outBufN) DescriptorSet 0 + Decorate 83(outBufN) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeBool + 9(MyStruct): TypeStruct 7(fvec4) 8(bool) + 10: TypePointer Function 9(MyStruct) + 12: TypeInt 32 0 + 13(MyStruct): TypeStruct 7(fvec4) 12(int) + 14(SSBO0): TypeStruct 13(MyStruct) + 15: TypePointer Uniform 14(SSBO0) + 16(inBuf): 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 13(MyStruct) + 23: TypePointer Function 7(fvec4) + 26: 17(int) Constant 1 + 27: TypePointer Function 8(bool) + 29(SSBO1): TypeStruct 13(MyStruct) + 30: TypePointer Uniform 29(SSBO1) + 31(outBuf): 30(ptr) Variable Uniform + 35: TypePointer Uniform 7(fvec4) + 38: 12(int) Constant 0 + 39: 12(int) Constant 1 + 41: TypePointer Uniform 12(int) + 43(MyStruct): TypeStruct 7(fvec4) 12(int) + 44(UBO): TypeStruct 43(MyStruct) + 45: TypePointer Uniform 44(UBO) + 46(uBuf): 45(ptr) Variable Uniform + 47: TypePointer Uniform 43(MyStruct) + 61(Nested): TypeStruct 6(float) 9(MyStruct) + 62: TypePointer Function 61(Nested) + 64(Nested): TypeStruct 6(float) 43(MyStruct) + 65(UBON): TypeStruct 64(Nested) + 66: TypePointer Uniform 65(UBON) + 67(uBufN): 66(ptr) Variable Uniform + 68: TypePointer Uniform 64(Nested) + 72: TypePointer Function 6(float) + 80(Nested): TypeStruct 6(float) 13(MyStruct) + 81(SSBO1N): TypeStruct 80(Nested) + 82: TypePointer Uniform 81(SSBO1N) + 83(outBufN): 82(ptr) Variable Uniform + 85: TypePointer Uniform 80(Nested) + 88: TypePointer Uniform 6(float) + 4(main): 2 Function None 3 + 5: Label + 11(t): 10(ptr) Variable Function + 63(n): 62(ptr) Variable Function + 20: 19(ptr) AccessChain 16(inBuf) 18 + 21:13(MyStruct) Load 20 + 22: 7(fvec4) CompositeExtract 21 0 + 24: 23(ptr) AccessChain 11(t) 18 + Store 24 22 + 25: 12(int) CompositeExtract 21 1 + 28: 27(ptr) AccessChain 11(t) 26 + Store 28 25 + 32: 9(MyStruct) Load 11(t) + 33: 19(ptr) AccessChain 31(outBuf) 18 + 34: 7(fvec4) CompositeExtract 32 0 + 36: 35(ptr) AccessChain 33 18 + Store 36 34 + 37: 8(bool) CompositeExtract 32 1 + 40: 12(int) Select 37 39 38 + 42: 41(ptr) AccessChain 33 26 + Store 42 40 + 48: 47(ptr) AccessChain 46(uBuf) 18 + 49:43(MyStruct) Load 48 + 50: 7(fvec4) CompositeExtract 49 0 + 51: 23(ptr) AccessChain 11(t) 18 + Store 51 50 + 52: 12(int) CompositeExtract 49 1 + 53: 27(ptr) AccessChain 11(t) 26 + Store 53 52 + 54: 9(MyStruct) Load 11(t) + 55: 19(ptr) AccessChain 31(outBuf) 18 + 56: 7(fvec4) CompositeExtract 54 0 + 57: 35(ptr) AccessChain 55 18 + Store 57 56 + 58: 8(bool) CompositeExtract 54 1 + 59: 12(int) Select 58 39 38 + 60: 41(ptr) AccessChain 55 26 + Store 60 59 + 69: 68(ptr) AccessChain 67(uBufN) 18 + 70: 64(Nested) Load 69 + 71: 6(float) CompositeExtract 70 0 + 73: 72(ptr) AccessChain 63(n) 18 + Store 73 71 + 74:43(MyStruct) CompositeExtract 70 1 + 75: 10(ptr) AccessChain 63(n) 26 + 76: 7(fvec4) CompositeExtract 74 0 + 77: 23(ptr) AccessChain 75 18 + Store 77 76 + 78: 12(int) CompositeExtract 74 1 + 79: 27(ptr) AccessChain 75 26 + Store 79 78 + 84: 61(Nested) Load 63(n) + 86: 85(ptr) AccessChain 83(outBufN) 18 + 87: 6(float) CompositeExtract 84 0 + 89: 88(ptr) AccessChain 86 18 + Store 89 87 + 90: 9(MyStruct) CompositeExtract 84 1 + 91: 19(ptr) AccessChain 86 26 + 92: 7(fvec4) CompositeExtract 90 0 + 93: 35(ptr) AccessChain 91 18 + Store 93 92 + 94: 8(bool) CompositeExtract 90 1 + 95: 12(int) Select 94 39 38 + 96: 41(ptr) AccessChain 91 26 + Store 96 95 + Return + FunctionEnd diff --git a/Test/baseResults/spv.multiStructFuncall.frag.out b/Test/baseResults/spv.multiStructFuncall.frag.out new file mode 100755 index 00000000..dcbcfa00 --- /dev/null +++ b/Test/baseResults/spv.multiStructFuncall.frag.out @@ -0,0 +1,120 @@ +spv.multiStructFuncall.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 63 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "m" + Name 12 "fooConst(struct-S-mf441;" + Name 11 "s" + Name 17 "foo(struct-S-mf441;" + Name 16 "s" + Name 20 "fooOut(struct-S-mf441;" + Name 19 "s" + Name 22 "S" + MemberName 22(S) 0 "m" + Name 23 "blockName" + MemberName 23(blockName) 0 "s1" + Name 25 "" + Name 33 "s2" + Name 36 "S" + MemberName 36(S) 0 "m" + Name 38 "param" + Name 45 "param" + Name 48 "param" + Name 59 "param" + MemberDecorate 22(S) 0 ColMajor + MemberDecorate 22(S) 0 Offset 0 + MemberDecorate 22(S) 0 MatrixStride 16 + MemberDecorate 23(blockName) 0 Offset 0 + Decorate 23(blockName) BufferBlock + Decorate 25 DescriptorSet 0 + MemberDecorate 36(S) 0 ColMajor + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeMatrix 7(fvec4) 4 + 9(S): TypeStruct 8 + 10: TypeFunction 2 9(S) + 14: TypePointer Function 9(S) + 15: TypeFunction 2 14(ptr) + 22(S): TypeStruct 8 + 23(blockName): TypeStruct 22(S) + 24: TypePointer Uniform 23(blockName) + 25: 24(ptr) Variable Uniform + 26: TypeInt 32 1 + 27: 26(int) Constant 0 + 28: TypePointer Uniform 22(S) + 32: TypePointer Private 9(S) + 33(s2): 32(ptr) Variable Private + 36(S): TypeStruct 8 + 37: TypePointer Function 36(S) + 42: TypePointer Function 8 + 57: TypePointer Uniform 8 + 4(main): 2 Function None 3 + 5: Label + 38(param): 37(ptr) Variable Function + 45(param): 14(ptr) Variable Function + 48(param): 37(ptr) Variable Function + 59(param): 14(ptr) Variable Function + 29: 28(ptr) AccessChain 25 27 + 30: 22(S) Load 29 + 31: 2 FunctionCall 12(fooConst(struct-S-mf441;) 30 + 34: 9(S) Load 33(s2) + 35: 2 FunctionCall 12(fooConst(struct-S-mf441;) 34 + 39: 28(ptr) AccessChain 25 27 + 40: 22(S) Load 39 + 41: 8 CompositeExtract 40 0 + 43: 42(ptr) AccessChain 38(param) 27 + Store 43 41 + 44: 2 FunctionCall 17(foo(struct-S-mf441;) 38(param) + 46: 9(S) Load 33(s2) + Store 45(param) 46 + 47: 2 FunctionCall 17(foo(struct-S-mf441;) 45(param) + 49: 28(ptr) AccessChain 25 27 + 50: 22(S) Load 49 + 51: 8 CompositeExtract 50 0 + 52: 42(ptr) AccessChain 48(param) 27 + Store 52 51 + 53: 2 FunctionCall 20(fooOut(struct-S-mf441;) 48(param) + 54: 36(S) Load 48(param) + 55: 28(ptr) AccessChain 25 27 + 56: 8 CompositeExtract 54 0 + 58: 57(ptr) AccessChain 55 27 + Store 58 56 + 60: 9(S) Load 33(s2) + Store 59(param) 60 + 61: 2 FunctionCall 20(fooOut(struct-S-mf441;) 59(param) + 62: 9(S) Load 59(param) + Store 33(s2) 62 + Return + FunctionEnd +12(fooConst(struct-S-mf441;): 2 Function None 10 + 11(s): 9(S) FunctionParameter + 13: Label + Return + FunctionEnd +17(foo(struct-S-mf441;): 2 Function None 15 + 16(s): 14(ptr) FunctionParameter + 18: Label + Return + FunctionEnd +20(fooOut(struct-S-mf441;): 2 Function None 15 + 19(s): 14(ptr) FunctionParameter + 21: Label + Return + FunctionEnd diff --git a/Test/spv.multiStruct.comp b/Test/spv.multiStruct.comp new file mode 100644 index 00000000..de27ccb7 --- /dev/null +++ b/Test/spv.multiStruct.comp @@ -0,0 +1,48 @@ +#version 450 core + +struct MyStruct +{ + vec4 foo; + bool sb; +}; + +layout(binding = 0, std430) buffer SSBO0 +{ + MyStruct a; +} inBuf; + +layout(binding = 1, std430) buffer SSBO1 +{ + MyStruct b; +} outBuf; + +layout(binding = 2, std140) uniform UBO +{ + MyStruct c; +} uBuf; + +struct Nested { + float f; + MyStruct S; +}; + +layout(binding = 2, std140) uniform UBON +{ + Nested N1; +} uBufN; + +layout(binding = 1, std430) buffer SSBO1N +{ + Nested N2; +} outBufN; + +void main() +{ + MyStruct t = inBuf.a; + outBuf.b = t; + t = uBuf.c; + outBuf.b = t; + + Nested n = uBufN.N1; + outBufN.N2 = n; +} diff --git a/Test/spv.multiStructFuncall.frag b/Test/spv.multiStructFuncall.frag new file mode 100755 index 00000000..7f9968dc --- /dev/null +++ b/Test/spv.multiStructFuncall.frag @@ -0,0 +1,21 @@ +#version 450 + +struct S { mat4 m; }; +buffer blockName { S s1; }; // need an S with decoration +S s2; // no decorations on S + +void fooConst(const in S s) { } +void foo(in S s) { } +void fooOut(inout S s) { } + +void main() +{ + fooConst(s1); + fooConst(s2); + + foo(s1); + foo(s2); + + fooOut(s1); + fooOut(s2); +} \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 91b40ad5..eac03933 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1456" -#define GLSLANG_DATE "01-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1460" +#define GLSLANG_DATE "02-Sep-2016" diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index a8f3dd86..45fed044 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -164,6 +164,8 @@ INSTANTIATE_TEST_CASE_P( "spv.matrix2.frag", "spv.memoryQualifier.frag", "spv.merge-unreachable.frag", + "spv.multiStruct.comp", + "spv.multiStructFuncall.frag", "spv.newTexture.frag", "spv.noDeadDecorations.vert", "spv.nonSquare.vert", From 1a4b775cd5589ea075d9dc3aaffa16657403f27c Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 19:05:24 -0600 Subject: [PATCH 106/217] HLSL: Correct line numbers for function definitions. --- Test/baseResults/hlsl.array.frag.out | 4 +- Test/baseResults/hlsl.assoc.frag.out | 4 +- Test/baseResults/hlsl.attribute.frag.out | 4 +- Test/baseResults/hlsl.buffer.frag.out | 4 +- .../hlsl.calculatelod.dx10.frag.out | 4 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 4 +- Test/baseResults/hlsl.cast.frag.out | 4 +- Test/baseResults/hlsl.conditional.frag.out | 4 +- Test/baseResults/hlsl.constructexpr.frag.out | 4 +- Test/baseResults/hlsl.discard.frag.out | 8 +- Test/baseResults/hlsl.doLoop.frag.out | 4 +- Test/baseResults/hlsl.entry-out.frag.out | 4 +- Test/baseResults/hlsl.float1.frag.out | 4 +- Test/baseResults/hlsl.float4.frag.out | 4 +- Test/baseResults/hlsl.forLoop.frag.out | 4 +- .../hlsl.gather.array.dx10.frag.out | 4 +- .../hlsl.gather.basic.dx10.frag.out | 4 +- .../hlsl.gather.basic.dx10.vert.out | 4 +- .../hlsl.gather.offset.dx10.frag.out | 4 +- .../hlsl.gather.offsetarray.dx10.frag.out | 4 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 4 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 4 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 4 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 4 +- .../hlsl.getdimensions.dx10.frag.out | 4 +- .../hlsl.getdimensions.dx10.vert.out | 4 +- .../hlsl.getsampleposition.dx10.frag.out | 4 +- Test/baseResults/hlsl.if.frag.out | 4 +- Test/baseResults/hlsl.init.frag.out | 4 +- Test/baseResults/hlsl.init2.frag.out | 8 +- Test/baseResults/hlsl.inoutquals.frag.out | 8 +- .../hlsl.intrinsics.barriers.comp.out | 4 +- Test/baseResults/hlsl.intrinsics.comp.out | 20 +-- .../hlsl.intrinsics.double.frag.out | 4 +- .../hlsl.intrinsics.evalfns.frag.out | 4 +- .../hlsl.intrinsics.f1632.frag.out | 20 +-- Test/baseResults/hlsl.intrinsics.frag.out | 48 +++---- Test/baseResults/hlsl.intrinsics.lit.frag.out | 4 +- .../hlsl.intrinsics.negative.comp.out | 20 +-- .../hlsl.intrinsics.negative.frag.out | 32 ++--- .../hlsl.intrinsics.negative.vert.out | 32 ++--- Test/baseResults/hlsl.intrinsics.vert.out | 48 +++---- Test/baseResults/hlsl.layout.frag.out | 4 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 4 +- .../baseResults/hlsl.load.array.dx10.frag.out | 4 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 4 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 4 +- .../hlsl.load.buffer.dx10.frag.out | 4 +- .../hlsl.load.offset.dx10.frag.out | 4 +- .../hlsl.load.offsetarray.dx10.frag.out | 4 +- Test/baseResults/hlsl.matType.frag.out | 4 +- Test/baseResults/hlsl.max.frag.out | 4 +- .../baseResults/hlsl.numericsuffixes.frag.out | 4 +- Test/baseResults/hlsl.overload.frag.out | 132 +++++++++--------- Test/baseResults/hlsl.pp.line.frag.out | 4 +- Test/baseResults/hlsl.precedence.frag.out | 4 +- Test/baseResults/hlsl.precedence2.frag.out | 4 +- Test/baseResults/hlsl.precise.frag.out | 8 +- Test/baseResults/hlsl.promotions.frag.out | 104 +++++++------- .../hlsl.sample.array.dx10.frag.out | 4 +- .../hlsl.sample.basic.dx10.frag.out | 4 +- .../hlsl.sample.offset.dx10.frag.out | 4 +- .../hlsl.sample.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplebias.array.dx10.frag.out | 4 +- .../hlsl.samplebias.basic.dx10.frag.out | 4 +- .../hlsl.samplebias.offset.dx10.frag.out | 4 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplecmp.array.dx10.frag.out | 4 +- .../hlsl.samplecmp.basic.dx10.frag.out | 4 +- .../hlsl.samplecmp.offset.dx10.frag.out | 4 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 4 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 4 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 4 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 4 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplegrad.array.dx10.frag.out | 4 +- .../hlsl.samplegrad.basic.dx10.frag.out | 4 +- .../hlsl.samplegrad.basic.dx10.vert.out | 4 +- .../hlsl.samplegrad.offset.dx10.frag.out | 4 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplelevel.array.dx10.frag.out | 4 +- .../hlsl.samplelevel.basic.dx10.frag.out | 4 +- .../hlsl.samplelevel.basic.dx10.vert.out | 4 +- .../hlsl.samplelevel.offset.dx10.frag.out | 4 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 4 +- Test/baseResults/hlsl.scope.frag.out | 4 +- Test/baseResults/hlsl.semicolons.frag.out | 8 +- Test/baseResults/hlsl.shapeConv.frag.out | 4 +- Test/baseResults/hlsl.sin.frag.out | 4 +- Test/baseResults/hlsl.stringtoken.frag.out | 4 +- Test/baseResults/hlsl.struct.frag.out | 4 +- Test/baseResults/hlsl.switch.frag.out | 4 +- Test/baseResults/hlsl.swizzle.frag.out | 4 +- Test/baseResults/hlsl.templatetypes.frag.out | 4 +- Test/baseResults/hlsl.typedef.frag.out | 4 +- Test/baseResults/hlsl.void.frag.out | 12 +- Test/baseResults/hlsl.whileLoop.frag.out | 4 +- hlsl/hlslGrammar.cpp | 5 +- 98 files changed, 421 insertions(+), 420 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index cb1589e6..bcd28d3f 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -2,7 +2,7 @@ hlsl.array.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 8201aaf3..a99be597 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -2,7 +2,7 @@ hlsl.assoc.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) @@ -41,7 +41,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index cb0b68bd..fd99cf51 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -2,7 +2,7 @@ hlsl.attribute.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -20,7 +20,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 9f79ab90..23f8627d 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -2,7 +2,7 @@ hlsl.buffer.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:26 Function Parameters: 0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -44,7 +44,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:26 Function Parameters: 0:26 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 7afcf873..f11dd281 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index e46c1a65..e9b3c0cf 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index bcf35cb1..21edaf12 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -2,7 +2,7 @@ hlsl.cast.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -31,7 +31,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index e0356b5e..8694b1dc 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -2,7 +2,7 @@ hlsl.conditional.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -117,7 +117,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 24e5f34e..31e013cc 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -2,7 +2,7 @@ hlsl.constructexpr.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -48,7 +48,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index cee9a456..807799ab 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -2,7 +2,7 @@ hlsl.discard.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (global void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -14,7 +14,7 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -48,7 +48,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (global void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 5f5d384e..b13e8d15 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -2,7 +2,7 @@ hlsl.doLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -36,7 +36,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index a5cac6fe..b76d4527 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -2,7 +2,7 @@ hlsl.entry-out.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (out 4-component vector of float) @@ -41,7 +41,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (out 4-component vector of float) diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 64c7e17a..313be0b5 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index ba443261..85b3c9b4 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -13,7 +13,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:9 Function Parameters: 0:9 'input' (in 4-component vector of float) 0:? Sequence @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:12 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:9 Function Parameters: 0:9 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index ad9dc88f..ca0cf5aa 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -2,7 +2,7 @@ hlsl.forLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -122,7 +122,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 314aa7f1..ca195e84 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -116,7 +116,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 9c38bb67..0b0a2773 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -114,7 +114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index b0e35787..0573bdfe 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.gather.basic.dx10.vert Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -105,7 +105,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index f5d818d0..75ac976c 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -89,7 +89,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 32d56133..3a0e637c 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -86,7 +86,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 8e7a9266..d85f20bc 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -291,7 +291,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 24ad0a27..83992d55 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -295,7 +295,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 32ab1286..9b2ab967 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -371,7 +371,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 771b3717..acba726b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -367,7 +367,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 53864af1..ffd42faa 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1102,7 +1102,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 605540e8..d98bb60b 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.getdimensions.dx10.vert Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:11 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -51,7 +51,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:11 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index c138707f..9ada2a38 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,7 +7,7 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -60,7 +60,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 5c8f2176..d29cdb1b 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -2,7 +2,7 @@ hlsl.if.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -101,7 +101,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 61a63a41..65dae396 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -234,7 +234,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 6fed4767..d3721ec0 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -2,7 +2,7 @@ hlsl.init2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (global void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (global void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:33 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence 0:27 Function Call: Test1( (global void) diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index c396c8fd..175dd0cd 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -2,7 +2,7 @@ hlsl.inoutquals.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (global void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -69,7 +69,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (global void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:26 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 9178ddcd..3a1342c7 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:14 Function Definition: ComputeShaderFunction( (global float) +0:3 Function Definition: ComputeShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) @@ -26,7 +26,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:14 Function Definition: ComputeShaderFunction( (global float) +0:3 Function Definition: ComputeShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index fa1d8343..62337a99 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:44 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -74,7 +74,7 @@ local_size = (1, 1, 1) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:50 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -83,7 +83,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:77 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -156,7 +156,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:104 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -230,7 +230,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -329,7 +329,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:44 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -401,7 +401,7 @@ local_size = (1, 1, 1) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:50 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -410,7 +410,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:77 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -483,7 +483,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:104 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -557,7 +557,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 07317af4..c6a812cf 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.double.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) @@ -42,7 +42,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index 818c89c4..4b3b58d6 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) @@ -52,7 +52,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 9eefd5ff..85e38391 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -9,7 +9,7 @@ ERROR: 4 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:8 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -19,14 +19,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -37,7 +37,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -49,7 +49,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -74,7 +74,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:8 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -84,14 +84,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -102,7 +102,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -114,7 +114,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 8bf2e283..ba3cb537 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:88 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -339,7 +339,7 @@ gl_FragCoord origin is upper left 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:94 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -348,7 +348,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:177 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -733,7 +733,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -1138,7 +1138,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (layout(location=0 ) in 4-component vector of float) 0:260 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -1561,7 +1561,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 4.000000 0:337 Branch: Return -0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -1849,7 +1849,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -2147,7 +2147,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -2459,7 +2459,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -2522,7 +2522,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) -0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -2585,7 +2585,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) -0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -2648,7 +2648,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) -0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) @@ -2783,7 +2783,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:88 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -3120,7 +3120,7 @@ gl_FragCoord origin is upper left 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:94 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -3129,7 +3129,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:177 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -3514,7 +3514,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -3919,7 +3919,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (layout(location=0 ) in 4-component vector of float) 0:260 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -4342,7 +4342,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 4.000000 0:337 Branch: Return -0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -4630,7 +4630,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -4928,7 +4928,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -5240,7 +5240,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -5303,7 +5303,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) -0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -5366,7 +5366,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) -0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -5429,7 +5429,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) -0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index 12e5919f..506f6147 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.lit.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) @@ -44,7 +44,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 75f8d685..d8ca8b07 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.negative.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -12,7 +12,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -22,7 +22,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -33,7 +33,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -45,7 +45,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -70,7 +70,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -80,7 +80,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -90,7 +90,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -101,7 +101,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -113,7 +113,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 95a30212..ff8775a3 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -65,7 +65,7 @@ ERROR: 60 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -142,7 +142,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -154,7 +154,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -197,7 +197,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -233,7 +233,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -276,7 +276,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -314,7 +314,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -357,7 +357,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) @@ -416,7 +416,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -493,7 +493,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -505,7 +505,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -548,7 +548,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -584,7 +584,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -627,7 +627,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -665,7 +665,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -708,7 +708,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index c3165e74..364a3eb0 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.negative.vert Shader version: 450 0:? Sequence -0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -11,7 +11,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:83 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -21,7 +21,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:130 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -32,7 +32,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:175 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -44,7 +44,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -60,7 +60,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -72,7 +72,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:241 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -89,7 +89,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:248 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) @@ -133,7 +133,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -143,7 +143,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:83 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -153,7 +153,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:130 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -164,7 +164,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:175 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -176,7 +176,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:225 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -192,7 +192,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:233 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -204,7 +204,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:241 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -221,7 +221,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:248 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 7f9ee7d7..8368e267 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.vert Shader version: 450 0:? Sequence -0:63 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -142,7 +142,7 @@ Shader version: 450 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:69 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -151,7 +151,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:139 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -317,7 +317,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:210 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -489,7 +489,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:335 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -681,7 +681,7 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:344 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) @@ -811,7 +811,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:353 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) @@ -946,7 +946,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:374 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) @@ -1088,7 +1088,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:381 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -1151,7 +1151,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) -0:388 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -1214,7 +1214,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) -0:396 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -1277,7 +1277,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) -0:420 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) @@ -1399,7 +1399,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:63 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -1540,7 +1540,7 @@ Shader version: 450 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:69 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -1549,7 +1549,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:139 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -1715,7 +1715,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:210 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -1887,7 +1887,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:335 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -2079,7 +2079,7 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:344 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) @@ -2209,7 +2209,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:353 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) @@ -2344,7 +2344,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:374 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) @@ -2486,7 +2486,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:381 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -2549,7 +2549,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) -0:388 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -2612,7 +2612,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) -0:396 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -2675,7 +2675,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) -0:420 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 58b4100d..0aacbd76 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -2,7 +2,7 @@ hlsl.layout.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:12 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:12 Function Parameters: 0:12 'input' (in 4-component vector of float) 0:? Sequence @@ -31,7 +31,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:12 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:12 Function Parameters: 0:12 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index f8b930cb..49c9acd5 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -117,7 +117,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index a9280b4c..28c5e043 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -150,7 +150,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 81465770..48860594 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -183,7 +183,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 8cae6d41..73fc756d 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.load.basic.dx10.vert Shader version: 450 0:? Sequence -0:71 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) @@ -174,7 +174,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:71 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 9e14aef0..64c14bc0 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -66,7 +66,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 7f32c688..317ff098 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -192,7 +192,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 1997d3df..6feae5d2 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -156,7 +156,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index a1a6d492..2159a814 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -7,7 +7,7 @@ gl_FragCoord origin is upper left 0:1 'f1' (global 1-component vector of float) 0:1 Constant: 0:1 1.000000 -0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left 0:1 'f1' (global 1-component vector of float) 0:1 Constant: 0:1 1.000000 -0:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 2fe397a6..51759586 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -2,7 +2,7 @@ hlsl.max.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) @@ -23,7 +23,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index ea6c4dd6..b48967fa 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 15123182..201d0846 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -2,113 +2,113 @@ hlsl.overload.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (global void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:4 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (global void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:5 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (global void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:6 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (global void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:9 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (global void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:10 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (global void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:11 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (global void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:12 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (global void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:13 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (global void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:16 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (global void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:17 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (global void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:18 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (global void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:19 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (global void) 0:18 Function Parameters: 0:18 'b' (in int) -0:20 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (global void) 0:19 Function Parameters: 0:19 'b' (in float) -0:23 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (global void) 0:20 Function Parameters: 0:20 'b' (in double) -0:24 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (global void) 0:23 Function Parameters: 0:23 '' (in float) -0:25 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (global void) 0:24 Function Parameters: 0:24 '' (in double) -0:26 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (global void) 0:25 Function Parameters: 0:25 '' (in int) -0:27 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (global void) 0:26 Function Parameters: 0:26 '' (in uint) -0:28 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (global void) 0:27 Function Parameters: 0:27 '' (in bool) -0:31 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (global void) 0:28 Function Parameters: 0:28 '' (in int) -0:32 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (global void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:33 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (global void) 0:32 Function Parameters: 0:32 '' (in double) -0:34 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (global void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:35 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (global void) 0:34 Function Parameters: 0:34 '' (in uint) -0:36 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (global void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:37 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (global void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:38 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (global void) 0:37 Function Parameters: 0:37 '' (in uint) -0:41 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (global void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:42 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (global void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:43 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (global void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:45 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (global void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -362,113 +362,113 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (global void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:4 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (global void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:5 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (global void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:6 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (global void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:9 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (global void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:10 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (global void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:11 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (global void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:12 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (global void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:13 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (global void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:16 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (global void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:17 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (global void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:18 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (global void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:19 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (global void) 0:18 Function Parameters: 0:18 'b' (in int) -0:20 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (global void) 0:19 Function Parameters: 0:19 'b' (in float) -0:23 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (global void) 0:20 Function Parameters: 0:20 'b' (in double) -0:24 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (global void) 0:23 Function Parameters: 0:23 '' (in float) -0:25 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (global void) 0:24 Function Parameters: 0:24 '' (in double) -0:26 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (global void) 0:25 Function Parameters: 0:25 '' (in int) -0:27 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (global void) 0:26 Function Parameters: 0:26 '' (in uint) -0:28 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (global void) 0:27 Function Parameters: 0:27 '' (in bool) -0:31 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (global void) 0:28 Function Parameters: 0:28 '' (in int) -0:32 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (global void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:33 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (global void) 0:32 Function Parameters: 0:32 '' (in double) -0:34 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (global void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:35 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (global void) 0:34 Function Parameters: 0:34 '' (in uint) -0:36 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (global void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:37 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (global void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:38 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (global void) 0:37 Function Parameters: 0:37 '' (in uint) -0:41 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (global void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:42 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (global void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:43 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (global void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:45 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (global void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:143 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 94a061f5..f8ed19e9 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -45,7 +45,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 5144f9df..d606cc96 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -2,7 +2,7 @@ hlsl.precedence.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) @@ -54,7 +54,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 57fab462..3218c792 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -2,7 +2,7 @@ hlsl.precedence2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) @@ -37,7 +37,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 1cf38b36..a3a780b1 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -2,11 +2,11 @@ hlsl.precise.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (global void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) @@ -34,11 +34,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (global void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:15 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 5586d57a..fbad6bc0 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -2,22 +2,22 @@ hlsl.promotions.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (global void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:21 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (global void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:22 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (global void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:23 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (global void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:26 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (global void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:27 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) 0:26 'i3' (uniform 3-component vector of int) -0:28 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) 0:27 'u3' (uniform 3-component vector of uint) -0:29 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) 0:28 'b3' (uniform 3-component vector of bool) -0:31 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) 0:29 'd3' (uniform 3-component vector of double) -0:32 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) 0:31 'u3' (uniform 3-component vector of uint) -0:33 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) 0:32 'b3' (uniform 3-component vector of bool) -0:34 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) 0:33 'f3' (uniform 3-component vector of float) -0:36 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence @@ -105,7 +105,7 @@ gl_FragCoord origin is upper left 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) 0:34 'd3' (uniform 3-component vector of double) -0:37 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence @@ -116,7 +116,7 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) 0:36 'i3' (uniform 3-component vector of int) -0:38 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence @@ -127,7 +127,7 @@ gl_FragCoord origin is upper left 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) 0:37 'f3' (uniform 3-component vector of float) -0:39 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence @@ -138,7 +138,7 @@ gl_FragCoord origin is upper left 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) 0:38 'b3' (uniform 3-component vector of bool) -0:41 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence @@ -149,7 +149,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) 0:39 'd3' (uniform 3-component vector of double) -0:42 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence @@ -160,7 +160,7 @@ gl_FragCoord origin is upper left 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) 0:41 'i3' (uniform 3-component vector of int) -0:43 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) 0:42 'u3' (uniform 3-component vector of uint) -0:44 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) 0:43 'f3' (uniform 3-component vector of float) -0:46 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) 0:44 'd3' (uniform 3-component vector of double) -0:47 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) 0:46 'i3' (uniform 3-component vector of int) -0:48 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) 0:47 'u3' (uniform 3-component vector of uint) -0:49 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) 0:48 'b3' (uniform 3-component vector of bool) -0:51 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence @@ -520,22 +520,22 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (global void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:21 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (global void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:22 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (global void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:23 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (global void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:26 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (global void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:27 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence @@ -546,7 +546,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) 0:26 'i3' (uniform 3-component vector of int) -0:28 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence @@ -557,7 +557,7 @@ gl_FragCoord origin is upper left 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) 0:27 'u3' (uniform 3-component vector of uint) -0:29 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence @@ -568,7 +568,7 @@ gl_FragCoord origin is upper left 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) 0:28 'b3' (uniform 3-component vector of bool) -0:31 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence @@ -579,7 +579,7 @@ gl_FragCoord origin is upper left 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) 0:29 'd3' (uniform 3-component vector of double) -0:32 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence @@ -590,7 +590,7 @@ gl_FragCoord origin is upper left 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) 0:31 'u3' (uniform 3-component vector of uint) -0:33 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence @@ -601,7 +601,7 @@ gl_FragCoord origin is upper left 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) 0:32 'b3' (uniform 3-component vector of bool) -0:34 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence @@ -612,7 +612,7 @@ gl_FragCoord origin is upper left 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) 0:33 'f3' (uniform 3-component vector of float) -0:36 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence @@ -623,7 +623,7 @@ gl_FragCoord origin is upper left 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) 0:34 'd3' (uniform 3-component vector of double) -0:37 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence @@ -634,7 +634,7 @@ gl_FragCoord origin is upper left 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) 0:36 'i3' (uniform 3-component vector of int) -0:38 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence @@ -645,7 +645,7 @@ gl_FragCoord origin is upper left 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) 0:37 'f3' (uniform 3-component vector of float) -0:39 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence @@ -656,7 +656,7 @@ gl_FragCoord origin is upper left 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) 0:38 'b3' (uniform 3-component vector of bool) -0:41 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence @@ -667,7 +667,7 @@ gl_FragCoord origin is upper left 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) 0:39 'd3' (uniform 3-component vector of double) -0:42 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence @@ -678,7 +678,7 @@ gl_FragCoord origin is upper left 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) 0:41 'i3' (uniform 3-component vector of int) -0:43 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence @@ -689,7 +689,7 @@ gl_FragCoord origin is upper left 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) 0:42 'u3' (uniform 3-component vector of uint) -0:44 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence @@ -700,7 +700,7 @@ gl_FragCoord origin is upper left 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) 0:43 'f3' (uniform 3-component vector of float) -0:46 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence @@ -711,7 +711,7 @@ gl_FragCoord origin is upper left 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) 0:44 'd3' (uniform 3-component vector of double) -0:47 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence @@ -722,7 +722,7 @@ gl_FragCoord origin is upper left 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) 0:46 'i3' (uniform 3-component vector of int) -0:48 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence @@ -733,7 +733,7 @@ gl_FragCoord origin is upper left 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) 0:47 'u3' (uniform 3-component vector of uint) -0:49 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence @@ -744,7 +744,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) 0:48 'b3' (uniform 3-component vector of bool) -0:51 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence @@ -755,7 +755,7 @@ gl_FragCoord origin is upper left 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) 0:49 'f3' (uniform 3-component vector of float) -0:202 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 9d367f09..2caeb72e 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 4423c5c3..73c39784 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -261,7 +261,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:91 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 80846509..ec030678 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -167,7 +167,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 3887bbab..e9ab2c70 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -122,7 +122,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 6ed1f206..b5066115 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 26ebe477..bd0263ca 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index c7e379de..a6bca8b8 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index d2955b0a..908fda0c 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 847e2916..ed4c1bf6 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -184,7 +184,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index ab624e24..b6ff4eb4 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -175,7 +175,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 3c5a9143..47bd5d91 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -148,7 +148,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 84918d0d..7eba5d3f 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -154,7 +154,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index e8e2603f..1f0fda7d 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -202,7 +202,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index a1f48e6c..14dd752c 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -193,7 +193,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index d9563a72..ac223cb0 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -160,7 +160,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 9e04bb0f..764d0dc4 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -166,7 +166,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 10fa4792..27a2a42a 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -200,7 +200,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 4580f21f..ce6d6efa 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -251,7 +251,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index c5fbcaa3..5943081c 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplegrad.basic.dx10.vert Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -242,7 +242,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index ad1adae7..348d27ad 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -221,7 +221,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index d1dd59ec..9aeaeddd 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -155,7 +155,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 246fb89b..59beba60 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -164,7 +164,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 230eb9e7..a7e26ca8 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -198,7 +198,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index a04ef218..f1fef1f6 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplelevel.basic.dx10.vert Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -188,7 +188,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 71be1ef1..608fd0ce 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -185,7 +185,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index ffe344d6..e762d59d 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index ba0c2d53..49dd577d 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -2,7 +2,7 @@ hlsl.scope.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -46,7 +46,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 53c599eb..91b88fd4 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -2,11 +2,11 @@ hlsl.semicolons.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (global void) 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) @@ -33,11 +33,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (global void) 0:2 Function Parameters: 0:8 Function Definition: MyFunc2( (global void) 0:8 Function Parameters: -0:18 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 84b39227..beeda4ae 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -2,7 +2,7 @@ hlsl.shapeConv.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -93,7 +93,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:23 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index c32282be..87c26bca 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -2,7 +2,7 @@ hlsl.sin.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -21,7 +21,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 2cf9dc0a..7cfd2d52 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -2,7 +2,7 @@ hlsl.stringtoken.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) @@ -31,7 +31,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:21 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index a1c23a27..70287ec0 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -6,7 +6,7 @@ WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -41,7 +41,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index ac46f01b..241dec3c 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -2,7 +2,7 @@ hlsl.switch.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) @@ -133,7 +133,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index accf27b7..0bc4bd06 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 06f3f480..1cbd292e 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -2,7 +2,7 @@ hlsl.templatetypes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence @@ -254,7 +254,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index 8e0c4290..0600873f 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -2,7 +2,7 @@ hlsl.typedef.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) @@ -43,7 +43,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index df1ef864..f9e0eaf1 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -2,11 +2,11 @@ hlsl.void.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (global void) 0:1 Function Parameters: -0:4 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -21,11 +21,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (global void) 0:1 Function Parameters: -0:4 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 564c74c4..cd88050b 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -2,7 +2,7 @@ hlsl.whileLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -42,7 +42,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3669b520..192e28ae 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1497,15 +1497,16 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node) { TFunction* functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); + TSourceLoc loc = token.loc; // This does a pushScope() - node = parseContext.handleFunctionDefinition(token.loc, *functionDeclarator); + node = parseContext.handleFunctionDefinition(loc, *functionDeclarator); // compound_statement TIntermNode* functionBody = nullptr; if (acceptCompoundStatement(functionBody)) { node = intermediate.growAggregate(node, functionBody); - intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), token.loc); + intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), loc); node->getAsAggregate()->setName(functionDeclarator->getMangledName().c_str()); parseContext.popScope(); From a305166ea427ba0618cde54ea03e647d73ab0044 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 19:13:36 -0600 Subject: [PATCH 107/217] HLSL: Error if funcion with return type doesn't return a value. --- Test/baseResults/hlsl.attribute.frag.out | 4 +- Test/baseResults/hlsl.discard.frag.out | 4 +- Test/baseResults/hlsl.matType.frag.out | 62 ++++++++++++---------- Test/baseResults/hlsl.scope.frag.out | 4 +- Test/baseResults/hlsl.void.frag.out | 8 +-- Test/hlsl.attribute.frag | 2 +- Test/hlsl.discard.frag | 2 +- Test/hlsl.matType.frag | 1 + Test/hlsl.scope.frag | 2 +- Test/hlsl.void.frag | 3 +- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 2 +- hlsl/hlslGrammar.cpp | 10 ++-- hlsl/hlslParseHelper.cpp | 17 +++++- hlsl/hlslParseHelper.h | 3 +- 15 files changed, 73 insertions(+), 53 deletions(-) diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index fd99cf51..efcc643f 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -2,7 +2,7 @@ hlsl.attribute.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -20,7 +20,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 807799ab..463ae5bb 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -14,7 +14,7 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 2159a814..20fdcc98 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -11,6 +11,9 @@ gl_FragCoord origin is upper left 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) +0:? Sequence +0:10 Branch: Return with expression +0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects 0:? 'f1' (global 1-component vector of float) 0:? 'fmat11' (global 1X1 matrix of float) @@ -35,6 +38,9 @@ gl_FragCoord origin is upper left 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) +0:? Sequence +0:10 Branch: Return with expression +0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects 0:? 'f1' (global 1-component vector of float) 0:? 'fmat11' (global 1X1 matrix of float) @@ -45,7 +51,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 38 +// Id's are bound by 40 Capability Shader Capability Float64 @@ -58,11 +64,11 @@ gl_FragCoord origin is upper left Name 9 "inFloat1" Name 10 "inScalar" Name 14 "f1" - Name 20 "fmat11" - Name 24 "fmat41" - Name 27 "fmat12" - Name 32 "dmat23" - Name 37 "int44" + Name 22 "fmat11" + Name 26 "fmat41" + Name 29 "fmat12" + Name 34 "dmat23" + Name 39 "int44" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -71,27 +77,27 @@ gl_FragCoord origin is upper left 13: TypePointer Private 6(float) 14(f1): 13(ptr) Variable Private 15: 6(float) Constant 1065353216 - 17: TypeVector 6(float) 1 - 18: TypeMatrix 17(fvec) 1 - 19: TypePointer Private 18 - 20(fmat11): 19(ptr) Variable Private - 21: TypeVector 6(float) 4 - 22: TypeMatrix 21(fvec4) 1 - 23: TypePointer Private 22 - 24(fmat41): 23(ptr) Variable Private - 25: TypeMatrix 17(fvec) 2 - 26: TypePointer Private 25 - 27(fmat12): 26(ptr) Variable Private - 28: TypeFloat 64 - 29: TypeVector 28(float) 2 - 30: TypeMatrix 29(fvec2) 3 - 31: TypePointer Private 30 - 32(dmat23): 31(ptr) Variable Private - 33: TypeInt 32 1 - 34: TypeVector 33(int) 4 - 35: TypeMatrix 34(ivec4) 4 - 36: TypePointer Private 35 - 37(int44): 36(ptr) Variable Private + 19: TypeVector 6(float) 1 + 20: TypeMatrix 19(fvec) 1 + 21: TypePointer Private 20 + 22(fmat11): 21(ptr) Variable Private + 23: TypeVector 6(float) 4 + 24: TypeMatrix 23(fvec4) 1 + 25: TypePointer Private 24 + 26(fmat41): 25(ptr) Variable Private + 27: TypeMatrix 19(fvec) 2 + 28: TypePointer Private 27 + 29(fmat12): 28(ptr) Variable Private + 30: TypeFloat 64 + 31: TypeVector 30(float) 2 + 32: TypeMatrix 31(fvec2) 3 + 33: TypePointer Private 32 + 34(dmat23): 33(ptr) Variable Private + 35: TypeInt 32 1 + 36: TypeVector 35(int) 4 + 37: TypeMatrix 36(ivec4) 4 + 38: TypePointer Private 37 + 39(int44): 38(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label Store 14(f1) 15 @@ -100,6 +106,6 @@ gl_FragCoord origin is upper left 9(inFloat1): 7(ptr) FunctionParameter 10(inScalar): 7(ptr) FunctionParameter 12: Label - 16: 6(float) Undef + 16: 6(float) Load 9(inFloat1) ReturnValue 16 FunctionEnd diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 49dd577d..2bc1dd52 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -2,7 +2,7 @@ hlsl.scope.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -46,7 +46,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (global void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index f9e0eaf1..40444c02 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -6,12 +6,13 @@ gl_FragCoord origin is upper left 0:1 Function Parameters: 0:2 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (global void) 0:7 Function Call: foo2( (global void) +0:8 Branch: Return 0:? Linker Objects @@ -25,17 +26,18 @@ gl_FragCoord origin is upper left 0:1 Function Parameters: 0:2 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (global void) 0:7 Function Call: foo2( (global void) +0:8 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 12 +// Id's are bound by 13 Capability Shader 1: ExtInstImport "GLSL.std.450" diff --git a/Test/hlsl.attribute.frag b/Test/hlsl.attribute.frag index 25c72d46..9ff8541c 100644 --- a/Test/hlsl.attribute.frag +++ b/Test/hlsl.attribute.frag @@ -1,4 +1,4 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 +void PixelShaderFunction(float4 input) : COLOR0 { [unroll]; []; diff --git a/Test/hlsl.discard.frag b/Test/hlsl.discard.frag index e8b52679..7d9271c9 100644 --- a/Test/hlsl.discard.frag +++ b/Test/hlsl.discard.frag @@ -4,7 +4,7 @@ void foo(float f) discard; } -float4 PixelShaderFunction(float4 input) : COLOR0 +void PixelShaderFunction(float4 input) : COLOR0 { foo(input.z); if (input.x) diff --git a/Test/hlsl.matType.frag b/Test/hlsl.matType.frag index 36d71e3b..ee7c0476 100644 --- a/Test/hlsl.matType.frag +++ b/Test/hlsl.matType.frag @@ -7,4 +7,5 @@ int4x4 int44; float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0 { + return inFloat1; } diff --git a/Test/hlsl.scope.frag b/Test/hlsl.scope.frag index 0d8cc1ad..a5309ca2 100644 --- a/Test/hlsl.scope.frag +++ b/Test/hlsl.scope.frag @@ -1,4 +1,4 @@ -float4 PixelShaderFunction(float4 input) : COLOR0 +void PixelShaderFunction(float4 input) : COLOR0 { int x; x; diff --git a/Test/hlsl.void.frag b/Test/hlsl.void.frag index 9bf06b72..950bbd75 100644 --- a/Test/hlsl.void.frag +++ b/Test/hlsl.void.frag @@ -1,8 +1,9 @@ void foo1() {} void foo2(void) {} -float4 PixelShaderFunction(float4 input) : COLOR0 +void PixelShaderFunction(float4 input) : COLOR0 { foo1(); foo2(); + return; } \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index eac03933..864613e9 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1460" +#define GLSLANG_REVISION "Overload400-PrecQual.1461" #define GLSLANG_DATE "02-Sep-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 24f106a4..efb1baff 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1036,7 +1036,7 @@ TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, error(loc, "can't find function", function.getName().c_str(), ""); // Note: 'prevDec' could be 'function' if this is the first time we've seen function // as it would have just been put in the symbol table. Otherwise, we're looking up - // an earlier occurance. + // an earlier occurrence. if (prevDec && prevDec->isDefined()) { // Then this function already has a body. diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 192e28ae..e548e5d2 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1496,20 +1496,16 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // parsing the body (compound_statement). bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node) { - TFunction* functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); + TFunction& functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); TSourceLoc loc = token.loc; // This does a pushScope() - node = parseContext.handleFunctionDefinition(loc, *functionDeclarator); + node = parseContext.handleFunctionDefinition(loc, functionDeclarator); // compound_statement TIntermNode* functionBody = nullptr; if (acceptCompoundStatement(functionBody)) { - node = intermediate.growAggregate(node, functionBody); - intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), loc); - node->getAsAggregate()->setName(functionDeclarator->getMangledName().c_str()); - parseContext.popScope(); - + parseContext.handleFunctionBody(loc, functionDeclarator, functionBody, node); return true; } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index a214df96..96270c89 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -686,7 +686,7 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt // Handle seeing a function declarator in the grammar. This is the precursor // to recognizing a function prototype or function definition. // -TFunction* HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) +TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) { // // Multiple declarations of the same function name are allowed. @@ -720,7 +720,7 @@ TFunction* HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu // in which case, we need to use the parameter names from this one, and not the one that's // being redeclared. So, pass back this declaration, not the one in the symbol table. // - return &function; + return function; } // @@ -798,6 +798,18 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l return paramNodes; } +void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& function, TIntermNode* functionBody, TIntermNode*& node) +{ + node = intermediate.growAggregate(node, functionBody); + intermediate.setAggregateOperator(node, EOpFunction, function.getType(), loc); + node->getAsAggregate()->setName(function.getMangledName().c_str()); + + popScope(); + + if (function.getType().getBasicType() != EbtVoid && ! functionReturnsValue) + error(loc, "function does not return a value:", "", function.getName().c_str()); +} + // AST I/O is done through shader globals declared in the 'in' or 'out' // storage class. An HLSL entry point has a return value, input parameters // and output parameters. These need to get remapped to the AST I/O. @@ -839,6 +851,7 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { + functionReturnsValue = true; TIntermTyped* converted = value; if (currentFunctionType->getBasicType() == EbtVoid) { diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 2f5ee570..77d8157a 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -83,8 +83,9 @@ public: TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); - TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); + TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); + void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); void remapEntrypointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); From 9e079535a04c284d7edd8ebac10b88729d50317d Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 20:05:19 -0600 Subject: [PATCH 108/217] HLSL: Handle greater/less depth modes. Fixes issue #489. --- Test/baseResults/hlsl.depthGreater.frag.out | 57 ++++++++++++++++++++ Test/baseResults/hlsl.depthLess.frag.out | 58 +++++++++++++++++++++ Test/hlsl.depthGreater.frag | 4 ++ Test/hlsl.depthLess.frag | 4 ++ glslang/Include/BaseTypes.h | 5 ++ glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 2 + hlsl/hlslGrammar.cpp | 10 ++-- hlsl/hlslParseHelper.cpp | 29 ++++++++--- 9 files changed, 158 insertions(+), 13 deletions(-) create mode 100755 Test/baseResults/hlsl.depthGreater.frag.out create mode 100755 Test/baseResults/hlsl.depthLess.frag.out create mode 100644 Test/hlsl.depthGreater.frag create mode 100644 Test/hlsl.depthLess.frag diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out new file mode 100755 index 00000000..cfd819b7 --- /dev/null +++ b/Test/baseResults/hlsl.depthGreater.frag.out @@ -0,0 +1,57 @@ +hlsl.depthGreater.frag +Shader version: 450 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Parameters: +0:2 'depth' (out float FragDepth) +0:? Sequence +0:3 move second child to first child (temp float) +0:3 'depth' (out float FragDepth) +0:3 Constant: +0:3 0.200000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +using depth_greater +0:? Sequence +0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Parameters: +0:2 'depth' (out float FragDepth) +0:? Sequence +0:3 move second child to first child (temp float) +0:3 'depth' (out float FragDepth) +0:3 Constant: +0:3 0.200000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 10 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthGreater + Name 4 "PixelShaderFunction" + Name 8 "depth" + Decorate 8(depth) BuiltIn FragDepth + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) + 8(depth): 7(ptr) Variable Output + 9: 6(float) Constant 1045220557 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 8(depth) 9 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out new file mode 100755 index 00000000..66231b3c --- /dev/null +++ b/Test/baseResults/hlsl.depthLess.frag.out @@ -0,0 +1,58 @@ +hlsl.depthLess.frag +Shader version: 450 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp float) +0:? '@entryPointOutput' (out float unknown built-in variable) +0:3 Constant: +0:3 0.200000 +0:3 Branch: Return +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +using depth_less +0:? Sequence +0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Parameters: +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp float) +0:? '@entryPointOutput' (out float unknown built-in variable) +0:3 Constant: +0:3 0.200000 +0:3 Branch: Return +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 11 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 + ExecutionMode 4 OriginUpperLeft + ExecutionMode 4 DepthLess + Name 4 "PixelShaderFunction" + Name 8 "@entryPointOutput" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) +8(@entryPointOutput): 7(ptr) Variable Output + 9: 6(float) Constant 1045220557 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 8(@entryPointOutput) 9 + Return + FunctionEnd diff --git a/Test/hlsl.depthGreater.frag b/Test/hlsl.depthGreater.frag new file mode 100644 index 00000000..ca41f089 --- /dev/null +++ b/Test/hlsl.depthGreater.frag @@ -0,0 +1,4 @@ +void PixelShaderFunction(out float depth : SV_DepthGreaterEqual) +{ + depth = 0.2; +} diff --git a/Test/hlsl.depthLess.frag b/Test/hlsl.depthLess.frag new file mode 100644 index 00000000..aca7dbb8 --- /dev/null +++ b/Test/hlsl.depthLess.frag @@ -0,0 +1,4 @@ +float PixelShaderFunction() : SV_DepthLessEqual +{ + return 0.2; +} diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index 7e12c55a..bc8f1103 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -196,6 +196,11 @@ enum TBuiltInVariable { EbvBaryCoordPullModel, #endif + // HLSL built-ins that live only temporarily, until they get remapped + // to one of the above. + EbvFragDepthGreater, + EbvFragDepthLesser, + EbvLast }; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 864613e9..be71662d 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1461" +#define GLSLANG_REVISION "Overload400-PrecQual.1463" #define GLSLANG_DATE "02-Sep-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 8c9b5558..9fb3840a 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -81,6 +81,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.constructexpr.frag", "main"}, + {"hlsl.depthGreater.frag", "PixelShaderFunction"}, + {"hlsl.depthLess.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.entry-out.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e548e5d2..6ddd1bfb 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -302,10 +302,10 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) HlslToken idToken; while (acceptIdentifier(idToken)) { // function_parameters - TFunction* function = new TFunction(idToken.string, type); - if (acceptFunctionParameters(*function)) { + TFunction& function = *new TFunction(idToken.string, type); + if (acceptFunctionParameters(function)) { // post_decls - acceptPostDecls(type); + acceptPostDecls(function.getWritableType()); // compound_statement (function body definition) or just a prototype? if (peekTokenClass(EHTokLeftBrace)) { @@ -313,11 +313,11 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); if (typedefDecl) parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); - return acceptFunctionDefinition(*function, node); + return acceptFunctionDefinition(function, node); } else { if (typedefDecl) parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); - parseContext.handleFunctionDeclarator(idToken.loc, *function, true); + parseContext.handleFunctionDeclarator(idToken.loc, function, true); } } else { // a variable declaration diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 96270c89..5f4d8c5f 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -819,6 +819,21 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) unsigned int inCount = 0; unsigned int outCount = 0; + const auto remapBuiltInType = [&](TType& type) { + switch (type.getQualifier().builtIn) { + case EbvFragDepthGreater: + intermediate.setDepth(EldGreater); + type.getQualifier().builtIn = EbvFragDepth; + break; + case EbvFragDepthLesser: + intermediate.setDepth(EldLess); + type.getQualifier().builtIn = EbvFragDepth; + break; + default: + break; + } + }; + // return value is actually a shader-scoped output (out) if (function.getType().getBasicType() != EbtVoid) { entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); @@ -827,6 +842,7 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) entryPointOutput->getWritableType().getQualifier().layoutLocation = outCount; outCount += intermediate.computeTypeLocationSize(function.getType()); } + remapBuiltInType(function.getWritableType()); } // parameters are actually shader-scoped inputs and outputs (in or out) @@ -844,6 +860,7 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) outCount += intermediate.computeTypeLocationSize(*function[i].type); } } + remapBuiltInType(*function[i].type); } } @@ -2423,13 +2440,11 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TType& type, const TString type.getQualifier().builtIn = EbvFragDepth; //TODO, these need to get refined to be more specific - else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") { - type.getQualifier().builtIn = EbvFragDepth; - warn(loc, "depth mode unimplemented", "SV_DEPTHGREATEREQUAL", ""); - } else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") { - type.getQualifier().builtIn = EbvFragDepth; - warn(loc, "depth mode unimplemented", "SV_DEPTHLESSEQUAL", ""); - } else if( semanticUpperCase == "SV_STENCILREF") + else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") + type.getQualifier().builtIn = EbvFragDepthGreater; + else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") + type.getQualifier().builtIn = EbvFragDepthLesser; + else if( semanticUpperCase == "SV_STENCILREF") error(loc, "unimplemented", "SV_STENCILREF", ""); else if( semanticUpperCase == "SV_COVERAGE") error(loc, "unimplemented", "SV_COVERAGE", ""); From 07350f3382081c0c63961ee1166eeffd60282218 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 20:23:27 -0600 Subject: [PATCH 109/217] HLSL: Handle "fake" entry points, by undoing their built-in variable declarations. --- Test/baseResults/hlsl.multiEntry.vert.out | 107 ++++++++++++++++++++++ Test/hlsl.multiEntry.vert | 11 +++ glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 17 ++++ hlsl/hlslParseHelper.h | 1 + 6 files changed, 138 insertions(+), 1 deletion(-) create mode 100755 Test/baseResults/hlsl.multiEntry.vert.out create mode 100755 Test/hlsl.multiEntry.vert diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out new file mode 100755 index 00000000..8aa302cf --- /dev/null +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -0,0 +1,107 @@ +hlsl.multiEntry.vert +Shader version: 450 +0:? Sequence +0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Parameters: +0:4 'Index' (in uint) +0:? Sequence +0:5 Branch: Return with expression +0:5 textureFetch (global 4-component vector of float) +0:5 'Position' (uniform samplerBuffer) +0:5 Convert uint to int (temp int) +0:5 'Index' (in uint) +0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Parameters: +0:9 'Index' (in uint VertexIndex) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 'Index' (in uint VertexIndex) +0:10 Branch: Return +0:? Linker Objects +0:? 'Position' (uniform samplerBuffer) + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Parameters: +0:4 'Index' (in uint) +0:? Sequence +0:5 Branch: Return with expression +0:5 textureFetch (global 4-component vector of float) +0:5 'Position' (uniform samplerBuffer) +0:5 Convert uint to int (temp int) +0:5 'Index' (in uint) +0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Parameters: +0:9 'Index' (in uint VertexIndex) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 'Index' (in uint VertexIndex) +0:10 Branch: Return +0:? Linker Objects +0:? 'Position' (uniform samplerBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "RealEntrypoint" 27 29 + Name 4 "RealEntrypoint" + Name 12 "FakeEntrypoint(u1;" + Name 11 "Index" + Name 17 "Position" + Name 27 "@entryPointOutput" + Name 29 "Index" + Name 30 "param" + Decorate 17(Position) DescriptorSet 0 + Decorate 27(@entryPointOutput) BuiltIn Position + Decorate 29(Index) BuiltIn VertexIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10: TypeFunction 9(fvec4) 7(ptr) + 14: TypeImage 8(float) Buffer sampled format:Unknown + 15: TypeSampledImage 14 + 16: TypePointer UniformConstant 15 + 17(Position): 16(ptr) Variable UniformConstant + 20: TypeInt 32 1 + 26: TypePointer Output 9(fvec4) +27(@entryPointOutput): 26(ptr) Variable Output + 28: TypePointer Input 6(int) + 29(Index): 28(ptr) Variable Input +4(RealEntrypoint): 2 Function None 3 + 5: Label + 30(param): 7(ptr) Variable Function + 31: 6(int) Load 29(Index) + Store 30(param) 31 + 32: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 30(param) + Store 27(@entryPointOutput) 32 + Return + FunctionEnd +12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 + 11(Index): 7(ptr) FunctionParameter + 13: Label + 18: 15 Load 17(Position) + 19: 6(int) Load 11(Index) + 21: 20(int) Bitcast 19 + 22: 14 Image 18 + 23: 9(fvec4) ImageFetch 22 21 + ReturnValue 23 + FunctionEnd diff --git a/Test/hlsl.multiEntry.vert b/Test/hlsl.multiEntry.vert new file mode 100755 index 00000000..d155c26d --- /dev/null +++ b/Test/hlsl.multiEntry.vert @@ -0,0 +1,11 @@ +Buffer Position; + +float4 FakeEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION +{ + return Position.Load(Index); +} + +float4 RealEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION +{ + return FakeEntrypoint(Index); +} \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index be71662d..86b4ab8f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1463" +#define GLSLANG_REVISION "Overload400-PrecQual.1464" #define GLSLANG_DATE "02-Sep-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 9fb3840a..0ebc17e6 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -123,6 +123,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.buffer.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5f4d8c5f..f74591c0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -755,6 +755,8 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); if (inEntrypoint) remapEntrypointIO(function); + else + remapNonEntrypointIO(function); // // New symbol table scope for body of function plus its arguments @@ -864,6 +866,21 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) } } +// An HLSL function that looks like an entry point, but is not, +// declares entry point IO built-ins, but these have to be undone. +void HlslParseContext::remapNonEntrypointIO(TFunction& function) +{ + const auto remapBuiltInType = [&](TType& type) { type.getQualifier().builtIn = EbvNone; }; + + // return value + if (function.getType().getBasicType() != EbtVoid) + remapBuiltInType(function.getWritableType()); + + // parameters + for (int i = 0; i < function.getParamCount(); i++) + remapBuiltInType(*function[i].type); +} + // Handle function returns, including type conversions to the function return type // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 77d8157a..8e1a683e 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -87,6 +87,7 @@ public: TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); void remapEntrypointIO(TFunction& function); + void remapNonEntrypointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); From 841db35bb3bf7d86771bef34080ed90176bd2a78 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 21:12:23 -0600 Subject: [PATCH 110/217] HLSL: Fix issue #442, smear and truncate shape conversions for == and !=. --- Test/baseResults/hlsl.shapeConv.frag.out | 76 +++++++++++++++++++-- Test/hlsl.shapeConv.frag | 16 +++-- glslang/MachineIndependent/Intermediate.cpp | 2 + hlsl/hlslGrammar.cpp | 2 +- 4 files changed, 84 insertions(+), 12 deletions(-) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index beeda4ae..cbf62287 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -82,8 +82,27 @@ gl_FragCoord origin is upper left 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Branch: Return with expression -0:21 'input' (in 4-component vector of float) +0:21 Compare Equal (temp bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 Compare Not Equal (temp bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) +0:26 Compare Equal (temp bool) +0:26 'f1' (temp 1-component vector of float) +0:26 Construct float (temp 1-component vector of float) +0:26 'v' (temp 4-component vector of float) +0:27 Compare Less Than (temp bool) +0:27 Construct float (temp 1-component vector of float) +0:27 'v' (temp 4-component vector of float) +0:27 'f1' (temp 1-component vector of float) +0:29 Branch: Return with expression +0:29 'input' (in 4-component vector of float) 0:? Linker Objects @@ -173,13 +192,32 @@ gl_FragCoord origin is upper left 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Branch: Return with expression -0:21 'input' (in 4-component vector of float) +0:21 Compare Equal (temp bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 Compare Not Equal (temp bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) +0:26 Compare Equal (temp bool) +0:26 'f1' (temp 1-component vector of float) +0:26 Construct float (temp 1-component vector of float) +0:26 'v' (temp 4-component vector of float) +0:27 Compare Less Than (temp bool) +0:27 Construct float (temp 1-component vector of float) +0:27 'v' (temp 4-component vector of float) +0:27 'f1' (temp 1-component vector of float) +0:29 Branch: Return with expression +0:29 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 58 +// Id's are bound by 81 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -196,6 +234,7 @@ gl_FragCoord origin is upper left Name 33 "V" Name 34 "MyVal" Name 37 "foo" + Name 69 "f1" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -223,6 +262,9 @@ gl_FragCoord origin is upper left 48: 22(fvec3) ConstantComposite 47 47 47 51: 6(float) Constant 1088421888 52: 22(fvec3) ConstantComposite 51 51 51 + 55: TypeInt 32 0 + 56: 55(int) Constant 0 + 61: TypeVector 41(bool) 4 4(main): 2 Function None 3 5: Label FunctionEnd @@ -236,6 +278,7 @@ gl_FragCoord origin is upper left 33(V): 9(ptr) Variable Function 34(MyVal): 23(ptr) Variable Function 37(foo): 23(ptr) Variable Function + 69(f1): 9(ptr) Variable Function Store 15(v) 17 Store 15(v) 19 20: 6(float) Load 12(f) @@ -259,6 +302,25 @@ gl_FragCoord origin is upper left 50: 41(bool) FOrdLessThan 48 49 53: 22(fvec3) Load 37(foo) 54: 41(bool) FOrdLessThanEqual 52 53 - 55: 7(fvec4) Load 11(input) - ReturnValue 55 + 57: 9(ptr) AccessChain 15(v) 56 + 58: 6(float) Load 57 + 59: 7(fvec4) CompositeConstruct 58 58 58 58 + 60: 7(fvec4) Load 15(v) + 62: 61(bvec4) FOrdEqual 59 60 + 63: 41(bool) All 62 + 64: 6(float) Load 12(f) + 65: 7(fvec4) CompositeConstruct 64 64 64 64 + 66: 7(fvec4) Load 15(v) + 67: 61(bvec4) FOrdNotEqual 65 66 + 68: 41(bool) Any 67 + 70: 6(float) Load 69(f1) + 71: 7(fvec4) Load 15(v) + 72: 6(float) CompositeExtract 71 0 + 73: 41(bool) FOrdEqual 70 72 + 74: 7(fvec4) Load 15(v) + 75: 6(float) CompositeExtract 74 0 + 76: 6(float) Load 69(f1) + 77: 41(bool) FOrdLessThan 75 76 + 78: 7(fvec4) Load 11(input) + ReturnValue 78 FunctionEnd diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag index 3147b61a..3ecb33a6 100644 --- a/Test/hlsl.shapeConv.frag +++ b/Test/hlsl.shapeConv.frag @@ -9,14 +9,22 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 u = float(2.0); u = float(f); float2 w = 2.0; - float V = 1; + float V = 1; float3 MyVal = V; - float3 foo; - foo > 4.0; - foo >= 5.0; + float3 foo; + foo > 4.0; + foo >= 5.0; 6.0 < foo; 7.0 <= foo; + v.x == v; + f != v; + + float1 f1; + + f1 == v; + v < f1; + return input; } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index ee9c251a..3a5a3f6d 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -702,6 +702,8 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, case EOpGreaterThan: case EOpLessThanEqual: case EOpGreaterThanEqual: + case EOpEqual: + case EOpNotEqual: case EOpFunctionCall: break; default: diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 6ddd1bfb..a4fe38ec 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -525,7 +525,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) // // layout_qualifier // : identifier -// | identifier EQUAL expresion +// | identifier EQUAL expression // // Zero or more of these, so this can't return false. // From 7d01bd6f0be8a22bc9046e1e64dc20d12fe8d0cc Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 2 Sep 2016 22:21:25 -0600 Subject: [PATCH 111/217] HLSL: Handle swizzles on vectors of size 1. Addresses issue #453. --- Test/baseResults/hlsl.shapeConv.frag.out | 27 +++++++++++++++------ Test/hlsl.shapeConv.frag | 2 ++ glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 3 ++- hlsl/hlslParseHelper.cpp | 9 +++++++ 5 files changed, 34 insertions(+), 9 deletions(-) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index cbf62287..c7fdf8d0 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -101,8 +101,13 @@ gl_FragCoord origin is upper left 0:27 Construct float (temp 1-component vector of float) 0:27 'v' (temp 4-component vector of float) 0:27 'f1' (temp 1-component vector of float) -0:29 Branch: Return with expression -0:29 'input' (in 4-component vector of float) +0:28 Construct float (temp float) +0:28 'f1' (temp 1-component vector of float) +0:29 Construct vec3 (temp 3-component vector of float) +0:29 Construct float (temp float) +0:29 'f1' (temp 1-component vector of float) +0:31 Branch: Return with expression +0:31 'input' (in 4-component vector of float) 0:? Linker Objects @@ -211,13 +216,18 @@ gl_FragCoord origin is upper left 0:27 Construct float (temp 1-component vector of float) 0:27 'v' (temp 4-component vector of float) 0:27 'f1' (temp 1-component vector of float) -0:29 Branch: Return with expression -0:29 'input' (in 4-component vector of float) +0:28 Construct float (temp float) +0:28 'f1' (temp 1-component vector of float) +0:29 Construct vec3 (temp 3-component vector of float) +0:29 Construct float (temp float) +0:29 'f1' (temp 1-component vector of float) +0:31 Branch: Return with expression +0:31 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 81 +// Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -321,6 +331,9 @@ gl_FragCoord origin is upper left 75: 6(float) CompositeExtract 74 0 76: 6(float) Load 69(f1) 77: 41(bool) FOrdLessThan 75 76 - 78: 7(fvec4) Load 11(input) - ReturnValue 78 + 78: 6(float) Load 69(f1) + 79: 6(float) Load 69(f1) + 80: 22(fvec3) CompositeConstruct 79 79 79 + 81: 7(fvec4) Load 11(input) + ReturnValue 81 FunctionEnd diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag index 3ecb33a6..0485b4a5 100644 --- a/Test/hlsl.shapeConv.frag +++ b/Test/hlsl.shapeConv.frag @@ -25,6 +25,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 f1 == v; v < f1; + f1.x; + f1.xxx; return input; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 86b4ab8f..bd0738d5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1464" +#define GLSLANG_REVISION "Overload400-PrecQual.1465" #define GLSLANG_DATE "02-Sep-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 3a5a3f6d..676cf172 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -274,7 +274,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo if (newType != EbtVoid) { child = addConversion(op, TType(newType, EvqTemporary, child->getVectorSize(), child->getMatrixCols(), - child->getMatrixRows()), + child->getMatrixRows(), + child->isVector()), child); if (child == 0) return 0; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index f74591c0..d8a9a8d4 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -641,6 +641,15 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return addConstructor(loc, base, type); } } + if (base->getVectorSize() == 1) { + TType scalarType(base->getBasicType(), EvqTemporary, 1); + if (fields.num == 1) + return addConstructor(loc, base, scalarType); + else { + TType vectorType(base->getBasicType(), EvqTemporary, fields.num); + return addConstructor(loc, addConstructor(loc, base, scalarType), vectorType); + } + } if (base->getType().getQualifier().isFrontEndConstant()) result = intermediate.foldSwizzle(base, fields, loc); From 64bcfdb63293f1b193e7c54658df96ca7033608e Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Mon, 5 Sep 2016 16:10:14 +0800 Subject: [PATCH 112/217] Parser: Add 64-bit type conversion for specialization constant. --- SPIRV/GlslangToSpv.cpp | 4 +- Test/baseResults/spv.int64.frag.out | 30 ++- Test/baseResults/spv.specConstant.vert.out | 4 +- .../spv.specConstantOperations.vert.out | 182 +++++++++--------- Test/spv.int64.frag | 35 +++- Test/spv.specConstantOperations.vert | 6 +- glslang/MachineIndependent/Intermediate.cpp | 16 ++ glslang/MachineIndependent/ParseHelper.cpp | 2 +- 8 files changed, 183 insertions(+), 96 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 84c9e734..c559142f 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -3761,8 +3761,8 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvInt64ToUint64: if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. - zero = (op == glslang::EOpConvUintToInt64 || - op == glslang::EOpConvIntToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); + zero = (op == glslang::EOpConvUint64ToInt64 || + op == glslang::EOpConvInt64ToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); zero = makeSmearedConstant(zero, vectorSize); // Use OpIAdd, instead of OpBitcast to do the conversion when // generating for OpSpecConstantOp instruction. diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out index fe450137..b7d8ce94 100644 --- a/Test/baseResults/spv.int64.frag.out +++ b/Test/baseResults/spv.int64.frag.out @@ -8,7 +8,7 @@ Linked fragment stage: Missing functionality: shader int64 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 455 +// Id's are bound by 478 Capability Shader Capability Float64 @@ -64,6 +64,11 @@ Missing functionality: shader int64 Decorate 452(Block) Block Decorate 454(block) DescriptorSet 0 Decorate 454(block) Binding 1 + Decorate 455 SpecId 100 + Decorate 456 SpecId 101 + Decorate 457 SpecId 102 + Decorate 458 SpecId 103 + Decorate 459 SpecId 104 2: TypeVoid 3: TypeFunction 2 14: TypeInt 64 1 @@ -145,6 +150,29 @@ Missing functionality: shader int64 452(Block): TypeStruct 134(ivec3) 36(int) 453: TypePointer Uniform 452(Block) 454(block): 453(ptr) Variable Uniform + 455: 14(int) SpecConstant 4294967286 4294967295 + 456: 36(int) SpecConstant 20 0 + 457: 27(int) SpecConstant 4294967291 + 458: 17(int) SpecConstant 4 + 459: 53(bool) SpecConstantTrue + 460: 53(bool) SpecConstantOp 171 455 67 + 461: 53(bool) SpecConstantOp 171 456 67 + 462: 14(int) SpecConstantOp 169 459 59 58 + 463: 36(int) SpecConstantOp 169 459 68 67 + 464: 27(int) SpecConstantOp 114 455 + 465: 14(int) SpecConstantOp 114 457 + 466: 17(int) SpecConstantOp 113 456 + 467: 36(int) SpecConstantOp 113 458 + 468: 14(int) SpecConstantOp 128 456 67 + 469: 36(int) SpecConstantOp 128 455 67 + 470: 17(int) SpecConstantOp 113 456 + 471: 27(int) SpecConstantOp 128 470 217 + 472: 14(int) SpecConstantOp 114 457 + 473: 36(int) SpecConstantOp 128 472 67 + 474: 27(int) SpecConstantOp 114 455 + 475: 17(int) SpecConstantOp 128 474 217 + 476: 36(int) SpecConstantOp 113 458 + 477: 14(int) SpecConstantOp 128 476 67 4(main): 2 Function None 3 5: Label Return diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out index fb7c70a7..edda4a7b 100644 --- a/Test/baseResults/spv.specConstant.vert.out +++ b/Test/baseResults/spv.specConstant.vert.out @@ -61,6 +61,7 @@ Linked vertex stage: 38: TypeFloat 64 39: 38(float) SpecConstant 1413754136 1074340347 40: 6(float) SpecConstant 1078523331 + 41: 38(float) SpecConstantOp 115 40 50: 8(int) SpecConstant 12 51: TypeArray 7(fvec4) 50 52: TypePointer Input 51 @@ -69,6 +70,7 @@ Linked vertex stage: 63: 33(int) SpecConstant 2 67: 38(float) SpecConstant 1413754136 1074340347 68: 6(float) SpecConstant 1078523331 + 69: 38(float) SpecConstantOp 115 68 75: TypePointer Function 8(int) 77: 8(int) SpecConstant 8 4(main): 2 Function None 3 @@ -87,7 +89,6 @@ Linked vertex stage: Store 20(color) 37 Branch 32 32: Label - 41: 38(float) FConvert 40 42: 38(float) FDiv 39 41 43: 6(float) FConvert 42 44: 7(fvec4) Load 20(color) @@ -119,7 +120,6 @@ Linked vertex stage: Store 20(color) 66 Branch 62 62: Label - 69: 38(float) FConvert 68 70: 38(float) FDiv 67 69 71: 6(float) FConvert 70 72: 7(fvec4) Load 20(color) diff --git a/Test/baseResults/spv.specConstantOperations.vert.out b/Test/baseResults/spv.specConstantOperations.vert.out index ea4c69a2..ab425583 100644 --- a/Test/baseResults/spv.specConstantOperations.vert.out +++ b/Test/baseResults/spv.specConstantOperations.vert.out @@ -7,9 +7,10 @@ Linked vertex stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 131 +// Id's are bound by 135 Capability Shader + Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" @@ -22,6 +23,7 @@ Linked vertex stage: Decorate 40 SpecId 200 Decorate 42 SpecId 202 Decorate 43 SpecId 203 + Decorate 45 SpecId 204 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -43,93 +45,97 @@ Linked vertex stage: 41: TypeInt 32 0 42: 41(int) SpecConstant 100 43: 6(int) SpecConstant 4294967286 - 44: 41(int) Constant 0 - 45: 22(bool) SpecConstantOp 171 19 44 - 46: 22(bool) SpecConstantOp 171 42 44 - 47: 6(int) SpecConstantOp 169 45 32 12 - 48: 41(int) Constant 1 - 49: 41(int) SpecConstantOp 169 45 48 44 - 50: 41(int) SpecConstantOp 128 43 44 - 51: 6(int) SpecConstantOp 128 42 44 - 52: 6(int) SpecConstantOp 126 19 - 53: 6(int) SpecConstantOp 200 19 - 54: 6(int) SpecConstantOp 128 19 20 - 55: 6(int) SpecConstantOp 128 19 20 - 56: 6(int) Constant 3 - 57: 6(int) SpecConstantOp 130 55 56 - 58: 6(int) Constant 4 - 59: 6(int) SpecConstantOp 130 54 58 - 60: 6(int) SpecConstantOp 132 43 20 - 61: 41(int) Constant 2 - 62: 41(int) SpecConstantOp 132 42 61 - 63: 6(int) Constant 5 - 64: 6(int) SpecConstantOp 135 60 63 - 65: 41(int) Constant 5 - 66: 41(int) SpecConstantOp 134 62 65 - 67: 6(int) SpecConstantOp 139 43 58 - 68: 41(int) Constant 4 - 69: 41(int) SpecConstantOp 137 42 68 - 70: 6(int) SpecConstantOp 132 43 56 - 71: 6(int) SpecConstantOp 135 70 63 - 72: 6(int) Constant 10 - 73: 6(int) SpecConstantOp 195 43 72 - 74: 6(int) Constant 20 - 75: 41(int) SpecConstantOp 194 42 74 - 76: 6(int) SpecConstantOp 196 43 32 - 77: 41(int) SpecConstantOp 196 42 20 - 78: 6(int) Constant 256 - 79: 6(int) SpecConstantOp 197 43 78 - 80: 41(int) Constant 512 - 81: 41(int) SpecConstantOp 198 42 80 - 82: 22(bool) SpecConstantOp 177 19 43 - 83: 22(bool) SpecConstantOp 170 42 42 - 84: 22(bool) SpecConstantOp 173 19 43 - 85: 6(int) Constant 30 - 86: TypeVector 6(int) 4 - 87: 86(ivec4) SpecConstantComposite 74 85 19 19 - 88: 41(int) Constant 4294967295 - 89: 41(int) Constant 4294967294 - 90: TypeVector 41(int) 4 - 91: 90(ivec4) SpecConstantComposite 42 42 88 89 - 92: TypeVector 22(bool) 4 - 93: 90(ivec4) ConstantComposite 44 44 44 44 - 94: 92(bvec4) SpecConstantOp 171 87 93 - 95: 92(bvec4) SpecConstantOp 171 91 93 - 96: 86(ivec4) ConstantComposite 12 12 12 12 - 97: 86(ivec4) ConstantComposite 32 32 32 32 - 98: 86(ivec4) SpecConstantOp 169 94 97 96 - 99: 90(ivec4) ConstantComposite 48 48 48 48 - 100: 90(ivec4) SpecConstantOp 169 94 99 93 - 101: 90(ivec4) SpecConstantOp 128 87 93 - 102: 86(ivec4) SpecConstantOp 128 91 93 - 103: 86(ivec4) SpecConstantOp 200 87 - 104: 86(ivec4) SpecConstantOp 126 87 - 105: 86(ivec4) ConstantComposite 20 20 20 20 - 106: 86(ivec4) SpecConstantOp 128 87 105 - 107: 86(ivec4) SpecConstantOp 128 87 105 - 108: 86(ivec4) ConstantComposite 56 56 56 56 - 109: 86(ivec4) SpecConstantOp 130 107 108 - 110: 86(ivec4) ConstantComposite 58 58 58 58 - 111: 86(ivec4) SpecConstantOp 130 109 110 - 112: 86(ivec4) SpecConstantOp 132 87 105 - 113: 86(ivec4) ConstantComposite 63 63 63 63 - 114: 86(ivec4) SpecConstantOp 135 112 113 - 115: 86(ivec4) SpecConstantOp 139 87 110 - 116: 86(ivec4) ConstantComposite 72 72 72 72 - 117: 86(ivec4) SpecConstantOp 195 87 116 - 118: 86(ivec4) SpecConstantOp 196 87 105 - 119: 6(int) Constant 1024 - 120: 86(ivec4) ConstantComposite 119 119 119 119 - 121: 86(ivec4) SpecConstantOp 197 87 120 - 122: 41(int) Constant 2048 - 123: 90(ivec4) ConstantComposite 122 122 122 122 - 124: 90(ivec4) SpecConstantOp 198 91 123 - 125: 6(int) SpecConstantOp 81 87 0 - 126: TypeVector 6(int) 2 - 127: 126(ivec2) SpecConstantOp 79 87 87 1(GLSL.std.450) 0 - 128: TypeVector 6(int) 3 - 129: 128(ivec3) SpecConstantOp 79 87 87 2 1(GLSL.std.450) 0 - 130: 86(ivec4) SpecConstantOp 79 87 87 1(GLSL.std.450) 2 0 3 + 44: TypeFloat 64 + 45: 44(float) SpecConstant 2333366019 1074118410 + 46: 39(float) SpecConstantOp 115 45 + 47: 44(float) SpecConstantOp 115 40 + 48: 41(int) Constant 0 + 49: 22(bool) SpecConstantOp 171 19 48 + 50: 22(bool) SpecConstantOp 171 42 48 + 51: 6(int) SpecConstantOp 169 49 32 12 + 52: 41(int) Constant 1 + 53: 41(int) SpecConstantOp 169 49 52 48 + 54: 41(int) SpecConstantOp 128 43 48 + 55: 6(int) SpecConstantOp 128 42 48 + 56: 6(int) SpecConstantOp 126 19 + 57: 6(int) SpecConstantOp 200 19 + 58: 6(int) SpecConstantOp 128 19 20 + 59: 6(int) SpecConstantOp 128 19 20 + 60: 6(int) Constant 3 + 61: 6(int) SpecConstantOp 130 59 60 + 62: 6(int) Constant 4 + 63: 6(int) SpecConstantOp 130 58 62 + 64: 6(int) SpecConstantOp 132 43 20 + 65: 41(int) Constant 2 + 66: 41(int) SpecConstantOp 132 42 65 + 67: 6(int) Constant 5 + 68: 6(int) SpecConstantOp 135 64 67 + 69: 41(int) Constant 5 + 70: 41(int) SpecConstantOp 134 66 69 + 71: 6(int) SpecConstantOp 139 43 62 + 72: 41(int) Constant 4 + 73: 41(int) SpecConstantOp 137 42 72 + 74: 6(int) SpecConstantOp 132 43 60 + 75: 6(int) SpecConstantOp 135 74 67 + 76: 6(int) Constant 10 + 77: 6(int) SpecConstantOp 195 43 76 + 78: 6(int) Constant 20 + 79: 41(int) SpecConstantOp 194 42 78 + 80: 6(int) SpecConstantOp 196 43 32 + 81: 41(int) SpecConstantOp 196 42 20 + 82: 6(int) Constant 256 + 83: 6(int) SpecConstantOp 197 43 82 + 84: 41(int) Constant 512 + 85: 41(int) SpecConstantOp 198 42 84 + 86: 22(bool) SpecConstantOp 177 19 43 + 87: 22(bool) SpecConstantOp 170 42 42 + 88: 22(bool) SpecConstantOp 173 19 43 + 89: 6(int) Constant 30 + 90: TypeVector 6(int) 4 + 91: 90(ivec4) SpecConstantComposite 78 89 19 19 + 92: 41(int) Constant 4294967295 + 93: 41(int) Constant 4294967294 + 94: TypeVector 41(int) 4 + 95: 94(ivec4) SpecConstantComposite 42 42 92 93 + 96: TypeVector 22(bool) 4 + 97: 94(ivec4) ConstantComposite 48 48 48 48 + 98: 96(bvec4) SpecConstantOp 171 91 97 + 99: 96(bvec4) SpecConstantOp 171 95 97 + 100: 90(ivec4) ConstantComposite 12 12 12 12 + 101: 90(ivec4) ConstantComposite 32 32 32 32 + 102: 90(ivec4) SpecConstantOp 169 98 101 100 + 103: 94(ivec4) ConstantComposite 52 52 52 52 + 104: 94(ivec4) SpecConstantOp 169 98 103 97 + 105: 94(ivec4) SpecConstantOp 128 91 97 + 106: 90(ivec4) SpecConstantOp 128 95 97 + 107: 90(ivec4) SpecConstantOp 200 91 + 108: 90(ivec4) SpecConstantOp 126 91 + 109: 90(ivec4) ConstantComposite 20 20 20 20 + 110: 90(ivec4) SpecConstantOp 128 91 109 + 111: 90(ivec4) SpecConstantOp 128 91 109 + 112: 90(ivec4) ConstantComposite 60 60 60 60 + 113: 90(ivec4) SpecConstantOp 130 111 112 + 114: 90(ivec4) ConstantComposite 62 62 62 62 + 115: 90(ivec4) SpecConstantOp 130 113 114 + 116: 90(ivec4) SpecConstantOp 132 91 109 + 117: 90(ivec4) ConstantComposite 67 67 67 67 + 118: 90(ivec4) SpecConstantOp 135 116 117 + 119: 90(ivec4) SpecConstantOp 139 91 114 + 120: 90(ivec4) ConstantComposite 76 76 76 76 + 121: 90(ivec4) SpecConstantOp 195 91 120 + 122: 90(ivec4) SpecConstantOp 196 91 109 + 123: 6(int) Constant 1024 + 124: 90(ivec4) ConstantComposite 123 123 123 123 + 125: 90(ivec4) SpecConstantOp 197 91 124 + 126: 41(int) Constant 2048 + 127: 94(ivec4) ConstantComposite 126 126 126 126 + 128: 94(ivec4) SpecConstantOp 198 95 127 + 129: 6(int) SpecConstantOp 81 91 0 + 130: TypeVector 6(int) 2 + 131: 130(ivec2) SpecConstantOp 79 91 91 1(GLSL.std.450) 0 + 132: TypeVector 6(int) 3 + 133: 132(ivec3) SpecConstantOp 79 91 91 2 1(GLSL.std.450) 0 + 134: 90(ivec4) SpecConstantOp 79 91 91 1(GLSL.std.450) 2 0 3 4(main): 2 Function None 3 5: Label Return diff --git a/Test/spv.int64.frag b/Test/spv.int64.frag index 527bfeff..c21ce35f 100644 --- a/Test/spv.int64.frag +++ b/Test/spv.int64.frag @@ -225,4 +225,37 @@ void builtinFuncs() // notEqual() bv = notEqual(u64v, u64vec3(u64)); bv.xy = notEqual(i64v, i64vec2(i64)); -} \ No newline at end of file +} + +// Type conversion for specialization constant +layout(constant_id = 100) const int64_t si64 = -10L; +layout(constant_id = 101) const uint64_t su64 = 20UL; +layout(constant_id = 102) const int si = -5; +layout(constant_id = 103) const uint su = 4; +layout(constant_id = 104) const bool sb = true; + +// bool <-> int64/uint64 +const bool i64_to_b = bool(si64); +const bool u64_to_b = bool(su64); +const int64_t b_to_i64 = int64_t(sb); +const uint64_t b_to_u64 = uint64_t(sb); + +// int <-> int64 +const int i64_to_i = int(si64); +const int64_t i_to_i64 = int64_t(si); + +// uint <-> uint64 +const uint u64_to_u = uint(su64); +const uint64_t u_to_u64 = uint64_t(su); + +// int64 <-> uint64 +const int64_t u64_to_i64 = int64_t(su64); +const uint64_t i64_to_u64 = uint64_t(si64); + +// int <-> uint64 +const int u64_to_i = int(su64); +const uint64_t i_to_u64 = uint64_t(si); + +// uint <-> int64 +const uint i64_to_u = uint(si64); +const int64_t u_to_i64 = int64_t(su); \ No newline at end of file diff --git a/Test/spv.specConstantOperations.vert b/Test/spv.specConstantOperations.vert index b5e46ad4..f67561c3 100644 --- a/Test/spv.specConstantOperations.vert +++ b/Test/spv.specConstantOperations.vert @@ -4,12 +4,16 @@ layout(constant_id = 200) const float sp_float = 3.1415926; layout(constant_id = 201) const int sp_int = 10; layout(constant_id = 202) const uint sp_uint = 100; layout(constant_id = 203) const int sp_sint = -10; - +layout(constant_id = 204) const double sp_double = 2.718281828459; // // Scalars // +// float <-> double conversion +const float float_from_double = float(sp_double); +const double double_from_float = double(sp_float); + // uint/int <-> bool conversion const bool bool_from_int = bool(sp_int); const bool bool_from_uint = bool(sp_uint); diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 676cf172..677cef39 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -1444,6 +1444,8 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpIndexIndirect: case EOpIndexDirectStruct: case EOpVectorSwizzle: + case EOpConvFloatToDouble: + case EOpConvDoubleToFloat: return true; default: return false; @@ -1474,6 +1476,20 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpConvBoolToInt: case EOpConvIntToUint: case EOpConvBoolToUint: + case EOpConvInt64ToBool: + case EOpConvBoolToInt64: + case EOpConvUint64ToBool: + case EOpConvBoolToUint64: + case EOpConvInt64ToInt: + case EOpConvIntToInt64: + case EOpConvUint64ToUint: + case EOpConvUintToUint64: + case EOpConvInt64ToUint64: + case EOpConvUint64ToInt64: + case EOpConvInt64ToUint: + case EOpConvUintToInt64: + case EOpConvUint64ToInt: + case EOpConvIntToUint64: // unary operations case EOpNegative: diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index efb1baff..297ae156 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4942,7 +4942,7 @@ const TFunction* TParseContext::findFunction120(const TSourceLoc& loc, const TFu // "When function calls are resolved, an exact type match for all the arguments // is sought. If an exact match is found, all other functions are ignored, and // the exact match is used. If no exact match is found, then the implicit -// conversions in section 4.1.10 “Implicit Conversions” will be applied to find +// conversions in section 4.1.10 Implicit Conversions will be applied to find // a match. Mismatched types on input parameters (in or inout or default) must // have a conversion from the calling argument type to the formal parameter type. // Mismatched types on output parameters (out or inout) must have a conversion From b804de605cd27eefcb35b324b63eb68242d06e38 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 5 Sep 2016 12:19:18 -0600 Subject: [PATCH 113/217] HLSL: Track binding numbers to struct instances; fixes issue #496. --- Test/baseResults/hlsl.buffer.frag.out | 18 ++++++++++-------- glslang/Include/revision.h | 4 ++-- hlsl/hlslGrammar.cpp | 18 ++++++++++-------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 23f8627d..d1b36fb8 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -23,19 +23,19 @@ gl_FragCoord origin is upper left 0:27 Constant: 0:27 0 (const uint) 0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) 0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) 0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) Linked fragment stage: @@ -65,19 +65,19 @@ gl_FragCoord origin is upper left 0:27 Constant: 0:27 0 (const uint) 0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) 0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:27 Constant: 0:27 0 (const uint) 0:27 Branch: Return 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) // Module Version 10000 // Generated by (magic number): 80001 @@ -123,6 +123,7 @@ gl_FragCoord origin is upper left MemberDecorate 28 1 Offset 20 Decorate 28 Block Decorate 30 DescriptorSet 0 + Decorate 30 Binding 2 MemberDecorate 34 0 Offset 16 MemberDecorate 34 1 Offset 48 MemberDecorate 34 2 Offset 60 @@ -133,6 +134,7 @@ gl_FragCoord origin is upper left MemberDecorate 34 7 Offset 80 Decorate 34 BufferBlock Decorate 36 DescriptorSet 0 + Decorate 36 Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index bd0738d5..1b212891 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1465" -#define GLSLANG_DATE "02-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1468" +#define GLSLANG_DATE "05-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index a4fe38ec..c45cd8be 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1292,17 +1292,16 @@ bool HlslGrammar::acceptType(TType& type) // bool HlslGrammar::acceptStruct(TType& type) { - // This qualifier.storage will tell us whether it's an AST block or - // just a struct. - TQualifier qualifier; - qualifier.clear(); + // This storage qualifier will tell us whether it's an AST + // block type or just a generic structure type. + TStorageQualifier storageQualifier = EvqTemporary; // CBUFFER if (acceptTokenClass(EHTokCBuffer)) - qualifier.storage = EvqUniform; + storageQualifier = EvqUniform; // TBUFFER else if (acceptTokenClass(EHTokTBuffer)) - qualifier.storage = EvqBuffer; + storageQualifier = EvqBuffer; // STRUCT else if (! acceptTokenClass(EHTokStruct)) return false; @@ -1337,10 +1336,13 @@ bool HlslGrammar::acceptStruct(TType& type) } // create the user-defined type - if (qualifier.storage == EvqTemporary) + if (storageQualifier == EvqTemporary) new(&type) TType(typeList, structName); - else + else { + TQualifier qualifier = type.getQualifier(); + qualifier.storage = storageQualifier; new(&type) TType(typeList, structName, qualifier); // sets EbtBlock + } // If it was named, which means the type can be reused later, add // it to the symbol table. (Unless it's a block, in which From 7735b9440364c43f02969fd774bb5fb777968806 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 5 Sep 2016 12:40:06 -0600 Subject: [PATCH 114/217] HLSL Non-Functional: Move to more robust capturing of postDecls into a qualifier. This will prevent a possible future defect of thinking the type can be changed, where there is a code path today that would drop that change. --- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 25 ++++----- hlsl/hlslGrammar.h | 2 +- hlsl/hlslParseHelper.cpp | 105 ++++++++++++++++++------------------- hlsl/hlslParseHelper.h | 6 +-- 5 files changed, 70 insertions(+), 70 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 1b212891..ecc888fe 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1468" +#define GLSLANG_REVISION "Overload400-PrecQual.1469" #define GLSLANG_DATE "05-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c45cd8be..7d2f0afe 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -305,7 +305,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) TFunction& function = *new TFunction(idToken.string, type); if (acceptFunctionParameters(function)) { // post_decls - acceptPostDecls(function.getWritableType()); + acceptPostDecls(function.getWritableType().getQualifier()); // compound_statement (function body definition) or just a prototype? if (peekTokenClass(EHTokLeftBrace)) { @@ -333,7 +333,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) } // post_decls - acceptPostDecls(type); + acceptPostDecls(type.getQualifier()); // EQUAL assignment_expression TIntermTyped* expressionNode = nullptr; @@ -1314,7 +1314,9 @@ bool HlslGrammar::acceptStruct(TType& type) } // post_decls - acceptPostDecls(type); + TQualifier postDeclQualifier; + postDeclQualifier.clear(); + acceptPostDecls(postDeclQualifier); // LEFT_BRACE if (! acceptTokenClass(EHTokLeftBrace)) { @@ -1339,9 +1341,8 @@ bool HlslGrammar::acceptStruct(TType& type) if (storageQualifier == EvqTemporary) new(&type) TType(typeList, structName); else { - TQualifier qualifier = type.getQualifier(); - qualifier.storage = storageQualifier; - new(&type) TType(typeList, structName, qualifier); // sets EbtBlock + postDeclQualifier.storage = storageQualifier; + new(&type) TType(typeList, structName, postDeclQualifier); // sets EbtBlock } // If it was named, which means the type can be reused later, add @@ -1407,7 +1408,7 @@ bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) if (arraySizes) typeList->back().type->newArraySizes(*arraySizes); - acceptPostDecls(*member.type); + acceptPostDecls(member.type->getQualifier()); // success on seeing the SEMICOLON coming up if (peekTokenClass(EHTokSemicolon)) @@ -1484,7 +1485,7 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) type->newArraySizes(*arraySizes); // post_decls - acceptPostDecls(*type); + acceptPostDecls(type->getQualifier()); parseContext.paramFix(*type); @@ -2595,7 +2596,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) // COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN // optional // annotations // optional // -void HlslGrammar::acceptPostDecls(TType& type) +void HlslGrammar::acceptPostDecls(TQualifier& qualifier) { do { // COLON @@ -2623,7 +2624,7 @@ void HlslGrammar::acceptPostDecls(TType& type) expected(")"); break; } - parseContext.handlePackOffset(locationToken.loc, type, *locationToken.string, componentToken.string); + parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { expected("semantic or packoffset or register"); return; @@ -2666,10 +2667,10 @@ void HlslGrammar::acceptPostDecls(TType& type) expected(")"); break; } - parseContext.handleRegister(registerDesc.loc, type, profile.string, *registerDesc.string, subComponent); + parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent); } else { // semantic, in idToken.string - parseContext.handleSemantic(idToken.loc, type, *idToken.string); + parseContext.handleSemantic(idToken.loc, qualifier, *idToken.string); } } else if (acceptTokenClass(EHTokLeftAngle)) { // TODO: process annotations, just accepting them for now diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 361e26c5..4e93f09d 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -105,7 +105,7 @@ namespace glslang { bool acceptCaseLabel(TIntermNode*&); bool acceptDefaultLabel(TIntermNode*&); void acceptArraySpecifier(TArraySizes*&); - void acceptPostDecls(TType&); + void acceptPostDecls(TQualifier&); HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate TIntermediate& intermediate; // the final product, the intermediate representation, includes the AST diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d8a9a8d4..185f8ad3 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2365,7 +2365,7 @@ TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const // Handle seeing a "COLON semantic" at the end of a type declaration, // by updating the type according to the semantic. // -void HlslParseContext::handleSemantic(TSourceLoc loc, TType& type, const TString& semantic) +void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, const TString& semantic) { // TODO: need to know if it's an input or an output // The following sketches what needs to be done, but can't be right @@ -2385,91 +2385,91 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TType& type, const TString bool bParseDX9 = false; if (bParseDX9) { if (semanticUpperCase == "PSIZE") - type.getQualifier().builtIn = EbvPointSize; + qualifier.builtIn = EbvPointSize; else if (semantic == "FOG") - type.getQualifier().builtIn = EbvFogFragCoord; + qualifier.builtIn = EbvFogFragCoord; else if (semanticUpperCase == "DEPTH") - type.getQualifier().builtIn = EbvFragDepth; + qualifier.builtIn = EbvFragDepth; else if (semanticUpperCase == "VFACE") - type.getQualifier().builtIn = EbvFace; + qualifier.builtIn = EbvFace; else if (semanticUpperCase == "VPOS") - type.getQualifier().builtIn = EbvFragCoord; + qualifier.builtIn = EbvFragCoord; } //SV Position has a different meaning in vertex vs fragment if (semanticUpperCase == "SV_POSITION" && language != EShLangFragment) - type.getQualifier().builtIn = EbvPosition; + qualifier.builtIn = EbvPosition; else if (semanticUpperCase == "SV_POSITION" && language == EShLangFragment) - type.getQualifier().builtIn = EbvFragCoord; + qualifier.builtIn = EbvFragCoord; else if (semanticUpperCase == "SV_CLIPDISTANCE") - type.getQualifier().builtIn = EbvClipDistance; + qualifier.builtIn = EbvClipDistance; else if (semanticUpperCase == "SV_CULLDISTANCE") - type.getQualifier().builtIn = EbvCullDistance; + qualifier.builtIn = EbvCullDistance; else if (semanticUpperCase == "SV_VERTEXID") - type.getQualifier().builtIn = EbvVertexIndex; + qualifier.builtIn = EbvVertexIndex; else if (semanticUpperCase == "SV_VIEWPORTARRAYINDEX") - type.getQualifier().builtIn = EbvViewportIndex; + qualifier.builtIn = EbvViewportIndex; else if (semanticUpperCase == "SV_TESSFACTOR") - type.getQualifier().builtIn = EbvTessLevelOuter; + qualifier.builtIn = EbvTessLevelOuter; //Targets are defined 0-7 else if (semanticUpperCase == "SV_TARGET") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 0; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 0; } else if (semanticUpperCase == "SV_TARGET0") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 0; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 0; } else if (semanticUpperCase == "SV_TARGET1") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 1; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 1; } else if (semanticUpperCase == "SV_TARGET2") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 2; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 2; } else if (semanticUpperCase == "SV_TARGET3") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 3; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 3; } else if (semanticUpperCase == "SV_TARGET4") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 4; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 4; } else if (semanticUpperCase == "SV_TARGET5") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 5; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 5; } else if (semanticUpperCase == "SV_TARGET6") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 6; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 6; } else if (semanticUpperCase == "SV_TARGET7") { - type.getQualifier().builtIn = EbvNone; - //type.getQualifier().layoutLocation = 7; + qualifier.builtIn = EbvNone; + //qualifier.layoutLocation = 7; } else if (semanticUpperCase == "SV_SAMPLEINDEX") - type.getQualifier().builtIn = EbvSampleId; + qualifier.builtIn = EbvSampleId; else if (semanticUpperCase == "SV_RENDERTARGETARRAYINDEX") - type.getQualifier().builtIn = EbvLayer; + qualifier.builtIn = EbvLayer; else if (semanticUpperCase == "SV_PRIMITIVEID") - type.getQualifier().builtIn = EbvPrimitiveId; + qualifier.builtIn = EbvPrimitiveId; else if (semanticUpperCase == "SV_OUTPUTCONTROLPOINTID") - type.getQualifier().builtIn = EbvInvocationId; + qualifier.builtIn = EbvInvocationId; else if (semanticUpperCase == "SV_ISFRONTFACE") - type.getQualifier().builtIn = EbvFace; + qualifier.builtIn = EbvFace; else if (semanticUpperCase == "SV_INSTANCEID") - type.getQualifier().builtIn = EbvInstanceIndex; + qualifier.builtIn = EbvInstanceIndex; else if (semanticUpperCase == "SV_INSIDETESSFACTOR") - type.getQualifier().builtIn = EbvTessLevelInner; + qualifier.builtIn = EbvTessLevelInner; else if (semanticUpperCase == "SV_GSINSTANCEID") - type.getQualifier().builtIn = EbvInvocationId; + qualifier.builtIn = EbvInvocationId; else if (semanticUpperCase == "SV_GROUPTHREADID") - type.getQualifier().builtIn = EbvLocalInvocationId; + qualifier.builtIn = EbvLocalInvocationId; else if (semanticUpperCase == "SV_GROUPID") - type.getQualifier().builtIn = EbvWorkGroupId; + qualifier.builtIn = EbvWorkGroupId; else if (semanticUpperCase == "SV_DOMAINLOCATION") - type.getQualifier().builtIn = EbvTessCoord; + qualifier.builtIn = EbvTessCoord; else if (semanticUpperCase == "SV_DEPTH") - type.getQualifier().builtIn = EbvFragDepth; + qualifier.builtIn = EbvFragDepth; //TODO, these need to get refined to be more specific else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") - type.getQualifier().builtIn = EbvFragDepthGreater; + qualifier.builtIn = EbvFragDepthGreater; else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") - type.getQualifier().builtIn = EbvFragDepthLesser; + qualifier.builtIn = EbvFragDepthLesser; else if( semanticUpperCase == "SV_STENCILREF") error(loc, "unimplemented", "SV_STENCILREF", ""); else if( semanticUpperCase == "SV_COVERAGE") @@ -2482,8 +2482,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TType& type, const TString // 'location' has the "c[Subcomponent]" part. // 'component' points to the "component" part, or nullptr if not present. // -void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, const glslang::TString& location, - const glslang::TString* component) +void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString& location, + const glslang::TString* component) { if (location.size() == 0 || location[0] != 'c') { error(loc, "expected 'c'", "packoffset", ""); @@ -2496,7 +2496,7 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons return; } - type.getQualifier().layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); + qualifier.layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); if (component != nullptr) { int componentOffset = 0; switch ((*component)[0]) { @@ -2512,7 +2512,7 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons error(loc, "expected {x, y, z, w} for component", "packoffset", ""); return; } - type.getQualifier().layoutOffset += componentOffset; + qualifier.layoutOffset += componentOffset; } } @@ -2522,9 +2522,8 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, cons // 'profile' points to the shader_profile part, or nullptr if not present. // 'desc' is the type# part. // -void HlslParseContext::handleRegister(const TSourceLoc& loc, TType& type, const glslang::TString* profile, - const glslang::TString& desc, - int subComponent) +void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString* profile, + const glslang::TString& desc, int subComponent) { if (profile != nullptr) warn(loc, "ignoring shader_profile", "register", ""); @@ -2550,7 +2549,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TType& type, const case 't': case 'c': case 's': - type.getQualifier().layoutBinding = regNumber + subComponent; + qualifier.layoutBinding = regNumber + subComponent; break; default: warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 8e1a683e..c80dfca1 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -98,10 +98,10 @@ public: TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); - void handleSemantic(TSourceLoc, TType& type, const TString& semantic); - void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location, + void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); + void handlePackOffset(const TSourceLoc&, TQualifier&, const glslang::TString& location, const glslang::TString* component); - void handleRegister(const TSourceLoc&, TType& type, const glslang::TString* profile, const glslang::TString& desc, + void handleRegister(const TSourceLoc&, TQualifier&, const glslang::TString* profile, const glslang::TString& desc, int subComponent); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); From e3218e270e252fd5f77ce3673562b79cd2a9406f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 5 Sep 2016 14:37:03 -0600 Subject: [PATCH 115/217] HLSL: Accept layout(...) also as a post-decl. Issue #454. --- Test/baseResults/hlsl.layout.frag.out | 93 +++++++++++++++++---------- Test/hlsl.layout.frag | 6 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 9 ++- 4 files changed, 71 insertions(+), 39 deletions(-) diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 0aacbd76..44553855 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -2,27 +2,33 @@ hlsl.layout.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:12 Function Parameters: -0:12 'input' (in 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Parameters: +0:16 'input' (in 4-component vector of float) 0:? Sequence -0:13 Branch: Return with expression -0:13 add (temp 4-component vector of float) -0:13 add (temp 4-component vector of float) -0:13 'input' (in 4-component vector of float) -0:13 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:13 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:13 Constant: -0:13 0 (const uint) -0:13 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:13 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:13 Constant: -0:13 0 (const uint) +0:17 Branch: Return with expression +0:17 add (temp 4-component vector of float) +0:17 add (temp 4-component vector of float) +0:17 add (temp 4-component vector of float) +0:17 'input' (in 4-component vector of float) +0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 Constant: +0:17 0 (const uint) +0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 Constant: +0:17 0 (const uint) +0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 Constant: +0:17 0 (const uint) 0:? Linker Objects 0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) +0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) Linked fragment stage: @@ -31,31 +37,37 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:12 Function Parameters: -0:12 'input' (in 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Parameters: +0:16 'input' (in 4-component vector of float) 0:? Sequence -0:13 Branch: Return with expression -0:13 add (temp 4-component vector of float) -0:13 add (temp 4-component vector of float) -0:13 'input' (in 4-component vector of float) -0:13 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:13 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:13 Constant: -0:13 0 (const uint) -0:13 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:13 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) -0:13 Constant: -0:13 0 (const uint) +0:17 Branch: Return with expression +0:17 add (temp 4-component vector of float) +0:17 add (temp 4-component vector of float) +0:17 add (temp 4-component vector of float) +0:17 'input' (in 4-component vector of float) +0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 Constant: +0:17 0 (const uint) +0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 Constant: +0:17 0 (const uint) +0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 Constant: +0:17 0 (const uint) 0:? Linker Objects 0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) +0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 33 +// Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -71,13 +83,20 @@ gl_FragCoord origin is upper left Name 23 "" MemberName 23 0 "v5" Name 25 "" + Name 30 "" + MemberName 30 0 "v1PostLayout" + Name 32 "" MemberDecorate 14 0 Offset 16 Decorate 14 BufferBlock Decorate 16 DescriptorSet 3 Decorate 16 Binding 5 MemberDecorate 23 0 Offset 0 Decorate 23 BufferBlock - Decorate 32 SpecId 17 + MemberDecorate 30 0 Offset 16 + Decorate 30 BufferBlock + Decorate 32 DescriptorSet 4 + Decorate 32 Binding 7 + Decorate 38 SpecId 17 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -94,7 +113,10 @@ gl_FragCoord origin is upper left 24: TypePointer PushConstant 23(struct) 25: 24(ptr) Variable PushConstant 26: TypePointer PushConstant 7(fvec4) - 32: 17(int) SpecConstant 10 + 30: TypeStruct 7(fvec4) + 31: TypePointer Uniform 30(struct) + 32: 31(ptr) Variable Uniform + 38: 17(int) SpecConstant 10 4(main): 2 Function None 3 5: Label FunctionEnd @@ -108,5 +130,8 @@ gl_FragCoord origin is upper left 27: 26(ptr) AccessChain 25 18 28: 7(fvec4) Load 27 29: 7(fvec4) FAdd 22 28 - ReturnValue 29 + 33: 19(ptr) AccessChain 32 18 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 29 34 + ReturnValue 35 FunctionEnd diff --git a/Test/hlsl.layout.frag b/Test/hlsl.layout.frag index 9080beb3..4c2f7cef 100644 --- a/Test/hlsl.layout.frag +++ b/Test/hlsl.layout.frag @@ -8,7 +8,11 @@ layout(push_constant) tbuffer tbufName2 { layout(constant_id=17) const int specConst = 10; +tbuffer tbufName2 : layout(set=4,binding=7) { + layout(offset = 16) float4 v1PostLayout; +}; + float4 PixelShaderFunction(float4 input) : COLOR0 { - return input + v1 + v5; + return input + v1 + v5 + v1PostLayout; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index ecc888fe..06fd80a0 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1469" +#define GLSLANG_REVISION "Overload400-PrecQual.1470" #define GLSLANG_DATE "05-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 7d2f0afe..d627b155 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -521,7 +521,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) } // layout_qualifier_list -// : LEFT_PAREN layout_qualifier COMMA layout_qualifier ... RIGHT_PAREN +// : LAYOUT LEFT_PAREN layout_qualifier COMMA layout_qualifier ... RIGHT_PAREN // // layout_qualifier // : identifier @@ -2594,6 +2594,7 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) // : COLON semantic // optional // COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional // COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN // optional +// COLON LAYOUT layout_qualifier_list // annotations // optional // void HlslGrammar::acceptPostDecls(TQualifier& qualifier) @@ -2602,7 +2603,9 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) // COLON if (acceptTokenClass(EHTokColon)) { HlslToken idToken; - if (acceptTokenClass(EHTokPackOffset)) { + if (peekTokenClass(EHTokLayout)) + acceptLayoutQualifierList(qualifier); + else if (acceptTokenClass(EHTokPackOffset)) { // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); @@ -2626,7 +2629,7 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) } parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { - expected("semantic or packoffset or register"); + expected("layout, semantic, packoffset, or register"); return; } else if (*idToken.string == "register") { // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN From cfd7ce87cd10191c3d5afec077865c7c6dc9dd77 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 5 Sep 2016 16:03:12 -0600 Subject: [PATCH 116/217] HLSL: Support register(..., spaceN) for setting the descriptor set. This was suggested in issue #454. --- Test/baseResults/hlsl.buffer.frag.out | 10 +++++----- Test/hlsl.buffer.frag | 2 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 25 ++++++++++++++++++------- hlsl/hlslParseHelper.cpp | 24 +++++++++++++++++++++++- hlsl/hlslParseHelper.h | 2 +- 6 files changed, 49 insertions(+), 16 deletions(-) diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index d1b36fb8..79b8acd4 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:27 Constant: 0:27 0 (const uint) 0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) 0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:27 Constant: 0:27 0 (const uint) 0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:27 Constant: 0:27 0 (const uint) 0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) +0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) // Module Version 10000 @@ -122,7 +122,7 @@ gl_FragCoord origin is upper left MemberDecorate 28 0 Offset 0 MemberDecorate 28 1 Offset 20 Decorate 28 Block - Decorate 30 DescriptorSet 0 + Decorate 30 DescriptorSet 10 Decorate 30 Binding 2 MemberDecorate 34 0 Offset 16 MemberDecorate 34 1 Offset 48 diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag index e01e4fcb..4e28043a 100644 --- a/Test/hlsl.buffer.frag +++ b/Test/hlsl.buffer.frag @@ -6,7 +6,7 @@ tbuffer { float4 v2; }; -cbuffer cbufName : register(b2) { +cbuffer cbufName : register(b2, space10) { float4 v3; int i3 : packoffset(c1.y); }; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 06fd80a0..01a7e438 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1470" +#define GLSLANG_REVISION "Overload400-PrecQual.1472" #define GLSLANG_DATE "05-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index d627b155..e94d6eb7 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2591,11 +2591,11 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) } // post_decls -// : COLON semantic // optional -// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional -// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN // optional +// : COLON semantic // optional +// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional +// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN // optional // COLON LAYOUT layout_qualifier_list -// annotations // optional +// annotations // optional // void HlslGrammar::acceptPostDecls(TQualifier& qualifier) { @@ -2632,7 +2632,8 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) expected("layout, semantic, packoffset, or register"); return; } else if (*idToken.string == "register") { - // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN + // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN + // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return; @@ -2643,7 +2644,8 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) expected("register number description"); return; } - if (acceptTokenClass(EHTokComma)) { + if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && + acceptTokenClass(EHTokComma)) { // Then we didn't really see the registerDesc yet, it was // actually the profile. Adjust... profile = registerDesc; @@ -2666,11 +2668,20 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) break; } } + // (COMMA SPACEN)opt + HlslToken spaceDesc; + if (acceptTokenClass(EHTokComma)) { + if (! acceptIdentifier(spaceDesc)) { + expected ("space identifier"); + return; + } + } + // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } - parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent); + parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); } else { // semantic, in idToken.string parseContext.handleSemantic(idToken.loc, qualifier, *idToken.string); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 185f8ad3..282fabd0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2523,7 +2523,7 @@ void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TQualifier& quali // 'desc' is the type# part. // void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString* profile, - const glslang::TString& desc, int subComponent) + const glslang::TString& desc, int subComponent, const glslang::TString* spaceDesc) { if (profile != nullptr) warn(loc, "ignoring shader_profile", "register", ""); @@ -2555,6 +2555,28 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]); break; } + + // space + unsigned int setNumber; + const auto crackSpace = [&]() { + const int spaceLen = 5; + if (spaceDesc->size() < spaceLen + 1) + return false; + if (spaceDesc->compare(0, spaceLen, "space") != 0) + return false; + if (! isdigit((*spaceDesc)[spaceLen])) + return false; + setNumber = atoi(spaceDesc->substr(spaceLen, spaceDesc->size()).c_str()); + return true; + }; + + if (spaceDesc) { + if (! crackSpace()) { + error(loc, "expected spaceN", "register", ""); + return; + } + qualifier.layoutSet = setNumber; + } } // diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index c80dfca1..f422b3ea 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -102,7 +102,7 @@ public: void handlePackOffset(const TSourceLoc&, TQualifier&, const glslang::TString& location, const glslang::TString* component); void handleRegister(const TSourceLoc&, TQualifier&, const glslang::TString* profile, const glslang::TString& desc, - int subComponent); + int subComponent, const glslang::TString*); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); From 99c4dd16db23e61ee972495df4f56b07e168f7bd Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Tue, 6 Sep 2016 13:46:12 +0800 Subject: [PATCH 117/217] Preprocessor: UINT_MAX is translated to constant incorrectly. --- Test/baseResults/spv.int64.frag.out | 1218 +++++++++-------- Test/baseResults/spv.uint.frag.out | 47 +- Test/spv.int64.frag | 5 +- Test/spv.uint.frag | 5 +- .../preprocessor/PpTokens.cpp | 20 +- 5 files changed, 665 insertions(+), 630 deletions(-) diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out index b7d8ce94..d65d994a 100644 --- a/Test/baseResults/spv.int64.frag.out +++ b/Test/baseResults/spv.int64.frag.out @@ -8,7 +8,7 @@ Linked fragment stage: Missing functionality: shader int64 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 478 +// Id's are bound by 480 Capability Shader Capability Float64 @@ -24,631 +24,635 @@ Missing functionality: shader int64 Name 8 "typeCast(" Name 10 "operators(" Name 12 "builtinFuncs(" - Name 16 "i64" - Name 24 "Uniforms" - MemberName 24(Uniforms) 0 "index" - Name 26 "" - Name 33 "indexable" - Name 38 "u64" - Name 47 "indexable" - Name 52 "i64v" - Name 56 "bv" - Name 65 "u64v" - Name 74 "iv" - Name 81 "uv" - Name 89 "fv" - Name 95 "dv" - Name 132 "u64v" - Name 137 "i64" - Name 157 "i" - Name 164 "uv" - Name 216 "b" - Name 276 "i64v" - Name 279 "i64" - Name 289 "u64v" - Name 291 "u64" - Name 363 "dv" - Name 382 "iv" - Name 387 "uv" - Name 391 "bv" - Name 452 "Block" - MemberName 452(Block) 0 "i64v" - MemberName 452(Block) 1 "u64" - Name 454 "block" - MemberDecorate 24(Uniforms) 0 Offset 0 - Decorate 24(Uniforms) Block - Decorate 26 DescriptorSet 0 - Decorate 26 Binding 0 - MemberDecorate 452(Block) 0 Offset 0 - MemberDecorate 452(Block) 1 Offset 24 - Decorate 452(Block) Block - Decorate 454(block) DescriptorSet 0 - Decorate 454(block) Binding 1 - Decorate 455 SpecId 100 - Decorate 456 SpecId 101 - Decorate 457 SpecId 102 - Decorate 458 SpecId 103 - Decorate 459 SpecId 104 + Name 16 "u64Max" + Name 20 "i64" + Name 28 "Uniforms" + MemberName 28(Uniforms) 0 "index" + Name 30 "" + Name 37 "indexable" + Name 41 "u64" + Name 49 "indexable" + Name 54 "i64v" + Name 58 "bv" + Name 67 "u64v" + Name 76 "iv" + Name 83 "uv" + Name 91 "fv" + Name 97 "dv" + Name 134 "u64v" + Name 139 "i64" + Name 159 "i" + Name 166 "uv" + Name 218 "b" + Name 278 "i64v" + Name 281 "i64" + Name 291 "u64v" + Name 293 "u64" + Name 365 "dv" + Name 384 "iv" + Name 389 "uv" + Name 393 "bv" + Name 454 "Block" + MemberName 454(Block) 0 "i64v" + MemberName 454(Block) 1 "u64" + Name 456 "block" + MemberDecorate 28(Uniforms) 0 Offset 0 + Decorate 28(Uniforms) Block + Decorate 30 DescriptorSet 0 + Decorate 30 Binding 0 + MemberDecorate 454(Block) 0 Offset 0 + MemberDecorate 454(Block) 1 Offset 24 + Decorate 454(Block) Block + Decorate 456(block) DescriptorSet 0 + Decorate 456(block) Binding 1 + Decorate 457 SpecId 100 + Decorate 458 SpecId 101 + Decorate 459 SpecId 102 + Decorate 460 SpecId 103 + Decorate 461 SpecId 104 2: TypeVoid 3: TypeFunction 2 - 14: TypeInt 64 1 - 15: TypePointer Function 14(int) - 17: TypeInt 32 0 - 18: 17(int) Constant 3 - 19: TypeArray 14(int) 18 - 20: 14(int) Constant 4008636143 4008636142 - 21: 14(int) Constant 4294967295 4294967295 - 22: 14(int) Constant 0 1 - 23: 19 ConstantComposite 20 21 22 - 24(Uniforms): TypeStruct 17(int) - 25: TypePointer Uniform 24(Uniforms) - 26: 25(ptr) Variable Uniform - 27: TypeInt 32 1 - 28: 27(int) Constant 0 - 29: TypePointer Uniform 17(int) - 32: TypePointer Function 19 - 36: TypeInt 64 0 - 37: TypePointer Function 36(int) - 39: TypeArray 36(int) 18 - 40: 36(int) Constant 4294967295 4294967295 - 41: 36(int) Constant 0 1 - 42: 36(int) Constant 4294967295 1 - 43: 39 ConstantComposite 40 41 42 - 46: TypePointer Function 39 - 50: TypeVector 14(int) 2 - 51: TypePointer Function 50(ivec2) - 53: TypeBool - 54: TypeVector 53(bool) 2 - 55: TypePointer Function 54(bvec2) - 58: 14(int) Constant 0 0 - 59: 14(int) Constant 1 0 - 60: 50(ivec2) ConstantComposite 58 58 - 61: 50(ivec2) ConstantComposite 59 59 - 63: TypeVector 36(int) 2 - 64: TypePointer Function 63(ivec2) - 67: 36(int) Constant 0 0 - 68: 36(int) Constant 1 0 - 69: 63(ivec2) ConstantComposite 67 67 - 70: 63(ivec2) ConstantComposite 68 68 - 72: TypeVector 27(int) 2 - 73: TypePointer Function 72(ivec2) - 79: TypeVector 17(int) 2 - 80: TypePointer Function 79(ivec2) - 86: TypeFloat 32 - 87: TypeVector 86(float) 2 - 88: TypePointer Function 87(fvec2) - 92: TypeFloat 64 - 93: TypeVector 92(float) 2 - 94: TypePointer Function 93(fvec2) - 130: TypeVector 36(int) 3 - 131: TypePointer Function 130(ivec3) - 134: TypeVector 14(int) 3 - 156: TypePointer Function 27(int) - 162: TypeVector 17(int) 3 - 163: TypePointer Function 162(ivec3) - 197: TypeVector 27(int) 3 - 200: 17(int) Constant 1 - 201: TypePointer Function 17(int) - 207: 17(int) Constant 2 - 215: TypePointer Function 53(bool) - 217: 17(int) Constant 0 - 287: 50(ivec2) ConstantComposite 21 21 - 296: 130(ivec3) ConstantComposite 67 67 67 - 338: 53(bool) ConstantTrue - 345: 53(bool) ConstantFalse - 346: 54(bvec2) ConstantComposite 345 345 - 358: TypeVector 53(bool) 3 - 359: 358(bvec3) ConstantComposite 345 345 345 - 361: TypeVector 92(float) 3 - 362: TypePointer Function 361(fvec3) - 367: TypePointer Function 92(float) - 378: 27(int) Constant 1 - 379: 27(int) Constant 2 - 380: 72(ivec2) ConstantComposite 378 379 - 385: 79(ivec2) ConstantComposite 207 18 - 390: TypePointer Function 358(bvec3) - 452(Block): TypeStruct 134(ivec3) 36(int) - 453: TypePointer Uniform 452(Block) - 454(block): 453(ptr) Variable Uniform - 455: 14(int) SpecConstant 4294967286 4294967295 - 456: 36(int) SpecConstant 20 0 - 457: 27(int) SpecConstant 4294967291 - 458: 17(int) SpecConstant 4 - 459: 53(bool) SpecConstantTrue - 460: 53(bool) SpecConstantOp 171 455 67 - 461: 53(bool) SpecConstantOp 171 456 67 - 462: 14(int) SpecConstantOp 169 459 59 58 - 463: 36(int) SpecConstantOp 169 459 68 67 - 464: 27(int) SpecConstantOp 114 455 - 465: 14(int) SpecConstantOp 114 457 - 466: 17(int) SpecConstantOp 113 456 - 467: 36(int) SpecConstantOp 113 458 - 468: 14(int) SpecConstantOp 128 456 67 - 469: 36(int) SpecConstantOp 128 455 67 - 470: 17(int) SpecConstantOp 113 456 - 471: 27(int) SpecConstantOp 128 470 217 - 472: 14(int) SpecConstantOp 114 457 - 473: 36(int) SpecConstantOp 128 472 67 - 474: 27(int) SpecConstantOp 114 455 - 475: 17(int) SpecConstantOp 128 474 217 - 476: 36(int) SpecConstantOp 113 458 - 477: 14(int) SpecConstantOp 128 476 67 + 14: TypeInt 64 0 + 15: TypePointer Private 14(int) + 16(u64Max): 15(ptr) Variable Private + 17: 14(int) Constant 4294967295 4294967295 + 18: TypeInt 64 1 + 19: TypePointer Function 18(int) + 21: TypeInt 32 0 + 22: 21(int) Constant 3 + 23: TypeArray 18(int) 22 + 24: 18(int) Constant 4008636143 4008636142 + 25: 18(int) Constant 4294967295 4294967295 + 26: 18(int) Constant 0 1 + 27: 23 ConstantComposite 24 25 26 + 28(Uniforms): TypeStruct 21(int) + 29: TypePointer Uniform 28(Uniforms) + 30: 29(ptr) Variable Uniform + 31: TypeInt 32 1 + 32: 31(int) Constant 0 + 33: TypePointer Uniform 21(int) + 36: TypePointer Function 23 + 40: TypePointer Function 14(int) + 42: TypeArray 14(int) 22 + 43: 14(int) Constant 0 1 + 44: 14(int) Constant 4294967295 1 + 45: 42 ConstantComposite 17 43 44 + 48: TypePointer Function 42 + 52: TypeVector 18(int) 2 + 53: TypePointer Function 52(ivec2) + 55: TypeBool + 56: TypeVector 55(bool) 2 + 57: TypePointer Function 56(bvec2) + 60: 18(int) Constant 0 0 + 61: 18(int) Constant 1 0 + 62: 52(ivec2) ConstantComposite 60 60 + 63: 52(ivec2) ConstantComposite 61 61 + 65: TypeVector 14(int) 2 + 66: TypePointer Function 65(ivec2) + 69: 14(int) Constant 0 0 + 70: 14(int) Constant 1 0 + 71: 65(ivec2) ConstantComposite 69 69 + 72: 65(ivec2) ConstantComposite 70 70 + 74: TypeVector 31(int) 2 + 75: TypePointer Function 74(ivec2) + 81: TypeVector 21(int) 2 + 82: TypePointer Function 81(ivec2) + 88: TypeFloat 32 + 89: TypeVector 88(float) 2 + 90: TypePointer Function 89(fvec2) + 94: TypeFloat 64 + 95: TypeVector 94(float) 2 + 96: TypePointer Function 95(fvec2) + 132: TypeVector 14(int) 3 + 133: TypePointer Function 132(ivec3) + 136: TypeVector 18(int) 3 + 158: TypePointer Function 31(int) + 164: TypeVector 21(int) 3 + 165: TypePointer Function 164(ivec3) + 199: TypeVector 31(int) 3 + 202: 21(int) Constant 1 + 203: TypePointer Function 21(int) + 209: 21(int) Constant 2 + 217: TypePointer Function 55(bool) + 219: 21(int) Constant 0 + 289: 52(ivec2) ConstantComposite 25 25 + 298: 132(ivec3) ConstantComposite 69 69 69 + 340: 55(bool) ConstantTrue + 347: 55(bool) ConstantFalse + 348: 56(bvec2) ConstantComposite 347 347 + 360: TypeVector 55(bool) 3 + 361: 360(bvec3) ConstantComposite 347 347 347 + 363: TypeVector 94(float) 3 + 364: TypePointer Function 363(fvec3) + 369: TypePointer Function 94(float) + 380: 31(int) Constant 1 + 381: 31(int) Constant 2 + 382: 74(ivec2) ConstantComposite 380 381 + 387: 81(ivec2) ConstantComposite 209 22 + 392: TypePointer Function 360(bvec3) + 454(Block): TypeStruct 136(ivec3) 14(int) + 455: TypePointer Uniform 454(Block) + 456(block): 455(ptr) Variable Uniform + 457: 18(int) SpecConstant 4294967286 4294967295 + 458: 14(int) SpecConstant 20 0 + 459: 31(int) SpecConstant 4294967291 + 460: 21(int) SpecConstant 4 + 461: 55(bool) SpecConstantTrue + 462: 55(bool) SpecConstantOp 171 457 69 + 463: 55(bool) SpecConstantOp 171 458 69 + 464: 18(int) SpecConstantOp 169 461 61 60 + 465: 14(int) SpecConstantOp 169 461 70 69 + 466: 31(int) SpecConstantOp 114 457 + 467: 18(int) SpecConstantOp 114 459 + 468: 21(int) SpecConstantOp 113 458 + 469: 14(int) SpecConstantOp 113 460 + 470: 18(int) SpecConstantOp 128 458 69 + 471: 14(int) SpecConstantOp 128 457 69 + 472: 21(int) SpecConstantOp 113 458 + 473: 31(int) SpecConstantOp 128 472 219 + 474: 18(int) SpecConstantOp 114 459 + 475: 14(int) SpecConstantOp 128 474 69 + 476: 31(int) SpecConstantOp 114 457 + 477: 21(int) SpecConstantOp 128 476 219 + 478: 14(int) SpecConstantOp 113 460 + 479: 18(int) SpecConstantOp 128 478 69 4(main): 2 Function None 3 5: Label + Store 16(u64Max) 17 Return FunctionEnd 6(literal(): 2 Function None 3 7: Label - 16(i64): 15(ptr) Variable Function - 33(indexable): 32(ptr) Variable Function - 38(u64): 37(ptr) Variable Function - 47(indexable): 46(ptr) Variable Function - 30: 29(ptr) AccessChain 26 28 - 31: 17(int) Load 30 - Store 33(indexable) 23 - 34: 15(ptr) AccessChain 33(indexable) 31 - 35: 14(int) Load 34 - Store 16(i64) 35 - 44: 29(ptr) AccessChain 26 28 - 45: 17(int) Load 44 - Store 47(indexable) 43 - 48: 37(ptr) AccessChain 47(indexable) 45 - 49: 36(int) Load 48 - Store 38(u64) 49 + 20(i64): 19(ptr) Variable Function + 37(indexable): 36(ptr) Variable Function + 41(u64): 40(ptr) Variable Function + 49(indexable): 48(ptr) Variable Function + 34: 33(ptr) AccessChain 30 32 + 35: 21(int) Load 34 + Store 37(indexable) 27 + 38: 19(ptr) AccessChain 37(indexable) 35 + 39: 18(int) Load 38 + Store 20(i64) 39 + 46: 33(ptr) AccessChain 30 32 + 47: 21(int) Load 46 + Store 49(indexable) 45 + 50: 40(ptr) AccessChain 49(indexable) 47 + 51: 14(int) Load 50 + Store 41(u64) 51 Return FunctionEnd 8(typeCast(): 2 Function None 3 9: Label - 52(i64v): 51(ptr) Variable Function - 56(bv): 55(ptr) Variable Function - 65(u64v): 64(ptr) Variable Function - 74(iv): 73(ptr) Variable Function - 81(uv): 80(ptr) Variable Function - 89(fv): 88(ptr) Variable Function - 95(dv): 94(ptr) Variable Function - 57: 54(bvec2) Load 56(bv) - 62: 50(ivec2) Select 57 61 60 - Store 52(i64v) 62 - 66: 54(bvec2) Load 56(bv) - 71: 63(ivec2) Select 66 70 69 - Store 65(u64v) 71 - 75: 72(ivec2) Load 74(iv) - 76: 50(ivec2) SConvert 75 - Store 52(i64v) 76 - 77: 50(ivec2) Load 52(i64v) - 78: 72(ivec2) SConvert 77 - Store 74(iv) 78 - 82: 79(ivec2) Load 81(uv) - 83: 63(ivec2) UConvert 82 - Store 65(u64v) 83 - 84: 63(ivec2) Load 65(u64v) - 85: 79(ivec2) UConvert 84 - Store 81(uv) 85 - 90: 50(ivec2) Load 52(i64v) - 91: 87(fvec2) ConvertSToF 90 - Store 89(fv) 91 - 96: 50(ivec2) Load 52(i64v) - 97: 93(fvec2) ConvertSToF 96 - Store 95(dv) 97 - 98: 63(ivec2) Load 65(u64v) - 99: 87(fvec2) ConvertUToF 98 - Store 89(fv) 99 - 100: 63(ivec2) Load 65(u64v) - 101: 93(fvec2) ConvertUToF 100 - Store 95(dv) 101 - 102: 87(fvec2) Load 89(fv) - 103: 50(ivec2) ConvertFToS 102 - Store 52(i64v) 103 - 104: 93(fvec2) Load 95(dv) - 105: 50(ivec2) ConvertFToS 104 - Store 52(i64v) 105 - 106: 87(fvec2) Load 89(fv) - 107: 63(ivec2) ConvertFToU 106 - Store 65(u64v) 107 - 108: 93(fvec2) Load 95(dv) - 109: 63(ivec2) ConvertFToU 108 - Store 65(u64v) 109 - 110: 50(ivec2) Load 52(i64v) - 111: 54(bvec2) INotEqual 110 69 - Store 56(bv) 111 - 112: 63(ivec2) Load 65(u64v) - 113: 54(bvec2) INotEqual 112 69 - Store 56(bv) 113 - 114: 50(ivec2) Load 52(i64v) - 115: 63(ivec2) Bitcast 114 - Store 65(u64v) 115 - 116: 63(ivec2) Load 65(u64v) - 117: 50(ivec2) Bitcast 116 - Store 52(i64v) 117 - 118: 50(ivec2) Load 52(i64v) - 119: 72(ivec2) SConvert 118 - 120: 79(ivec2) Bitcast 119 - Store 81(uv) 120 - 121: 79(ivec2) Load 81(uv) - 122: 63(ivec2) UConvert 121 - 123: 50(ivec2) Bitcast 122 - Store 52(i64v) 123 - 124: 63(ivec2) Load 65(u64v) - 125: 79(ivec2) UConvert 124 - 126: 72(ivec2) Bitcast 125 - Store 74(iv) 126 - 127: 72(ivec2) Load 74(iv) - 128: 50(ivec2) SConvert 127 - 129: 63(ivec2) Bitcast 128 - Store 65(u64v) 129 + 54(i64v): 53(ptr) Variable Function + 58(bv): 57(ptr) Variable Function + 67(u64v): 66(ptr) Variable Function + 76(iv): 75(ptr) Variable Function + 83(uv): 82(ptr) Variable Function + 91(fv): 90(ptr) Variable Function + 97(dv): 96(ptr) Variable Function + 59: 56(bvec2) Load 58(bv) + 64: 52(ivec2) Select 59 63 62 + Store 54(i64v) 64 + 68: 56(bvec2) Load 58(bv) + 73: 65(ivec2) Select 68 72 71 + Store 67(u64v) 73 + 77: 74(ivec2) Load 76(iv) + 78: 52(ivec2) SConvert 77 + Store 54(i64v) 78 + 79: 52(ivec2) Load 54(i64v) + 80: 74(ivec2) SConvert 79 + Store 76(iv) 80 + 84: 81(ivec2) Load 83(uv) + 85: 65(ivec2) UConvert 84 + Store 67(u64v) 85 + 86: 65(ivec2) Load 67(u64v) + 87: 81(ivec2) UConvert 86 + Store 83(uv) 87 + 92: 52(ivec2) Load 54(i64v) + 93: 89(fvec2) ConvertSToF 92 + Store 91(fv) 93 + 98: 52(ivec2) Load 54(i64v) + 99: 95(fvec2) ConvertSToF 98 + Store 97(dv) 99 + 100: 65(ivec2) Load 67(u64v) + 101: 89(fvec2) ConvertUToF 100 + Store 91(fv) 101 + 102: 65(ivec2) Load 67(u64v) + 103: 95(fvec2) ConvertUToF 102 + Store 97(dv) 103 + 104: 89(fvec2) Load 91(fv) + 105: 52(ivec2) ConvertFToS 104 + Store 54(i64v) 105 + 106: 95(fvec2) Load 97(dv) + 107: 52(ivec2) ConvertFToS 106 + Store 54(i64v) 107 + 108: 89(fvec2) Load 91(fv) + 109: 65(ivec2) ConvertFToU 108 + Store 67(u64v) 109 + 110: 95(fvec2) Load 97(dv) + 111: 65(ivec2) ConvertFToU 110 + Store 67(u64v) 111 + 112: 52(ivec2) Load 54(i64v) + 113: 56(bvec2) INotEqual 112 71 + Store 58(bv) 113 + 114: 65(ivec2) Load 67(u64v) + 115: 56(bvec2) INotEqual 114 71 + Store 58(bv) 115 + 116: 52(ivec2) Load 54(i64v) + 117: 65(ivec2) Bitcast 116 + Store 67(u64v) 117 + 118: 65(ivec2) Load 67(u64v) + 119: 52(ivec2) Bitcast 118 + Store 54(i64v) 119 + 120: 52(ivec2) Load 54(i64v) + 121: 74(ivec2) SConvert 120 + 122: 81(ivec2) Bitcast 121 + Store 83(uv) 122 + 123: 81(ivec2) Load 83(uv) + 124: 65(ivec2) UConvert 123 + 125: 52(ivec2) Bitcast 124 + Store 54(i64v) 125 + 126: 65(ivec2) Load 67(u64v) + 127: 81(ivec2) UConvert 126 + 128: 74(ivec2) Bitcast 127 + Store 76(iv) 128 + 129: 74(ivec2) Load 76(iv) + 130: 52(ivec2) SConvert 129 + 131: 65(ivec2) Bitcast 130 + Store 67(u64v) 131 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label - 132(u64v): 131(ptr) Variable Function - 137(i64): 15(ptr) Variable Function - 157(i): 156(ptr) Variable Function - 164(uv): 163(ptr) Variable Function - 216(b): 215(ptr) Variable Function - 133: 130(ivec3) Load 132(u64v) - 135: 134(ivec3) CompositeConstruct 59 59 59 - 136: 130(ivec3) IAdd 133 135 - Store 132(u64v) 136 - 138: 14(int) Load 137(i64) - 139: 14(int) ISub 138 59 - Store 137(i64) 139 - 140: 14(int) Load 137(i64) - 141: 14(int) IAdd 140 59 - Store 137(i64) 141 - 142: 130(ivec3) Load 132(u64v) - 143: 134(ivec3) CompositeConstruct 59 59 59 - 144: 130(ivec3) ISub 142 143 - Store 132(u64v) 144 - 145: 130(ivec3) Load 132(u64v) - 146: 130(ivec3) Not 145 - Store 132(u64v) 146 - 147: 14(int) Load 137(i64) - Store 137(i64) 147 - 148: 130(ivec3) Load 132(u64v) - 149: 130(ivec3) SNegate 148 - Store 132(u64v) 149 - 150: 14(int) Load 137(i64) - 151: 14(int) Load 137(i64) - 152: 14(int) IAdd 151 150 - Store 137(i64) 152 - 153: 130(ivec3) Load 132(u64v) - 154: 130(ivec3) Load 132(u64v) - 155: 130(ivec3) ISub 154 153 - Store 132(u64v) 155 - 158: 27(int) Load 157(i) - 159: 14(int) SConvert 158 - 160: 14(int) Load 137(i64) - 161: 14(int) IMul 160 159 - Store 137(i64) 161 - 165: 162(ivec3) Load 164(uv) - 166: 130(ivec3) UConvert 165 - 167: 130(ivec3) Load 132(u64v) - 168: 130(ivec3) UDiv 167 166 - Store 132(u64v) 168 - 169: 27(int) Load 157(i) - 170: 14(int) SConvert 169 - 171: 36(int) Bitcast 170 - 172: 130(ivec3) Load 132(u64v) - 173: 130(ivec3) CompositeConstruct 171 171 171 - 174: 130(ivec3) UMod 172 173 - Store 132(u64v) 174 - 175: 130(ivec3) Load 132(u64v) - 176: 162(ivec3) Load 164(uv) - 177: 130(ivec3) UConvert 176 - 178: 130(ivec3) IAdd 175 177 - Store 132(u64v) 178 - 179: 14(int) Load 137(i64) - 180: 27(int) Load 157(i) - 181: 14(int) SConvert 180 - 182: 14(int) ISub 179 181 - Store 137(i64) 182 - 183: 130(ivec3) Load 132(u64v) - 184: 162(ivec3) Load 164(uv) - 185: 130(ivec3) UConvert 184 - 186: 130(ivec3) IMul 183 185 - Store 132(u64v) 186 - 187: 14(int) Load 137(i64) - 188: 27(int) Load 157(i) - 189: 14(int) SConvert 188 - 190: 14(int) IMul 187 189 - Store 137(i64) 190 - 191: 14(int) Load 137(i64) - 192: 27(int) Load 157(i) - 193: 14(int) SConvert 192 - 194: 14(int) SMod 191 193 - Store 137(i64) 194 - 195: 27(int) Load 157(i) - 196: 130(ivec3) Load 132(u64v) - 198: 197(ivec3) CompositeConstruct 195 195 195 - 199: 130(ivec3) ShiftLeftLogical 196 198 - Store 132(u64v) 199 - 202: 201(ptr) AccessChain 164(uv) 200 - 203: 17(int) Load 202 - 204: 14(int) Load 137(i64) - 205: 14(int) ShiftRightArithmetic 204 203 - Store 137(i64) 205 - 206: 14(int) Load 137(i64) - 208: 37(ptr) AccessChain 132(u64v) 207 - 209: 36(int) Load 208 - 210: 14(int) ShiftLeftLogical 206 209 - Store 137(i64) 210 - 211: 130(ivec3) Load 132(u64v) - 212: 14(int) Load 137(i64) - 213: 134(ivec3) CompositeConstruct 212 212 212 - 214: 130(ivec3) ShiftLeftLogical 211 213 - Store 132(u64v) 214 - 218: 37(ptr) AccessChain 132(u64v) 217 - 219: 36(int) Load 218 - 220: 14(int) Load 137(i64) - 221: 36(int) Bitcast 220 - 222: 53(bool) INotEqual 219 221 - Store 216(b) 222 - 223: 14(int) Load 137(i64) - 224: 36(int) Bitcast 223 - 225: 37(ptr) AccessChain 132(u64v) 217 - 226: 36(int) Load 225 - 227: 53(bool) IEqual 224 226 - Store 216(b) 227 - 228: 37(ptr) AccessChain 132(u64v) 217 - 229: 36(int) Load 228 - 230: 201(ptr) AccessChain 164(uv) 200 - 231: 17(int) Load 230 - 232: 36(int) UConvert 231 - 233: 53(bool) UGreaterThan 229 232 - Store 216(b) 233 - 234: 14(int) Load 137(i64) - 235: 27(int) Load 157(i) - 236: 14(int) SConvert 235 - 237: 53(bool) SLessThan 234 236 - Store 216(b) 237 - 238: 37(ptr) AccessChain 132(u64v) 200 - 239: 36(int) Load 238 - 240: 201(ptr) AccessChain 164(uv) 217 - 241: 17(int) Load 240 - 242: 36(int) UConvert 241 - 243: 53(bool) UGreaterThanEqual 239 242 - Store 216(b) 243 - 244: 14(int) Load 137(i64) - 245: 27(int) Load 157(i) - 246: 14(int) SConvert 245 - 247: 53(bool) SLessThanEqual 244 246 - Store 216(b) 247 - 248: 27(int) Load 157(i) - 249: 14(int) SConvert 248 - 250: 36(int) Bitcast 249 - 251: 130(ivec3) Load 132(u64v) - 252: 130(ivec3) CompositeConstruct 250 250 250 - 253: 130(ivec3) BitwiseOr 251 252 - Store 132(u64v) 253 - 254: 14(int) Load 137(i64) - 255: 27(int) Load 157(i) - 256: 14(int) SConvert 255 - 257: 14(int) BitwiseOr 254 256 - Store 137(i64) 257 - 258: 27(int) Load 157(i) - 259: 14(int) SConvert 258 - 260: 14(int) Load 137(i64) - 261: 14(int) BitwiseAnd 260 259 - Store 137(i64) 261 - 262: 130(ivec3) Load 132(u64v) - 263: 162(ivec3) Load 164(uv) - 264: 130(ivec3) UConvert 263 - 265: 130(ivec3) BitwiseAnd 262 264 - Store 132(u64v) 265 - 266: 14(int) Load 137(i64) - 267: 36(int) Bitcast 266 - 268: 130(ivec3) Load 132(u64v) - 269: 130(ivec3) CompositeConstruct 267 267 267 - 270: 130(ivec3) BitwiseXor 268 269 - Store 132(u64v) 270 - 271: 130(ivec3) Load 132(u64v) - 272: 14(int) Load 137(i64) - 273: 36(int) Bitcast 272 - 274: 130(ivec3) CompositeConstruct 273 273 273 - 275: 130(ivec3) BitwiseXor 271 274 - Store 132(u64v) 275 + 134(u64v): 133(ptr) Variable Function + 139(i64): 19(ptr) Variable Function + 159(i): 158(ptr) Variable Function + 166(uv): 165(ptr) Variable Function + 218(b): 217(ptr) Variable Function + 135: 132(ivec3) Load 134(u64v) + 137: 136(ivec3) CompositeConstruct 61 61 61 + 138: 132(ivec3) IAdd 135 137 + Store 134(u64v) 138 + 140: 18(int) Load 139(i64) + 141: 18(int) ISub 140 61 + Store 139(i64) 141 + 142: 18(int) Load 139(i64) + 143: 18(int) IAdd 142 61 + Store 139(i64) 143 + 144: 132(ivec3) Load 134(u64v) + 145: 136(ivec3) CompositeConstruct 61 61 61 + 146: 132(ivec3) ISub 144 145 + Store 134(u64v) 146 + 147: 132(ivec3) Load 134(u64v) + 148: 132(ivec3) Not 147 + Store 134(u64v) 148 + 149: 18(int) Load 139(i64) + Store 139(i64) 149 + 150: 132(ivec3) Load 134(u64v) + 151: 132(ivec3) SNegate 150 + Store 134(u64v) 151 + 152: 18(int) Load 139(i64) + 153: 18(int) Load 139(i64) + 154: 18(int) IAdd 153 152 + Store 139(i64) 154 + 155: 132(ivec3) Load 134(u64v) + 156: 132(ivec3) Load 134(u64v) + 157: 132(ivec3) ISub 156 155 + Store 134(u64v) 157 + 160: 31(int) Load 159(i) + 161: 18(int) SConvert 160 + 162: 18(int) Load 139(i64) + 163: 18(int) IMul 162 161 + Store 139(i64) 163 + 167: 164(ivec3) Load 166(uv) + 168: 132(ivec3) UConvert 167 + 169: 132(ivec3) Load 134(u64v) + 170: 132(ivec3) UDiv 169 168 + Store 134(u64v) 170 + 171: 31(int) Load 159(i) + 172: 18(int) SConvert 171 + 173: 14(int) Bitcast 172 + 174: 132(ivec3) Load 134(u64v) + 175: 132(ivec3) CompositeConstruct 173 173 173 + 176: 132(ivec3) UMod 174 175 + Store 134(u64v) 176 + 177: 132(ivec3) Load 134(u64v) + 178: 164(ivec3) Load 166(uv) + 179: 132(ivec3) UConvert 178 + 180: 132(ivec3) IAdd 177 179 + Store 134(u64v) 180 + 181: 18(int) Load 139(i64) + 182: 31(int) Load 159(i) + 183: 18(int) SConvert 182 + 184: 18(int) ISub 181 183 + Store 139(i64) 184 + 185: 132(ivec3) Load 134(u64v) + 186: 164(ivec3) Load 166(uv) + 187: 132(ivec3) UConvert 186 + 188: 132(ivec3) IMul 185 187 + Store 134(u64v) 188 + 189: 18(int) Load 139(i64) + 190: 31(int) Load 159(i) + 191: 18(int) SConvert 190 + 192: 18(int) IMul 189 191 + Store 139(i64) 192 + 193: 18(int) Load 139(i64) + 194: 31(int) Load 159(i) + 195: 18(int) SConvert 194 + 196: 18(int) SMod 193 195 + Store 139(i64) 196 + 197: 31(int) Load 159(i) + 198: 132(ivec3) Load 134(u64v) + 200: 199(ivec3) CompositeConstruct 197 197 197 + 201: 132(ivec3) ShiftLeftLogical 198 200 + Store 134(u64v) 201 + 204: 203(ptr) AccessChain 166(uv) 202 + 205: 21(int) Load 204 + 206: 18(int) Load 139(i64) + 207: 18(int) ShiftRightArithmetic 206 205 + Store 139(i64) 207 + 208: 18(int) Load 139(i64) + 210: 40(ptr) AccessChain 134(u64v) 209 + 211: 14(int) Load 210 + 212: 18(int) ShiftLeftLogical 208 211 + Store 139(i64) 212 + 213: 132(ivec3) Load 134(u64v) + 214: 18(int) Load 139(i64) + 215: 136(ivec3) CompositeConstruct 214 214 214 + 216: 132(ivec3) ShiftLeftLogical 213 215 + Store 134(u64v) 216 + 220: 40(ptr) AccessChain 134(u64v) 219 + 221: 14(int) Load 220 + 222: 18(int) Load 139(i64) + 223: 14(int) Bitcast 222 + 224: 55(bool) INotEqual 221 223 + Store 218(b) 224 + 225: 18(int) Load 139(i64) + 226: 14(int) Bitcast 225 + 227: 40(ptr) AccessChain 134(u64v) 219 + 228: 14(int) Load 227 + 229: 55(bool) IEqual 226 228 + Store 218(b) 229 + 230: 40(ptr) AccessChain 134(u64v) 219 + 231: 14(int) Load 230 + 232: 203(ptr) AccessChain 166(uv) 202 + 233: 21(int) Load 232 + 234: 14(int) UConvert 233 + 235: 55(bool) UGreaterThan 231 234 + Store 218(b) 235 + 236: 18(int) Load 139(i64) + 237: 31(int) Load 159(i) + 238: 18(int) SConvert 237 + 239: 55(bool) SLessThan 236 238 + Store 218(b) 239 + 240: 40(ptr) AccessChain 134(u64v) 202 + 241: 14(int) Load 240 + 242: 203(ptr) AccessChain 166(uv) 219 + 243: 21(int) Load 242 + 244: 14(int) UConvert 243 + 245: 55(bool) UGreaterThanEqual 241 244 + Store 218(b) 245 + 246: 18(int) Load 139(i64) + 247: 31(int) Load 159(i) + 248: 18(int) SConvert 247 + 249: 55(bool) SLessThanEqual 246 248 + Store 218(b) 249 + 250: 31(int) Load 159(i) + 251: 18(int) SConvert 250 + 252: 14(int) Bitcast 251 + 253: 132(ivec3) Load 134(u64v) + 254: 132(ivec3) CompositeConstruct 252 252 252 + 255: 132(ivec3) BitwiseOr 253 254 + Store 134(u64v) 255 + 256: 18(int) Load 139(i64) + 257: 31(int) Load 159(i) + 258: 18(int) SConvert 257 + 259: 18(int) BitwiseOr 256 258 + Store 139(i64) 259 + 260: 31(int) Load 159(i) + 261: 18(int) SConvert 260 + 262: 18(int) Load 139(i64) + 263: 18(int) BitwiseAnd 262 261 + Store 139(i64) 263 + 264: 132(ivec3) Load 134(u64v) + 265: 164(ivec3) Load 166(uv) + 266: 132(ivec3) UConvert 265 + 267: 132(ivec3) BitwiseAnd 264 266 + Store 134(u64v) 267 + 268: 18(int) Load 139(i64) + 269: 14(int) Bitcast 268 + 270: 132(ivec3) Load 134(u64v) + 271: 132(ivec3) CompositeConstruct 269 269 269 + 272: 132(ivec3) BitwiseXor 270 271 + Store 134(u64v) 272 + 273: 132(ivec3) Load 134(u64v) + 274: 18(int) Load 139(i64) + 275: 14(int) Bitcast 274 + 276: 132(ivec3) CompositeConstruct 275 275 275 + 277: 132(ivec3) BitwiseXor 273 276 + Store 134(u64v) 277 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label - 276(i64v): 51(ptr) Variable Function - 279(i64): 15(ptr) Variable Function - 289(u64v): 131(ptr) Variable Function - 291(u64): 37(ptr) Variable Function - 363(dv): 362(ptr) Variable Function - 382(iv): 73(ptr) Variable Function - 387(uv): 80(ptr) Variable Function - 391(bv): 390(ptr) Variable Function - 277: 50(ivec2) Load 276(i64v) - 278: 50(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 277 - Store 276(i64v) 278 - 280: 14(int) Load 279(i64) - 281: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 280 - Store 279(i64) 281 - 282: 50(ivec2) Load 276(i64v) - 283: 14(int) Load 279(i64) - 284: 50(ivec2) CompositeConstruct 283 283 - 285: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 282 284 - Store 276(i64v) 285 - 286: 50(ivec2) Load 276(i64v) - 288: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 286 287 - Store 276(i64v) 288 - 290: 130(ivec3) Load 289(u64v) - 292: 36(int) Load 291(u64) - 293: 130(ivec3) CompositeConstruct 292 292 292 - 294: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 290 293 - Store 289(u64v) 294 - 295: 130(ivec3) Load 289(u64v) - 297: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 296 - Store 289(u64v) 297 - 298: 50(ivec2) Load 276(i64v) - 299: 14(int) Load 279(i64) - 300: 50(ivec2) CompositeConstruct 299 299 - 301: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 298 300 - Store 276(i64v) 301 - 302: 50(ivec2) Load 276(i64v) - 303: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 302 287 - Store 276(i64v) 303 - 304: 130(ivec3) Load 289(u64v) - 305: 36(int) Load 291(u64) - 306: 130(ivec3) CompositeConstruct 305 305 305 - 307: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 304 306 - Store 289(u64v) 307 - 308: 130(ivec3) Load 289(u64v) - 309: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 308 296 - Store 289(u64v) 309 - 310: 50(ivec2) Load 276(i64v) - 311: 14(int) Load 279(i64) - 312: 14(int) SNegate 311 - 313: 14(int) Load 279(i64) - 314: 50(ivec2) CompositeConstruct 312 312 - 315: 50(ivec2) CompositeConstruct 313 313 - 316: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 310 314 315 - Store 276(i64v) 316 - 317: 50(ivec2) Load 276(i64v) - 318: 50(ivec2) Load 276(i64v) - 319: 50(ivec2) SNegate 318 - 320: 50(ivec2) Load 276(i64v) - 321: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 317 319 320 - Store 276(i64v) 321 - 322: 130(ivec3) Load 289(u64v) - 323: 36(int) Load 291(u64) - 324: 36(int) SNegate 323 - 325: 36(int) Load 291(u64) - 326: 130(ivec3) CompositeConstruct 324 324 324 - 327: 130(ivec3) CompositeConstruct 325 325 325 - 328: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 322 326 327 - Store 289(u64v) 328 - 329: 130(ivec3) Load 289(u64v) - 330: 130(ivec3) Load 289(u64v) - 331: 130(ivec3) SNegate 330 - 332: 130(ivec3) Load 289(u64v) - 333: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 329 331 332 - Store 289(u64v) 333 - 334: 15(ptr) AccessChain 276(i64v) 217 - 335: 14(int) Load 334 - 336: 15(ptr) AccessChain 276(i64v) 200 - 337: 14(int) Load 336 - 339: 14(int) Select 338 337 335 - Store 279(i64) 339 - 340: 14(int) Load 279(i64) - 341: 50(ivec2) CompositeConstruct 340 340 - 342: 14(int) Load 279(i64) - 343: 14(int) SNegate 342 - 344: 50(ivec2) CompositeConstruct 343 343 - 347: 50(ivec2) Select 346 344 341 - Store 276(i64v) 347 - 348: 37(ptr) AccessChain 289(u64v) 217 - 349: 36(int) Load 348 - 350: 37(ptr) AccessChain 289(u64v) 200 - 351: 36(int) Load 350 - 352: 36(int) Select 338 351 349 - Store 291(u64) 352 - 353: 36(int) Load 291(u64) - 354: 130(ivec3) CompositeConstruct 353 353 353 - 355: 36(int) Load 291(u64) - 356: 36(int) SNegate 355 - 357: 130(ivec3) CompositeConstruct 356 356 356 - 360: 130(ivec3) Select 359 357 354 - Store 289(u64v) 360 - 364: 361(fvec3) Load 363(dv) - 365: 93(fvec2) VectorShuffle 364 364 0 1 - 366: 50(ivec2) Bitcast 365 - Store 276(i64v) 366 - 368: 367(ptr) AccessChain 363(dv) 207 - 369: 92(float) Load 368 - 370: 36(int) Bitcast 369 - 371: 37(ptr) AccessChain 289(u64v) 217 - Store 371 370 - 372: 50(ivec2) Load 276(i64v) - 373: 93(fvec2) Bitcast 372 - 374: 361(fvec3) Load 363(dv) - 375: 361(fvec3) VectorShuffle 374 373 3 4 2 - Store 363(dv) 375 - 376: 130(ivec3) Load 289(u64v) - 377: 361(fvec3) Bitcast 376 - Store 363(dv) 377 - 381: 14(int) ExtInst 1(GLSL.std.450) 0(Unknown) 380 - Store 279(i64) 381 - 383: 14(int) Load 279(i64) - 384: 72(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 383 - Store 382(iv) 384 - 386: 36(int) ExtInst 1(GLSL.std.450) 0(Unknown) 385 - Store 291(u64) 386 - 388: 36(int) Load 291(u64) - 389: 79(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 388 - Store 387(uv) 389 - 392: 130(ivec3) Load 289(u64v) - 393: 36(int) Load 291(u64) - 394: 130(ivec3) CompositeConstruct 393 393 393 - 395: 358(bvec3) ULessThan 392 394 - Store 391(bv) 395 - 396: 50(ivec2) Load 276(i64v) - 397: 14(int) Load 279(i64) - 398: 50(ivec2) CompositeConstruct 397 397 - 399: 54(bvec2) SLessThan 396 398 - 400: 358(bvec3) Load 391(bv) - 401: 358(bvec3) VectorShuffle 400 399 3 4 2 - Store 391(bv) 401 - 402: 130(ivec3) Load 289(u64v) - 403: 36(int) Load 291(u64) - 404: 130(ivec3) CompositeConstruct 403 403 403 - 405: 358(bvec3) ULessThanEqual 402 404 - Store 391(bv) 405 - 406: 50(ivec2) Load 276(i64v) - 407: 14(int) Load 279(i64) - 408: 50(ivec2) CompositeConstruct 407 407 - 409: 54(bvec2) SLessThanEqual 406 408 - 410: 358(bvec3) Load 391(bv) - 411: 358(bvec3) VectorShuffle 410 409 3 4 2 - Store 391(bv) 411 - 412: 130(ivec3) Load 289(u64v) - 413: 36(int) Load 291(u64) - 414: 130(ivec3) CompositeConstruct 413 413 413 - 415: 358(bvec3) UGreaterThan 412 414 - Store 391(bv) 415 - 416: 50(ivec2) Load 276(i64v) - 417: 14(int) Load 279(i64) - 418: 50(ivec2) CompositeConstruct 417 417 - 419: 54(bvec2) SGreaterThan 416 418 - 420: 358(bvec3) Load 391(bv) - 421: 358(bvec3) VectorShuffle 420 419 3 4 2 - Store 391(bv) 421 - 422: 130(ivec3) Load 289(u64v) - 423: 36(int) Load 291(u64) - 424: 130(ivec3) CompositeConstruct 423 423 423 - 425: 358(bvec3) UGreaterThanEqual 422 424 - Store 391(bv) 425 - 426: 50(ivec2) Load 276(i64v) - 427: 14(int) Load 279(i64) - 428: 50(ivec2) CompositeConstruct 427 427 - 429: 54(bvec2) SGreaterThanEqual 426 428 - 430: 358(bvec3) Load 391(bv) - 431: 358(bvec3) VectorShuffle 430 429 3 4 2 - Store 391(bv) 431 - 432: 130(ivec3) Load 289(u64v) - 433: 36(int) Load 291(u64) - 434: 130(ivec3) CompositeConstruct 433 433 433 - 435: 358(bvec3) IEqual 432 434 - Store 391(bv) 435 - 436: 50(ivec2) Load 276(i64v) - 437: 14(int) Load 279(i64) - 438: 50(ivec2) CompositeConstruct 437 437 - 439: 54(bvec2) IEqual 436 438 - 440: 358(bvec3) Load 391(bv) - 441: 358(bvec3) VectorShuffle 440 439 3 4 2 - Store 391(bv) 441 - 442: 130(ivec3) Load 289(u64v) - 443: 36(int) Load 291(u64) - 444: 130(ivec3) CompositeConstruct 443 443 443 - 445: 358(bvec3) INotEqual 442 444 - Store 391(bv) 445 - 446: 50(ivec2) Load 276(i64v) - 447: 14(int) Load 279(i64) - 448: 50(ivec2) CompositeConstruct 447 447 - 449: 54(bvec2) INotEqual 446 448 - 450: 358(bvec3) Load 391(bv) - 451: 358(bvec3) VectorShuffle 450 449 3 4 2 - Store 391(bv) 451 + 278(i64v): 53(ptr) Variable Function + 281(i64): 19(ptr) Variable Function + 291(u64v): 133(ptr) Variable Function + 293(u64): 40(ptr) Variable Function + 365(dv): 364(ptr) Variable Function + 384(iv): 75(ptr) Variable Function + 389(uv): 82(ptr) Variable Function + 393(bv): 392(ptr) Variable Function + 279: 52(ivec2) Load 278(i64v) + 280: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 279 + Store 278(i64v) 280 + 282: 18(int) Load 281(i64) + 283: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 282 + Store 281(i64) 283 + 284: 52(ivec2) Load 278(i64v) + 285: 18(int) Load 281(i64) + 286: 52(ivec2) CompositeConstruct 285 285 + 287: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 284 286 + Store 278(i64v) 287 + 288: 52(ivec2) Load 278(i64v) + 290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 288 289 + Store 278(i64v) 290 + 292: 132(ivec3) Load 291(u64v) + 294: 14(int) Load 293(u64) + 295: 132(ivec3) CompositeConstruct 294 294 294 + 296: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 292 295 + Store 291(u64v) 296 + 297: 132(ivec3) Load 291(u64v) + 299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 297 298 + Store 291(u64v) 299 + 300: 52(ivec2) Load 278(i64v) + 301: 18(int) Load 281(i64) + 302: 52(ivec2) CompositeConstruct 301 301 + 303: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 300 302 + Store 278(i64v) 303 + 304: 52(ivec2) Load 278(i64v) + 305: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 304 289 + Store 278(i64v) 305 + 306: 132(ivec3) Load 291(u64v) + 307: 14(int) Load 293(u64) + 308: 132(ivec3) CompositeConstruct 307 307 307 + 309: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 306 308 + Store 291(u64v) 309 + 310: 132(ivec3) Load 291(u64v) + 311: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 310 298 + Store 291(u64v) 311 + 312: 52(ivec2) Load 278(i64v) + 313: 18(int) Load 281(i64) + 314: 18(int) SNegate 313 + 315: 18(int) Load 281(i64) + 316: 52(ivec2) CompositeConstruct 314 314 + 317: 52(ivec2) CompositeConstruct 315 315 + 318: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 312 316 317 + Store 278(i64v) 318 + 319: 52(ivec2) Load 278(i64v) + 320: 52(ivec2) Load 278(i64v) + 321: 52(ivec2) SNegate 320 + 322: 52(ivec2) Load 278(i64v) + 323: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 319 321 322 + Store 278(i64v) 323 + 324: 132(ivec3) Load 291(u64v) + 325: 14(int) Load 293(u64) + 326: 14(int) SNegate 325 + 327: 14(int) Load 293(u64) + 328: 132(ivec3) CompositeConstruct 326 326 326 + 329: 132(ivec3) CompositeConstruct 327 327 327 + 330: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 324 328 329 + Store 291(u64v) 330 + 331: 132(ivec3) Load 291(u64v) + 332: 132(ivec3) Load 291(u64v) + 333: 132(ivec3) SNegate 332 + 334: 132(ivec3) Load 291(u64v) + 335: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 331 333 334 + Store 291(u64v) 335 + 336: 19(ptr) AccessChain 278(i64v) 219 + 337: 18(int) Load 336 + 338: 19(ptr) AccessChain 278(i64v) 202 + 339: 18(int) Load 338 + 341: 18(int) Select 340 339 337 + Store 281(i64) 341 + 342: 18(int) Load 281(i64) + 343: 52(ivec2) CompositeConstruct 342 342 + 344: 18(int) Load 281(i64) + 345: 18(int) SNegate 344 + 346: 52(ivec2) CompositeConstruct 345 345 + 349: 52(ivec2) Select 348 346 343 + Store 278(i64v) 349 + 350: 40(ptr) AccessChain 291(u64v) 219 + 351: 14(int) Load 350 + 352: 40(ptr) AccessChain 291(u64v) 202 + 353: 14(int) Load 352 + 354: 14(int) Select 340 353 351 + Store 293(u64) 354 + 355: 14(int) Load 293(u64) + 356: 132(ivec3) CompositeConstruct 355 355 355 + 357: 14(int) Load 293(u64) + 358: 14(int) SNegate 357 + 359: 132(ivec3) CompositeConstruct 358 358 358 + 362: 132(ivec3) Select 361 359 356 + Store 291(u64v) 362 + 366: 363(fvec3) Load 365(dv) + 367: 95(fvec2) VectorShuffle 366 366 0 1 + 368: 52(ivec2) Bitcast 367 + Store 278(i64v) 368 + 370: 369(ptr) AccessChain 365(dv) 209 + 371: 94(float) Load 370 + 372: 14(int) Bitcast 371 + 373: 40(ptr) AccessChain 291(u64v) 219 + Store 373 372 + 374: 52(ivec2) Load 278(i64v) + 375: 95(fvec2) Bitcast 374 + 376: 363(fvec3) Load 365(dv) + 377: 363(fvec3) VectorShuffle 376 375 3 4 2 + Store 365(dv) 377 + 378: 132(ivec3) Load 291(u64v) + 379: 363(fvec3) Bitcast 378 + Store 365(dv) 379 + 383: 18(int) ExtInst 1(GLSL.std.450) 0(Unknown) 382 + Store 281(i64) 383 + 385: 18(int) Load 281(i64) + 386: 74(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 385 + Store 384(iv) 386 + 388: 14(int) ExtInst 1(GLSL.std.450) 0(Unknown) 387 + Store 293(u64) 388 + 390: 14(int) Load 293(u64) + 391: 81(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 390 + Store 389(uv) 391 + 394: 132(ivec3) Load 291(u64v) + 395: 14(int) Load 293(u64) + 396: 132(ivec3) CompositeConstruct 395 395 395 + 397: 360(bvec3) ULessThan 394 396 + Store 393(bv) 397 + 398: 52(ivec2) Load 278(i64v) + 399: 18(int) Load 281(i64) + 400: 52(ivec2) CompositeConstruct 399 399 + 401: 56(bvec2) SLessThan 398 400 + 402: 360(bvec3) Load 393(bv) + 403: 360(bvec3) VectorShuffle 402 401 3 4 2 + Store 393(bv) 403 + 404: 132(ivec3) Load 291(u64v) + 405: 14(int) Load 293(u64) + 406: 132(ivec3) CompositeConstruct 405 405 405 + 407: 360(bvec3) ULessThanEqual 404 406 + Store 393(bv) 407 + 408: 52(ivec2) Load 278(i64v) + 409: 18(int) Load 281(i64) + 410: 52(ivec2) CompositeConstruct 409 409 + 411: 56(bvec2) SLessThanEqual 408 410 + 412: 360(bvec3) Load 393(bv) + 413: 360(bvec3) VectorShuffle 412 411 3 4 2 + Store 393(bv) 413 + 414: 132(ivec3) Load 291(u64v) + 415: 14(int) Load 293(u64) + 416: 132(ivec3) CompositeConstruct 415 415 415 + 417: 360(bvec3) UGreaterThan 414 416 + Store 393(bv) 417 + 418: 52(ivec2) Load 278(i64v) + 419: 18(int) Load 281(i64) + 420: 52(ivec2) CompositeConstruct 419 419 + 421: 56(bvec2) SGreaterThan 418 420 + 422: 360(bvec3) Load 393(bv) + 423: 360(bvec3) VectorShuffle 422 421 3 4 2 + Store 393(bv) 423 + 424: 132(ivec3) Load 291(u64v) + 425: 14(int) Load 293(u64) + 426: 132(ivec3) CompositeConstruct 425 425 425 + 427: 360(bvec3) UGreaterThanEqual 424 426 + Store 393(bv) 427 + 428: 52(ivec2) Load 278(i64v) + 429: 18(int) Load 281(i64) + 430: 52(ivec2) CompositeConstruct 429 429 + 431: 56(bvec2) SGreaterThanEqual 428 430 + 432: 360(bvec3) Load 393(bv) + 433: 360(bvec3) VectorShuffle 432 431 3 4 2 + Store 393(bv) 433 + 434: 132(ivec3) Load 291(u64v) + 435: 14(int) Load 293(u64) + 436: 132(ivec3) CompositeConstruct 435 435 435 + 437: 360(bvec3) IEqual 434 436 + Store 393(bv) 437 + 438: 52(ivec2) Load 278(i64v) + 439: 18(int) Load 281(i64) + 440: 52(ivec2) CompositeConstruct 439 439 + 441: 56(bvec2) IEqual 438 440 + 442: 360(bvec3) Load 393(bv) + 443: 360(bvec3) VectorShuffle 442 441 3 4 2 + Store 393(bv) 443 + 444: 132(ivec3) Load 291(u64v) + 445: 14(int) Load 293(u64) + 446: 132(ivec3) CompositeConstruct 445 445 445 + 447: 360(bvec3) INotEqual 444 446 + Store 393(bv) 447 + 448: 52(ivec2) Load 278(i64v) + 449: 18(int) Load 281(i64) + 450: 52(ivec2) CompositeConstruct 449 449 + 451: 56(bvec2) INotEqual 448 450 + 452: 360(bvec3) Load 393(bv) + 453: 360(bvec3) VectorShuffle 452 451 3 4 2 + Store 393(bv) 453 Return FunctionEnd diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out index 7d934ff1..6682e7c2 100755 --- a/Test/baseResults/spv.uint.frag.out +++ b/Test/baseResults/spv.uint.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 207 +// Id's are bound by 213 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 68 77 200 202 204 + EntryPoint Fragment 4 "main" 15 68 77 206 208 210 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" @@ -33,10 +33,10 @@ Linked fragment stage: Name 154 "mask2" Name 156 "mask3" Name 160 "mask4" - Name 200 "f" - Name 202 "v" - Name 204 "i" - Name 206 "b" + Name 206 "f" + Name 208 "v" + Name 210 "i" + Name 212 "b" Decorate 8(count) RelaxedPrecision Decorate 12(u) RelaxedPrecision Decorate 15(t) RelaxedPrecision @@ -138,11 +138,13 @@ Linked fragment stage: Decorate 196 RelaxedPrecision Decorate 197 RelaxedPrecision Decorate 198 RelaxedPrecision - Decorate 200(f) RelaxedPrecision - Decorate 202(v) RelaxedPrecision - Decorate 202(v) Flat - Decorate 204(i) RelaxedPrecision - Decorate 204(i) Flat + Decorate 202 RelaxedPrecision + Decorate 203 RelaxedPrecision + Decorate 206(f) RelaxedPrecision + Decorate 208(v) RelaxedPrecision + Decorate 208(v) Flat + Decorate 210(i) RelaxedPrecision + Decorate 210(i) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -193,14 +195,16 @@ Linked fragment stage: 155: 10(int) Constant 2576 158: 6(int) Constant 4 161: 10(int) Constant 2737 - 199: TypePointer Input 74(float) - 200(f): 199(ptr) Variable Input - 201: TypePointer Input 66(ivec4) - 202(v): 201(ptr) Variable Input - 203: TypePointer Input 6(int) - 204(i): 203(ptr) Variable Input - 205: TypePointer Private 22(bool) - 206(b): 205(ptr) Variable Private + 199: 10(int) Constant 4294967295 + 200: TypePointer Output 10(int) + 205: TypePointer Input 74(float) + 206(f): 205(ptr) Variable Input + 207: TypePointer Input 66(ivec4) + 208(v): 207(ptr) Variable Input + 209: TypePointer Input 6(int) + 210(i): 209(ptr) Variable Input + 211: TypePointer Private 22(bool) + 212(b): 211(ptr) Variable Private 4(main): 2 Function None 3 5: Label 8(count): 7(ptr) Variable Function @@ -434,5 +438,10 @@ Linked fragment stage: 197: 66(ivec4) Load 68(c) 198: 66(ivec4) IAdd 197 196 Store 68(c) 198 + 201: 200(ptr) AccessChain 68(c) 103 + 202: 10(int) Load 201 + 203: 10(int) IAdd 202 199 + 204: 200(ptr) AccessChain 68(c) 103 + Store 204 203 Return FunctionEnd diff --git a/Test/spv.int64.frag b/Test/spv.int64.frag index c21ce35f..8021b7e9 100644 --- a/Test/spv.int64.frag +++ b/Test/spv.int64.frag @@ -258,4 +258,7 @@ const uint64_t i_to_u64 = uint64_t(si); // uint <-> int64 const uint i64_to_u = uint(si64); -const int64_t u_to_i64 = int64_t(su); \ No newline at end of file +const int64_t u_to_i64 = int64_t(su); + +#define UINT64_MAX 18446744073709551615ul +uint64_t u64Max = UINT64_MAX; diff --git a/Test/spv.uint.frag b/Test/spv.uint.frag index 92a8f962..853de7c4 100644 --- a/Test/spv.uint.frag +++ b/Test/spv.uint.frag @@ -95,5 +95,8 @@ void main() if ((mask1 ^ mask4) == 0xA10u) count *= 7; // 341413380 - c += uvec4(count); + c += uvec4(count); + + #define UINT_MAX 4294967295u + c.x += UINT_MAX; } diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index 1e1b0a2f..f5a0513c 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -224,7 +224,6 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) ppToken->dval = atof(ppToken->name); break; case PpAtomConstInt: - case PpAtomConstUint: if (len > 0 && tokenText[0] == '0') { if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) ppToken->ival = strtol(ppToken->name, 0, 16); @@ -233,8 +232,16 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) } else ppToken->ival = atoi(ppToken->name); break; + case PpAtomConstUint: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->ival = (int)strtoul(ppToken->name, 0, 16); + else + ppToken->ival = (int)strtoul(ppToken->name, 0, 8); + } else + ppToken->ival = (int)strtoul(ppToken->name, 0, 10); + break; case PpAtomConstInt64: - case PpAtomConstUint64: if (len > 0 && tokenText[0] == '0') { if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) ppToken->i64val = strtoll(ppToken->name, nullptr, 16); @@ -243,6 +250,15 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) } else ppToken->i64val = atoll(ppToken->name); break; + case PpAtomConstUint64: + if (len > 0 && tokenText[0] == '0') { + if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) + ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 16); + else + ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 8); + } else + ppToken->i64val = (long long)strtoull(ppToken->name, 0, 10); + break; } } From c9f349234f6b5b04f80aea3b6cd99b4eb5619267 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 9 Sep 2016 17:50:07 +0800 Subject: [PATCH 118/217] SPV: Use OpBitcast to implement 4 pack/unpack built-in functions. --- SPIRV/GlslangToSpv.cpp | 3 +-- Test/baseResults/spv.int64.frag.out | 9 ++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index c559142f..788dd635 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -3504,8 +3504,7 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpUnpackInt2x32: case glslang::EOpPackUint2x32: case glslang::EOpUnpackUint2x32: - logger->missingFunctionality("shader int64"); - libCall = spv::GLSLstd450Bad; // TODO: This is a placeholder. + unaryOp = spv::OpBitcast; break; case glslang::EOpDPdx: diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out index b7d8ce94..1c89c034 100644 --- a/Test/baseResults/spv.int64.frag.out +++ b/Test/baseResults/spv.int64.frag.out @@ -5,7 +5,6 @@ Warning, version 450 is not yet complete; most version-specific features are pre Linked fragment stage: -Missing functionality: shader int64 // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 478 @@ -568,15 +567,15 @@ Missing functionality: shader int64 376: 130(ivec3) Load 289(u64v) 377: 361(fvec3) Bitcast 376 Store 363(dv) 377 - 381: 14(int) ExtInst 1(GLSL.std.450) 0(Unknown) 380 + 381: 14(int) Bitcast 380 Store 279(i64) 381 383: 14(int) Load 279(i64) - 384: 72(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 383 + 384: 72(ivec2) Bitcast 383 Store 382(iv) 384 - 386: 36(int) ExtInst 1(GLSL.std.450) 0(Unknown) 385 + 386: 36(int) Bitcast 385 Store 291(u64) 386 388: 36(int) Load 291(u64) - 389: 79(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 388 + 389: 79(ivec2) Bitcast 388 Store 387(uv) 389 392: 130(ivec3) Load 289(u64v) 393: 36(int) Load 291(u64) From d4032293cebd730be66a4324118a0b4ba88b9fb7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 9 Sep 2016 11:43:11 -0600 Subject: [PATCH 119/217] HLSL: Report an error if SPIR-V for Vulkan wasn't selected. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ShaderLang.cpp | 5 ++--- hlsl/hlslParseHelper.cpp | 3 +++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index a9c1f106..85fd2623 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1474" +#define GLSLANG_REVISION "Overload400-PrecQual.1477" #define GLSLANG_DATE "09-Sep-2016" diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 97c3940b..c0510c7a 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -695,9 +695,8 @@ bool ProcessDeferred( TParseContextBase* parseContext; if (source == EShSourceHlsl) { parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion, - compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); - } - else { + compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); + } else { intermediate.setEntryPoint("main"); parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion, compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 282fabd0..7c4a83f7 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -82,6 +82,9 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int if (language == EShLangGeometry) globalOutputDefaults.layoutStream = 0; + + if (spvVersion.spv == 0 || spvVersion.vulkan == 0) + infoSink.info << "ERROR: HLSL currently only supported when requesting SPIR-V for Vulkan.\n"; } HlslParseContext::~HlslParseContext() From 297ae211f175d409031617dd9562d544d5a3e227 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 24 Aug 2016 14:36:13 -0600 Subject: [PATCH 120/217] WIP: HLSL: Treat HLSL rows as GLSL columns. WIP: HLSL: EOpGenMul arg reversal --- Test/baseResults/hlsl.intrinsics.frag.out | 5230 +++++++++-------- Test/baseResults/hlsl.intrinsics.vert.out | 536 +- Test/baseResults/hlsl.matType.frag.out | 28 +- Test/baseResults/hlsl.matrixindex.frag.out | 369 ++ Test/baseResults/hlsl.templatetypes.frag.out | 85 +- .../remap.hlsl.templatetypes.none.frag.out | 41 +- Test/hlsl.intrinsics.frag | 9 + Test/hlsl.matrixindex.frag | 49 + gtests/Hlsl.FromFile.cpp | 3 +- hlsl/hlslGrammar.cpp | 124 +- hlsl/hlslParseHelper.cpp | 28 +- hlsl/hlslParseables.cpp | 50 +- 12 files changed, 3525 insertions(+), 3027 deletions(-) create mode 100644 Test/baseResults/hlsl.matrixindex.frag.out create mode 100644 Test/hlsl.matrixindex.frag diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index ba3cb537..23297e9c 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -1140,80 +1140,80 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: -0:260 'inF0' (layout(location=0 ) in 4-component vector of float) -0:260 'inF1' (layout(location=1 ) in 4-component vector of float) -0:260 'inF2' (layout(location=2 ) in 4-component vector of float) -0:260 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:260 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 'inF2' (in 4-component vector of float) +0:260 'inU0' (in 4-component vector of uint) +0:260 'inU1' (in 4-component vector of uint) 0:? Sequence 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) 0:263 all (global bool) -0:263 'inF0' (layout(location=0 ) in 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) 0:264 Absolute value (global 4-component vector of float) -0:264 'inF0' (layout(location=0 ) in 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) 0:265 arc cosine (global 4-component vector of float) -0:265 'inF0' (layout(location=0 ) in 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) 0:266 any (global bool) -0:266 'inF0' (layout(location=0 ) in 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) 0:267 arc sine (global 4-component vector of float) -0:267 'inF0' (layout(location=0 ) in 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) 0:268 floatBitsToInt (global 4-component vector of int) -0:268 'inF0' (layout(location=0 ) in 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) 0:269 floatBitsToUint (global 4-component vector of uint) -0:269 'inF0' (layout(location=0 ) in 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) 0:270 intBitsToFloat (global 4-component vector of float) -0:270 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) -0:272 'inF0' (layout(location=0 ) in 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) 0:273 arc tangent (global 4-component vector of float) -0:273 'inF0' (layout(location=0 ) in 4-component vector of float) -0:273 'inF1' (layout(location=1 ) in 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) +0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) 0:274 Ceiling (global 4-component vector of float) -0:274 'inF0' (layout(location=0 ) in 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) 0:275 clamp (global 4-component vector of float) -0:275 'inF0' (layout(location=0 ) in 4-component vector of float) -0:275 'inF1' (layout(location=1 ) in 4-component vector of float) -0:275 'inF2' (layout(location=2 ) in 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:275 'inF1' (in 4-component vector of float) +0:275 'inF2' (in 4-component vector of float) 0:276 Test condition and select (temp void) 0:276 Condition 0:276 any (temp bool) 0:276 Compare Less Than (temp 4-component vector of bool) -0:276 'inF0' (layout(location=0 ) in 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) 0:276 Constant: 0:276 0.000000 0:276 0.000000 @@ -1225,12 +1225,12 @@ gl_FragCoord origin is upper left 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) 0:277 cosine (global 4-component vector of float) -0:277 'inF0' (layout(location=0 ) in 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) 0:278 hyp. cosine (global 4-component vector of float) -0:278 'inF0' (layout(location=0 ) in 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) @@ -1244,49 +1244,49 @@ gl_FragCoord origin is upper left 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) 0:280 dPdx (global 4-component vector of float) -0:280 'inF0' (layout(location=0 ) in 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) 0:281 dPdxCoarse (global 4-component vector of float) -0:281 'inF0' (layout(location=0 ) in 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) 0:282 dPdxFine (global 4-component vector of float) -0:282 'inF0' (layout(location=0 ) in 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) 0:283 dPdy (global 4-component vector of float) -0:283 'inF0' (layout(location=0 ) in 4-component vector of float) +0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) 0:284 dPdyCoarse (global 4-component vector of float) -0:284 'inF0' (layout(location=0 ) in 4-component vector of float) +0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) 0:285 dPdyFine (global 4-component vector of float) -0:285 'inF0' (layout(location=0 ) in 4-component vector of float) +0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) 0:286 degrees (global 4-component vector of float) -0:286 'inF0' (layout(location=0 ) in 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) 0:287 distance (global float) -0:287 'inF0' (layout(location=0 ) in 4-component vector of float) -0:287 'inF1' (layout(location=1 ) in 4-component vector of float) +0:287 'inF0' (in 4-component vector of float) +0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) 0:288 dot-product (global float) -0:288 'inF0' (layout(location=0 ) in 4-component vector of float) -0:288 'inF1' (layout(location=1 ) in 4-component vector of float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) 0:289 Sequence 0:289 move second child to first child (temp 4-component vector of float) 0:289 'r025' (temp 4-component vector of float) @@ -1295,38 +1295,38 @@ gl_FragCoord origin is upper left 0:289 1.000000 0:289 component-wise multiply (temp float) 0:289 direct index (temp float) -0:289 'inF0' (layout(location=0 ) in 4-component vector of float) +0:289 'inF0' (in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF1' (layout(location=1 ) in 4-component vector of float) +0:289 'inF1' (in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF0' (layout(location=0 ) in 4-component vector of float) +0:289 'inF0' (in 4-component vector of float) 0:289 Constant: 0:289 2 (const int) 0:289 direct index (temp float) -0:289 'inF1' (layout(location=1 ) in 4-component vector of float) +0:289 'inF1' (in 4-component vector of float) 0:289 Constant: 0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) 0:293 exp (global 4-component vector of float) -0:293 'inF0' (layout(location=0 ) in 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) 0:294 exp2 (global 4-component vector of float) -0:294 'inF0' (layout(location=0 ) in 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) 0:295 face-forward (global 4-component vector of float) -0:295 'inF0' (layout(location=0 ) in 4-component vector of float) -0:295 'inF1' (layout(location=1 ) in 4-component vector of float) -0:295 'inF2' (layout(location=2 ) in 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) @@ -1349,122 +1349,122 @@ gl_FragCoord origin is upper left 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) 0:298 Floor (global 4-component vector of float) -0:298 'inF0' (layout(location=0 ) in 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) 0:300 mod (global 4-component vector of float) -0:300 'inF0' (layout(location=0 ) in 4-component vector of float) -0:300 'inF1' (layout(location=1 ) in 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) 0:301 Fraction (global 4-component vector of float) -0:301 'inF0' (layout(location=0 ) in 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) 0:302 frexp (global 4-component vector of float) -0:302 'inF0' (layout(location=0 ) in 4-component vector of float) -0:302 'inF1' (layout(location=1 ) in 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) 0:303 fwidth (global 4-component vector of float) -0:303 'inF0' (layout(location=0 ) in 4-component vector of float) +0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) 0:304 isinf (global 4-component vector of bool) -0:304 'inF0' (layout(location=0 ) in 4-component vector of float) +0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) 0:305 isnan (global 4-component vector of bool) -0:305 'inF0' (layout(location=0 ) in 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) 0:306 ldexp (global 4-component vector of float) -0:306 'inF0' (layout(location=0 ) in 4-component vector of float) -0:306 'inF1' (layout(location=1 ) in 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) +0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) 0:307 mix (global 4-component vector of float) -0:307 'inF0' (layout(location=0 ) in 4-component vector of float) -0:307 'inF1' (layout(location=1 ) in 4-component vector of float) -0:307 'inF2' (layout(location=2 ) in 4-component vector of float) +0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) +0:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) 0:308 length (global float) -0:308 'inF0' (layout(location=0 ) in 4-component vector of float) +0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) 0:309 log (global 4-component vector of float) -0:309 'inF0' (layout(location=0 ) in 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) 0:310 'r045' (temp 4-component vector of float) 0:310 vector-scale (temp 4-component vector of float) 0:310 log2 (temp 4-component vector of float) -0:310 'inF0' (layout(location=0 ) in 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) 0:310 Constant: 0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) 0:311 log2 (global 4-component vector of float) -0:311 'inF0' (layout(location=0 ) in 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) 0:312 max (global 4-component vector of float) -0:312 'inF0' (layout(location=0 ) in 4-component vector of float) -0:312 'inF1' (layout(location=1 ) in 4-component vector of float) +0:312 'inF0' (in 4-component vector of float) +0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) 0:313 min (global 4-component vector of float) -0:313 'inF0' (layout(location=0 ) in 4-component vector of float) -0:313 'inF1' (layout(location=1 ) in 4-component vector of float) +0:313 'inF0' (in 4-component vector of float) +0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) 0:314 normalize (global 4-component vector of float) -0:314 'inF0' (layout(location=0 ) in 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) 0:315 pow (global 4-component vector of float) -0:315 'inF0' (layout(location=0 ) in 4-component vector of float) -0:315 'inF1' (layout(location=1 ) in 4-component vector of float) +0:315 'inF0' (in 4-component vector of float) +0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) 0:316 radians (global 4-component vector of float) -0:316 'inF0' (layout(location=0 ) in 4-component vector of float) +0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) 0:317 'r052' (temp 4-component vector of float) 0:317 divide (temp 4-component vector of float) 0:317 Constant: 0:317 1.000000 -0:317 'inF0' (layout(location=0 ) in 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) 0:318 reflect (global 4-component vector of float) -0:318 'inF0' (layout(location=0 ) in 4-component vector of float) -0:318 'inF1' (layout(location=1 ) in 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) +0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) 0:319 refract (global 4-component vector of float) -0:319 'inF0' (layout(location=0 ) in 4-component vector of float) -0:319 'inF1' (layout(location=1 ) in 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) +0:319 'inF1' (in 4-component vector of float) 0:319 Constant: 0:319 2.000000 0:320 Sequence @@ -1480,17 +1480,17 @@ gl_FragCoord origin is upper left 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) 0:321 roundEven (global 4-component vector of float) -0:321 'inF0' (layout(location=0 ) in 4-component vector of float) +0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) 0:322 inverse sqrt (global 4-component vector of float) -0:322 'inF0' (layout(location=0 ) in 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) 0:323 'r058' (temp 4-component vector of float) 0:323 clamp (temp 4-component vector of float) -0:323 'inF0' (layout(location=0 ) in 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) 0:323 Constant: 0:323 0.000000 0:323 Constant: @@ -1499,68 +1499,65 @@ gl_FragCoord origin is upper left 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) 0:324 Sign (global 4-component vector of float) -0:324 'inF0' (layout(location=0 ) in 4-component vector of float) +0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) 0:325 sine (global 4-component vector of float) -0:325 'inF0' (layout(location=0 ) in 4-component vector of float) +0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF1' (layout(location=1 ) in 4-component vector of float) +0:326 'inF1' (in 4-component vector of float) 0:326 sine (temp 4-component vector of float) -0:326 'inF0' (layout(location=0 ) in 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF2' (layout(location=2 ) in 4-component vector of float) +0:326 'inF2' (in 4-component vector of float) 0:326 cosine (temp 4-component vector of float) -0:326 'inF0' (layout(location=0 ) in 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) 0:327 hyp. sine (global 4-component vector of float) -0:327 'inF0' (layout(location=0 ) in 4-component vector of float) +0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) 0:328 smoothstep (global 4-component vector of float) -0:328 'inF0' (layout(location=0 ) in 4-component vector of float) -0:328 'inF1' (layout(location=1 ) in 4-component vector of float) -0:328 'inF2' (layout(location=2 ) in 4-component vector of float) +0:328 'inF0' (in 4-component vector of float) +0:328 'inF1' (in 4-component vector of float) +0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) 0:329 sqrt (global 4-component vector of float) -0:329 'inF0' (layout(location=0 ) in 4-component vector of float) +0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) 0:330 step (global 4-component vector of float) -0:330 'inF0' (layout(location=0 ) in 4-component vector of float) -0:330 'inF1' (layout(location=1 ) in 4-component vector of float) +0:330 'inF0' (in 4-component vector of float) +0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) 0:331 tangent (global 4-component vector of float) -0:331 'inF0' (layout(location=0 ) in 4-component vector of float) +0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) 0:332 hyp. tangent (global 4-component vector of float) -0:332 'inF0' (layout(location=0 ) in 4-component vector of float) +0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) -0:334 'inF0' (layout(location=0 ) in 4-component vector of float) -0:337 Sequence -0:337 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:337 Branch: Return +0:334 'inF0' (in 4-component vector of float) +0:337 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -2472,20 +2469,20 @@ gl_FragCoord origin is upper left 0:443 move second child to first child (temp float) 0:443 'r0' (temp float) 0:443 component-wise multiply (temp float) -0:443 'inF0' (in float) 0:443 'inF1' (in float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r1' (temp 2-component vector of float) 0:443 vector-scale (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) 0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r2' (temp 2-component vector of float) 0:443 vector-scale (temp 2-component vector of float) -0:443 'inF0' (in float) 0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) @@ -2495,33 +2492,33 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r4' (temp 2-component vector of float) -0:443 matrix-times-vector (temp 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r5' (temp 2-component vector of float) 0:443 vector-times-matrix (temp 2-component vector of float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFM0' (in 2X2 matrix of float) 0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r6' (temp 2X2 matrix of float) 0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) 0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r7' (temp 2X2 matrix of float) 0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inF0' (in float) 0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r8' (temp 2X2 matrix of float) 0:443 matrix-multiply (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) 0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:449 Function Parameters: 0:449 'inF0' (in float) @@ -2535,20 +2532,20 @@ gl_FragCoord origin is upper left 0:450 move second child to first child (temp float) 0:450 'r0' (temp float) 0:450 component-wise multiply (temp float) -0:450 'inF0' (in float) 0:450 'inF1' (in float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r1' (temp 3-component vector of float) 0:450 vector-scale (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) 0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r2' (temp 3-component vector of float) 0:450 vector-scale (temp 3-component vector of float) -0:450 'inF0' (in float) 0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) @@ -2558,33 +2555,33 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r4' (temp 3-component vector of float) -0:450 matrix-times-vector (temp 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r5' (temp 3-component vector of float) 0:450 vector-times-matrix (temp 3-component vector of float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFM0' (in 3X3 matrix of float) 0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r6' (temp 3X3 matrix of float) 0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) 0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r7' (temp 3X3 matrix of float) 0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inF0' (in float) 0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r8' (temp 3X3 matrix of float) 0:450 matrix-multiply (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) 0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:456 Function Parameters: 0:456 'inF0' (in float) @@ -2598,20 +2595,20 @@ gl_FragCoord origin is upper left 0:457 move second child to first child (temp float) 0:457 'r0' (temp float) 0:457 component-wise multiply (temp float) -0:457 'inF0' (in float) 0:457 'inF1' (in float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r1' (temp 4-component vector of float) 0:457 vector-scale (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) 0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r2' (temp 4-component vector of float) 0:457 vector-scale (temp 4-component vector of float) -0:457 'inF0' (in float) 0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) @@ -2621,75 +2618,75 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r4' (temp 4-component vector of float) -0:457 matrix-times-vector (temp 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r5' (temp 4-component vector of float) 0:457 vector-times-matrix (temp 4-component vector of float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFM0' (in 4X4 matrix of float) 0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r6' (temp 4X4 matrix of float) 0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) 0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r7' (temp 4X4 matrix of float) 0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inF0' (in float) 0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r8' (temp 4X4 matrix of float) 0:457 matrix-multiply (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:457 'inFM0' (in 4X4 matrix of float) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) 0:466 'inFV2' (in 2-component vector of float) 0:466 'inFV3' (in 3-component vector of float) -0:466 'inFM2x3' (in 3X2 matrix of float) -0:466 'inFM3x2' (in 2X3 matrix of float) +0:466 'inFM2x3' (in 2X3 matrix of float) +0:466 'inFM3x2' (in 3X2 matrix of float) 0:466 'inFM3x3' (in 3X3 matrix of float) -0:466 'inFM3x4' (in 4X3 matrix of float) -0:466 'inFM2x4' (in 4X2 matrix of float) +0:466 'inFM3x4' (in 3X4 matrix of float) +0:466 'inFM2x4' (in 2X4 matrix of float) 0:? Sequence 0:467 Sequence 0:467 move second child to first child (temp float) 0:467 'r00' (temp float) 0:467 component-wise multiply (temp float) -0:467 'inF0' (in float) 0:467 'inF1' (in float) +0:467 'inF0' (in float) 0:468 Sequence 0:468 move second child to first child (temp 2-component vector of float) 0:468 'r01' (temp 2-component vector of float) 0:468 vector-scale (temp 2-component vector of float) -0:468 'inFV2' (in 2-component vector of float) 0:468 'inF0' (in float) +0:468 'inFV2' (in 2-component vector of float) 0:469 Sequence 0:469 move second child to first child (temp 3-component vector of float) 0:469 'r02' (temp 3-component vector of float) 0:469 vector-scale (temp 3-component vector of float) -0:469 'inFV3' (in 3-component vector of float) 0:469 'inF0' (in float) +0:469 'inFV3' (in 3-component vector of float) 0:470 Sequence 0:470 move second child to first child (temp 2-component vector of float) 0:470 'r03' (temp 2-component vector of float) 0:470 vector-scale (temp 2-component vector of float) -0:470 'inF0' (in float) 0:470 'inFV2' (in 2-component vector of float) +0:470 'inF0' (in float) 0:471 Sequence 0:471 move second child to first child (temp 3-component vector of float) 0:471 'r04' (temp 3-component vector of float) 0:471 vector-scale (temp 3-component vector of float) -0:471 'inF0' (in float) 0:471 'inFV3' (in 3-component vector of float) +0:471 'inF0' (in float) 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) @@ -2705,63 +2702,81 @@ gl_FragCoord origin is upper left 0:474 Sequence 0:474 move second child to first child (temp 3-component vector of float) 0:474 'r07' (temp 3-component vector of float) -0:474 vector-times-matrix (temp 3-component vector of float) +0:474 matrix-times-vector (temp 3-component vector of float) +0:474 'inFM2x3' (in 2X3 matrix of float) 0:474 'inFV2' (in 2-component vector of float) -0:474 'inFM2x3' (in 3X2 matrix of float) 0:475 Sequence 0:475 move second child to first child (temp 2-component vector of float) 0:475 'r08' (temp 2-component vector of float) -0:475 vector-times-matrix (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM3x2' (in 3X2 matrix of float) 0:475 'inFV3' (in 3-component vector of float) -0:475 'inFM3x2' (in 2X3 matrix of float) 0:476 Sequence 0:476 move second child to first child (temp 2-component vector of float) 0:476 'r09' (temp 2-component vector of float) -0:476 matrix-times-vector (temp 2-component vector of float) -0:476 'inFM2x3' (in 3X2 matrix of float) +0:476 vector-times-matrix (temp 2-component vector of float) 0:476 'inFV3' (in 3-component vector of float) +0:476 'inFM2x3' (in 2X3 matrix of float) 0:477 Sequence 0:477 move second child to first child (temp 3-component vector of float) 0:477 'r10' (temp 3-component vector of float) -0:477 matrix-times-vector (temp 3-component vector of float) -0:477 'inFM3x2' (in 2X3 matrix of float) +0:477 vector-times-matrix (temp 3-component vector of float) 0:477 'inFV2' (in 2-component vector of float) +0:477 'inFM3x2' (in 3X2 matrix of float) 0:478 Sequence -0:478 move second child to first child (temp 3X2 matrix of float) -0:478 'r11' (temp 3X2 matrix of float) -0:478 matrix-scale (temp 3X2 matrix of float) -0:478 'inFM2x3' (in 3X2 matrix of float) +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r11' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) 0:478 'inF0' (in float) +0:478 'inFM2x3' (in 2X3 matrix of float) 0:479 Sequence -0:479 move second child to first child (temp 2X3 matrix of float) -0:479 'r12' (temp 2X3 matrix of float) -0:479 matrix-scale (temp 2X3 matrix of float) -0:479 'inFM3x2' (in 2X3 matrix of float) +0:479 move second child to first child (temp 3X2 matrix of float) +0:479 'r12' (temp 3X2 matrix of float) +0:479 matrix-scale (temp 3X2 matrix of float) 0:479 'inF0' (in float) +0:479 'inFM3x2' (in 3X2 matrix of float) 0:480 Sequence 0:480 move second child to first child (temp 2X2 matrix of float) 0:480 'r13' (temp 2X2 matrix of float) 0:480 matrix-multiply (temp 2X2 matrix of float) -0:480 'inFM2x3' (in 3X2 matrix of float) -0:480 'inFM3x2' (in 2X3 matrix of float) +0:480 'inFM3x2' (in 3X2 matrix of float) +0:480 'inFM2x3' (in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child (temp 3X2 matrix of float) -0:481 'r14' (temp 3X2 matrix of float) -0:481 matrix-multiply (temp 3X2 matrix of float) -0:481 'inFM2x3' (in 3X2 matrix of float) +0:481 move second child to first child (temp 2X3 matrix of float) +0:481 'r14' (temp 2X3 matrix of float) +0:481 matrix-multiply (temp 2X3 matrix of float) 0:481 'inFM3x3' (in 3X3 matrix of float) +0:481 'inFM2x3' (in 2X3 matrix of float) 0:482 Sequence -0:482 move second child to first child (temp 4X2 matrix of float) -0:482 'r15' (temp 4X2 matrix of float) -0:482 matrix-multiply (temp 4X2 matrix of float) -0:482 'inFM2x3' (in 3X2 matrix of float) -0:482 'inFM3x4' (in 4X3 matrix of float) +0:482 move second child to first child (temp 2X4 matrix of float) +0:482 'r15' (temp 2X4 matrix of float) +0:482 matrix-multiply (temp 2X4 matrix of float) +0:482 'inFM3x4' (in 3X4 matrix of float) +0:482 'inFM2x3' (in 2X3 matrix of float) 0:483 Sequence -0:483 move second child to first child (temp 4X3 matrix of float) -0:483 'r16' (temp 4X3 matrix of float) -0:483 matrix-multiply (temp 4X3 matrix of float) -0:483 'inFM3x2' (in 2X3 matrix of float) -0:483 'inFM2x4' (in 4X2 matrix of float) +0:483 move second child to first child (temp 3X4 matrix of float) +0:483 'r16' (temp 3X4 matrix of float) +0:483 matrix-multiply (temp 3X4 matrix of float) +0:483 'inFM2x4' (in 2X4 matrix of float) +0:483 'inFM3x2' (in 3X2 matrix of float) +0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Parameters: +0:? Sequence +0:491 move second child to first child (temp 4-component vector of float) +0:491 color: direct index for structure (temp 4-component vector of float) +0:491 'ps_output' (temp structure{temp 4-component vector of float color}) +0:491 Constant: +0:491 0 (const int) +0:491 Constant: +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:492 Sequence +0:492 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -3921,80 +3936,80 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:260 Function Parameters: -0:260 'inF0' (layout(location=0 ) in 4-component vector of float) -0:260 'inF1' (layout(location=1 ) in 4-component vector of float) -0:260 'inF2' (layout(location=2 ) in 4-component vector of float) -0:260 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:260 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:260 'inF0' (in 4-component vector of float) +0:260 'inF1' (in 4-component vector of float) +0:260 'inF2' (in 4-component vector of float) +0:260 'inU0' (in 4-component vector of uint) +0:260 'inU1' (in 4-component vector of uint) 0:? Sequence 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) 0:263 all (global bool) -0:263 'inF0' (layout(location=0 ) in 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) 0:264 Absolute value (global 4-component vector of float) -0:264 'inF0' (layout(location=0 ) in 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) 0:265 arc cosine (global 4-component vector of float) -0:265 'inF0' (layout(location=0 ) in 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) 0:266 any (global bool) -0:266 'inF0' (layout(location=0 ) in 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) 0:267 arc sine (global 4-component vector of float) -0:267 'inF0' (layout(location=0 ) in 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) 0:268 floatBitsToInt (global 4-component vector of int) -0:268 'inF0' (layout(location=0 ) in 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) 0:269 floatBitsToUint (global 4-component vector of uint) -0:269 'inF0' (layout(location=0 ) in 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) 0:270 intBitsToFloat (global 4-component vector of float) -0:270 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) 0:272 arc tangent (global 4-component vector of float) -0:272 'inF0' (layout(location=0 ) in 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) 0:273 arc tangent (global 4-component vector of float) -0:273 'inF0' (layout(location=0 ) in 4-component vector of float) -0:273 'inF1' (layout(location=1 ) in 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) +0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) 0:274 Ceiling (global 4-component vector of float) -0:274 'inF0' (layout(location=0 ) in 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) 0:275 clamp (global 4-component vector of float) -0:275 'inF0' (layout(location=0 ) in 4-component vector of float) -0:275 'inF1' (layout(location=1 ) in 4-component vector of float) -0:275 'inF2' (layout(location=2 ) in 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:275 'inF1' (in 4-component vector of float) +0:275 'inF2' (in 4-component vector of float) 0:276 Test condition and select (temp void) 0:276 Condition 0:276 any (temp bool) 0:276 Compare Less Than (temp 4-component vector of bool) -0:276 'inF0' (layout(location=0 ) in 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) 0:276 Constant: 0:276 0.000000 0:276 0.000000 @@ -4006,12 +4021,12 @@ gl_FragCoord origin is upper left 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) 0:277 cosine (global 4-component vector of float) -0:277 'inF0' (layout(location=0 ) in 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) 0:278 hyp. cosine (global 4-component vector of float) -0:278 'inF0' (layout(location=0 ) in 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) @@ -4025,49 +4040,49 @@ gl_FragCoord origin is upper left 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) 0:280 dPdx (global 4-component vector of float) -0:280 'inF0' (layout(location=0 ) in 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) 0:281 dPdxCoarse (global 4-component vector of float) -0:281 'inF0' (layout(location=0 ) in 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) 0:282 dPdxFine (global 4-component vector of float) -0:282 'inF0' (layout(location=0 ) in 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) 0:283 dPdy (global 4-component vector of float) -0:283 'inF0' (layout(location=0 ) in 4-component vector of float) +0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) 0:284 dPdyCoarse (global 4-component vector of float) -0:284 'inF0' (layout(location=0 ) in 4-component vector of float) +0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) 0:285 dPdyFine (global 4-component vector of float) -0:285 'inF0' (layout(location=0 ) in 4-component vector of float) +0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) 0:286 degrees (global 4-component vector of float) -0:286 'inF0' (layout(location=0 ) in 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) 0:287 distance (global float) -0:287 'inF0' (layout(location=0 ) in 4-component vector of float) -0:287 'inF1' (layout(location=1 ) in 4-component vector of float) +0:287 'inF0' (in 4-component vector of float) +0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) 0:288 dot-product (global float) -0:288 'inF0' (layout(location=0 ) in 4-component vector of float) -0:288 'inF1' (layout(location=1 ) in 4-component vector of float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) 0:289 Sequence 0:289 move second child to first child (temp 4-component vector of float) 0:289 'r025' (temp 4-component vector of float) @@ -4076,38 +4091,38 @@ gl_FragCoord origin is upper left 0:289 1.000000 0:289 component-wise multiply (temp float) 0:289 direct index (temp float) -0:289 'inF0' (layout(location=0 ) in 4-component vector of float) +0:289 'inF0' (in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF1' (layout(location=1 ) in 4-component vector of float) +0:289 'inF1' (in 4-component vector of float) 0:289 Constant: 0:289 1 (const int) 0:289 direct index (temp float) -0:289 'inF0' (layout(location=0 ) in 4-component vector of float) +0:289 'inF0' (in 4-component vector of float) 0:289 Constant: 0:289 2 (const int) 0:289 direct index (temp float) -0:289 'inF1' (layout(location=1 ) in 4-component vector of float) +0:289 'inF1' (in 4-component vector of float) 0:289 Constant: 0:289 3 (const int) 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) 0:293 exp (global 4-component vector of float) -0:293 'inF0' (layout(location=0 ) in 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) 0:294 exp2 (global 4-component vector of float) -0:294 'inF0' (layout(location=0 ) in 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) 0:295 face-forward (global 4-component vector of float) -0:295 'inF0' (layout(location=0 ) in 4-component vector of float) -0:295 'inF1' (layout(location=1 ) in 4-component vector of float) -0:295 'inF2' (layout(location=2 ) in 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) +0:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) @@ -4130,122 +4145,122 @@ gl_FragCoord origin is upper left 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) 0:298 Floor (global 4-component vector of float) -0:298 'inF0' (layout(location=0 ) in 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) 0:300 mod (global 4-component vector of float) -0:300 'inF0' (layout(location=0 ) in 4-component vector of float) -0:300 'inF1' (layout(location=1 ) in 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) +0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) 0:301 Fraction (global 4-component vector of float) -0:301 'inF0' (layout(location=0 ) in 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) 0:302 frexp (global 4-component vector of float) -0:302 'inF0' (layout(location=0 ) in 4-component vector of float) -0:302 'inF1' (layout(location=1 ) in 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) 0:303 fwidth (global 4-component vector of float) -0:303 'inF0' (layout(location=0 ) in 4-component vector of float) +0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) 0:304 isinf (global 4-component vector of bool) -0:304 'inF0' (layout(location=0 ) in 4-component vector of float) +0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) 0:305 isnan (global 4-component vector of bool) -0:305 'inF0' (layout(location=0 ) in 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) 0:306 ldexp (global 4-component vector of float) -0:306 'inF0' (layout(location=0 ) in 4-component vector of float) -0:306 'inF1' (layout(location=1 ) in 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) +0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) 0:307 mix (global 4-component vector of float) -0:307 'inF0' (layout(location=0 ) in 4-component vector of float) -0:307 'inF1' (layout(location=1 ) in 4-component vector of float) -0:307 'inF2' (layout(location=2 ) in 4-component vector of float) +0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) +0:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) 0:308 length (global float) -0:308 'inF0' (layout(location=0 ) in 4-component vector of float) +0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) 0:309 log (global 4-component vector of float) -0:309 'inF0' (layout(location=0 ) in 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) 0:310 'r045' (temp 4-component vector of float) 0:310 vector-scale (temp 4-component vector of float) 0:310 log2 (temp 4-component vector of float) -0:310 'inF0' (layout(location=0 ) in 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) 0:310 Constant: 0:310 0.301030 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) 0:311 log2 (global 4-component vector of float) -0:311 'inF0' (layout(location=0 ) in 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) 0:312 max (global 4-component vector of float) -0:312 'inF0' (layout(location=0 ) in 4-component vector of float) -0:312 'inF1' (layout(location=1 ) in 4-component vector of float) +0:312 'inF0' (in 4-component vector of float) +0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) 0:313 min (global 4-component vector of float) -0:313 'inF0' (layout(location=0 ) in 4-component vector of float) -0:313 'inF1' (layout(location=1 ) in 4-component vector of float) +0:313 'inF0' (in 4-component vector of float) +0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) 0:314 normalize (global 4-component vector of float) -0:314 'inF0' (layout(location=0 ) in 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) 0:315 pow (global 4-component vector of float) -0:315 'inF0' (layout(location=0 ) in 4-component vector of float) -0:315 'inF1' (layout(location=1 ) in 4-component vector of float) +0:315 'inF0' (in 4-component vector of float) +0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) 0:316 radians (global 4-component vector of float) -0:316 'inF0' (layout(location=0 ) in 4-component vector of float) +0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) 0:317 'r052' (temp 4-component vector of float) 0:317 divide (temp 4-component vector of float) 0:317 Constant: 0:317 1.000000 -0:317 'inF0' (layout(location=0 ) in 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) 0:318 reflect (global 4-component vector of float) -0:318 'inF0' (layout(location=0 ) in 4-component vector of float) -0:318 'inF1' (layout(location=1 ) in 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) +0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) 0:319 refract (global 4-component vector of float) -0:319 'inF0' (layout(location=0 ) in 4-component vector of float) -0:319 'inF1' (layout(location=1 ) in 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) +0:319 'inF1' (in 4-component vector of float) 0:319 Constant: 0:319 2.000000 0:320 Sequence @@ -4261,17 +4276,17 @@ gl_FragCoord origin is upper left 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) 0:321 roundEven (global 4-component vector of float) -0:321 'inF0' (layout(location=0 ) in 4-component vector of float) +0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) 0:322 inverse sqrt (global 4-component vector of float) -0:322 'inF0' (layout(location=0 ) in 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) 0:323 'r058' (temp 4-component vector of float) 0:323 clamp (temp 4-component vector of float) -0:323 'inF0' (layout(location=0 ) in 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) 0:323 Constant: 0:323 0.000000 0:323 Constant: @@ -4280,68 +4295,65 @@ gl_FragCoord origin is upper left 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) 0:324 Sign (global 4-component vector of float) -0:324 'inF0' (layout(location=0 ) in 4-component vector of float) +0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) 0:325 sine (global 4-component vector of float) -0:325 'inF0' (layout(location=0 ) in 4-component vector of float) +0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF1' (layout(location=1 ) in 4-component vector of float) +0:326 'inF1' (in 4-component vector of float) 0:326 sine (temp 4-component vector of float) -0:326 'inF0' (layout(location=0 ) in 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:326 move second child to first child (temp 4-component vector of float) -0:326 'inF2' (layout(location=2 ) in 4-component vector of float) +0:326 'inF2' (in 4-component vector of float) 0:326 cosine (temp 4-component vector of float) -0:326 'inF0' (layout(location=0 ) in 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) 0:327 hyp. sine (global 4-component vector of float) -0:327 'inF0' (layout(location=0 ) in 4-component vector of float) +0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) 0:328 smoothstep (global 4-component vector of float) -0:328 'inF0' (layout(location=0 ) in 4-component vector of float) -0:328 'inF1' (layout(location=1 ) in 4-component vector of float) -0:328 'inF2' (layout(location=2 ) in 4-component vector of float) +0:328 'inF0' (in 4-component vector of float) +0:328 'inF1' (in 4-component vector of float) +0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) 0:329 sqrt (global 4-component vector of float) -0:329 'inF0' (layout(location=0 ) in 4-component vector of float) +0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) 0:330 step (global 4-component vector of float) -0:330 'inF0' (layout(location=0 ) in 4-component vector of float) -0:330 'inF1' (layout(location=1 ) in 4-component vector of float) +0:330 'inF0' (in 4-component vector of float) +0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) 0:331 tangent (global 4-component vector of float) -0:331 'inF0' (layout(location=0 ) in 4-component vector of float) +0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) 0:332 hyp. tangent (global 4-component vector of float) -0:332 'inF0' (layout(location=0 ) in 4-component vector of float) +0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) 0:334 trunc (global 4-component vector of float) -0:334 'inF0' (layout(location=0 ) in 4-component vector of float) -0:337 Sequence -0:337 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:337 Branch: Return +0:334 'inF0' (in 4-component vector of float) +0:337 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) @@ -5253,20 +5265,20 @@ gl_FragCoord origin is upper left 0:443 move second child to first child (temp float) 0:443 'r0' (temp float) 0:443 component-wise multiply (temp float) -0:443 'inF0' (in float) 0:443 'inF1' (in float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r1' (temp 2-component vector of float) 0:443 vector-scale (temp 2-component vector of float) -0:443 'inFV0' (in 2-component vector of float) 0:443 'inF0' (in float) +0:443 'inFV0' (in 2-component vector of float) 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r2' (temp 2-component vector of float) 0:443 vector-scale (temp 2-component vector of float) -0:443 'inF0' (in float) 0:443 'inFV0' (in 2-component vector of float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) @@ -5276,33 +5288,33 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp 2-component vector of float) 0:443 'r4' (temp 2-component vector of float) -0:443 matrix-times-vector (temp 2-component vector of float) -0:443 'inFM0' (in 2X2 matrix of float) -0:443 'inFV0' (in 2-component vector of float) -0:443 Sequence -0:443 move second child to first child (temp 2-component vector of float) -0:443 'r5' (temp 2-component vector of float) 0:443 vector-times-matrix (temp 2-component vector of float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFM0' (in 2X2 matrix of float) 0:443 Sequence +0:443 move second child to first child (temp 2-component vector of float) +0:443 'r5' (temp 2-component vector of float) +0:443 matrix-times-vector (temp 2-component vector of float) +0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inFV0' (in 2-component vector of float) +0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r6' (temp 2X2 matrix of float) 0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inF0' (in float) +0:443 'inFM0' (in 2X2 matrix of float) 0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r7' (temp 2X2 matrix of float) 0:443 matrix-scale (temp 2X2 matrix of float) -0:443 'inF0' (in float) 0:443 'inFM0' (in 2X2 matrix of float) +0:443 'inF0' (in float) 0:443 Sequence 0:443 move second child to first child (temp 2X2 matrix of float) 0:443 'r8' (temp 2X2 matrix of float) 0:443 matrix-multiply (temp 2X2 matrix of float) -0:443 'inFM0' (in 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) +0:443 'inFM0' (in 2X2 matrix of float) 0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:449 Function Parameters: 0:449 'inF0' (in float) @@ -5316,20 +5328,20 @@ gl_FragCoord origin is upper left 0:450 move second child to first child (temp float) 0:450 'r0' (temp float) 0:450 component-wise multiply (temp float) -0:450 'inF0' (in float) 0:450 'inF1' (in float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r1' (temp 3-component vector of float) 0:450 vector-scale (temp 3-component vector of float) -0:450 'inFV0' (in 3-component vector of float) 0:450 'inF0' (in float) +0:450 'inFV0' (in 3-component vector of float) 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r2' (temp 3-component vector of float) 0:450 vector-scale (temp 3-component vector of float) -0:450 'inF0' (in float) 0:450 'inFV0' (in 3-component vector of float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) @@ -5339,33 +5351,33 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp 3-component vector of float) 0:450 'r4' (temp 3-component vector of float) -0:450 matrix-times-vector (temp 3-component vector of float) -0:450 'inFM0' (in 3X3 matrix of float) -0:450 'inFV0' (in 3-component vector of float) -0:450 Sequence -0:450 move second child to first child (temp 3-component vector of float) -0:450 'r5' (temp 3-component vector of float) 0:450 vector-times-matrix (temp 3-component vector of float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFM0' (in 3X3 matrix of float) 0:450 Sequence +0:450 move second child to first child (temp 3-component vector of float) +0:450 'r5' (temp 3-component vector of float) +0:450 matrix-times-vector (temp 3-component vector of float) +0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inFV0' (in 3-component vector of float) +0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r6' (temp 3X3 matrix of float) 0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inF0' (in float) +0:450 'inFM0' (in 3X3 matrix of float) 0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r7' (temp 3X3 matrix of float) 0:450 matrix-scale (temp 3X3 matrix of float) -0:450 'inF0' (in float) 0:450 'inFM0' (in 3X3 matrix of float) +0:450 'inF0' (in float) 0:450 Sequence 0:450 move second child to first child (temp 3X3 matrix of float) 0:450 'r8' (temp 3X3 matrix of float) 0:450 matrix-multiply (temp 3X3 matrix of float) -0:450 'inFM0' (in 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) +0:450 'inFM0' (in 3X3 matrix of float) 0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:456 Function Parameters: 0:456 'inF0' (in float) @@ -5379,20 +5391,20 @@ gl_FragCoord origin is upper left 0:457 move second child to first child (temp float) 0:457 'r0' (temp float) 0:457 component-wise multiply (temp float) -0:457 'inF0' (in float) 0:457 'inF1' (in float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r1' (temp 4-component vector of float) 0:457 vector-scale (temp 4-component vector of float) -0:457 'inFV0' (in 4-component vector of float) 0:457 'inF0' (in float) +0:457 'inFV0' (in 4-component vector of float) 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r2' (temp 4-component vector of float) 0:457 vector-scale (temp 4-component vector of float) -0:457 'inF0' (in float) 0:457 'inFV0' (in 4-component vector of float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) @@ -5402,75 +5414,75 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp 4-component vector of float) 0:457 'r4' (temp 4-component vector of float) -0:457 matrix-times-vector (temp 4-component vector of float) -0:457 'inFM0' (in 4X4 matrix of float) -0:457 'inFV0' (in 4-component vector of float) -0:457 Sequence -0:457 move second child to first child (temp 4-component vector of float) -0:457 'r5' (temp 4-component vector of float) 0:457 vector-times-matrix (temp 4-component vector of float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFM0' (in 4X4 matrix of float) 0:457 Sequence +0:457 move second child to first child (temp 4-component vector of float) +0:457 'r5' (temp 4-component vector of float) +0:457 matrix-times-vector (temp 4-component vector of float) +0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inFV0' (in 4-component vector of float) +0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r6' (temp 4X4 matrix of float) 0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inF0' (in float) +0:457 'inFM0' (in 4X4 matrix of float) 0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r7' (temp 4X4 matrix of float) 0:457 matrix-scale (temp 4X4 matrix of float) -0:457 'inF0' (in float) 0:457 'inFM0' (in 4X4 matrix of float) +0:457 'inF0' (in float) 0:457 Sequence 0:457 move second child to first child (temp 4X4 matrix of float) 0:457 'r8' (temp 4X4 matrix of float) 0:457 matrix-multiply (temp 4X4 matrix of float) -0:457 'inFM0' (in 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:457 'inFM0' (in 4X4 matrix of float) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) 0:466 'inFV2' (in 2-component vector of float) 0:466 'inFV3' (in 3-component vector of float) -0:466 'inFM2x3' (in 3X2 matrix of float) -0:466 'inFM3x2' (in 2X3 matrix of float) +0:466 'inFM2x3' (in 2X3 matrix of float) +0:466 'inFM3x2' (in 3X2 matrix of float) 0:466 'inFM3x3' (in 3X3 matrix of float) -0:466 'inFM3x4' (in 4X3 matrix of float) -0:466 'inFM2x4' (in 4X2 matrix of float) +0:466 'inFM3x4' (in 3X4 matrix of float) +0:466 'inFM2x4' (in 2X4 matrix of float) 0:? Sequence 0:467 Sequence 0:467 move second child to first child (temp float) 0:467 'r00' (temp float) 0:467 component-wise multiply (temp float) -0:467 'inF0' (in float) 0:467 'inF1' (in float) +0:467 'inF0' (in float) 0:468 Sequence 0:468 move second child to first child (temp 2-component vector of float) 0:468 'r01' (temp 2-component vector of float) 0:468 vector-scale (temp 2-component vector of float) -0:468 'inFV2' (in 2-component vector of float) 0:468 'inF0' (in float) +0:468 'inFV2' (in 2-component vector of float) 0:469 Sequence 0:469 move second child to first child (temp 3-component vector of float) 0:469 'r02' (temp 3-component vector of float) 0:469 vector-scale (temp 3-component vector of float) -0:469 'inFV3' (in 3-component vector of float) 0:469 'inF0' (in float) +0:469 'inFV3' (in 3-component vector of float) 0:470 Sequence 0:470 move second child to first child (temp 2-component vector of float) 0:470 'r03' (temp 2-component vector of float) 0:470 vector-scale (temp 2-component vector of float) -0:470 'inF0' (in float) 0:470 'inFV2' (in 2-component vector of float) +0:470 'inF0' (in float) 0:471 Sequence 0:471 move second child to first child (temp 3-component vector of float) 0:471 'r04' (temp 3-component vector of float) 0:471 vector-scale (temp 3-component vector of float) -0:471 'inF0' (in float) 0:471 'inFV3' (in 3-component vector of float) +0:471 'inF0' (in float) 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) @@ -5486,63 +5498,81 @@ gl_FragCoord origin is upper left 0:474 Sequence 0:474 move second child to first child (temp 3-component vector of float) 0:474 'r07' (temp 3-component vector of float) -0:474 vector-times-matrix (temp 3-component vector of float) +0:474 matrix-times-vector (temp 3-component vector of float) +0:474 'inFM2x3' (in 2X3 matrix of float) 0:474 'inFV2' (in 2-component vector of float) -0:474 'inFM2x3' (in 3X2 matrix of float) 0:475 Sequence 0:475 move second child to first child (temp 2-component vector of float) 0:475 'r08' (temp 2-component vector of float) -0:475 vector-times-matrix (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM3x2' (in 3X2 matrix of float) 0:475 'inFV3' (in 3-component vector of float) -0:475 'inFM3x2' (in 2X3 matrix of float) 0:476 Sequence 0:476 move second child to first child (temp 2-component vector of float) 0:476 'r09' (temp 2-component vector of float) -0:476 matrix-times-vector (temp 2-component vector of float) -0:476 'inFM2x3' (in 3X2 matrix of float) +0:476 vector-times-matrix (temp 2-component vector of float) 0:476 'inFV3' (in 3-component vector of float) +0:476 'inFM2x3' (in 2X3 matrix of float) 0:477 Sequence 0:477 move second child to first child (temp 3-component vector of float) 0:477 'r10' (temp 3-component vector of float) -0:477 matrix-times-vector (temp 3-component vector of float) -0:477 'inFM3x2' (in 2X3 matrix of float) +0:477 vector-times-matrix (temp 3-component vector of float) 0:477 'inFV2' (in 2-component vector of float) +0:477 'inFM3x2' (in 3X2 matrix of float) 0:478 Sequence -0:478 move second child to first child (temp 3X2 matrix of float) -0:478 'r11' (temp 3X2 matrix of float) -0:478 matrix-scale (temp 3X2 matrix of float) -0:478 'inFM2x3' (in 3X2 matrix of float) +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r11' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) 0:478 'inF0' (in float) +0:478 'inFM2x3' (in 2X3 matrix of float) 0:479 Sequence -0:479 move second child to first child (temp 2X3 matrix of float) -0:479 'r12' (temp 2X3 matrix of float) -0:479 matrix-scale (temp 2X3 matrix of float) -0:479 'inFM3x2' (in 2X3 matrix of float) +0:479 move second child to first child (temp 3X2 matrix of float) +0:479 'r12' (temp 3X2 matrix of float) +0:479 matrix-scale (temp 3X2 matrix of float) 0:479 'inF0' (in float) +0:479 'inFM3x2' (in 3X2 matrix of float) 0:480 Sequence 0:480 move second child to first child (temp 2X2 matrix of float) 0:480 'r13' (temp 2X2 matrix of float) 0:480 matrix-multiply (temp 2X2 matrix of float) -0:480 'inFM2x3' (in 3X2 matrix of float) -0:480 'inFM3x2' (in 2X3 matrix of float) +0:480 'inFM3x2' (in 3X2 matrix of float) +0:480 'inFM2x3' (in 2X3 matrix of float) 0:481 Sequence -0:481 move second child to first child (temp 3X2 matrix of float) -0:481 'r14' (temp 3X2 matrix of float) -0:481 matrix-multiply (temp 3X2 matrix of float) -0:481 'inFM2x3' (in 3X2 matrix of float) +0:481 move second child to first child (temp 2X3 matrix of float) +0:481 'r14' (temp 2X3 matrix of float) +0:481 matrix-multiply (temp 2X3 matrix of float) 0:481 'inFM3x3' (in 3X3 matrix of float) +0:481 'inFM2x3' (in 2X3 matrix of float) 0:482 Sequence -0:482 move second child to first child (temp 4X2 matrix of float) -0:482 'r15' (temp 4X2 matrix of float) -0:482 matrix-multiply (temp 4X2 matrix of float) -0:482 'inFM2x3' (in 3X2 matrix of float) -0:482 'inFM3x4' (in 4X3 matrix of float) +0:482 move second child to first child (temp 2X4 matrix of float) +0:482 'r15' (temp 2X4 matrix of float) +0:482 matrix-multiply (temp 2X4 matrix of float) +0:482 'inFM3x4' (in 3X4 matrix of float) +0:482 'inFM2x3' (in 2X3 matrix of float) 0:483 Sequence -0:483 move second child to first child (temp 4X3 matrix of float) -0:483 'r16' (temp 4X3 matrix of float) -0:483 matrix-multiply (temp 4X3 matrix of float) -0:483 'inFM3x2' (in 2X3 matrix of float) -0:483 'inFM2x4' (in 4X2 matrix of float) +0:483 move second child to first child (temp 3X4 matrix of float) +0:483 'r16' (temp 3X4 matrix of float) +0:483 matrix-multiply (temp 3X4 matrix of float) +0:483 'inFM2x4' (in 2X4 matrix of float) +0:483 'inFM3x2' (in 3X2 matrix of float) +0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Parameters: +0:? Sequence +0:491 move second child to first child (temp 4-component vector of float) +0:491 color: direct index for structure (temp 4-component vector of float) +0:491 'ps_output' (temp structure{temp 4-component vector of float color}) +0:491 Constant: +0:491 0 (const int) +0:491 Constant: +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:491 1.000000 +0:492 Sequence +0:492 move second child to first child (temp structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) @@ -5559,15 +5589,15 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1814 +// Id's are bound by 1824 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854 1060 + EntryPoint Fragment 4 "main" 1805 ExecutionMode 4 OriginUpperLeft - Name 4 "PixelShaderFunction" + Name 4 "main" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" Name 12 "inF1" @@ -5590,306 +5620,307 @@ gl_FragCoord origin is upper left Name 43 "inF2" Name 44 "inU0" Name 45 "inU1" - Name 54 "PixelShaderFunction2x2(mf22;mf22;mf22;" - Name 51 "inF0" - Name 52 "inF1" - Name 53 "inF2" - Name 62 "PixelShaderFunction3x3(mf33;mf33;mf33;" - Name 59 "inF0" - Name 60 "inF1" - Name 61 "inF2" - Name 71 "PixelShaderFunction4x4(mf44;mf44;mf44;" - Name 68 "inF0" - Name 69 "inF1" - Name 70 "inF2" - Name 80 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" - Name 74 "inF0" - Name 75 "inF1" - Name 76 "inFV0" - Name 77 "inFV1" - Name 78 "inFM0" - Name 79 "inFM1" - Name 89 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" - Name 83 "inF0" - Name 84 "inF1" - Name 85 "inFV0" - Name 86 "inFV1" - Name 87 "inFM0" - Name 88 "inFM1" - Name 99 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" - Name 93 "inF0" - Name 94 "inF1" - Name 95 "inFV0" - Name 96 "inFV1" - Name 97 "inFM0" - Name 98 "inFM1" - Name 119 "TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;" - Name 110 "inF0" - Name 111 "inF1" - Name 112 "inFV2" - Name 113 "inFV3" - Name 114 "inFM2x3" - Name 115 "inFM3x2" - Name 116 "inFM3x3" - Name 117 "inFM3x4" - Name 118 "inFM2x4" - Name 123 "r000" - Name 126 "r001" - Name 129 "r002" - Name 132 "r003" - Name 135 "r004" - Name 140 "r005" - Name 143 "r006" - Name 146 "r007" - Name 149 "r009" - Name 152 "r010" - Name 156 "r011" - Name 159 "r012" - Name 170 "r014" - Name 173 "r015" - Name 176 "r016" - Name 179 "r017" - Name 182 "r018" - Name 185 "r019" - Name 188 "r020" - Name 191 "r021" - Name 194 "r022" - Name 197 "r023" - Name 200 "r027" - Name 203 "r028" - Name 206 "r029" - Name 210 "r030" - Name 213 "r031" - Name 216 "r033" - Name 220 "r034" - Name 223 "r035" - Name 225 "ResType" - Name 229 "r036" - Name 232 "r037" - Name 235 "r038" - Name 238 "r039" - Name 242 "r039a" - Name 247 "r040" - Name 250 "r041" - Name 255 "r042" - Name 258 "r043" - Name 262 "r044" - Name 266 "r045" - Name 270 "r046" - Name 273 "r047" - Name 277 "r048" - Name 280 "r049" - Name 283 "r050" - Name 286 "r051" - Name 289 "r052" - Name 292 "r053" - Name 299 "r055" - Name 302 "r056" - Name 307 "r057" - Name 310 "r058" - Name 314 "r059" - Name 317 "r060" - Name 320 "r061" - Name 327 "r000" - Name 330 "r001" - Name 333 "r002" - Name 336 "r003" - Name 339 "r004" - Name 344 "r005" - Name 347 "r006" - Name 350 "r007" - Name 353 "r009" - Name 356 "r010" - Name 360 "r011" - Name 363 "r012" - Name 376 "r013" - Name 379 "r015" - Name 382 "r016" - Name 386 "r017" - Name 389 "r018" - Name 392 "r019" - Name 395 "r020" - Name 398 "r021" - Name 401 "r022" - Name 404 "r023" - Name 407 "r026" - Name 411 "r027" - Name 415 "r028" - Name 418 "r029" - Name 421 "r030" - Name 426 "r031" - Name 430 "r032" - Name 432 "r033" - Name 435 "r035" - Name 439 "r036" - Name 442 "r037" - Name 444 "ResType" - Name 448 "r038" - Name 452 "r039" - Name 455 "r040" - Name 458 "r041" - Name 462 "r039a" - Name 467 "r042" - Name 470 "r043" - Name 473 "r044" - Name 477 "r045" - Name 480 "r046" - Name 484 "r047" - Name 488 "r048" - Name 491 "r049" - Name 495 "r050" - Name 498 "r051" - Name 502 "r052" - Name 506 "r053" - Name 511 "r054" - Name 515 "r055" - Name 518 "r056" - Name 521 "r057" - Name 526 "r058" - Name 529 "r059" - Name 536 "r060" - Name 539 "r061" - Name 544 "r062" - Name 547 "r063" - Name 551 "r064" - Name 554 "r065" - Name 557 "r066" - Name 563 "r000" - Name 566 "r001" - Name 569 "r002" - Name 572 "r003" - Name 575 "r004" - Name 580 "r005" - Name 583 "r006" - Name 586 "r007" - Name 589 "r009" - Name 592 "r010" - Name 596 "r011" - Name 599 "r012" - Name 612 "r013" - Name 615 "r014" - Name 618 "r015" - Name 622 "r016" - Name 626 "r017" - Name 629 "r018" - Name 632 "r019" - Name 635 "r020" - Name 638 "r021" - Name 641 "r022" - Name 644 "r023" - Name 647 "r024" - Name 651 "r025" - Name 655 "r029" - Name 658 "r030" - Name 661 "r031" - Name 666 "r032" - Name 670 "r033" - Name 672 "r034" - Name 675 "r036" - Name 679 "r037" - Name 682 "r038" - Name 684 "ResType" - Name 688 "r039" - Name 692 "r040" - Name 695 "r041" - Name 698 "r042" - Name 702 "r039a" - Name 707 "r039b" - Name 713 "r043" - Name 716 "r044" - Name 719 "r045" - Name 723 "r046" - Name 726 "r047" - Name 730 "r048" - Name 734 "r049" - Name 737 "r050" - Name 741 "r051" - Name 744 "r052" - Name 748 "r053" - Name 752 "r054" - Name 756 "r055" - Name 759 "r056" - Name 762 "r057" - Name 765 "r058" - Name 770 "r059" - Name 773 "r060" - Name 780 "r061" - Name 783 "r062" - Name 788 "r063" - Name 791 "r064" - Name 795 "r065" - Name 798 "r066" - Name 801 "r067" - Name 808 "r000" - Name 810 "inF0" - Name 813 "r001" - Name 816 "r002" - Name 819 "r003" - Name 822 "r004" - Name 827 "r005" - Name 832 "r006" - Name 835 "r007" - Name 837 "inU0" - Name 840 "r009" - Name 843 "r010" - Name 845 "inF1" - Name 848 "r011" - Name 851 "r012" - Name 854 "inF2" - Name 865 "r013" - Name 868 "r014" - Name 871 "r015" - Name 874 "r016" - Name 877 "r017" - Name 880 "r018" - Name 883 "r019" - Name 886 "r020" - Name 889 "r021" - Name 892 "r022" - Name 895 "r023" - Name 899 "r024" - Name 903 "r025" - Name 915 "r029" - Name 918 "r030" - Name 921 "r031" - Name 926 "r032" - Name 931 "r033" - Name 933 "r034" - Name 936 "r036" - Name 940 "r037" - Name 943 "r038" - Name 945 "ResType" - Name 949 "r039" - Name 953 "r040" - Name 956 "r041" - Name 959 "r042" - Name 963 "r039a" - Name 968 "r043" - Name 971 "r044" - Name 974 "r045" - Name 978 "r046" - Name 981 "r047" - Name 985 "r048" - Name 989 "r049" - Name 992 "r050" - Name 996 "r051" - Name 999 "r052" - Name 1003 "r053" - Name 1007 "r054" - Name 1011 "r055" - Name 1014 "r056" - Name 1017 "r057" - Name 1020 "r058" - Name 1025 "r059" - Name 1028 "r060" - Name 1035 "r061" - Name 1038 "r062" - Name 1043 "r063" - Name 1046 "r064" - Name 1050 "r065" - Name 1053 "r066" - Name 1056 "r067" - Name 1060 "@entryPointOutput" + Name 58 "PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;" + Name 53 "inF0" + Name 54 "inF1" + Name 55 "inF2" + Name 56 "inU0" + Name 57 "inU1" + Name 66 "PixelShaderFunction2x2(mf22;mf22;mf22;" + Name 63 "inF0" + Name 64 "inF1" + Name 65 "inF2" + Name 74 "PixelShaderFunction3x3(mf33;mf33;mf33;" + Name 71 "inF0" + Name 72 "inF1" + Name 73 "inF2" + Name 82 "PixelShaderFunction4x4(mf44;mf44;mf44;" + Name 79 "inF0" + Name 80 "inF1" + Name 81 "inF2" + Name 91 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" + Name 85 "inF0" + Name 86 "inF1" + Name 87 "inFV0" + Name 88 "inFV1" + Name 89 "inFM0" + Name 90 "inFM1" + Name 100 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" + Name 94 "inF0" + Name 95 "inF1" + Name 96 "inFV0" + Name 97 "inFV1" + Name 98 "inFM0" + Name 99 "inFM1" + Name 109 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" + Name 103 "inF0" + Name 104 "inF1" + Name 105 "inFV0" + Name 106 "inFV1" + Name 107 "inFM0" + Name 108 "inFM1" + Name 129 "TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;" + Name 120 "inF0" + Name 121 "inF1" + Name 122 "inFV2" + Name 123 "inFV3" + Name 124 "inFM2x3" + Name 125 "inFM3x2" + Name 126 "inFM3x3" + Name 127 "inFM3x4" + Name 128 "inFM2x4" + Name 133 "r000" + Name 136 "r001" + Name 139 "r002" + Name 142 "r003" + Name 145 "r004" + Name 150 "r005" + Name 153 "r006" + Name 156 "r007" + Name 159 "r009" + Name 162 "r010" + Name 166 "r011" + Name 169 "r012" + Name 180 "r014" + Name 183 "r015" + Name 186 "r016" + Name 189 "r017" + Name 192 "r018" + Name 195 "r019" + Name 198 "r020" + Name 201 "r021" + Name 204 "r022" + Name 207 "r023" + Name 210 "r027" + Name 213 "r028" + Name 216 "r029" + Name 220 "r030" + Name 223 "r031" + Name 226 "r033" + Name 230 "r034" + Name 233 "r035" + Name 235 "ResType" + Name 239 "r036" + Name 242 "r037" + Name 245 "r038" + Name 248 "r039" + Name 252 "r039a" + Name 257 "r040" + Name 260 "r041" + Name 265 "r042" + Name 268 "r043" + Name 272 "r044" + Name 276 "r045" + Name 280 "r046" + Name 283 "r047" + Name 287 "r048" + Name 290 "r049" + Name 293 "r050" + Name 296 "r051" + Name 299 "r052" + Name 302 "r053" + Name 309 "r055" + Name 312 "r056" + Name 317 "r057" + Name 320 "r058" + Name 324 "r059" + Name 327 "r060" + Name 330 "r061" + Name 337 "r000" + Name 340 "r001" + Name 343 "r002" + Name 346 "r003" + Name 349 "r004" + Name 354 "r005" + Name 357 "r006" + Name 360 "r007" + Name 363 "r009" + Name 366 "r010" + Name 370 "r011" + Name 373 "r012" + Name 386 "r013" + Name 389 "r015" + Name 392 "r016" + Name 396 "r017" + Name 399 "r018" + Name 402 "r019" + Name 405 "r020" + Name 408 "r021" + Name 411 "r022" + Name 414 "r023" + Name 417 "r026" + Name 421 "r027" + Name 425 "r028" + Name 428 "r029" + Name 431 "r030" + Name 436 "r031" + Name 440 "r032" + Name 442 "r033" + Name 445 "r035" + Name 449 "r036" + Name 452 "r037" + Name 454 "ResType" + Name 458 "r038" + Name 462 "r039" + Name 465 "r040" + Name 468 "r041" + Name 472 "r039a" + Name 477 "r042" + Name 480 "r043" + Name 483 "r044" + Name 487 "r045" + Name 490 "r046" + Name 494 "r047" + Name 498 "r048" + Name 501 "r049" + Name 505 "r050" + Name 508 "r051" + Name 512 "r052" + Name 516 "r053" + Name 521 "r054" + Name 525 "r055" + Name 528 "r056" + Name 531 "r057" + Name 536 "r058" + Name 539 "r059" + Name 546 "r060" + Name 549 "r061" + Name 554 "r062" + Name 557 "r063" + Name 561 "r064" + Name 564 "r065" + Name 567 "r066" + Name 573 "r000" + Name 576 "r001" + Name 579 "r002" + Name 582 "r003" + Name 585 "r004" + Name 590 "r005" + Name 593 "r006" + Name 596 "r007" + Name 599 "r009" + Name 602 "r010" + Name 606 "r011" + Name 609 "r012" + Name 622 "r013" + Name 625 "r014" + Name 628 "r015" + Name 632 "r016" + Name 636 "r017" + Name 639 "r018" + Name 642 "r019" + Name 645 "r020" + Name 648 "r021" + Name 651 "r022" + Name 654 "r023" + Name 657 "r024" + Name 661 "r025" + Name 665 "r029" + Name 668 "r030" + Name 671 "r031" + Name 676 "r032" + Name 680 "r033" + Name 682 "r034" + Name 685 "r036" + Name 689 "r037" + Name 692 "r038" + Name 694 "ResType" + Name 698 "r039" + Name 702 "r040" + Name 705 "r041" + Name 708 "r042" + Name 712 "r039a" + Name 717 "r039b" + Name 723 "r043" + Name 726 "r044" + Name 729 "r045" + Name 733 "r046" + Name 736 "r047" + Name 740 "r048" + Name 744 "r049" + Name 747 "r050" + Name 751 "r051" + Name 754 "r052" + Name 758 "r053" + Name 762 "r054" + Name 766 "r055" + Name 769 "r056" + Name 772 "r057" + Name 775 "r058" + Name 780 "r059" + Name 783 "r060" + Name 790 "r061" + Name 793 "r062" + Name 798 "r063" + Name 801 "r064" + Name 805 "r065" + Name 808 "r066" + Name 811 "r067" + Name 818 "r000" + Name 821 "r001" + Name 824 "r002" + Name 827 "r003" + Name 830 "r004" + Name 835 "r005" + Name 838 "r006" + Name 841 "r007" + Name 844 "r009" + Name 847 "r010" + Name 851 "r011" + Name 854 "r012" + Name 867 "r013" + Name 870 "r014" + Name 873 "r015" + Name 876 "r016" + Name 879 "r017" + Name 882 "r018" + Name 885 "r019" + Name 888 "r020" + Name 891 "r021" + Name 894 "r022" + Name 897 "r023" + Name 901 "r024" + Name 905 "r025" + Name 916 "r029" + Name 919 "r030" + Name 922 "r031" + Name 927 "r032" + Name 932 "r033" + Name 934 "r034" + Name 937 "r036" + Name 941 "r037" + Name 944 "r038" + Name 946 "ResType" + Name 950 "r039" + Name 954 "r040" + Name 957 "r041" + Name 960 "r042" + Name 964 "r039a" + Name 969 "r043" + Name 972 "r044" + Name 975 "r045" + Name 979 "r046" + Name 982 "r047" + Name 986 "r048" + Name 990 "r049" + Name 993 "r050" + Name 997 "r051" + Name 1000 "r052" + Name 1004 "r053" + Name 1008 "r054" + Name 1012 "r055" + Name 1015 "r056" + Name 1018 "r057" + Name 1021 "r058" + Name 1026 "r059" + Name 1029 "r060" + Name 1036 "r061" + Name 1039 "r062" + Name 1044 "r063" + Name 1047 "r064" + Name 1051 "r065" + Name 1054 "r066" + Name 1057 "r067" Name 1064 "r000" Name 1067 "r001" Name 1072 "r003" @@ -6075,23 +6106,23 @@ gl_FragCoord origin is upper left Name 1786 "r14" Name 1790 "r15" Name 1794 "r16" - Name 1799 "gs_ua" - Name 1800 "gs_ub" - Name 1801 "gs_uc" - Name 1803 "gs_ua2" - Name 1804 "gs_ub2" - Name 1805 "gs_uc2" - Name 1807 "gs_ua3" - Name 1808 "gs_ub3" - Name 1809 "gs_uc3" - Name 1811 "gs_ua4" - Name 1812 "gs_ub4" - Name 1813 "gs_uc4" - Decorate 810(inF0) Location 0 - Decorate 837(inU0) Location 3 - Decorate 845(inF1) Location 1 - Decorate 854(inF2) Location 2 - Decorate 1060(@entryPointOutput) Location 0 + Name 1798 "PS_OUTPUT" + MemberName 1798(PS_OUTPUT) 0 "color" + Name 1800 "ps_output" + Name 1805 "@entryPointOutput" + Name 1809 "gs_ua" + Name 1810 "gs_ub" + Name 1811 "gs_uc" + Name 1813 "gs_ua2" + Name 1814 "gs_ub2" + Name 1815 "gs_uc2" + Name 1817 "gs_ua3" + Name 1818 "gs_ub3" + Name 1819 "gs_uc3" + Name 1821 "gs_ua4" + Name 1822 "gs_ub4" + Name 1823 "gs_uc4" + Decorate 1805(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6110,426 +6141,128 @@ gl_FragCoord origin is upper left 38: TypeVector 8(int) 3 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) - 48: TypeMatrix 24(fvec2) 2 - 49: TypePointer Function 48 - 50: TypeFunction 48 49(ptr) 49(ptr) 49(ptr) - 56: TypeMatrix 36(fvec3) 3 - 57: TypePointer Function 56 - 58: TypeFunction 56 57(ptr) 57(ptr) 57(ptr) - 64: TypeVector 6(float) 4 - 65: TypeMatrix 64(fvec4) 4 - 66: TypePointer Function 65 - 67: TypeFunction 65 66(ptr) 66(ptr) 66(ptr) - 73: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 49(ptr) 49(ptr) - 82: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 57(ptr) 57(ptr) - 91: TypePointer Function 64(fvec4) - 92: TypeFunction 2 7(ptr) 7(ptr) 91(ptr) 91(ptr) 66(ptr) 66(ptr) - 101: TypeMatrix 24(fvec2) 3 - 102: TypePointer Function 101 - 103: TypeMatrix 36(fvec3) 2 - 104: TypePointer Function 103 - 105: TypeMatrix 36(fvec3) 4 - 106: TypePointer Function 105 - 107: TypeMatrix 24(fvec2) 4 - 108: TypePointer Function 107 - 109: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 102(ptr) 104(ptr) 57(ptr) 106(ptr) 108(ptr) - 121: TypeBool - 122: TypePointer Function 121(bool) - 138: TypeInt 32 1 - 139: TypePointer Function 138(int) - 165: 6(float) Constant 0 - 177: 8(int) Constant 7 - 207: 138(int) Constant 7 - 225(ResType): TypeStruct 6(float) 138(int) - 253: 6(float) Constant 1050288283 - 274: 6(float) Constant 1065353216 - 278: 8(int) Constant 2 - 342: TypeVector 138(int) 2 - 343: TypePointer Function 342(ivec2) - 369: 24(fvec2) ConstantComposite 165 165 - 370: TypeVector 121(bool) 2 - 383: 8(int) Constant 3 - 384: 26(ivec2) ConstantComposite 177 383 - 427: 8(int) Constant 8 - 428: 26(ivec2) ConstantComposite 177 427 - 444(ResType): TypeStruct 24(fvec2) 342(ivec2) - 451: TypePointer Function 370(bvec2) - 509: 6(float) Constant 1073741824 - 512: 8(int) Constant 1 - 513: 26(ivec2) ConstantComposite 512 278 - 560: 24(fvec2) ConstantComposite 274 509 - 578: TypeVector 138(int) 3 - 579: TypePointer Function 578(ivec3) - 605: 36(fvec3) ConstantComposite 165 165 165 - 606: TypeVector 121(bool) 3 - 619: 8(int) Constant 5 - 620: 38(ivec3) ConstantComposite 177 383 619 - 667: 8(int) Constant 4 - 668: 38(ivec3) ConstantComposite 278 383 667 - 684(ResType): TypeStruct 36(fvec3) 578(ivec3) - 691: TypePointer Function 606(bvec3) - 710: 6(float) Constant 1050253722 - 757: 38(ivec3) ConstantComposite 512 278 383 - 804: 6(float) Constant 1077936128 - 805: 36(fvec3) ConstantComposite 274 509 804 - 809: TypePointer Input 64(fvec4) - 810(inF0): 809(ptr) Variable Input - 825: TypeVector 138(int) 4 - 826: TypePointer Function 825(ivec4) - 830: TypeVector 8(int) 4 - 831: TypePointer Function 830(ivec4) - 836: TypePointer Input 830(ivec4) - 837(inU0): 836(ptr) Variable Input - 845(inF1): 809(ptr) Variable Input - 854(inF2): 809(ptr) Variable Input - 858: 64(fvec4) ConstantComposite 165 165 165 165 - 859: TypeVector 121(bool) 4 - 872: 830(ivec4) ConstantComposite 177 383 619 278 - 904: TypePointer Input 6(float) - 927: 8(int) Constant 9 - 928: 8(int) Constant 10 - 929: 830(ivec4) ConstantComposite 177 427 927 928 - 945(ResType): TypeStruct 64(fvec4) 825(ivec4) - 952: TypePointer Function 859(bvec4) - 1012: 830(ivec4) ConstantComposite 512 278 383 667 - 1059: TypePointer Output 64(fvec4) -1060(@entryPointOutput): 1059(ptr) Variable Output - 1061: 6(float) Constant 1082130432 - 1062: 64(fvec4) ConstantComposite 274 509 804 1061 - 1089: 48 ConstantComposite 369 369 - 1090: TypeMatrix 370(bvec2) 2 - 1155(ResType): TypeStruct 48 342(ivec2) - 1243: 24(fvec2) ConstantComposite 509 509 - 1244: 48 ConstantComposite 1243 1243 - 1272: 56 ConstantComposite 605 605 605 - 1273: TypeMatrix 606(bvec3) 3 - 1341(ResType): TypeStruct 56 578(ivec3) - 1429: 36(fvec3) ConstantComposite 804 804 804 - 1430: 56 ConstantComposite 1429 1429 1429 - 1458: 65 ConstantComposite 858 858 858 858 - 1459: TypeMatrix 859(bvec4) 4 - 1530(ResType): TypeStruct 65 825(ivec4) - 1618: 64(fvec4) ConstantComposite 1061 1061 1061 1061 - 1619: 65 ConstantComposite 1618 1618 1618 1618 - 1798: TypePointer Private 8(int) - 1799(gs_ua): 1798(ptr) Variable Private - 1800(gs_ub): 1798(ptr) Variable Private - 1801(gs_uc): 1798(ptr) Variable Private - 1802: TypePointer Private 26(ivec2) - 1803(gs_ua2): 1802(ptr) Variable Private - 1804(gs_ub2): 1802(ptr) Variable Private - 1805(gs_uc2): 1802(ptr) Variable Private - 1806: TypePointer Private 38(ivec3) - 1807(gs_ua3): 1806(ptr) Variable Private - 1808(gs_ub3): 1806(ptr) Variable Private - 1809(gs_uc3): 1806(ptr) Variable Private - 1810: TypePointer Private 830(ivec4) - 1811(gs_ua4): 1810(ptr) Variable Private - 1812(gs_ub4): 1810(ptr) Variable Private - 1813(gs_uc4): 1810(ptr) Variable Private -4(PixelShaderFunction): 2 Function None 3 + 48: TypeVector 6(float) 4 + 49: TypePointer Function 48(fvec4) + 50: TypeVector 8(int) 4 + 51: TypePointer Function 50(ivec4) + 52: TypeFunction 48(fvec4) 49(ptr) 49(ptr) 49(ptr) 51(ptr) 51(ptr) + 60: TypeMatrix 24(fvec2) 2 + 61: TypePointer Function 60 + 62: TypeFunction 60 61(ptr) 61(ptr) 61(ptr) + 68: TypeMatrix 36(fvec3) 3 + 69: TypePointer Function 68 + 70: TypeFunction 68 69(ptr) 69(ptr) 69(ptr) + 76: TypeMatrix 48(fvec4) 4 + 77: TypePointer Function 76 + 78: TypeFunction 76 77(ptr) 77(ptr) 77(ptr) + 84: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 61(ptr) 61(ptr) + 93: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 69(ptr) 69(ptr) + 102: TypeFunction 2 7(ptr) 7(ptr) 49(ptr) 49(ptr) 77(ptr) 77(ptr) + 111: TypeMatrix 36(fvec3) 2 + 112: TypePointer Function 111 + 113: TypeMatrix 24(fvec2) 3 + 114: TypePointer Function 113 + 115: TypeMatrix 48(fvec4) 3 + 116: TypePointer Function 115 + 117: TypeMatrix 48(fvec4) 2 + 118: TypePointer Function 117 + 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) + 131: TypeBool + 132: TypePointer Function 131(bool) + 148: TypeInt 32 1 + 149: TypePointer Function 148(int) + 175: 6(float) Constant 0 + 187: 8(int) Constant 7 + 217: 148(int) Constant 7 + 235(ResType): TypeStruct 6(float) 148(int) + 263: 6(float) Constant 1050288283 + 284: 6(float) Constant 1065353216 + 288: 8(int) Constant 2 + 352: TypeVector 148(int) 2 + 353: TypePointer Function 352(ivec2) + 379: 24(fvec2) ConstantComposite 175 175 + 380: TypeVector 131(bool) 2 + 393: 8(int) Constant 3 + 394: 26(ivec2) ConstantComposite 187 393 + 437: 8(int) Constant 8 + 438: 26(ivec2) ConstantComposite 187 437 + 454(ResType): TypeStruct 24(fvec2) 352(ivec2) + 461: TypePointer Function 380(bvec2) + 519: 6(float) Constant 1073741824 + 522: 8(int) Constant 1 + 523: 26(ivec2) ConstantComposite 522 288 + 570: 24(fvec2) ConstantComposite 284 519 + 588: TypeVector 148(int) 3 + 589: TypePointer Function 588(ivec3) + 615: 36(fvec3) ConstantComposite 175 175 175 + 616: TypeVector 131(bool) 3 + 629: 8(int) Constant 5 + 630: 38(ivec3) ConstantComposite 187 393 629 + 677: 8(int) Constant 4 + 678: 38(ivec3) ConstantComposite 288 393 677 + 694(ResType): TypeStruct 36(fvec3) 588(ivec3) + 701: TypePointer Function 616(bvec3) + 720: 6(float) Constant 1050253722 + 767: 38(ivec3) ConstantComposite 522 288 393 + 814: 6(float) Constant 1077936128 + 815: 36(fvec3) ConstantComposite 284 519 814 + 833: TypeVector 148(int) 4 + 834: TypePointer Function 833(ivec4) + 860: 48(fvec4) ConstantComposite 175 175 175 175 + 861: TypeVector 131(bool) 4 + 874: 50(ivec4) ConstantComposite 187 393 629 288 + 928: 8(int) Constant 9 + 929: 8(int) Constant 10 + 930: 50(ivec4) ConstantComposite 187 437 928 929 + 946(ResType): TypeStruct 48(fvec4) 833(ivec4) + 953: TypePointer Function 861(bvec4) + 1013: 50(ivec4) ConstantComposite 522 288 393 677 + 1060: 6(float) Constant 1082130432 + 1061: 48(fvec4) ConstantComposite 284 519 814 1060 + 1089: 60 ConstantComposite 379 379 + 1090: TypeMatrix 380(bvec2) 2 + 1155(ResType): TypeStruct 60 352(ivec2) + 1243: 24(fvec2) ConstantComposite 519 519 + 1244: 60 ConstantComposite 1243 1243 + 1272: 68 ConstantComposite 615 615 615 + 1273: TypeMatrix 616(bvec3) 3 + 1341(ResType): TypeStruct 68 588(ivec3) + 1429: 36(fvec3) ConstantComposite 814 814 814 + 1430: 68 ConstantComposite 1429 1429 1429 + 1458: 76 ConstantComposite 860 860 860 860 + 1459: TypeMatrix 861(bvec4) 4 + 1530(ResType): TypeStruct 76 833(ivec4) + 1618: 48(fvec4) ConstantComposite 1060 1060 1060 1060 + 1619: 76 ConstantComposite 1618 1618 1618 1618 + 1798(PS_OUTPUT): TypeStruct 48(fvec4) + 1799: TypePointer Function 1798(PS_OUTPUT) + 1801: 148(int) Constant 0 + 1802: 48(fvec4) ConstantComposite 284 284 284 284 + 1804: TypePointer Output 1798(PS_OUTPUT) +1805(@entryPointOutput): 1804(ptr) Variable Output + 1808: TypePointer Private 8(int) + 1809(gs_ua): 1808(ptr) Variable Private + 1810(gs_ub): 1808(ptr) Variable Private + 1811(gs_uc): 1808(ptr) Variable Private + 1812: TypePointer Private 26(ivec2) + 1813(gs_ua2): 1812(ptr) Variable Private + 1814(gs_ub2): 1812(ptr) Variable Private + 1815(gs_uc2): 1812(ptr) Variable Private + 1816: TypePointer Private 38(ivec3) + 1817(gs_ua3): 1816(ptr) Variable Private + 1818(gs_ub3): 1816(ptr) Variable Private + 1819(gs_uc3): 1816(ptr) Variable Private + 1820: TypePointer Private 50(ivec4) + 1821(gs_ua4): 1820(ptr) Variable Private + 1822(gs_ub4): 1820(ptr) Variable Private + 1823(gs_uc4): 1820(ptr) Variable Private + 4(main): 2 Function None 3 5: Label - 808(r000): 122(ptr) Variable Function - 813(r001): 91(ptr) Variable Function - 816(r002): 91(ptr) Variable Function - 819(r003): 122(ptr) Variable Function - 822(r004): 91(ptr) Variable Function - 827(r005): 826(ptr) Variable Function - 832(r006): 831(ptr) Variable Function - 835(r007): 91(ptr) Variable Function - 840(r009): 91(ptr) Variable Function - 843(r010): 91(ptr) Variable Function - 848(r011): 91(ptr) Variable Function - 851(r012): 91(ptr) Variable Function - 865(r013): 91(ptr) Variable Function - 868(r014): 91(ptr) Variable Function - 871(r015): 831(ptr) Variable Function - 874(r016): 91(ptr) Variable Function - 877(r017): 91(ptr) Variable Function - 880(r018): 91(ptr) Variable Function - 883(r019): 91(ptr) Variable Function - 886(r020): 91(ptr) Variable Function - 889(r021): 91(ptr) Variable Function - 892(r022): 91(ptr) Variable Function - 895(r023): 7(ptr) Variable Function - 899(r024): 7(ptr) Variable Function - 903(r025): 91(ptr) Variable Function - 915(r029): 91(ptr) Variable Function - 918(r030): 91(ptr) Variable Function - 921(r031): 91(ptr) Variable Function - 926(r032): 831(ptr) Variable Function - 931(r033): 831(ptr) Variable Function - 933(r034): 91(ptr) Variable Function - 936(r036): 91(ptr) Variable Function - 940(r037): 91(ptr) Variable Function - 943(r038): 91(ptr) Variable Function - 949(r039): 91(ptr) Variable Function - 953(r040): 952(ptr) Variable Function - 956(r041): 952(ptr) Variable Function - 959(r042): 91(ptr) Variable Function - 963(r039a): 91(ptr) Variable Function - 968(r043): 7(ptr) Variable Function - 971(r044): 91(ptr) Variable Function - 974(r045): 91(ptr) Variable Function - 978(r046): 91(ptr) Variable Function - 981(r047): 91(ptr) Variable Function - 985(r048): 91(ptr) Variable Function - 989(r049): 91(ptr) Variable Function - 992(r050): 91(ptr) Variable Function - 996(r051): 91(ptr) Variable Function - 999(r052): 91(ptr) Variable Function - 1003(r053): 91(ptr) Variable Function - 1007(r054): 91(ptr) Variable Function - 1011(r055): 831(ptr) Variable Function - 1014(r056): 91(ptr) Variable Function - 1017(r057): 91(ptr) Variable Function - 1020(r058): 91(ptr) Variable Function - 1025(r059): 91(ptr) Variable Function - 1028(r060): 91(ptr) Variable Function - 1035(r061): 91(ptr) Variable Function - 1038(r062): 91(ptr) Variable Function - 1043(r063): 91(ptr) Variable Function - 1046(r064): 91(ptr) Variable Function - 1050(r065): 91(ptr) Variable Function - 1053(r066): 91(ptr) Variable Function - 1056(r067): 91(ptr) Variable Function - 811: 64(fvec4) Load 810(inF0) - 812: 121(bool) All 811 - Store 808(r000) 812 - 814: 64(fvec4) Load 810(inF0) - 815: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 814 - Store 813(r001) 815 - 817: 64(fvec4) Load 810(inF0) - 818: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 817 - Store 816(r002) 818 - 820: 64(fvec4) Load 810(inF0) - 821: 121(bool) Any 820 - Store 819(r003) 821 - 823: 64(fvec4) Load 810(inF0) - 824: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 823 - Store 822(r004) 824 - 828: 64(fvec4) Load 810(inF0) - 829: 825(ivec4) Bitcast 828 - Store 827(r005) 829 - 833: 64(fvec4) Load 810(inF0) - 834: 830(ivec4) Bitcast 833 - Store 832(r006) 834 - 838: 830(ivec4) Load 837(inU0) - 839: 64(fvec4) Bitcast 838 - Store 835(r007) 839 - 841: 64(fvec4) Load 810(inF0) - 842: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 841 - Store 840(r009) 842 - 844: 64(fvec4) Load 810(inF0) - 846: 64(fvec4) Load 845(inF1) - 847: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 844 846 - Store 843(r010) 847 - 849: 64(fvec4) Load 810(inF0) - 850: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 849 - Store 848(r011) 850 - 852: 64(fvec4) Load 810(inF0) - 853: 64(fvec4) Load 845(inF1) - 855: 64(fvec4) Load 854(inF2) - 856: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 852 853 855 - Store 851(r012) 856 - 857: 64(fvec4) Load 810(inF0) - 860: 859(bvec4) FOrdLessThan 857 858 - 861: 121(bool) Any 860 - SelectionMerge 863 None - BranchConditional 861 862 863 - 862: Label - Kill - 863: Label - 866: 64(fvec4) Load 810(inF0) - 867: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 866 - Store 865(r013) 867 - 869: 64(fvec4) Load 810(inF0) - 870: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 869 - Store 868(r014) 870 - 873: 830(ivec4) BitCount 872 - Store 871(r015) 873 - 875: 64(fvec4) Load 810(inF0) - 876: 64(fvec4) DPdx 875 - Store 874(r016) 876 - 878: 64(fvec4) Load 810(inF0) - 879: 64(fvec4) DPdxCoarse 878 - Store 877(r017) 879 - 881: 64(fvec4) Load 810(inF0) - 882: 64(fvec4) DPdxFine 881 - Store 880(r018) 882 - 884: 64(fvec4) Load 810(inF0) - 885: 64(fvec4) DPdy 884 - Store 883(r019) 885 - 887: 64(fvec4) Load 810(inF0) - 888: 64(fvec4) DPdyCoarse 887 - Store 886(r020) 888 - 890: 64(fvec4) Load 810(inF0) - 891: 64(fvec4) DPdyFine 890 - Store 889(r021) 891 - 893: 64(fvec4) Load 810(inF0) - 894: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 893 - Store 892(r022) 894 - 896: 64(fvec4) Load 810(inF0) - 897: 64(fvec4) Load 845(inF1) - 898: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 896 897 - Store 895(r023) 898 - 900: 64(fvec4) Load 810(inF0) - 901: 64(fvec4) Load 845(inF1) - 902: 6(float) Dot 900 901 - Store 899(r024) 902 - 905: 904(ptr) AccessChain 810(inF0) 512 - 906: 6(float) Load 905 - 907: 904(ptr) AccessChain 845(inF1) 512 - 908: 6(float) Load 907 - 909: 6(float) FMul 906 908 - 910: 904(ptr) AccessChain 810(inF0) 278 - 911: 6(float) Load 910 - 912: 904(ptr) AccessChain 845(inF1) 383 - 913: 6(float) Load 912 - 914: 64(fvec4) CompositeConstruct 274 909 911 913 - Store 903(r025) 914 - 916: 64(fvec4) Load 810(inF0) - 917: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 916 - Store 915(r029) 917 - 919: 64(fvec4) Load 810(inF0) - 920: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 919 - Store 918(r030) 920 - 922: 64(fvec4) Load 810(inF0) - 923: 64(fvec4) Load 845(inF1) - 924: 64(fvec4) Load 854(inF2) - 925: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 922 923 924 - Store 921(r031) 925 - 930: 830(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 929 - Store 926(r032) 930 - 932: 830(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 929 - Store 931(r033) 932 - 934: 64(fvec4) Load 810(inF0) - 935: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 934 - Store 933(r034) 935 - 937: 64(fvec4) Load 810(inF0) - 938: 64(fvec4) Load 845(inF1) - 939: 64(fvec4) FMod 937 938 - Store 936(r036) 939 - 941: 64(fvec4) Load 810(inF0) - 942: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 941 - Store 940(r037) 942 - 944: 64(fvec4) Load 810(inF0) - 946:945(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 944 - 947: 825(ivec4) CompositeExtract 946 1 - Store 845(inF1) 947 - 948: 64(fvec4) CompositeExtract 946 0 - Store 943(r038) 948 - 950: 64(fvec4) Load 810(inF0) - 951: 64(fvec4) Fwidth 950 - Store 949(r039) 951 - 954: 64(fvec4) Load 810(inF0) - 955: 859(bvec4) IsInf 954 - Store 953(r040) 955 - 957: 64(fvec4) Load 810(inF0) - 958: 859(bvec4) IsNan 957 - Store 956(r041) 958 - 960: 64(fvec4) Load 810(inF0) - 961: 64(fvec4) Load 845(inF1) - 962: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 960 961 - Store 959(r042) 962 - 964: 64(fvec4) Load 810(inF0) - 965: 64(fvec4) Load 845(inF1) - 966: 64(fvec4) Load 854(inF2) - 967: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 964 965 966 - Store 963(r039a) 967 - 969: 64(fvec4) Load 810(inF0) - 970: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 969 - Store 968(r043) 970 - 972: 64(fvec4) Load 810(inF0) - 973: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 972 - Store 971(r044) 973 - 975: 64(fvec4) Load 810(inF0) - 976: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 975 - 977: 64(fvec4) VectorTimesScalar 976 253 - Store 974(r045) 977 - 979: 64(fvec4) Load 810(inF0) - 980: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 - Store 978(r046) 980 - 982: 64(fvec4) Load 810(inF0) - 983: 64(fvec4) Load 845(inF1) - 984: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 982 983 - Store 981(r047) 984 - 986: 64(fvec4) Load 810(inF0) - 987: 64(fvec4) Load 845(inF1) - 988: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 986 987 - Store 985(r048) 988 - 990: 64(fvec4) Load 810(inF0) - 991: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 990 - Store 989(r049) 991 - 993: 64(fvec4) Load 810(inF0) - 994: 64(fvec4) Load 845(inF1) - 995: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 993 994 - Store 992(r050) 995 - 997: 64(fvec4) Load 810(inF0) - 998: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 997 - Store 996(r051) 998 - 1000: 64(fvec4) Load 810(inF0) - 1001: 64(fvec4) CompositeConstruct 274 274 274 274 - 1002: 64(fvec4) FDiv 1001 1000 - Store 999(r052) 1002 - 1004: 64(fvec4) Load 810(inF0) - 1005: 64(fvec4) Load 845(inF1) - 1006: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1004 1005 - Store 1003(r053) 1006 - 1008: 64(fvec4) Load 810(inF0) - 1009: 64(fvec4) Load 845(inF1) - 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1008 1009 509 - Store 1007(r054) 1010 - 1013: 830(ivec4) BitReverse 1012 - Store 1011(r055) 1013 - 1015: 64(fvec4) Load 810(inF0) - 1016: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1015 - Store 1014(r056) 1016 - 1018: 64(fvec4) Load 810(inF0) - 1019: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1018 - Store 1017(r057) 1019 - 1021: 64(fvec4) Load 810(inF0) - 1022: 64(fvec4) CompositeConstruct 165 165 165 165 - 1023: 64(fvec4) CompositeConstruct 274 274 274 274 - 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1021 1022 1023 - Store 1020(r058) 1024 - 1026: 64(fvec4) Load 810(inF0) - 1027: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1026 - Store 1025(r059) 1027 - 1029: 64(fvec4) Load 810(inF0) - 1030: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1029 - Store 1028(r060) 1030 - 1031: 64(fvec4) Load 810(inF0) - 1032: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1031 - Store 845(inF1) 1032 - 1033: 64(fvec4) Load 810(inF0) - 1034: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1033 - Store 854(inF2) 1034 - 1036: 64(fvec4) Load 810(inF0) - 1037: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1036 - Store 1035(r061) 1037 - 1039: 64(fvec4) Load 810(inF0) - 1040: 64(fvec4) Load 845(inF1) - 1041: 64(fvec4) Load 854(inF2) - 1042: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1039 1040 1041 - Store 1038(r062) 1042 - 1044: 64(fvec4) Load 810(inF0) - 1045: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1044 - Store 1043(r063) 1045 - 1047: 64(fvec4) Load 810(inF0) - 1048: 64(fvec4) Load 845(inF1) - 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1047 1048 - Store 1046(r064) 1049 - 1051: 64(fvec4) Load 810(inF0) - 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1051 - Store 1050(r065) 1052 - 1054: 64(fvec4) Load 810(inF0) - 1055: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1054 - Store 1053(r066) 1055 - 1057: 64(fvec4) Load 810(inF0) - 1058: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1057 - Store 1056(r067) 1058 - Store 1060(@entryPointOutput) 1062 + 1800(ps_output): 1799(ptr) Variable Function + 1803: 49(ptr) AccessChain 1800(ps_output) 1801 + Store 1803 1802 + 1806:1798(PS_OUTPUT) Load 1800(ps_output) + Store 1805(@entryPointOutput) 1806 Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 @@ -6539,266 +6272,266 @@ gl_FragCoord origin is upper left 14(inU0): 9(ptr) FunctionParameter 15(inU1): 9(ptr) FunctionParameter 17: Label - 123(r000): 122(ptr) Variable Function - 126(r001): 7(ptr) Variable Function - 129(r002): 7(ptr) Variable Function - 132(r003): 122(ptr) Variable Function - 135(r004): 7(ptr) Variable Function - 140(r005): 139(ptr) Variable Function - 143(r006): 9(ptr) Variable Function - 146(r007): 7(ptr) Variable Function - 149(r009): 7(ptr) Variable Function - 152(r010): 7(ptr) Variable Function - 156(r011): 7(ptr) Variable Function - 159(r012): 7(ptr) Variable Function - 170(r014): 7(ptr) Variable Function - 173(r015): 7(ptr) Variable Function - 176(r016): 9(ptr) Variable Function - 179(r017): 7(ptr) Variable Function - 182(r018): 7(ptr) Variable Function - 185(r019): 7(ptr) Variable Function - 188(r020): 7(ptr) Variable Function - 191(r021): 7(ptr) Variable Function - 194(r022): 7(ptr) Variable Function - 197(r023): 7(ptr) Variable Function - 200(r027): 7(ptr) Variable Function - 203(r028): 7(ptr) Variable Function - 206(r029): 9(ptr) Variable Function - 210(r030): 9(ptr) Variable Function - 213(r031): 7(ptr) Variable Function - 216(r033): 7(ptr) Variable Function - 220(r034): 7(ptr) Variable Function - 223(r035): 7(ptr) Variable Function - 229(r036): 7(ptr) Variable Function - 232(r037): 122(ptr) Variable Function - 235(r038): 122(ptr) Variable Function - 238(r039): 7(ptr) Variable Function - 242(r039a): 7(ptr) Variable Function - 247(r040): 7(ptr) Variable Function - 250(r041): 7(ptr) Variable Function - 255(r042): 7(ptr) Variable Function - 258(r043): 7(ptr) Variable Function - 262(r044): 7(ptr) Variable Function - 266(r045): 7(ptr) Variable Function - 270(r046): 7(ptr) Variable Function - 273(r047): 7(ptr) Variable Function - 277(r048): 9(ptr) Variable Function - 280(r049): 7(ptr) Variable Function - 283(r050): 7(ptr) Variable Function - 286(r051): 7(ptr) Variable Function - 289(r052): 7(ptr) Variable Function - 292(r053): 7(ptr) Variable Function - 299(r055): 7(ptr) Variable Function - 302(r056): 7(ptr) Variable Function - 307(r057): 7(ptr) Variable Function - 310(r058): 7(ptr) Variable Function - 314(r059): 7(ptr) Variable Function - 317(r060): 7(ptr) Variable Function - 320(r061): 7(ptr) Variable Function - 124: 6(float) Load 11(inF0) - 125: 121(bool) All 124 - Store 123(r000) 125 - 127: 6(float) Load 11(inF0) - 128: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 127 - Store 126(r001) 128 - 130: 6(float) Load 11(inF0) - 131: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 130 - Store 129(r002) 131 - 133: 6(float) Load 11(inF0) - 134: 121(bool) Any 133 - Store 132(r003) 134 - 136: 6(float) Load 11(inF0) - 137: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 136 - Store 135(r004) 137 - 141: 6(float) Load 11(inF0) - 142: 138(int) Bitcast 141 - Store 140(r005) 142 - 144: 6(float) Load 11(inF0) - 145: 8(int) Bitcast 144 - Store 143(r006) 145 - 147: 8(int) Load 14(inU0) - 148: 6(float) Bitcast 147 - Store 146(r007) 148 - 150: 6(float) Load 11(inF0) - 151: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 150 - Store 149(r009) 151 - 153: 6(float) Load 11(inF0) - 154: 6(float) Load 12(inF1) - 155: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 153 154 - Store 152(r010) 155 - 157: 6(float) Load 11(inF0) - 158: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 157 - Store 156(r011) 158 + 133(r000): 132(ptr) Variable Function + 136(r001): 7(ptr) Variable Function + 139(r002): 7(ptr) Variable Function + 142(r003): 132(ptr) Variable Function + 145(r004): 7(ptr) Variable Function + 150(r005): 149(ptr) Variable Function + 153(r006): 9(ptr) Variable Function + 156(r007): 7(ptr) Variable Function + 159(r009): 7(ptr) Variable Function + 162(r010): 7(ptr) Variable Function + 166(r011): 7(ptr) Variable Function + 169(r012): 7(ptr) Variable Function + 180(r014): 7(ptr) Variable Function + 183(r015): 7(ptr) Variable Function + 186(r016): 9(ptr) Variable Function + 189(r017): 7(ptr) Variable Function + 192(r018): 7(ptr) Variable Function + 195(r019): 7(ptr) Variable Function + 198(r020): 7(ptr) Variable Function + 201(r021): 7(ptr) Variable Function + 204(r022): 7(ptr) Variable Function + 207(r023): 7(ptr) Variable Function + 210(r027): 7(ptr) Variable Function + 213(r028): 7(ptr) Variable Function + 216(r029): 9(ptr) Variable Function + 220(r030): 9(ptr) Variable Function + 223(r031): 7(ptr) Variable Function + 226(r033): 7(ptr) Variable Function + 230(r034): 7(ptr) Variable Function + 233(r035): 7(ptr) Variable Function + 239(r036): 7(ptr) Variable Function + 242(r037): 132(ptr) Variable Function + 245(r038): 132(ptr) Variable Function + 248(r039): 7(ptr) Variable Function + 252(r039a): 7(ptr) Variable Function + 257(r040): 7(ptr) Variable Function + 260(r041): 7(ptr) Variable Function + 265(r042): 7(ptr) Variable Function + 268(r043): 7(ptr) Variable Function + 272(r044): 7(ptr) Variable Function + 276(r045): 7(ptr) Variable Function + 280(r046): 7(ptr) Variable Function + 283(r047): 7(ptr) Variable Function + 287(r048): 9(ptr) Variable Function + 290(r049): 7(ptr) Variable Function + 293(r050): 7(ptr) Variable Function + 296(r051): 7(ptr) Variable Function + 299(r052): 7(ptr) Variable Function + 302(r053): 7(ptr) Variable Function + 309(r055): 7(ptr) Variable Function + 312(r056): 7(ptr) Variable Function + 317(r057): 7(ptr) Variable Function + 320(r058): 7(ptr) Variable Function + 324(r059): 7(ptr) Variable Function + 327(r060): 7(ptr) Variable Function + 330(r061): 7(ptr) Variable Function + 134: 6(float) Load 11(inF0) + 135: 131(bool) All 134 + Store 133(r000) 135 + 137: 6(float) Load 11(inF0) + 138: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 137 + Store 136(r001) 138 + 140: 6(float) Load 11(inF0) + 141: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 140 + Store 139(r002) 141 + 143: 6(float) Load 11(inF0) + 144: 131(bool) Any 143 + Store 142(r003) 144 + 146: 6(float) Load 11(inF0) + 147: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 146 + Store 145(r004) 147 + 151: 6(float) Load 11(inF0) + 152: 148(int) Bitcast 151 + Store 150(r005) 152 + 154: 6(float) Load 11(inF0) + 155: 8(int) Bitcast 154 + Store 153(r006) 155 + 157: 8(int) Load 14(inU0) + 158: 6(float) Bitcast 157 + Store 156(r007) 158 160: 6(float) Load 11(inF0) - 161: 6(float) Load 12(inF1) - 162: 6(float) Load 13(inF2) - 163: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 160 161 162 - Store 159(r012) 163 - 164: 6(float) Load 11(inF0) - 166: 121(bool) FOrdLessThan 164 165 - SelectionMerge 168 None - BranchConditional 166 167 168 - 167: Label - Kill - 168: Label - 171: 6(float) Load 11(inF0) - 172: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 171 - Store 170(r014) 172 + 161: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 160 + Store 159(r009) 161 + 163: 6(float) Load 11(inF0) + 164: 6(float) Load 12(inF1) + 165: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 163 164 + Store 162(r010) 165 + 167: 6(float) Load 11(inF0) + 168: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 167 + Store 166(r011) 168 + 170: 6(float) Load 11(inF0) + 171: 6(float) Load 12(inF1) + 172: 6(float) Load 13(inF2) + 173: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 170 171 172 + Store 169(r012) 173 174: 6(float) Load 11(inF0) - 175: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 174 - Store 173(r015) 175 - 178: 8(int) BitCount 177 - Store 176(r016) 178 - 180: 6(float) Load 11(inF0) - 181: 6(float) DPdx 180 - Store 179(r017) 181 - 183: 6(float) Load 11(inF0) - 184: 6(float) DPdxCoarse 183 - Store 182(r018) 184 - 186: 6(float) Load 11(inF0) - 187: 6(float) DPdxFine 186 - Store 185(r019) 187 - 189: 6(float) Load 11(inF0) - 190: 6(float) DPdy 189 - Store 188(r020) 190 - 192: 6(float) Load 11(inF0) - 193: 6(float) DPdyCoarse 192 - Store 191(r021) 193 - 195: 6(float) Load 11(inF0) - 196: 6(float) DPdyFine 195 - Store 194(r022) 196 - 198: 6(float) Load 11(inF0) - 199: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 198 - Store 197(r023) 199 - 201: 6(float) Load 11(inF0) - 202: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 201 - Store 200(r027) 202 - 204: 6(float) Load 11(inF0) - 205: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 204 - Store 203(r028) 205 - 208: 138(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 207 - 209: 8(int) Bitcast 208 - Store 206(r029) 209 - 211: 138(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 207 - 212: 8(int) Bitcast 211 - Store 210(r030) 212 + 176: 131(bool) FOrdLessThan 174 175 + SelectionMerge 178 None + BranchConditional 176 177 178 + 177: Label + Kill + 178: Label + 181: 6(float) Load 11(inF0) + 182: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 181 + Store 180(r014) 182 + 184: 6(float) Load 11(inF0) + 185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184 + Store 183(r015) 185 + 188: 8(int) BitCount 187 + Store 186(r016) 188 + 190: 6(float) Load 11(inF0) + 191: 6(float) DPdx 190 + Store 189(r017) 191 + 193: 6(float) Load 11(inF0) + 194: 6(float) DPdxCoarse 193 + Store 192(r018) 194 + 196: 6(float) Load 11(inF0) + 197: 6(float) DPdxFine 196 + Store 195(r019) 197 + 199: 6(float) Load 11(inF0) + 200: 6(float) DPdy 199 + Store 198(r020) 200 + 202: 6(float) Load 11(inF0) + 203: 6(float) DPdyCoarse 202 + Store 201(r021) 203 + 205: 6(float) Load 11(inF0) + 206: 6(float) DPdyFine 205 + Store 204(r022) 206 + 208: 6(float) Load 11(inF0) + 209: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 208 + Store 207(r023) 209 + 211: 6(float) Load 11(inF0) + 212: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 211 + Store 210(r027) 212 214: 6(float) Load 11(inF0) - 215: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 214 - Store 213(r031) 215 - 217: 6(float) Load 11(inF0) - 218: 6(float) Load 12(inF1) - 219: 6(float) FMod 217 218 - Store 216(r033) 219 - 221: 6(float) Load 11(inF0) - 222: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 221 - Store 220(r034) 222 + 215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214 + Store 213(r028) 215 + 218: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 217 + 219: 8(int) Bitcast 218 + Store 216(r029) 219 + 221: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 217 + 222: 8(int) Bitcast 221 + Store 220(r030) 222 224: 6(float) Load 11(inF0) - 226:225(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 224 - 227: 138(int) CompositeExtract 226 1 - Store 12(inF1) 227 - 228: 6(float) CompositeExtract 226 0 - Store 223(r035) 228 - 230: 6(float) Load 11(inF0) - 231: 6(float) Fwidth 230 - Store 229(r036) 231 - 233: 6(float) Load 11(inF0) - 234: 121(bool) IsInf 233 - Store 232(r037) 234 - 236: 6(float) Load 11(inF0) - 237: 121(bool) IsNan 236 - Store 235(r038) 237 - 239: 6(float) Load 11(inF0) - 240: 6(float) Load 12(inF1) - 241: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 239 240 - Store 238(r039) 241 + 225: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 224 + Store 223(r031) 225 + 227: 6(float) Load 11(inF0) + 228: 6(float) Load 12(inF1) + 229: 6(float) FMod 227 228 + Store 226(r033) 229 + 231: 6(float) Load 11(inF0) + 232: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 231 + Store 230(r034) 232 + 234: 6(float) Load 11(inF0) + 236:235(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 234 + 237: 148(int) CompositeExtract 236 1 + Store 12(inF1) 237 + 238: 6(float) CompositeExtract 236 0 + Store 233(r035) 238 + 240: 6(float) Load 11(inF0) + 241: 6(float) Fwidth 240 + Store 239(r036) 241 243: 6(float) Load 11(inF0) - 244: 6(float) Load 12(inF1) - 245: 6(float) Load 13(inF2) - 246: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 243 244 245 - Store 242(r039a) 246 - 248: 6(float) Load 11(inF0) - 249: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 248 - Store 247(r040) 249 - 251: 6(float) Load 11(inF0) - 252: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 251 - 254: 6(float) FMul 252 253 - Store 250(r041) 254 - 256: 6(float) Load 11(inF0) - 257: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 256 - Store 255(r042) 257 - 259: 6(float) Load 11(inF0) - 260: 6(float) Load 12(inF1) - 261: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 259 260 - Store 258(r043) 261 - 263: 6(float) Load 11(inF0) - 264: 6(float) Load 12(inF1) - 265: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 263 264 - Store 262(r044) 265 - 267: 6(float) Load 11(inF0) - 268: 6(float) Load 12(inF1) - 269: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 267 268 - Store 266(r045) 269 - 271: 6(float) Load 11(inF0) - 272: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 271 - Store 270(r046) 272 - 275: 6(float) Load 11(inF0) - 276: 6(float) FDiv 274 275 - Store 273(r047) 276 - 279: 8(int) BitReverse 278 - Store 277(r048) 279 + 244: 131(bool) IsInf 243 + Store 242(r037) 244 + 246: 6(float) Load 11(inF0) + 247: 131(bool) IsNan 246 + Store 245(r038) 247 + 249: 6(float) Load 11(inF0) + 250: 6(float) Load 12(inF1) + 251: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 249 250 + Store 248(r039) 251 + 253: 6(float) Load 11(inF0) + 254: 6(float) Load 12(inF1) + 255: 6(float) Load 13(inF2) + 256: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 253 254 255 + Store 252(r039a) 256 + 258: 6(float) Load 11(inF0) + 259: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 258 + Store 257(r040) 259 + 261: 6(float) Load 11(inF0) + 262: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 261 + 264: 6(float) FMul 262 263 + Store 260(r041) 264 + 266: 6(float) Load 11(inF0) + 267: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 266 + Store 265(r042) 267 + 269: 6(float) Load 11(inF0) + 270: 6(float) Load 12(inF1) + 271: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 269 270 + Store 268(r043) 271 + 273: 6(float) Load 11(inF0) + 274: 6(float) Load 12(inF1) + 275: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 273 274 + Store 272(r044) 275 + 277: 6(float) Load 11(inF0) + 278: 6(float) Load 12(inF1) + 279: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 277 278 + Store 276(r045) 279 281: 6(float) Load 11(inF0) - 282: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 281 - Store 280(r049) 282 - 284: 6(float) Load 11(inF0) - 285: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 284 - Store 283(r050) 285 - 287: 6(float) Load 11(inF0) - 288: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 287 165 274 - Store 286(r051) 288 - 290: 6(float) Load 11(inF0) - 291: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 290 - Store 289(r052) 291 - 293: 6(float) Load 11(inF0) - 294: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 293 - Store 292(r053) 294 - 295: 6(float) Load 11(inF0) - 296: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 295 - Store 12(inF1) 296 + 282: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 281 + Store 280(r046) 282 + 285: 6(float) Load 11(inF0) + 286: 6(float) FDiv 284 285 + Store 283(r047) 286 + 289: 8(int) BitReverse 288 + Store 287(r048) 289 + 291: 6(float) Load 11(inF0) + 292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 + Store 290(r049) 292 + 294: 6(float) Load 11(inF0) + 295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294 + Store 293(r050) 295 297: 6(float) Load 11(inF0) - 298: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 297 - Store 13(inF2) 298 + 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 284 + Store 296(r051) 298 300: 6(float) Load 11(inF0) - 301: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 300 - Store 299(r055) 301 + 301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300 + Store 299(r052) 301 303: 6(float) Load 11(inF0) - 304: 6(float) Load 12(inF1) - 305: 6(float) Load 13(inF2) - 306: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 303 304 305 - Store 302(r056) 306 - 308: 6(float) Load 11(inF0) - 309: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 308 - Store 307(r057) 309 - 311: 6(float) Load 11(inF0) - 312: 6(float) Load 12(inF1) - 313: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 311 312 - Store 310(r058) 313 - 315: 6(float) Load 11(inF0) - 316: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 315 - Store 314(r059) 316 + 304: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 303 + Store 302(r053) 304 + 305: 6(float) Load 11(inF0) + 306: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 305 + Store 12(inF1) 306 + 307: 6(float) Load 11(inF0) + 308: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 307 + Store 13(inF2) 308 + 310: 6(float) Load 11(inF0) + 311: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 310 + Store 309(r055) 311 + 313: 6(float) Load 11(inF0) + 314: 6(float) Load 12(inF1) + 315: 6(float) Load 13(inF2) + 316: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 313 314 315 + Store 312(r056) 316 318: 6(float) Load 11(inF0) - 319: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 318 - Store 317(r060) 319 + 319: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 318 + Store 317(r057) 319 321: 6(float) Load 11(inF0) - 322: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 321 - Store 320(r061) 322 - ReturnValue 165 + 322: 6(float) Load 12(inF1) + 323: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 321 322 + Store 320(r058) 323 + 325: 6(float) Load 11(inF0) + 326: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 325 + Store 324(r059) 326 + 328: 6(float) Load 11(inF0) + 329: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 328 + Store 327(r060) 329 + 331: 6(float) Load 11(inF0) + 332: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 331 + Store 330(r061) 332 + ReturnValue 175 FunctionEnd 22(PixelShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 19(inF0): 7(ptr) FunctionParameter 20(inF1): 7(ptr) FunctionParameter 21(inF2): 7(ptr) FunctionParameter 23: Label - ReturnValue 165 + ReturnValue 175 FunctionEnd 34(PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter @@ -6807,295 +6540,295 @@ gl_FragCoord origin is upper left 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label - 327(r000): 122(ptr) Variable Function - 330(r001): 25(ptr) Variable Function - 333(r002): 25(ptr) Variable Function - 336(r003): 122(ptr) Variable Function - 339(r004): 25(ptr) Variable Function - 344(r005): 343(ptr) Variable Function - 347(r006): 27(ptr) Variable Function - 350(r007): 25(ptr) Variable Function - 353(r009): 25(ptr) Variable Function - 356(r010): 25(ptr) Variable Function - 360(r011): 25(ptr) Variable Function - 363(r012): 25(ptr) Variable Function - 376(r013): 25(ptr) Variable Function - 379(r015): 25(ptr) Variable Function - 382(r016): 27(ptr) Variable Function - 386(r017): 25(ptr) Variable Function - 389(r018): 25(ptr) Variable Function - 392(r019): 25(ptr) Variable Function - 395(r020): 25(ptr) Variable Function - 398(r021): 25(ptr) Variable Function - 401(r022): 25(ptr) Variable Function - 404(r023): 25(ptr) Variable Function - 407(r026): 7(ptr) Variable Function - 411(r027): 7(ptr) Variable Function - 415(r028): 25(ptr) Variable Function - 418(r029): 25(ptr) Variable Function - 421(r030): 25(ptr) Variable Function - 426(r031): 27(ptr) Variable Function - 430(r032): 27(ptr) Variable Function - 432(r033): 25(ptr) Variable Function - 435(r035): 25(ptr) Variable Function - 439(r036): 25(ptr) Variable Function - 442(r037): 25(ptr) Variable Function - 448(r038): 25(ptr) Variable Function - 452(r039): 451(ptr) Variable Function - 455(r040): 451(ptr) Variable Function - 458(r041): 25(ptr) Variable Function - 462(r039a): 25(ptr) Variable Function - 467(r042): 7(ptr) Variable Function - 470(r043): 25(ptr) Variable Function - 473(r044): 25(ptr) Variable Function - 477(r045): 25(ptr) Variable Function - 480(r046): 25(ptr) Variable Function - 484(r047): 25(ptr) Variable Function - 488(r048): 25(ptr) Variable Function - 491(r049): 25(ptr) Variable Function - 495(r050): 25(ptr) Variable Function - 498(r051): 25(ptr) Variable Function - 502(r052): 25(ptr) Variable Function - 506(r053): 25(ptr) Variable Function - 511(r054): 27(ptr) Variable Function - 515(r055): 25(ptr) Variable Function - 518(r056): 25(ptr) Variable Function - 521(r057): 25(ptr) Variable Function - 526(r058): 25(ptr) Variable Function - 529(r059): 25(ptr) Variable Function - 536(r060): 25(ptr) Variable Function - 539(r061): 25(ptr) Variable Function - 544(r062): 25(ptr) Variable Function - 547(r063): 25(ptr) Variable Function - 551(r064): 25(ptr) Variable Function - 554(r065): 25(ptr) Variable Function - 557(r066): 25(ptr) Variable Function - 328: 24(fvec2) Load 29(inF0) - 329: 121(bool) All 328 - Store 327(r000) 329 - 331: 24(fvec2) Load 29(inF0) - 332: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 331 - Store 330(r001) 332 - 334: 24(fvec2) Load 29(inF0) - 335: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 334 - Store 333(r002) 335 - 337: 24(fvec2) Load 29(inF0) - 338: 121(bool) Any 337 - Store 336(r003) 338 - 340: 24(fvec2) Load 29(inF0) - 341: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 340 - Store 339(r004) 341 - 345: 24(fvec2) Load 29(inF0) - 346: 342(ivec2) Bitcast 345 - Store 344(r005) 346 - 348: 24(fvec2) Load 29(inF0) - 349: 26(ivec2) Bitcast 348 - Store 347(r006) 349 - 351: 26(ivec2) Load 32(inU0) - 352: 24(fvec2) Bitcast 351 - Store 350(r007) 352 - 354: 24(fvec2) Load 29(inF0) - 355: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 354 - Store 353(r009) 355 - 357: 24(fvec2) Load 29(inF0) - 358: 24(fvec2) Load 30(inF1) - 359: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 357 358 - Store 356(r010) 359 - 361: 24(fvec2) Load 29(inF0) - 362: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 361 - Store 360(r011) 362 + 337(r000): 132(ptr) Variable Function + 340(r001): 25(ptr) Variable Function + 343(r002): 25(ptr) Variable Function + 346(r003): 132(ptr) Variable Function + 349(r004): 25(ptr) Variable Function + 354(r005): 353(ptr) Variable Function + 357(r006): 27(ptr) Variable Function + 360(r007): 25(ptr) Variable Function + 363(r009): 25(ptr) Variable Function + 366(r010): 25(ptr) Variable Function + 370(r011): 25(ptr) Variable Function + 373(r012): 25(ptr) Variable Function + 386(r013): 25(ptr) Variable Function + 389(r015): 25(ptr) Variable Function + 392(r016): 27(ptr) Variable Function + 396(r017): 25(ptr) Variable Function + 399(r018): 25(ptr) Variable Function + 402(r019): 25(ptr) Variable Function + 405(r020): 25(ptr) Variable Function + 408(r021): 25(ptr) Variable Function + 411(r022): 25(ptr) Variable Function + 414(r023): 25(ptr) Variable Function + 417(r026): 7(ptr) Variable Function + 421(r027): 7(ptr) Variable Function + 425(r028): 25(ptr) Variable Function + 428(r029): 25(ptr) Variable Function + 431(r030): 25(ptr) Variable Function + 436(r031): 27(ptr) Variable Function + 440(r032): 27(ptr) Variable Function + 442(r033): 25(ptr) Variable Function + 445(r035): 25(ptr) Variable Function + 449(r036): 25(ptr) Variable Function + 452(r037): 25(ptr) Variable Function + 458(r038): 25(ptr) Variable Function + 462(r039): 461(ptr) Variable Function + 465(r040): 461(ptr) Variable Function + 468(r041): 25(ptr) Variable Function + 472(r039a): 25(ptr) Variable Function + 477(r042): 7(ptr) Variable Function + 480(r043): 25(ptr) Variable Function + 483(r044): 25(ptr) Variable Function + 487(r045): 25(ptr) Variable Function + 490(r046): 25(ptr) Variable Function + 494(r047): 25(ptr) Variable Function + 498(r048): 25(ptr) Variable Function + 501(r049): 25(ptr) Variable Function + 505(r050): 25(ptr) Variable Function + 508(r051): 25(ptr) Variable Function + 512(r052): 25(ptr) Variable Function + 516(r053): 25(ptr) Variable Function + 521(r054): 27(ptr) Variable Function + 525(r055): 25(ptr) Variable Function + 528(r056): 25(ptr) Variable Function + 531(r057): 25(ptr) Variable Function + 536(r058): 25(ptr) Variable Function + 539(r059): 25(ptr) Variable Function + 546(r060): 25(ptr) Variable Function + 549(r061): 25(ptr) Variable Function + 554(r062): 25(ptr) Variable Function + 557(r063): 25(ptr) Variable Function + 561(r064): 25(ptr) Variable Function + 564(r065): 25(ptr) Variable Function + 567(r066): 25(ptr) Variable Function + 338: 24(fvec2) Load 29(inF0) + 339: 131(bool) All 338 + Store 337(r000) 339 + 341: 24(fvec2) Load 29(inF0) + 342: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 341 + Store 340(r001) 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 344 + Store 343(r002) 345 + 347: 24(fvec2) Load 29(inF0) + 348: 131(bool) Any 347 + Store 346(r003) 348 + 350: 24(fvec2) Load 29(inF0) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 350 + Store 349(r004) 351 + 355: 24(fvec2) Load 29(inF0) + 356: 352(ivec2) Bitcast 355 + Store 354(r005) 356 + 358: 24(fvec2) Load 29(inF0) + 359: 26(ivec2) Bitcast 358 + Store 357(r006) 359 + 361: 26(ivec2) Load 32(inU0) + 362: 24(fvec2) Bitcast 361 + Store 360(r007) 362 364: 24(fvec2) Load 29(inF0) - 365: 24(fvec2) Load 30(inF1) - 366: 24(fvec2) Load 31(inF2) - 367: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 364 365 366 - Store 363(r012) 367 - 368: 24(fvec2) Load 29(inF0) - 371: 370(bvec2) FOrdLessThan 368 369 - 372: 121(bool) Any 371 - SelectionMerge 374 None - BranchConditional 372 373 374 - 373: Label + 365: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 364 + Store 363(r009) 365 + 367: 24(fvec2) Load 29(inF0) + 368: 24(fvec2) Load 30(inF1) + 369: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 367 368 + Store 366(r010) 369 + 371: 24(fvec2) Load 29(inF0) + 372: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 371 + Store 370(r011) 372 + 374: 24(fvec2) Load 29(inF0) + 375: 24(fvec2) Load 30(inF1) + 376: 24(fvec2) Load 31(inF2) + 377: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 374 375 376 + Store 373(r012) 377 + 378: 24(fvec2) Load 29(inF0) + 381: 380(bvec2) FOrdLessThan 378 379 + 382: 131(bool) Any 381 + SelectionMerge 384 None + BranchConditional 382 383 384 + 383: Label Kill - 374: Label - 377: 24(fvec2) Load 29(inF0) - 378: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 377 - Store 376(r013) 378 - 380: 24(fvec2) Load 29(inF0) - 381: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 380 - Store 379(r015) 381 - 385: 26(ivec2) BitCount 384 - Store 382(r016) 385 + 384: Label 387: 24(fvec2) Load 29(inF0) - 388: 24(fvec2) DPdx 387 - Store 386(r017) 388 + 388: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 387 + Store 386(r013) 388 390: 24(fvec2) Load 29(inF0) - 391: 24(fvec2) DPdxCoarse 390 - Store 389(r018) 391 - 393: 24(fvec2) Load 29(inF0) - 394: 24(fvec2) DPdxFine 393 - Store 392(r019) 394 - 396: 24(fvec2) Load 29(inF0) - 397: 24(fvec2) DPdy 396 - Store 395(r020) 397 - 399: 24(fvec2) Load 29(inF0) - 400: 24(fvec2) DPdyCoarse 399 - Store 398(r021) 400 - 402: 24(fvec2) Load 29(inF0) - 403: 24(fvec2) DPdyFine 402 - Store 401(r022) 403 - 405: 24(fvec2) Load 29(inF0) - 406: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 405 - Store 404(r023) 406 - 408: 24(fvec2) Load 29(inF0) - 409: 24(fvec2) Load 30(inF1) - 410: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 408 409 - Store 407(r026) 410 + 391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390 + Store 389(r015) 391 + 395: 26(ivec2) BitCount 394 + Store 392(r016) 395 + 397: 24(fvec2) Load 29(inF0) + 398: 24(fvec2) DPdx 397 + Store 396(r017) 398 + 400: 24(fvec2) Load 29(inF0) + 401: 24(fvec2) DPdxCoarse 400 + Store 399(r018) 401 + 403: 24(fvec2) Load 29(inF0) + 404: 24(fvec2) DPdxFine 403 + Store 402(r019) 404 + 406: 24(fvec2) Load 29(inF0) + 407: 24(fvec2) DPdy 406 + Store 405(r020) 407 + 409: 24(fvec2) Load 29(inF0) + 410: 24(fvec2) DPdyCoarse 409 + Store 408(r021) 410 412: 24(fvec2) Load 29(inF0) - 413: 24(fvec2) Load 30(inF1) - 414: 6(float) Dot 412 413 - Store 411(r027) 414 - 416: 24(fvec2) Load 29(inF0) - 417: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 416 - Store 415(r028) 417 - 419: 24(fvec2) Load 29(inF0) - 420: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 419 - Store 418(r029) 420 + 413: 24(fvec2) DPdyFine 412 + Store 411(r022) 413 + 415: 24(fvec2) Load 29(inF0) + 416: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 415 + Store 414(r023) 416 + 418: 24(fvec2) Load 29(inF0) + 419: 24(fvec2) Load 30(inF1) + 420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419 + Store 417(r026) 420 422: 24(fvec2) Load 29(inF0) 423: 24(fvec2) Load 30(inF1) - 424: 24(fvec2) Load 31(inF2) - 425: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 422 423 424 - Store 421(r030) 425 - 429: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 428 - Store 426(r031) 429 - 431: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 428 - Store 430(r032) 431 - 433: 24(fvec2) Load 29(inF0) - 434: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 433 - Store 432(r033) 434 - 436: 24(fvec2) Load 29(inF0) - 437: 24(fvec2) Load 30(inF1) - 438: 24(fvec2) FMod 436 437 - Store 435(r035) 438 - 440: 24(fvec2) Load 29(inF0) - 441: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 440 - Store 439(r036) 441 + 424: 6(float) Dot 422 423 + Store 421(r027) 424 + 426: 24(fvec2) Load 29(inF0) + 427: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 426 + Store 425(r028) 427 + 429: 24(fvec2) Load 29(inF0) + 430: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 429 + Store 428(r029) 430 + 432: 24(fvec2) Load 29(inF0) + 433: 24(fvec2) Load 30(inF1) + 434: 24(fvec2) Load 31(inF2) + 435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434 + Store 431(r030) 435 + 439: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 438 + Store 436(r031) 439 + 441: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 438 + Store 440(r032) 441 443: 24(fvec2) Load 29(inF0) - 445:444(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 443 - 446: 342(ivec2) CompositeExtract 445 1 - Store 30(inF1) 446 - 447: 24(fvec2) CompositeExtract 445 0 - Store 442(r037) 447 - 449: 24(fvec2) Load 29(inF0) - 450: 24(fvec2) Fwidth 449 - Store 448(r038) 450 + 444: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 443 + Store 442(r033) 444 + 446: 24(fvec2) Load 29(inF0) + 447: 24(fvec2) Load 30(inF1) + 448: 24(fvec2) FMod 446 447 + Store 445(r035) 448 + 450: 24(fvec2) Load 29(inF0) + 451: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 450 + Store 449(r036) 451 453: 24(fvec2) Load 29(inF0) - 454: 370(bvec2) IsInf 453 - Store 452(r039) 454 - 456: 24(fvec2) Load 29(inF0) - 457: 370(bvec2) IsNan 456 - Store 455(r040) 457 + 455:454(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 453 + 456: 352(ivec2) CompositeExtract 455 1 + Store 30(inF1) 456 + 457: 24(fvec2) CompositeExtract 455 0 + Store 452(r037) 457 459: 24(fvec2) Load 29(inF0) - 460: 24(fvec2) Load 30(inF1) - 461: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 459 460 - Store 458(r041) 461 + 460: 24(fvec2) Fwidth 459 + Store 458(r038) 460 463: 24(fvec2) Load 29(inF0) - 464: 24(fvec2) Load 30(inF1) - 465: 24(fvec2) Load 31(inF2) - 466: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 463 464 465 - Store 462(r039a) 466 - 468: 24(fvec2) Load 29(inF0) - 469: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 468 - Store 467(r042) 469 - 471: 24(fvec2) Load 29(inF0) - 472: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 471 - Store 470(r043) 472 - 474: 24(fvec2) Load 29(inF0) - 475: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 474 - 476: 24(fvec2) VectorTimesScalar 475 253 - Store 473(r044) 476 + 464: 380(bvec2) IsInf 463 + Store 462(r039) 464 + 466: 24(fvec2) Load 29(inF0) + 467: 380(bvec2) IsNan 466 + Store 465(r040) 467 + 469: 24(fvec2) Load 29(inF0) + 470: 24(fvec2) Load 30(inF1) + 471: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 469 470 + Store 468(r041) 471 + 473: 24(fvec2) Load 29(inF0) + 474: 24(fvec2) Load 30(inF1) + 475: 24(fvec2) Load 31(inF2) + 476: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 473 474 475 + Store 472(r039a) 476 478: 24(fvec2) Load 29(inF0) - 479: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 478 - Store 477(r045) 479 + 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478 + Store 477(r042) 479 481: 24(fvec2) Load 29(inF0) - 482: 24(fvec2) Load 30(inF1) - 483: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 481 482 - Store 480(r046) 483 - 485: 24(fvec2) Load 29(inF0) - 486: 24(fvec2) Load 30(inF1) - 487: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 485 486 - Store 484(r047) 487 - 489: 24(fvec2) Load 29(inF0) - 490: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 489 - Store 488(r048) 490 - 492: 24(fvec2) Load 29(inF0) - 493: 24(fvec2) Load 30(inF1) - 494: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 492 493 - Store 491(r049) 494 - 496: 24(fvec2) Load 29(inF0) - 497: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 496 - Store 495(r050) 497 + 482: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 481 + Store 480(r043) 482 + 484: 24(fvec2) Load 29(inF0) + 485: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 484 + 486: 24(fvec2) VectorTimesScalar 485 263 + Store 483(r044) 486 + 488: 24(fvec2) Load 29(inF0) + 489: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 488 + Store 487(r045) 489 + 491: 24(fvec2) Load 29(inF0) + 492: 24(fvec2) Load 30(inF1) + 493: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 491 492 + Store 490(r046) 493 + 495: 24(fvec2) Load 29(inF0) + 496: 24(fvec2) Load 30(inF1) + 497: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 495 496 + Store 494(r047) 497 499: 24(fvec2) Load 29(inF0) - 500: 24(fvec2) CompositeConstruct 274 274 - 501: 24(fvec2) FDiv 500 499 - Store 498(r051) 501 - 503: 24(fvec2) Load 29(inF0) - 504: 24(fvec2) Load 30(inF1) - 505: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 503 504 - Store 502(r052) 505 - 507: 24(fvec2) Load 29(inF0) - 508: 24(fvec2) Load 30(inF1) - 510: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 507 508 509 - Store 506(r053) 510 - 514: 26(ivec2) BitReverse 513 - Store 511(r054) 514 - 516: 24(fvec2) Load 29(inF0) - 517: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 516 - Store 515(r055) 517 - 519: 24(fvec2) Load 29(inF0) - 520: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 519 - Store 518(r056) 520 - 522: 24(fvec2) Load 29(inF0) - 523: 24(fvec2) CompositeConstruct 165 165 - 524: 24(fvec2) CompositeConstruct 274 274 - 525: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 522 523 524 - Store 521(r057) 525 - 527: 24(fvec2) Load 29(inF0) - 528: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 527 - Store 526(r058) 528 - 530: 24(fvec2) Load 29(inF0) - 531: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 530 - Store 529(r059) 531 + 500: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 499 + Store 498(r048) 500 + 502: 24(fvec2) Load 29(inF0) + 503: 24(fvec2) Load 30(inF1) + 504: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 502 503 + Store 501(r049) 504 + 506: 24(fvec2) Load 29(inF0) + 507: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 506 + Store 505(r050) 507 + 509: 24(fvec2) Load 29(inF0) + 510: 24(fvec2) CompositeConstruct 284 284 + 511: 24(fvec2) FDiv 510 509 + Store 508(r051) 511 + 513: 24(fvec2) Load 29(inF0) + 514: 24(fvec2) Load 30(inF1) + 515: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 513 514 + Store 512(r052) 515 + 517: 24(fvec2) Load 29(inF0) + 518: 24(fvec2) Load 30(inF1) + 520: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 517 518 519 + Store 516(r053) 520 + 524: 26(ivec2) BitReverse 523 + Store 521(r054) 524 + 526: 24(fvec2) Load 29(inF0) + 527: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 526 + Store 525(r055) 527 + 529: 24(fvec2) Load 29(inF0) + 530: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 529 + Store 528(r056) 530 532: 24(fvec2) Load 29(inF0) - 533: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 532 - Store 30(inF1) 533 - 534: 24(fvec2) Load 29(inF0) - 535: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 534 - Store 31(inF2) 535 + 533: 24(fvec2) CompositeConstruct 175 175 + 534: 24(fvec2) CompositeConstruct 284 284 + 535: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 532 533 534 + Store 531(r057) 535 537: 24(fvec2) Load 29(inF0) - 538: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 537 - Store 536(r060) 538 + 538: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 537 + Store 536(r058) 538 540: 24(fvec2) Load 29(inF0) - 541: 24(fvec2) Load 30(inF1) - 542: 24(fvec2) Load 31(inF2) - 543: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 540 541 542 - Store 539(r061) 543 - 545: 24(fvec2) Load 29(inF0) - 546: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 545 - Store 544(r062) 546 - 548: 24(fvec2) Load 29(inF0) - 549: 24(fvec2) Load 30(inF1) - 550: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 548 549 - Store 547(r063) 550 - 552: 24(fvec2) Load 29(inF0) - 553: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 552 - Store 551(r064) 553 + 541: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 540 + Store 539(r059) 541 + 542: 24(fvec2) Load 29(inF0) + 543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542 + Store 30(inF1) 543 + 544: 24(fvec2) Load 29(inF0) + 545: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 544 + Store 31(inF2) 545 + 547: 24(fvec2) Load 29(inF0) + 548: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 547 + Store 546(r060) 548 + 550: 24(fvec2) Load 29(inF0) + 551: 24(fvec2) Load 30(inF1) + 552: 24(fvec2) Load 31(inF2) + 553: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 550 551 552 + Store 549(r061) 553 555: 24(fvec2) Load 29(inF0) - 556: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 555 - Store 554(r065) 556 + 556: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 555 + Store 554(r062) 556 558: 24(fvec2) Load 29(inF0) - 559: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 558 - Store 557(r066) 559 - ReturnValue 560 + 559: 24(fvec2) Load 30(inF1) + 560: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 558 559 + Store 557(r063) 560 + 562: 24(fvec2) Load 29(inF0) + 563: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 562 + Store 561(r064) 563 + 565: 24(fvec2) Load 29(inF0) + 566: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 565 + Store 564(r065) 566 + 568: 24(fvec2) Load 29(inF0) + 569: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 568 + Store 567(r066) 569 + ReturnValue 570 FunctionEnd 46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter @@ -7104,670 +6837,979 @@ gl_FragCoord origin is upper left 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 563(r000): 122(ptr) Variable Function - 566(r001): 37(ptr) Variable Function - 569(r002): 37(ptr) Variable Function - 572(r003): 122(ptr) Variable Function - 575(r004): 37(ptr) Variable Function - 580(r005): 579(ptr) Variable Function - 583(r006): 39(ptr) Variable Function - 586(r007): 37(ptr) Variable Function - 589(r009): 37(ptr) Variable Function - 592(r010): 37(ptr) Variable Function - 596(r011): 37(ptr) Variable Function - 599(r012): 37(ptr) Variable Function - 612(r013): 37(ptr) Variable Function - 615(r014): 37(ptr) Variable Function - 618(r015): 39(ptr) Variable Function - 622(r016): 37(ptr) Variable Function - 626(r017): 37(ptr) Variable Function - 629(r018): 37(ptr) Variable Function - 632(r019): 37(ptr) Variable Function - 635(r020): 37(ptr) Variable Function - 638(r021): 37(ptr) Variable Function - 641(r022): 37(ptr) Variable Function - 644(r023): 37(ptr) Variable Function - 647(r024): 7(ptr) Variable Function - 651(r025): 7(ptr) Variable Function - 655(r029): 37(ptr) Variable Function - 658(r030): 37(ptr) Variable Function - 661(r031): 37(ptr) Variable Function - 666(r032): 39(ptr) Variable Function - 670(r033): 39(ptr) Variable Function - 672(r034): 37(ptr) Variable Function - 675(r036): 37(ptr) Variable Function - 679(r037): 37(ptr) Variable Function - 682(r038): 37(ptr) Variable Function - 688(r039): 37(ptr) Variable Function - 692(r040): 691(ptr) Variable Function - 695(r041): 691(ptr) Variable Function - 698(r042): 37(ptr) Variable Function - 702(r039a): 37(ptr) Variable Function - 707(r039b): 37(ptr) Variable Function - 713(r043): 7(ptr) Variable Function - 716(r044): 37(ptr) Variable Function - 719(r045): 37(ptr) Variable Function - 723(r046): 37(ptr) Variable Function - 726(r047): 37(ptr) Variable Function - 730(r048): 37(ptr) Variable Function - 734(r049): 37(ptr) Variable Function - 737(r050): 37(ptr) Variable Function - 741(r051): 37(ptr) Variable Function - 744(r052): 37(ptr) Variable Function - 748(r053): 37(ptr) Variable Function - 752(r054): 37(ptr) Variable Function - 756(r055): 39(ptr) Variable Function - 759(r056): 37(ptr) Variable Function - 762(r057): 37(ptr) Variable Function - 765(r058): 37(ptr) Variable Function - 770(r059): 37(ptr) Variable Function - 773(r060): 37(ptr) Variable Function - 780(r061): 37(ptr) Variable Function - 783(r062): 37(ptr) Variable Function - 788(r063): 37(ptr) Variable Function - 791(r064): 37(ptr) Variable Function - 795(r065): 37(ptr) Variable Function - 798(r066): 37(ptr) Variable Function - 801(r067): 37(ptr) Variable Function - 564: 36(fvec3) Load 41(inF0) - 565: 121(bool) All 564 - Store 563(r000) 565 - 567: 36(fvec3) Load 41(inF0) - 568: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 567 - Store 566(r001) 568 - 570: 36(fvec3) Load 41(inF0) - 571: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 570 - Store 569(r002) 571 - 573: 36(fvec3) Load 41(inF0) - 574: 121(bool) Any 573 - Store 572(r003) 574 - 576: 36(fvec3) Load 41(inF0) - 577: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 576 - Store 575(r004) 577 - 581: 36(fvec3) Load 41(inF0) - 582: 578(ivec3) Bitcast 581 - Store 580(r005) 582 - 584: 36(fvec3) Load 41(inF0) - 585: 38(ivec3) Bitcast 584 - Store 583(r006) 585 - 587: 38(ivec3) Load 44(inU0) - 588: 36(fvec3) Bitcast 587 - Store 586(r007) 588 - 590: 36(fvec3) Load 41(inF0) - 591: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 590 - Store 589(r009) 591 - 593: 36(fvec3) Load 41(inF0) - 594: 36(fvec3) Load 42(inF1) - 595: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 593 594 - Store 592(r010) 595 - 597: 36(fvec3) Load 41(inF0) - 598: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 597 - Store 596(r011) 598 + 573(r000): 132(ptr) Variable Function + 576(r001): 37(ptr) Variable Function + 579(r002): 37(ptr) Variable Function + 582(r003): 132(ptr) Variable Function + 585(r004): 37(ptr) Variable Function + 590(r005): 589(ptr) Variable Function + 593(r006): 39(ptr) Variable Function + 596(r007): 37(ptr) Variable Function + 599(r009): 37(ptr) Variable Function + 602(r010): 37(ptr) Variable Function + 606(r011): 37(ptr) Variable Function + 609(r012): 37(ptr) Variable Function + 622(r013): 37(ptr) Variable Function + 625(r014): 37(ptr) Variable Function + 628(r015): 39(ptr) Variable Function + 632(r016): 37(ptr) Variable Function + 636(r017): 37(ptr) Variable Function + 639(r018): 37(ptr) Variable Function + 642(r019): 37(ptr) Variable Function + 645(r020): 37(ptr) Variable Function + 648(r021): 37(ptr) Variable Function + 651(r022): 37(ptr) Variable Function + 654(r023): 37(ptr) Variable Function + 657(r024): 7(ptr) Variable Function + 661(r025): 7(ptr) Variable Function + 665(r029): 37(ptr) Variable Function + 668(r030): 37(ptr) Variable Function + 671(r031): 37(ptr) Variable Function + 676(r032): 39(ptr) Variable Function + 680(r033): 39(ptr) Variable Function + 682(r034): 37(ptr) Variable Function + 685(r036): 37(ptr) Variable Function + 689(r037): 37(ptr) Variable Function + 692(r038): 37(ptr) Variable Function + 698(r039): 37(ptr) Variable Function + 702(r040): 701(ptr) Variable Function + 705(r041): 701(ptr) Variable Function + 708(r042): 37(ptr) Variable Function + 712(r039a): 37(ptr) Variable Function + 717(r039b): 37(ptr) Variable Function + 723(r043): 7(ptr) Variable Function + 726(r044): 37(ptr) Variable Function + 729(r045): 37(ptr) Variable Function + 733(r046): 37(ptr) Variable Function + 736(r047): 37(ptr) Variable Function + 740(r048): 37(ptr) Variable Function + 744(r049): 37(ptr) Variable Function + 747(r050): 37(ptr) Variable Function + 751(r051): 37(ptr) Variable Function + 754(r052): 37(ptr) Variable Function + 758(r053): 37(ptr) Variable Function + 762(r054): 37(ptr) Variable Function + 766(r055): 39(ptr) Variable Function + 769(r056): 37(ptr) Variable Function + 772(r057): 37(ptr) Variable Function + 775(r058): 37(ptr) Variable Function + 780(r059): 37(ptr) Variable Function + 783(r060): 37(ptr) Variable Function + 790(r061): 37(ptr) Variable Function + 793(r062): 37(ptr) Variable Function + 798(r063): 37(ptr) Variable Function + 801(r064): 37(ptr) Variable Function + 805(r065): 37(ptr) Variable Function + 808(r066): 37(ptr) Variable Function + 811(r067): 37(ptr) Variable Function + 574: 36(fvec3) Load 41(inF0) + 575: 131(bool) All 574 + Store 573(r000) 575 + 577: 36(fvec3) Load 41(inF0) + 578: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 577 + Store 576(r001) 578 + 580: 36(fvec3) Load 41(inF0) + 581: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 580 + Store 579(r002) 581 + 583: 36(fvec3) Load 41(inF0) + 584: 131(bool) Any 583 + Store 582(r003) 584 + 586: 36(fvec3) Load 41(inF0) + 587: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 586 + Store 585(r004) 587 + 591: 36(fvec3) Load 41(inF0) + 592: 588(ivec3) Bitcast 591 + Store 590(r005) 592 + 594: 36(fvec3) Load 41(inF0) + 595: 38(ivec3) Bitcast 594 + Store 593(r006) 595 + 597: 38(ivec3) Load 44(inU0) + 598: 36(fvec3) Bitcast 597 + Store 596(r007) 598 600: 36(fvec3) Load 41(inF0) - 601: 36(fvec3) Load 42(inF1) - 602: 36(fvec3) Load 43(inF2) - 603: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 600 601 602 - Store 599(r012) 603 - 604: 36(fvec3) Load 41(inF0) - 607: 606(bvec3) FOrdLessThan 604 605 - 608: 121(bool) Any 607 - SelectionMerge 610 None - BranchConditional 608 609 610 - 609: Label + 601: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 600 + Store 599(r009) 601 + 603: 36(fvec3) Load 41(inF0) + 604: 36(fvec3) Load 42(inF1) + 605: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 603 604 + Store 602(r010) 605 + 607: 36(fvec3) Load 41(inF0) + 608: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 607 + Store 606(r011) 608 + 610: 36(fvec3) Load 41(inF0) + 611: 36(fvec3) Load 42(inF1) + 612: 36(fvec3) Load 43(inF2) + 613: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 610 611 612 + Store 609(r012) 613 + 614: 36(fvec3) Load 41(inF0) + 617: 616(bvec3) FOrdLessThan 614 615 + 618: 131(bool) Any 617 + SelectionMerge 620 None + BranchConditional 618 619 620 + 619: Label Kill - 610: Label - 613: 36(fvec3) Load 41(inF0) - 614: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 613 - Store 612(r013) 614 - 616: 36(fvec3) Load 41(inF0) - 617: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 616 - Store 615(r014) 617 - 621: 38(ivec3) BitCount 620 - Store 618(r015) 621 + 620: Label 623: 36(fvec3) Load 41(inF0) - 624: 36(fvec3) Load 42(inF1) - 625: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 623 624 - Store 622(r016) 625 - 627: 36(fvec3) Load 41(inF0) - 628: 36(fvec3) DPdx 627 - Store 626(r017) 628 - 630: 36(fvec3) Load 41(inF0) - 631: 36(fvec3) DPdxCoarse 630 - Store 629(r018) 631 + 624: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 623 + Store 622(r013) 624 + 626: 36(fvec3) Load 41(inF0) + 627: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 626 + Store 625(r014) 627 + 631: 38(ivec3) BitCount 630 + Store 628(r015) 631 633: 36(fvec3) Load 41(inF0) - 634: 36(fvec3) DPdxFine 633 - Store 632(r019) 634 - 636: 36(fvec3) Load 41(inF0) - 637: 36(fvec3) DPdy 636 - Store 635(r020) 637 - 639: 36(fvec3) Load 41(inF0) - 640: 36(fvec3) DPdyCoarse 639 - Store 638(r021) 640 - 642: 36(fvec3) Load 41(inF0) - 643: 36(fvec3) DPdyFine 642 - Store 641(r022) 643 - 645: 36(fvec3) Load 41(inF0) - 646: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 645 - Store 644(r023) 646 - 648: 36(fvec3) Load 41(inF0) - 649: 36(fvec3) Load 42(inF1) - 650: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 648 649 - Store 647(r024) 650 + 634: 36(fvec3) Load 42(inF1) + 635: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 633 634 + Store 632(r016) 635 + 637: 36(fvec3) Load 41(inF0) + 638: 36(fvec3) DPdx 637 + Store 636(r017) 638 + 640: 36(fvec3) Load 41(inF0) + 641: 36(fvec3) DPdxCoarse 640 + Store 639(r018) 641 + 643: 36(fvec3) Load 41(inF0) + 644: 36(fvec3) DPdxFine 643 + Store 642(r019) 644 + 646: 36(fvec3) Load 41(inF0) + 647: 36(fvec3) DPdy 646 + Store 645(r020) 647 + 649: 36(fvec3) Load 41(inF0) + 650: 36(fvec3) DPdyCoarse 649 + Store 648(r021) 650 652: 36(fvec3) Load 41(inF0) - 653: 36(fvec3) Load 42(inF1) - 654: 6(float) Dot 652 653 - Store 651(r025) 654 - 656: 36(fvec3) Load 41(inF0) - 657: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 656 - Store 655(r029) 657 - 659: 36(fvec3) Load 41(inF0) - 660: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 659 - Store 658(r030) 660 + 653: 36(fvec3) DPdyFine 652 + Store 651(r022) 653 + 655: 36(fvec3) Load 41(inF0) + 656: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 655 + Store 654(r023) 656 + 658: 36(fvec3) Load 41(inF0) + 659: 36(fvec3) Load 42(inF1) + 660: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 658 659 + Store 657(r024) 660 662: 36(fvec3) Load 41(inF0) 663: 36(fvec3) Load 42(inF1) - 664: 36(fvec3) Load 43(inF2) - 665: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 662 663 664 - Store 661(r031) 665 - 669: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 668 - Store 666(r032) 669 - 671: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 668 - Store 670(r033) 671 - 673: 36(fvec3) Load 41(inF0) - 674: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 673 - Store 672(r034) 674 - 676: 36(fvec3) Load 41(inF0) - 677: 36(fvec3) Load 42(inF1) - 678: 36(fvec3) FMod 676 677 - Store 675(r036) 678 - 680: 36(fvec3) Load 41(inF0) - 681: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 680 - Store 679(r037) 681 + 664: 6(float) Dot 662 663 + Store 661(r025) 664 + 666: 36(fvec3) Load 41(inF0) + 667: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 666 + Store 665(r029) 667 + 669: 36(fvec3) Load 41(inF0) + 670: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 669 + Store 668(r030) 670 + 672: 36(fvec3) Load 41(inF0) + 673: 36(fvec3) Load 42(inF1) + 674: 36(fvec3) Load 43(inF2) + 675: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 672 673 674 + Store 671(r031) 675 + 679: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 678 + Store 676(r032) 679 + 681: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 678 + Store 680(r033) 681 683: 36(fvec3) Load 41(inF0) - 685:684(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 683 - 686: 578(ivec3) CompositeExtract 685 1 - Store 42(inF1) 686 - 687: 36(fvec3) CompositeExtract 685 0 - Store 682(r038) 687 - 689: 36(fvec3) Load 41(inF0) - 690: 36(fvec3) Fwidth 689 - Store 688(r039) 690 + 684: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 683 + Store 682(r034) 684 + 686: 36(fvec3) Load 41(inF0) + 687: 36(fvec3) Load 42(inF1) + 688: 36(fvec3) FMod 686 687 + Store 685(r036) 688 + 690: 36(fvec3) Load 41(inF0) + 691: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 690 + Store 689(r037) 691 693: 36(fvec3) Load 41(inF0) - 694: 606(bvec3) IsInf 693 - Store 692(r040) 694 - 696: 36(fvec3) Load 41(inF0) - 697: 606(bvec3) IsNan 696 - Store 695(r041) 697 + 695:694(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 693 + 696: 588(ivec3) CompositeExtract 695 1 + Store 42(inF1) 696 + 697: 36(fvec3) CompositeExtract 695 0 + Store 692(r038) 697 699: 36(fvec3) Load 41(inF0) - 700: 36(fvec3) Load 42(inF1) - 701: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 699 700 - Store 698(r042) 701 + 700: 36(fvec3) Fwidth 699 + Store 698(r039) 700 703: 36(fvec3) Load 41(inF0) - 704: 36(fvec3) Load 42(inF1) - 705: 36(fvec3) Load 43(inF2) - 706: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 703 704 705 - Store 702(r039a) 706 - 708: 36(fvec3) Load 41(inF0) - 709: 36(fvec3) Load 42(inF1) - 711: 36(fvec3) CompositeConstruct 710 710 710 - 712: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 708 709 711 - Store 707(r039b) 712 - 714: 36(fvec3) Load 41(inF0) - 715: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 714 - Store 713(r043) 715 - 717: 36(fvec3) Load 41(inF0) - 718: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 717 - Store 716(r044) 718 - 720: 36(fvec3) Load 41(inF0) - 721: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 720 - 722: 36(fvec3) VectorTimesScalar 721 253 - Store 719(r045) 722 + 704: 616(bvec3) IsInf 703 + Store 702(r040) 704 + 706: 36(fvec3) Load 41(inF0) + 707: 616(bvec3) IsNan 706 + Store 705(r041) 707 + 709: 36(fvec3) Load 41(inF0) + 710: 36(fvec3) Load 42(inF1) + 711: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 709 710 + Store 708(r042) 711 + 713: 36(fvec3) Load 41(inF0) + 714: 36(fvec3) Load 42(inF1) + 715: 36(fvec3) Load 43(inF2) + 716: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 713 714 715 + Store 712(r039a) 716 + 718: 36(fvec3) Load 41(inF0) + 719: 36(fvec3) Load 42(inF1) + 721: 36(fvec3) CompositeConstruct 720 720 720 + 722: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 718 719 721 + Store 717(r039b) 722 724: 36(fvec3) Load 41(inF0) - 725: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 724 - Store 723(r046) 725 + 725: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 724 + Store 723(r043) 725 727: 36(fvec3) Load 41(inF0) - 728: 36(fvec3) Load 42(inF1) - 729: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 727 728 - Store 726(r047) 729 - 731: 36(fvec3) Load 41(inF0) - 732: 36(fvec3) Load 42(inF1) - 733: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 731 732 - Store 730(r048) 733 - 735: 36(fvec3) Load 41(inF0) - 736: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 735 - Store 734(r049) 736 - 738: 36(fvec3) Load 41(inF0) - 739: 36(fvec3) Load 42(inF1) - 740: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 738 739 - Store 737(r050) 740 - 742: 36(fvec3) Load 41(inF0) - 743: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 742 - Store 741(r051) 743 + 728: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 727 + Store 726(r044) 728 + 730: 36(fvec3) Load 41(inF0) + 731: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 730 + 732: 36(fvec3) VectorTimesScalar 731 263 + Store 729(r045) 732 + 734: 36(fvec3) Load 41(inF0) + 735: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 734 + Store 733(r046) 735 + 737: 36(fvec3) Load 41(inF0) + 738: 36(fvec3) Load 42(inF1) + 739: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 737 738 + Store 736(r047) 739 + 741: 36(fvec3) Load 41(inF0) + 742: 36(fvec3) Load 42(inF1) + 743: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 741 742 + Store 740(r048) 743 745: 36(fvec3) Load 41(inF0) - 746: 36(fvec3) CompositeConstruct 274 274 274 - 747: 36(fvec3) FDiv 746 745 - Store 744(r052) 747 - 749: 36(fvec3) Load 41(inF0) - 750: 36(fvec3) Load 42(inF1) - 751: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 749 750 - Store 748(r053) 751 - 753: 36(fvec3) Load 41(inF0) - 754: 36(fvec3) Load 42(inF1) - 755: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 753 754 509 - Store 752(r054) 755 - 758: 38(ivec3) BitReverse 757 - Store 756(r055) 758 - 760: 36(fvec3) Load 41(inF0) - 761: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 760 - Store 759(r056) 761 + 746: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 745 + Store 744(r049) 746 + 748: 36(fvec3) Load 41(inF0) + 749: 36(fvec3) Load 42(inF1) + 750: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 748 749 + Store 747(r050) 750 + 752: 36(fvec3) Load 41(inF0) + 753: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 752 + Store 751(r051) 753 + 755: 36(fvec3) Load 41(inF0) + 756: 36(fvec3) CompositeConstruct 284 284 284 + 757: 36(fvec3) FDiv 756 755 + Store 754(r052) 757 + 759: 36(fvec3) Load 41(inF0) + 760: 36(fvec3) Load 42(inF1) + 761: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 759 760 + Store 758(r053) 761 763: 36(fvec3) Load 41(inF0) - 764: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 763 - Store 762(r057) 764 - 766: 36(fvec3) Load 41(inF0) - 767: 36(fvec3) CompositeConstruct 165 165 165 - 768: 36(fvec3) CompositeConstruct 274 274 274 - 769: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 766 767 768 - Store 765(r058) 769 - 771: 36(fvec3) Load 41(inF0) - 772: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 771 - Store 770(r059) 772 - 774: 36(fvec3) Load 41(inF0) - 775: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 774 - Store 773(r060) 775 + 764: 36(fvec3) Load 42(inF1) + 765: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 763 764 519 + Store 762(r054) 765 + 768: 38(ivec3) BitReverse 767 + Store 766(r055) 768 + 770: 36(fvec3) Load 41(inF0) + 771: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 770 + Store 769(r056) 771 + 773: 36(fvec3) Load 41(inF0) + 774: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773 + Store 772(r057) 774 776: 36(fvec3) Load 41(inF0) - 777: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 776 - Store 42(inF1) 777 - 778: 36(fvec3) Load 41(inF0) - 779: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 778 - Store 43(inF2) 779 + 777: 36(fvec3) CompositeConstruct 175 175 175 + 778: 36(fvec3) CompositeConstruct 284 284 284 + 779: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 776 777 778 + Store 775(r058) 779 781: 36(fvec3) Load 41(inF0) - 782: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 781 - Store 780(r061) 782 + 782: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 781 + Store 780(r059) 782 784: 36(fvec3) Load 41(inF0) - 785: 36(fvec3) Load 42(inF1) - 786: 36(fvec3) Load 43(inF2) - 787: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 784 785 786 - Store 783(r062) 787 - 789: 36(fvec3) Load 41(inF0) - 790: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 789 - Store 788(r063) 790 - 792: 36(fvec3) Load 41(inF0) - 793: 36(fvec3) Load 42(inF1) - 794: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 792 793 - Store 791(r064) 794 - 796: 36(fvec3) Load 41(inF0) - 797: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 796 - Store 795(r065) 797 + 785: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 784 + Store 783(r060) 785 + 786: 36(fvec3) Load 41(inF0) + 787: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 786 + Store 42(inF1) 787 + 788: 36(fvec3) Load 41(inF0) + 789: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 788 + Store 43(inF2) 789 + 791: 36(fvec3) Load 41(inF0) + 792: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 791 + Store 790(r061) 792 + 794: 36(fvec3) Load 41(inF0) + 795: 36(fvec3) Load 42(inF1) + 796: 36(fvec3) Load 43(inF2) + 797: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 794 795 796 + Store 793(r062) 797 799: 36(fvec3) Load 41(inF0) - 800: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 799 - Store 798(r066) 800 + 800: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 799 + Store 798(r063) 800 802: 36(fvec3) Load 41(inF0) - 803: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 802 - Store 801(r067) 803 - ReturnValue 805 + 803: 36(fvec3) Load 42(inF1) + 804: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 802 803 + Store 801(r064) 804 + 806: 36(fvec3) Load 41(inF0) + 807: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 806 + Store 805(r065) 807 + 809: 36(fvec3) Load 41(inF0) + 810: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 809 + Store 808(r066) 810 + 812: 36(fvec3) Load 41(inF0) + 813: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 812 + Store 811(r067) 813 + ReturnValue 815 FunctionEnd -54(PixelShaderFunction2x2(mf22;mf22;mf22;): 48 Function None 50 - 51(inF0): 49(ptr) FunctionParameter - 52(inF1): 49(ptr) FunctionParameter - 53(inF2): 49(ptr) FunctionParameter - 55: Label - 1064(r000): 122(ptr) Variable Function - 1067(r001): 49(ptr) Variable Function - 1072(r003): 122(ptr) Variable Function - 1075(r004): 49(ptr) Variable Function - 1078(r005): 49(ptr) Variable Function - 1081(r006): 49(ptr) Variable Function - 1085(r007): 49(ptr) Variable Function - 1096(r008): 49(ptr) Variable Function - 1101(r009): 49(ptr) Variable Function - 1104(r010): 49(ptr) Variable Function - 1107(r011): 49(ptr) Variable Function - 1110(r012): 49(ptr) Variable Function - 1113(r013): 49(ptr) Variable Function - 1116(r014): 49(ptr) Variable Function - 1119(r015): 49(ptr) Variable Function - 1122(r016): 49(ptr) Variable Function - 1125(r017): 49(ptr) Variable Function +58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 + 53(inF0): 49(ptr) FunctionParameter + 54(inF1): 49(ptr) FunctionParameter + 55(inF2): 49(ptr) FunctionParameter + 56(inU0): 51(ptr) FunctionParameter + 57(inU1): 51(ptr) FunctionParameter + 59: Label + 818(r000): 132(ptr) Variable Function + 821(r001): 49(ptr) Variable Function + 824(r002): 49(ptr) Variable Function + 827(r003): 132(ptr) Variable Function + 830(r004): 49(ptr) Variable Function + 835(r005): 834(ptr) Variable Function + 838(r006): 51(ptr) Variable Function + 841(r007): 49(ptr) Variable Function + 844(r009): 49(ptr) Variable Function + 847(r010): 49(ptr) Variable Function + 851(r011): 49(ptr) Variable Function + 854(r012): 49(ptr) Variable Function + 867(r013): 49(ptr) Variable Function + 870(r014): 49(ptr) Variable Function + 873(r015): 51(ptr) Variable Function + 876(r016): 49(ptr) Variable Function + 879(r017): 49(ptr) Variable Function + 882(r018): 49(ptr) Variable Function + 885(r019): 49(ptr) Variable Function + 888(r020): 49(ptr) Variable Function + 891(r021): 49(ptr) Variable Function + 894(r022): 49(ptr) Variable Function + 897(r023): 7(ptr) Variable Function + 901(r024): 7(ptr) Variable Function + 905(r025): 49(ptr) Variable Function + 916(r029): 49(ptr) Variable Function + 919(r030): 49(ptr) Variable Function + 922(r031): 49(ptr) Variable Function + 927(r032): 51(ptr) Variable Function + 932(r033): 51(ptr) Variable Function + 934(r034): 49(ptr) Variable Function + 937(r036): 49(ptr) Variable Function + 941(r037): 49(ptr) Variable Function + 944(r038): 49(ptr) Variable Function + 950(r039): 49(ptr) Variable Function + 954(r040): 953(ptr) Variable Function + 957(r041): 953(ptr) Variable Function + 960(r042): 49(ptr) Variable Function + 964(r039a): 49(ptr) Variable Function + 969(r043): 7(ptr) Variable Function + 972(r044): 49(ptr) Variable Function + 975(r045): 49(ptr) Variable Function + 979(r046): 49(ptr) Variable Function + 982(r047): 49(ptr) Variable Function + 986(r048): 49(ptr) Variable Function + 990(r049): 49(ptr) Variable Function + 993(r050): 49(ptr) Variable Function + 997(r051): 49(ptr) Variable Function + 1000(r052): 49(ptr) Variable Function + 1004(r053): 49(ptr) Variable Function + 1008(r054): 49(ptr) Variable Function + 1012(r055): 51(ptr) Variable Function + 1015(r056): 49(ptr) Variable Function + 1018(r057): 49(ptr) Variable Function + 1021(r058): 49(ptr) Variable Function + 1026(r059): 49(ptr) Variable Function + 1029(r060): 49(ptr) Variable Function + 1036(r061): 49(ptr) Variable Function + 1039(r062): 49(ptr) Variable Function + 1044(r063): 49(ptr) Variable Function + 1047(r064): 49(ptr) Variable Function + 1051(r065): 49(ptr) Variable Function + 1054(r066): 49(ptr) Variable Function + 1057(r067): 49(ptr) Variable Function + 819: 48(fvec4) Load 53(inF0) + 820: 131(bool) All 819 + Store 818(r000) 820 + 822: 48(fvec4) Load 53(inF0) + 823: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 822 + Store 821(r001) 823 + 825: 48(fvec4) Load 53(inF0) + 826: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 825 + Store 824(r002) 826 + 828: 48(fvec4) Load 53(inF0) + 829: 131(bool) Any 828 + Store 827(r003) 829 + 831: 48(fvec4) Load 53(inF0) + 832: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 831 + Store 830(r004) 832 + 836: 48(fvec4) Load 53(inF0) + 837: 833(ivec4) Bitcast 836 + Store 835(r005) 837 + 839: 48(fvec4) Load 53(inF0) + 840: 50(ivec4) Bitcast 839 + Store 838(r006) 840 + 842: 50(ivec4) Load 56(inU0) + 843: 48(fvec4) Bitcast 842 + Store 841(r007) 843 + 845: 48(fvec4) Load 53(inF0) + 846: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 845 + Store 844(r009) 846 + 848: 48(fvec4) Load 53(inF0) + 849: 48(fvec4) Load 54(inF1) + 850: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 848 849 + Store 847(r010) 850 + 852: 48(fvec4) Load 53(inF0) + 853: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 852 + Store 851(r011) 853 + 855: 48(fvec4) Load 53(inF0) + 856: 48(fvec4) Load 54(inF1) + 857: 48(fvec4) Load 55(inF2) + 858: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 855 856 857 + Store 854(r012) 858 + 859: 48(fvec4) Load 53(inF0) + 862: 861(bvec4) FOrdLessThan 859 860 + 863: 131(bool) Any 862 + SelectionMerge 865 None + BranchConditional 863 864 865 + 864: Label + Kill + 865: Label + 868: 48(fvec4) Load 53(inF0) + 869: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 868 + Store 867(r013) 869 + 871: 48(fvec4) Load 53(inF0) + 872: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 871 + Store 870(r014) 872 + 875: 50(ivec4) BitCount 874 + Store 873(r015) 875 + 877: 48(fvec4) Load 53(inF0) + 878: 48(fvec4) DPdx 877 + Store 876(r016) 878 + 880: 48(fvec4) Load 53(inF0) + 881: 48(fvec4) DPdxCoarse 880 + Store 879(r017) 881 + 883: 48(fvec4) Load 53(inF0) + 884: 48(fvec4) DPdxFine 883 + Store 882(r018) 884 + 886: 48(fvec4) Load 53(inF0) + 887: 48(fvec4) DPdy 886 + Store 885(r019) 887 + 889: 48(fvec4) Load 53(inF0) + 890: 48(fvec4) DPdyCoarse 889 + Store 888(r020) 890 + 892: 48(fvec4) Load 53(inF0) + 893: 48(fvec4) DPdyFine 892 + Store 891(r021) 893 + 895: 48(fvec4) Load 53(inF0) + 896: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 895 + Store 894(r022) 896 + 898: 48(fvec4) Load 53(inF0) + 899: 48(fvec4) Load 54(inF1) + 900: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 898 899 + Store 897(r023) 900 + 902: 48(fvec4) Load 53(inF0) + 903: 48(fvec4) Load 54(inF1) + 904: 6(float) Dot 902 903 + Store 901(r024) 904 + 906: 7(ptr) AccessChain 53(inF0) 522 + 907: 6(float) Load 906 + 908: 7(ptr) AccessChain 54(inF1) 522 + 909: 6(float) Load 908 + 910: 6(float) FMul 907 909 + 911: 7(ptr) AccessChain 53(inF0) 288 + 912: 6(float) Load 911 + 913: 7(ptr) AccessChain 54(inF1) 393 + 914: 6(float) Load 913 + 915: 48(fvec4) CompositeConstruct 284 910 912 914 + Store 905(r025) 915 + 917: 48(fvec4) Load 53(inF0) + 918: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 917 + Store 916(r029) 918 + 920: 48(fvec4) Load 53(inF0) + 921: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 920 + Store 919(r030) 921 + 923: 48(fvec4) Load 53(inF0) + 924: 48(fvec4) Load 54(inF1) + 925: 48(fvec4) Load 55(inF2) + 926: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 923 924 925 + Store 922(r031) 926 + 931: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 930 + Store 927(r032) 931 + 933: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 930 + Store 932(r033) 933 + 935: 48(fvec4) Load 53(inF0) + 936: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 935 + Store 934(r034) 936 + 938: 48(fvec4) Load 53(inF0) + 939: 48(fvec4) Load 54(inF1) + 940: 48(fvec4) FMod 938 939 + Store 937(r036) 940 + 942: 48(fvec4) Load 53(inF0) + 943: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 942 + Store 941(r037) 943 + 945: 48(fvec4) Load 53(inF0) + 947:946(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 945 + 948: 833(ivec4) CompositeExtract 947 1 + Store 54(inF1) 948 + 949: 48(fvec4) CompositeExtract 947 0 + Store 944(r038) 949 + 951: 48(fvec4) Load 53(inF0) + 952: 48(fvec4) Fwidth 951 + Store 950(r039) 952 + 955: 48(fvec4) Load 53(inF0) + 956: 861(bvec4) IsInf 955 + Store 954(r040) 956 + 958: 48(fvec4) Load 53(inF0) + 959: 861(bvec4) IsNan 958 + Store 957(r041) 959 + 961: 48(fvec4) Load 53(inF0) + 962: 48(fvec4) Load 54(inF1) + 963: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 961 962 + Store 960(r042) 963 + 965: 48(fvec4) Load 53(inF0) + 966: 48(fvec4) Load 54(inF1) + 967: 48(fvec4) Load 55(inF2) + 968: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 965 966 967 + Store 964(r039a) 968 + 970: 48(fvec4) Load 53(inF0) + 971: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 970 + Store 969(r043) 971 + 973: 48(fvec4) Load 53(inF0) + 974: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 973 + Store 972(r044) 974 + 976: 48(fvec4) Load 53(inF0) + 977: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 976 + 978: 48(fvec4) VectorTimesScalar 977 263 + Store 975(r045) 978 + 980: 48(fvec4) Load 53(inF0) + 981: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 980 + Store 979(r046) 981 + 983: 48(fvec4) Load 53(inF0) + 984: 48(fvec4) Load 54(inF1) + 985: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 983 984 + Store 982(r047) 985 + 987: 48(fvec4) Load 53(inF0) + 988: 48(fvec4) Load 54(inF1) + 989: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 987 988 + Store 986(r048) 989 + 991: 48(fvec4) Load 53(inF0) + 992: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 991 + Store 990(r049) 992 + 994: 48(fvec4) Load 53(inF0) + 995: 48(fvec4) Load 54(inF1) + 996: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 994 995 + Store 993(r050) 996 + 998: 48(fvec4) Load 53(inF0) + 999: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 998 + Store 997(r051) 999 + 1001: 48(fvec4) Load 53(inF0) + 1002: 48(fvec4) CompositeConstruct 284 284 284 284 + 1003: 48(fvec4) FDiv 1002 1001 + Store 1000(r052) 1003 + 1005: 48(fvec4) Load 53(inF0) + 1006: 48(fvec4) Load 54(inF1) + 1007: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1005 1006 + Store 1004(r053) 1007 + 1009: 48(fvec4) Load 53(inF0) + 1010: 48(fvec4) Load 54(inF1) + 1011: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1009 1010 519 + Store 1008(r054) 1011 + 1014: 50(ivec4) BitReverse 1013 + Store 1012(r055) 1014 + 1016: 48(fvec4) Load 53(inF0) + 1017: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1016 + Store 1015(r056) 1017 + 1019: 48(fvec4) Load 53(inF0) + 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1019 + Store 1018(r057) 1020 + 1022: 48(fvec4) Load 53(inF0) + 1023: 48(fvec4) CompositeConstruct 175 175 175 175 + 1024: 48(fvec4) CompositeConstruct 284 284 284 284 + 1025: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1022 1023 1024 + Store 1021(r058) 1025 + 1027: 48(fvec4) Load 53(inF0) + 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1027 + Store 1026(r059) 1028 + 1030: 48(fvec4) Load 53(inF0) + 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1030 + Store 1029(r060) 1031 + 1032: 48(fvec4) Load 53(inF0) + 1033: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1032 + Store 54(inF1) 1033 + 1034: 48(fvec4) Load 53(inF0) + 1035: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1034 + Store 55(inF2) 1035 + 1037: 48(fvec4) Load 53(inF0) + 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1037 + Store 1036(r061) 1038 + 1040: 48(fvec4) Load 53(inF0) + 1041: 48(fvec4) Load 54(inF1) + 1042: 48(fvec4) Load 55(inF2) + 1043: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1040 1041 1042 + Store 1039(r062) 1043 + 1045: 48(fvec4) Load 53(inF0) + 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1045 + Store 1044(r063) 1046 + 1048: 48(fvec4) Load 53(inF0) + 1049: 48(fvec4) Load 54(inF1) + 1050: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1048 1049 + Store 1047(r064) 1050 + 1052: 48(fvec4) Load 53(inF0) + 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1052 + Store 1051(r065) 1053 + 1055: 48(fvec4) Load 53(inF0) + 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1055 + Store 1054(r066) 1056 + 1058: 48(fvec4) Load 53(inF0) + 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1058 + Store 1057(r067) 1059 + ReturnValue 1061 + FunctionEnd +66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 + 63(inF0): 61(ptr) FunctionParameter + 64(inF1): 61(ptr) FunctionParameter + 65(inF2): 61(ptr) FunctionParameter + 67: Label + 1064(r000): 132(ptr) Variable Function + 1067(r001): 61(ptr) Variable Function + 1072(r003): 132(ptr) Variable Function + 1075(r004): 61(ptr) Variable Function + 1078(r005): 61(ptr) Variable Function + 1081(r006): 61(ptr) Variable Function + 1085(r007): 61(ptr) Variable Function + 1096(r008): 61(ptr) Variable Function + 1101(r009): 61(ptr) Variable Function + 1104(r010): 61(ptr) Variable Function + 1107(r011): 61(ptr) Variable Function + 1110(r012): 61(ptr) Variable Function + 1113(r013): 61(ptr) Variable Function + 1116(r014): 61(ptr) Variable Function + 1119(r015): 61(ptr) Variable Function + 1122(r016): 61(ptr) Variable Function + 1125(r017): 61(ptr) Variable Function 1128(r018): 7(ptr) Variable Function - 1131(r019): 49(ptr) Variable Function - 1134(R020): 49(ptr) Variable Function - 1137(r021): 49(ptr) Variable Function - 1140(r022): 49(ptr) Variable Function - 1150(r023): 49(ptr) Variable Function - 1153(r024): 49(ptr) Variable Function - 1159(r025): 49(ptr) Variable Function - 1162(r026): 49(ptr) Variable Function - 1166(r026a): 49(ptr) Variable Function - 1171(r027): 49(ptr) Variable Function - 1174(r028): 49(ptr) Variable Function - 1178(r029): 49(ptr) Variable Function - 1181(r030): 49(ptr) Variable Function - 1185(r031): 49(ptr) Variable Function - 1189(r032): 49(ptr) Variable Function - 1193(r033): 49(ptr) Variable Function - 1196(r034): 49(ptr) Variable Function - 1199(r035): 49(ptr) Variable Function - 1202(r036): 49(ptr) Variable Function - 1207(r037): 49(ptr) Variable Function - 1210(r038): 49(ptr) Variable Function - 1217(r039): 49(ptr) Variable Function - 1220(r049): 49(ptr) Variable Function - 1225(r041): 49(ptr) Variable Function - 1228(r042): 49(ptr) Variable Function - 1232(r043): 49(ptr) Variable Function - 1235(r044): 49(ptr) Variable Function - 1240(r046): 49(ptr) Variable Function - 1065: 48 Load 51(inF0) - 1066: 121(bool) All 1065 + 1131(r019): 61(ptr) Variable Function + 1134(R020): 61(ptr) Variable Function + 1137(r021): 61(ptr) Variable Function + 1140(r022): 61(ptr) Variable Function + 1150(r023): 61(ptr) Variable Function + 1153(r024): 61(ptr) Variable Function + 1159(r025): 61(ptr) Variable Function + 1162(r026): 61(ptr) Variable Function + 1166(r026a): 61(ptr) Variable Function + 1171(r027): 61(ptr) Variable Function + 1174(r028): 61(ptr) Variable Function + 1178(r029): 61(ptr) Variable Function + 1181(r030): 61(ptr) Variable Function + 1185(r031): 61(ptr) Variable Function + 1189(r032): 61(ptr) Variable Function + 1193(r033): 61(ptr) Variable Function + 1196(r034): 61(ptr) Variable Function + 1199(r035): 61(ptr) Variable Function + 1202(r036): 61(ptr) Variable Function + 1207(r037): 61(ptr) Variable Function + 1210(r038): 61(ptr) Variable Function + 1217(r039): 61(ptr) Variable Function + 1220(r049): 61(ptr) Variable Function + 1225(r041): 61(ptr) Variable Function + 1228(r042): 61(ptr) Variable Function + 1232(r043): 61(ptr) Variable Function + 1235(r044): 61(ptr) Variable Function + 1240(r046): 61(ptr) Variable Function + 1065: 60 Load 63(inF0) + 1066: 131(bool) All 1065 Store 1064(r000) 1066 - 1068: 48 Load 51(inF0) - 1069: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 + 1068: 60 Load 63(inF0) + 1069: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 Store 1067(r001) 1069 - 1070: 48 Load 51(inF0) - 1071: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1070 - 1073: 48 Load 51(inF0) - 1074: 121(bool) Any 1073 + 1070: 60 Load 63(inF0) + 1071: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1070 + 1073: 60 Load 63(inF0) + 1074: 131(bool) Any 1073 Store 1072(r003) 1074 - 1076: 48 Load 51(inF0) - 1077: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1076 + 1076: 60 Load 63(inF0) + 1077: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1076 Store 1075(r004) 1077 - 1079: 48 Load 51(inF0) - 1080: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1079 + 1079: 60 Load 63(inF0) + 1080: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1079 Store 1078(r005) 1080 - 1082: 48 Load 51(inF0) - 1083: 48 Load 52(inF1) - 1084: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 + 1082: 60 Load 63(inF0) + 1083: 60 Load 64(inF1) + 1084: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 Store 1081(r006) 1084 - 1086: 48 Load 51(inF0) - 1087: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 + 1086: 60 Load 63(inF0) + 1087: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 Store 1085(r007) 1087 - 1088: 48 Load 51(inF0) + 1088: 60 Load 63(inF0) 1091: 1090 FOrdLessThan 1088 1089 - 1092: 121(bool) Any 1091 + 1092: 131(bool) Any 1091 SelectionMerge 1094 None BranchConditional 1092 1093 1094 1093: Label Kill 1094: Label - 1097: 48 Load 51(inF0) - 1098: 48 Load 52(inF1) - 1099: 48 Load 53(inF2) - 1100: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 + 1097: 60 Load 63(inF0) + 1098: 60 Load 64(inF1) + 1099: 60 Load 65(inF2) + 1100: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 Store 1096(r008) 1100 - 1102: 48 Load 51(inF0) - 1103: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1102 + 1102: 60 Load 63(inF0) + 1103: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1102 Store 1101(r009) 1103 - 1105: 48 Load 51(inF0) - 1106: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 + 1105: 60 Load 63(inF0) + 1106: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 Store 1104(r010) 1106 - 1108: 48 Load 51(inF0) - 1109: 48 DPdx 1108 + 1108: 60 Load 63(inF0) + 1109: 60 DPdx 1108 Store 1107(r011) 1109 - 1111: 48 Load 51(inF0) - 1112: 48 DPdxCoarse 1111 + 1111: 60 Load 63(inF0) + 1112: 60 DPdxCoarse 1111 Store 1110(r012) 1112 - 1114: 48 Load 51(inF0) - 1115: 48 DPdxFine 1114 + 1114: 60 Load 63(inF0) + 1115: 60 DPdxFine 1114 Store 1113(r013) 1115 - 1117: 48 Load 51(inF0) - 1118: 48 DPdy 1117 + 1117: 60 Load 63(inF0) + 1118: 60 DPdy 1117 Store 1116(r014) 1118 - 1120: 48 Load 51(inF0) - 1121: 48 DPdyCoarse 1120 + 1120: 60 Load 63(inF0) + 1121: 60 DPdyCoarse 1120 Store 1119(r015) 1121 - 1123: 48 Load 51(inF0) - 1124: 48 DPdyFine 1123 + 1123: 60 Load 63(inF0) + 1124: 60 DPdyFine 1123 Store 1122(r016) 1124 - 1126: 48 Load 51(inF0) - 1127: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 + 1126: 60 Load 63(inF0) + 1127: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 Store 1125(r017) 1127 - 1129: 48 Load 51(inF0) + 1129: 60 Load 63(inF0) 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129 Store 1128(r018) 1130 - 1132: 48 Load 51(inF0) - 1133: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1132 + 1132: 60 Load 63(inF0) + 1133: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1132 Store 1131(r019) 1133 - 1135: 48 Load 51(inF0) - 1136: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 + 1135: 60 Load 63(inF0) + 1136: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 Store 1134(R020) 1136 - 1138: 48 Load 51(inF0) - 1139: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1138 + 1138: 60 Load 63(inF0) + 1139: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1138 Store 1137(r021) 1139 - 1141: 48 Load 51(inF0) - 1142: 48 Load 52(inF1) + 1141: 60 Load 63(inF0) + 1142: 60 Load 64(inF1) 1143: 24(fvec2) CompositeExtract 1141 0 1144: 24(fvec2) CompositeExtract 1142 0 1145: 24(fvec2) FMod 1143 1144 1146: 24(fvec2) CompositeExtract 1141 1 1147: 24(fvec2) CompositeExtract 1142 1 1148: 24(fvec2) FMod 1146 1147 - 1149: 48 CompositeConstruct 1145 1148 + 1149: 60 CompositeConstruct 1145 1148 Store 1140(r022) 1149 - 1151: 48 Load 51(inF0) - 1152: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1151 + 1151: 60 Load 63(inF0) + 1152: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1151 Store 1150(r023) 1152 - 1154: 48 Load 51(inF0) + 1154: 60 Load 63(inF0) 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154 - 1157: 342(ivec2) CompositeExtract 1156 1 - Store 52(inF1) 1157 - 1158: 48 CompositeExtract 1156 0 + 1157: 352(ivec2) CompositeExtract 1156 1 + Store 64(inF1) 1157 + 1158: 60 CompositeExtract 1156 0 Store 1153(r024) 1158 - 1160: 48 Load 51(inF0) - 1161: 48 Fwidth 1160 + 1160: 60 Load 63(inF0) + 1161: 60 Fwidth 1160 Store 1159(r025) 1161 - 1163: 48 Load 51(inF0) - 1164: 48 Load 52(inF1) - 1165: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 + 1163: 60 Load 63(inF0) + 1164: 60 Load 64(inF1) + 1165: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 Store 1162(r026) 1165 - 1167: 48 Load 51(inF0) - 1168: 48 Load 52(inF1) - 1169: 48 Load 53(inF2) - 1170: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 + 1167: 60 Load 63(inF0) + 1168: 60 Load 64(inF1) + 1169: 60 Load 65(inF2) + 1170: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 Store 1166(r026a) 1170 - 1172: 48 Load 51(inF0) - 1173: 48 ExtInst 1(GLSL.std.450) 28(Log) 1172 + 1172: 60 Load 63(inF0) + 1173: 60 ExtInst 1(GLSL.std.450) 28(Log) 1172 Store 1171(r027) 1173 - 1175: 48 Load 51(inF0) - 1176: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1175 - 1177: 48 MatrixTimesScalar 1176 253 + 1175: 60 Load 63(inF0) + 1176: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1175 + 1177: 60 MatrixTimesScalar 1176 263 Store 1174(r028) 1177 - 1179: 48 Load 51(inF0) - 1180: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1179 + 1179: 60 Load 63(inF0) + 1180: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1179 Store 1178(r029) 1180 - 1182: 48 Load 51(inF0) - 1183: 48 Load 52(inF1) - 1184: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 + 1182: 60 Load 63(inF0) + 1183: 60 Load 64(inF1) + 1184: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 Store 1181(r030) 1184 - 1186: 48 Load 51(inF0) - 1187: 48 Load 52(inF1) - 1188: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 + 1186: 60 Load 63(inF0) + 1187: 60 Load 64(inF1) + 1188: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 Store 1185(r031) 1188 - 1190: 48 Load 51(inF0) - 1191: 48 Load 52(inF1) - 1192: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 + 1190: 60 Load 63(inF0) + 1191: 60 Load 64(inF1) + 1192: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 Store 1189(r032) 1192 - 1194: 48 Load 51(inF0) - 1195: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1194 + 1194: 60 Load 63(inF0) + 1195: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1194 Store 1193(r033) 1195 - 1197: 48 Load 51(inF0) - 1198: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 + 1197: 60 Load 63(inF0) + 1198: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 Store 1196(r034) 1198 - 1200: 48 Load 51(inF0) - 1201: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 + 1200: 60 Load 63(inF0) + 1201: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 Store 1199(r035) 1201 - 1203: 48 Load 51(inF0) - 1204: 24(fvec2) CompositeConstruct 165 165 - 1205: 24(fvec2) CompositeConstruct 274 274 - 1206: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 + 1203: 60 Load 63(inF0) + 1204: 24(fvec2) CompositeConstruct 175 175 + 1205: 24(fvec2) CompositeConstruct 284 284 + 1206: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 Store 1202(r036) 1206 - 1208: 48 Load 51(inF0) - 1209: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1208 + 1208: 60 Load 63(inF0) + 1209: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1208 Store 1207(r037) 1209 - 1211: 48 Load 51(inF0) - 1212: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1211 + 1211: 60 Load 63(inF0) + 1212: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1211 Store 1210(r038) 1212 - 1213: 48 Load 51(inF0) - 1214: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1213 - Store 52(inF1) 1214 - 1215: 48 Load 51(inF0) - 1216: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1215 - Store 53(inF2) 1216 - 1218: 48 Load 51(inF0) - 1219: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 + 1213: 60 Load 63(inF0) + 1214: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1213 + Store 64(inF1) 1214 + 1215: 60 Load 63(inF0) + 1216: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1215 + Store 65(inF2) 1216 + 1218: 60 Load 63(inF0) + 1219: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 Store 1217(r039) 1219 - 1221: 48 Load 51(inF0) - 1222: 48 Load 52(inF1) - 1223: 48 Load 53(inF2) - 1224: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 + 1221: 60 Load 63(inF0) + 1222: 60 Load 64(inF1) + 1223: 60 Load 65(inF2) + 1224: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 Store 1220(r049) 1224 - 1226: 48 Load 51(inF0) - 1227: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 + 1226: 60 Load 63(inF0) + 1227: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 Store 1225(r041) 1227 - 1229: 48 Load 51(inF0) - 1230: 48 Load 52(inF1) - 1231: 48 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 + 1229: 60 Load 63(inF0) + 1230: 60 Load 64(inF1) + 1231: 60 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 Store 1228(r042) 1231 - 1233: 48 Load 51(inF0) - 1234: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1233 + 1233: 60 Load 63(inF0) + 1234: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1233 Store 1232(r043) 1234 - 1236: 48 Load 51(inF0) - 1237: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 + 1236: 60 Load 63(inF0) + 1237: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 Store 1235(r044) 1237 - 1238: 48 Load 51(inF0) - 1239: 48 Transpose 1238 - 1241: 48 Load 51(inF0) - 1242: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 + 1238: 60 Load 63(inF0) + 1239: 60 Transpose 1238 + 1241: 60 Load 63(inF0) + 1242: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 Store 1240(r046) 1242 ReturnValue 1244 FunctionEnd -62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58 - 59(inF0): 57(ptr) FunctionParameter - 60(inF1): 57(ptr) FunctionParameter - 61(inF2): 57(ptr) FunctionParameter - 63: Label - 1247(r000): 122(ptr) Variable Function - 1250(r001): 57(ptr) Variable Function - 1255(r003): 122(ptr) Variable Function - 1258(r004): 57(ptr) Variable Function - 1261(r005): 57(ptr) Variable Function - 1264(r006): 57(ptr) Variable Function - 1268(r007): 57(ptr) Variable Function - 1279(r008): 57(ptr) Variable Function - 1284(r009): 57(ptr) Variable Function - 1287(r010): 57(ptr) Variable Function - 1290(r011): 57(ptr) Variable Function - 1293(r012): 57(ptr) Variable Function - 1296(r013): 57(ptr) Variable Function - 1299(r014): 57(ptr) Variable Function - 1302(r015): 57(ptr) Variable Function - 1305(r016): 57(ptr) Variable Function - 1308(r017): 57(ptr) Variable Function +74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 + 71(inF0): 69(ptr) FunctionParameter + 72(inF1): 69(ptr) FunctionParameter + 73(inF2): 69(ptr) FunctionParameter + 75: Label + 1247(r000): 132(ptr) Variable Function + 1250(r001): 69(ptr) Variable Function + 1255(r003): 132(ptr) Variable Function + 1258(r004): 69(ptr) Variable Function + 1261(r005): 69(ptr) Variable Function + 1264(r006): 69(ptr) Variable Function + 1268(r007): 69(ptr) Variable Function + 1279(r008): 69(ptr) Variable Function + 1284(r009): 69(ptr) Variable Function + 1287(r010): 69(ptr) Variable Function + 1290(r011): 69(ptr) Variable Function + 1293(r012): 69(ptr) Variable Function + 1296(r013): 69(ptr) Variable Function + 1299(r014): 69(ptr) Variable Function + 1302(r015): 69(ptr) Variable Function + 1305(r016): 69(ptr) Variable Function + 1308(r017): 69(ptr) Variable Function 1311(r018): 7(ptr) Variable Function - 1314(r019): 57(ptr) Variable Function - 1317(R020): 57(ptr) Variable Function - 1320(r021): 57(ptr) Variable Function - 1323(r022): 57(ptr) Variable Function - 1336(r023): 57(ptr) Variable Function - 1339(r024): 57(ptr) Variable Function - 1345(r025): 57(ptr) Variable Function - 1348(r026): 57(ptr) Variable Function - 1352(r026a): 57(ptr) Variable Function - 1357(r027): 57(ptr) Variable Function - 1360(r028): 57(ptr) Variable Function - 1364(r029): 57(ptr) Variable Function - 1367(r030): 57(ptr) Variable Function - 1371(r031): 57(ptr) Variable Function - 1375(r032): 57(ptr) Variable Function - 1379(r033): 57(ptr) Variable Function - 1382(r034): 57(ptr) Variable Function - 1385(r035): 57(ptr) Variable Function - 1388(r036): 57(ptr) Variable Function - 1393(r037): 57(ptr) Variable Function - 1396(r038): 57(ptr) Variable Function - 1403(r039): 57(ptr) Variable Function - 1406(r049): 57(ptr) Variable Function - 1411(r041): 57(ptr) Variable Function - 1414(r042): 57(ptr) Variable Function - 1418(r043): 57(ptr) Variable Function - 1421(r044): 57(ptr) Variable Function - 1426(r046): 57(ptr) Variable Function - 1248: 56 Load 59(inF0) - 1249: 121(bool) All 1248 + 1314(r019): 69(ptr) Variable Function + 1317(R020): 69(ptr) Variable Function + 1320(r021): 69(ptr) Variable Function + 1323(r022): 69(ptr) Variable Function + 1336(r023): 69(ptr) Variable Function + 1339(r024): 69(ptr) Variable Function + 1345(r025): 69(ptr) Variable Function + 1348(r026): 69(ptr) Variable Function + 1352(r026a): 69(ptr) Variable Function + 1357(r027): 69(ptr) Variable Function + 1360(r028): 69(ptr) Variable Function + 1364(r029): 69(ptr) Variable Function + 1367(r030): 69(ptr) Variable Function + 1371(r031): 69(ptr) Variable Function + 1375(r032): 69(ptr) Variable Function + 1379(r033): 69(ptr) Variable Function + 1382(r034): 69(ptr) Variable Function + 1385(r035): 69(ptr) Variable Function + 1388(r036): 69(ptr) Variable Function + 1393(r037): 69(ptr) Variable Function + 1396(r038): 69(ptr) Variable Function + 1403(r039): 69(ptr) Variable Function + 1406(r049): 69(ptr) Variable Function + 1411(r041): 69(ptr) Variable Function + 1414(r042): 69(ptr) Variable Function + 1418(r043): 69(ptr) Variable Function + 1421(r044): 69(ptr) Variable Function + 1426(r046): 69(ptr) Variable Function + 1248: 68 Load 71(inF0) + 1249: 131(bool) All 1248 Store 1247(r000) 1249 - 1251: 56 Load 59(inF0) - 1252: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 + 1251: 68 Load 71(inF0) + 1252: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 Store 1250(r001) 1252 - 1253: 56 Load 59(inF0) - 1254: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1253 - 1256: 56 Load 59(inF0) - 1257: 121(bool) Any 1256 + 1253: 68 Load 71(inF0) + 1254: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1253 + 1256: 68 Load 71(inF0) + 1257: 131(bool) Any 1256 Store 1255(r003) 1257 - 1259: 56 Load 59(inF0) - 1260: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1259 + 1259: 68 Load 71(inF0) + 1260: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1259 Store 1258(r004) 1260 - 1262: 56 Load 59(inF0) - 1263: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1262 + 1262: 68 Load 71(inF0) + 1263: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1262 Store 1261(r005) 1263 - 1265: 56 Load 59(inF0) - 1266: 56 Load 60(inF1) - 1267: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 + 1265: 68 Load 71(inF0) + 1266: 68 Load 72(inF1) + 1267: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 Store 1264(r006) 1267 - 1269: 56 Load 59(inF0) - 1270: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 + 1269: 68 Load 71(inF0) + 1270: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 Store 1268(r007) 1270 - 1271: 56 Load 59(inF0) + 1271: 68 Load 71(inF0) 1274: 1273 FOrdLessThan 1271 1272 - 1275: 121(bool) Any 1274 + 1275: 131(bool) Any 1274 SelectionMerge 1277 None BranchConditional 1275 1276 1277 1276: Label Kill 1277: Label - 1280: 56 Load 59(inF0) - 1281: 56 Load 60(inF1) - 1282: 56 Load 61(inF2) - 1283: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 + 1280: 68 Load 71(inF0) + 1281: 68 Load 72(inF1) + 1282: 68 Load 73(inF2) + 1283: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 Store 1279(r008) 1283 - 1285: 56 Load 59(inF0) - 1286: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1285 + 1285: 68 Load 71(inF0) + 1286: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1285 Store 1284(r009) 1286 - 1288: 56 Load 59(inF0) - 1289: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 + 1288: 68 Load 71(inF0) + 1289: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 Store 1287(r010) 1289 - 1291: 56 Load 59(inF0) - 1292: 56 DPdx 1291 + 1291: 68 Load 71(inF0) + 1292: 68 DPdx 1291 Store 1290(r011) 1292 - 1294: 56 Load 59(inF0) - 1295: 56 DPdxCoarse 1294 + 1294: 68 Load 71(inF0) + 1295: 68 DPdxCoarse 1294 Store 1293(r012) 1295 - 1297: 56 Load 59(inF0) - 1298: 56 DPdxFine 1297 + 1297: 68 Load 71(inF0) + 1298: 68 DPdxFine 1297 Store 1296(r013) 1298 - 1300: 56 Load 59(inF0) - 1301: 56 DPdy 1300 + 1300: 68 Load 71(inF0) + 1301: 68 DPdy 1300 Store 1299(r014) 1301 - 1303: 56 Load 59(inF0) - 1304: 56 DPdyCoarse 1303 + 1303: 68 Load 71(inF0) + 1304: 68 DPdyCoarse 1303 Store 1302(r015) 1304 - 1306: 56 Load 59(inF0) - 1307: 56 DPdyFine 1306 + 1306: 68 Load 71(inF0) + 1307: 68 DPdyFine 1306 Store 1305(r016) 1307 - 1309: 56 Load 59(inF0) - 1310: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 + 1309: 68 Load 71(inF0) + 1310: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 Store 1308(r017) 1310 - 1312: 56 Load 59(inF0) + 1312: 68 Load 71(inF0) 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312 Store 1311(r018) 1313 - 1315: 56 Load 59(inF0) - 1316: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1315 + 1315: 68 Load 71(inF0) + 1316: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1315 Store 1314(r019) 1316 - 1318: 56 Load 59(inF0) - 1319: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 + 1318: 68 Load 71(inF0) + 1319: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 Store 1317(R020) 1319 - 1321: 56 Load 59(inF0) - 1322: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1321 + 1321: 68 Load 71(inF0) + 1322: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1321 Store 1320(r021) 1322 - 1324: 56 Load 59(inF0) - 1325: 56 Load 60(inF1) + 1324: 68 Load 71(inF0) + 1325: 68 Load 72(inF1) 1326: 36(fvec3) CompositeExtract 1324 0 1327: 36(fvec3) CompositeExtract 1325 0 1328: 36(fvec3) FMod 1326 1327 @@ -7777,521 +7819,521 @@ gl_FragCoord origin is upper left 1332: 36(fvec3) CompositeExtract 1324 2 1333: 36(fvec3) CompositeExtract 1325 2 1334: 36(fvec3) FMod 1332 1333 - 1335: 56 CompositeConstruct 1328 1331 1334 + 1335: 68 CompositeConstruct 1328 1331 1334 Store 1323(r022) 1335 - 1337: 56 Load 59(inF0) - 1338: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1337 + 1337: 68 Load 71(inF0) + 1338: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1337 Store 1336(r023) 1338 - 1340: 56 Load 59(inF0) + 1340: 68 Load 71(inF0) 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340 - 1343: 578(ivec3) CompositeExtract 1342 1 - Store 60(inF1) 1343 - 1344: 56 CompositeExtract 1342 0 + 1343: 588(ivec3) CompositeExtract 1342 1 + Store 72(inF1) 1343 + 1344: 68 CompositeExtract 1342 0 Store 1339(r024) 1344 - 1346: 56 Load 59(inF0) - 1347: 56 Fwidth 1346 + 1346: 68 Load 71(inF0) + 1347: 68 Fwidth 1346 Store 1345(r025) 1347 - 1349: 56 Load 59(inF0) - 1350: 56 Load 60(inF1) - 1351: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 + 1349: 68 Load 71(inF0) + 1350: 68 Load 72(inF1) + 1351: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 Store 1348(r026) 1351 - 1353: 56 Load 59(inF0) - 1354: 56 Load 60(inF1) - 1355: 56 Load 61(inF2) - 1356: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 + 1353: 68 Load 71(inF0) + 1354: 68 Load 72(inF1) + 1355: 68 Load 73(inF2) + 1356: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 Store 1352(r026a) 1356 - 1358: 56 Load 59(inF0) - 1359: 56 ExtInst 1(GLSL.std.450) 28(Log) 1358 + 1358: 68 Load 71(inF0) + 1359: 68 ExtInst 1(GLSL.std.450) 28(Log) 1358 Store 1357(r027) 1359 - 1361: 56 Load 59(inF0) - 1362: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1361 - 1363: 56 MatrixTimesScalar 1362 253 + 1361: 68 Load 71(inF0) + 1362: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1361 + 1363: 68 MatrixTimesScalar 1362 263 Store 1360(r028) 1363 - 1365: 56 Load 59(inF0) - 1366: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1365 + 1365: 68 Load 71(inF0) + 1366: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1365 Store 1364(r029) 1366 - 1368: 56 Load 59(inF0) - 1369: 56 Load 60(inF1) - 1370: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 + 1368: 68 Load 71(inF0) + 1369: 68 Load 72(inF1) + 1370: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 Store 1367(r030) 1370 - 1372: 56 Load 59(inF0) - 1373: 56 Load 60(inF1) - 1374: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 + 1372: 68 Load 71(inF0) + 1373: 68 Load 72(inF1) + 1374: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 Store 1371(r031) 1374 - 1376: 56 Load 59(inF0) - 1377: 56 Load 60(inF1) - 1378: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 + 1376: 68 Load 71(inF0) + 1377: 68 Load 72(inF1) + 1378: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 Store 1375(r032) 1378 - 1380: 56 Load 59(inF0) - 1381: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1380 + 1380: 68 Load 71(inF0) + 1381: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1380 Store 1379(r033) 1381 - 1383: 56 Load 59(inF0) - 1384: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 + 1383: 68 Load 71(inF0) + 1384: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 Store 1382(r034) 1384 - 1386: 56 Load 59(inF0) - 1387: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 + 1386: 68 Load 71(inF0) + 1387: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 Store 1385(r035) 1387 - 1389: 56 Load 59(inF0) - 1390: 36(fvec3) CompositeConstruct 165 165 165 - 1391: 36(fvec3) CompositeConstruct 274 274 274 - 1392: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 + 1389: 68 Load 71(inF0) + 1390: 36(fvec3) CompositeConstruct 175 175 175 + 1391: 36(fvec3) CompositeConstruct 284 284 284 + 1392: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 Store 1388(r036) 1392 - 1394: 56 Load 59(inF0) - 1395: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1394 + 1394: 68 Load 71(inF0) + 1395: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1394 Store 1393(r037) 1395 - 1397: 56 Load 59(inF0) - 1398: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1397 + 1397: 68 Load 71(inF0) + 1398: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1397 Store 1396(r038) 1398 - 1399: 56 Load 59(inF0) - 1400: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1399 - Store 60(inF1) 1400 - 1401: 56 Load 59(inF0) - 1402: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1401 - Store 61(inF2) 1402 - 1404: 56 Load 59(inF0) - 1405: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 + 1399: 68 Load 71(inF0) + 1400: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1399 + Store 72(inF1) 1400 + 1401: 68 Load 71(inF0) + 1402: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1401 + Store 73(inF2) 1402 + 1404: 68 Load 71(inF0) + 1405: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 Store 1403(r039) 1405 - 1407: 56 Load 59(inF0) - 1408: 56 Load 60(inF1) - 1409: 56 Load 61(inF2) - 1410: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 + 1407: 68 Load 71(inF0) + 1408: 68 Load 72(inF1) + 1409: 68 Load 73(inF2) + 1410: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 Store 1406(r049) 1410 - 1412: 56 Load 59(inF0) - 1413: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 + 1412: 68 Load 71(inF0) + 1413: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 Store 1411(r041) 1413 - 1415: 56 Load 59(inF0) - 1416: 56 Load 60(inF1) - 1417: 56 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 + 1415: 68 Load 71(inF0) + 1416: 68 Load 72(inF1) + 1417: 68 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 Store 1414(r042) 1417 - 1419: 56 Load 59(inF0) - 1420: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1419 + 1419: 68 Load 71(inF0) + 1420: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1419 Store 1418(r043) 1420 - 1422: 56 Load 59(inF0) - 1423: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 + 1422: 68 Load 71(inF0) + 1423: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 Store 1421(r044) 1423 - 1424: 56 Load 59(inF0) - 1425: 56 Transpose 1424 - 1427: 56 Load 59(inF0) - 1428: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 + 1424: 68 Load 71(inF0) + 1425: 68 Transpose 1424 + 1427: 68 Load 71(inF0) + 1428: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 Store 1426(r046) 1428 ReturnValue 1430 FunctionEnd -71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67 - 68(inF0): 66(ptr) FunctionParameter - 69(inF1): 66(ptr) FunctionParameter - 70(inF2): 66(ptr) FunctionParameter - 72: Label - 1433(r000): 122(ptr) Variable Function - 1436(r001): 66(ptr) Variable Function - 1441(r003): 122(ptr) Variable Function - 1444(r004): 66(ptr) Variable Function - 1447(r005): 66(ptr) Variable Function - 1450(r006): 66(ptr) Variable Function - 1454(r007): 66(ptr) Variable Function - 1465(r008): 66(ptr) Variable Function - 1470(r009): 66(ptr) Variable Function - 1473(r010): 66(ptr) Variable Function - 1476(r011): 66(ptr) Variable Function - 1479(r012): 66(ptr) Variable Function - 1482(r013): 66(ptr) Variable Function - 1485(r014): 66(ptr) Variable Function - 1488(r015): 66(ptr) Variable Function - 1491(r016): 66(ptr) Variable Function - 1494(r017): 66(ptr) Variable Function +82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 + 79(inF0): 77(ptr) FunctionParameter + 80(inF1): 77(ptr) FunctionParameter + 81(inF2): 77(ptr) FunctionParameter + 83: Label + 1433(r000): 132(ptr) Variable Function + 1436(r001): 77(ptr) Variable Function + 1441(r003): 132(ptr) Variable Function + 1444(r004): 77(ptr) Variable Function + 1447(r005): 77(ptr) Variable Function + 1450(r006): 77(ptr) Variable Function + 1454(r007): 77(ptr) Variable Function + 1465(r008): 77(ptr) Variable Function + 1470(r009): 77(ptr) Variable Function + 1473(r010): 77(ptr) Variable Function + 1476(r011): 77(ptr) Variable Function + 1479(r012): 77(ptr) Variable Function + 1482(r013): 77(ptr) Variable Function + 1485(r014): 77(ptr) Variable Function + 1488(r015): 77(ptr) Variable Function + 1491(r016): 77(ptr) Variable Function + 1494(r017): 77(ptr) Variable Function 1497(r018): 7(ptr) Variable Function - 1500(r019): 66(ptr) Variable Function - 1503(R020): 66(ptr) Variable Function - 1506(r021): 66(ptr) Variable Function - 1509(r022): 66(ptr) Variable Function - 1525(r023): 66(ptr) Variable Function - 1528(r024): 66(ptr) Variable Function - 1534(r025): 66(ptr) Variable Function - 1537(r026): 66(ptr) Variable Function - 1541(r026a): 66(ptr) Variable Function - 1546(r027): 66(ptr) Variable Function - 1549(r028): 66(ptr) Variable Function - 1553(r029): 66(ptr) Variable Function - 1556(r030): 66(ptr) Variable Function - 1560(r031): 66(ptr) Variable Function - 1564(r032): 66(ptr) Variable Function - 1568(r033): 66(ptr) Variable Function - 1571(r034): 66(ptr) Variable Function - 1574(r035): 66(ptr) Variable Function - 1577(r036): 66(ptr) Variable Function - 1582(r037): 66(ptr) Variable Function - 1585(r038): 66(ptr) Variable Function - 1592(r039): 66(ptr) Variable Function - 1595(r049): 66(ptr) Variable Function - 1600(r041): 66(ptr) Variable Function - 1603(r042): 66(ptr) Variable Function - 1607(r043): 66(ptr) Variable Function - 1610(r044): 66(ptr) Variable Function - 1615(r046): 66(ptr) Variable Function - 1434: 65 Load 68(inF0) - 1435: 121(bool) All 1434 + 1500(r019): 77(ptr) Variable Function + 1503(R020): 77(ptr) Variable Function + 1506(r021): 77(ptr) Variable Function + 1509(r022): 77(ptr) Variable Function + 1525(r023): 77(ptr) Variable Function + 1528(r024): 77(ptr) Variable Function + 1534(r025): 77(ptr) Variable Function + 1537(r026): 77(ptr) Variable Function + 1541(r026a): 77(ptr) Variable Function + 1546(r027): 77(ptr) Variable Function + 1549(r028): 77(ptr) Variable Function + 1553(r029): 77(ptr) Variable Function + 1556(r030): 77(ptr) Variable Function + 1560(r031): 77(ptr) Variable Function + 1564(r032): 77(ptr) Variable Function + 1568(r033): 77(ptr) Variable Function + 1571(r034): 77(ptr) Variable Function + 1574(r035): 77(ptr) Variable Function + 1577(r036): 77(ptr) Variable Function + 1582(r037): 77(ptr) Variable Function + 1585(r038): 77(ptr) Variable Function + 1592(r039): 77(ptr) Variable Function + 1595(r049): 77(ptr) Variable Function + 1600(r041): 77(ptr) Variable Function + 1603(r042): 77(ptr) Variable Function + 1607(r043): 77(ptr) Variable Function + 1610(r044): 77(ptr) Variable Function + 1615(r046): 77(ptr) Variable Function + 1434: 76 Load 79(inF0) + 1435: 131(bool) All 1434 Store 1433(r000) 1435 - 1437: 65 Load 68(inF0) - 1438: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 + 1437: 76 Load 79(inF0) + 1438: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 Store 1436(r001) 1438 - 1439: 65 Load 68(inF0) - 1440: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1439 - 1442: 65 Load 68(inF0) - 1443: 121(bool) Any 1442 + 1439: 76 Load 79(inF0) + 1440: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1439 + 1442: 76 Load 79(inF0) + 1443: 131(bool) Any 1442 Store 1441(r003) 1443 - 1445: 65 Load 68(inF0) - 1446: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1445 + 1445: 76 Load 79(inF0) + 1446: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1445 Store 1444(r004) 1446 - 1448: 65 Load 68(inF0) - 1449: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1448 + 1448: 76 Load 79(inF0) + 1449: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1448 Store 1447(r005) 1449 - 1451: 65 Load 68(inF0) - 1452: 65 Load 69(inF1) - 1453: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 + 1451: 76 Load 79(inF0) + 1452: 76 Load 80(inF1) + 1453: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 Store 1450(r006) 1453 - 1455: 65 Load 68(inF0) - 1456: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 + 1455: 76 Load 79(inF0) + 1456: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 Store 1454(r007) 1456 - 1457: 65 Load 68(inF0) + 1457: 76 Load 79(inF0) 1460: 1459 FOrdLessThan 1457 1458 - 1461: 121(bool) Any 1460 + 1461: 131(bool) Any 1460 SelectionMerge 1463 None BranchConditional 1461 1462 1463 1462: Label Kill 1463: Label - 1466: 65 Load 68(inF0) - 1467: 65 Load 69(inF1) - 1468: 65 Load 70(inF2) - 1469: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 + 1466: 76 Load 79(inF0) + 1467: 76 Load 80(inF1) + 1468: 76 Load 81(inF2) + 1469: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 Store 1465(r008) 1469 - 1471: 65 Load 68(inF0) - 1472: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1471 + 1471: 76 Load 79(inF0) + 1472: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1471 Store 1470(r009) 1472 - 1474: 65 Load 68(inF0) - 1475: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 + 1474: 76 Load 79(inF0) + 1475: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 Store 1473(r010) 1475 - 1477: 65 Load 68(inF0) - 1478: 65 DPdx 1477 + 1477: 76 Load 79(inF0) + 1478: 76 DPdx 1477 Store 1476(r011) 1478 - 1480: 65 Load 68(inF0) - 1481: 65 DPdxCoarse 1480 + 1480: 76 Load 79(inF0) + 1481: 76 DPdxCoarse 1480 Store 1479(r012) 1481 - 1483: 65 Load 68(inF0) - 1484: 65 DPdxFine 1483 + 1483: 76 Load 79(inF0) + 1484: 76 DPdxFine 1483 Store 1482(r013) 1484 - 1486: 65 Load 68(inF0) - 1487: 65 DPdy 1486 + 1486: 76 Load 79(inF0) + 1487: 76 DPdy 1486 Store 1485(r014) 1487 - 1489: 65 Load 68(inF0) - 1490: 65 DPdyCoarse 1489 + 1489: 76 Load 79(inF0) + 1490: 76 DPdyCoarse 1489 Store 1488(r015) 1490 - 1492: 65 Load 68(inF0) - 1493: 65 DPdyFine 1492 + 1492: 76 Load 79(inF0) + 1493: 76 DPdyFine 1492 Store 1491(r016) 1493 - 1495: 65 Load 68(inF0) - 1496: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 + 1495: 76 Load 79(inF0) + 1496: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 Store 1494(r017) 1496 - 1498: 65 Load 68(inF0) + 1498: 76 Load 79(inF0) 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498 Store 1497(r018) 1499 - 1501: 65 Load 68(inF0) - 1502: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1501 + 1501: 76 Load 79(inF0) + 1502: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1501 Store 1500(r019) 1502 - 1504: 65 Load 68(inF0) - 1505: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 + 1504: 76 Load 79(inF0) + 1505: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 Store 1503(R020) 1505 - 1507: 65 Load 68(inF0) - 1508: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1507 + 1507: 76 Load 79(inF0) + 1508: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1507 Store 1506(r021) 1508 - 1510: 65 Load 68(inF0) - 1511: 65 Load 69(inF1) - 1512: 64(fvec4) CompositeExtract 1510 0 - 1513: 64(fvec4) CompositeExtract 1511 0 - 1514: 64(fvec4) FMod 1512 1513 - 1515: 64(fvec4) CompositeExtract 1510 1 - 1516: 64(fvec4) CompositeExtract 1511 1 - 1517: 64(fvec4) FMod 1515 1516 - 1518: 64(fvec4) CompositeExtract 1510 2 - 1519: 64(fvec4) CompositeExtract 1511 2 - 1520: 64(fvec4) FMod 1518 1519 - 1521: 64(fvec4) CompositeExtract 1510 3 - 1522: 64(fvec4) CompositeExtract 1511 3 - 1523: 64(fvec4) FMod 1521 1522 - 1524: 65 CompositeConstruct 1514 1517 1520 1523 + 1510: 76 Load 79(inF0) + 1511: 76 Load 80(inF1) + 1512: 48(fvec4) CompositeExtract 1510 0 + 1513: 48(fvec4) CompositeExtract 1511 0 + 1514: 48(fvec4) FMod 1512 1513 + 1515: 48(fvec4) CompositeExtract 1510 1 + 1516: 48(fvec4) CompositeExtract 1511 1 + 1517: 48(fvec4) FMod 1515 1516 + 1518: 48(fvec4) CompositeExtract 1510 2 + 1519: 48(fvec4) CompositeExtract 1511 2 + 1520: 48(fvec4) FMod 1518 1519 + 1521: 48(fvec4) CompositeExtract 1510 3 + 1522: 48(fvec4) CompositeExtract 1511 3 + 1523: 48(fvec4) FMod 1521 1522 + 1524: 76 CompositeConstruct 1514 1517 1520 1523 Store 1509(r022) 1524 - 1526: 65 Load 68(inF0) - 1527: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1526 + 1526: 76 Load 79(inF0) + 1527: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1526 Store 1525(r023) 1527 - 1529: 65 Load 68(inF0) + 1529: 76 Load 79(inF0) 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529 - 1532: 825(ivec4) CompositeExtract 1531 1 - Store 69(inF1) 1532 - 1533: 65 CompositeExtract 1531 0 + 1532: 833(ivec4) CompositeExtract 1531 1 + Store 80(inF1) 1532 + 1533: 76 CompositeExtract 1531 0 Store 1528(r024) 1533 - 1535: 65 Load 68(inF0) - 1536: 65 Fwidth 1535 + 1535: 76 Load 79(inF0) + 1536: 76 Fwidth 1535 Store 1534(r025) 1536 - 1538: 65 Load 68(inF0) - 1539: 65 Load 69(inF1) - 1540: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 + 1538: 76 Load 79(inF0) + 1539: 76 Load 80(inF1) + 1540: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 Store 1537(r026) 1540 - 1542: 65 Load 68(inF0) - 1543: 65 Load 69(inF1) - 1544: 65 Load 70(inF2) - 1545: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 + 1542: 76 Load 79(inF0) + 1543: 76 Load 80(inF1) + 1544: 76 Load 81(inF2) + 1545: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 Store 1541(r026a) 1545 - 1547: 65 Load 68(inF0) - 1548: 65 ExtInst 1(GLSL.std.450) 28(Log) 1547 + 1547: 76 Load 79(inF0) + 1548: 76 ExtInst 1(GLSL.std.450) 28(Log) 1547 Store 1546(r027) 1548 - 1550: 65 Load 68(inF0) - 1551: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1550 - 1552: 65 MatrixTimesScalar 1551 253 + 1550: 76 Load 79(inF0) + 1551: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1550 + 1552: 76 MatrixTimesScalar 1551 263 Store 1549(r028) 1552 - 1554: 65 Load 68(inF0) - 1555: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1554 + 1554: 76 Load 79(inF0) + 1555: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1554 Store 1553(r029) 1555 - 1557: 65 Load 68(inF0) - 1558: 65 Load 69(inF1) - 1559: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 + 1557: 76 Load 79(inF0) + 1558: 76 Load 80(inF1) + 1559: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 Store 1556(r030) 1559 - 1561: 65 Load 68(inF0) - 1562: 65 Load 69(inF1) - 1563: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 + 1561: 76 Load 79(inF0) + 1562: 76 Load 80(inF1) + 1563: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 Store 1560(r031) 1563 - 1565: 65 Load 68(inF0) - 1566: 65 Load 69(inF1) - 1567: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 + 1565: 76 Load 79(inF0) + 1566: 76 Load 80(inF1) + 1567: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 Store 1564(r032) 1567 - 1569: 65 Load 68(inF0) - 1570: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1569 + 1569: 76 Load 79(inF0) + 1570: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1569 Store 1568(r033) 1570 - 1572: 65 Load 68(inF0) - 1573: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 + 1572: 76 Load 79(inF0) + 1573: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 Store 1571(r034) 1573 - 1575: 65 Load 68(inF0) - 1576: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 + 1575: 76 Load 79(inF0) + 1576: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 Store 1574(r035) 1576 - 1578: 65 Load 68(inF0) - 1579: 64(fvec4) CompositeConstruct 165 165 165 165 - 1580: 64(fvec4) CompositeConstruct 274 274 274 274 - 1581: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 + 1578: 76 Load 79(inF0) + 1579: 48(fvec4) CompositeConstruct 175 175 175 175 + 1580: 48(fvec4) CompositeConstruct 284 284 284 284 + 1581: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 Store 1577(r036) 1581 - 1583: 65 Load 68(inF0) - 1584: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1583 + 1583: 76 Load 79(inF0) + 1584: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1583 Store 1582(r037) 1584 - 1586: 65 Load 68(inF0) - 1587: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1586 + 1586: 76 Load 79(inF0) + 1587: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1586 Store 1585(r038) 1587 - 1588: 65 Load 68(inF0) - 1589: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1588 - Store 69(inF1) 1589 - 1590: 65 Load 68(inF0) - 1591: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1590 - Store 70(inF2) 1591 - 1593: 65 Load 68(inF0) - 1594: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 + 1588: 76 Load 79(inF0) + 1589: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1588 + Store 80(inF1) 1589 + 1590: 76 Load 79(inF0) + 1591: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1590 + Store 81(inF2) 1591 + 1593: 76 Load 79(inF0) + 1594: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 Store 1592(r039) 1594 - 1596: 65 Load 68(inF0) - 1597: 65 Load 69(inF1) - 1598: 65 Load 70(inF2) - 1599: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 + 1596: 76 Load 79(inF0) + 1597: 76 Load 80(inF1) + 1598: 76 Load 81(inF2) + 1599: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 Store 1595(r049) 1599 - 1601: 65 Load 68(inF0) - 1602: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 + 1601: 76 Load 79(inF0) + 1602: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 Store 1600(r041) 1602 - 1604: 65 Load 68(inF0) - 1605: 65 Load 69(inF1) - 1606: 65 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 + 1604: 76 Load 79(inF0) + 1605: 76 Load 80(inF1) + 1606: 76 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 Store 1603(r042) 1606 - 1608: 65 Load 68(inF0) - 1609: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1608 + 1608: 76 Load 79(inF0) + 1609: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1608 Store 1607(r043) 1609 - 1611: 65 Load 68(inF0) - 1612: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 + 1611: 76 Load 79(inF0) + 1612: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 Store 1610(r044) 1612 - 1613: 65 Load 68(inF0) - 1614: 65 Transpose 1613 - 1616: 65 Load 68(inF0) - 1617: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 + 1613: 76 Load 79(inF0) + 1614: 76 Transpose 1613 + 1616: 76 Load 79(inF0) + 1617: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 Store 1615(r046) 1617 ReturnValue 1619 FunctionEnd -80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73 - 74(inF0): 7(ptr) FunctionParameter - 75(inF1): 7(ptr) FunctionParameter - 76(inFV0): 25(ptr) FunctionParameter - 77(inFV1): 25(ptr) FunctionParameter - 78(inFM0): 49(ptr) FunctionParameter - 79(inFM1): 49(ptr) FunctionParameter - 81: Label +91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 + 85(inF0): 7(ptr) FunctionParameter + 86(inF1): 7(ptr) FunctionParameter + 87(inFV0): 25(ptr) FunctionParameter + 88(inFV1): 25(ptr) FunctionParameter + 89(inFM0): 61(ptr) FunctionParameter + 90(inFM1): 61(ptr) FunctionParameter + 92: Label 1622(r0): 7(ptr) Variable Function 1626(r1): 25(ptr) Variable Function 1630(r2): 25(ptr) Variable Function 1634(r3): 7(ptr) Variable Function 1638(r4): 25(ptr) Variable Function 1642(r5): 25(ptr) Variable Function - 1646(r6): 49(ptr) Variable Function - 1650(r7): 49(ptr) Variable Function - 1654(r8): 49(ptr) Variable Function - 1623: 6(float) Load 74(inF0) - 1624: 6(float) Load 75(inF1) + 1646(r6): 61(ptr) Variable Function + 1650(r7): 61(ptr) Variable Function + 1654(r8): 61(ptr) Variable Function + 1623: 6(float) Load 86(inF1) + 1624: 6(float) Load 85(inF0) 1625: 6(float) FMul 1623 1624 Store 1622(r0) 1625 - 1627: 24(fvec2) Load 76(inFV0) - 1628: 6(float) Load 74(inF0) - 1629: 24(fvec2) VectorTimesScalar 1627 1628 + 1627: 6(float) Load 85(inF0) + 1628: 24(fvec2) Load 87(inFV0) + 1629: 24(fvec2) VectorTimesScalar 1628 1627 Store 1626(r1) 1629 - 1631: 6(float) Load 74(inF0) - 1632: 24(fvec2) Load 76(inFV0) - 1633: 24(fvec2) VectorTimesScalar 1632 1631 + 1631: 24(fvec2) Load 87(inFV0) + 1632: 6(float) Load 85(inF0) + 1633: 24(fvec2) VectorTimesScalar 1631 1632 Store 1630(r2) 1633 - 1635: 24(fvec2) Load 76(inFV0) - 1636: 24(fvec2) Load 77(inFV1) + 1635: 24(fvec2) Load 87(inFV0) + 1636: 24(fvec2) Load 88(inFV1) 1637: 6(float) Dot 1635 1636 Store 1634(r3) 1637 - 1639: 48 Load 78(inFM0) - 1640: 24(fvec2) Load 76(inFV0) - 1641: 24(fvec2) MatrixTimesVector 1639 1640 + 1639: 24(fvec2) Load 87(inFV0) + 1640: 60 Load 89(inFM0) + 1641: 24(fvec2) VectorTimesMatrix 1639 1640 Store 1638(r4) 1641 - 1643: 24(fvec2) Load 76(inFV0) - 1644: 48 Load 78(inFM0) - 1645: 24(fvec2) VectorTimesMatrix 1643 1644 + 1643: 60 Load 89(inFM0) + 1644: 24(fvec2) Load 87(inFV0) + 1645: 24(fvec2) MatrixTimesVector 1643 1644 Store 1642(r5) 1645 - 1647: 48 Load 78(inFM0) - 1648: 6(float) Load 74(inF0) - 1649: 48 MatrixTimesScalar 1647 1648 + 1647: 6(float) Load 85(inF0) + 1648: 60 Load 89(inFM0) + 1649: 60 MatrixTimesScalar 1648 1647 Store 1646(r6) 1649 - 1651: 6(float) Load 74(inF0) - 1652: 48 Load 78(inFM0) - 1653: 48 MatrixTimesScalar 1652 1651 + 1651: 60 Load 89(inFM0) + 1652: 6(float) Load 85(inF0) + 1653: 60 MatrixTimesScalar 1651 1652 Store 1650(r7) 1653 - 1655: 48 Load 78(inFM0) - 1656: 48 Load 79(inFM1) - 1657: 48 MatrixTimesMatrix 1655 1656 + 1655: 60 Load 90(inFM1) + 1656: 60 Load 89(inFM0) + 1657: 60 MatrixTimesMatrix 1655 1656 Store 1654(r8) 1657 Return FunctionEnd -89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82 - 83(inF0): 7(ptr) FunctionParameter - 84(inF1): 7(ptr) FunctionParameter - 85(inFV0): 37(ptr) FunctionParameter - 86(inFV1): 37(ptr) FunctionParameter - 87(inFM0): 57(ptr) FunctionParameter - 88(inFM1): 57(ptr) FunctionParameter - 90: Label +100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 + 94(inF0): 7(ptr) FunctionParameter + 95(inF1): 7(ptr) FunctionParameter + 96(inFV0): 37(ptr) FunctionParameter + 97(inFV1): 37(ptr) FunctionParameter + 98(inFM0): 69(ptr) FunctionParameter + 99(inFM1): 69(ptr) FunctionParameter + 101: Label 1658(r0): 7(ptr) Variable Function 1662(r1): 37(ptr) Variable Function 1666(r2): 37(ptr) Variable Function 1670(r3): 7(ptr) Variable Function 1674(r4): 37(ptr) Variable Function 1678(r5): 37(ptr) Variable Function - 1682(r6): 57(ptr) Variable Function - 1686(r7): 57(ptr) Variable Function - 1690(r8): 57(ptr) Variable Function - 1659: 6(float) Load 83(inF0) - 1660: 6(float) Load 84(inF1) + 1682(r6): 69(ptr) Variable Function + 1686(r7): 69(ptr) Variable Function + 1690(r8): 69(ptr) Variable Function + 1659: 6(float) Load 95(inF1) + 1660: 6(float) Load 94(inF0) 1661: 6(float) FMul 1659 1660 Store 1658(r0) 1661 - 1663: 36(fvec3) Load 85(inFV0) - 1664: 6(float) Load 83(inF0) - 1665: 36(fvec3) VectorTimesScalar 1663 1664 + 1663: 6(float) Load 94(inF0) + 1664: 36(fvec3) Load 96(inFV0) + 1665: 36(fvec3) VectorTimesScalar 1664 1663 Store 1662(r1) 1665 - 1667: 6(float) Load 83(inF0) - 1668: 36(fvec3) Load 85(inFV0) - 1669: 36(fvec3) VectorTimesScalar 1668 1667 + 1667: 36(fvec3) Load 96(inFV0) + 1668: 6(float) Load 94(inF0) + 1669: 36(fvec3) VectorTimesScalar 1667 1668 Store 1666(r2) 1669 - 1671: 36(fvec3) Load 85(inFV0) - 1672: 36(fvec3) Load 86(inFV1) + 1671: 36(fvec3) Load 96(inFV0) + 1672: 36(fvec3) Load 97(inFV1) 1673: 6(float) Dot 1671 1672 Store 1670(r3) 1673 - 1675: 56 Load 87(inFM0) - 1676: 36(fvec3) Load 85(inFV0) - 1677: 36(fvec3) MatrixTimesVector 1675 1676 + 1675: 36(fvec3) Load 96(inFV0) + 1676: 68 Load 98(inFM0) + 1677: 36(fvec3) VectorTimesMatrix 1675 1676 Store 1674(r4) 1677 - 1679: 36(fvec3) Load 85(inFV0) - 1680: 56 Load 87(inFM0) - 1681: 36(fvec3) VectorTimesMatrix 1679 1680 + 1679: 68 Load 98(inFM0) + 1680: 36(fvec3) Load 96(inFV0) + 1681: 36(fvec3) MatrixTimesVector 1679 1680 Store 1678(r5) 1681 - 1683: 56 Load 87(inFM0) - 1684: 6(float) Load 83(inF0) - 1685: 56 MatrixTimesScalar 1683 1684 + 1683: 6(float) Load 94(inF0) + 1684: 68 Load 98(inFM0) + 1685: 68 MatrixTimesScalar 1684 1683 Store 1682(r6) 1685 - 1687: 6(float) Load 83(inF0) - 1688: 56 Load 87(inFM0) - 1689: 56 MatrixTimesScalar 1688 1687 + 1687: 68 Load 98(inFM0) + 1688: 6(float) Load 94(inF0) + 1689: 68 MatrixTimesScalar 1687 1688 Store 1686(r7) 1689 - 1691: 56 Load 87(inFM0) - 1692: 56 Load 88(inFM1) - 1693: 56 MatrixTimesMatrix 1691 1692 + 1691: 68 Load 99(inFM1) + 1692: 68 Load 98(inFM0) + 1693: 68 MatrixTimesMatrix 1691 1692 Store 1690(r8) 1693 Return FunctionEnd -99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92 - 93(inF0): 7(ptr) FunctionParameter - 94(inF1): 7(ptr) FunctionParameter - 95(inFV0): 91(ptr) FunctionParameter - 96(inFV1): 91(ptr) FunctionParameter - 97(inFM0): 66(ptr) FunctionParameter - 98(inFM1): 66(ptr) FunctionParameter - 100: Label +109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 + 103(inF0): 7(ptr) FunctionParameter + 104(inF1): 7(ptr) FunctionParameter + 105(inFV0): 49(ptr) FunctionParameter + 106(inFV1): 49(ptr) FunctionParameter + 107(inFM0): 77(ptr) FunctionParameter + 108(inFM1): 77(ptr) FunctionParameter + 110: Label 1694(r0): 7(ptr) Variable Function - 1698(r1): 91(ptr) Variable Function - 1702(r2): 91(ptr) Variable Function + 1698(r1): 49(ptr) Variable Function + 1702(r2): 49(ptr) Variable Function 1706(r3): 7(ptr) Variable Function - 1710(r4): 91(ptr) Variable Function - 1714(r5): 91(ptr) Variable Function - 1718(r6): 66(ptr) Variable Function - 1722(r7): 66(ptr) Variable Function - 1726(r8): 66(ptr) Variable Function - 1695: 6(float) Load 93(inF0) - 1696: 6(float) Load 94(inF1) + 1710(r4): 49(ptr) Variable Function + 1714(r5): 49(ptr) Variable Function + 1718(r6): 77(ptr) Variable Function + 1722(r7): 77(ptr) Variable Function + 1726(r8): 77(ptr) Variable Function + 1695: 6(float) Load 104(inF1) + 1696: 6(float) Load 103(inF0) 1697: 6(float) FMul 1695 1696 Store 1694(r0) 1697 - 1699: 64(fvec4) Load 95(inFV0) - 1700: 6(float) Load 93(inF0) - 1701: 64(fvec4) VectorTimesScalar 1699 1700 + 1699: 6(float) Load 103(inF0) + 1700: 48(fvec4) Load 105(inFV0) + 1701: 48(fvec4) VectorTimesScalar 1700 1699 Store 1698(r1) 1701 - 1703: 6(float) Load 93(inF0) - 1704: 64(fvec4) Load 95(inFV0) - 1705: 64(fvec4) VectorTimesScalar 1704 1703 + 1703: 48(fvec4) Load 105(inFV0) + 1704: 6(float) Load 103(inF0) + 1705: 48(fvec4) VectorTimesScalar 1703 1704 Store 1702(r2) 1705 - 1707: 64(fvec4) Load 95(inFV0) - 1708: 64(fvec4) Load 96(inFV1) + 1707: 48(fvec4) Load 105(inFV0) + 1708: 48(fvec4) Load 106(inFV1) 1709: 6(float) Dot 1707 1708 Store 1706(r3) 1709 - 1711: 65 Load 97(inFM0) - 1712: 64(fvec4) Load 95(inFV0) - 1713: 64(fvec4) MatrixTimesVector 1711 1712 + 1711: 48(fvec4) Load 105(inFV0) + 1712: 76 Load 107(inFM0) + 1713: 48(fvec4) VectorTimesMatrix 1711 1712 Store 1710(r4) 1713 - 1715: 64(fvec4) Load 95(inFV0) - 1716: 65 Load 97(inFM0) - 1717: 64(fvec4) VectorTimesMatrix 1715 1716 + 1715: 76 Load 107(inFM0) + 1716: 48(fvec4) Load 105(inFV0) + 1717: 48(fvec4) MatrixTimesVector 1715 1716 Store 1714(r5) 1717 - 1719: 65 Load 97(inFM0) - 1720: 6(float) Load 93(inF0) - 1721: 65 MatrixTimesScalar 1719 1720 + 1719: 6(float) Load 103(inF0) + 1720: 76 Load 107(inFM0) + 1721: 76 MatrixTimesScalar 1720 1719 Store 1718(r6) 1721 - 1723: 6(float) Load 93(inF0) - 1724: 65 Load 97(inFM0) - 1725: 65 MatrixTimesScalar 1724 1723 + 1723: 76 Load 107(inFM0) + 1724: 6(float) Load 103(inF0) + 1725: 76 MatrixTimesScalar 1723 1724 Store 1722(r7) 1725 - 1727: 65 Load 97(inFM0) - 1728: 65 Load 98(inFM1) - 1729: 65 MatrixTimesMatrix 1727 1728 + 1727: 76 Load 108(inFM1) + 1728: 76 Load 107(inFM0) + 1729: 76 MatrixTimesMatrix 1727 1728 Store 1726(r8) 1729 Return FunctionEnd -119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109 - 110(inF0): 7(ptr) FunctionParameter - 111(inF1): 7(ptr) FunctionParameter - 112(inFV2): 25(ptr) FunctionParameter - 113(inFV3): 37(ptr) FunctionParameter - 114(inFM2x3): 102(ptr) FunctionParameter - 115(inFM3x2): 104(ptr) FunctionParameter - 116(inFM3x3): 57(ptr) FunctionParameter - 117(inFM3x4): 106(ptr) FunctionParameter - 118(inFM2x4): 108(ptr) FunctionParameter - 120: Label +129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 + 120(inF0): 7(ptr) FunctionParameter + 121(inF1): 7(ptr) FunctionParameter + 122(inFV2): 25(ptr) FunctionParameter + 123(inFV3): 37(ptr) FunctionParameter + 124(inFM2x3): 112(ptr) FunctionParameter + 125(inFM3x2): 114(ptr) FunctionParameter + 126(inFM3x3): 69(ptr) FunctionParameter + 127(inFM3x4): 116(ptr) FunctionParameter + 128(inFM2x4): 118(ptr) FunctionParameter + 130: Label 1730(r00): 7(ptr) Variable Function 1734(r01): 25(ptr) Variable Function 1738(r02): 37(ptr) Variable Function @@ -8303,79 +8345,79 @@ gl_FragCoord origin is upper left 1762(r08): 25(ptr) Variable Function 1766(r09): 25(ptr) Variable Function 1770(r10): 37(ptr) Variable Function - 1774(r11): 102(ptr) Variable Function - 1778(r12): 104(ptr) Variable Function - 1782(r13): 49(ptr) Variable Function - 1786(r14): 102(ptr) Variable Function - 1790(r15): 108(ptr) Variable Function - 1794(r16): 106(ptr) Variable Function - 1731: 6(float) Load 110(inF0) - 1732: 6(float) Load 111(inF1) + 1774(r11): 112(ptr) Variable Function + 1778(r12): 114(ptr) Variable Function + 1782(r13): 61(ptr) Variable Function + 1786(r14): 112(ptr) Variable Function + 1790(r15): 118(ptr) Variable Function + 1794(r16): 116(ptr) Variable Function + 1731: 6(float) Load 121(inF1) + 1732: 6(float) Load 120(inF0) 1733: 6(float) FMul 1731 1732 Store 1730(r00) 1733 - 1735: 24(fvec2) Load 112(inFV2) - 1736: 6(float) Load 110(inF0) - 1737: 24(fvec2) VectorTimesScalar 1735 1736 + 1735: 6(float) Load 120(inF0) + 1736: 24(fvec2) Load 122(inFV2) + 1737: 24(fvec2) VectorTimesScalar 1736 1735 Store 1734(r01) 1737 - 1739: 36(fvec3) Load 113(inFV3) - 1740: 6(float) Load 110(inF0) - 1741: 36(fvec3) VectorTimesScalar 1739 1740 + 1739: 6(float) Load 120(inF0) + 1740: 36(fvec3) Load 123(inFV3) + 1741: 36(fvec3) VectorTimesScalar 1740 1739 Store 1738(r02) 1741 - 1743: 6(float) Load 110(inF0) - 1744: 24(fvec2) Load 112(inFV2) - 1745: 24(fvec2) VectorTimesScalar 1744 1743 + 1743: 24(fvec2) Load 122(inFV2) + 1744: 6(float) Load 120(inF0) + 1745: 24(fvec2) VectorTimesScalar 1743 1744 Store 1742(r03) 1745 - 1747: 6(float) Load 110(inF0) - 1748: 36(fvec3) Load 113(inFV3) - 1749: 36(fvec3) VectorTimesScalar 1748 1747 + 1747: 36(fvec3) Load 123(inFV3) + 1748: 6(float) Load 120(inF0) + 1749: 36(fvec3) VectorTimesScalar 1747 1748 Store 1746(r04) 1749 - 1751: 24(fvec2) Load 112(inFV2) - 1752: 24(fvec2) Load 112(inFV2) + 1751: 24(fvec2) Load 122(inFV2) + 1752: 24(fvec2) Load 122(inFV2) 1753: 6(float) Dot 1751 1752 Store 1750(r05) 1753 - 1755: 36(fvec3) Load 113(inFV3) - 1756: 36(fvec3) Load 113(inFV3) + 1755: 36(fvec3) Load 123(inFV3) + 1756: 36(fvec3) Load 123(inFV3) 1757: 6(float) Dot 1755 1756 Store 1754(r06) 1757 - 1759: 24(fvec2) Load 112(inFV2) - 1760: 101 Load 114(inFM2x3) - 1761: 36(fvec3) VectorTimesMatrix 1759 1760 + 1759: 111 Load 124(inFM2x3) + 1760: 24(fvec2) Load 122(inFV2) + 1761: 36(fvec3) MatrixTimesVector 1759 1760 Store 1758(r07) 1761 - 1763: 36(fvec3) Load 113(inFV3) - 1764: 103 Load 115(inFM3x2) - 1765: 24(fvec2) VectorTimesMatrix 1763 1764 + 1763: 113 Load 125(inFM3x2) + 1764: 36(fvec3) Load 123(inFV3) + 1765: 24(fvec2) MatrixTimesVector 1763 1764 Store 1762(r08) 1765 - 1767: 101 Load 114(inFM2x3) - 1768: 36(fvec3) Load 113(inFV3) - 1769: 24(fvec2) MatrixTimesVector 1767 1768 + 1767: 36(fvec3) Load 123(inFV3) + 1768: 111 Load 124(inFM2x3) + 1769: 24(fvec2) VectorTimesMatrix 1767 1768 Store 1766(r09) 1769 - 1771: 103 Load 115(inFM3x2) - 1772: 24(fvec2) Load 112(inFV2) - 1773: 36(fvec3) MatrixTimesVector 1771 1772 + 1771: 24(fvec2) Load 122(inFV2) + 1772: 113 Load 125(inFM3x2) + 1773: 36(fvec3) VectorTimesMatrix 1771 1772 Store 1770(r10) 1773 - 1775: 101 Load 114(inFM2x3) - 1776: 6(float) Load 110(inF0) - 1777: 101 MatrixTimesScalar 1775 1776 + 1775: 6(float) Load 120(inF0) + 1776: 111 Load 124(inFM2x3) + 1777: 111 MatrixTimesScalar 1776 1775 Store 1774(r11) 1777 - 1779: 103 Load 115(inFM3x2) - 1780: 6(float) Load 110(inF0) - 1781: 103 MatrixTimesScalar 1779 1780 + 1779: 6(float) Load 120(inF0) + 1780: 113 Load 125(inFM3x2) + 1781: 113 MatrixTimesScalar 1780 1779 Store 1778(r12) 1781 - 1783: 101 Load 114(inFM2x3) - 1784: 103 Load 115(inFM3x2) - 1785: 48 MatrixTimesMatrix 1783 1784 + 1783: 113 Load 125(inFM3x2) + 1784: 111 Load 124(inFM2x3) + 1785: 60 MatrixTimesMatrix 1783 1784 Store 1782(r13) 1785 - 1787: 101 Load 114(inFM2x3) - 1788: 56 Load 116(inFM3x3) - 1789: 101 MatrixTimesMatrix 1787 1788 + 1787: 68 Load 126(inFM3x3) + 1788: 111 Load 124(inFM2x3) + 1789: 111 MatrixTimesMatrix 1787 1788 Store 1786(r14) 1789 - 1791: 101 Load 114(inFM2x3) - 1792: 105 Load 117(inFM3x4) - 1793: 107 MatrixTimesMatrix 1791 1792 + 1791: 115 Load 127(inFM3x4) + 1792: 111 Load 124(inFM2x3) + 1793: 117 MatrixTimesMatrix 1791 1792 Store 1790(r15) 1793 - 1795: 103 Load 115(inFM3x2) - 1796: 107 Load 118(inFM2x4) - 1797: 105 MatrixTimesMatrix 1795 1796 + 1795: 117 Load 128(inFM2x4) + 1796: 113 Load 125(inFM3x2) + 1797: 115 MatrixTimesMatrix 1795 1796 Store 1794(r16) 1797 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 8368e267..121c8093 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1101,20 +1101,20 @@ Shader version: 450 0:378 move second child to first child (temp float) 0:378 'r0' (temp float) 0:378 component-wise multiply (temp float) -0:378 'inF0' (in float) 0:378 'inF1' (in float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r1' (temp 2-component vector of float) 0:378 vector-scale (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) 0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r2' (temp 2-component vector of float) 0:378 vector-scale (temp 2-component vector of float) -0:378 'inF0' (in float) 0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) @@ -1124,33 +1124,33 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r4' (temp 2-component vector of float) -0:378 matrix-times-vector (temp 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r5' (temp 2-component vector of float) 0:378 vector-times-matrix (temp 2-component vector of float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFM0' (in 2X2 matrix of float) 0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r6' (temp 2X2 matrix of float) 0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) 0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r7' (temp 2X2 matrix of float) 0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inF0' (in float) 0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r8' (temp 2X2 matrix of float) 0:378 matrix-multiply (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) 0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:384 Function Parameters: 0:384 'inF0' (in float) @@ -1164,20 +1164,20 @@ Shader version: 450 0:385 move second child to first child (temp float) 0:385 'r0' (temp float) 0:385 component-wise multiply (temp float) -0:385 'inF0' (in float) 0:385 'inF1' (in float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r1' (temp 3-component vector of float) 0:385 vector-scale (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) 0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r2' (temp 3-component vector of float) 0:385 vector-scale (temp 3-component vector of float) -0:385 'inF0' (in float) 0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) @@ -1187,33 +1187,33 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r4' (temp 3-component vector of float) -0:385 matrix-times-vector (temp 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r5' (temp 3-component vector of float) 0:385 vector-times-matrix (temp 3-component vector of float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFM0' (in 3X3 matrix of float) 0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r6' (temp 3X3 matrix of float) 0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) 0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r7' (temp 3X3 matrix of float) 0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inF0' (in float) 0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r8' (temp 3X3 matrix of float) 0:385 matrix-multiply (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) 0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:391 Function Parameters: 0:391 'inF0' (in float) @@ -1227,20 +1227,20 @@ Shader version: 450 0:392 move second child to first child (temp float) 0:392 'r0' (temp float) 0:392 component-wise multiply (temp float) -0:392 'inF0' (in float) 0:392 'inF1' (in float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r1' (temp 4-component vector of float) 0:392 vector-scale (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) 0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r2' (temp 4-component vector of float) 0:392 vector-scale (temp 4-component vector of float) -0:392 'inF0' (in float) 0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) @@ -1250,75 +1250,75 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r4' (temp 4-component vector of float) -0:392 matrix-times-vector (temp 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r5' (temp 4-component vector of float) 0:392 vector-times-matrix (temp 4-component vector of float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFM0' (in 4X4 matrix of float) 0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r6' (temp 4X4 matrix of float) 0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) 0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r7' (temp 4X4 matrix of float) 0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inF0' (in float) 0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r8' (temp 4X4 matrix of float) 0:392 matrix-multiply (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:392 'inFM0' (in 4X4 matrix of float) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) 0:401 'inFV2' (in 2-component vector of float) 0:401 'inFV3' (in 3-component vector of float) -0:401 'inFM2x3' (in 3X2 matrix of float) -0:401 'inFM3x2' (in 2X3 matrix of float) +0:401 'inFM2x3' (in 2X3 matrix of float) +0:401 'inFM3x2' (in 3X2 matrix of float) 0:401 'inFM3x3' (in 3X3 matrix of float) -0:401 'inFM3x4' (in 4X3 matrix of float) -0:401 'inFM2x4' (in 4X2 matrix of float) +0:401 'inFM3x4' (in 3X4 matrix of float) +0:401 'inFM2x4' (in 2X4 matrix of float) 0:? Sequence 0:402 Sequence 0:402 move second child to first child (temp float) 0:402 'r00' (temp float) 0:402 component-wise multiply (temp float) -0:402 'inF0' (in float) 0:402 'inF1' (in float) +0:402 'inF0' (in float) 0:403 Sequence 0:403 move second child to first child (temp 2-component vector of float) 0:403 'r01' (temp 2-component vector of float) 0:403 vector-scale (temp 2-component vector of float) -0:403 'inFV2' (in 2-component vector of float) 0:403 'inF0' (in float) +0:403 'inFV2' (in 2-component vector of float) 0:404 Sequence 0:404 move second child to first child (temp 3-component vector of float) 0:404 'r02' (temp 3-component vector of float) 0:404 vector-scale (temp 3-component vector of float) -0:404 'inFV3' (in 3-component vector of float) 0:404 'inF0' (in float) +0:404 'inFV3' (in 3-component vector of float) 0:405 Sequence 0:405 move second child to first child (temp 2-component vector of float) 0:405 'r03' (temp 2-component vector of float) 0:405 vector-scale (temp 2-component vector of float) -0:405 'inF0' (in float) 0:405 'inFV2' (in 2-component vector of float) +0:405 'inF0' (in float) 0:406 Sequence 0:406 move second child to first child (temp 3-component vector of float) 0:406 'r04' (temp 3-component vector of float) 0:406 vector-scale (temp 3-component vector of float) -0:406 'inF0' (in float) 0:406 'inFV3' (in 3-component vector of float) +0:406 'inF0' (in float) 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) @@ -1334,63 +1334,63 @@ Shader version: 450 0:409 Sequence 0:409 move second child to first child (temp 3-component vector of float) 0:409 'r07' (temp 3-component vector of float) -0:409 vector-times-matrix (temp 3-component vector of float) +0:409 matrix-times-vector (temp 3-component vector of float) +0:409 'inFM2x3' (in 2X3 matrix of float) 0:409 'inFV2' (in 2-component vector of float) -0:409 'inFM2x3' (in 3X2 matrix of float) 0:410 Sequence 0:410 move second child to first child (temp 2-component vector of float) 0:410 'r08' (temp 2-component vector of float) -0:410 vector-times-matrix (temp 2-component vector of float) +0:410 matrix-times-vector (temp 2-component vector of float) +0:410 'inFM3x2' (in 3X2 matrix of float) 0:410 'inFV3' (in 3-component vector of float) -0:410 'inFM3x2' (in 2X3 matrix of float) 0:411 Sequence 0:411 move second child to first child (temp 2-component vector of float) 0:411 'r09' (temp 2-component vector of float) -0:411 matrix-times-vector (temp 2-component vector of float) -0:411 'inFM2x3' (in 3X2 matrix of float) +0:411 vector-times-matrix (temp 2-component vector of float) 0:411 'inFV3' (in 3-component vector of float) +0:411 'inFM2x3' (in 2X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3-component vector of float) 0:412 'r10' (temp 3-component vector of float) -0:412 matrix-times-vector (temp 3-component vector of float) -0:412 'inFM3x2' (in 2X3 matrix of float) +0:412 vector-times-matrix (temp 3-component vector of float) 0:412 'inFV2' (in 2-component vector of float) +0:412 'inFM3x2' (in 3X2 matrix of float) 0:413 Sequence -0:413 move second child to first child (temp 3X2 matrix of float) -0:413 'r11' (temp 3X2 matrix of float) -0:413 matrix-scale (temp 3X2 matrix of float) -0:413 'inFM2x3' (in 3X2 matrix of float) +0:413 move second child to first child (temp 2X3 matrix of float) +0:413 'r11' (temp 2X3 matrix of float) +0:413 matrix-scale (temp 2X3 matrix of float) 0:413 'inF0' (in float) +0:413 'inFM2x3' (in 2X3 matrix of float) 0:414 Sequence -0:414 move second child to first child (temp 2X3 matrix of float) -0:414 'r12' (temp 2X3 matrix of float) -0:414 matrix-scale (temp 2X3 matrix of float) -0:414 'inFM3x2' (in 2X3 matrix of float) +0:414 move second child to first child (temp 3X2 matrix of float) +0:414 'r12' (temp 3X2 matrix of float) +0:414 matrix-scale (temp 3X2 matrix of float) 0:414 'inF0' (in float) +0:414 'inFM3x2' (in 3X2 matrix of float) 0:415 Sequence 0:415 move second child to first child (temp 2X2 matrix of float) 0:415 'r13' (temp 2X2 matrix of float) 0:415 matrix-multiply (temp 2X2 matrix of float) -0:415 'inFM2x3' (in 3X2 matrix of float) -0:415 'inFM3x2' (in 2X3 matrix of float) +0:415 'inFM3x2' (in 3X2 matrix of float) +0:415 'inFM2x3' (in 2X3 matrix of float) 0:416 Sequence -0:416 move second child to first child (temp 3X2 matrix of float) -0:416 'r14' (temp 3X2 matrix of float) -0:416 matrix-multiply (temp 3X2 matrix of float) -0:416 'inFM2x3' (in 3X2 matrix of float) +0:416 move second child to first child (temp 2X3 matrix of float) +0:416 'r14' (temp 2X3 matrix of float) +0:416 matrix-multiply (temp 2X3 matrix of float) 0:416 'inFM3x3' (in 3X3 matrix of float) +0:416 'inFM2x3' (in 2X3 matrix of float) 0:417 Sequence -0:417 move second child to first child (temp 4X2 matrix of float) -0:417 'r15' (temp 4X2 matrix of float) -0:417 matrix-multiply (temp 4X2 matrix of float) -0:417 'inFM2x3' (in 3X2 matrix of float) -0:417 'inFM3x4' (in 4X3 matrix of float) +0:417 move second child to first child (temp 2X4 matrix of float) +0:417 'r15' (temp 2X4 matrix of float) +0:417 matrix-multiply (temp 2X4 matrix of float) +0:417 'inFM3x4' (in 3X4 matrix of float) +0:417 'inFM2x3' (in 2X3 matrix of float) 0:418 Sequence -0:418 move second child to first child (temp 4X3 matrix of float) -0:418 'r16' (temp 4X3 matrix of float) -0:418 matrix-multiply (temp 4X3 matrix of float) -0:418 'inFM3x2' (in 2X3 matrix of float) -0:418 'inFM2x4' (in 4X2 matrix of float) +0:418 move second child to first child (temp 3X4 matrix of float) +0:418 'r16' (temp 3X4 matrix of float) +0:418 matrix-multiply (temp 3X4 matrix of float) +0:418 'inFM2x4' (in 2X4 matrix of float) +0:418 'inFM3x2' (in 3X2 matrix of float) 0:? Linker Objects @@ -2499,20 +2499,20 @@ Shader version: 450 0:378 move second child to first child (temp float) 0:378 'r0' (temp float) 0:378 component-wise multiply (temp float) -0:378 'inF0' (in float) 0:378 'inF1' (in float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r1' (temp 2-component vector of float) 0:378 vector-scale (temp 2-component vector of float) -0:378 'inFV0' (in 2-component vector of float) 0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r2' (temp 2-component vector of float) 0:378 vector-scale (temp 2-component vector of float) -0:378 'inF0' (in float) 0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) @@ -2522,33 +2522,33 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp 2-component vector of float) 0:378 'r4' (temp 2-component vector of float) -0:378 matrix-times-vector (temp 2-component vector of float) -0:378 'inFM0' (in 2X2 matrix of float) -0:378 'inFV0' (in 2-component vector of float) -0:378 Sequence -0:378 move second child to first child (temp 2-component vector of float) -0:378 'r5' (temp 2-component vector of float) 0:378 vector-times-matrix (temp 2-component vector of float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFM0' (in 2X2 matrix of float) 0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r6' (temp 2X2 matrix of float) 0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) 0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r7' (temp 2X2 matrix of float) 0:378 matrix-scale (temp 2X2 matrix of float) -0:378 'inF0' (in float) 0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) 0:378 Sequence 0:378 move second child to first child (temp 2X2 matrix of float) 0:378 'r8' (temp 2X2 matrix of float) 0:378 matrix-multiply (temp 2X2 matrix of float) -0:378 'inFM0' (in 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) 0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) 0:384 Function Parameters: 0:384 'inF0' (in float) @@ -2562,20 +2562,20 @@ Shader version: 450 0:385 move second child to first child (temp float) 0:385 'r0' (temp float) 0:385 component-wise multiply (temp float) -0:385 'inF0' (in float) 0:385 'inF1' (in float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r1' (temp 3-component vector of float) 0:385 vector-scale (temp 3-component vector of float) -0:385 'inFV0' (in 3-component vector of float) 0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r2' (temp 3-component vector of float) 0:385 vector-scale (temp 3-component vector of float) -0:385 'inF0' (in float) 0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) @@ -2585,33 +2585,33 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp 3-component vector of float) 0:385 'r4' (temp 3-component vector of float) -0:385 matrix-times-vector (temp 3-component vector of float) -0:385 'inFM0' (in 3X3 matrix of float) -0:385 'inFV0' (in 3-component vector of float) -0:385 Sequence -0:385 move second child to first child (temp 3-component vector of float) -0:385 'r5' (temp 3-component vector of float) 0:385 vector-times-matrix (temp 3-component vector of float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFM0' (in 3X3 matrix of float) 0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r6' (temp 3X3 matrix of float) 0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) 0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r7' (temp 3X3 matrix of float) 0:385 matrix-scale (temp 3X3 matrix of float) -0:385 'inF0' (in float) 0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) 0:385 Sequence 0:385 move second child to first child (temp 3X3 matrix of float) 0:385 'r8' (temp 3X3 matrix of float) 0:385 matrix-multiply (temp 3X3 matrix of float) -0:385 'inFM0' (in 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) 0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) 0:391 Function Parameters: 0:391 'inF0' (in float) @@ -2625,20 +2625,20 @@ Shader version: 450 0:392 move second child to first child (temp float) 0:392 'r0' (temp float) 0:392 component-wise multiply (temp float) -0:392 'inF0' (in float) 0:392 'inF1' (in float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r1' (temp 4-component vector of float) 0:392 vector-scale (temp 4-component vector of float) -0:392 'inFV0' (in 4-component vector of float) 0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r2' (temp 4-component vector of float) 0:392 vector-scale (temp 4-component vector of float) -0:392 'inF0' (in float) 0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) @@ -2648,75 +2648,75 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp 4-component vector of float) 0:392 'r4' (temp 4-component vector of float) -0:392 matrix-times-vector (temp 4-component vector of float) -0:392 'inFM0' (in 4X4 matrix of float) -0:392 'inFV0' (in 4-component vector of float) -0:392 Sequence -0:392 move second child to first child (temp 4-component vector of float) -0:392 'r5' (temp 4-component vector of float) 0:392 vector-times-matrix (temp 4-component vector of float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFM0' (in 4X4 matrix of float) 0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r6' (temp 4X4 matrix of float) 0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) 0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r7' (temp 4X4 matrix of float) 0:392 matrix-scale (temp 4X4 matrix of float) -0:392 'inF0' (in float) 0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) 0:392 Sequence 0:392 move second child to first child (temp 4X4 matrix of float) 0:392 'r8' (temp 4X4 matrix of float) 0:392 matrix-multiply (temp 4X4 matrix of float) -0:392 'inFM0' (in 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:392 'inFM0' (in 4X4 matrix of float) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) 0:401 'inFV2' (in 2-component vector of float) 0:401 'inFV3' (in 3-component vector of float) -0:401 'inFM2x3' (in 3X2 matrix of float) -0:401 'inFM3x2' (in 2X3 matrix of float) +0:401 'inFM2x3' (in 2X3 matrix of float) +0:401 'inFM3x2' (in 3X2 matrix of float) 0:401 'inFM3x3' (in 3X3 matrix of float) -0:401 'inFM3x4' (in 4X3 matrix of float) -0:401 'inFM2x4' (in 4X2 matrix of float) +0:401 'inFM3x4' (in 3X4 matrix of float) +0:401 'inFM2x4' (in 2X4 matrix of float) 0:? Sequence 0:402 Sequence 0:402 move second child to first child (temp float) 0:402 'r00' (temp float) 0:402 component-wise multiply (temp float) -0:402 'inF0' (in float) 0:402 'inF1' (in float) +0:402 'inF0' (in float) 0:403 Sequence 0:403 move second child to first child (temp 2-component vector of float) 0:403 'r01' (temp 2-component vector of float) 0:403 vector-scale (temp 2-component vector of float) -0:403 'inFV2' (in 2-component vector of float) 0:403 'inF0' (in float) +0:403 'inFV2' (in 2-component vector of float) 0:404 Sequence 0:404 move second child to first child (temp 3-component vector of float) 0:404 'r02' (temp 3-component vector of float) 0:404 vector-scale (temp 3-component vector of float) -0:404 'inFV3' (in 3-component vector of float) 0:404 'inF0' (in float) +0:404 'inFV3' (in 3-component vector of float) 0:405 Sequence 0:405 move second child to first child (temp 2-component vector of float) 0:405 'r03' (temp 2-component vector of float) 0:405 vector-scale (temp 2-component vector of float) -0:405 'inF0' (in float) 0:405 'inFV2' (in 2-component vector of float) +0:405 'inF0' (in float) 0:406 Sequence 0:406 move second child to first child (temp 3-component vector of float) 0:406 'r04' (temp 3-component vector of float) 0:406 vector-scale (temp 3-component vector of float) -0:406 'inF0' (in float) 0:406 'inFV3' (in 3-component vector of float) +0:406 'inF0' (in float) 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) @@ -2732,63 +2732,63 @@ Shader version: 450 0:409 Sequence 0:409 move second child to first child (temp 3-component vector of float) 0:409 'r07' (temp 3-component vector of float) -0:409 vector-times-matrix (temp 3-component vector of float) +0:409 matrix-times-vector (temp 3-component vector of float) +0:409 'inFM2x3' (in 2X3 matrix of float) 0:409 'inFV2' (in 2-component vector of float) -0:409 'inFM2x3' (in 3X2 matrix of float) 0:410 Sequence 0:410 move second child to first child (temp 2-component vector of float) 0:410 'r08' (temp 2-component vector of float) -0:410 vector-times-matrix (temp 2-component vector of float) +0:410 matrix-times-vector (temp 2-component vector of float) +0:410 'inFM3x2' (in 3X2 matrix of float) 0:410 'inFV3' (in 3-component vector of float) -0:410 'inFM3x2' (in 2X3 matrix of float) 0:411 Sequence 0:411 move second child to first child (temp 2-component vector of float) 0:411 'r09' (temp 2-component vector of float) -0:411 matrix-times-vector (temp 2-component vector of float) -0:411 'inFM2x3' (in 3X2 matrix of float) +0:411 vector-times-matrix (temp 2-component vector of float) 0:411 'inFV3' (in 3-component vector of float) +0:411 'inFM2x3' (in 2X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3-component vector of float) 0:412 'r10' (temp 3-component vector of float) -0:412 matrix-times-vector (temp 3-component vector of float) -0:412 'inFM3x2' (in 2X3 matrix of float) +0:412 vector-times-matrix (temp 3-component vector of float) 0:412 'inFV2' (in 2-component vector of float) +0:412 'inFM3x2' (in 3X2 matrix of float) 0:413 Sequence -0:413 move second child to first child (temp 3X2 matrix of float) -0:413 'r11' (temp 3X2 matrix of float) -0:413 matrix-scale (temp 3X2 matrix of float) -0:413 'inFM2x3' (in 3X2 matrix of float) +0:413 move second child to first child (temp 2X3 matrix of float) +0:413 'r11' (temp 2X3 matrix of float) +0:413 matrix-scale (temp 2X3 matrix of float) 0:413 'inF0' (in float) +0:413 'inFM2x3' (in 2X3 matrix of float) 0:414 Sequence -0:414 move second child to first child (temp 2X3 matrix of float) -0:414 'r12' (temp 2X3 matrix of float) -0:414 matrix-scale (temp 2X3 matrix of float) -0:414 'inFM3x2' (in 2X3 matrix of float) +0:414 move second child to first child (temp 3X2 matrix of float) +0:414 'r12' (temp 3X2 matrix of float) +0:414 matrix-scale (temp 3X2 matrix of float) 0:414 'inF0' (in float) +0:414 'inFM3x2' (in 3X2 matrix of float) 0:415 Sequence 0:415 move second child to first child (temp 2X2 matrix of float) 0:415 'r13' (temp 2X2 matrix of float) 0:415 matrix-multiply (temp 2X2 matrix of float) -0:415 'inFM2x3' (in 3X2 matrix of float) -0:415 'inFM3x2' (in 2X3 matrix of float) +0:415 'inFM3x2' (in 3X2 matrix of float) +0:415 'inFM2x3' (in 2X3 matrix of float) 0:416 Sequence -0:416 move second child to first child (temp 3X2 matrix of float) -0:416 'r14' (temp 3X2 matrix of float) -0:416 matrix-multiply (temp 3X2 matrix of float) -0:416 'inFM2x3' (in 3X2 matrix of float) +0:416 move second child to first child (temp 2X3 matrix of float) +0:416 'r14' (temp 2X3 matrix of float) +0:416 matrix-multiply (temp 2X3 matrix of float) 0:416 'inFM3x3' (in 3X3 matrix of float) +0:416 'inFM2x3' (in 2X3 matrix of float) 0:417 Sequence -0:417 move second child to first child (temp 4X2 matrix of float) -0:417 'r15' (temp 4X2 matrix of float) -0:417 matrix-multiply (temp 4X2 matrix of float) -0:417 'inFM2x3' (in 3X2 matrix of float) -0:417 'inFM3x4' (in 4X3 matrix of float) +0:417 move second child to first child (temp 2X4 matrix of float) +0:417 'r15' (temp 2X4 matrix of float) +0:417 matrix-multiply (temp 2X4 matrix of float) +0:417 'inFM3x4' (in 3X4 matrix of float) +0:417 'inFM2x3' (in 2X3 matrix of float) 0:418 Sequence -0:418 move second child to first child (temp 4X3 matrix of float) -0:418 'r16' (temp 4X3 matrix of float) -0:418 matrix-multiply (temp 4X3 matrix of float) -0:418 'inFM3x2' (in 2X3 matrix of float) -0:418 'inFM2x4' (in 4X2 matrix of float) +0:418 move second child to first child (temp 3X4 matrix of float) +0:418 'r16' (temp 3X4 matrix of float) +0:418 matrix-multiply (temp 3X4 matrix of float) +0:418 'inFM2x4' (in 2X4 matrix of float) +0:418 'inFM3x2' (in 3X2 matrix of float) 0:? Linker Objects // Module Version 10000 @@ -2861,7 +2861,7 @@ Shader version: 450 Name 106 "inFV1" Name 107 "inFM0" Name 108 "inFM1" - Name 129 "TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;" + Name 129 "TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;" Name 120 "inF0" Name 121 "inF1" Name 122 "inFV2" @@ -2957,13 +2957,13 @@ Shader version: 450 84: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 61(ptr) 61(ptr) 93: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 69(ptr) 69(ptr) 102: TypeFunction 2 7(ptr) 7(ptr) 49(ptr) 49(ptr) 77(ptr) 77(ptr) - 111: TypeMatrix 24(fvec2) 3 + 111: TypeMatrix 36(fvec3) 2 112: TypePointer Function 111 - 113: TypeMatrix 36(fvec3) 2 + 113: TypeMatrix 24(fvec2) 3 114: TypePointer Function 113 - 115: TypeMatrix 36(fvec3) 4 + 115: TypeMatrix 48(fvec4) 3 116: TypePointer Function 115 - 117: TypeMatrix 24(fvec2) 4 + 117: TypeMatrix 48(fvec4) 2 118: TypePointer Function 117 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) 132: TypeBool @@ -3986,40 +3986,40 @@ Shader version: 450 1086(r6): 61(ptr) Variable Function 1090(r7): 61(ptr) Variable Function 1094(r8): 61(ptr) Variable Function - 1063: 6(float) Load 85(inF0) - 1064: 6(float) Load 86(inF1) + 1063: 6(float) Load 86(inF1) + 1064: 6(float) Load 85(inF0) 1065: 6(float) FMul 1063 1064 Store 1062(r0) 1065 - 1067: 24(fvec2) Load 87(inFV0) - 1068: 6(float) Load 85(inF0) - 1069: 24(fvec2) VectorTimesScalar 1067 1068 + 1067: 6(float) Load 85(inF0) + 1068: 24(fvec2) Load 87(inFV0) + 1069: 24(fvec2) VectorTimesScalar 1068 1067 Store 1066(r1) 1069 - 1071: 6(float) Load 85(inF0) - 1072: 24(fvec2) Load 87(inFV0) - 1073: 24(fvec2) VectorTimesScalar 1072 1071 + 1071: 24(fvec2) Load 87(inFV0) + 1072: 6(float) Load 85(inF0) + 1073: 24(fvec2) VectorTimesScalar 1071 1072 Store 1070(r2) 1073 1075: 24(fvec2) Load 87(inFV0) 1076: 24(fvec2) Load 88(inFV1) 1077: 6(float) Dot 1075 1076 Store 1074(r3) 1077 - 1079: 60 Load 89(inFM0) - 1080: 24(fvec2) Load 87(inFV0) - 1081: 24(fvec2) MatrixTimesVector 1079 1080 + 1079: 24(fvec2) Load 87(inFV0) + 1080: 60 Load 89(inFM0) + 1081: 24(fvec2) VectorTimesMatrix 1079 1080 Store 1078(r4) 1081 - 1083: 24(fvec2) Load 87(inFV0) - 1084: 60 Load 89(inFM0) - 1085: 24(fvec2) VectorTimesMatrix 1083 1084 + 1083: 60 Load 89(inFM0) + 1084: 24(fvec2) Load 87(inFV0) + 1085: 24(fvec2) MatrixTimesVector 1083 1084 Store 1082(r5) 1085 - 1087: 60 Load 89(inFM0) - 1088: 6(float) Load 85(inF0) - 1089: 60 MatrixTimesScalar 1087 1088 + 1087: 6(float) Load 85(inF0) + 1088: 60 Load 89(inFM0) + 1089: 60 MatrixTimesScalar 1088 1087 Store 1086(r6) 1089 - 1091: 6(float) Load 85(inF0) - 1092: 60 Load 89(inFM0) - 1093: 60 MatrixTimesScalar 1092 1091 + 1091: 60 Load 89(inFM0) + 1092: 6(float) Load 85(inF0) + 1093: 60 MatrixTimesScalar 1091 1092 Store 1090(r7) 1093 - 1095: 60 Load 89(inFM0) - 1096: 60 Load 90(inFM1) + 1095: 60 Load 90(inFM1) + 1096: 60 Load 89(inFM0) 1097: 60 MatrixTimesMatrix 1095 1096 Store 1094(r8) 1097 Return @@ -4041,40 +4041,40 @@ Shader version: 450 1122(r6): 69(ptr) Variable Function 1126(r7): 69(ptr) Variable Function 1130(r8): 69(ptr) Variable Function - 1099: 6(float) Load 94(inF0) - 1100: 6(float) Load 95(inF1) + 1099: 6(float) Load 95(inF1) + 1100: 6(float) Load 94(inF0) 1101: 6(float) FMul 1099 1100 Store 1098(r0) 1101 - 1103: 36(fvec3) Load 96(inFV0) - 1104: 6(float) Load 94(inF0) - 1105: 36(fvec3) VectorTimesScalar 1103 1104 + 1103: 6(float) Load 94(inF0) + 1104: 36(fvec3) Load 96(inFV0) + 1105: 36(fvec3) VectorTimesScalar 1104 1103 Store 1102(r1) 1105 - 1107: 6(float) Load 94(inF0) - 1108: 36(fvec3) Load 96(inFV0) - 1109: 36(fvec3) VectorTimesScalar 1108 1107 + 1107: 36(fvec3) Load 96(inFV0) + 1108: 6(float) Load 94(inF0) + 1109: 36(fvec3) VectorTimesScalar 1107 1108 Store 1106(r2) 1109 1111: 36(fvec3) Load 96(inFV0) 1112: 36(fvec3) Load 97(inFV1) 1113: 6(float) Dot 1111 1112 Store 1110(r3) 1113 - 1115: 68 Load 98(inFM0) - 1116: 36(fvec3) Load 96(inFV0) - 1117: 36(fvec3) MatrixTimesVector 1115 1116 + 1115: 36(fvec3) Load 96(inFV0) + 1116: 68 Load 98(inFM0) + 1117: 36(fvec3) VectorTimesMatrix 1115 1116 Store 1114(r4) 1117 - 1119: 36(fvec3) Load 96(inFV0) - 1120: 68 Load 98(inFM0) - 1121: 36(fvec3) VectorTimesMatrix 1119 1120 + 1119: 68 Load 98(inFM0) + 1120: 36(fvec3) Load 96(inFV0) + 1121: 36(fvec3) MatrixTimesVector 1119 1120 Store 1118(r5) 1121 - 1123: 68 Load 98(inFM0) - 1124: 6(float) Load 94(inF0) - 1125: 68 MatrixTimesScalar 1123 1124 + 1123: 6(float) Load 94(inF0) + 1124: 68 Load 98(inFM0) + 1125: 68 MatrixTimesScalar 1124 1123 Store 1122(r6) 1125 - 1127: 6(float) Load 94(inF0) - 1128: 68 Load 98(inFM0) - 1129: 68 MatrixTimesScalar 1128 1127 + 1127: 68 Load 98(inFM0) + 1128: 6(float) Load 94(inF0) + 1129: 68 MatrixTimesScalar 1127 1128 Store 1126(r7) 1129 - 1131: 68 Load 98(inFM0) - 1132: 68 Load 99(inFM1) + 1131: 68 Load 99(inFM1) + 1132: 68 Load 98(inFM0) 1133: 68 MatrixTimesMatrix 1131 1132 Store 1130(r8) 1133 Return @@ -4096,45 +4096,45 @@ Shader version: 450 1158(r6): 77(ptr) Variable Function 1162(r7): 77(ptr) Variable Function 1166(r8): 77(ptr) Variable Function - 1135: 6(float) Load 103(inF0) - 1136: 6(float) Load 104(inF1) + 1135: 6(float) Load 104(inF1) + 1136: 6(float) Load 103(inF0) 1137: 6(float) FMul 1135 1136 Store 1134(r0) 1137 - 1139: 48(fvec4) Load 105(inFV0) - 1140: 6(float) Load 103(inF0) - 1141: 48(fvec4) VectorTimesScalar 1139 1140 + 1139: 6(float) Load 103(inF0) + 1140: 48(fvec4) Load 105(inFV0) + 1141: 48(fvec4) VectorTimesScalar 1140 1139 Store 1138(r1) 1141 - 1143: 6(float) Load 103(inF0) - 1144: 48(fvec4) Load 105(inFV0) - 1145: 48(fvec4) VectorTimesScalar 1144 1143 + 1143: 48(fvec4) Load 105(inFV0) + 1144: 6(float) Load 103(inF0) + 1145: 48(fvec4) VectorTimesScalar 1143 1144 Store 1142(r2) 1145 1147: 48(fvec4) Load 105(inFV0) 1148: 48(fvec4) Load 106(inFV1) 1149: 6(float) Dot 1147 1148 Store 1146(r3) 1149 - 1151: 76 Load 107(inFM0) - 1152: 48(fvec4) Load 105(inFV0) - 1153: 48(fvec4) MatrixTimesVector 1151 1152 + 1151: 48(fvec4) Load 105(inFV0) + 1152: 76 Load 107(inFM0) + 1153: 48(fvec4) VectorTimesMatrix 1151 1152 Store 1150(r4) 1153 - 1155: 48(fvec4) Load 105(inFV0) - 1156: 76 Load 107(inFM0) - 1157: 48(fvec4) VectorTimesMatrix 1155 1156 + 1155: 76 Load 107(inFM0) + 1156: 48(fvec4) Load 105(inFV0) + 1157: 48(fvec4) MatrixTimesVector 1155 1156 Store 1154(r5) 1157 - 1159: 76 Load 107(inFM0) - 1160: 6(float) Load 103(inF0) - 1161: 76 MatrixTimesScalar 1159 1160 + 1159: 6(float) Load 103(inF0) + 1160: 76 Load 107(inFM0) + 1161: 76 MatrixTimesScalar 1160 1159 Store 1158(r6) 1161 - 1163: 6(float) Load 103(inF0) - 1164: 76 Load 107(inFM0) - 1165: 76 MatrixTimesScalar 1164 1163 + 1163: 76 Load 107(inFM0) + 1164: 6(float) Load 103(inF0) + 1165: 76 MatrixTimesScalar 1163 1164 Store 1162(r7) 1165 - 1167: 76 Load 107(inFM0) - 1168: 76 Load 108(inFM1) + 1167: 76 Load 108(inFM1) + 1168: 76 Load 107(inFM0) 1169: 76 MatrixTimesMatrix 1167 1168 Store 1166(r8) 1169 Return FunctionEnd -129(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 119 +129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 120(inF0): 7(ptr) FunctionParameter 121(inF1): 7(ptr) FunctionParameter 122(inFV2): 25(ptr) FunctionParameter @@ -4162,25 +4162,25 @@ Shader version: 450 1226(r14): 112(ptr) Variable Function 1230(r15): 118(ptr) Variable Function 1234(r16): 116(ptr) Variable Function - 1171: 6(float) Load 120(inF0) - 1172: 6(float) Load 121(inF1) + 1171: 6(float) Load 121(inF1) + 1172: 6(float) Load 120(inF0) 1173: 6(float) FMul 1171 1172 Store 1170(r00) 1173 - 1175: 24(fvec2) Load 122(inFV2) - 1176: 6(float) Load 120(inF0) - 1177: 24(fvec2) VectorTimesScalar 1175 1176 + 1175: 6(float) Load 120(inF0) + 1176: 24(fvec2) Load 122(inFV2) + 1177: 24(fvec2) VectorTimesScalar 1176 1175 Store 1174(r01) 1177 - 1179: 36(fvec3) Load 123(inFV3) - 1180: 6(float) Load 120(inF0) - 1181: 36(fvec3) VectorTimesScalar 1179 1180 + 1179: 6(float) Load 120(inF0) + 1180: 36(fvec3) Load 123(inFV3) + 1181: 36(fvec3) VectorTimesScalar 1180 1179 Store 1178(r02) 1181 - 1183: 6(float) Load 120(inF0) - 1184: 24(fvec2) Load 122(inFV2) - 1185: 24(fvec2) VectorTimesScalar 1184 1183 + 1183: 24(fvec2) Load 122(inFV2) + 1184: 6(float) Load 120(inF0) + 1185: 24(fvec2) VectorTimesScalar 1183 1184 Store 1182(r03) 1185 - 1187: 6(float) Load 120(inF0) - 1188: 36(fvec3) Load 123(inFV3) - 1189: 36(fvec3) VectorTimesScalar 1188 1187 + 1187: 36(fvec3) Load 123(inFV3) + 1188: 6(float) Load 120(inF0) + 1189: 36(fvec3) VectorTimesScalar 1187 1188 Store 1186(r04) 1189 1191: 24(fvec2) Load 122(inFV2) 1192: 24(fvec2) Load 122(inFV2) @@ -4190,44 +4190,44 @@ Shader version: 450 1196: 36(fvec3) Load 123(inFV3) 1197: 6(float) Dot 1195 1196 Store 1194(r06) 1197 - 1199: 24(fvec2) Load 122(inFV2) - 1200: 111 Load 124(inFM2x3) - 1201: 36(fvec3) VectorTimesMatrix 1199 1200 + 1199: 111 Load 124(inFM2x3) + 1200: 24(fvec2) Load 122(inFV2) + 1201: 36(fvec3) MatrixTimesVector 1199 1200 Store 1198(r07) 1201 - 1203: 36(fvec3) Load 123(inFV3) - 1204: 113 Load 125(inFM3x2) - 1205: 24(fvec2) VectorTimesMatrix 1203 1204 + 1203: 113 Load 125(inFM3x2) + 1204: 36(fvec3) Load 123(inFV3) + 1205: 24(fvec2) MatrixTimesVector 1203 1204 Store 1202(r08) 1205 - 1207: 111 Load 124(inFM2x3) - 1208: 36(fvec3) Load 123(inFV3) - 1209: 24(fvec2) MatrixTimesVector 1207 1208 + 1207: 36(fvec3) Load 123(inFV3) + 1208: 111 Load 124(inFM2x3) + 1209: 24(fvec2) VectorTimesMatrix 1207 1208 Store 1206(r09) 1209 - 1211: 113 Load 125(inFM3x2) - 1212: 24(fvec2) Load 122(inFV2) - 1213: 36(fvec3) MatrixTimesVector 1211 1212 + 1211: 24(fvec2) Load 122(inFV2) + 1212: 113 Load 125(inFM3x2) + 1213: 36(fvec3) VectorTimesMatrix 1211 1212 Store 1210(r10) 1213 - 1215: 111 Load 124(inFM2x3) - 1216: 6(float) Load 120(inF0) - 1217: 111 MatrixTimesScalar 1215 1216 + 1215: 6(float) Load 120(inF0) + 1216: 111 Load 124(inFM2x3) + 1217: 111 MatrixTimesScalar 1216 1215 Store 1214(r11) 1217 - 1219: 113 Load 125(inFM3x2) - 1220: 6(float) Load 120(inF0) - 1221: 113 MatrixTimesScalar 1219 1220 + 1219: 6(float) Load 120(inF0) + 1220: 113 Load 125(inFM3x2) + 1221: 113 MatrixTimesScalar 1220 1219 Store 1218(r12) 1221 - 1223: 111 Load 124(inFM2x3) - 1224: 113 Load 125(inFM3x2) + 1223: 113 Load 125(inFM3x2) + 1224: 111 Load 124(inFM2x3) 1225: 60 MatrixTimesMatrix 1223 1224 Store 1222(r13) 1225 - 1227: 111 Load 124(inFM2x3) - 1228: 68 Load 126(inFM3x3) + 1227: 68 Load 126(inFM3x3) + 1228: 111 Load 124(inFM2x3) 1229: 111 MatrixTimesMatrix 1227 1228 Store 1226(r14) 1229 - 1231: 111 Load 124(inFM2x3) - 1232: 115 Load 127(inFM3x4) + 1231: 115 Load 127(inFM3x4) + 1232: 111 Load 124(inFM2x3) 1233: 117 MatrixTimesMatrix 1231 1232 Store 1230(r15) 1233 - 1235: 113 Load 125(inFM3x2) - 1236: 117 Load 128(inFM2x4) + 1235: 117 Load 128(inFM2x4) + 1236: 113 Load 125(inFM3x2) 1237: 115 MatrixTimesMatrix 1235 1236 Store 1234(r16) 1237 Return diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 20fdcc98..2d63460b 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -17,9 +17,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'f1' (global 1-component vector of float) 0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 1X4 matrix of float) -0:? 'fmat12' (global 2X1 matrix of float) -0:? 'dmat23' (global 3X2 matrix of double) +0:? 'fmat41' (global 4X1 matrix of float) +0:? 'fmat12' (global 1X2 matrix of float) +0:? 'dmat23' (global 2X3 matrix of double) 0:? 'int44' (global 4X4 matrix of int) @@ -44,9 +44,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'f1' (global 1-component vector of float) 0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 1X4 matrix of float) -0:? 'fmat12' (global 2X1 matrix of float) -0:? 'dmat23' (global 3X2 matrix of double) +0:? 'fmat41' (global 4X1 matrix of float) +0:? 'fmat12' (global 1X2 matrix of float) +0:? 'dmat23' (global 2X3 matrix of double) 0:? 'int44' (global 4X4 matrix of int) // Module Version 10000 @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left Name 10 "inScalar" Name 14 "f1" Name 22 "fmat11" - Name 26 "fmat41" + Name 25 "fmat41" Name 29 "fmat12" Name 34 "dmat23" Name 39 "int44" @@ -81,16 +81,16 @@ gl_FragCoord origin is upper left 20: TypeMatrix 19(fvec) 1 21: TypePointer Private 20 22(fmat11): 21(ptr) Variable Private - 23: TypeVector 6(float) 4 - 24: TypeMatrix 23(fvec4) 1 - 25: TypePointer Private 24 - 26(fmat41): 25(ptr) Variable Private - 27: TypeMatrix 19(fvec) 2 + 23: TypeMatrix 19(fvec) 4 + 24: TypePointer Private 23 + 25(fmat41): 24(ptr) Variable Private + 26: TypeVector 6(float) 2 + 27: TypeMatrix 26(fvec2) 1 28: TypePointer Private 27 29(fmat12): 28(ptr) Variable Private 30: TypeFloat 64 - 31: TypeVector 30(float) 2 - 32: TypeMatrix 31(fvec2) 3 + 31: TypeVector 30(float) 3 + 32: TypeMatrix 31(fvec3) 2 33: TypePointer Private 32 34(dmat23): 33(ptr) Variable Private 35: TypeInt 32 1 diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out new file mode 100644 index 00000000..8524fe6e --- /dev/null +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -0,0 +1,369 @@ +hlsl.matrixindex.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child (temp float) +0:22 'e1_00' (temp float) +0:22 Constant: +0:22 10.000000 +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'e1_01' (temp float) +0:23 Constant: +0:23 11.000000 +0:24 Sequence +0:24 move second child to first child (temp float) +0:24 'e1_10' (temp float) +0:24 Constant: +0:24 12.000000 +0:25 Sequence +0:25 move second child to first child (temp float) +0:25 'e1_11' (temp float) +0:25 Constant: +0:25 13.000000 +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'e1_20' (temp float) +0:26 Constant: +0:26 14.000000 +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'e1_21' (temp float) +0:27 Constant: +0:27 15.000000 +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'e2_00' (temp float) +0:29 Constant: +0:29 20.000000 +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'e2_01' (temp float) +0:30 Constant: +0:30 21.000000 +0:31 Sequence +0:31 move second child to first child (temp float) +0:31 'e2_10' (temp float) +0:31 Constant: +0:31 22.000000 +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'e2_11' (temp float) +0:32 Constant: +0:32 23.000000 +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'e2_20' (temp float) +0:33 Constant: +0:33 24.000000 +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'e2_21' (temp float) +0:34 Constant: +0:34 25.000000 +0:39 Sequence +0:39 move second child to first child (temp 2-component vector of float) +0:39 'r0a' (temp 2-component vector of float) +0:39 Constant: +0:39 10.000000 +0:39 11.000000 +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r1a' (temp 2-component vector of float) +0:40 Constant: +0:40 12.000000 +0:40 13.000000 +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of float) +0:41 'r2a' (temp 2-component vector of float) +0:41 Constant: +0:41 14.000000 +0:41 15.000000 +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r0b' (temp 2-component vector of float) +0:43 indirect index (temp 2-component vector of float) +0:43 Constant: +0:43 20.000000 +0:43 21.000000 +0:43 22.000000 +0:43 23.000000 +0:43 24.000000 +0:43 25.000000 +0:43 'idx' (uniform int) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r0c' (temp 2-component vector of float) +0:44 indirect index (temp 2-component vector of float) +0:44 'um' (uniform 3X2 matrix of float) +0:44 'idx' (uniform int) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Construct vec4 (temp 4-component vector of float) +0:47 'e2_11' (temp float) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Branch: Return +0:? Linker Objects +0:? 'idx' (uniform int) +0:? 'um' (uniform 3X2 matrix of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:22 Sequence +0:22 move second child to first child (temp float) +0:22 'e1_00' (temp float) +0:22 Constant: +0:22 10.000000 +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'e1_01' (temp float) +0:23 Constant: +0:23 11.000000 +0:24 Sequence +0:24 move second child to first child (temp float) +0:24 'e1_10' (temp float) +0:24 Constant: +0:24 12.000000 +0:25 Sequence +0:25 move second child to first child (temp float) +0:25 'e1_11' (temp float) +0:25 Constant: +0:25 13.000000 +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'e1_20' (temp float) +0:26 Constant: +0:26 14.000000 +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'e1_21' (temp float) +0:27 Constant: +0:27 15.000000 +0:29 Sequence +0:29 move second child to first child (temp float) +0:29 'e2_00' (temp float) +0:29 Constant: +0:29 20.000000 +0:30 Sequence +0:30 move second child to first child (temp float) +0:30 'e2_01' (temp float) +0:30 Constant: +0:30 21.000000 +0:31 Sequence +0:31 move second child to first child (temp float) +0:31 'e2_10' (temp float) +0:31 Constant: +0:31 22.000000 +0:32 Sequence +0:32 move second child to first child (temp float) +0:32 'e2_11' (temp float) +0:32 Constant: +0:32 23.000000 +0:33 Sequence +0:33 move second child to first child (temp float) +0:33 'e2_20' (temp float) +0:33 Constant: +0:33 24.000000 +0:34 Sequence +0:34 move second child to first child (temp float) +0:34 'e2_21' (temp float) +0:34 Constant: +0:34 25.000000 +0:39 Sequence +0:39 move second child to first child (temp 2-component vector of float) +0:39 'r0a' (temp 2-component vector of float) +0:39 Constant: +0:39 10.000000 +0:39 11.000000 +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r1a' (temp 2-component vector of float) +0:40 Constant: +0:40 12.000000 +0:40 13.000000 +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of float) +0:41 'r2a' (temp 2-component vector of float) +0:41 Constant: +0:41 14.000000 +0:41 15.000000 +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r0b' (temp 2-component vector of float) +0:43 indirect index (temp 2-component vector of float) +0:43 Constant: +0:43 20.000000 +0:43 21.000000 +0:43 22.000000 +0:43 23.000000 +0:43 24.000000 +0:43 25.000000 +0:43 'idx' (uniform int) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r0c' (temp 2-component vector of float) +0:44 indirect index (temp 2-component vector of float) +0:44 'um' (uniform 3X2 matrix of float) +0:44 'idx' (uniform int) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Construct vec4 (temp 4-component vector of float) +0:47 'e2_11' (temp float) +0:48 Sequence +0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Branch: Return +0:? Linker Objects +0:? 'idx' (uniform int) +0:? 'um' (uniform 3X2 matrix of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 74 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 71 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "e1_00" + Name 10 "e1_01" + Name 12 "e1_10" + Name 14 "e1_11" + Name 16 "e1_20" + Name 18 "e1_21" + Name 20 "e2_00" + Name 22 "e2_01" + Name 24 "e2_10" + Name 26 "e2_11" + Name 28 "e2_20" + Name 30 "e2_21" + Name 34 "r0a" + Name 36 "r1a" + Name 38 "r2a" + Name 40 "r0b" + Name 48 "idx" + Name 51 "indexable" + Name 54 "r0c" + Name 56 "um" + Name 62 "PS_OUTPUT" + MemberName 62(PS_OUTPUT) 0 "Color" + Name 64 "psout" + Name 71 "@entryPointOutput" + Decorate 71(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1092616192 + 11: 6(float) Constant 1093664768 + 13: 6(float) Constant 1094713344 + 15: 6(float) Constant 1095761920 + 17: 6(float) Constant 1096810496 + 19: 6(float) Constant 1097859072 + 21: 6(float) Constant 1101004800 + 23: 6(float) Constant 1101529088 + 25: 6(float) Constant 1102053376 + 27: 6(float) Constant 1102577664 + 29: 6(float) Constant 1103101952 + 31: 6(float) Constant 1103626240 + 32: TypeVector 6(float) 2 + 33: TypePointer Function 32(fvec2) + 35: 32(fvec2) ConstantComposite 9 11 + 37: 32(fvec2) ConstantComposite 13 15 + 39: 32(fvec2) ConstantComposite 17 19 + 41: TypeMatrix 32(fvec2) 3 + 42: 32(fvec2) ConstantComposite 21 23 + 43: 32(fvec2) ConstantComposite 25 27 + 44: 32(fvec2) ConstantComposite 29 31 + 45: 41 ConstantComposite 42 43 44 + 46: TypeInt 32 1 + 47: TypePointer UniformConstant 46(int) + 48(idx): 47(ptr) Variable UniformConstant + 50: TypePointer Function 41 + 55: TypePointer UniformConstant 41 + 56(um): 55(ptr) Variable UniformConstant + 58: TypePointer UniformConstant 32(fvec2) + 61: TypeVector 6(float) 4 + 62(PS_OUTPUT): TypeStruct 61(fvec4) + 63: TypePointer Function 62(PS_OUTPUT) + 65: 46(int) Constant 0 + 68: TypePointer Function 61(fvec4) + 70: TypePointer Output 62(PS_OUTPUT) +71(@entryPointOutput): 70(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(e1_00): 7(ptr) Variable Function + 10(e1_01): 7(ptr) Variable Function + 12(e1_10): 7(ptr) Variable Function + 14(e1_11): 7(ptr) Variable Function + 16(e1_20): 7(ptr) Variable Function + 18(e1_21): 7(ptr) Variable Function + 20(e2_00): 7(ptr) Variable Function + 22(e2_01): 7(ptr) Variable Function + 24(e2_10): 7(ptr) Variable Function + 26(e2_11): 7(ptr) Variable Function + 28(e2_20): 7(ptr) Variable Function + 30(e2_21): 7(ptr) Variable Function + 34(r0a): 33(ptr) Variable Function + 36(r1a): 33(ptr) Variable Function + 38(r2a): 33(ptr) Variable Function + 40(r0b): 33(ptr) Variable Function + 51(indexable): 50(ptr) Variable Function + 54(r0c): 33(ptr) Variable Function + 64(psout): 63(ptr) Variable Function + Store 8(e1_00) 9 + Store 10(e1_01) 11 + Store 12(e1_10) 13 + Store 14(e1_11) 15 + Store 16(e1_20) 17 + Store 18(e1_21) 19 + Store 20(e2_00) 21 + Store 22(e2_01) 23 + Store 24(e2_10) 25 + Store 26(e2_11) 27 + Store 28(e2_20) 29 + Store 30(e2_21) 31 + Store 34(r0a) 35 + Store 36(r1a) 37 + Store 38(r2a) 39 + 49: 46(int) Load 48(idx) + Store 51(indexable) 45 + 52: 33(ptr) AccessChain 51(indexable) 49 + 53: 32(fvec2) Load 52 + Store 40(r0b) 53 + 57: 46(int) Load 48(idx) + 59: 58(ptr) AccessChain 56(um) 57 + 60: 32(fvec2) Load 59 + Store 54(r0c) 60 + 66: 6(float) Load 26(e2_11) + 67: 61(fvec4) CompositeConstruct 66 66 66 66 + 69: 68(ptr) AccessChain 64(psout) 65 + Store 69 67 + 72:62(PS_OUTPUT) Load 64(psout) + Store 71(@entryPointOutput) 72 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 1cbd292e..76de8910 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -192,8 +192,8 @@ gl_FragCoord origin is upper left 0:? 14.000000 0:? 15.000000 0:35 Sequence -0:35 move second child to first child (temp 3X2 matrix of float) -0:35 'r61' (temp 3X2 matrix of float) +0:35 move second child to first child (temp 2X3 matrix of float) +0:35 'r61' (temp 2X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -202,8 +202,8 @@ gl_FragCoord origin is upper left 0:? 5.000000 0:? 6.000000 0:36 Sequence -0:36 move second child to first child (temp 2X3 matrix of float) -0:36 'r62' (temp 2X3 matrix of float) +0:36 move second child to first child (temp 3X2 matrix of float) +0:36 'r62' (temp 3X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -212,8 +212,8 @@ gl_FragCoord origin is upper left 0:? 5.000000 0:? 6.000000 0:39 Sequence -0:39 move second child to first child (temp 2X4 matrix of float) -0:39 'r65' (temp 2X4 matrix of float) +0:39 move second child to first child (temp 4X2 matrix of float) +0:39 'r65' (temp 4X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -224,8 +224,8 @@ gl_FragCoord origin is upper left 0:? 7.000000 0:? 8.000000 0:40 Sequence -0:40 move second child to first child (temp 3X4 matrix of float) -0:40 'r66' (temp 3X4 matrix of float) +0:40 move second child to first child (temp 4X3 matrix of float) +0:40 'r66' (temp 4X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -444,8 +444,8 @@ gl_FragCoord origin is upper left 0:? 14.000000 0:? 15.000000 0:35 Sequence -0:35 move second child to first child (temp 3X2 matrix of float) -0:35 'r61' (temp 3X2 matrix of float) +0:35 move second child to first child (temp 2X3 matrix of float) +0:35 'r61' (temp 2X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -454,8 +454,8 @@ gl_FragCoord origin is upper left 0:? 5.000000 0:? 6.000000 0:36 Sequence -0:36 move second child to first child (temp 2X3 matrix of float) -0:36 'r62' (temp 2X3 matrix of float) +0:36 move second child to first child (temp 3X2 matrix of float) +0:36 'r62' (temp 3X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -464,8 +464,8 @@ gl_FragCoord origin is upper left 0:? 5.000000 0:? 6.000000 0:39 Sequence -0:39 move second child to first child (temp 2X4 matrix of float) -0:39 'r65' (temp 2X4 matrix of float) +0:39 move second child to first child (temp 4X2 matrix of float) +0:39 'r65' (temp 4X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -476,8 +476,8 @@ gl_FragCoord origin is upper left 0:? 7.000000 0:? 8.000000 0:40 Sequence -0:40 move second child to first child (temp 3X4 matrix of float) -0:40 'r66' (temp 3X4 matrix of float) +0:40 move second child to first child (temp 4X3 matrix of float) +0:40 'r66' (temp 4X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 @@ -501,13 +501,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 147 +// Id's are bound by 148 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 145 + EntryPoint Fragment 4 "PixelShaderFunction" 146 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "r00" @@ -535,11 +535,11 @@ gl_FragCoord origin is upper left Name 105 "r50" Name 122 "r51" Name 125 "r61" - Name 131 "r62" + Name 130 "r62" Name 136 "r65" Name 141 "r66" - Name 145 "@entryPointOutput" - Decorate 145(@entryPointOutput) Location 0 + Name 146 "@entryPointOutput" + Decorate 146(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -635,25 +635,26 @@ gl_FragCoord origin is upper left 119: 6(float) Constant 1097859072 120: 7(fvec4) ConstantComposite 116 117 118 119 121: 103 ConstantComposite 107 110 115 120 - 123: TypeMatrix 46(fvec2) 3 + 123: TypeMatrix 69(fvec3) 2 124: TypePointer Function 123 - 126: 46(fvec2) ConstantComposite 12 13 - 127: 46(fvec2) ConstantComposite 16 108 - 128: 123 ConstantComposite 49 126 127 - 129: TypeMatrix 69(fvec3) 2 - 130: TypePointer Function 129 - 132: 69(fvec3) ConstantComposite 13 16 108 - 133: 129 ConstantComposite 72 132 - 134: TypeMatrix 7(fvec4) 2 + 126: 69(fvec3) ConstantComposite 13 16 108 + 127: 123 ConstantComposite 72 126 + 128: TypeMatrix 46(fvec2) 3 + 129: TypePointer Function 128 + 131: 46(fvec2) ConstantComposite 12 13 + 132: 46(fvec2) ConstantComposite 16 108 + 133: 128 ConstantComposite 49 131 132 + 134: TypeMatrix 46(fvec2) 4 135: TypePointer Function 134 - 137: 7(fvec4) ConstantComposite 16 108 109 111 - 138: 134 ConstantComposite 14 137 - 139: TypeMatrix 7(fvec4) 3 + 137: 46(fvec2) ConstantComposite 109 111 + 138: 134 ConstantComposite 49 131 132 137 + 139: TypeMatrix 69(fvec3) 4 140: TypePointer Function 139 - 142: 7(fvec4) ConstantComposite 112 113 114 116 - 143: 139 ConstantComposite 14 137 142 - 144: TypePointer Output 6(float) -145(@entryPointOutput): 144(ptr) Variable Output + 142: 69(fvec3) ConstantComposite 109 111 112 + 143: 69(fvec3) ConstantComposite 113 114 116 + 144: 139 ConstantComposite 72 126 142 143 + 145: TypePointer Output 6(float) +146(@entryPointOutput): 145(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -681,7 +682,7 @@ gl_FragCoord origin is upper left 105(r50): 104(ptr) Variable Function 122(r51): 104(ptr) Variable Function 125(r61): 124(ptr) Variable Function - 131(r62): 130(ptr) Variable Function + 130(r62): 129(ptr) Variable Function 136(r65): 135(ptr) Variable Function 141(r66): 140(ptr) Variable Function Store 9(r00) 14 @@ -708,10 +709,10 @@ gl_FragCoord origin is upper left Store 100(r44) 102 Store 105(r50) 121 Store 122(r51) 121 - Store 125(r61) 128 - Store 131(r62) 133 + Store 125(r61) 127 + Store 130(r62) 133 Store 136(r65) 138 - Store 141(r66) 143 - Store 145(@entryPointOutput) 106 + Store 141(r66) 144 + Store 146(@entryPointOutput) 106 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 1878c64d..741f7098 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 144 +// Id's are bound by 145 Capability Shader Capability Float64 @@ -39,7 +39,7 @@ Linked fragment stage: Name 105 "r50" Name 122 "r51" Name 125 "r61" - Name 131 "r62" + Name 130 "r62" Name 136 "r65" Name 141 "r66" 2: TypeVoid @@ -137,23 +137,24 @@ Linked fragment stage: 119: 6(float) Constant 1097859072 120: 7(fvec4) ConstantComposite 116 117 118 119 121: 103 ConstantComposite 107 110 115 120 - 123: TypeMatrix 46(fvec2) 3 + 123: TypeMatrix 69(fvec3) 2 124: TypePointer Function 123 - 126: 46(fvec2) ConstantComposite 12 13 - 127: 46(fvec2) ConstantComposite 16 108 - 128: 123 ConstantComposite 49 126 127 - 129: TypeMatrix 69(fvec3) 2 - 130: TypePointer Function 129 - 132: 69(fvec3) ConstantComposite 13 16 108 - 133: 129 ConstantComposite 72 132 - 134: TypeMatrix 7(fvec4) 2 + 126: 69(fvec3) ConstantComposite 13 16 108 + 127: 123 ConstantComposite 72 126 + 128: TypeMatrix 46(fvec2) 3 + 129: TypePointer Function 128 + 131: 46(fvec2) ConstantComposite 12 13 + 132: 46(fvec2) ConstantComposite 16 108 + 133: 128 ConstantComposite 49 131 132 + 134: TypeMatrix 46(fvec2) 4 135: TypePointer Function 134 - 137: 7(fvec4) ConstantComposite 16 108 109 111 - 138: 134 ConstantComposite 14 137 - 139: TypeMatrix 7(fvec4) 3 + 137: 46(fvec2) ConstantComposite 109 111 + 138: 134 ConstantComposite 49 131 132 137 + 139: TypeMatrix 69(fvec3) 4 140: TypePointer Function 139 - 142: 7(fvec4) ConstantComposite 112 113 114 116 - 143: 139 ConstantComposite 14 137 142 + 142: 69(fvec3) ConstantComposite 109 111 112 + 143: 69(fvec3) ConstantComposite 113 114 116 + 144: 139 ConstantComposite 72 126 142 143 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -181,7 +182,7 @@ Linked fragment stage: 105(r50): 104(ptr) Variable Function 122(r51): 104(ptr) Variable Function 125(r61): 124(ptr) Variable Function - 131(r62): 130(ptr) Variable Function + 130(r62): 129(ptr) Variable Function 136(r65): 135(ptr) Variable Function 141(r66): 140(ptr) Variable Function Store 9(r00) 14 @@ -208,9 +209,9 @@ Linked fragment stage: Store 100(r44) 102 Store 105(r50) 121 Store 122(r51) 121 - Store 125(r61) 128 - Store 131(r62) 133 + Store 125(r61) 127 + Store 130(r62) 133 Store 136(r65) 138 - Store 141(r66) 143 + Store 141(r66) 144 ReturnValue 106 FunctionEnd diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index b55c2428..c04acaed 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -482,3 +482,12 @@ void TestGenMulNxM(float inF0, float inF1, float2x4 r15 = mul(inFM2x3, inFM3x4); float3x4 r16 = mul(inFM3x2, inFM2x4); } + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/Test/hlsl.matrixindex.frag b/Test/hlsl.matrixindex.frag new file mode 100644 index 00000000..f352c0e5 --- /dev/null +++ b/Test/hlsl.matrixindex.frag @@ -0,0 +1,49 @@ +uniform int idx; +uniform float3x2 um; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + // matrices of 3 rows, 2 columns (regardless of row vs col major storage) + const float3x2 m1 = { { 10, 11 }, // row-wise initialization + { 12, 13 }, + { 14, 15 } }; + + const float3x2 m2 = { 20, 21, 22, 23, 24, 25 }; // component-wise matrix initialization is allowed + const float3x2 m3 = { 30, 31, 33, 33, 34, 35 }; // component-wise matrix initialization is allowed + + // These can be observed in the AST post-const folding to ensure we obtain the right value, + // as given in comments to the right of each line. Note that the first indirection into a + // matrix returns a row vector. + float e1_00 = m1[0][0]; // 10 + float e1_01 = m1[0][1]; // 11 + float e1_10 = m1[1][0]; // 12 + float e1_11 = m1[1][1]; // 13 + float e1_20 = m1[2][0]; // 14 + float e1_21 = m1[2][1]; // 15 + + float e2_00 = m2[0][0]; // 20 + float e2_01 = m2[0][1]; // 21 + float e2_10 = m2[1][0]; // 22 + float e2_11 = m2[1][1]; // 23 + float e2_20 = m2[2][0]; // 24 + float e2_21 = m2[2][1]; // 25 + + // float e3a_00 = m3._m00; // TODO... also as an lvalue for a non-const matrix + // float e3b_00 = m3._11; // TODO... also as an lvalue for a non-const matrix + + float2 r0a = m1[0]; // row0: 10,11: types must match: constant index into constant + float2 r1a = m1[1]; // row1: 12,13: ... + float2 r2a = m1[2]; // row2: 14,15: ... + + float2 r0b = m2[idx]; // types should match: variable index into constant + float2 r0c = um[idx]; // types should match: variable index into variable + + PS_OUTPUT psout; + psout.Color = e2_11; // 23 + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 0ebc17e6..5b420929 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -110,7 +110,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.evalfns.frag", "main"}, {"hlsl.intrinsics.double.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.f1632.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.frag", "main"}, {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, @@ -124,6 +124,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, + {"hlsl.matrixindex.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e94d6eb7..bad6034d 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -711,8 +711,8 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) return false; new(&type) TType(basicType, EvqTemporary, 0, - cols->getAsConstantUnion()->getConstArray()[0].getIConst(), - rows->getAsConstantUnion()->getConstArray()[0].getIConst()); + rows->getAsConstantUnion()->getConstArray()[0].getIConst(), + cols->getAsConstantUnion()->getConstArray()[0].getIConst()); if (!acceptTokenClass(EHTokRightAngle)) { expected("right angle bracket"); @@ -1031,46 +1031,46 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1); break; case EHTokInt1x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 1); + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 2); break; case EHTokInt1x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 1); + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 3); break; case EHTokInt1x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 1); + new(&type) TType(EbtInt, EvqTemporary, 0, 1, 4); break; case EHTokInt2x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 2); + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 1); break; case EHTokInt2x2: new(&type) TType(EbtInt, EvqTemporary, 0, 2, 2); break; case EHTokInt2x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 2); + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 3); break; case EHTokInt2x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 2); + new(&type) TType(EbtInt, EvqTemporary, 0, 2, 4); break; case EHTokInt3x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 3); + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 1); break; case EHTokInt3x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 3); + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 2); break; case EHTokInt3x3: new(&type) TType(EbtInt, EvqTemporary, 0, 3, 3); break; case EHTokInt3x4: - new(&type) TType(EbtInt, EvqTemporary, 0, 4, 3); + new(&type) TType(EbtInt, EvqTemporary, 0, 3, 4); break; case EHTokInt4x1: - new(&type) TType(EbtInt, EvqTemporary, 0, 1, 4); + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 1); break; case EHTokInt4x2: - new(&type) TType(EbtInt, EvqTemporary, 0, 2, 4); + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 2); break; case EHTokInt4x3: - new(&type) TType(EbtInt, EvqTemporary, 0, 3, 4); + new(&type) TType(EbtInt, EvqTemporary, 0, 4, 3); break; case EHTokInt4x4: new(&type) TType(EbtInt, EvqTemporary, 0, 4, 4); @@ -1080,46 +1080,46 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtUint, EvqTemporary, 0, 1, 1); break; case EHTokUint1x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 1); + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 2); break; case EHTokUint1x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 1); + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 3); break; case EHTokUint1x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 1); + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 4); break; case EHTokUint2x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 2); + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 1); break; case EHTokUint2x2: new(&type) TType(EbtUint, EvqTemporary, 0, 2, 2); break; case EHTokUint2x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 2); + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 3); break; case EHTokUint2x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 2); + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 4); break; case EHTokUint3x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 3); + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 1); break; case EHTokUint3x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 3); + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 2); break; case EHTokUint3x3: new(&type) TType(EbtUint, EvqTemporary, 0, 3, 3); break; case EHTokUint3x4: - new(&type) TType(EbtUint, EvqTemporary, 0, 4, 3); + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 4); break; case EHTokUint4x1: - new(&type) TType(EbtUint, EvqTemporary, 0, 1, 4); + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 1); break; case EHTokUint4x2: - new(&type) TType(EbtUint, EvqTemporary, 0, 2, 4); + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 2); break; case EHTokUint4x3: - new(&type) TType(EbtUint, EvqTemporary, 0, 3, 4); + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 3); break; case EHTokUint4x4: new(&type) TType(EbtUint, EvqTemporary, 0, 4, 4); @@ -1129,46 +1129,46 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtBool, EvqTemporary, 0, 1, 1); break; case EHTokBool1x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 1); + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 2); break; case EHTokBool1x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 1); + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 3); break; case EHTokBool1x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 1); + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 4); break; case EHTokBool2x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 2); + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 1); break; case EHTokBool2x2: new(&type) TType(EbtBool, EvqTemporary, 0, 2, 2); break; case EHTokBool2x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 2); + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 3); break; case EHTokBool2x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 2); + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 4); break; case EHTokBool3x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 3); + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 1); break; case EHTokBool3x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 3); + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 2); break; case EHTokBool3x3: new(&type) TType(EbtBool, EvqTemporary, 0, 3, 3); break; case EHTokBool3x4: - new(&type) TType(EbtBool, EvqTemporary, 0, 4, 3); + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 4); break; case EHTokBool4x1: - new(&type) TType(EbtBool, EvqTemporary, 0, 1, 4); + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 1); break; case EHTokBool4x2: - new(&type) TType(EbtBool, EvqTemporary, 0, 2, 4); + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 2); break; case EHTokBool4x3: - new(&type) TType(EbtBool, EvqTemporary, 0, 3, 4); + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 3); break; case EHTokBool4x4: new(&type) TType(EbtBool, EvqTemporary, 0, 4, 4); @@ -1178,46 +1178,46 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 1); break; case EHTokFloat1x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 1); + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 2); break; case EHTokFloat1x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 1); + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 3); break; case EHTokFloat1x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 1); + new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 4); break; case EHTokFloat2x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 2); + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 1); break; case EHTokFloat2x2: new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 2); break; case EHTokFloat2x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 2); + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 3); break; case EHTokFloat2x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 2); + new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 4); break; case EHTokFloat3x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 3); + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 1); break; case EHTokFloat3x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 3); + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 2); break; case EHTokFloat3x3: new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 3); break; case EHTokFloat3x4: - new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 3); + new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 4); break; case EHTokFloat4x1: - new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 4); + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 1); break; case EHTokFloat4x2: - new(&type) TType(EbtFloat, EvqTemporary, 0, 2, 4); + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 2); break; case EHTokFloat4x3: - new(&type) TType(EbtFloat, EvqTemporary, 0, 3, 4); + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 3); break; case EHTokFloat4x4: new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 4); @@ -1227,46 +1227,46 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 1); break; case EHTokDouble1x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 1); + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 2); break; case EHTokDouble1x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 1); + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 3); break; case EHTokDouble1x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 1); + new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 4); break; case EHTokDouble2x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 2); + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 1); break; case EHTokDouble2x2: new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 2); break; case EHTokDouble2x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 2); + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 3); break; case EHTokDouble2x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 2); + new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 4); break; case EHTokDouble3x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 3); + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 1); break; case EHTokDouble3x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 3); + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 2); break; case EHTokDouble3x3: new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 3); break; case EHTokDouble3x4: - new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 3); + new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 4); break; case EHTokDouble4x1: - new(&type) TType(EbtDouble, EvqTemporary, 0, 1, 4); + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 1); break; case EHTokDouble4x2: - new(&type) TType(EbtDouble, EvqTemporary, 0, 2, 4); + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 2); break; case EHTokDouble4x3: - new(&type) TType(EbtDouble, EvqTemporary, 0, 3, 4); + new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 3); break; case EHTokDouble4x4: new(&type) TType(EbtDouble, EvqTemporary, 0, 4, 4); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 282fabd0..37c2ae70 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1597,8 +1597,10 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& case EOpGenMul: { // mul(a,b) -> MatrixTimesMatrix, MatrixTimesVector, MatrixTimesScalar, VectorTimesScalar, Dot, Mul - TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + // Since we are treating HLSL rows like GLSL columns (the first matrix indirection), + // we must reverse the operand order here. Hence, arg0 gets sequence[1], etc. + TIntermTyped* arg0 = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[0]->getAsTyped(); if (arg0->isVector() && arg1->isVector()) { // vec * vec node->getAsAggregate()->setOperator(EOpDot); @@ -4144,15 +4146,21 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co return nullptr; } } else if (type.isMatrix()) { - if (type.getMatrixCols() != (int)initList->getSequence().size()) { - error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str()); - return nullptr; - } - TType vectorType(type, 0); // dereferenced type - for (int i = 0; i < type.getMatrixCols(); ++i) { - initList->getSequence()[i] = convertInitializerList(loc, vectorType, initList->getSequence()[i]->getAsTyped()); - if (initList->getSequence()[i] == nullptr) + if (type.computeNumComponents() == (int)initList->getSequence().size()) { + // This means the matrix is initialized component-wise, rather than as + // a series of rows and columns. We can just use the list directly as + // a constructor; no further processing needed. + } else { + if (type.getMatrixCols() != (int)initList->getSequence().size()) { + error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str()); return nullptr; + } + TType vectorType(type, 0); // dereferenced type + for (int i = 0; i < type.getMatrixCols(); ++i) { + initList->getSequence()[i] = convertInitializerList(loc, vectorType, initList->getSequence()[i]->getAsTyped()); + if (initList->getSequence()[i] == nullptr) + return nullptr; + } } } else if (type.isVector()) { if (type.getVectorSize() != (int)initList->getSequence().size()) { diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 868a41ea..3f725997 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -218,7 +218,6 @@ int FixedVecSize(const char* arg) glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) { const bool isTranspose = (argOrder[0] == '^'); - const bool isMatMul = (argOrder[0] == '#'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsTextureArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); @@ -229,8 +228,6 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (isTranspose) { // Take transpose of matrix dimensions std::swap(dim0, dim1); - } else if (isMatMul) { - dim0 = dim1; // set vector dimension to mat col } else if (isTexture) { if (type == 'F') // map base type to texture of that type. type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. @@ -240,7 +237,7 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons type = 'u'; } - if (isTranspose || isMatMul) + if (isTranspose) ++argOrder; char order = *argOrder; @@ -312,16 +309,14 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons switch (order) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars - case 'V': s += ('0' + char(dim0)); break; + case 'V': + s += ('0' + char(dim0)); + break; case 'M': - { - if (!UseHlslTypes) // GLSL has column first for mat types - std::swap(dim0, dim1); - s += ('0' + char(dim0)); - s += 'x'; - s += ('0' + char(dim1)); - break; - } + s += ('0' + char(dim0)); + s += 'x'; + s += ('0' + char(dim1)); + break; default: break; } @@ -427,6 +422,7 @@ void TBuiltInParseablesHlsl::createMatTimesMat() const int retRows = xRows; const int retCols = yCols; + // Create a mat * mat of the appropriate dimensions AppendTypeName(s, "M", "F", retRows, retCols); // add return type s.append(" "); // space between type and name s.append("mul"); // intrinsic name @@ -438,6 +434,31 @@ void TBuiltInParseablesHlsl::createMatTimesMat() s.append(");\n"); // close paren } + + // Create M*V + AppendTypeName(s, "V", "F", xRows, 1); // add return type + s.append(" "); // space between type and name + s.append("mul"); // intrinsic name + s.append("("); // open paren + + AppendTypeName(s, "M", "F", xRows, xCols); // add X input + s.append(", "); + AppendTypeName(s, "V", "F", xCols, 1); // add Y input + + s.append(");\n"); // close paren + + + // Create V*M + AppendTypeName(s, "V", "F", xCols, 1); // add return type + s.append(" "); // space between type and name + s.append("mul"); // intrinsic name + s.append("("); // open paren + + AppendTypeName(s, "V", "F", xRows, 1); // add Y input + s.append(", "); + AppendTypeName(s, "M", "F", xRows, xCols); // add X input + + s.append(");\n"); // close paren } } } @@ -482,7 +503,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter // '^' as first letter of order takes transpose dimensions - // '#' as first letter of order sets rows=cols for mats // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) // '@' as first letter of order creates arrayed texture of given type // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures @@ -592,9 +612,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, - { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll }, { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, - { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll }, // mat*mat form of mul is handled in createMatTimesMat() { "noise", "S", "F", "V", "F", EShLangPS }, { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, From cd0a78a0d9974074f7244f6aa15bd14a66693330 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 9 Sep 2016 16:32:09 -0600 Subject: [PATCH 121/217] HLSL: Flatten vertex input and fragment output structures. Vulkan can't handle structures into the vertex stage or out of the fragment stage. --- Test/baseResults/hlsl.entry-out.frag.out | 88 ++++++--------- Test/baseResults/hlsl.structin.vert.out | 133 +++++++++++++++++++++++ Test/hlsl.structin.vert | 9 ++ glslang/Include/revision.h | 4 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 82 +++++++++++--- hlsl/hlslParseHelper.h | 5 + 7 files changed, 255 insertions(+), 67 deletions(-) create mode 100755 Test/baseResults/hlsl.structin.vert.out create mode 100644 Test/hlsl.structin.vert diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index b76d4527..015136ee 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -5,32 +5,26 @@ gl_FragCoord origin is upper left 0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out1' (layout(location=1 ) out 4-component vector of float) +0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (out 4-component vector of float) +0:8 'out1' (layout(location=1 ) out 4-component vector of float) 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 2-component vector of float) -0:9 v: direct index for structure (temp 2-component vector of float) -0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:9 Constant: -0:9 0 (const int) +0:? 'v' (layout(location=2 ) out 2-component vector of float) 0:9 Constant: 0:9 2.000000 0:9 2.000000 0:10 move second child to first child (temp 2-component vector of int) -0:10 i: direct index for structure (temp 2-component vector of int) -0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:10 Constant: -0:10 1 (const int) +0:? 'i' (layout(location=3 ) out 2-component vector of int) 0:10 Constant: 0:10 3 (const int) 0:10 3 (const int) 0:11 Sequence 0:11 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:11 'out1' (out 4-component vector of float) +0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects @@ -44,54 +38,49 @@ gl_FragCoord origin is upper left 0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out1' (layout(location=1 ) out 4-component vector of float) +0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (out 4-component vector of float) +0:8 'out1' (layout(location=1 ) out 4-component vector of float) 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:9 move second child to first child (temp 2-component vector of float) -0:9 v: direct index for structure (temp 2-component vector of float) -0:9 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:9 Constant: -0:9 0 (const int) +0:? 'v' (layout(location=2 ) out 2-component vector of float) 0:9 Constant: 0:9 2.000000 0:9 2.000000 0:10 move second child to first child (temp 2-component vector of int) -0:10 i: direct index for structure (temp 2-component vector of int) -0:10 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:10 Constant: -0:10 1 (const int) +0:? 'i' (layout(location=3 ) out 2-component vector of int) 0:10 Constant: 0:10 3 (const int) 0:10 3 (const int) 0:11 Sequence 0:11 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:11 'out1' (out 4-component vector of float) +0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 18 29 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 15 21 24 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "out1" Name 11 "input" - Name 16 "OutParam" - MemberName 16(OutParam) 0 "v" - MemberName 16(OutParam) 1 "i" - Name 18 "out2" - Name 29 "@entryPointOutput" + Name 15 "v" + Name 21 "i" + Name 24 "@entryPointOutput" + Decorate 9(out1) Location 1 Decorate 11(input) Location 0 - Decorate 29(@entryPointOutput) Location 0 + Decorate 15(v) Location 2 + Decorate 21(i) Location 3 + Decorate 24(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -101,29 +90,24 @@ gl_FragCoord origin is upper left 10: TypePointer Input 7(fvec4) 11(input): 10(ptr) Variable Input 13: TypeVector 6(float) 2 - 14: TypeInt 32 1 - 15: TypeVector 14(int) 2 - 16(OutParam): TypeStruct 13(fvec2) 15(ivec2) - 17: TypePointer Output 16(OutParam) - 18(out2): 17(ptr) Variable Output - 19: 14(int) Constant 0 - 20: 6(float) Constant 1073741824 - 21: 13(fvec2) ConstantComposite 20 20 - 22: TypePointer Output 13(fvec2) - 24: 14(int) Constant 1 - 25: 14(int) Constant 3 - 26: 15(ivec2) ConstantComposite 25 25 - 27: TypePointer Output 15(ivec2) -29(@entryPointOutput): 8(ptr) Variable Output + 14: TypePointer Output 13(fvec2) + 15(v): 14(ptr) Variable Output + 16: 6(float) Constant 1073741824 + 17: 13(fvec2) ConstantComposite 16 16 + 18: TypeInt 32 1 + 19: TypeVector 18(int) 2 + 20: TypePointer Output 19(ivec2) + 21(i): 20(ptr) Variable Output + 22: 18(int) Constant 3 + 23: 19(ivec2) ConstantComposite 22 22 +24(@entryPointOutput): 8(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(input) Store 9(out1) 12 - 23: 22(ptr) AccessChain 18(out2) 19 - Store 23 21 - 28: 27(ptr) AccessChain 18(out2) 24 - Store 28 26 - 30: 7(fvec4) Load 9(out1) - Store 29(@entryPointOutput) 30 + Store 15(v) 17 + Store 21(i) 23 + 25: 7(fvec4) Load 9(out1) + Store 24(@entryPointOutput) 25 Return FunctionEnd diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out new file mode 100755 index 00000000..c68ba83a --- /dev/null +++ b/Test/baseResults/hlsl.structin.vert.out @@ -0,0 +1,133 @@ +hlsl.structin.vert +Shader version: 450 +0:? Sequence +0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) +0:7 Function Parameters: +0:7 'd' (layout(location=0 ) in 4-component vector of float) +0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) +0:7 'e' (layout(location=4 ) in 4-component vector of float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:8 Constant: +0:8 1 (const int) +0:8 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:8 Constant: +0:8 0 (const int) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 Convert uint to float (temp float) +0:8 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:8 Constant: +0:8 0 (const int) +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'e' (layout(location=4 ) in 4-component vector of float) +0:8 Branch: Return +0:? Linker Objects + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) +0:7 Function Parameters: +0:7 'd' (layout(location=0 ) in 4-component vector of float) +0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) +0:7 'e' (layout(location=4 ) in 4-component vector of float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 add (temp 4-component vector of float) +0:8 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:8 Constant: +0:8 1 (const int) +0:8 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:8 Constant: +0:8 0 (const int) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 Convert uint to float (temp float) +0:8 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:8 Constant: +0:8 0 (const int) +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'e' (layout(location=4 ) in 4-component vector of float) +0:8 Branch: Return +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 41 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 14 26 34 37 + Name 4 "main" + Name 9 "@entryPointOutput" + Name 14 "m" + Name 26 "coord" + Name 34 "d" + Name 37 "e" + Decorate 9(@entryPointOutput) BuiltIn Position + Decorate 14(m) Location 1 + Decorate 26(coord) Location 3 + Decorate 34(d) Location 0 + Decorate 37(e) Location 4 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer Input 12 + 14(m): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer Input 7(fvec4) + 20: 15(int) Constant 0 + 24: TypeVector 10(int) 2 + 25: TypePointer Input 24(ivec2) + 26(coord): 25(ptr) Variable Input + 27: 10(int) Constant 0 + 28: TypePointer Input 10(int) + 34(d): 17(ptr) Variable Input + 37(e): 17(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 18: 17(ptr) AccessChain 14(m) 16 + 19: 7(fvec4) Load 18 + 21: 17(ptr) AccessChain 14(m) 20 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FAdd 19 22 + 29: 28(ptr) AccessChain 26(coord) 27 + 30: 10(int) Load 29 + 31: 6(float) ConvertUToF 30 + 32: 7(fvec4) CompositeConstruct 31 31 31 31 + 33: 7(fvec4) FAdd 23 32 + 35: 7(fvec4) Load 34(d) + 36: 7(fvec4) FAdd 33 35 + 38: 7(fvec4) Load 37(e) + 39: 7(fvec4) FAdd 36 38 + Store 9(@entryPointOutput) 39 + Return + FunctionEnd diff --git a/Test/hlsl.structin.vert b/Test/hlsl.structin.vert new file mode 100644 index 00000000..424624a4 --- /dev/null +++ b/Test/hlsl.structin.vert @@ -0,0 +1,9 @@ +struct VI { + float4 m[2]; + uint2 coord; +}; + +float4 main(float4 d, VI vi, float4 e) : SV_POSITION +{ + return vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; +} \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 85fd2623..41f9a70c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1477" -#define GLSLANG_DATE "09-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1481" +#define GLSLANG_DATE "10-Sep-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 5b420929..d4206af2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -159,6 +159,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.stringtoken.frag", "main"}, + {"hlsl.structin.vert", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index ec2cc03e..dbc29402 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -679,12 +679,16 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt } } if (fieldFound) { - if (base->getType().getQualifier().storage == EvqConst) - result = intermediate.foldDereference(base, member, loc); + if (base->getAsSymbolNode() && shouldFlatten(base->getType())) + result = flattenAccess(base, member); else { - TIntermTyped* index = intermediate.addConstantUnion(member, loc); - result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); - result->setType(*(*fields)[member].type); + if (base->getType().getQualifier().storage == EvqConst) + result = intermediate.foldDereference(base, member, loc); + else { + TIntermTyped* index = intermediate.addConstantUnion(member, loc); + result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); + result->setType(*(*fields)[member].type); + } } } else error(loc, "no such field in structure", field.c_str(), ""); @@ -694,6 +698,54 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; } +// Is this a structure that can't be passed down the stack? +// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. +bool HlslParseContext::shouldFlatten(const TType& type) +{ + const TStorageQualifier qualifier = type.getQualifier().storage; + + return type.isStruct() && + ((language == EShLangVertex && qualifier == EvqVaryingIn) || + (language == EShLangFragment && qualifier == EvqVaryingOut)); +} + +// Figure out mapping between a structures top members and an +// equivalent set of individual variables. +// +// Assumes shouldFlatten() or equivalent was called first. +// +// TODO: generalize this to arbitrary nesting? +void HlslParseContext::flattenStruct(const TVariable& variable) +{ + TVector memberVariables; + + auto members = *variable.getType().getStruct(); + int location = variable.getType().getQualifier().layoutLocation; + for (int member = 0; member < (int)members.size(); ++member) { + TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(), *members[member].type); + memberVariable->getWritableType().getQualifier() = variable.getType().getQualifier(); + memberVariable->getWritableType().getQualifier().layoutLocation = location; + location += intermediate.computeTypeLocationSize(memberVariable->getType()); + memberVariables.push_back(memberVariable); + } + + flattenMap[variable.getUniqueId()] = memberVariables; +} + +// Turn an access into structure that was flattened to instead be +// an access to the individual variable the member was flattened to. +// Assumes shouldFlatten() or equivalent was called first. +TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) +{ + const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); + + if (flattenMap.find(symbolNode.getId()) == flattenMap.end()) + return base; + + const TVariable* memberVariable = flattenMap[symbolNode.getId()][member]; + return intermediate.addSymbol(*memberVariable); +} + // // Handle seeing a function declarator in the grammar. This is the precursor // to recognizing a function prototype or function definition. @@ -800,6 +852,9 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*variable, loc), loc); + + if (shouldFlatten(*param.type)) + flattenStruct(*variable); } } else paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); @@ -861,20 +916,21 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) // parameters are actually shader-scoped inputs and outputs (in or out) for (int i = 0; i < function.getParamCount(); i++) { - if (function[i].type->getQualifier().isParamInput()) { - function[i].type->getQualifier().storage = EvqVaryingIn; - if (function[i].type->getQualifier().builtIn == EbvNone) { - function[i].type->getQualifier().layoutLocation = inCount; + TType& paramType = *function[i].type; + if (paramType.getQualifier().isParamInput()) { + paramType.getQualifier().storage = EvqVaryingIn; + if (paramType.getQualifier().builtIn == EbvNone) { + paramType.getQualifier().layoutLocation = inCount; inCount += intermediate.computeTypeLocationSize(*function[i].type); } } else { - function[i].type->getQualifier().storage = EvqVaryingOut; - if (function[i].type->getQualifier().builtIn == EbvNone && language != EShLangFragment) { - function[i].type->getQualifier().layoutLocation = outCount; + paramType.getQualifier().storage = EvqVaryingOut; + if (paramType.getQualifier().builtIn == EbvNone) { + paramType.getQualifier().layoutLocation = outCount; outCount += intermediate.computeTypeLocationSize(*function[i].type); } } - remapBuiltInType(*function[i].type); + remapBuiltInType(paramType); } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index f422b3ea..1e43deaa 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -83,6 +83,9 @@ public: TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); + bool shouldFlatten(const TType&); + void flattenStruct(const TVariable& variable); + TIntermTyped* flattenAccess(TIntermTyped* base, int member); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); @@ -233,6 +236,8 @@ protected: // array-sizing declarations // TVector ioArraySymbolResizeList; + + TMap> flattenMap; }; } // end namespace glslang From b3e24e4359dc65639f52e178088c9363c9dcb9bb Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 11 Sep 2016 12:33:43 -0600 Subject: [PATCH 122/217] SPV: Fix issue #506: generalize struct deep copy to include arrays. --- SPIRV/GlslangToSpv.cpp | 54 ++- Test/baseResults/spv.multiStruct.comp.out | 406 +++++++++++++--------- Test/spv.multiStruct.comp | 4 +- glslang/Include/revision.h | 2 +- 4 files changed, 281 insertions(+), 185 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 788dd635..4513df8a 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2283,13 +2283,13 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I // Implicitly uses the existing builder.accessChain as the storage target. void TGlslangToSpvTraverser::multiTypeStore(const glslang::TType& type, spv::Id rValue) { - // we only do the complex path here if it's a structure - if (! type.isStruct()) { + // we only do the complex path here if it's an aggregate + if (! type.isStruct() && ! type.isArray()) { accessChainStore(type, rValue); return; } - // and, it has to be a case of structure type aliasing + // and, it has to be a case of type aliasing spv::Id rType = builder.getTypeId(rValue); spv::Id lValue = builder.accessChainGetLValue(); spv::Id lType = builder.getContainedTypeId(builder.getTypeId(lValue)); @@ -2298,26 +2298,46 @@ void TGlslangToSpvTraverser::multiTypeStore(const glslang::TType& type, spv::Id return; } - // Recursively (as needed) copy a struct type to a different struct type, + // Recursively (as needed) copy an aggregate type to a different aggregate type, // where the two types were the same type in GLSL. This requires member // by member copy, recursively. - // loop over members - const glslang::TTypeList& members = *type.getStruct(); - for (int m = 0; m < (int)members.size(); ++m) { - const glslang::TType& glslangMemberType = *members[m].type; + // If an array, copy element by element. + if (type.isArray()) { + glslang::TType glslangElementType(type, 0); + spv::Id elementRType = builder.getContainedTypeId(rType); + for (int index = 0; index < type.getOuterArraySize(); ++index) { + // get the source member + spv::Id elementRValue = builder.createCompositeExtract(rValue, elementRType, index); - // get the source member - spv::Id memberRType = builder.getContainedTypeId(rType, m); - spv::Id memberRValue = builder.createCompositeExtract(rValue, memberRType, m); + // set up the target storage + builder.clearAccessChain(); + builder.setAccessChainLValue(lValue); + builder.accessChainPush(builder.makeIntConstant(index)); - // set up the target storage - builder.clearAccessChain(); - builder.setAccessChainLValue(lValue); - builder.accessChainPush(builder.makeIntConstant(m)); + // store the member + multiTypeStore(glslangElementType, elementRValue); + } + } else { + assert(type.isStruct()); - // store the member - multiTypeStore(glslangMemberType, memberRValue); + // loop over structure members + const glslang::TTypeList& members = *type.getStruct(); + for (int m = 0; m < (int)members.size(); ++m) { + const glslang::TType& glslangMemberType = *members[m].type; + + // get the source member + spv::Id memberRType = builder.getContainedTypeId(rType, m); + spv::Id memberRValue = builder.createCompositeExtract(rValue, memberRType, m); + + // set up the target storage + builder.clearAccessChain(); + builder.setAccessChainLValue(lValue); + builder.accessChainPush(builder.makeIntConstant(m)); + + // store the member + multiTypeStore(glslangMemberType, memberRValue); + } } } diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out index a2ab8f81..28402ce2 100755 --- a/Test/baseResults/spv.multiStruct.comp.out +++ b/Test/baseResults/spv.multiStruct.comp.out @@ -7,7 +7,7 @@ Linked compute stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 97 +// Id's are bound by 157 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -16,177 +16,253 @@ Linked compute stage: ExecutionMode 4 LocalSize 1 1 1 Source GLSL 450 Name 4 "main" - Name 9 "MyStruct" - MemberName 9(MyStruct) 0 "foo" - MemberName 9(MyStruct) 1 "sb" - Name 11 "t" - Name 13 "MyStruct" - MemberName 13(MyStruct) 0 "foo" - MemberName 13(MyStruct) 1 "sb" - Name 14 "SSBO0" - MemberName 14(SSBO0) 0 "a" - Name 16 "inBuf" - Name 29 "SSBO1" - MemberName 29(SSBO1) 0 "b" - Name 31 "outBuf" - Name 43 "MyStruct" - MemberName 43(MyStruct) 0 "foo" - MemberName 43(MyStruct) 1 "sb" - Name 44 "UBO" - MemberName 44(UBO) 0 "c" - Name 46 "uBuf" - Name 61 "Nested" - MemberName 61(Nested) 0 "f" - MemberName 61(Nested) 1 "S" - Name 63 "n" - Name 64 "Nested" - MemberName 64(Nested) 0 "f" - MemberName 64(Nested) 1 "S" - Name 65 "UBON" - MemberName 65(UBON) 0 "N1" - Name 67 "uBufN" - Name 80 "Nested" - MemberName 80(Nested) 0 "f" - MemberName 80(Nested) 1 "S" - Name 81 "SSBO1N" - MemberName 81(SSBO1N) 0 "N2" - Name 83 "outBufN" - MemberDecorate 13(MyStruct) 0 Offset 0 - MemberDecorate 13(MyStruct) 1 Offset 16 - MemberDecorate 14(SSBO0) 0 Offset 0 - Decorate 14(SSBO0) BufferBlock - Decorate 16(inBuf) DescriptorSet 0 - Decorate 16(inBuf) Binding 0 - MemberDecorate 29(SSBO1) 0 Offset 0 - Decorate 29(SSBO1) BufferBlock - Decorate 31(outBuf) DescriptorSet 0 - Decorate 31(outBuf) Binding 1 - MemberDecorate 43(MyStruct) 0 Offset 0 - MemberDecorate 43(MyStruct) 1 Offset 16 - MemberDecorate 44(UBO) 0 Offset 0 - Decorate 44(UBO) Block - Decorate 46(uBuf) DescriptorSet 0 - Decorate 46(uBuf) Binding 2 - MemberDecorate 64(Nested) 0 Offset 0 - MemberDecorate 64(Nested) 1 Offset 16 - MemberDecorate 65(UBON) 0 Offset 0 - Decorate 65(UBON) Block - Decorate 67(uBufN) DescriptorSet 0 - Decorate 67(uBufN) Binding 2 - MemberDecorate 80(Nested) 0 Offset 0 - MemberDecorate 80(Nested) 1 Offset 16 - MemberDecorate 81(SSBO1N) 0 Offset 0 - Decorate 81(SSBO1N) BufferBlock - Decorate 83(outBufN) DescriptorSet 0 - Decorate 83(outBufN) Binding 1 + Name 12 "MyStruct" + MemberName 12(MyStruct) 0 "foo" + MemberName 12(MyStruct) 1 "sb" + Name 14 "t" + Name 16 "MyStruct" + MemberName 16(MyStruct) 0 "foo" + MemberName 16(MyStruct) 1 "sb" + Name 17 "SSBO0" + MemberName 17(SSBO0) 0 "a" + Name 19 "inBuf" + Name 37 "SSBO1" + MemberName 37(SSBO1) 0 "b" + Name 39 "outBuf" + Name 57 "MyStruct" + MemberName 57(MyStruct) 0 "foo" + MemberName 57(MyStruct) 1 "sb" + Name 58 "UBO" + MemberName 58(UBO) 0 "c" + Name 60 "uBuf" + Name 84 "Nested" + MemberName 84(Nested) 0 "f" + MemberName 84(Nested) 1 "S" + Name 86 "n" + Name 88 "Nested" + MemberName 88(Nested) 0 "f" + MemberName 88(Nested) 1 "S" + Name 89 "UBON" + MemberName 89(UBON) 0 "N1" + Name 91 "uBufN" + Name 122 "Nested" + MemberName 122(Nested) 0 "f" + MemberName 122(Nested) 1 "S" + Name 123 "SSBO1N" + MemberName 123(SSBO1N) 0 "N2" + Name 125 "outBufN" + Decorate 15 ArrayStride 8 + MemberDecorate 16(MyStruct) 0 Offset 0 + MemberDecorate 16(MyStruct) 1 Offset 16 + MemberDecorate 17(SSBO0) 0 Offset 0 + Decorate 17(SSBO0) BufferBlock + Decorate 19(inBuf) DescriptorSet 0 + Decorate 19(inBuf) Binding 0 + MemberDecorate 37(SSBO1) 0 Offset 0 + Decorate 37(SSBO1) BufferBlock + Decorate 39(outBuf) DescriptorSet 0 + Decorate 39(outBuf) Binding 1 + Decorate 56 ArrayStride 16 + MemberDecorate 57(MyStruct) 0 Offset 0 + MemberDecorate 57(MyStruct) 1 Offset 32 + MemberDecorate 58(UBO) 0 Offset 0 + Decorate 58(UBO) Block + Decorate 60(uBuf) DescriptorSet 0 + Decorate 60(uBuf) Binding 2 + Decorate 87 ArrayStride 48 + MemberDecorate 88(Nested) 0 Offset 0 + MemberDecorate 88(Nested) 1 Offset 16 + MemberDecorate 89(UBON) 0 Offset 0 + Decorate 89(UBON) Block + Decorate 91(uBufN) DescriptorSet 0 + Decorate 91(uBufN) Binding 2 + Decorate 121 ArrayStride 24 + MemberDecorate 122(Nested) 0 Offset 0 + MemberDecorate 122(Nested) 1 Offset 8 + MemberDecorate 123(SSBO1N) 0 Offset 0 + Decorate 123(SSBO1N) BufferBlock + Decorate 125(outBufN) DescriptorSet 0 + Decorate 125(outBufN) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypeBool - 9(MyStruct): TypeStruct 7(fvec4) 8(bool) - 10: TypePointer Function 9(MyStruct) - 12: TypeInt 32 0 - 13(MyStruct): TypeStruct 7(fvec4) 12(int) - 14(SSBO0): TypeStruct 13(MyStruct) - 15: TypePointer Uniform 14(SSBO0) - 16(inBuf): 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Uniform 13(MyStruct) - 23: TypePointer Function 7(fvec4) - 26: 17(int) Constant 1 - 27: TypePointer Function 8(bool) - 29(SSBO1): TypeStruct 13(MyStruct) - 30: TypePointer Uniform 29(SSBO1) - 31(outBuf): 30(ptr) Variable Uniform - 35: TypePointer Uniform 7(fvec4) - 38: 12(int) Constant 0 - 39: 12(int) Constant 1 - 41: TypePointer Uniform 12(int) - 43(MyStruct): TypeStruct 7(fvec4) 12(int) - 44(UBO): TypeStruct 43(MyStruct) - 45: TypePointer Uniform 44(UBO) - 46(uBuf): 45(ptr) Variable Uniform - 47: TypePointer Uniform 43(MyStruct) - 61(Nested): TypeStruct 6(float) 9(MyStruct) - 62: TypePointer Function 61(Nested) - 64(Nested): TypeStruct 6(float) 43(MyStruct) - 65(UBON): TypeStruct 64(Nested) - 66: TypePointer Uniform 65(UBON) - 67(uBufN): 66(ptr) Variable Uniform - 68: TypePointer Uniform 64(Nested) - 72: TypePointer Function 6(float) - 80(Nested): TypeStruct 6(float) 13(MyStruct) - 81(SSBO1N): TypeStruct 80(Nested) - 82: TypePointer Uniform 81(SSBO1N) - 83(outBufN): 82(ptr) Variable Uniform - 85: TypePointer Uniform 80(Nested) - 88: TypePointer Uniform 6(float) + 7: TypeVector 6(float) 2 + 8: TypeInt 32 0 + 9: 8(int) Constant 2 + 10: TypeArray 7(fvec2) 9 + 11: TypeBool + 12(MyStruct): TypeStruct 10 11(bool) + 13: TypePointer Function 12(MyStruct) + 15: TypeArray 7(fvec2) 9 + 16(MyStruct): TypeStruct 15 8(int) + 17(SSBO0): TypeStruct 16(MyStruct) + 18: TypePointer Uniform 17(SSBO0) + 19(inBuf): 18(ptr) Variable Uniform + 20: TypeInt 32 1 + 21: 20(int) Constant 0 + 22: TypePointer Uniform 16(MyStruct) + 26: TypePointer Function 10 + 29: TypePointer Function 7(fvec2) + 32: 20(int) Constant 1 + 35: TypePointer Function 11(bool) + 37(SSBO1): TypeStruct 16(MyStruct) + 38: TypePointer Uniform 37(SSBO1) + 39(outBuf): 38(ptr) Variable Uniform + 43: TypePointer Uniform 15 + 46: TypePointer Uniform 7(fvec2) + 51: 8(int) Constant 0 + 52: 8(int) Constant 1 + 54: TypePointer Uniform 8(int) + 56: TypeArray 7(fvec2) 9 + 57(MyStruct): TypeStruct 56 8(int) + 58(UBO): TypeStruct 57(MyStruct) + 59: TypePointer Uniform 58(UBO) + 60(uBuf): 59(ptr) Variable Uniform + 61: TypePointer Uniform 57(MyStruct) + 83: TypeArray 12(MyStruct) 9 + 84(Nested): TypeStruct 6(float) 83 + 85: TypePointer Function 84(Nested) + 87: TypeArray 57(MyStruct) 9 + 88(Nested): TypeStruct 6(float) 87 + 89(UBON): TypeStruct 88(Nested) + 90: TypePointer Uniform 89(UBON) + 91(uBufN): 90(ptr) Variable Uniform + 92: TypePointer Uniform 88(Nested) + 96: TypePointer Function 6(float) + 99: TypePointer Function 83 + 121: TypeArray 16(MyStruct) 9 + 122(Nested): TypeStruct 6(float) 121 + 123(SSBO1N): TypeStruct 122(Nested) + 124: TypePointer Uniform 123(SSBO1N) + 125(outBufN): 124(ptr) Variable Uniform + 127: TypePointer Uniform 122(Nested) + 130: TypePointer Uniform 6(float) + 133: TypePointer Uniform 121 4(main): 2 Function None 3 5: Label - 11(t): 10(ptr) Variable Function - 63(n): 62(ptr) Variable Function - 20: 19(ptr) AccessChain 16(inBuf) 18 - 21:13(MyStruct) Load 20 - 22: 7(fvec4) CompositeExtract 21 0 - 24: 23(ptr) AccessChain 11(t) 18 - Store 24 22 - 25: 12(int) CompositeExtract 21 1 - 28: 27(ptr) AccessChain 11(t) 26 - Store 28 25 - 32: 9(MyStruct) Load 11(t) - 33: 19(ptr) AccessChain 31(outBuf) 18 - 34: 7(fvec4) CompositeExtract 32 0 - 36: 35(ptr) AccessChain 33 18 + 14(t): 13(ptr) Variable Function + 86(n): 85(ptr) Variable Function + 23: 22(ptr) AccessChain 19(inBuf) 21 + 24:16(MyStruct) Load 23 + 25: 15 CompositeExtract 24 0 + 27: 26(ptr) AccessChain 14(t) 21 + 28: 7(fvec2) CompositeExtract 25 0 + 30: 29(ptr) AccessChain 27 21 + Store 30 28 + 31: 7(fvec2) CompositeExtract 25 1 + 33: 29(ptr) AccessChain 27 32 + Store 33 31 + 34: 8(int) CompositeExtract 24 1 + 36: 35(ptr) AccessChain 14(t) 32 Store 36 34 - 37: 8(bool) CompositeExtract 32 1 - 40: 12(int) Select 37 39 38 - 42: 41(ptr) AccessChain 33 26 - Store 42 40 - 48: 47(ptr) AccessChain 46(uBuf) 18 - 49:43(MyStruct) Load 48 - 50: 7(fvec4) CompositeExtract 49 0 - 51: 23(ptr) AccessChain 11(t) 18 - Store 51 50 - 52: 12(int) CompositeExtract 49 1 - 53: 27(ptr) AccessChain 11(t) 26 - Store 53 52 - 54: 9(MyStruct) Load 11(t) - 55: 19(ptr) AccessChain 31(outBuf) 18 - 56: 7(fvec4) CompositeExtract 54 0 - 57: 35(ptr) AccessChain 55 18 - Store 57 56 - 58: 8(bool) CompositeExtract 54 1 - 59: 12(int) Select 58 39 38 - 60: 41(ptr) AccessChain 55 26 - Store 60 59 - 69: 68(ptr) AccessChain 67(uBufN) 18 - 70: 64(Nested) Load 69 - 71: 6(float) CompositeExtract 70 0 - 73: 72(ptr) AccessChain 63(n) 18 - Store 73 71 - 74:43(MyStruct) CompositeExtract 70 1 - 75: 10(ptr) AccessChain 63(n) 26 - 76: 7(fvec4) CompositeExtract 74 0 - 77: 23(ptr) AccessChain 75 18 + 40:12(MyStruct) Load 14(t) + 41: 22(ptr) AccessChain 39(outBuf) 21 + 42: 10 CompositeExtract 40 0 + 44: 43(ptr) AccessChain 41 21 + 45: 7(fvec2) CompositeExtract 42 0 + 47: 46(ptr) AccessChain 44 21 + Store 47 45 + 48: 7(fvec2) CompositeExtract 42 1 + 49: 46(ptr) AccessChain 44 32 + Store 49 48 + 50: 11(bool) CompositeExtract 40 1 + 53: 8(int) Select 50 52 51 + 55: 54(ptr) AccessChain 41 32 + Store 55 53 + 62: 61(ptr) AccessChain 60(uBuf) 21 + 63:57(MyStruct) Load 62 + 64: 56 CompositeExtract 63 0 + 65: 26(ptr) AccessChain 14(t) 21 + 66: 7(fvec2) CompositeExtract 64 0 + 67: 29(ptr) AccessChain 65 21 + Store 67 66 + 68: 7(fvec2) CompositeExtract 64 1 + 69: 29(ptr) AccessChain 65 32 + Store 69 68 + 70: 8(int) CompositeExtract 63 1 + 71: 35(ptr) AccessChain 14(t) 32 + Store 71 70 + 72:12(MyStruct) Load 14(t) + 73: 22(ptr) AccessChain 39(outBuf) 21 + 74: 10 CompositeExtract 72 0 + 75: 43(ptr) AccessChain 73 21 + 76: 7(fvec2) CompositeExtract 74 0 + 77: 46(ptr) AccessChain 75 21 Store 77 76 - 78: 12(int) CompositeExtract 74 1 - 79: 27(ptr) AccessChain 75 26 + 78: 7(fvec2) CompositeExtract 74 1 + 79: 46(ptr) AccessChain 75 32 Store 79 78 - 84: 61(Nested) Load 63(n) - 86: 85(ptr) AccessChain 83(outBufN) 18 - 87: 6(float) CompositeExtract 84 0 - 89: 88(ptr) AccessChain 86 18 - Store 89 87 - 90: 9(MyStruct) CompositeExtract 84 1 - 91: 19(ptr) AccessChain 86 26 - 92: 7(fvec4) CompositeExtract 90 0 - 93: 35(ptr) AccessChain 91 18 - Store 93 92 - 94: 8(bool) CompositeExtract 90 1 - 95: 12(int) Select 94 39 38 - 96: 41(ptr) AccessChain 91 26 - Store 96 95 + 80: 11(bool) CompositeExtract 72 1 + 81: 8(int) Select 80 52 51 + 82: 54(ptr) AccessChain 73 32 + Store 82 81 + 93: 92(ptr) AccessChain 91(uBufN) 21 + 94: 88(Nested) Load 93 + 95: 6(float) CompositeExtract 94 0 + 97: 96(ptr) AccessChain 86(n) 21 + Store 97 95 + 98: 87 CompositeExtract 94 1 + 100: 99(ptr) AccessChain 86(n) 32 + 101:57(MyStruct) CompositeExtract 98 0 + 102: 13(ptr) AccessChain 100 21 + 103: 56 CompositeExtract 101 0 + 104: 26(ptr) AccessChain 102 21 + 105: 7(fvec2) CompositeExtract 103 0 + 106: 29(ptr) AccessChain 104 21 + Store 106 105 + 107: 7(fvec2) CompositeExtract 103 1 + 108: 29(ptr) AccessChain 104 32 + Store 108 107 + 109: 8(int) CompositeExtract 101 1 + 110: 35(ptr) AccessChain 102 32 + Store 110 109 + 111:57(MyStruct) CompositeExtract 98 1 + 112: 13(ptr) AccessChain 100 32 + 113: 56 CompositeExtract 111 0 + 114: 26(ptr) AccessChain 112 21 + 115: 7(fvec2) CompositeExtract 113 0 + 116: 29(ptr) AccessChain 114 21 + Store 116 115 + 117: 7(fvec2) CompositeExtract 113 1 + 118: 29(ptr) AccessChain 114 32 + Store 118 117 + 119: 8(int) CompositeExtract 111 1 + 120: 35(ptr) AccessChain 112 32 + Store 120 119 + 126: 84(Nested) Load 86(n) + 128: 127(ptr) AccessChain 125(outBufN) 21 + 129: 6(float) CompositeExtract 126 0 + 131: 130(ptr) AccessChain 128 21 + Store 131 129 + 132: 83 CompositeExtract 126 1 + 134: 133(ptr) AccessChain 128 32 + 135:12(MyStruct) CompositeExtract 132 0 + 136: 22(ptr) AccessChain 134 21 + 137: 10 CompositeExtract 135 0 + 138: 43(ptr) AccessChain 136 21 + 139: 7(fvec2) CompositeExtract 137 0 + 140: 46(ptr) AccessChain 138 21 + Store 140 139 + 141: 7(fvec2) CompositeExtract 137 1 + 142: 46(ptr) AccessChain 138 32 + Store 142 141 + 143: 11(bool) CompositeExtract 135 1 + 144: 8(int) Select 143 52 51 + 145: 54(ptr) AccessChain 136 32 + Store 145 144 + 146:12(MyStruct) CompositeExtract 132 1 + 147: 22(ptr) AccessChain 134 32 + 148: 10 CompositeExtract 146 0 + 149: 43(ptr) AccessChain 147 21 + 150: 7(fvec2) CompositeExtract 148 0 + 151: 46(ptr) AccessChain 149 21 + Store 151 150 + 152: 7(fvec2) CompositeExtract 148 1 + 153: 46(ptr) AccessChain 149 32 + Store 153 152 + 154: 11(bool) CompositeExtract 146 1 + 155: 8(int) Select 154 52 51 + 156: 54(ptr) AccessChain 147 32 + Store 156 155 Return FunctionEnd diff --git a/Test/spv.multiStruct.comp b/Test/spv.multiStruct.comp index de27ccb7..7462da43 100644 --- a/Test/spv.multiStruct.comp +++ b/Test/spv.multiStruct.comp @@ -2,7 +2,7 @@ struct MyStruct { - vec4 foo; + vec2 foo[2]; bool sb; }; @@ -23,7 +23,7 @@ layout(binding = 2, std140) uniform UBO struct Nested { float f; - MyStruct S; + MyStruct S[2]; }; layout(binding = 2, std140) uniform UBON diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 41f9a70c..33703919 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "Overload400-PrecQual.1481" -#define GLSLANG_DATE "10-Sep-2016" +#define GLSLANG_DATE "11-Sep-2016" From deb4940c17c1656fe2c1c470150c596edb2c7707 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 12 Sep 2016 11:55:47 -0600 Subject: [PATCH 123/217] HLSL: Register all entry-point in/out as part of the interface. This makes the interface be invariant, whether or not individual variables are used. --- Test/baseResults/hlsl.array.frag.out | 6 +++ Test/baseResults/hlsl.assoc.frag.out | 12 ++++++ Test/baseResults/hlsl.attribute.frag.out | 12 +++++- Test/baseResults/hlsl.buffer.frag.out | 4 ++ .../hlsl.calculatelod.dx10.frag.out | 2 + .../hlsl.calculatelodunclamped.dx10.frag.out | 2 + Test/baseResults/hlsl.cast.frag.out | 4 ++ Test/baseResults/hlsl.conditional.frag.out | 4 ++ Test/baseResults/hlsl.constructexpr.frag.out | 2 + Test/baseResults/hlsl.depthGreater.frag.out | 2 + Test/baseResults/hlsl.depthLess.frag.out | 2 + Test/baseResults/hlsl.discard.frag.out | 2 + Test/baseResults/hlsl.doLoop.frag.out | 4 ++ Test/baseResults/hlsl.entry-out.frag.out | 10 +++++ Test/baseResults/hlsl.forLoop.frag.out | 4 ++ .../hlsl.gather.array.dx10.frag.out | 2 + .../hlsl.gather.basic.dx10.frag.out | 2 + .../hlsl.gather.basic.dx10.vert.out | 2 + .../hlsl.gather.offset.dx10.frag.out | 2 + .../hlsl.gather.offsetarray.dx10.frag.out | 2 + .../hlsl.gatherRGBA.array.dx10.frag.out | 2 + .../hlsl.gatherRGBA.basic.dx10.frag.out | 2 + .../hlsl.gatherRGBA.offset.dx10.frag.out | 2 + .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 2 + .../hlsl.getdimensions.dx10.frag.out | 2 + .../hlsl.getdimensions.dx10.vert.out | 2 + .../hlsl.getsampleposition.dx10.frag.out | 2 + Test/baseResults/hlsl.if.frag.out | 4 ++ Test/baseResults/hlsl.init.frag.out | 4 ++ Test/baseResults/hlsl.init2.frag.out | 2 + Test/baseResults/hlsl.inoutquals.frag.out | 4 ++ .../hlsl.intrinsics.barriers.comp.out | 2 + Test/baseResults/hlsl.intrinsics.comp.out | 29 ++++++++++++++- .../hlsl.intrinsics.double.frag.out | 37 ++++++++++++++++++- .../hlsl.intrinsics.evalfns.frag.out | 10 +++++ .../hlsl.intrinsics.f1632.frag.out | 4 ++ Test/baseResults/hlsl.intrinsics.frag.out | 2 + Test/baseResults/hlsl.intrinsics.lit.frag.out | 6 +++ .../hlsl.intrinsics.negative.comp.out | 29 ++++++++++++++- .../hlsl.intrinsics.negative.frag.out | 10 +++++ .../hlsl.intrinsics.negative.vert.out | 29 ++++++++++++++- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 2 + .../baseResults/hlsl.load.array.dx10.frag.out | 2 + .../baseResults/hlsl.load.basic.dx10.frag.out | 2 + .../baseResults/hlsl.load.basic.dx10.vert.out | 2 + .../hlsl.load.buffer.dx10.frag.out | 2 + .../hlsl.load.offset.dx10.frag.out | 2 + .../hlsl.load.offsetarray.dx10.frag.out | 2 + Test/baseResults/hlsl.matrixindex.frag.out | 2 + Test/baseResults/hlsl.max.frag.out | 6 +++ Test/baseResults/hlsl.multiEntry.vert.out | 4 ++ .../baseResults/hlsl.numericsuffixes.frag.out | 2 + Test/baseResults/hlsl.overload.frag.out | 4 ++ Test/baseResults/hlsl.pp.line.frag.out | 2 + Test/baseResults/hlsl.precedence.frag.out | 10 +++++ Test/baseResults/hlsl.precedence2.frag.out | 10 +++++ Test/baseResults/hlsl.precise.frag.out | 2 + Test/baseResults/hlsl.promotions.frag.out | 2 + .../hlsl.sample.array.dx10.frag.out | 2 + .../hlsl.sample.basic.dx10.frag.out | 2 + .../hlsl.sample.offset.dx10.frag.out | 2 + .../hlsl.sample.offsetarray.dx10.frag.out | 2 + .../hlsl.samplebias.array.dx10.frag.out | 2 + .../hlsl.samplebias.basic.dx10.frag.out | 2 + .../hlsl.samplebias.offset.dx10.frag.out | 2 + .../hlsl.samplebias.offsetarray.dx10.frag.out | 2 + .../hlsl.samplecmp.array.dx10.frag.out | 2 + .../hlsl.samplecmp.basic.dx10.frag.out | 2 + .../hlsl.samplecmp.offset.dx10.frag.out | 2 + .../hlsl.samplecmp.offsetarray.dx10.frag.out | 2 + ...lsl.samplecmplevelzero.array.dx10.frag.out | 2 + ...lsl.samplecmplevelzero.basic.dx10.frag.out | 2 + ...sl.samplecmplevelzero.offset.dx10.frag.out | 2 + ...mplecmplevelzero.offsetarray.dx10.frag.out | 2 + .../hlsl.samplegrad.array.dx10.frag.out | 2 + .../hlsl.samplegrad.basic.dx10.frag.out | 2 + .../hlsl.samplegrad.basic.dx10.vert.out | 2 + .../hlsl.samplegrad.offset.dx10.frag.out | 2 + .../hlsl.samplegrad.offsetarray.dx10.frag.out | 2 + .../hlsl.samplelevel.array.dx10.frag.out | 2 + .../hlsl.samplelevel.basic.dx10.frag.out | 2 + .../hlsl.samplelevel.basic.dx10.vert.out | 2 + .../hlsl.samplelevel.offset.dx10.frag.out | 2 + ...hlsl.samplelevel.offsetarray.dx10.frag.out | 2 + Test/baseResults/hlsl.scope.frag.out | 11 +++++- Test/baseResults/hlsl.semicolons.frag.out | 2 + Test/baseResults/hlsl.sin.frag.out | 4 ++ Test/baseResults/hlsl.stringtoken.frag.out | 2 + Test/baseResults/hlsl.struct.frag.out | 4 ++ Test/baseResults/hlsl.structin.vert.out | 10 +++++ Test/baseResults/hlsl.switch.frag.out | 8 ++++ Test/baseResults/hlsl.templatetypes.frag.out | 2 + Test/baseResults/hlsl.void.frag.out | 12 +++++- Test/baseResults/hlsl.whileLoop.frag.out | 4 ++ ...map.hlsl.templatetypes.everything.frag.out | 8 +++- .../remap.hlsl.templatetypes.none.frag.out | 11 +++++- glslang/Include/revision.h | 4 +- hlsl/hlslParseHelper.cpp | 7 ++++ 98 files changed, 448 insertions(+), 19 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index bcd28d3f..feb5c753 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -49,6 +49,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'i' (layout(location=0 ) in int) +0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) Linked fragment stage: @@ -104,6 +107,9 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'i' (layout(location=0 ) in int) +0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index a99be597..883aac26 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -33,6 +33,12 @@ gl_FragCoord origin is upper left 0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'a1' (layout(location=0 ) in 4-component vector of float) +0:? 'a2' (layout(location=1 ) in 4-component vector of float) +0:? 'a3' (layout(location=2 ) in 4-component vector of float) +0:? 'a4' (layout(location=3 ) in 4-component vector of float) +0:? 'a5' (layout(location=4 ) in 4-component vector of float) Linked fragment stage: @@ -72,6 +78,12 @@ gl_FragCoord origin is upper left 0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'a1' (layout(location=0 ) in 4-component vector of float) +0:? 'a2' (layout(location=1 ) in 4-component vector of float) +0:? 'a3' (layout(location=2 ) in 4-component vector of float) +0:? 'a4' (layout(location=3 ) in 4-component vector of float) +0:? 'a5' (layout(location=4 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index efcc643f..38421a88 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -12,6 +12,7 @@ gl_FragCoord origin is upper left 0:11 0 (const int) 0:11 true case is null 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -30,21 +31,28 @@ gl_FragCoord origin is upper left 0:11 0 (const int) 0:11 true case is null 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 10 +// Id's are bound by 14 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 13 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" + Name 13 "input" + Decorate 13(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Input 11(fvec4) + 13(input): 12(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label SelectionMerge 9 None diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 79b8acd4..2f3d1b87 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -36,6 +36,8 @@ gl_FragCoord origin is upper left 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -78,6 +80,8 @@ gl_FragCoord origin is upper left 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index f11dd281..83aec993 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -156,6 +156,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -318,6 +319,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index e9b3c0cf..05b7a58e 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -168,6 +168,7 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -330,5 +331,6 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 21edaf12..c64e23a1 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -23,6 +23,8 @@ gl_FragCoord origin is upper left 0:3 1.198000 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -52,6 +54,8 @@ gl_FragCoord origin is upper left 0:3 1.198000 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index 8694b1dc..c5723222 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -109,6 +109,8 @@ gl_FragCoord origin is upper left 0:15 'f' (temp 4-component vector of float) 0:15 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -224,6 +226,8 @@ gl_FragCoord origin is upper left 0:15 'f' (temp 4-component vector of float) 0:15 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 31e013cc..4c013b00 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -40,6 +40,7 @@ gl_FragCoord origin is upper left 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) Linked fragment stage: @@ -86,6 +87,7 @@ gl_FragCoord origin is upper left 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out index cfd819b7..6a44a2f9 100755 --- a/Test/baseResults/hlsl.depthGreater.frag.out +++ b/Test/baseResults/hlsl.depthGreater.frag.out @@ -12,6 +12,7 @@ using depth_greater 0:3 Constant: 0:3 0.200000 0:? Linker Objects +0:? 'depth' (out float FragDepth) Linked fragment stage: @@ -30,6 +31,7 @@ using depth_greater 0:3 Constant: 0:3 0.200000 0:? Linker Objects +0:? 'depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out index 66231b3c..b1307ce2 100755 --- a/Test/baseResults/hlsl.depthLess.frag.out +++ b/Test/baseResults/hlsl.depthLess.frag.out @@ -13,6 +13,7 @@ using depth_less 0:3 0.200000 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float unknown built-in variable) Linked fragment stage: @@ -32,6 +33,7 @@ using depth_less 0:3 0.200000 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float unknown built-in variable) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 463ae5bb..9601c7d1 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -40,6 +40,7 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:13 Branch: Kill 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -86,6 +87,7 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:13 Branch: Kill 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index b13e8d15..315fc2e9 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -28,6 +28,8 @@ gl_FragCoord origin is upper left 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -62,6 +64,8 @@ gl_FragCoord origin is upper left 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 015136ee..872d738c 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -27,6 +27,11 @@ gl_FragCoord origin is upper left 0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'out1' (layout(location=1 ) out 4-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:? 'i' (layout(location=3 ) out 2-component vector of int) Linked fragment stage: @@ -60,6 +65,11 @@ gl_FragCoord origin is upper left 0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'out1' (layout(location=1 ) out 4-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:? 'i' (layout(location=3 ) out 2-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index ca0cf5aa..5be0720c 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -114,6 +114,8 @@ gl_FragCoord origin is upper left 0:12 Pre-Decrement (temp float) 0:12 'ii' (temp float) 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -234,6 +236,8 @@ gl_FragCoord origin is upper left 0:12 Pre-Decrement (temp float) 0:12 'ii' (temp float) 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index ca195e84..e8c20f09 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -108,6 +108,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -222,6 +223,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 0b0a2773..d5be71be 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -106,6 +106,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -218,6 +219,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 0573bdfe..bec800c0 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -98,6 +98,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -202,6 +203,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 75ac976c..e16f76cb 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -81,6 +81,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -168,6 +169,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 3a0e637c..b98c1dfc 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -78,6 +78,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -162,6 +163,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index d85f20bc..ee448860 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -283,6 +283,7 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -572,6 +573,7 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 83992d55..15defeba 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -287,6 +287,7 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -580,6 +581,7 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 9b2ab967..6c1cee2b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -363,6 +363,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -732,6 +733,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index acba726b..547f1194 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -359,6 +359,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -724,6 +725,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index ffd42faa..278fa6fd 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1094,6 +1094,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -2194,6 +2195,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index d98bb60b..c8a10643 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -44,6 +44,7 @@ Shader version: 450 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -94,6 +95,7 @@ Shader version: 450 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 9ada2a38..ac5ee6b2 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -52,6 +52,7 @@ ERROR: node is still EOpNull! 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -105,5 +106,6 @@ ERROR: node is still EOpNull! 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index d29cdb1b..d9e9fa58 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -93,6 +93,8 @@ gl_FragCoord origin is upper left 0:32 Pre-Increment (temp int) 0:32 'ii' (temp int) 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -192,6 +194,8 @@ gl_FragCoord origin is upper left 0:32 Pre-Increment (temp int) 0:32 'ii' (temp int) 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 65dae396..e6b24c3f 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -150,6 +150,8 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -306,6 +308,8 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index d3721ec0..6b8e95ca 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -49,6 +49,7 @@ gl_FragCoord origin is upper left 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) Linked fragment stage: @@ -104,6 +105,7 @@ gl_FragCoord origin is upper left 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 175dd0cd..4e974927 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -61,6 +61,8 @@ gl_FragCoord origin is upper left 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'inpos' (noperspective in 4-component vector of float FragCoord) Linked fragment stage: @@ -128,6 +130,8 @@ gl_FragCoord origin is upper left 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'inpos' (noperspective in 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 3a1342c7..82a64477 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -18,6 +18,7 @@ local_size = (1, 1, 1) 0:11 0.000000 0:11 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) Linked compute stage: @@ -42,6 +43,7 @@ local_size = (1, 1, 1) 0:11 0.000000 0:11 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 62337a99..cbf47118 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -321,6 +321,12 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) Linked compute stage: @@ -648,15 +654,21 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 219 +// Id's are bound by 224 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 + EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 219 220 222 223 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" @@ -699,8 +711,16 @@ local_size = (1, 1, 1) Name 185 "out_u4" Name 193 "gs_uc4" Name 215 "@entryPointOutput" + Name 219 "inF1" + Name 220 "inF2" + Name 222 "inU0" + Name 223 "inU1" Decorate 175(inF0) Location 0 Decorate 215(@entryPointOutput) Location 0 + Decorate 219(inF1) Location 1 + Decorate 220(inF2) Location 2 + Decorate 222(inU0) Location 3 + Decorate 223(inU1) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -753,6 +773,11 @@ local_size = (1, 1, 1) 215(@entryPointOutput): 214(ptr) Variable Output 216: 6(float) Constant 1082130432 217: 173(fvec4) ConstantComposite 128 129 169 216 + 219(inF1): 174(ptr) Variable Input + 220(inF2): 174(ptr) Variable Input + 221: TypePointer Input 178(ivec4) + 222(inU0): 221(ptr) Variable Input + 223(inU1): 221(ptr) Variable Input 4(ComputeShaderFunction): 2 Function None 3 5: Label 185(out_u4): 184(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index c6a812cf..a5ace7e8 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -34,6 +34,15 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) +0:? 'inDV1a' (layout(location=0 ) in double) +0:? 'inDV1b' (layout(location=1 ) in double) +0:? 'inDV1c' (layout(location=2 ) in double) +0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:? 'inU1a' (layout(location=8 ) in uint) +0:? 'inU1b' (layout(location=9 ) in uint) Linked fragment stage: @@ -74,16 +83,25 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) +0:? 'inDV1a' (layout(location=0 ) in double) +0:? 'inDV1b' (layout(location=1 ) in double) +0:? 'inDV1c' (layout(location=2 ) in double) +0:? 'inDV2' (layout(location=3 ) in 2-component vector of double) +0:? 'inDV3' (layout(location=4 ) in 3-component vector of double) +0:? 'inDV4' (layout(location=6 ) in 4-component vector of double) +0:? 'inU1a' (layout(location=8 ) in uint) +0:? 'inU1b' (layout(location=9 ) in uint) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 32 +// Id's are bound by 41 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 + EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 34 37 40 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "r00" @@ -94,12 +112,18 @@ gl_FragCoord origin is upper left Name 20 "inU1a" Name 22 "inU1b" Name 29 "@entryPointOutput" + Name 34 "inDV2" + Name 37 "inDV3" + Name 40 "inDV4" Decorate 10(inDV1a) Location 0 Decorate 12(inDV1b) Location 1 Decorate 14(inDV1c) Location 2 Decorate 20(inU1a) Location 8 Decorate 22(inU1b) Location 9 Decorate 29(@entryPointOutput) Location 0 + Decorate 34(inDV2) Location 3 + Decorate 37(inDV3) Location 4 + Decorate 40(inDV4) Location 6 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 @@ -117,6 +141,15 @@ gl_FragCoord origin is upper left 28: TypePointer Output 27(float) 29(@entryPointOutput): 28(ptr) Variable Output 30: 27(float) Constant 0 + 32: TypeVector 6(float) 2 + 33: TypePointer Input 32(fvec2) + 34(inDV2): 33(ptr) Variable Input + 35: TypeVector 6(float) 3 + 36: TypePointer Input 35(fvec3) + 37(inDV3): 36(ptr) Variable Input + 38: TypeVector 6(float) 4 + 39: TypePointer Input 38(fvec4) + 40(inDV4): 39(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index 4b3b58d6..a23a8833 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -44,6 +44,11 @@ gl_FragCoord origin is upper left 0:9 Constant: 0:9 0.062500 0:? Linker Objects +0:? 'inF1' (layout(location=0 ) in float) +0:? 'inF2' (layout(location=1 ) in 2-component vector of float) +0:? 'inF3' (layout(location=2 ) in 3-component vector of float) +0:? 'inF4' (layout(location=3 ) in 4-component vector of float) +0:? 'inI2' (layout(location=4 ) in 2-component vector of int) Linked fragment stage: @@ -94,6 +99,11 @@ gl_FragCoord origin is upper left 0:9 Constant: 0:9 0.062500 0:? Linker Objects +0:? 'inF1' (layout(location=0 ) in float) +0:? 'inF2' (layout(location=1 ) in 2-component vector of float) +0:? 'inF3' (layout(location=2 ) in 3-component vector of float) +0:? 'inF4' (layout(location=3 ) in 4-component vector of float) +0:? 'inI2' (layout(location=4 ) in 2-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 85e38391..aae3cedc 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -66,6 +66,8 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:32 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -131,5 +133,7 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:32 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 23297e9c..562cdcd9 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2790,6 +2790,7 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) Linked fragment stage: @@ -5586,6 +5587,7 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index 506f6147..eb3cee7d 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -36,6 +36,9 @@ gl_FragCoord origin is upper left 0:3 Constant: 0:3 1.000000 0:? Linker Objects +0:? 'n_dot_l' (layout(location=0 ) in float) +0:? 'n_dot_h' (layout(location=1 ) in float) +0:? 'm' (layout(location=2 ) in float) Linked fragment stage: @@ -78,6 +81,9 @@ gl_FragCoord origin is upper left 0:3 Constant: 0:3 1.000000 0:? Linker Objects +0:? 'n_dot_l' (layout(location=0 ) in float) +0:? 'n_dot_h' (layout(location=1 ) in float) +0:? 'm' (layout(location=2 ) in float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index d8ca8b07..75bdbf6c 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -62,6 +62,11 @@ local_size = (1, 1, 1) 0:? 4.000000 0:199 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) Linked compute stage: @@ -130,15 +135,20 @@ local_size = (1, 1, 1) 0:? 4.000000 0:199 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 65 +// Id's are bound by 72 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 61 + EntryPoint GLCompute 4 "ComputeShaderFunction" 61 66 67 68 71 ExecutionMode 4 LocalSize 1 1 1 Name 4 "ComputeShaderFunction" Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" @@ -162,7 +172,15 @@ local_size = (1, 1, 1) Name 41 "inF2" Name 42 "inI0" Name 61 "@entryPointOutput" + Name 66 "inF0" + Name 67 "inF1" + Name 68 "inF2" + Name 71 "inI0" Decorate 61(@entryPointOutput) Location 0 + Decorate 66(inF0) Location 0 + Decorate 67(inF1) Location 1 + Decorate 68(inF2) Location 2 + Decorate 71(inI0) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -191,6 +209,13 @@ local_size = (1, 1, 1) 61(@entryPointOutput): 60(ptr) Variable Output 62: 6(float) Constant 1082130432 63: 59(fvec4) ConstantComposite 50 51 55 62 + 65: TypePointer Input 59(fvec4) + 66(inF0): 65(ptr) Variable Input + 67(inF1): 65(ptr) Variable Input + 68(inF2): 65(ptr) Variable Input + 69: TypeVector 8(int) 4 + 70: TypePointer Input 69(ivec4) + 71(inI0): 70(ptr) Variable Input 4(ComputeShaderFunction): 2 Function None 3 5: Label Store 61(@entryPointOutput) 63 diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index ff8775a3..28526950 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -408,6 +408,11 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) Linked fragment stage: @@ -759,5 +764,10 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 364a3eb0..a9b2bbc5 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -126,6 +126,11 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) Linked vertex stage: @@ -258,15 +263,20 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 121 +// Id's are bound by 128 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" 85 + EntryPoint Vertex 4 "VertexShaderFunction" 85 122 123 124 127 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" @@ -313,7 +323,15 @@ Shader version: 450 Name 118 "gs_ua4" Name 119 "gs_ub4" Name 120 "gs_uc4" + Name 122 "inF0" + Name 123 "inF1" + Name 124 "inF2" + Name 127 "inI0" Decorate 85(@entryPointOutput) Location 0 + Decorate 122(inF0) Location 0 + Decorate 123(inF1) Location 1 + Decorate 124(inF2) Location 2 + Decorate 127(inI0) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -377,6 +395,13 @@ Shader version: 450 118(gs_ua4): 117(ptr) Variable Private 119(gs_ub4): 117(ptr) Variable Private 120(gs_uc4): 117(ptr) Variable Private + 121: TypePointer Input 61(fvec4) + 122(inF0): 121(ptr) Variable Input + 123(inF1): 121(ptr) Variable Input + 124(inF2): 121(ptr) Variable Input + 125: TypeVector 8(int) 4 + 126: TypePointer Input 125(ivec4) + 127(inI0): 126(ptr) Variable Input 4(VertexShaderFunction): 2 Function None 3 5: Label Store 85(@entryPointOutput) 87 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 49c9acd5..0a40e2a7 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -109,6 +109,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -224,6 +225,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 28c5e043..2c019d8d 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -142,6 +142,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -290,6 +291,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 48860594..10d0442b 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -175,6 +175,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -356,6 +357,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 73fc756d..fd3761c9 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -167,6 +167,7 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -340,6 +341,7 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 64c14bc0..57f6eb55 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -58,6 +58,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -122,6 +123,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 317ff098..57dd6f77 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -184,6 +184,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -374,6 +375,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 6feae5d2..68e0aed4 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -148,6 +148,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -302,6 +303,7 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 8524fe6e..36ba9019 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -116,6 +116,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'idx' (uniform int) 0:? 'um' (uniform 3X2 matrix of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) Linked fragment stage: @@ -238,6 +239,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'idx' (uniform int) 0:? 'um' (uniform 3X2 matrix of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 51759586..04aeb2d4 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -15,6 +15,9 @@ gl_FragCoord origin is upper left 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input1' (layout(location=0 ) in 4-component vector of float) +0:? 'input2' (layout(location=1 ) in 4-component vector of float) Linked fragment stage: @@ -36,6 +39,9 @@ gl_FragCoord origin is upper left 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input1' (layout(location=0 ) in 4-component vector of float) +0:? 'input2' (layout(location=1 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 8aa302cf..35ecaf50 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -22,6 +22,8 @@ Shader version: 450 0:10 Branch: Return 0:? Linker Objects 0:? 'Position' (uniform samplerBuffer) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'Index' (in uint VertexIndex) Linked vertex stage: @@ -50,6 +52,8 @@ Shader version: 450 0:10 Branch: Return 0:? Linker Objects 0:? 'Position' (uniform samplerBuffer) +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'Index' (in uint VertexIndex) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index b48967fa..e470893b 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -64,6 +64,7 @@ gl_FragCoord origin is upper left 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) Linked fragment stage: @@ -134,6 +135,7 @@ gl_FragCoord origin is upper left 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 201d0846..24a23a95 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -354,6 +354,8 @@ gl_FragCoord origin is upper left 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -714,6 +716,8 @@ gl_FragCoord origin is upper left 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index f8ed19e9..6acd5684 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -37,6 +37,7 @@ gl_FragCoord origin is upper left 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -80,6 +81,7 @@ gl_FragCoord origin is upper left 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index d606cc96..6733aa5c 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -46,6 +46,11 @@ gl_FragCoord origin is upper left 0:8 3 (const int) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'a1' (layout(location=0 ) in 4-component vector of float) +0:? 'a2' (layout(location=1 ) in 4-component vector of float) +0:? 'a3' (layout(location=2 ) in 4-component vector of float) +0:? 'a4' (layout(location=3 ) in 4-component vector of float) Linked fragment stage: @@ -98,6 +103,11 @@ gl_FragCoord origin is upper left 0:8 3 (const int) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'a1' (layout(location=0 ) in 4-component vector of float) +0:? 'a2' (layout(location=1 ) in 4-component vector of float) +0:? 'a3' (layout(location=2 ) in 4-component vector of float) +0:? 'a4' (layout(location=3 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 3218c792..3f5f159d 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -29,6 +29,11 @@ gl_FragCoord origin is upper left 0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out int) +0:? 'a1' (layout(location=0 ) in int) +0:? 'a2' (layout(location=1 ) in int) +0:? 'a3' (layout(location=2 ) in int) +0:? 'a4' (layout(location=3 ) in int) Linked fragment stage: @@ -64,6 +69,11 @@ gl_FragCoord origin is upper left 0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out int) +0:? 'a1' (layout(location=0 ) in int) +0:? 'a2' (layout(location=1 ) in int) +0:? 'a3' (layout(location=2 ) in int) +0:? 'a4' (layout(location=3 ) in int) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index a3a780b1..38b97951 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -26,6 +26,7 @@ gl_FragCoord origin is upper left 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) Linked fragment stage: @@ -58,6 +59,7 @@ gl_FragCoord origin is upper left 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index fbad6bc0..eea37d35 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -512,6 +512,7 @@ gl_FragCoord origin is upper left 0:? 'fs' (uniform float) 0:? 'us' (uniform uint) 0:? 'ds' (uniform double) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) Linked fragment stage: @@ -1030,6 +1031,7 @@ gl_FragCoord origin is upper left 0:? 'fs' (uniform float) 0:? 'us' (uniform uint) 0:? 'ds' (uniform double) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 2caeb72e..da683940 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -138,6 +138,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -282,6 +283,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 73c39784..6f6dc6de 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -253,6 +253,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -510,6 +511,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index ec030678..dae4594d 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -159,6 +159,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -324,6 +325,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index e9ab2c70..0df5d1e4 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -114,6 +114,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -234,6 +235,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index b5066115..76774948 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -156,6 +156,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -318,6 +319,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index bd0263ca..7af43cb6 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -189,6 +189,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -384,6 +385,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index a6bca8b8..e1b1027c 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -177,6 +177,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -360,6 +361,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 908fda0c..44182349 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -126,6 +126,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -258,6 +259,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index ed4c1bf6..df7bb630 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -176,6 +176,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -358,6 +359,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index b6ff4eb4..3bae16f2 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -167,6 +167,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -340,6 +341,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 47bd5d91..de345e2a 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -140,6 +140,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -286,6 +287,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 7eba5d3f..1deff2aa 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -146,6 +146,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -298,6 +299,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 1f0fda7d..8468b8e3 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -194,6 +194,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -394,6 +395,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 14dd752c..08d1154a 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -185,6 +185,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -376,6 +377,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index ac223cb0..662a1df5 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -152,6 +152,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -310,6 +311,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 764d0dc4..86c6801b 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -158,6 +158,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -322,6 +323,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 27a2a42a..27bcad42 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -192,6 +192,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -390,6 +391,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index ce6d6efa..82eea56d 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -243,6 +243,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -492,6 +493,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 5943081c..8f85cfcc 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -235,6 +235,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -476,6 +477,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 348d27ad..2928bed3 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -213,6 +213,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -432,6 +433,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 9aeaeddd..76831db8 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -147,6 +147,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -300,6 +301,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 59beba60..dbdf833c 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -156,6 +156,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -318,6 +319,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index a7e26ca8..7e0c28e4 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -190,6 +190,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -386,6 +387,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index f1fef1f6..e3b61aaf 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -181,6 +181,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -368,6 +369,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 608fd0ce..81bafbde 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -177,6 +177,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -360,6 +361,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index e762d59d..ebec613d 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -126,6 +126,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) Linked fragment stage: @@ -258,6 +259,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 2bc1dd52..4218c4fb 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -38,6 +38,7 @@ gl_FragCoord origin is upper left 0:29 0 (const int) 0:27 No loop body 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -82,21 +83,24 @@ gl_FragCoord origin is upper left 0:29 0 (const int) 0:27 No loop body 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 36 +// Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 38 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "x" Name 11 "x" Name 14 "x" Name 17 "x" + Name 38 "input" + Decorate 38(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -108,6 +112,9 @@ gl_FragCoord origin is upper left 15: TypeVector 9(float) 3 16: TypePointer Function 15(fvec3) 19: 6(int) Constant 0 + 36: TypeVector 9(float) 4 + 37: TypePointer Input 36(fvec4) + 38(input): 37(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 8(x): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 91b88fd4..e5eb8e2d 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -25,6 +25,7 @@ gl_FragCoord origin is upper left 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) Linked fragment stage: @@ -56,6 +57,7 @@ gl_FragCoord origin is upper left 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index 87c26bca..246cfe64 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -13,6 +13,8 @@ gl_FragCoord origin is upper left 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -32,6 +34,8 @@ gl_FragCoord origin is upper left 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 7cfd2d52..4d5d275c 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -23,6 +23,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) Linked fragment stage: @@ -52,6 +53,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 70287ec0..0809d08c 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -33,6 +33,8 @@ gl_FragCoord origin is upper left 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -68,6 +70,8 @@ gl_FragCoord origin is upper left 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index c68ba83a..0531bd11 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -32,6 +32,11 @@ Shader version: 450 0:8 'e' (layout(location=4 ) in 4-component vector of float) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'd' (layout(location=0 ) in 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:? 'e' (layout(location=4 ) in 4-component vector of float) Linked vertex stage: @@ -70,6 +75,11 @@ Shader version: 450 0:8 'e' (layout(location=4 ) in 4-component vector of float) 0:8 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'd' (layout(location=0 ) in 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:? 'e' (layout(location=4 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index 241dec3c..bd1eaa08 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -125,6 +125,10 @@ gl_FragCoord origin is upper left 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'c' (layout(location=1 ) in int) +0:? 'd' (layout(location=2 ) in int) Linked fragment stage: @@ -256,6 +260,10 @@ gl_FragCoord origin is upper left 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'c' (layout(location=1 ) in int) +0:? 'd' (layout(location=2 ) in int) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index 76de8910..db2b4535 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -246,6 +246,7 @@ gl_FragCoord origin is upper left 0:45 0.000000 0:45 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) Linked fragment stage: @@ -498,6 +499,7 @@ gl_FragCoord origin is upper left 0:45 0.000000 0:45 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (out float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 40444c02..3715166f 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -14,6 +14,7 @@ gl_FragCoord origin is upper left 0:7 Function Call: foo2( (global void) 0:8 Branch: Return 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -34,21 +35,28 @@ gl_FragCoord origin is upper left 0:7 Function Call: foo2( (global void) 0:8 Branch: Return 0:? Linker Objects +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 13 +// Id's are bound by 17 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 16 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 6 "foo1(" Name 8 "foo2(" + Name 16 "input" + Decorate 16(input) Location 0 2: TypeVoid 3: TypeFunction 2 + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypePointer Input 14(fvec4) + 16(input): 15(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 10: 2 FunctionCall 6(foo1() diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index cd88050b..d1b92ea3 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -34,6 +34,8 @@ gl_FragCoord origin is upper left 0:6 false (const bool) 0:6 No loop body 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -74,6 +76,8 @@ gl_FragCoord origin is upper left 0:6 false (const bool) 0:6 No loop body 0:? Linker Objects +0:? '@entryPointOutput' (out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index a483986e..7048c10f 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -11,12 +11,18 @@ Linked fragment stage: Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" + EntryPoint Fragment 5663 "main" 4045 4872 ExecutionMode 5663 OriginUpperLeft + Decorate 4872 Location 0 8: TypeVoid 1282: TypeFunction 8 13: TypeFloat 32 + 29: TypeVector 13(float) 4 2572: 13(float) Constant 0 + 666: TypePointer Output 29(fvec4) + 4045: 666(ptr) Variable Output + 667: TypePointer Input 29(fvec4) + 4872: 667(ptr) Variable Input 5663: 8 Function None 1282 16122: Label ReturnValue 2572 diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 741f7098..6fa58dbc 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -5,13 +5,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 149 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" + EntryPoint Fragment 4 "main" 146 148 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -42,6 +42,9 @@ Linked fragment stage: Name 130 "r62" Name 136 "r65" Name 141 "r66" + Name 146 "@entryPointOutput" + Name 148 "input" + Decorate 148(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -155,6 +158,10 @@ Linked fragment stage: 142: 69(fvec3) ConstantComposite 109 111 112 143: 69(fvec3) ConstantComposite 113 114 116 144: 139 ConstantComposite 72 126 142 143 + 145: TypePointer Output 7(fvec4) +146(@entryPointOutput): 145(ptr) Variable Output + 147: TypePointer Input 7(fvec4) + 148(input): 147(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 33703919..74310f35 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1481" -#define GLSLANG_DATE "11-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1482" +#define GLSLANG_DATE "12-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index dbc29402..40bea67f 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -702,6 +702,9 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt // E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. bool HlslParseContext::shouldFlatten(const TType& type) { + if (! inEntrypoint) + return false; + const TStorageQualifier qualifier = type.getQualifier().storage; return type.isStruct() && @@ -727,6 +730,7 @@ void HlslParseContext::flattenStruct(const TVariable& variable) memberVariable->getWritableType().getQualifier().layoutLocation = location; location += intermediate.computeTypeLocationSize(memberVariable->getType()); memberVariables.push_back(memberVariable); + intermediate.addSymbolLinkageNode(linkage, *memberVariable); } flattenMap[variable.getUniqueId()] = memberVariables; @@ -855,6 +859,8 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l if (shouldFlatten(*param.type)) flattenStruct(*variable); + else if (inEntrypoint) + intermediate.addSymbolLinkageNode(linkage, *variable); } } else paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); @@ -907,6 +913,7 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) if (function.getType().getBasicType() != EbtVoid) { entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; + intermediate.addSymbolLinkageNode(linkage, *entryPointOutput); if (function.getType().getQualifier().builtIn == EbvNone) { entryPointOutput->getWritableType().getQualifier().layoutLocation = outCount; outCount += intermediate.computeTypeLocationSize(function.getType()); From 64b9743ce0daf1dfce5262e811f480a0c56cf02a Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Wed, 14 Sep 2016 14:43:21 +0800 Subject: [PATCH 124/217] SPV: Support simultaneous l-value swizzle and dynamic component selection. --- SPIRV/SpvBuilder.cpp | 22 ++- Test/baseResults/spv.accessChain.frag.out | 182 ++++++++++++---------- Test/spv.accessChain.frag | 2 +- 3 files changed, 111 insertions(+), 95 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index f2af3b59..708871eb 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1328,15 +1328,20 @@ Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std: // Comments in header Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vector& channels) { - assert(getNumComponents(source) == (int)channels.size()); if (channels.size() == 1 && getNumComponents(source) == 1) return createCompositeInsert(source, target, typeId, channels.front()); Instruction* swizzle = new Instruction(getUniqueId(), typeId, OpVectorShuffle); - assert(isVector(source)); assert(isVector(target)); swizzle->addIdOperand(target); - swizzle->addIdOperand(source); + if (accessChain.component != NoResult) + // For dynamic component selection, source does not involve in l-value swizzle + swizzle->addIdOperand(target); + else { + assert(getNumComponents(source) == (int)channels.size()); + assert(isVector(source)); + swizzle->addIdOperand(source); + } // Set up an identity shuffle from the base value to the result value unsigned int components[4]; @@ -1345,8 +1350,12 @@ Id Builder::createLvalueSwizzle(Id typeId, Id target, Id source, std::vectormissingFunctionality("simultaneous l-value swizzle and dynamic component selection"); - // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. Id source = NoResult; diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out index e9a9d81b..3d391c31 100755 --- a/Test/baseResults/spv.accessChain.frag.out +++ b/Test/baseResults/spv.accessChain.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 197 +// Id's are bound by 206 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 65 149 + EntryPoint Fragment 4 "main" 65 158 ExecutionMode 4 OriginUpperLeft Source GLSL 420 Name 4 "main" @@ -57,22 +57,22 @@ Linked fragment stage: Name 60 "i" Name 61 "comp" Name 65 "OutColor" - Name 144 "s" - Name 149 "u" - Name 150 "param" - Name 154 "param" - Name 158 "param" - Name 162 "param" - Name 166 "param" - Name 170 "param" - Name 174 "param" - Name 178 "param" - Name 182 "param" - Name 186 "param" - Name 190 "param" - Name 194 "param" + Name 153 "s" + Name 158 "u" + Name 159 "param" + Name 163 "param" + Name 167 "param" + Name 171 "param" + Name 175 "param" + Name 179 "param" + Name 183 "param" + Name 187 "param" + Name 191 "param" + Name 195 "param" + Name 199 "param" + Name 203 "param" Decorate 65(OutColor) Location 0 - Decorate 149(u) Flat + Decorate 158(u) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -90,77 +90,77 @@ Linked fragment stage: 95: TypeVector 6(float) 2 109: 67(int) Constant 2 136: TypePointer Output 6(float) - 141: 6(float) Constant 0 - 142: 7(fvec3) ConstantComposite 141 141 141 - 143: TypePointer Function 8(S) - 148: TypePointer Input 13(int) - 149(u): 148(ptr) Variable Input + 150: 6(float) Constant 0 + 151: 7(fvec3) ConstantComposite 150 150 150 + 152: TypePointer Function 8(S) + 157: TypePointer Input 13(int) + 158(u): 157(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 144(s): 143(ptr) Variable Function - 150(param): 14(ptr) Variable Function - 154(param): 14(ptr) Variable Function - 158(param): 14(ptr) Variable Function - 162(param): 14(ptr) Variable Function - 166(param): 14(ptr) Variable Function - 170(param): 14(ptr) Variable Function - 174(param): 14(ptr) Variable Function - 178(param): 14(ptr) Variable Function - 182(param): 14(ptr) Variable Function - 186(param): 14(ptr) Variable Function - 190(param): 14(ptr) Variable Function - 194(param): 14(ptr) Variable Function - Store 65(OutColor) 142 - 145: 8(S) Load 144(s) - 146: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 145 - 147: 8(S) Load 144(s) - 151: 13(int) Load 149(u) - Store 150(param) 151 - 152: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param) - 153: 8(S) Load 144(s) - 155: 13(int) Load 149(u) - Store 154(param) 155 - 156: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param) - 157: 8(S) Load 144(s) - 159: 13(int) Load 149(u) - Store 158(param) 159 - 160: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param) - 161: 8(S) Load 144(s) - 163: 13(int) Load 149(u) - Store 162(param) 163 - 164: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param) - 165: 8(S) Load 144(s) - 167: 13(int) Load 149(u) - Store 166(param) 167 - 168: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param) - 169: 8(S) Load 144(s) - 171: 13(int) Load 149(u) - Store 170(param) 171 - 172: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param) - 173: 8(S) Load 144(s) - 175: 13(int) Load 149(u) - Store 174(param) 175 - 176: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param) - 177: 8(S) Load 144(s) - 179: 13(int) Load 149(u) - Store 178(param) 179 - 180: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param) - 181: 8(S) Load 144(s) - 183: 13(int) Load 149(u) - Store 182(param) 183 - 184: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param) - 185: 8(S) Load 144(s) - 187: 13(int) Load 149(u) - Store 186(param) 187 - 188: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param) - 189: 8(S) Load 144(s) - 191: 13(int) Load 149(u) - Store 190(param) 191 - 192: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param) - 193: 8(S) Load 144(s) - 195: 13(int) Load 149(u) - Store 194(param) 195 - 196: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param) + 153(s): 152(ptr) Variable Function + 159(param): 14(ptr) Variable Function + 163(param): 14(ptr) Variable Function + 167(param): 14(ptr) Variable Function + 171(param): 14(ptr) Variable Function + 175(param): 14(ptr) Variable Function + 179(param): 14(ptr) Variable Function + 183(param): 14(ptr) Variable Function + 187(param): 14(ptr) Variable Function + 191(param): 14(ptr) Variable Function + 195(param): 14(ptr) Variable Function + 199(param): 14(ptr) Variable Function + 203(param): 14(ptr) Variable Function + Store 65(OutColor) 151 + 154: 8(S) Load 153(s) + 155: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 154 + 156: 8(S) Load 153(s) + 160: 13(int) Load 158(u) + Store 159(param) 160 + 161: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 156 159(param) + 162: 8(S) Load 153(s) + 164: 13(int) Load 158(u) + Store 163(param) 164 + 165: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 162 163(param) + 166: 8(S) Load 153(s) + 168: 13(int) Load 158(u) + Store 167(param) 168 + 169: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 166 167(param) + 170: 8(S) Load 153(s) + 172: 13(int) Load 158(u) + Store 171(param) 172 + 173: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 170 171(param) + 174: 8(S) Load 153(s) + 176: 13(int) Load 158(u) + Store 175(param) 176 + 177: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 174 175(param) + 178: 8(S) Load 153(s) + 180: 13(int) Load 158(u) + Store 179(param) 180 + 181: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 178 179(param) + 182: 8(S) Load 153(s) + 184: 13(int) Load 158(u) + Store 183(param) 184 + 185: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 182 183(param) + 186: 8(S) Load 153(s) + 188: 13(int) Load 158(u) + Store 187(param) 188 + 189: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 186 187(param) + 190: 8(S) Load 153(s) + 192: 13(int) Load 158(u) + Store 191(param) 192 + 193: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 190 191(param) + 194: 8(S) Load 153(s) + 196: 13(int) Load 158(u) + Store 195(param) 196 + 197: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 194 195(param) + 198: 8(S) Load 153(s) + 200: 13(int) Load 158(u) + Store 199(param) 200 + 201: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 198 199(param) + 202: 8(S) Load 153(s) + 204: 13(int) Load 158(u) + Store 203(param) 204 + 205: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 202 203(param) Return FunctionEnd 11(GetColor1(struct-S-vf31;): 2 Function None 9 @@ -319,5 +319,15 @@ Linked fragment stage: 60(i): 8(S) FunctionParameter 61(comp): 14(ptr) FunctionParameter 63: Label + 141: 13(int) Load 61(comp) + 142: 6(float) CompositeExtract 60(i) 0 0 + 143: 7(fvec3) Load 65(OutColor) + 144: 95(fvec2) VectorShuffle 143 143 2 1 + 145: 6(float) VectorExtractDynamic 144 141 + 146: 6(float) FAdd 145 142 + 147: 7(fvec3) Load 65(OutColor) + 148: 7(fvec3) VectorShuffle 147 147 2 1 2 + 149: 7(fvec3) VectorInsertDynamic 148 146 141 + Store 65(OutColor) 149 Return FunctionEnd diff --git a/Test/spv.accessChain.frag b/Test/spv.accessChain.frag index 41ec0ca3..c7f805b5 100644 --- a/Test/spv.accessChain.frag +++ b/Test/spv.accessChain.frag @@ -71,7 +71,7 @@ void GetColor12(const S i, int comp) void GetColor13(const S i, int comp) { - // OutColor.zy[comp] += i.color.x; // not yet supported + OutColor.zy[comp] += i.color.x; } void main() From 7f702124ece009c5882ae29eb23169901edb5663 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 15 Sep 2016 22:49:31 -0600 Subject: [PATCH 125/217] HLSL: return correct error when HLSL parsing fails. At least partially addresses issue #510. --- glslang/Include/revision.h | 4 ++-- hlsl/hlslParseHelper.cpp | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 74310f35..e45c88a4 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1482" -#define GLSLANG_DATE "12-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1485" +#define GLSLANG_DATE "15-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 40bea67f..bd2ff629 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -119,14 +119,15 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& HlslScanContext scanContext(*this, ppContext); HlslGrammar grammar(scanContext, *this); - if (!grammar.parse()) - { + if (!grammar.parse()) { // Print a message formated such that if you click on the message it will take you right to // the line through most UIs. const glslang::TSourceLoc& sourceLoc = input.getSourceLoc(); printf("\n%s(%i): error at column %i, HLSL translation failed.\n", sourceLoc.name, sourceLoc.line, sourceLoc.column); + return false; } + return numErrors == 0; } From 7dc630f3da4ddf9895e4daf048cec04ec6423aac Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 01:44:43 -0600 Subject: [PATCH 126/217] HLSL: Flatten a return struct from an entry point and assign locations after flattening. Locations now get assigned in order, but skipping built-ins, which can be done post flattening. --- Test/baseResults/hlsl.array.frag.out | 4 +- Test/baseResults/hlsl.assoc.frag.out | 4 +- Test/baseResults/hlsl.buffer.frag.out | 4 +- .../hlsl.calculatelod.dx10.frag.out | 23 ++- .../hlsl.calculatelodunclamped.dx10.frag.out | 10 +- Test/baseResults/hlsl.cast.frag.out | 4 +- Test/baseResults/hlsl.conditional.frag.out | 4 +- Test/baseResults/hlsl.constructexpr.frag.out | 17 ++- Test/baseResults/hlsl.doLoop.frag.out | 4 +- Test/baseResults/hlsl.entry-out.frag.out | 8 +- Test/baseResults/hlsl.forLoop.frag.out | 4 +- .../hlsl.gather.array.dx10.frag.out | 23 ++- .../hlsl.gather.basic.dx10.frag.out | 23 ++- .../hlsl.gather.basic.dx10.vert.out | 4 +- .../hlsl.gather.offset.dx10.frag.out | 23 ++- .../hlsl.gather.offsetarray.dx10.frag.out | 23 ++- .../hlsl.gatherRGBA.array.dx10.frag.out | 23 ++- .../hlsl.gatherRGBA.basic.dx10.frag.out | 23 ++- .../hlsl.gatherRGBA.offset.dx10.frag.out | 23 ++- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 23 ++- .../hlsl.getdimensions.dx10.frag.out | 23 ++- .../hlsl.getdimensions.dx10.vert.out | 4 +- .../hlsl.getsampleposition.dx10.frag.out | 10 +- Test/baseResults/hlsl.if.frag.out | 4 +- Test/baseResults/hlsl.init.frag.out | 4 +- Test/baseResults/hlsl.init2.frag.out | 17 ++- Test/baseResults/hlsl.inoutquals.frag.out | 23 ++- .../hlsl.intrinsics.barriers.comp.out | 4 +- Test/baseResults/hlsl.intrinsics.comp.out | 4 +- .../hlsl.intrinsics.double.frag.out | 4 +- .../hlsl.intrinsics.f1632.frag.out | 4 +- Test/baseResults/hlsl.intrinsics.frag.out | 17 ++- .../hlsl.intrinsics.negative.comp.out | 4 +- .../hlsl.intrinsics.negative.frag.out | 4 +- .../hlsl.intrinsics.negative.vert.out | 4 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 23 ++- .../baseResults/hlsl.load.array.dx10.frag.out | 23 ++- .../baseResults/hlsl.load.basic.dx10.frag.out | 23 ++- .../baseResults/hlsl.load.basic.dx10.vert.out | 4 +- .../hlsl.load.buffer.dx10.frag.out | 23 ++- .../hlsl.load.offset.dx10.frag.out | 23 ++- .../hlsl.load.offsetarray.dx10.frag.out | 23 ++- Test/baseResults/hlsl.matrixindex.frag.out | 17 ++- Test/baseResults/hlsl.max.frag.out | 4 +- .../baseResults/hlsl.numericsuffixes.frag.out | 17 ++- Test/baseResults/hlsl.overload.frag.out | 4 +- Test/baseResults/hlsl.pp.line.frag.out | 23 ++- Test/baseResults/hlsl.precedence.frag.out | 4 +- Test/baseResults/hlsl.precedence2.frag.out | 4 +- Test/baseResults/hlsl.precise.frag.out | 17 ++- Test/baseResults/hlsl.promotions.frag.out | 17 ++- .../hlsl.sample.array.dx10.frag.out | 23 ++- .../hlsl.sample.basic.dx10.frag.out | 23 ++- .../hlsl.sample.offset.dx10.frag.out | 23 ++- .../hlsl.sample.offsetarray.dx10.frag.out | 23 ++- .../hlsl.samplebias.array.dx10.frag.out | 23 ++- .../hlsl.samplebias.basic.dx10.frag.out | 23 ++- .../hlsl.samplebias.offset.dx10.frag.out | 23 ++- .../hlsl.samplebias.offsetarray.dx10.frag.out | 23 ++- .../hlsl.samplecmp.array.dx10.frag.out | 23 ++- .../hlsl.samplecmp.basic.dx10.frag.out | 23 ++- .../hlsl.samplecmp.offset.dx10.frag.out | 23 ++- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 23 ++- ...lsl.samplecmplevelzero.array.dx10.frag.out | 23 ++- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 23 ++- ...sl.samplecmplevelzero.offset.dx10.frag.out | 23 ++- ...mplecmplevelzero.offsetarray.dx10.frag.out | 23 ++- .../hlsl.samplegrad.array.dx10.frag.out | 23 ++- .../hlsl.samplegrad.basic.dx10.frag.out | 23 ++- .../hlsl.samplegrad.basic.dx10.vert.out | 4 +- .../hlsl.samplegrad.offset.dx10.frag.out | 23 ++- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 23 ++- .../hlsl.samplelevel.array.dx10.frag.out | 23 ++- .../hlsl.samplelevel.basic.dx10.frag.out | 23 ++- .../hlsl.samplelevel.basic.dx10.vert.out | 4 +- .../hlsl.samplelevel.offset.dx10.frag.out | 23 ++- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 23 ++- Test/baseResults/hlsl.semicolons.frag.out | 17 ++- Test/baseResults/hlsl.sin.frag.out | 4 +- Test/baseResults/hlsl.stringtoken.frag.out | 17 ++- Test/baseResults/hlsl.struct.frag.out | 4 +- Test/baseResults/hlsl.structin.vert.out | 4 +- Test/baseResults/hlsl.switch.frag.out | 4 +- Test/baseResults/hlsl.templatetypes.frag.out | 4 +- Test/baseResults/hlsl.whileLoop.frag.out | 4 +- ...emap.hlsl.sample.basic.everything.frag.out | 9 +- .../remap.hlsl.sample.basic.none.frag.out | 13 +- .../remap.hlsl.sample.basic.strip.frag.out | 11 +- ...map.hlsl.templatetypes.everything.frag.out | 1 + .../remap.hlsl.templatetypes.none.frag.out | 1 + glslang/Include/revision.h | 4 +- hlsl/hlslParseHelper.cpp | 131 +++++++++++------- hlsl/hlslParseHelper.h | 5 +- 93 files changed, 951 insertions(+), 495 deletions(-) diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index feb5c753..359f62f8 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -107,7 +107,7 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 'a' (global 4-element array of 4-component vector of float) 0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 883aac26..d54d4674 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'a1' (layout(location=0 ) in 4-component vector of float) 0:? 'a2' (layout(location=1 ) in 4-component vector of float) 0:? 'a3' (layout(location=2 ) in 4-component vector of float) @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:10 'a5' (layout(location=4 ) in 4-component vector of float) 0:10 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'a1' (layout(location=0 ) in 4-component vector of float) 0:? 'a2' (layout(location=1 ) in 4-component vector of float) 0:? 'a3' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 2f3d1b87..78a8e738 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 83aec993..cf251a6f 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -156,7 +156,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -304,7 +305,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -319,11 +320,12 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 149 Capability Shader Capability Sampled1D @@ -331,7 +333,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 141 146 148 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -359,6 +361,8 @@ gl_FragCoord origin is upper left Name 133 "psout" Name 141 "@entryPointOutput" Name 144 "g_tTex1df4" + Name 146 "Color" + Name 148 "Depth" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -372,9 +376,10 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(@entryPointOutput) Location 0 Decorate 144(g_tTex1df4) DescriptorSet 0 Decorate 144(g_tTex1df4) Binding 0 + Decorate 146(Color) Location 0 + Decorate 148(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -448,6 +453,10 @@ gl_FragCoord origin is upper left 140: TypePointer Output 131(PS_OUTPUT) 141(@entryPointOutput): 140(ptr) Variable Output 144(g_tTex1df4): 10(ptr) Variable UniformConstant + 145: TypePointer Output 130(fvec4) + 146(Color): 145(ptr) Variable Output + 147: TypePointer Output 6(float) + 148(Depth): 147(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 05b7a58e..3faac3ce 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -153,7 +153,7 @@ ERROR: node is still EOpNull! 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -168,7 +168,8 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -316,7 +317,7 @@ ERROR: node is still EOpNull! 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -331,6 +332,7 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index c64e23a1..3bef95f0 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:3 1.198000 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:3 1.198000 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index c5723222..f6c00fe6 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:15 'f' (temp 4-component vector of float) 0:15 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:15 'f' (temp 4-component vector of float) 0:15 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 4c013b00..a8ff93cc 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -36,11 +36,11 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -83,27 +83,28 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:16 Sequence 0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:16 'ps_output' (temp structure{temp 4-component vector of float color}) 0:16 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 34 +// Id's are bound by 36 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 31 + EntryPoint Fragment 4 "main" 31 35 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" Name 31 "@entryPointOutput" - Decorate 31(@entryPointOutput) Location 0 + Name 35 "color" + Decorate 35(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -130,6 +131,8 @@ gl_FragCoord origin is upper left 28: TypePointer Function 21(fvec4) 30: TypePointer Output 22(PS_OUTPUT) 31(@entryPointOutput): 30(ptr) Variable Output + 34: TypePointer Output 21(fvec4) + 35(color): 34(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 315fc2e9..019f43d7 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 872d738c..efd82f75 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -6,7 +6,7 @@ gl_FragCoord origin is upper left 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (layout(location=1 ) out 4-component vector of float) @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'out1' (layout(location=1 ) out 4-component vector of float) 0:? 'v' (layout(location=2 ) out 2-component vector of float) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (layout(location=1 ) out 4-component vector of float) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:11 'out1' (layout(location=1 ) out 4-component vector of float) 0:11 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'out1' (layout(location=1 ) out 4-component vector of float) 0:? 'v' (layout(location=2 ) out 2-component vector of float) diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 5be0720c..ba8e32e7 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:12 Pre-Decrement (temp float) 0:12 'ii' (temp float) 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -236,7 +236,7 @@ gl_FragCoord origin is upper left 0:12 Pre-Decrement (temp float) 0:12 'ii' (temp float) 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index e8c20f09..e224ce87 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -108,7 +108,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -208,7 +209,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -223,18 +224,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 112 +// Id's are bound by 116 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 99 + EntryPoint Fragment 4 "main" 99 113 115 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -259,6 +261,8 @@ gl_FragCoord origin is upper left Name 105 "g_tTex1df4" Name 108 "g_tTex1di4a" Name 111 "g_tTex1du4a" + Name 113 "Color" + Name 115 "Depth" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -268,13 +272,14 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 99(@entryPointOutput) Location 0 Decorate 104(g_tTex1df4a) DescriptorSet 0 Decorate 104(g_tTex1df4a) Binding 1 Decorate 105(g_tTex1df4) DescriptorSet 0 Decorate 105(g_tTex1df4) Binding 0 Decorate 108(g_tTex1di4a) DescriptorSet 0 Decorate 111(g_tTex1du4a) DescriptorSet 0 + Decorate 113(Color) Location 0 + Decorate 115(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -348,6 +353,10 @@ gl_FragCoord origin is upper left 109: TypeImage 42(int) 1D array sampled format:Unknown 110: TypePointer UniformConstant 109 111(g_tTex1du4a): 110(ptr) Variable UniformConstant + 112: TypePointer Output 7(fvec4) + 113(Color): 112(ptr) Variable Output + 114: TypePointer Output 6(float) + 115(Depth): 114(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index d5be71be..1703e472 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:47 Sequence 0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects @@ -106,7 +106,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -200,7 +201,7 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:47 Sequence 0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:47 Branch: Return 0:? Linker Objects @@ -219,17 +220,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 123 +// Id's are bound by 127 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 100 + EntryPoint Fragment 4 "main" 100 124 126 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -258,6 +260,8 @@ gl_FragCoord origin is upper left Name 116 "g_tTex3df4" Name 119 "g_tTex3di4" Name 122 "g_tTex3du4" + Name 124 "Color" + Name 126 "Depth" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -267,7 +271,6 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 100(@entryPointOutput) Location 0 Decorate 103(g_sSamp2d) DescriptorSet 0 Decorate 106(g_tTex1df4a) DescriptorSet 0 Decorate 106(g_tTex1df4a) Binding 1 @@ -278,6 +281,8 @@ gl_FragCoord origin is upper left Decorate 116(g_tTex3df4) DescriptorSet 0 Decorate 119(g_tTex3di4) DescriptorSet 0 Decorate 122(g_tTex3du4) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 126(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -362,6 +367,10 @@ gl_FragCoord origin is upper left 120: TypeImage 41(int) 3D sampled format:Unknown 121: TypePointer UniformConstant 120 122(g_tTex3du4): 121(ptr) Variable UniformConstant + 123: TypePointer Output 7(fvec4) + 124(Color): 123(ptr) Variable Output + 125: TypePointer Output 6(float) + 126(Depth): 125(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index bec800c0..abc7de17 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -98,7 +98,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -203,7 +203,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index e16f76cb..61d42c9e 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -81,7 +81,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -151,7 +152,7 @@ gl_FragCoord origin is upper left 0:41 1.000000 0:43 Sequence 0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:43 Branch: Return 0:? Linker Objects @@ -169,17 +170,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 102 +// Id's are bound by 106 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 + EntryPoint Fragment 4 "main" 71 103 105 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -204,13 +206,14 @@ gl_FragCoord origin is upper left Name 95 "g_tTexcdf4" Name 98 "g_tTexcdi4" Name 101 "g_tTexcdu4" + Name 103 "Color" + Name 105 "Depth" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 71(@entryPointOutput) Location 0 Decorate 76(g_tTex1df4a) DescriptorSet 0 Decorate 76(g_tTex1df4a) Binding 1 Decorate 77(g_tTex1df4) DescriptorSet 0 @@ -223,6 +226,8 @@ gl_FragCoord origin is upper left Decorate 95(g_tTexcdf4) DescriptorSet 0 Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 101(g_tTexcdu4) DescriptorSet 0 + Decorate 103(Color) Location 0 + Decorate 105(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -301,6 +306,10 @@ gl_FragCoord origin is upper left 99: TypeImage 45(int) Cube sampled format:Unknown 100: TypePointer UniformConstant 99 101(g_tTexcdu4): 100(ptr) Variable UniformConstant + 102: TypePointer Output 7(fvec4) + 103(Color): 102(ptr) Variable Output + 104: TypePointer Output 6(float) + 105(Depth): 104(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index b98c1dfc..c3fab2ea 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:35 Sequence 0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects @@ -78,7 +78,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -151,7 +152,7 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:35 Sequence 0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:35 Branch: Return 0:? Linker Objects @@ -163,17 +164,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 85 +// Id's are bound by 89 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 72 + EntryPoint Fragment 4 "main" 72 86 88 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -192,19 +194,22 @@ gl_FragCoord origin is upper left Name 78 "g_tTex1df4" Name 81 "g_tTex1di4" Name 84 "g_tTex1du4" + Name 86 "Color" + Name 88 "Depth" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 72(@entryPointOutput) Location 0 Decorate 77(g_tTex1df4a) DescriptorSet 0 Decorate 77(g_tTex1df4a) Binding 1 Decorate 78(g_tTex1df4) DescriptorSet 0 Decorate 78(g_tTex1df4) Binding 0 Decorate 81(g_tTex1di4) DescriptorSet 0 Decorate 84(g_tTex1du4) DescriptorSet 0 + Decorate 86(Color) Location 0 + Decorate 88(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -266,6 +271,10 @@ gl_FragCoord origin is upper left 82: TypeImage 45(int) 1D array sampled format:Unknown 83: TypePointer UniformConstant 82 84(g_tTex1du4): 83(ptr) Variable UniformConstant + 85: TypePointer Output 7(fvec4) + 86(Color): 85(ptr) Variable Output + 87: TypePointer Output 6(float) + 88(Depth): 87(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index ee448860..7cfe3d95 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -264,7 +264,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -283,7 +283,8 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -554,7 +555,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -573,18 +574,19 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 222 +// Id's are bound by 226 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 204 + EntryPoint Fragment 4 "main" 204 223 225 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -631,6 +633,8 @@ gl_FragCoord origin is upper left Name 216 "g_tTex1du4a" Name 218 "c1" Name 221 "c2" + Name 223 "Color" + Name 225 "Depth" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -640,12 +644,13 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 204(@entryPointOutput) Location 0 Decorate 207(g_sSamp2d) DescriptorSet 0 Decorate 210(g_tTex1df4a) DescriptorSet 0 Decorate 210(g_tTex1df4a) Binding 0 Decorate 213(g_tTex1di4a) DescriptorSet 0 Decorate 216(g_tTex1du4a) DescriptorSet 0 + Decorate 223(Color) Location 0 + Decorate 225(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -715,6 +720,10 @@ gl_FragCoord origin is upper left 219: TypeVector 6(float) 2 220: TypePointer UniformConstant 219(fvec2) 221(c2): 220(ptr) Variable UniformConstant + 222: TypePointer Output 7(fvec4) + 223(Color): 222(ptr) Variable Output + 224: TypePointer Output 6(float) + 225(Depth): 224(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 15defeba..9ba2a1ac 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -264,7 +264,7 @@ gl_FragCoord origin is upper left 0:74 1.000000 0:76 Sequence 0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects @@ -287,7 +287,8 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -558,7 +559,7 @@ gl_FragCoord origin is upper left 0:74 1.000000 0:76 Sequence 0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:76 Branch: Return 0:? Linker Objects @@ -581,17 +582,18 @@ gl_FragCoord origin is upper left 0:? 'c2' (uniform 2-component vector of float) 0:? 'c3' (uniform 3-component vector of float) 0:? 'c4' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 232 +// Id's are bound by 236 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 + EntryPoint Fragment 4 "main" 205 233 235 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -642,6 +644,8 @@ gl_FragCoord origin is upper left Name 227 "g_tTex3du4" Name 229 "c1" Name 231 "c4" + Name 233 "Color" + Name 235 "Depth" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -651,7 +655,6 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 205(@entryPointOutput) Location 0 Decorate 208(g_sSamp2d) DescriptorSet 0 Decorate 211(g_tTex1df4a) DescriptorSet 0 Decorate 211(g_tTex1df4a) Binding 1 @@ -662,6 +665,8 @@ gl_FragCoord origin is upper left Decorate 221(g_tTex3df4) DescriptorSet 0 Decorate 224(g_tTex3di4) DescriptorSet 0 Decorate 227(g_tTex3du4) DescriptorSet 0 + Decorate 233(Color) Location 0 + Decorate 235(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -741,6 +746,10 @@ gl_FragCoord origin is upper left 229(c1): 228(ptr) Variable UniformConstant 230: TypePointer UniformConstant 7(fvec4) 231(c4): 230(ptr) Variable UniformConstant + 232: TypePointer Output 7(fvec4) + 233(Color): 232(ptr) Variable Output + 234: TypePointer Output 6(float) + 235(Depth): 234(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 6c1cee2b..283e085d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:113 1.000000 0:115 Sequence 0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects @@ -363,7 +363,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -706,7 +707,7 @@ gl_FragCoord origin is upper left 0:113 1.000000 0:115 Sequence 0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:115 Branch: Return 0:? Linker Objects @@ -733,18 +734,19 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 313 +// Id's are bound by 317 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 + EntryPoint Fragment 4 "main" 267 314 316 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -799,13 +801,14 @@ gl_FragCoord origin is upper left Name 307 "o1" Name 310 "o3" Name 312 "o4" + Name 314 "Color" + Name 316 "Depth" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 267(@entryPointOutput) Location 0 Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 Decorate 273(g_tTex1df4a) Binding 1 @@ -819,6 +822,8 @@ gl_FragCoord origin is upper left Decorate 292(g_tTexcdf4) DescriptorSet 0 Decorate 295(g_tTexcdi4) DescriptorSet 0 Decorate 298(g_tTexcdu4) DescriptorSet 0 + Decorate 314(Color) Location 0 + Decorate 316(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -907,6 +912,10 @@ gl_FragCoord origin is upper left 310(o3): 309(ptr) Variable UniformConstant 311: TypePointer UniformConstant 31(ivec4) 312(o4): 311(ptr) Variable UniformConstant + 313: TypePointer Output 7(fvec4) + 314(Color): 313(ptr) Variable Output + 315: TypePointer Output 6(float) + 316(Depth): 315(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 547f1194..a6fabbf1 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:107 1.000000 0:109 Sequence 0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects @@ -359,7 +359,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -702,7 +703,7 @@ gl_FragCoord origin is upper left 0:107 1.000000 0:109 Sequence 0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:109 Branch: Return 0:? Linker Objects @@ -725,11 +726,12 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 303 +// Id's are bound by 307 Capability Shader Capability ImageGatherExtended @@ -737,7 +739,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 + EntryPoint Fragment 4 "main" 267 304 306 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -788,13 +790,14 @@ gl_FragCoord origin is upper left Name 297 "o1" Name 300 "o3" Name 302 "o4" + Name 304 "Color" + Name 306 "Depth" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 267(@entryPointOutput) Location 0 Decorate 270(g_sSamp2d) DescriptorSet 0 Decorate 273(g_tTex1df4a) DescriptorSet 0 Decorate 273(g_tTex1df4a) Binding 0 @@ -803,6 +806,8 @@ gl_FragCoord origin is upper left Decorate 282(g_tTexcdf4a) DescriptorSet 0 Decorate 285(g_tTexcdi4a) DescriptorSet 0 Decorate 288(g_tTexcdu4a) DescriptorSet 0 + Decorate 304(Color) Location 0 + Decorate 306(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -881,6 +886,10 @@ gl_FragCoord origin is upper left 300(o3): 299(ptr) Variable UniformConstant 301: TypePointer UniformConstant 31(ivec4) 302(o4): 301(ptr) Variable UniformConstant + 303: TypePointer Output 7(fvec4) + 304(Color): 303(ptr) Variable Output + 305: TypePointer Output 6(float) + 306(Depth): 305(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 278fa6fd..1c5e4255 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1062,7 +1062,7 @@ gl_FragCoord origin is upper left 0:277 1.000000 0:279 Sequence 0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects @@ -1094,7 +1094,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -2163,7 +2164,7 @@ gl_FragCoord origin is upper left 0:277 1.000000 0:279 Sequence 0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:279 Branch: Return 0:? Linker Objects @@ -2195,11 +2196,12 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 540 +// Id's are bound by 544 Capability Shader Capability Sampled1D @@ -2208,7 +2210,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 534 + EntryPoint Fragment 4 "main" 534 541 543 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2298,6 +2300,8 @@ gl_FragCoord origin is upper left Name 524 "psout" Name 534 "@entryPointOutput" Name 539 "g_sSamp" + Name 541 "Color" + Name 543 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2327,9 +2331,10 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 534(@entryPointOutput) Location 0 Decorate 539(g_sSamp) DescriptorSet 0 Decorate 539(g_sSamp) Binding 0 + Decorate 541(Color) Location 0 + Decorate 543(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2441,6 +2446,10 @@ gl_FragCoord origin is upper left 537: TypeSampler 538: TypePointer UniformConstant 537 539(g_sSamp): 538(ptr) Variable UniformConstant + 540: TypePointer Output 521(fvec4) + 541(Color): 540(ptr) Variable Output + 542: TypePointer Output 9(float) + 543(Depth): 542(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index c8a10643..c03e8c21 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -44,7 +44,7 @@ Shader version: 450 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -95,7 +95,7 @@ Shader version: 450 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index ac5ee6b2..8addf8fa 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -45,14 +45,15 @@ ERROR: node is still EOpNull! 0:20 1.000000 0:22 Sequence 0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -99,13 +100,14 @@ ERROR: node is still EOpNull! 0:20 1.000000 0:22 Sequence 0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index d9e9fa58..499015a4 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:32 Pre-Increment (temp int) 0:32 'ii' (temp int) 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:32 Pre-Increment (temp int) 0:32 'ii' (temp int) 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index e6b24c3f..99acc235 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -308,7 +308,7 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 6b8e95ca..b5702f34 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -45,11 +45,11 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:31 Sequence 0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -101,20 +101,20 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:31 Sequence 0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:31 'ps_output' (temp structure{temp 4-component vector of float color}) 0:31 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 48 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 43 + EntryPoint Fragment 4 "main" 43 47 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -132,7 +132,8 @@ gl_FragCoord origin is upper left MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" Name 43 "@entryPointOutput" - Decorate 43(@entryPointOutput) Location 0 + Name 47 "color" + Decorate 47(color) Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -164,6 +165,8 @@ gl_FragCoord origin is upper left 40: TypePointer Function 33(fvec4) 42: TypePointer Output 34(PS_OUTPUT) 43(@entryPointOutput): 42(ptr) Variable Output + 46: TypePointer Output 33(fvec4) + 47(color): 46(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 4e974927..af6106b4 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -57,11 +57,12 @@ gl_FragCoord origin is upper left 0:22 3 (const int) 0:24 Sequence 0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) @@ -126,21 +127,22 @@ gl_FragCoord origin is upper left 0:22 3 (const int) 0:24 Sequence 0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:24 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 56 +// Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 + EntryPoint Fragment 4 "main" 45 53 57 59 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -159,10 +161,13 @@ gl_FragCoord origin is upper left Name 33 "psout" Name 45 "inpos" Name 53 "@entryPointOutput" + Name 57 "Color" + Name 59 "Depth" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord - Decorate 53(@entryPointOutput) Location 0 + Decorate 57(Color) Location 0 + Decorate 59(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -186,6 +191,10 @@ gl_FragCoord origin is upper left 48: TypePointer Input 6(float) 52: TypePointer Output 31(PS_OUTPUT) 53(@entryPointOutput): 52(ptr) Variable Output + 56: TypePointer Output 30(fvec4) + 57(Color): 56(ptr) Variable Output + 58: TypePointer Output 6(float) + 59(Depth): 58(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 82a64477..95e17258 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -18,7 +18,7 @@ local_size = (1, 1, 1) 0:11 0.000000 0:11 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) Linked compute stage: @@ -43,7 +43,7 @@ local_size = (1, 1, 1) 0:11 0.000000 0:11 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index cbf47118..b760c65e 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -321,7 +321,7 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) @@ -654,7 +654,7 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index a5ace7e8..0dba0329 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:? 'inDV1a' (layout(location=0 ) in double) 0:? 'inDV1b' (layout(location=1 ) in double) 0:? 'inDV1c' (layout(location=2 ) in double) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) 0:? 'inDV1a' (layout(location=0 ) in double) 0:? 'inDV1b' (layout(location=1 ) in double) 0:? 'inDV1c' (layout(location=2 ) in double) diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index aae3cedc..21daced7 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -66,7 +66,7 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:32 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) @@ -133,7 +133,7 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:32 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 562cdcd9..fd807bae 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2774,7 +2774,7 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:492 Sequence 0:492 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:492 'ps_output' (temp structure{temp 4-component vector of float color}) 0:492 Branch: Return 0:? Linker Objects @@ -2790,7 +2790,7 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -5571,7 +5571,7 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:492 Sequence 0:492 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:492 'ps_output' (temp structure{temp 4-component vector of float color}) 0:492 Branch: Return 0:? Linker Objects @@ -5587,17 +5587,17 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1824 +// Id's are bound by 1826 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1805 + EntryPoint Fragment 4 "main" 1805 1825 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -6124,7 +6124,8 @@ gl_FragCoord origin is upper left Name 1821 "gs_ua4" Name 1822 "gs_ub4" Name 1823 "gs_uc4" - Decorate 1805(@entryPointOutput) Location 0 + Name 1825 "color" + Decorate 1825(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6258,6 +6259,8 @@ gl_FragCoord origin is upper left 1821(gs_ua4): 1820(ptr) Variable Private 1822(gs_ub4): 1820(ptr) Variable Private 1823(gs_uc4): 1820(ptr) Variable Private + 1824: TypePointer Output 48(fvec4) + 1825(color): 1824(ptr) Variable Output 4(main): 2 Function None 3 5: Label 1800(ps_output): 1799(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 75bdbf6c..01008644 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -62,7 +62,7 @@ local_size = (1, 1, 1) 0:? 4.000000 0:199 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) @@ -135,7 +135,7 @@ local_size = (1, 1, 1) 0:? 4.000000 0:199 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 28526950..2244e8bc 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -408,7 +408,7 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) @@ -764,7 +764,7 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index a9b2bbc5..e702d332 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -126,7 +126,7 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) @@ -263,7 +263,7 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 0a40e2a7..5de1da62 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:52 1.000000 0:54 Sequence 0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects @@ -109,7 +109,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -206,7 +207,7 @@ gl_FragCoord origin is upper left 0:52 1.000000 0:54 Sequence 0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:54 Branch: Return 0:? Linker Objects @@ -225,18 +226,19 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 105 +// Id's are bound by 109 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 + EntryPoint Fragment 4 "main" 92 106 108 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -259,6 +261,8 @@ gl_FragCoord origin is upper left Name 102 "o1" Name 103 "o3" Name 104 "o4" + Name 106 "Color" + Name 108 "Depth" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -266,9 +270,10 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 92(@entryPointOutput) Location 0 Decorate 97(g_sSamp) DescriptorSet 0 Decorate 97(g_sSamp) Binding 0 + Decorate 106(Color) Location 0 + Decorate 108(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -323,6 +328,10 @@ gl_FragCoord origin is upper left 102(o1): 98(ptr) Variable UniformConstant 103(o3): 52(ptr) Variable UniformConstant 104(o4): 100(ptr) Variable UniformConstant + 105: TypePointer Output 17(fvec4) + 106(Color): 105(ptr) Variable Output + 107: TypePointer Output 6(float) + 108(Depth): 107(ptr) Variable Output 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 2c019d8d..f4966766 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -142,7 +142,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -257,7 +258,7 @@ gl_FragCoord origin is upper left 0:68 1.000000 0:70 Sequence 0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:70 Branch: Return 0:? Linker Objects @@ -291,18 +292,19 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 145 +// Id's are bound by 149 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 87 + EntryPoint Fragment 4 "main" 87 146 148 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -340,6 +342,8 @@ gl_FragCoord origin is upper left Name 142 "o2" Name 143 "o3" Name 144 "o4" + Name 146 "Color" + Name 148 "Depth" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -347,7 +351,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 87(@entryPointOutput) Location 0 Decorate 92(g_sSamp) DescriptorSet 0 Decorate 92(g_sSamp) Binding 0 Decorate 95(g_tTex1df4) DescriptorSet 0 @@ -366,6 +369,8 @@ gl_FragCoord origin is upper left Decorate 131(g_tTexcdf4a) DescriptorSet 0 Decorate 134(g_tTexcdi4a) DescriptorSet 0 Decorate 137(g_tTexcdu4a) DescriptorSet 0 + Decorate 146(Color) Location 0 + Decorate 148(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -466,6 +471,10 @@ gl_FragCoord origin is upper left 142(o2): 139(ptr) Variable UniformConstant 143(o3): 13(ptr) Variable UniformConstant 144(o4): 49(ptr) Variable UniformConstant + 145: TypePointer Output 23(fvec4) + 146(Color): 145(ptr) Variable Output + 147: TypePointer Output 6(float) + 148(Depth): 147(ptr) Variable Output 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 10d0442b..2d8501aa 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -175,7 +175,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -323,7 +324,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -357,18 +358,19 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 165 +// Id's are bound by 169 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 118 + EntryPoint Fragment 4 "main" 118 166 168 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -406,6 +408,8 @@ gl_FragCoord origin is upper left Name 162 "o2" Name 163 "o3" Name 164 "o4" + Name 166 "Color" + Name 168 "Depth" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -417,7 +421,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 118(@entryPointOutput) Location 0 Decorate 123(g_sSamp) DescriptorSet 0 Decorate 123(g_sSamp) Binding 0 Decorate 126(g_tTexcdf4) DescriptorSet 0 @@ -432,6 +435,8 @@ gl_FragCoord origin is upper left Decorate 153(g_tTexcdf4a) DescriptorSet 0 Decorate 156(g_tTexcdi4a) DescriptorSet 0 Decorate 159(g_tTexcdu4a) DescriptorSet 0 + Decorate 166(Color) Location 0 + Decorate 168(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -534,6 +539,10 @@ gl_FragCoord origin is upper left 162(o2): 13(ptr) Variable UniformConstant 163(o3): 50(ptr) Variable UniformConstant 164(o4): 80(ptr) Variable UniformConstant + 165: TypePointer Output 23(fvec4) + 166(Color): 165(ptr) Variable Output + 167: TypePointer Output 6(float) + 168(Depth): 167(ptr) Variable Output 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index fd3761c9..a0082097 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -167,7 +167,7 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -341,7 +341,7 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 57f6eb55..86acd71f 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:37 Sequence 0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects @@ -58,7 +58,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -107,7 +108,7 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:37 Sequence 0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:37 Branch: Return 0:? Linker Objects @@ -123,17 +124,18 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 71 +// Id's are bound by 75 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 + EntryPoint Fragment 4 "main" 55 72 74 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -156,13 +158,16 @@ gl_FragCoord origin is upper left Name 68 "o2" Name 69 "o3" Name 70 "o4" + Name 72 "Color" + Name 74 "Depth" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 55(@entryPointOutput) Location 0 Decorate 58(g_tTexbf4_test) DescriptorSet 0 Decorate 58(g_tTexbf4_test) Binding 0 + Decorate 72(Color) Location 0 + Decorate 74(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -210,6 +215,10 @@ gl_FragCoord origin is upper left 68(o2): 60(ptr) Variable UniformConstant 69(o3): 63(ptr) Variable UniformConstant 70(o4): 65(ptr) Variable UniformConstant + 71: TypePointer Output 7(fvec4) + 72(Color): 71(ptr) Variable Output + 73: TypePointer Output 6(float) + 74(Depth): 73(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 57dd6f77..82f00d24 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -184,7 +184,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -341,7 +342,7 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:75 Sequence 0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:75 Branch: Return 0:? Linker Objects @@ -375,11 +376,12 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 174 +// Id's are bound by 178 Capability Shader Capability ImageGatherExtended @@ -387,7 +389,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 130 175 177 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -425,6 +427,8 @@ gl_FragCoord origin is upper left Name 171 "g_tTexcdu4a" Name 172 "c1" Name 173 "o4" + Name 175 "Color" + Name 177 "Depth" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -436,7 +440,6 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 130(@entryPointOutput) Location 0 Decorate 135(g_sSamp) DescriptorSet 0 Decorate 135(g_sSamp) Binding 0 Decorate 138(g_tTexcdf4) DescriptorSet 0 @@ -451,6 +454,8 @@ gl_FragCoord origin is upper left Decorate 165(g_tTexcdf4a) DescriptorSet 0 Decorate 168(g_tTexcdi4a) DescriptorSet 0 Decorate 171(g_tTexcdu4a) DescriptorSet 0 + Decorate 175(Color) Location 0 + Decorate 177(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -553,6 +558,10 @@ gl_FragCoord origin is upper left 171(g_tTexcdu4a): 170(ptr) Variable UniformConstant 172(c1): 17(ptr) Variable UniformConstant 173(o4): 88(ptr) Variable UniformConstant + 174: TypePointer Output 25(fvec4) + 175(Color): 174(ptr) Variable Output + 176: TypePointer Output 6(float) + 177(Depth): 176(ptr) Variable Output 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 68e0aed4..e3230f6c 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:66 1.000000 0:68 Sequence 0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects @@ -148,7 +148,8 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -269,7 +270,7 @@ gl_FragCoord origin is upper left 0:66 1.000000 0:68 Sequence 0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:68 Branch: Return 0:? Linker Objects @@ -303,11 +304,12 @@ gl_FragCoord origin is upper left 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 155 Capability Shader Capability ImageGatherExtended @@ -315,7 +317,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 + EntryPoint Fragment 4 "main" 96 152 154 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -353,6 +355,8 @@ gl_FragCoord origin is upper left Name 148 "c2" Name 149 "o3" Name 150 "o4" + Name 152 "Color" + Name 154 "Depth" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -360,7 +364,6 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 96(@entryPointOutput) Location 0 Decorate 101(g_sSamp) DescriptorSet 0 Decorate 101(g_sSamp) Binding 0 Decorate 104(g_tTex1df4) DescriptorSet 0 @@ -379,6 +382,8 @@ gl_FragCoord origin is upper left Decorate 140(g_tTexcdf4a) DescriptorSet 0 Decorate 143(g_tTexcdi4a) DescriptorSet 0 Decorate 146(g_tTexcdu4a) DescriptorSet 0 + Decorate 152(Color) Location 0 + Decorate 154(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -479,6 +484,10 @@ gl_FragCoord origin is upper left 148(c2): 60(ptr) Variable UniformConstant 149(o3): 13(ptr) Variable UniformConstant 150(o4): 53(ptr) Variable UniformConstant + 151: TypePointer Output 25(fvec4) + 152(Color): 151(ptr) Variable Output + 153: TypePointer Output 6(float) + 154(Depth): 153(ptr) Variable Output 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 36ba9019..d8eb9de3 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -110,13 +110,13 @@ gl_FragCoord origin is upper left 0:47 'e2_11' (temp float) 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:48 'psout' (temp structure{temp 4-component vector of float Color}) 0:48 Branch: Return 0:? Linker Objects 0:? 'idx' (uniform int) 0:? 'um' (uniform 3X2 matrix of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -233,22 +233,22 @@ gl_FragCoord origin is upper left 0:47 'e2_11' (temp float) 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:48 'psout' (temp structure{temp 4-component vector of float Color}) 0:48 Branch: Return 0:? Linker Objects 0:? 'idx' (uniform int) 0:? 'um' (uniform 3X2 matrix of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 74 +// Id's are bound by 76 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 + EntryPoint Fragment 4 "main" 71 75 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "e1_00" @@ -275,7 +275,8 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" Name 64 "psout" Name 71 "@entryPointOutput" - Decorate 71(@entryPointOutput) Location 0 + Name 75 "Color" + Decorate 75(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -316,6 +317,8 @@ gl_FragCoord origin is upper left 68: TypePointer Function 61(fvec4) 70: TypePointer Output 62(PS_OUTPUT) 71(@entryPointOutput): 70(ptr) Variable Output + 74: TypePointer Output 61(fvec4) + 75(Color): 74(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(e1_00): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 04aeb2d4..d396be8b 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -15,7 +15,7 @@ gl_FragCoord origin is upper left 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input1' (layout(location=0 ) in 4-component vector of float) 0:? 'input2' (layout(location=1 ) in 4-component vector of float) @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input1' (layout(location=0 ) in 4-component vector of float) 0:? 'input2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index e470893b..787a503a 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -60,11 +60,11 @@ gl_FragCoord origin is upper left 0:18 'r07' (temp int) 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -131,20 +131,20 @@ gl_FragCoord origin is upper left 0:18 'r07' (temp int) 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:19 'ps_output' (temp structure{temp 4-component vector of float color}) 0:19 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 43 +// Id's are bound by 45 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 40 + EntryPoint Fragment 4 "main" 40 44 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -160,7 +160,8 @@ gl_FragCoord origin is upper left MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" Name 40 "@entryPointOutput" - Decorate 40(@entryPointOutput) Location 0 + Name 44 "color" + Decorate 44(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -184,6 +185,8 @@ gl_FragCoord origin is upper left 37: TypePointer Function 29(fvec4) 39: TypePointer Output 30(PS_OUTPUT) 40(@entryPointOutput): 39(ptr) Variable Output + 43: TypePointer Output 29(fvec4) + 44(color): 43(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 24a23a95..0e0f4707 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -354,7 +354,7 @@ gl_FragCoord origin is upper left 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -716,7 +716,7 @@ gl_FragCoord origin is upper left 0:141 'input' (layout(location=0 ) in 4-component vector of float) 0:141 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 6acd5684..fac24107 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -33,11 +33,12 @@ gl_FragCoord origin is upper left 0:127 1.000000 0:129 Sequence 0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -77,20 +78,21 @@ gl_FragCoord origin is upper left 0:127 1.000000 0:129 Sequence 0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:129 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 34 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 + EntryPoint Fragment 4 "main" 27 31 33 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -99,8 +101,11 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" Name 27 "@entryPointOutput" + Name 31 "Color" + Name 33 "Depth" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 27(@entryPointOutput) Location 0 + Decorate 31(Color) Location 0 + Decorate 33(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -118,6 +123,10 @@ gl_FragCoord origin is upper left 24: TypePointer Function 10(float) 26: TypePointer Output 12(PS_OUTPUT) 27(@entryPointOutput): 26(ptr) Variable Output + 30: TypePointer Output 11(fvec4) + 31(Color): 30(ptr) Variable Output + 32: TypePointer Output 10(float) + 33(Depth): 32(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 6733aa5c..e6338470 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:8 3 (const int) 0:8 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'a1' (layout(location=0 ) in 4-component vector of float) 0:? 'a2' (layout(location=1 ) in 4-component vector of float) 0:? 'a3' (layout(location=2 ) in 4-component vector of float) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:8 3 (const int) 0:8 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'a1' (layout(location=0 ) in 4-component vector of float) 0:? 'a2' (layout(location=1 ) in 4-component vector of float) 0:? 'a3' (layout(location=2 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 3f5f159d..7021837b 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out int) +0:? '@entryPointOutput' (layout(location=0 ) out int) 0:? 'a1' (layout(location=0 ) in int) 0:? 'a2' (layout(location=1 ) in int) 0:? 'a3' (layout(location=2 ) in int) @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:8 'a4' (layout(location=3 ) in int) 0:8 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out int) +0:? '@entryPointOutput' (layout(location=0 ) out int) 0:? 'a1' (layout(location=0 ) in int) 0:? 'a2' (layout(location=1 ) in int) 0:? 'a3' (layout(location=2 ) in int) diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 38b97951..4cbf8b77 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -21,12 +21,12 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:12 Sequence 0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) 0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) Linked fragment stage: @@ -54,21 +54,21 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:12 Sequence 0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{noContraction temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) 0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 31 +// Id's are bound by 33 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 + EntryPoint Fragment 4 "main" 26 32 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -79,7 +79,8 @@ gl_FragCoord origin is upper left Name 18 "ps_output" Name 26 "@entryPointOutput" Name 30 "precisefloat" - Decorate 26(@entryPointOutput) Location 0 + Name 32 "color" + Decorate 32(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -99,6 +100,8 @@ gl_FragCoord origin is upper left 26(@entryPointOutput): 25(ptr) Variable Output 29: TypePointer Private 6(float) 30(precisefloat): 29(ptr) Variable Private + 31: TypePointer Output 15(fvec4) + 32(color): 31(ptr) Variable Output 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index eea37d35..1e20680f 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -498,7 +498,7 @@ gl_FragCoord origin is upper left 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects @@ -512,7 +512,7 @@ gl_FragCoord origin is upper left 0:? 'fs' (uniform float) 0:? 'us' (uniform uint) 0:? 'ds' (uniform double) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -1017,7 +1017,7 @@ gl_FragCoord origin is upper left 0:199 'outval' (temp 4-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:200 'psout' (temp structure{temp 4-component vector of float Color}) 0:200 Branch: Return 0:? Linker Objects @@ -1031,17 +1031,17 @@ gl_FragCoord origin is upper left 0:? 'fs' (uniform float) 0:? 'us' (uniform uint) 0:? 'ds' (uniform double) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 480 +// Id's are bound by 482 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 477 + EntryPoint Fragment 4 "main" 477 481 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1131,7 +1131,8 @@ gl_FragCoord origin is upper left MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" Name 477 "@entryPointOutput" - Decorate 477(@entryPointOutput) Location 0 + Name 481 "Color" + Decorate 481(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1204,6 +1205,8 @@ gl_FragCoord origin is upper left 472: TypePointer Function 471(PS_OUTPUT) 476: TypePointer Output 471(PS_OUTPUT) 477(@entryPointOutput): 476(ptr) Variable Output + 480: TypePointer Output 462(fvec4) + 481(Color): 480(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index da683940..d5499257 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -138,7 +138,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -268,7 +269,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -283,18 +284,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 134 +// Id's are bound by 138 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 130 135 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -322,6 +324,8 @@ gl_FragCoord origin is upper left Name 122 "psout" Name 130 "@entryPointOutput" Name 133 "g_tTex1df4a" + Name 135 "Color" + Name 137 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -335,9 +339,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 130(@entryPointOutput) Location 0 Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 + Decorate 135(Color) Location 0 + Decorate 137(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -418,6 +423,10 @@ gl_FragCoord origin is upper left 129: TypePointer Output 120(PS_OUTPUT) 130(@entryPointOutput): 129(ptr) Variable Output 133(g_tTex1df4a): 11(ptr) Variable UniformConstant + 134: TypePointer Output 7(fvec4) + 135(Color): 134(ptr) Variable Output + 136: TypePointer Output 6(float) + 137(Depth): 136(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 6f6dc6de..bb73a97e 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left 0:87 1.000000 0:89 Sequence 0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects @@ -253,7 +253,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -491,7 +492,7 @@ gl_FragCoord origin is upper left 0:87 1.000000 0:89 Sequence 0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:89 Branch: Return 0:? Linker Objects @@ -511,17 +512,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 186 +// Id's are bound by 190 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 180 187 189 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -571,6 +573,8 @@ gl_FragCoord origin is upper left Name 183 "g_sSamp2d" Name 184 "g_sSamp2D_b" Name 185 "g_tTex1df4a" + Name 187 "Color" + Name 189 "Depth" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -587,11 +591,12 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 180(@entryPointOutput) Location 0 Decorate 183(g_sSamp2d) DescriptorSet 0 Decorate 184(g_sSamp2D_b) DescriptorSet 0 Decorate 185(g_tTex1df4a) DescriptorSet 0 Decorate 185(g_tTex1df4a) Binding 1 + Decorate 187(Color) Location 0 + Decorate 189(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -696,6 +701,10 @@ gl_FragCoord origin is upper left 183(g_sSamp2d): 44(ptr) Variable UniformConstant 184(g_sSamp2D_b): 44(ptr) Variable UniformConstant 185(g_tTex1df4a): 40(ptr) Variable UniformConstant + 186: TypePointer Output 36(fvec4) + 187(Color): 186(ptr) Variable Output + 188: TypePointer Output 35(float) + 189(Depth): 188(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index dae4594d..b241f6d1 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -159,7 +159,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -307,7 +308,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -325,17 +326,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 153 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 + EntryPoint Fragment 4 "main" 136 150 152 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -366,6 +368,8 @@ gl_FragCoord origin is upper left Name 142 "g_tTexcdf4" Name 145 "g_tTexcdi4" Name 148 "g_tTexcdu4" + Name 150 "Color" + Name 152 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -379,12 +383,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 136(@entryPointOutput) Location 0 Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 Decorate 142(g_tTexcdf4) DescriptorSet 0 Decorate 145(g_tTexcdi4) DescriptorSet 0 Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 150(Color) Location 0 + Decorate 152(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -480,6 +485,10 @@ gl_FragCoord origin is upper left 146: TypeImage 36(int) Cube sampled format:Unknown 147: TypePointer UniformConstant 146 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypePointer Output 7(fvec4) + 150(Color): 149(ptr) Variable Output + 151: TypePointer Output 6(float) + 152(Depth): 151(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 0df5d1e4..a2debf48 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -102,7 +102,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -114,7 +114,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -223,7 +224,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -235,17 +236,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 110 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 + EntryPoint Fragment 4 "main" 102 107 109 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -267,6 +269,8 @@ gl_FragCoord origin is upper left Name 95 "psout" Name 102 "@entryPointOutput" Name 105 "g_tTex1df4a" + Name 107 "Color" + Name 109 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -277,9 +281,10 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(@entryPointOutput) Location 0 Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 + Decorate 107(Color) Location 0 + Decorate 109(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -347,6 +352,10 @@ gl_FragCoord origin is upper left 101: TypePointer Output 93(PS_OUTPUT) 102(@entryPointOutput): 101(ptr) Variable Output 105(g_tTex1df4a): 11(ptr) Variable UniformConstant + 106: TypePointer Output 7(fvec4) + 107(Color): 106(ptr) Variable Output + 108: TypePointer Output 6(float) + 109(Depth): 108(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 76774948..2bb30523 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -156,7 +156,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -304,7 +305,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -319,18 +320,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 134 +// Id's are bound by 138 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 + EntryPoint Fragment 4 "main" 130 135 137 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -358,6 +360,8 @@ gl_FragCoord origin is upper left Name 122 "psout" Name 130 "@entryPointOutput" Name 133 "g_tTex1df4a" + Name 135 "Color" + Name 137 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -371,9 +375,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 130(@entryPointOutput) Location 0 Decorate 133(g_tTex1df4a) DescriptorSet 0 Decorate 133(g_tTex1df4a) Binding 1 + Decorate 135(Color) Location 0 + Decorate 137(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -454,6 +459,10 @@ gl_FragCoord origin is upper left 129: TypePointer Output 120(PS_OUTPUT) 130(@entryPointOutput): 129(ptr) Variable Output 133(g_tTex1df4a): 11(ptr) Variable UniformConstant + 134: TypePointer Output 7(fvec4) + 135(Color): 134(ptr) Variable Output + 136: TypePointer Output 6(float) + 137(Depth): 136(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 7af43cb6..7c19be99 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -189,7 +189,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -367,7 +368,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -385,17 +386,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 162 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 154 + EntryPoint Fragment 4 "main" 154 159 161 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -429,6 +431,8 @@ gl_FragCoord origin is upper left Name 145 "psout" Name 154 "@entryPointOutput" Name 157 "g_tTex1df4a" + Name 159 "Color" + Name 161 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -445,9 +449,10 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 154(@entryPointOutput) Location 0 Decorate 157(g_tTex1df4a) DescriptorSet 0 Decorate 157(g_tTex1df4a) Binding 1 + Decorate 159(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -537,6 +542,10 @@ gl_FragCoord origin is upper left 153: TypePointer Output 143(PS_OUTPUT) 154(@entryPointOutput): 153(ptr) Variable Output 157(g_tTex1df4a): 11(ptr) Variable UniformConstant + 158: TypePointer Output 7(fvec4) + 159(Color): 158(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index e1b1027c..57e32605 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -177,7 +177,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -343,7 +344,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -361,17 +362,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 153 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 + EntryPoint Fragment 4 "main" 136 150 152 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -402,6 +404,8 @@ gl_FragCoord origin is upper left Name 142 "g_tTexcdf4" Name 145 "g_tTexcdi4" Name 148 "g_tTexcdu4" + Name 150 "Color" + Name 152 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -415,12 +419,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 136(@entryPointOutput) Location 0 Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 Decorate 142(g_tTexcdf4) DescriptorSet 0 Decorate 145(g_tTexcdi4) DescriptorSet 0 Decorate 148(g_tTexcdu4) DescriptorSet 0 + Decorate 150(Color) Location 0 + Decorate 152(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -516,6 +521,10 @@ gl_FragCoord origin is upper left 146: TypeImage 37(int) Cube sampled format:Unknown 147: TypePointer UniformConstant 146 148(g_tTexcdu4): 147(ptr) Variable UniformConstant + 149: TypePointer Output 7(fvec4) + 150(Color): 149(ptr) Variable Output + 151: TypePointer Output 6(float) + 152(Depth): 151(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 44182349..5a5380c3 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -126,7 +126,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -247,7 +248,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -259,17 +260,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 110 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 + EntryPoint Fragment 4 "main" 102 107 109 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -291,6 +293,8 @@ gl_FragCoord origin is upper left Name 95 "psout" Name 102 "@entryPointOutput" Name 105 "g_tTex1df4a" + Name 107 "Color" + Name 109 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -301,9 +305,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 102(@entryPointOutput) Location 0 Decorate 105(g_tTex1df4a) DescriptorSet 0 Decorate 105(g_tTex1df4a) Binding 1 + Decorate 107(Color) Location 0 + Decorate 109(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -371,6 +376,10 @@ gl_FragCoord origin is upper left 101: TypePointer Output 93(PS_OUTPUT) 102(@entryPointOutput): 101(ptr) Variable Output 105(g_tTex1df4a): 11(ptr) Variable UniformConstant + 106: TypePointer Output 7(fvec4) + 107(Color): 106(ptr) Variable Output + 108: TypePointer Output 6(float) + 109(Depth): 108(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index df7bb630..17f4743e 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -150,7 +150,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -176,7 +176,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -333,7 +334,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -359,18 +360,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 179 +// Id's are bound by 183 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 + EntryPoint Fragment 4 "main" 140 180 182 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -409,6 +411,8 @@ gl_FragCoord origin is upper left Name 172 "g_tTexcdf4" Name 175 "g_tTexcdi4" Name 178 "g_tTexcdu4" + Name 180 "Color" + Name 182 "Depth" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -421,7 +425,6 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(@entryPointOutput) Location 0 Decorate 145(g_tTex1df4) DescriptorSet 0 Decorate 145(g_tTex1df4) Binding 0 Decorate 148(g_tTex1di4) DescriptorSet 0 @@ -435,6 +438,8 @@ gl_FragCoord origin is upper left Decorate 172(g_tTexcdf4) DescriptorSet 0 Decorate 175(g_tTexcdi4) DescriptorSet 0 Decorate 178(g_tTexcdu4) DescriptorSet 0 + Decorate 180(Color) Location 0 + Decorate 182(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -545,6 +550,10 @@ gl_FragCoord origin is upper left 176: TypeImage 42(int) Cube sampled format:Unknown 177: TypePointer UniformConstant 176 178(g_tTexcdu4): 177(ptr) Variable UniformConstant + 179: TypePointer Output 102(fvec4) + 180(Color): 179(ptr) Variable Output + 181: TypePointer Output 6(float) + 182(Depth): 181(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 3bae16f2..31814458 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -167,7 +167,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -315,7 +316,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -341,18 +342,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 177 +// Id's are bound by 181 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 + EntryPoint Fragment 4 "main" 138 178 180 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -391,6 +393,8 @@ gl_FragCoord origin is upper left Name 170 "g_tTexcdf4a" Name 173 "g_tTexcdi4a" Name 176 "g_tTexcdu4a" + Name 178 "Color" + Name 180 "Depth" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -404,7 +408,6 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 138(@entryPointOutput) Location 0 Decorate 143(g_tTex3df4) DescriptorSet 0 Decorate 146(g_tTex3di4) DescriptorSet 0 Decorate 149(g_tTex3du4) DescriptorSet 0 @@ -417,6 +420,8 @@ gl_FragCoord origin is upper left Decorate 170(g_tTexcdf4a) DescriptorSet 0 Decorate 173(g_tTexcdi4a) DescriptorSet 0 Decorate 176(g_tTexcdu4a) DescriptorSet 0 + Decorate 178(Color) Location 0 + Decorate 180(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -525,6 +530,10 @@ gl_FragCoord origin is upper left 174: TypeImage 37(int) Cube array sampled format:Unknown 175: TypePointer UniformConstant 174 176(g_tTexcdu4a): 175(ptr) Variable UniformConstant + 177: TypePointer Output 126(fvec4) + 178(Color): 177(ptr) Variable Output + 179: TypePointer Output 6(float) + 180(Depth): 179(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index de345e2a..fa3904e2 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -140,7 +140,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -261,7 +262,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -287,18 +288,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 151 +// Id's are bound by 155 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 103 152 154 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -334,6 +336,8 @@ gl_FragCoord origin is upper left Name 144 "g_tTexcdf4a" Name 147 "g_tTexcdi4a" Name 150 "g_tTexcdu4a" + Name 152 "Color" + Name 154 "Depth" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -344,7 +348,6 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(@entryPointOutput) Location 0 Decorate 108(g_tTex3df4) DescriptorSet 0 Decorate 111(g_tTex3di4) DescriptorSet 0 Decorate 114(g_tTex3du4) DescriptorSet 0 @@ -360,6 +363,8 @@ gl_FragCoord origin is upper left Decorate 144(g_tTexcdf4a) DescriptorSet 0 Decorate 147(g_tTexcdi4a) DescriptorSet 0 Decorate 150(g_tTexcdu4a) DescriptorSet 0 + Decorate 152(Color) Location 0 + Decorate 154(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -463,6 +468,10 @@ gl_FragCoord origin is upper left 148: TypeImage 38(int) Cube array sampled format:Unknown 149: TypePointer UniformConstant 148 150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 151: TypePointer Output 91(fvec4) + 152(Color): 151(ptr) Variable Output + 153: TypePointer Output 6(float) + 154(Depth): 153(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 1deff2aa..ba413641 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -146,7 +146,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -273,7 +274,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -299,18 +300,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 161 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 + EntryPoint Fragment 4 "main" 109 158 160 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -346,6 +348,8 @@ gl_FragCoord origin is upper left Name 150 "g_tTexcdf4a" Name 153 "g_tTexcdi4a" Name 156 "g_tTexcdu4a" + Name 158 "Color" + Name 160 "Depth" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -355,7 +359,6 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 109(@entryPointOutput) Location 0 Decorate 114(g_tTex1df4) DescriptorSet 0 Decorate 114(g_tTex1df4) Binding 0 Decorate 117(g_tTex1di4) DescriptorSet 0 @@ -372,6 +375,8 @@ gl_FragCoord origin is upper left Decorate 150(g_tTexcdf4a) DescriptorSet 0 Decorate 153(g_tTexcdi4a) DescriptorSet 0 Decorate 156(g_tTexcdu4a) DescriptorSet 0 + Decorate 158(Color) Location 0 + Decorate 160(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -478,6 +483,10 @@ gl_FragCoord origin is upper left 154: TypeImage 43(int) Cube array sampled format:Unknown 155: TypePointer UniformConstant 154 156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 157: TypePointer Output 97(fvec4) + 158(Color): 157(ptr) Variable Output + 159: TypePointer Output 6(float) + 160(Depth): 159(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 8468b8e3..f8049ba2 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -168,7 +168,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -194,7 +194,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -369,7 +370,7 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:59 Sequence 0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:59 Branch: Return 0:? Linker Objects @@ -395,18 +396,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 180 +// Id's are bound by 184 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 141 181 183 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -445,6 +447,8 @@ gl_FragCoord origin is upper left Name 173 "g_tTexcdf4" Name 176 "g_tTexcdi4" Name 179 "g_tTexcdu4" + Name 181 "Color" + Name 183 "Depth" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -457,7 +461,6 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(@entryPointOutput) Location 0 Decorate 146(g_tTex1df4) DescriptorSet 0 Decorate 146(g_tTex1df4) Binding 0 Decorate 149(g_tTex1di4) DescriptorSet 0 @@ -471,6 +474,8 @@ gl_FragCoord origin is upper left Decorate 173(g_tTexcdf4) DescriptorSet 0 Decorate 176(g_tTexcdi4) DescriptorSet 0 Decorate 179(g_tTexcdu4) DescriptorSet 0 + Decorate 181(Color) Location 0 + Decorate 183(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -582,6 +587,10 @@ gl_FragCoord origin is upper left 177: TypeImage 43(int) Cube sampled format:Unknown 178: TypePointer UniformConstant 177 179(g_tTexcdu4): 178(ptr) Variable UniformConstant + 180: TypePointer Output 103(fvec4) + 181(Color): 180(ptr) Variable Output + 182: TypePointer Output 6(float) + 183(Depth): 182(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 08d1154a..10ae1b7f 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -185,7 +185,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -351,7 +352,7 @@ gl_FragCoord origin is upper left 0:58 1.000000 0:60 Sequence 0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:60 Branch: Return 0:? Linker Objects @@ -377,18 +378,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 182 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 + EntryPoint Fragment 4 "main" 139 179 181 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -427,6 +429,8 @@ gl_FragCoord origin is upper left Name 171 "g_tTexcdf4a" Name 174 "g_tTexcdi4a" Name 177 "g_tTexcdu4a" + Name 179 "Color" + Name 181 "Depth" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -440,7 +444,6 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(@entryPointOutput) Location 0 Decorate 144(g_tTex3df4) DescriptorSet 0 Decorate 147(g_tTex3di4) DescriptorSet 0 Decorate 150(g_tTex3du4) DescriptorSet 0 @@ -453,6 +456,8 @@ gl_FragCoord origin is upper left Decorate 171(g_tTexcdf4a) DescriptorSet 0 Decorate 174(g_tTexcdi4a) DescriptorSet 0 Decorate 177(g_tTexcdu4a) DescriptorSet 0 + Decorate 179(Color) Location 0 + Decorate 181(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -562,6 +567,10 @@ gl_FragCoord origin is upper left 175: TypeImage 38(int) Cube array sampled format:Unknown 176: TypePointer UniformConstant 175 177(g_tTexcdu4a): 176(ptr) Variable UniformConstant + 178: TypePointer Output 127(fvec4) + 179(Color): 178(ptr) Variable Output + 180: TypePointer Output 6(float) + 181(Depth): 180(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 662a1df5..e744e607 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -152,7 +152,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -285,7 +286,7 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:65 Sequence 0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:65 Branch: Return 0:? Linker Objects @@ -311,18 +312,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 152 +// Id's are bound by 156 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 + EntryPoint Fragment 4 "main" 104 153 155 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -358,6 +360,8 @@ gl_FragCoord origin is upper left Name 145 "g_tTexcdf4a" Name 148 "g_tTexcdi4a" Name 151 "g_tTexcdu4a" + Name 153 "Color" + Name 155 "Depth" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -368,7 +372,6 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(@entryPointOutput) Location 0 Decorate 109(g_tTex3df4) DescriptorSet 0 Decorate 112(g_tTex3di4) DescriptorSet 0 Decorate 115(g_tTex3du4) DescriptorSet 0 @@ -384,6 +387,8 @@ gl_FragCoord origin is upper left Decorate 145(g_tTexcdf4a) DescriptorSet 0 Decorate 148(g_tTexcdi4a) DescriptorSet 0 Decorate 151(g_tTexcdu4a) DescriptorSet 0 + Decorate 153(Color) Location 0 + Decorate 155(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -488,6 +493,10 @@ gl_FragCoord origin is upper left 149: TypeImage 39(int) Cube array sampled format:Unknown 150: TypePointer UniformConstant 149 151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 152: TypePointer Output 92(fvec4) + 153(Color): 152(ptr) Variable Output + 154: TypePointer Output 6(float) + 155(Depth): 154(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 86c6801b..f529d464 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -158,7 +158,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -297,7 +298,7 @@ gl_FragCoord origin is upper left 0:64 1.000000 0:66 Sequence 0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:66 Branch: Return 0:? Linker Objects @@ -323,18 +324,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 162 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 + EntryPoint Fragment 4 "main" 110 159 161 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -370,6 +372,8 @@ gl_FragCoord origin is upper left Name 151 "g_tTexcdf4a" Name 154 "g_tTexcdi4a" Name 157 "g_tTexcdu4a" + Name 159 "Color" + Name 161 "Depth" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -379,7 +383,6 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 110(@entryPointOutput) Location 0 Decorate 115(g_tTex1df4) DescriptorSet 0 Decorate 115(g_tTex1df4) Binding 0 Decorate 118(g_tTex1di4) DescriptorSet 0 @@ -396,6 +399,8 @@ gl_FragCoord origin is upper left Decorate 151(g_tTexcdf4a) DescriptorSet 0 Decorate 154(g_tTexcdi4a) DescriptorSet 0 Decorate 157(g_tTexcdu4a) DescriptorSet 0 + Decorate 159(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -503,6 +508,10 @@ gl_FragCoord origin is upper left 155: TypeImage 44(int) Cube array sampled format:Unknown 156: TypePointer UniformConstant 155 157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 158: TypePointer Output 98(fvec4) + 159(Color): 158(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 27bcad42..75b31249 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -192,7 +192,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -376,7 +377,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -391,18 +392,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 128 +// Id's are bound by 132 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 124 + EntryPoint Fragment 4 "main" 124 129 131 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -430,6 +432,8 @@ gl_FragCoord origin is upper left Name 115 "psout" Name 124 "@entryPointOutput" Name 127 "g_tTex1df4a" + Name 129 "Color" + Name 131 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -443,9 +447,10 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 124(@entryPointOutput) Location 0 Decorate 127(g_tTex1df4a) DescriptorSet 0 Decorate 127(g_tTex1df4a) Binding 1 + Decorate 129(Color) Location 0 + Decorate 131(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -520,6 +525,10 @@ gl_FragCoord origin is upper left 123: TypePointer Output 113(PS_OUTPUT) 124(@entryPointOutput): 123(ptr) Variable Output 127(g_tTex1df4a): 11(ptr) Variable UniformConstant + 128: TypePointer Output 7(fvec4) + 129(Color): 128(ptr) Variable Output + 130: TypePointer Output 6(float) + 131(Depth): 130(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 82eea56d..ed868f3b 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -225,7 +225,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -243,7 +243,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -475,7 +476,7 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:50 Sequence 0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:50 Branch: Return 0:? Linker Objects @@ -493,17 +494,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 167 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 159 + EntryPoint Fragment 4 "main" 159 164 166 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -537,6 +539,8 @@ gl_FragCoord origin is upper left Name 150 "psout" Name 159 "@entryPointOutput" Name 162 "g_tTex1df4a" + Name 164 "Color" + Name 166 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -553,9 +557,10 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 159(@entryPointOutput) Location 0 Decorate 162(g_tTex1df4a) DescriptorSet 0 Decorate 162(g_tTex1df4a) Binding 1 + Decorate 164(Color) Location 0 + Decorate 166(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -650,6 +655,10 @@ gl_FragCoord origin is upper left 158: TypePointer Output 148(PS_OUTPUT) 159(@entryPointOutput): 158(ptr) Variable Output 162(g_tTex1df4a): 11(ptr) Variable UniformConstant + 163: TypePointer Output 7(fvec4) + 164(Color): 163(ptr) Variable Output + 165: TypePointer Output 6(float) + 166(Depth): 165(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 8f85cfcc..887f796d 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -235,7 +235,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -477,7 +477,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 2928bed3..ce3b2cac 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -213,7 +213,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -415,7 +416,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -433,17 +434,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 158 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 + EntryPoint Fragment 4 "main" 141 155 157 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -474,6 +476,8 @@ gl_FragCoord origin is upper left Name 147 "g_tTexcdf4" Name 150 "g_tTexcdi4" Name 153 "g_tTexcdu4" + Name 155 "Color" + Name 157 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -487,12 +491,13 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 141(@entryPointOutput) Location 0 Decorate 144(g_tTex1df4a) DescriptorSet 0 Decorate 144(g_tTex1df4a) Binding 1 Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 150(g_tTexcdi4) DescriptorSet 0 Decorate 153(g_tTexcdu4) DescriptorSet 0 + Decorate 155(Color) Location 0 + Decorate 157(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -593,6 +598,10 @@ gl_FragCoord origin is upper left 151: TypeImage 38(int) Cube sampled format:Unknown 152: TypePointer UniformConstant 151 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 154: TypePointer Output 7(fvec4) + 155(Color): 154(ptr) Variable Output + 156: TypePointer Output 6(float) + 157(Depth): 156(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 76831db8..4e9f2af6 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:36 1.000000 0:38 Sequence 0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects @@ -147,7 +147,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -286,7 +287,7 @@ gl_FragCoord origin is upper left 0:36 1.000000 0:38 Sequence 0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:38 Branch: Return 0:? Linker Objects @@ -301,18 +302,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 108 +// Id's are bound by 112 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 95 + EntryPoint Fragment 4 "main" 95 109 111 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -337,6 +339,8 @@ gl_FragCoord origin is upper left Name 101 "g_tTexcdf4" Name 104 "g_tTexcdi4" Name 107 "g_tTexcdu4" + Name 109 "Color" + Name 111 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -347,12 +351,13 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 95(@entryPointOutput) Location 0 Decorate 98(g_tTex1df4a) DescriptorSet 0 Decorate 98(g_tTex1df4a) Binding 1 Decorate 101(g_tTexcdf4) DescriptorSet 0 Decorate 104(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 + Decorate 109(Color) Location 0 + Decorate 111(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -422,6 +427,10 @@ gl_FragCoord origin is upper left 105: TypeImage 40(int) Cube array sampled format:Unknown 106: TypePointer UniformConstant 105 107(g_tTexcdu4): 106(ptr) Variable UniformConstant + 108: TypePointer Output 7(fvec4) + 109(Color): 108(ptr) Variable Output + 110: TypePointer Output 6(float) + 111(Depth): 110(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index dbdf833c..675c3f8a 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -156,7 +156,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -304,7 +305,7 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:42 Sequence 0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:42 Branch: Return 0:? Linker Objects @@ -319,18 +320,19 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 135 +// Id's are bound by 139 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 + EntryPoint Fragment 4 "main" 131 136 138 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -358,6 +360,8 @@ gl_FragCoord origin is upper left Name 123 "psout" Name 131 "@entryPointOutput" Name 134 "g_tTex1df4" + Name 136 "Color" + Name 138 "Depth" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -371,9 +375,10 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 131(@entryPointOutput) Location 0 Decorate 134(g_tTex1df4) DescriptorSet 0 Decorate 134(g_tTex1df4) Binding 0 + Decorate 136(Color) Location 0 + Decorate 138(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -455,6 +460,10 @@ gl_FragCoord origin is upper left 130: TypePointer Output 121(PS_OUTPUT) 131(@entryPointOutput): 130(ptr) Variable Output 134(g_tTex1df4): 11(ptr) Variable UniformConstant + 135: TypePointer Output 7(fvec4) + 136(Color): 135(ptr) Variable Output + 137: TypePointer Output 6(float) + 138(Depth): 137(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 7e0c28e4..96def42f 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:49 1.000000 0:51 Sequence 0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects @@ -190,7 +190,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -368,7 +369,7 @@ gl_FragCoord origin is upper left 0:49 1.000000 0:51 Sequence 0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:51 Branch: Return 0:? Linker Objects @@ -387,17 +388,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 164 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 155 + EntryPoint Fragment 4 "main" 155 161 163 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -432,6 +434,8 @@ gl_FragCoord origin is upper left Name 155 "@entryPointOutput" Name 158 "g_sSamp2d" Name 159 "g_tTex1df4a" + Name 161 "Color" + Name 163 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -448,10 +452,11 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 155(@entryPointOutput) Location 0 Decorate 158(g_sSamp2d) DescriptorSet 0 Decorate 159(g_tTex1df4a) DescriptorSet 0 Decorate 159(g_tTex1df4a) Binding 1 + Decorate 161(Color) Location 0 + Decorate 163(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -543,6 +548,10 @@ gl_FragCoord origin is upper left 155(@entryPointOutput): 154(ptr) Variable Output 158(g_sSamp2d): 15(ptr) Variable UniformConstant 159(g_tTex1df4a): 11(ptr) Variable UniformConstant + 160: TypePointer Output 7(fvec4) + 161(Color): 160(ptr) Variable Output + 162: TypePointer Output 6(float) + 163(Depth): 162(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index e3b61aaf..50d34dd6 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -181,7 +181,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) Linked vertex stage: @@ -369,7 +369,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 81bafbde..9d32ce58 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -159,7 +159,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -177,7 +177,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -343,7 +344,7 @@ gl_FragCoord origin is upper left 0:46 1.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:48 Branch: Return 0:? Linker Objects @@ -361,17 +362,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 + EntryPoint Fragment 4 "main" 137 151 153 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -402,6 +404,8 @@ gl_FragCoord origin is upper left Name 143 "g_tTexcdf4" Name 146 "g_tTexcdi4" Name 149 "g_tTexcdu4" + Name 151 "Color" + Name 153 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -415,12 +419,13 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 137(@entryPointOutput) Location 0 Decorate 140(g_tTex1df4a) DescriptorSet 0 Decorate 140(g_tTex1df4a) Binding 1 Decorate 143(g_tTexcdf4) DescriptorSet 0 Decorate 146(g_tTexcdi4) DescriptorSet 0 Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 151(Color) Location 0 + Decorate 153(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -517,6 +522,10 @@ gl_FragCoord origin is upper left 147: TypeImage 37(int) Cube sampled format:Unknown 148: TypePointer UniformConstant 147 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 150: TypePointer Output 7(fvec4) + 151(Color): 150(ptr) Variable Output + 152: TypePointer Output 6(float) + 153(Depth): 152(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index ebec613d..d628a7c1 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -126,7 +126,8 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -247,7 +248,7 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:36 Sequence 0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) 0:36 Branch: Return 0:? Linker Objects @@ -259,17 +260,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 107 +// Id's are bound by 111 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 + EntryPoint Fragment 4 "main" 103 108 110 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -291,6 +293,8 @@ gl_FragCoord origin is upper left Name 96 "psout" Name 103 "@entryPointOutput" Name 106 "g_tTex1df4a" + Name 108 "Color" + Name 110 "Depth" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -301,9 +305,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(@entryPointOutput) Location 0 Decorate 106(g_tTex1df4a) DescriptorSet 0 Decorate 106(g_tTex1df4a) Binding 1 + Decorate 108(Color) Location 0 + Decorate 110(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -372,6 +377,10 @@ gl_FragCoord origin is upper left 102: TypePointer Output 94(PS_OUTPUT) 103(@entryPointOutput): 102(ptr) Variable Output 106(g_tTex1df4a): 11(ptr) Variable UniformConstant + 107: TypePointer Output 7(fvec4) + 108(Color): 107(ptr) Variable Output + 109: TypePointer Output 6(float) + 110(Depth): 109(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index e5eb8e2d..2d066905 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -21,11 +21,11 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:17 Sequence 0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -53,20 +53,20 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:17 Sequence 0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) 0:17 'ps_output' (temp structure{temp 4-component vector of float color}) 0:17 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) +0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 22 + EntryPoint Fragment 4 "main" 22 26 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -75,7 +75,8 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" Name 22 "@entryPointOutput" - Decorate 22(@entryPointOutput) Location 0 + Name 26 "color" + Decorate 26(color) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -89,6 +90,8 @@ gl_FragCoord origin is upper left 19: TypePointer Function 11(fvec4) 21: TypePointer Output 12(PS_OUTPUT) 22(@entryPointOutput): 21(ptr) Variable Output + 25: TypePointer Output 11(fvec4) + 26(color): 25(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index 246cfe64..e4940ae6 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -13,7 +13,7 @@ gl_FragCoord origin is upper left 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 4d5d275c..a7e1e971 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -17,13 +17,13 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -47,22 +47,22 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:19 Sequence 0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Color}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) 0:19 'psout' (temp structure{temp 4-component vector of float Color}) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) 0:? 'TestUF' (uniform 4-component vector of float) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 27 +// Id's are bound by 29 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 + EntryPoint Fragment 4 "main" 19 28 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" @@ -71,8 +71,9 @@ gl_FragCoord origin is upper left Name 19 "@entryPointOutput" Name 24 "TestTexture" Name 26 "TestUF" - Decorate 19(@entryPointOutput) Location 0 + Name 28 "Color" Decorate 24(TestTexture) DescriptorSet 0 + Decorate 28(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -92,6 +93,8 @@ gl_FragCoord origin is upper left 24(TestTexture): 23(ptr) Variable UniformConstant 25: TypePointer UniformConstant 7(fvec4) 26(TestUF): 25(ptr) Variable UniformConstant + 27: TypePointer Output 7(fvec4) + 28(Color): 27(ptr) Variable Output 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 0809d08c..4a5548f7 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -33,7 +33,7 @@ gl_FragCoord origin is upper left 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index 0531bd11..48d9f29e 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -4,7 +4,7 @@ Shader version: 450 0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) 0:7 Function Parameters: 0:7 'd' (layout(location=0 ) in 4-component vector of float) -0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) +0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) 0:7 'e' (layout(location=4 ) in 4-component vector of float) 0:? Sequence 0:8 Sequence @@ -47,7 +47,7 @@ Shader version: 450 0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) 0:7 Function Parameters: 0:7 'd' (layout(location=0 ) in 4-component vector of float) -0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) +0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) 0:7 'e' (layout(location=4 ) in 4-component vector of float) 0:? Sequence 0:8 Sequence diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index bd1eaa08..abf777ab 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -125,7 +125,7 @@ gl_FragCoord origin is upper left 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'c' (layout(location=1 ) in int) 0:? 'd' (layout(location=2 ) in int) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:54 'input' (layout(location=0 ) in 4-component vector of float) 0:54 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'c' (layout(location=1 ) in int) 0:? 'd' (layout(location=2 ) in int) diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index db2b4535..f5260869 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:45 0.000000 0:45 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) Linked fragment stage: @@ -499,7 +499,7 @@ gl_FragCoord origin is upper left 0:45 0.000000 0:45 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out float) +0:? '@entryPointOutput' (layout(location=0 ) out float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index d1b92ea3..63e14dcc 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:6 false (const bool) 0:6 No loop body 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:6 false (const bool) 0:6 No loop body 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index e8eb2b8f..5436adf4 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -13,7 +13,7 @@ Linked fragment stage: Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4045 + EntryPoint Fragment 5663 "main" 4045 4656 4112 ExecutionMode 5663 OriginUpperLeft Decorate 4727 DescriptorSet 0 Decorate 4727 Binding 0 @@ -31,7 +31,8 @@ Linked fragment stage: Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 MemberDecorate 1032 1 BuiltIn FragDepth - Decorate 4045 Location 0 + Decorate 4656 Location 0 + Decorate 4112 BuiltIn FragDepth 8: TypeVoid 1282: TypeFunction 8 12: TypeInt 32 1 @@ -131,6 +132,10 @@ Linked fragment stage: 650: TypePointer Function 13(float) 1670: TypePointer Output 1032(struct) 4045: 1670(ptr) Variable Output + 667: TypePointer Output 29(fvec4) + 4656: 667(ptr) Variable Output + 651: TypePointer Output 13(float) + 4112: 651(ptr) Variable Output 5663: 8 Function None 1282 24915: Label 5830: 1972(ptr) Variable Function diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index 0d67cd76..546763f8 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 189 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 180 186 188 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -63,6 +63,8 @@ Linked fragment stage: Name 182 "g_sSamp2d" Name 183 "g_sSamp2D_b" Name 184 "g_tTex1df4a" + Name 186 "Color" + Name 188 "Depth" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -79,11 +81,12 @@ Linked fragment stage: Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 180(@entryPointOutput) Location 0 Decorate 182(g_sSamp2d) DescriptorSet 0 Decorate 183(g_sSamp2D_b) DescriptorSet 0 Decorate 184(g_tTex1df4a) DescriptorSet 0 Decorate 184(g_tTex1df4a) Binding 1 + Decorate 186(Color) Location 0 + Decorate 188(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -188,6 +191,10 @@ Linked fragment stage: 182(g_sSamp2d): 44(ptr) Variable UniformConstant 183(g_sSamp2D_b): 44(ptr) Variable UniformConstant 184(g_tTex1df4a): 40(ptr) Variable UniformConstant + 185: TypePointer Output 36(fvec4) + 186(Color): 185(ptr) Variable Output + 187: TypePointer Output 35(float) + 188(Depth): 187(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index 37ef7c88..7ac9e466 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 189 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 + EntryPoint Fragment 4 "main" 180 186 188 ExecutionMode 4 OriginUpperLeft Decorate 41 DescriptorSet 0 Decorate 41 Binding 0 @@ -31,11 +31,12 @@ Linked fragment stage: Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 MemberDecorate 171 1 BuiltIn FragDepth - Decorate 180 Location 0 Decorate 182 DescriptorSet 0 Decorate 183 DescriptorSet 0 Decorate 184 DescriptorSet 0 Decorate 184 Binding 1 + Decorate 186 Location 0 + Decorate 188 BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -140,6 +141,10 @@ Linked fragment stage: 182: 44(ptr) Variable UniformConstant 183: 44(ptr) Variable UniformConstant 184: 40(ptr) Variable UniformConstant + 185: TypePointer Output 36(fvec4) + 186: 185(ptr) Variable Output + 187: TypePointer Output 35(float) + 188: 187(ptr) Variable Output 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index 7048c10f..7a40f944 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -13,6 +13,7 @@ Linked fragment stage: MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 4045 4872 ExecutionMode 5663 OriginUpperLeft + Decorate 4045 Location 0 Decorate 4872 Location 0 8: TypeVoid 1282: TypeFunction 8 diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 6fa58dbc..340198b3 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -44,6 +44,7 @@ Linked fragment stage: Name 141 "r66" Name 146 "@entryPointOutput" Name 148 "input" + Decorate 146(@entryPointOutput) Location 0 Decorate 148(input) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index e45c88a4..fd89a37c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1485" -#define GLSLANG_DATE "15-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1486" +#define GLSLANG_DATE "16-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index bd2ff629..65cde666 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -55,7 +55,8 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), - entryPointOutput(nullptr) + entryPointOutput(nullptr), + nextInLocation(0), nextOutLocation(0) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms linkage = new TIntermAggregate; @@ -713,7 +714,7 @@ bool HlslParseContext::shouldFlatten(const TType& type) (language == EShLangFragment && qualifier == EvqVaryingOut)); } -// Figure out mapping between a structures top members and an +// Figure out the mapping between a structure's top members and an // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. @@ -724,14 +725,11 @@ void HlslParseContext::flattenStruct(const TVariable& variable) TVector memberVariables; auto members = *variable.getType().getStruct(); - int location = variable.getType().getQualifier().layoutLocation; for (int member = 0; member < (int)members.size(); ++member) { - TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(), *members[member].type); - memberVariable->getWritableType().getQualifier() = variable.getType().getQualifier(); - memberVariable->getWritableType().getQualifier().layoutLocation = location; - location += intermediate.computeTypeLocationSize(memberVariable->getType()); + TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(), + *members[member].type); + memberVariable->getWritableType().getQualifier().storage = variable.getType().getQualifier().storage; memberVariables.push_back(memberVariable); - intermediate.addSymbolLinkageNode(linkage, *memberVariable); } flattenMap[variable.getUniqueId()] = memberVariables; @@ -751,6 +749,37 @@ TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) return intermediate.addSymbol(*memberVariable); } +// Variables that correspond to the user-interface in and out of a stage +// (not the built-in interface) are assigned locations and +// registered as a linkage node (part of the stage's external interface). +// +// Assumes it is called in the order in which locations should be assigned. +void HlslParseContext::assignLocations(TVariable& variable) +{ + const auto assignLocation = [&](TVariable& variable) { + const TQualifier& qualifier = variable.getType().getQualifier(); + if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { + if (qualifier.builtIn == EbvNone) { + if (qualifier.storage == EvqVaryingIn) { + variable.getWritableType().getQualifier().layoutLocation = nextInLocation; + nextInLocation += intermediate.computeTypeLocationSize(variable.getType()); + } else { + variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; + nextOutLocation += intermediate.computeTypeLocationSize(variable.getType()); + } + } + intermediate.addSymbolLinkageNode(linkage, variable); + } + }; + + if (shouldFlatten(variable.getType())) { + auto& memberList = flattenMap[variable.getUniqueId()]; + for (auto member = memberList.begin(); member != memberList.end(); ++member) + assignLocation(**member); + } else + assignLocation(variable); +} + // // Handle seeing a function declarator in the grammar. This is the precursor // to recognizing a function prototype or function definition. @@ -822,9 +851,14 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l functionReturnsValue = false; inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); - if (inEntrypoint) + if (inEntrypoint) { remapEntrypointIO(function); - else + if (entryPointOutput) { + if (shouldFlatten(entryPointOutput->getType())) + flattenStruct(*entryPointOutput); + assignLocations(*entryPointOutput); + } + } else remapNonEntrypointIO(function); // @@ -837,7 +871,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // If the parameter has no name, it's not an error, just don't insert it // (could be used for unused args). // - // Also, accumulate the list of parameters into the HIL, so lower level code + // Also, accumulate the list of parameters into the AST, so lower level code // knows where to find parameters. // TIntermAggregate* paramNodes = new TIntermAggregate; @@ -850,18 +884,20 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l if (! symbolTable.insert(*variable)) error(loc, "redefinition", variable->getName().c_str(), ""); else { + // get IO straightened out + if (inEntrypoint) { + if (shouldFlatten(*param.type)) + flattenStruct(*variable); + assignLocations(*variable); + } + // Transfer ownership of name pointer to symbol table. param.name = nullptr; - // Add the parameter to the HIL + // Add the parameter to the AST paramNodes = intermediate.growAggregate(paramNodes, - intermediate.addSymbol(*variable, loc), - loc); - - if (shouldFlatten(*param.type)) - flattenStruct(*variable); - else if (inEntrypoint) - intermediate.addSymbolLinkageNode(linkage, *variable); + intermediate.addSymbol(*variable, loc), + loc); } } else paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); @@ -892,21 +928,27 @@ void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& func void HlslParseContext::remapEntrypointIO(TFunction& function) { // Will auto-assign locations here to the inputs/outputs defined by the entry point - unsigned int inCount = 0; - unsigned int outCount = 0; - const auto remapBuiltInType = [&](TType& type) { - switch (type.getQualifier().builtIn) { - case EbvFragDepthGreater: - intermediate.setDepth(EldGreater); - type.getQualifier().builtIn = EbvFragDepth; - break; - case EbvFragDepthLesser: - intermediate.setDepth(EldLess); - type.getQualifier().builtIn = EbvFragDepth; - break; - default: - break; + const auto remapType = [&](TType& type) { + const auto remapBuiltInType = [&](TType& type) { + switch (type.getQualifier().builtIn) { + case EbvFragDepthGreater: + intermediate.setDepth(EldGreater); + type.getQualifier().builtIn = EbvFragDepth; + break; + case EbvFragDepthLesser: + intermediate.setDepth(EldLess); + type.getQualifier().builtIn = EbvFragDepth; + break; + default: + break; + } + }; + remapBuiltInType(type); + if (type.isStruct()) { + auto members = *type.getStruct(); + for (auto member = members.begin(); member != members.end(); ++member) + remapBuiltInType(*member->type); } }; @@ -914,31 +956,14 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) if (function.getType().getBasicType() != EbtVoid) { entryPointOutput = makeInternalVariable("@entryPointOutput", function.getType()); entryPointOutput->getWritableType().getQualifier().storage = EvqVaryingOut; - intermediate.addSymbolLinkageNode(linkage, *entryPointOutput); - if (function.getType().getQualifier().builtIn == EbvNone) { - entryPointOutput->getWritableType().getQualifier().layoutLocation = outCount; - outCount += intermediate.computeTypeLocationSize(function.getType()); - } - remapBuiltInType(function.getWritableType()); + remapType(function.getWritableType()); } // parameters are actually shader-scoped inputs and outputs (in or out) for (int i = 0; i < function.getParamCount(); i++) { TType& paramType = *function[i].type; - if (paramType.getQualifier().isParamInput()) { - paramType.getQualifier().storage = EvqVaryingIn; - if (paramType.getQualifier().builtIn == EbvNone) { - paramType.getQualifier().layoutLocation = inCount; - inCount += intermediate.computeTypeLocationSize(*function[i].type); - } - } else { - paramType.getQualifier().storage = EvqVaryingOut; - if (paramType.getQualifier().builtIn == EbvNone) { - paramType.getQualifier().layoutLocation = outCount; - outCount += intermediate.computeTypeLocationSize(*function[i].type); - } - } - remapBuiltInType(paramType); + paramType.getQualifier().storage = paramType.getQualifier().isParamInput() ? EvqVaryingIn : EvqVaryingOut; + remapType(paramType); } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 1e43deaa..d75b3d7c 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -86,6 +86,7 @@ public: bool shouldFlatten(const TType&); void flattenStruct(const TVariable& variable); TIntermTyped* flattenAccess(TIntermTyped* base, int member); + void assignLocations(TVariable& variable); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); @@ -237,7 +238,9 @@ protected: // TVector ioArraySymbolResizeList; - TMap> flattenMap; + TUnorderedMap> flattenMap; + unsigned int nextInLocation; + unsigned int nextOutLocation; }; } // end namespace glslang From f8e494c18cd58447ddec60a7574ce7ca71791913 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 01:52:14 -0600 Subject: [PATCH 127/217] HLSL: Flatten all input/output structs, regardless of stage. This is needed because an output structure can contain embedded built-ins (like SV_Position) which should not get locations assigned. --- .../baseResults/hlsl.gather.basic.dx10.vert.out | 17 ++++++++++------- .../hlsl.getdimensions.dx10.vert.out | 17 ++++++++++------- Test/baseResults/hlsl.load.basic.dx10.vert.out | 17 ++++++++++------- .../hlsl.samplegrad.basic.dx10.vert.out | 17 ++++++++++------- .../hlsl.samplelevel.basic.dx10.vert.out | 17 ++++++++++------- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 4 ++-- 7 files changed, 53 insertions(+), 38 deletions(-) diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index abc7de17..449ef5b5 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -79,7 +79,7 @@ Shader version: 450 0:? 0.000000 0:45 Sequence 0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects @@ -98,7 +98,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -184,7 +184,7 @@ Shader version: 450 0:? 0.000000 0:45 Sequence 0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:45 Branch: Return 0:? Linker Objects @@ -203,17 +203,17 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 120 +// Id's are bound by 122 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 97 + EntryPoint Vertex 4 "main" 97 121 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -240,6 +240,7 @@ Shader version: 450 Name 113 "g_tTex3df4" Name 116 "g_tTex3di4" Name 119 "g_tTex3du4" + Name 121 "Pos" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -249,7 +250,6 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position - Decorate 97(@entryPointOutput) Location 0 Decorate 100(g_sSamp2d) DescriptorSet 0 Decorate 103(g_tTex1df4a) DescriptorSet 0 Decorate 103(g_tTex1df4a) Binding 1 @@ -260,6 +260,7 @@ Shader version: 450 Decorate 113(g_tTex3df4) DescriptorSet 0 Decorate 116(g_tTex3di4) DescriptorSet 0 Decorate 119(g_tTex3du4) DescriptorSet 0 + Decorate 121(Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -342,6 +343,8 @@ Shader version: 450 117: TypeImage 41(int) 3D sampled format:Unknown 118: TypePointer UniformConstant 117 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 120: TypePointer Output 7(fvec4) + 121(Pos): 120(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index c03e8c21..8b10755b 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -38,13 +38,13 @@ Shader version: 450 0:? 0.000000 0:26 Sequence 0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -89,24 +89,24 @@ Shader version: 450 0:? 0.000000 0:26 Sequence 0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 42 +// Id's are bound by 44 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 36 + EntryPoint Vertex 4 "main" 36 43 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -118,12 +118,13 @@ Shader version: 450 Name 29 "vsout" Name 36 "@entryPointOutput" Name 41 "g_sSamp" + Name 43 "Pos" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position - Decorate 36(@entryPointOutput) Location 0 Decorate 41(g_sSamp) DescriptorSet 0 Decorate 41(g_sSamp) Binding 0 + Decorate 43(Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -146,6 +147,8 @@ Shader version: 450 39: TypeSampler 40: TypePointer UniformConstant 39 41(g_sSamp): 40(ptr) Variable UniformConstant + 42: TypePointer Output 26(fvec4) + 43(Pos): 42(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index a0082097..fada8726 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -133,7 +133,7 @@ Shader version: 450 0:? 0.000000 0:69 Sequence 0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects @@ -167,7 +167,7 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -307,7 +307,7 @@ Shader version: 450 0:? 0.000000 0:69 Sequence 0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:69 Branch: Return 0:? Linker Objects @@ -341,18 +341,18 @@ Shader version: 450 0:? 'o2' (uniform 2-component vector of int) 0:? 'o3' (uniform 3-component vector of int) 0:? 'o4' (uniform 4-component vector of int) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 164 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 115 + EntryPoint Vertex 4 "main" 115 163 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -388,6 +388,7 @@ Shader version: 450 Name 159 "o2" Name 160 "o3" Name 161 "o4" + Name 163 "Pos" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -399,7 +400,6 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position - Decorate 115(@entryPointOutput) Location 0 Decorate 120(g_sSamp) DescriptorSet 0 Decorate 120(g_sSamp) Binding 0 Decorate 123(g_tTexcdf4) DescriptorSet 0 @@ -414,6 +414,7 @@ Shader version: 450 Decorate 150(g_tTexcdf4a) DescriptorSet 0 Decorate 153(g_tTexcdi4a) DescriptorSet 0 Decorate 156(g_tTexcdu4a) DescriptorSet 0 + Decorate 163(Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -514,6 +515,8 @@ Shader version: 450 159(o2): 13(ptr) Variable UniformConstant 160(o3): 50(ptr) Variable UniformConstant 161(o4): 80(ptr) Variable UniformConstant + 162: TypePointer Output 23(fvec4) + 163(Pos): 162(ptr) Variable Output 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 887f796d..7a677aca 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -217,7 +217,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -235,7 +235,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -459,7 +459,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -477,17 +477,17 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 160 +// Id's are bound by 162 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 156 + EntryPoint Vertex 4 "main" 156 161 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -519,6 +519,7 @@ Shader version: 450 Name 150 "vsout" Name 156 "@entryPointOutput" Name 159 "g_tTex1df4a" + Name 161 "Pos" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -535,9 +536,9 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position - Decorate 156(@entryPointOutput) Location 0 Decorate 159(g_tTex1df4a) DescriptorSet 0 Decorate 159(g_tTex1df4a) Binding 1 + Decorate 161(Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -630,6 +631,8 @@ Shader version: 450 155: TypePointer Output 148(VS_OUTPUT) 156(@entryPointOutput): 155(ptr) Variable Output 159(g_tTex1df4a): 11(ptr) Variable UniformConstant + 160: TypePointer Output 7(fvec4) + 161(Pos): 160(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 50d34dd6..73eabbc0 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -163,7 +163,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -181,7 +181,7 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -351,7 +351,7 @@ Shader version: 450 0:? 0.000000 0:48 Sequence 0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) 0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) 0:48 Branch: Return 0:? Linker Objects @@ -369,17 +369,17 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? '@entryPointOutput' (layout(location=0 ) out structure{temp 4-component vector of float Position Pos}) +0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 158 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 152 + EntryPoint Vertex 4 "main" 152 157 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -411,6 +411,7 @@ Shader version: 450 Name 146 "vsout" Name 152 "@entryPointOutput" Name 155 "g_tTex1df4a" + Name 157 "Pos" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -427,9 +428,9 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position - Decorate 152(@entryPointOutput) Location 0 Decorate 155(g_tTex1df4a) DescriptorSet 0 Decorate 155(g_tTex1df4a) Binding 1 + Decorate 157(Pos) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -518,6 +519,8 @@ Shader version: 450 151: TypePointer Output 144(VS_OUTPUT) 152(@entryPointOutput): 151(ptr) Variable Output 155(g_tTex1df4a): 11(ptr) Variable UniformConstant + 156: TypePointer Output 7(fvec4) + 157(Pos): 156(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index fd89a37c..ad54631f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1486" +#define GLSLANG_REVISION "Overload400-PrecQual.1487" #define GLSLANG_DATE "16-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 65cde666..e80505af 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -710,8 +710,8 @@ bool HlslParseContext::shouldFlatten(const TType& type) const TStorageQualifier qualifier = type.getQualifier().storage; return type.isStruct() && - ((language == EShLangVertex && qualifier == EvqVaryingIn) || - (language == EShLangFragment && qualifier == EvqVaryingOut)); + (qualifier == EvqVaryingIn || + qualifier == EvqVaryingOut); } // Figure out the mapping between a structure's top members and an From d21baed6bc40fef66b616d09f6fb07669d313a31 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 03:05:12 -0600 Subject: [PATCH 128/217] HLSL: Flatten whole-struct assigns and returns when targeting flattened I/O structs. --- .../hlsl.calculatelod.dx10.frag.out | 75 +++-- .../hlsl.calculatelodunclamped.dx10.frag.out | 36 ++- Test/baseResults/hlsl.constructexpr.frag.out | 44 +-- Test/baseResults/hlsl.entry-out.frag.out | 129 +++++++-- .../hlsl.gather.array.dx10.frag.out | 107 +++++--- .../hlsl.gather.basic.dx10.frag.out | 143 +++++----- .../hlsl.gather.basic.dx10.vert.out | 120 ++++---- .../hlsl.gather.offset.dx10.frag.out | 167 +++++++----- .../hlsl.gather.offsetarray.dx10.frag.out | 107 +++++--- .../hlsl.gatherRGBA.array.dx10.frag.out | 119 ++++---- .../hlsl.gatherRGBA.basic.dx10.frag.out | 155 ++++++----- .../hlsl.gatherRGBA.offset.dx10.frag.out | 213 ++++++++------- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 175 ++++++------ .../hlsl.getdimensions.dx10.frag.out | 79 ++++-- .../hlsl.getdimensions.dx10.vert.out | 56 ++-- .../hlsl.getsampleposition.dx10.frag.out | 36 ++- Test/baseResults/hlsl.init2.frag.out | 44 +-- Test/baseResults/hlsl.inoutquals.frag.out | 67 +++-- Test/baseResults/hlsl.intrinsics.frag.out | 100 +++---- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 103 ++++--- .../baseResults/hlsl.load.array.dx10.frag.out | 257 ++++++++++-------- .../baseResults/hlsl.load.basic.dx10.frag.out | 219 ++++++++------- .../baseResults/hlsl.load.basic.dx10.vert.out | 196 ++++++------- .../hlsl.load.buffer.dx10.frag.out | 113 ++++---- .../hlsl.load.offset.dx10.frag.out | 207 +++++++------- .../hlsl.load.offsetarray.dx10.frag.out | 247 +++++++++-------- Test/baseResults/hlsl.matrixindex.frag.out | 44 +-- .../baseResults/hlsl.numericsuffixes.frag.out | 44 +-- Test/baseResults/hlsl.pp.line.frag.out | 67 +++-- Test/baseResults/hlsl.precise.frag.out | 50 ++-- Test/baseResults/hlsl.promotions.frag.out | 44 +-- .../hlsl.sample.array.dx10.frag.out | 75 +++-- .../hlsl.sample.basic.dx10.frag.out | 87 +++--- .../hlsl.sample.offset.dx10.frag.out | 105 ++++--- .../hlsl.sample.offsetarray.dx10.frag.out | 75 +++-- .../hlsl.samplebias.array.dx10.frag.out | 75 +++-- .../hlsl.samplebias.basic.dx10.frag.out | 75 +++-- .../hlsl.samplebias.offset.dx10.frag.out | 105 ++++--- .../hlsl.samplebias.offsetarray.dx10.frag.out | 75 +++-- .../hlsl.samplecmp.array.dx10.frag.out | 189 +++++++------ .../hlsl.samplecmp.basic.dx10.frag.out | 187 +++++++------ .../hlsl.samplecmp.offset.dx10.frag.out | 217 ++++++++------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 219 ++++++++------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 189 +++++++------ ...lsl.samplecmplevelzero.basic.dx10.frag.out | 187 +++++++------ ...sl.samplecmplevelzero.offset.dx10.frag.out | 217 ++++++++------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 219 ++++++++------- .../hlsl.samplegrad.array.dx10.frag.out | 75 +++-- .../hlsl.samplegrad.basic.dx10.frag.out | 75 +++-- .../hlsl.samplegrad.basic.dx10.vert.out | 52 ++-- .../hlsl.samplegrad.offset.dx10.frag.out | 105 ++++--- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 105 ++++--- .../hlsl.samplelevel.array.dx10.frag.out | 75 +++-- .../hlsl.samplelevel.basic.dx10.frag.out | 81 ++++-- .../hlsl.samplelevel.basic.dx10.vert.out | 52 ++-- .../hlsl.samplelevel.offset.dx10.frag.out | 105 ++++--- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 75 +++-- Test/baseResults/hlsl.semicolons.frag.out | 44 +-- Test/baseResults/hlsl.stringtoken.frag.out | 60 ++-- ...emap.hlsl.sample.basic.everything.frag.out | 16 +- .../remap.hlsl.sample.basic.none.frag.out | 51 ++-- .../remap.hlsl.sample.basic.strip.frag.out | 38 +-- Test/hlsl.entry-out.frag | 7 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 2 +- hlsl/hlslParseHelper.cpp | 28 +- hlsl/hlslParseHelper.h | 3 +- 67 files changed, 4024 insertions(+), 2886 deletions(-) diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index cf251a6f..5174eeea 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -303,10 +313,20 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -325,7 +345,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 150 Capability Shader Capability Sampled1D @@ -333,7 +353,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 146 148 + EntryPoint Fragment 4 "main" 141 145 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" @@ -359,10 +379,9 @@ gl_FragCoord origin is upper left MemberName 131(PS_OUTPUT) 0 "Color" MemberName 131(PS_OUTPUT) 1 "Depth" Name 133 "psout" - Name 141 "@entryPointOutput" - Name 144 "g_tTex1df4" - Name 146 "Color" - Name 148 "Depth" + Name 141 "Color" + Name 145 "Depth" + Name 149 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 @@ -376,10 +395,10 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4) DescriptorSet 0 - Decorate 144(g_tTex1df4) Binding 0 - Decorate 146(Color) Location 0 - Decorate 148(Depth) BuiltIn FragDepth + Decorate 141(Color) Location 0 + Decorate 145(Depth) BuiltIn FragDepth + Decorate 149(g_tTex1df4) DescriptorSet 0 + Decorate 149(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -450,13 +469,11 @@ gl_FragCoord origin is upper left 135: 130(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 130(fvec4) 138: 23(int) Constant 1 - 140: TypePointer Output 131(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output - 144(g_tTex1df4): 10(ptr) Variable UniformConstant - 145: TypePointer Output 130(fvec4) - 146(Color): 145(ptr) Variable Output - 147: TypePointer Output 6(float) - 148(Depth): 147(ptr) Variable Output + 140: TypePointer Output 130(fvec4) + 141(Color): 140(ptr) Variable Output + 144: TypePointer Output 6(float) + 145(Depth): 144(ptr) Variable Output + 149(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function @@ -536,7 +553,11 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 133(psout) 138 Store 139 134 - 142:131(PS_OUTPUT) Load 133(psout) - Store 141(@entryPointOutput) 142 + 142: 136(ptr) AccessChain 133(psout) 24 + 143: 130(fvec4) Load 142 + Store 141(Color) 143 + 146: 7(ptr) AccessChain 133(psout) 138 + 147: 6(float) Load 146 + Store 145(Depth) 147 Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 3faac3ce..88b7f70c 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -151,10 +151,20 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -315,10 +325,20 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index a8ff93cc..956e1bb0 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -34,10 +34,14 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) 0:16 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -81,30 +85,33 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:16 Sequence -0:16 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:16 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:16 color: direct index for structure (temp 4-component vector of float) +0:16 'ps_output' (temp structure{temp 4-component vector of float color}) +0:16 Constant: +0:16 0 (const int) 0:16 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 36 +// Id's are bound by 35 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 31 35 + EntryPoint Fragment 4 "main" 31 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 22 "PS_OUTPUT" MemberName 22(PS_OUTPUT) 0 "color" Name 24 "ps_output" - Name 31 "@entryPointOutput" - Name 35 "color" - Decorate 35(color) Location 0 + Name 31 "color" + Decorate 31(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -129,16 +136,15 @@ gl_FragCoord origin is upper left 26: 13(float) Constant 1065353216 27: 21(fvec4) ConstantComposite 26 26 26 26 28: TypePointer Function 21(fvec4) - 30: TypePointer Output 22(PS_OUTPUT) -31(@entryPointOutput): 30(ptr) Variable Output - 34: TypePointer Output 21(fvec4) - 35(color): 34(ptr) Variable Output + 30: TypePointer Output 21(fvec4) + 31(color): 30(ptr) Variable Output 4(main): 2 Function None 3 5: Label 24(ps_output): 23(ptr) Variable Function 29: 28(ptr) AccessChain 24(ps_output) 25 Store 29 27 - 32:22(PS_OUTPUT) Load 24(ps_output) - Store 31(@entryPointOutput) 32 + 32: 28(ptr) AccessChain 24(ps_output) 25 + 33: 21(fvec4) Load 32 + Store 31(color) 33 Return FunctionEnd diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index efd82f75..81926dd1 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -2,11 +2,12 @@ hlsl.entry-out.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) 0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (layout(location=1 ) out 4-component vector of float) @@ -21,17 +22,48 @@ gl_FragCoord origin is upper left 0:10 Constant: 0:10 3 (const int) 0:10 3 (const int) -0:11 Sequence -0:11 move second child to first child (temp 4-component vector of float) +0:12 move second child to first child (temp 2-component vector of float) +0:12 v: direct index for structure (temp 2-component vector of float) +0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 12.000000 +0:12 12.000000 +0:13 move second child to first child (temp 2-component vector of int) +0:13 i: direct index for structure (temp 2-component vector of int) +0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 13 (const int) +0:13 13 (const int) +0:? Sequence +0:14 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:14 v: direct index for structure (temp 2-component vector of float) +0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:14 i: direct index for structure (temp 2-component vector of int) +0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:14 Constant: +0:14 1 (const int) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:11 'out1' (layout(location=1 ) out 4-component vector of float) -0:11 Branch: Return +0:16 'out1' (layout(location=1 ) out 4-component vector of float) +0:16 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'out1' (layout(location=1 ) out 4-component vector of float) 0:? 'v' (layout(location=2 ) out 2-component vector of float) 0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:? 'i' (layout(location=5 ) out 2-component vector of int) Linked fragment stage: @@ -40,11 +72,12 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) 0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence 0:8 move second child to first child (temp 4-component vector of float) 0:8 'out1' (layout(location=1 ) out 4-component vector of float) @@ -59,38 +92,77 @@ gl_FragCoord origin is upper left 0:10 Constant: 0:10 3 (const int) 0:10 3 (const int) -0:11 Sequence -0:11 move second child to first child (temp 4-component vector of float) +0:12 move second child to first child (temp 2-component vector of float) +0:12 v: direct index for structure (temp 2-component vector of float) +0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:12 Constant: +0:12 0 (const int) +0:12 Constant: +0:12 12.000000 +0:12 12.000000 +0:13 move second child to first child (temp 2-component vector of int) +0:13 i: direct index for structure (temp 2-component vector of int) +0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 Constant: +0:13 1 (const int) +0:13 Constant: +0:13 13 (const int) +0:13 13 (const int) +0:? Sequence +0:14 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:14 v: direct index for structure (temp 2-component vector of float) +0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:14 Constant: +0:14 0 (const int) +0:14 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:14 i: direct index for structure (temp 2-component vector of int) +0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:14 Constant: +0:14 1 (const int) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:11 'out1' (layout(location=1 ) out 4-component vector of float) -0:11 Branch: Return +0:16 'out1' (layout(location=1 ) out 4-component vector of float) +0:16 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'out1' (layout(location=1 ) out 4-component vector of float) 0:? 'v' (layout(location=2 ) out 2-component vector of float) 0:? 'i' (layout(location=3 ) out 2-component vector of int) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:? 'i' (layout(location=5 ) out 2-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 27 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 15 21 24 + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 15 21 37 40 43 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "out1" Name 11 "input" Name 15 "v" Name 21 "i" - Name 24 "@entryPointOutput" + Name 24 "OutParam" + MemberName 24(OutParam) 0 "v" + MemberName 24(OutParam) 1 "i" + Name 26 "local" + Name 37 "v" + Name 40 "i" + Name 43 "@entryPointOutput" Decorate 9(out1) Location 1 Decorate 11(input) Location 0 Decorate 15(v) Location 2 Decorate 21(i) Location 3 - Decorate 24(@entryPointOutput) Location 0 + Decorate 37(v) Location 4 + Decorate 40(i) Location 5 + Decorate 43(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -110,14 +182,37 @@ gl_FragCoord origin is upper left 21(i): 20(ptr) Variable Output 22: 18(int) Constant 3 23: 19(ivec2) ConstantComposite 22 22 -24(@entryPointOutput): 8(ptr) Variable Output + 24(OutParam): TypeStruct 13(fvec2) 19(ivec2) + 25: TypePointer Function 24(OutParam) + 27: 18(int) Constant 0 + 28: 6(float) Constant 1094713344 + 29: 13(fvec2) ConstantComposite 28 28 + 30: TypePointer Function 13(fvec2) + 32: 18(int) Constant 1 + 33: 18(int) Constant 13 + 34: 19(ivec2) ConstantComposite 33 33 + 35: TypePointer Function 19(ivec2) + 37(v): 14(ptr) Variable Output + 40(i): 20(ptr) Variable Output +43(@entryPointOutput): 8(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label + 26(local): 25(ptr) Variable Function 12: 7(fvec4) Load 11(input) Store 9(out1) 12 Store 15(v) 17 Store 21(i) 23 - 25: 7(fvec4) Load 9(out1) - Store 24(@entryPointOutput) 25 + 31: 30(ptr) AccessChain 26(local) 27 + Store 31 29 + 36: 35(ptr) AccessChain 26(local) 32 + Store 36 34 + 38: 30(ptr) AccessChain 26(local) 27 + 39: 13(fvec2) Load 38 + Store 37(v) 39 + 41: 35(ptr) AccessChain 26(local) 32 + 42: 19(ivec2) Load 41 + Store 40(i) 42 + 44: 7(fvec4) Load 9(out1) + Store 43(@entryPointOutput) 44 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index e224ce87..1c4c2f17 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -91,10 +91,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,10 +217,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,14 +249,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 116 +// Id's are bound by 117 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 99 113 115 + EntryPoint Fragment 4 "main" 99 103 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -256,13 +276,12 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 99 "@entryPointOutput" - Name 104 "g_tTex1df4a" - Name 105 "g_tTex1df4" - Name 108 "g_tTex1di4a" - Name 111 "g_tTex1du4a" - Name 113 "Color" - Name 115 "Depth" + Name 99 "Color" + Name 103 "Depth" + Name 109 "g_tTex1df4a" + Name 110 "g_tTex1df4" + Name 113 "g_tTex1di4a" + Name 116 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -272,14 +291,14 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 104(g_tTex1df4a) DescriptorSet 0 - Decorate 104(g_tTex1df4a) Binding 1 - Decorate 105(g_tTex1df4) DescriptorSet 0 - Decorate 105(g_tTex1df4) Binding 0 - Decorate 108(g_tTex1di4a) DescriptorSet 0 - Decorate 111(g_tTex1du4a) DescriptorSet 0 - Decorate 113(Color) Location 0 - Decorate 115(Depth) BuiltIn FragDepth + Decorate 99(Color) Location 0 + Decorate 103(Depth) BuiltIn FragDepth + Decorate 109(g_tTex1df4a) DescriptorSet 0 + Decorate 109(g_tTex1df4a) Binding 1 + Decorate 110(g_tTex1df4) DescriptorSet 0 + Decorate 110(g_tTex1df4) Binding 0 + Decorate 113(g_tTex1di4a) DescriptorSet 0 + Decorate 116(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -341,22 +360,20 @@ gl_FragCoord origin is upper left 93: 7(fvec4) ConstantComposite 87 87 87 87 95: 25(int) Constant 1 96: TypePointer Function 6(float) - 98: TypePointer Output 90(PS_OUTPUT) -99(@entryPointOutput): 98(ptr) Variable Output - 102: TypeImage 6(float) 1D array sampled format:Unknown - 103: TypePointer UniformConstant 102 -104(g_tTex1df4a): 103(ptr) Variable UniformConstant - 105(g_tTex1df4): 103(ptr) Variable UniformConstant - 106: TypeImage 25(int) 1D array sampled format:Unknown - 107: TypePointer UniformConstant 106 -108(g_tTex1di4a): 107(ptr) Variable UniformConstant - 109: TypeImage 42(int) 1D array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTex1du4a): 110(ptr) Variable UniformConstant - 112: TypePointer Output 7(fvec4) - 113(Color): 112(ptr) Variable Output - 114: TypePointer Output 6(float) - 115(Depth): 114(ptr) Variable Output + 98: TypePointer Output 7(fvec4) + 99(Color): 98(ptr) Variable Output + 102: TypePointer Output 6(float) + 103(Depth): 102(ptr) Variable Output + 107: TypeImage 6(float) 1D array sampled format:Unknown + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110(g_tTex1df4): 108(ptr) Variable UniformConstant + 111: TypeImage 25(int) 1D array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTex1di4a): 112(ptr) Variable UniformConstant + 114: TypeImage 42(int) 1D array sampled format:Unknown + 115: TypePointer UniformConstant 114 +116(g_tTex1du4a): 115(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -400,7 +417,11 @@ gl_FragCoord origin is upper left Store 94 93 97: 96(ptr) AccessChain 92(psout) 95 Store 97 87 - 100:90(PS_OUTPUT) Load 92(psout) - Store 99(@entryPointOutput) 100 + 100: 8(ptr) AccessChain 92(psout) 26 + 101: 7(fvec4) Load 100 + Store 99(Color) 101 + 104: 96(ptr) AccessChain 92(psout) 95 + 105: 6(float) Load 104 + Store 103(Depth) 105 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 1703e472..340529d5 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -85,10 +85,20 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Sequence -0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:47 Depth: direct index for structure (temp float FragDepth) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -199,10 +209,20 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:47 Sequence -0:47 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:47 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 0 (const int) +0:47 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:47 Depth: direct index for structure (temp float FragDepth) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Constant: +0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -225,13 +245,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 127 +// Id's are bound by 128 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 100 124 126 + EntryPoint Fragment 4 "main" 100 104 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -251,17 +271,16 @@ gl_FragCoord origin is upper left MemberName 90(PS_OUTPUT) 0 "Color" MemberName 90(PS_OUTPUT) 1 "Depth" Name 92 "psout" - Name 100 "@entryPointOutput" - Name 103 "g_sSamp2d" - Name 106 "g_tTex1df4a" - Name 107 "g_tTex1df4" - Name 110 "g_tTex1di4" - Name 113 "g_tTex1du4" - Name 116 "g_tTex3df4" - Name 119 "g_tTex3di4" - Name 122 "g_tTex3du4" - Name 124 "Color" - Name 126 "Depth" + Name 100 "Color" + Name 104 "Depth" + Name 108 "g_sSamp2d" + Name 111 "g_tTex1df4a" + Name 112 "g_tTex1df4" + Name 115 "g_tTex1di4" + Name 118 "g_tTex1du4" + Name 121 "g_tTex3df4" + Name 124 "g_tTex3di4" + Name 127 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -271,18 +290,18 @@ gl_FragCoord origin is upper left Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 103(g_sSamp2d) DescriptorSet 0 - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 - Decorate 107(g_tTex1df4) DescriptorSet 0 - Decorate 107(g_tTex1df4) Binding 0 - Decorate 110(g_tTex1di4) DescriptorSet 0 - Decorate 113(g_tTex1du4) DescriptorSet 0 - Decorate 116(g_tTex3df4) DescriptorSet 0 - Decorate 119(g_tTex3di4) DescriptorSet 0 - Decorate 122(g_tTex3du4) DescriptorSet 0 - Decorate 124(Color) Location 0 - Decorate 126(Depth) BuiltIn FragDepth + Decorate 100(Color) Location 0 + Decorate 104(Depth) BuiltIn FragDepth + Decorate 108(g_sSamp2d) DescriptorSet 0 + Decorate 111(g_tTex1df4a) DescriptorSet 0 + Decorate 111(g_tTex1df4a) Binding 1 + Decorate 112(g_tTex1df4) DescriptorSet 0 + Decorate 112(g_tTex1df4) Binding 0 + Decorate 115(g_tTex1di4) DescriptorSet 0 + Decorate 118(g_tTex1du4) DescriptorSet 0 + Decorate 121(g_tTex3df4) DescriptorSet 0 + Decorate 124(g_tTex3di4) DescriptorSet 0 + Decorate 127(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -345,32 +364,30 @@ gl_FragCoord origin is upper left 94: 7(fvec4) ConstantComposite 93 93 93 93 96: 24(int) Constant 1 97: TypePointer Function 6(float) - 99: TypePointer Output 90(PS_OUTPUT) -100(@entryPointOutput): 99(ptr) Variable Output - 103(g_sSamp2d): 15(ptr) Variable UniformConstant - 104: TypeImage 6(float) 1D sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTex1df4a): 105(ptr) Variable UniformConstant - 107(g_tTex1df4): 105(ptr) Variable UniformConstant - 108: TypeImage 24(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1di4): 109(ptr) Variable UniformConstant - 111: TypeImage 41(int) 1D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex1du4): 112(ptr) Variable UniformConstant - 114: TypeImage 6(float) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3df4): 115(ptr) Variable UniformConstant - 117: TypeImage 24(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3di4): 118(ptr) Variable UniformConstant - 120: TypeImage 41(int) 3D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex3du4): 121(ptr) Variable UniformConstant - 123: TypePointer Output 7(fvec4) - 124(Color): 123(ptr) Variable Output - 125: TypePointer Output 6(float) - 126(Depth): 125(ptr) Variable Output + 99: TypePointer Output 7(fvec4) + 100(Color): 99(ptr) Variable Output + 103: TypePointer Output 6(float) + 104(Depth): 103(ptr) Variable Output + 108(g_sSamp2d): 15(ptr) Variable UniformConstant + 109: TypeImage 6(float) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 +111(g_tTex1df4a): 110(ptr) Variable UniformConstant + 112(g_tTex1df4): 110(ptr) Variable UniformConstant + 113: TypeImage 24(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1di4): 114(ptr) Variable UniformConstant + 116: TypeImage 41(int) 1D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex1du4): 117(ptr) Variable UniformConstant + 119: TypeImage 6(float) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3df4): 120(ptr) Variable UniformConstant + 122: TypeImage 24(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3di4): 123(ptr) Variable UniformConstant + 125: TypeImage 41(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3du4): 126(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -414,7 +431,11 @@ gl_FragCoord origin is upper left Store 95 94 98: 97(ptr) AccessChain 92(psout) 96 Store 98 93 - 101:90(PS_OUTPUT) Load 92(psout) - Store 100(@entryPointOutput) 101 + 101: 8(ptr) AccessChain 92(psout) 25 + 102: 7(fvec4) Load 101 + Store 100(Color) 102 + 105: 97(ptr) AccessChain 92(psout) 96 + 106: 6(float) Load 105 + Store 104(Depth) 106 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 449ef5b5..74e26488 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -77,10 +77,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Sequence -0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:45 Pos: direct index for structure (temp 4-component vector of float Position) +0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:45 Constant: +0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -182,10 +186,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:45 Sequence -0:45 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:45 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:45 Pos: direct index for structure (temp 4-component vector of float Position) +0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:45 Constant: +0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,13 +215,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 122 +// Id's are bound by 121 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 97 121 + EntryPoint Vertex 4 "main" 97 Name 4 "main" Name 9 "txval20" Name 12 "g_tTex2df4" @@ -231,16 +239,15 @@ Shader version: 450 Name 90 "VS_OUTPUT" MemberName 90(VS_OUTPUT) 0 "Pos" Name 92 "vsout" - Name 97 "@entryPointOutput" - Name 100 "g_sSamp2d" - Name 103 "g_tTex1df4a" - Name 104 "g_tTex1df4" - Name 107 "g_tTex1di4" - Name 110 "g_tTex1du4" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 121 "Pos" + Name 97 "Pos" + Name 101 "g_sSamp2d" + Name 104 "g_tTex1df4a" + Name 105 "g_tTex1df4" + Name 108 "g_tTex1di4" + Name 111 "g_tTex1du4" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -250,17 +257,17 @@ Shader version: 450 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position - Decorate 100(g_sSamp2d) DescriptorSet 0 - Decorate 103(g_tTex1df4a) DescriptorSet 0 - Decorate 103(g_tTex1df4a) Binding 1 - Decorate 104(g_tTex1df4) DescriptorSet 0 - Decorate 104(g_tTex1df4) Binding 0 - Decorate 107(g_tTex1di4) DescriptorSet 0 - Decorate 110(g_tTex1du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 121(Pos) BuiltIn Position + Decorate 97(Pos) BuiltIn Position + Decorate 101(g_sSamp2d) DescriptorSet 0 + Decorate 104(g_tTex1df4a) DescriptorSet 0 + Decorate 104(g_tTex1df4a) Binding 1 + Decorate 105(g_tTex1df4) DescriptorSet 0 + Decorate 105(g_tTex1df4) Binding 0 + Decorate 108(g_tTex1di4) DescriptorSet 0 + Decorate 111(g_tTex1du4) DescriptorSet 0 + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -321,30 +328,28 @@ Shader version: 450 91: TypePointer Function 90(VS_OUTPUT) 93: 6(float) Constant 0 94: 7(fvec4) ConstantComposite 93 93 93 93 - 96: TypePointer Output 90(VS_OUTPUT) -97(@entryPointOutput): 96(ptr) Variable Output - 100(g_sSamp2d): 15(ptr) Variable UniformConstant - 101: TypeImage 6(float) 1D sampled format:Unknown - 102: TypePointer UniformConstant 101 -103(g_tTex1df4a): 102(ptr) Variable UniformConstant - 104(g_tTex1df4): 102(ptr) Variable UniformConstant - 105: TypeImage 24(int) 1D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex1di4): 106(ptr) Variable UniformConstant - 108: TypeImage 41(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 24(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 41(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypePointer Output 7(fvec4) - 121(Pos): 120(ptr) Variable Output + 96: TypePointer Output 7(fvec4) + 97(Pos): 96(ptr) Variable Output + 101(g_sSamp2d): 15(ptr) Variable UniformConstant + 102: TypeImage 6(float) 1D sampled format:Unknown + 103: TypePointer UniformConstant 102 +104(g_tTex1df4a): 103(ptr) Variable UniformConstant + 105(g_tTex1df4): 103(ptr) Variable UniformConstant + 106: TypeImage 24(int) 1D sampled format:Unknown + 107: TypePointer UniformConstant 106 + 108(g_tTex1di4): 107(ptr) Variable UniformConstant + 109: TypeImage 41(int) 1D sampled format:Unknown + 110: TypePointer UniformConstant 109 + 111(g_tTex1du4): 110(ptr) Variable UniformConstant + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 24(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 41(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -386,7 +391,8 @@ Shader version: 450 Store 77(txval42) 89 95: 8(ptr) AccessChain 92(vsout) 25 Store 95 94 - 98:90(VS_OUTPUT) Load 92(vsout) - Store 97(@entryPointOutput) 98 + 98: 8(ptr) AccessChain 92(vsout) 25 + 99: 7(fvec4) Load 98 + Store 97(Pos) 99 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 61d42c9e..5ac30a11 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -61,10 +61,20 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -150,10 +160,20 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:43 Sequence -0:43 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:43 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:43 Color: direct index for structure (temp 4-component vector of float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 0 (const int) +0:43 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:43 Depth: direct index for structure (temp float FragDepth) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Constant: +0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -175,13 +195,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 106 +// Id's are bound by 107 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 103 105 + EntryPoint Fragment 4 "main" 71 75 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -195,39 +215,38 @@ gl_FragCoord origin is upper left MemberName 62(PS_OUTPUT) 0 "Color" MemberName 62(PS_OUTPUT) 1 "Depth" Name 64 "psout" - Name 71 "@entryPointOutput" - Name 76 "g_tTex1df4a" - Name 77 "g_tTex1df4" - Name 80 "g_tTex1di4" - Name 83 "g_tTex1du4" - Name 86 "g_tTex3df4" - Name 89 "g_tTex3di4" - Name 92 "g_tTex3du4" - Name 95 "g_tTexcdf4" - Name 98 "g_tTexcdi4" - Name 101 "g_tTexcdu4" - Name 103 "Color" - Name 105 "Depth" + Name 71 "Color" + Name 75 "Depth" + Name 81 "g_tTex1df4a" + Name 82 "g_tTex1df4" + Name 85 "g_tTex1di4" + Name 88 "g_tTex1du4" + Name 91 "g_tTex3df4" + Name 94 "g_tTex3di4" + Name 97 "g_tTex3du4" + Name 100 "g_tTexcdf4" + Name 103 "g_tTexcdi4" + Name 106 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 76(g_tTex1df4a) DescriptorSet 0 - Decorate 76(g_tTex1df4a) Binding 1 - Decorate 77(g_tTex1df4) DescriptorSet 0 - Decorate 77(g_tTex1df4) Binding 0 - Decorate 80(g_tTex1di4) DescriptorSet 0 - Decorate 83(g_tTex1du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 89(g_tTex3di4) DescriptorSet 0 - Decorate 92(g_tTex3du4) DescriptorSet 0 - Decorate 95(g_tTexcdf4) DescriptorSet 0 - Decorate 98(g_tTexcdi4) DescriptorSet 0 - Decorate 101(g_tTexcdu4) DescriptorSet 0 - Decorate 103(Color) Location 0 - Decorate 105(Depth) BuiltIn FragDepth + Decorate 71(Color) Location 0 + Decorate 75(Depth) BuiltIn FragDepth + Decorate 81(g_tTex1df4a) DescriptorSet 0 + Decorate 81(g_tTex1df4a) Binding 1 + Decorate 82(g_tTex1df4) DescriptorSet 0 + Decorate 82(g_tTex1df4) Binding 0 + Decorate 85(g_tTex1di4) DescriptorSet 0 + Decorate 88(g_tTex1du4) DescriptorSet 0 + Decorate 91(g_tTex3df4) DescriptorSet 0 + Decorate 94(g_tTex3di4) DescriptorSet 0 + Decorate 97(g_tTex3du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 103(g_tTexcdi4) DescriptorSet 0 + Decorate 106(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -276,40 +295,38 @@ gl_FragCoord origin is upper left 65: 6(float) Constant 1065353216 66: 7(fvec4) ConstantComposite 65 65 65 65 68: TypePointer Function 6(float) - 70: TypePointer Output 62(PS_OUTPUT) -71(@entryPointOutput): 70(ptr) Variable Output - 74: TypeImage 6(float) 1D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex1df4a): 75(ptr) Variable UniformConstant - 77(g_tTex1df4): 75(ptr) Variable UniformConstant - 78: TypeImage 24(int) 1D sampled format:Unknown - 79: TypePointer UniformConstant 78 - 80(g_tTex1di4): 79(ptr) Variable UniformConstant - 81: TypeImage 45(int) 1D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex1du4): 82(ptr) Variable UniformConstant - 84: TypeImage 6(float) 3D sampled format:Unknown - 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 87: TypeImage 24(int) 3D sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex3di4): 88(ptr) Variable UniformConstant - 90: TypeImage 45(int) 3D sampled format:Unknown - 91: TypePointer UniformConstant 90 - 92(g_tTex3du4): 91(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTexcdf4): 94(ptr) Variable UniformConstant - 96: TypeImage 24(int) Cube sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTexcdi4): 97(ptr) Variable UniformConstant - 99: TypeImage 45(int) Cube sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTexcdu4): 100(ptr) Variable UniformConstant - 102: TypePointer Output 7(fvec4) - 103(Color): 102(ptr) Variable Output - 104: TypePointer Output 6(float) - 105(Depth): 104(ptr) Variable Output + 70: TypePointer Output 7(fvec4) + 71(Color): 70(ptr) Variable Output + 74: TypePointer Output 6(float) + 75(Depth): 74(ptr) Variable Output + 79: TypeImage 6(float) 1D sampled format:Unknown + 80: TypePointer UniformConstant 79 + 81(g_tTex1df4a): 80(ptr) Variable UniformConstant + 82(g_tTex1df4): 80(ptr) Variable UniformConstant + 83: TypeImage 24(int) 1D sampled format:Unknown + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4): 84(ptr) Variable UniformConstant + 86: TypeImage 45(int) 1D sampled format:Unknown + 87: TypePointer UniformConstant 86 + 88(g_tTex1du4): 87(ptr) Variable UniformConstant + 89: TypeImage 6(float) 3D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex3df4): 90(ptr) Variable UniformConstant + 92: TypeImage 24(int) 3D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex3di4): 93(ptr) Variable UniformConstant + 95: TypeImage 45(int) 3D sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex3du4): 96(ptr) Variable UniformConstant + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 101: TypeImage 24(int) Cube sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTexcdi4): 102(ptr) Variable UniformConstant + 104: TypeImage 45(int) Cube sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdu4): 105(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -335,7 +352,11 @@ gl_FragCoord origin is upper left Store 67 66 69: 68(ptr) AccessChain 64(psout) 26 Store 69 65 - 72:62(PS_OUTPUT) Load 64(psout) - Store 71(@entryPointOutput) 72 + 72: 8(ptr) AccessChain 64(psout) 27 + 73: 7(fvec4) Load 72 + Store 71(Color) 73 + 76: 68(ptr) AccessChain 64(psout) 26 + 77: 6(float) Load 76 + Store 75(Depth) 77 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index c3fab2ea..84472b0a 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -64,10 +64,20 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Sequence -0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:35 Depth: direct index for structure (temp float FragDepth) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -150,10 +160,20 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:35 Sequence -0:35 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:35 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:35 Color: direct index for structure (temp 4-component vector of float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 0 (const int) +0:35 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:35 Depth: direct index for structure (temp float FragDepth) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Constant: +0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -169,13 +189,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 89 +// Id's are bound by 90 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 72 86 88 + EntryPoint Fragment 4 "main" 72 76 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval20" @@ -189,27 +209,26 @@ gl_FragCoord origin is upper left MemberName 63(PS_OUTPUT) 0 "Color" MemberName 63(PS_OUTPUT) 1 "Depth" Name 65 "psout" - Name 72 "@entryPointOutput" - Name 77 "g_tTex1df4a" - Name 78 "g_tTex1df4" - Name 81 "g_tTex1di4" - Name 84 "g_tTex1du4" - Name 86 "Color" - Name 88 "Depth" + Name 72 "Color" + Name 76 "Depth" + Name 82 "g_tTex1df4a" + Name 83 "g_tTex1df4" + Name 86 "g_tTex1di4" + Name 89 "g_tTex1du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 77(g_tTex1df4a) DescriptorSet 0 - Decorate 77(g_tTex1df4a) Binding 1 - Decorate 78(g_tTex1df4) DescriptorSet 0 - Decorate 78(g_tTex1df4) Binding 0 - Decorate 81(g_tTex1di4) DescriptorSet 0 - Decorate 84(g_tTex1du4) DescriptorSet 0 - Decorate 86(Color) Location 0 - Decorate 88(Depth) BuiltIn FragDepth + Decorate 72(Color) Location 0 + Decorate 76(Depth) BuiltIn FragDepth + Decorate 82(g_tTex1df4a) DescriptorSet 0 + Decorate 82(g_tTex1df4a) Binding 1 + Decorate 83(g_tTex1df4) DescriptorSet 0 + Decorate 83(g_tTex1df4) Binding 0 + Decorate 86(g_tTex1di4) DescriptorSet 0 + Decorate 89(g_tTex1du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -259,22 +278,20 @@ gl_FragCoord origin is upper left 66: 6(float) Constant 1065353216 67: 7(fvec4) ConstantComposite 66 66 66 66 69: TypePointer Function 6(float) - 71: TypePointer Output 63(PS_OUTPUT) -72(@entryPointOutput): 71(ptr) Variable Output - 75: TypeImage 6(float) 1D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex1df4a): 76(ptr) Variable UniformConstant - 78(g_tTex1df4): 76(ptr) Variable UniformConstant - 79: TypeImage 25(int) 1D array sampled format:Unknown - 80: TypePointer UniformConstant 79 - 81(g_tTex1di4): 80(ptr) Variable UniformConstant - 82: TypeImage 45(int) 1D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex1du4): 83(ptr) Variable UniformConstant - 85: TypePointer Output 7(fvec4) - 86(Color): 85(ptr) Variable Output - 87: TypePointer Output 6(float) - 88(Depth): 87(ptr) Variable Output + 71: TypePointer Output 7(fvec4) + 72(Color): 71(ptr) Variable Output + 75: TypePointer Output 6(float) + 76(Depth): 75(ptr) Variable Output + 80: TypeImage 6(float) 1D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex1df4a): 81(ptr) Variable UniformConstant + 83(g_tTex1df4): 81(ptr) Variable UniformConstant + 84: TypeImage 25(int) 1D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex1di4): 85(ptr) Variable UniformConstant + 87: TypeImage 45(int) 1D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex1du4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval20): 8(ptr) Variable Function @@ -300,7 +317,11 @@ gl_FragCoord origin is upper left Store 68 67 70: 69(ptr) AccessChain 65(psout) 27 Store 70 66 - 73:63(PS_OUTPUT) Load 65(psout) - Store 72(@entryPointOutput) 73 + 73: 8(ptr) AccessChain 65(psout) 28 + 74: 7(fvec4) Load 73 + Store 72(Color) 74 + 77: 69(ptr) AccessChain 65(psout) 27 + 78: 6(float) Load 77 + Store 76(Depth) 78 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 7cfe3d95..cb6180f5 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -262,10 +262,20 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float FragDepth) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -553,10 +563,20 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float FragDepth) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -579,14 +599,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 226 +// Id's are bound by 227 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 204 223 225 + EntryPoint Fragment 4 "main" 204 208 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -626,15 +646,14 @@ gl_FragCoord origin is upper left MemberName 195(PS_OUTPUT) 0 "Color" MemberName 195(PS_OUTPUT) 1 "Depth" Name 197 "psout" - Name 204 "@entryPointOutput" - Name 207 "g_sSamp2d" - Name 210 "g_tTex1df4a" - Name 213 "g_tTex1di4a" - Name 216 "g_tTex1du4a" - Name 218 "c1" - Name 221 "c2" - Name 223 "Color" - Name 225 "Depth" + Name 204 "Color" + Name 208 "Depth" + Name 212 "g_sSamp2d" + Name 215 "g_tTex1df4a" + Name 218 "g_tTex1di4a" + Name 221 "g_tTex1du4a" + Name 223 "c1" + Name 226 "c2" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -644,13 +663,13 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 207(g_sSamp2d) DescriptorSet 0 - Decorate 210(g_tTex1df4a) DescriptorSet 0 - Decorate 210(g_tTex1df4a) Binding 0 - Decorate 213(g_tTex1di4a) DescriptorSet 0 - Decorate 216(g_tTex1du4a) DescriptorSet 0 - Decorate 223(Color) Location 0 - Decorate 225(Depth) BuiltIn FragDepth + Decorate 204(Color) Location 0 + Decorate 208(Depth) BuiltIn FragDepth + Decorate 212(g_sSamp2d) DescriptorSet 0 + Decorate 215(g_tTex1df4a) DescriptorSet 0 + Decorate 215(g_tTex1df4a) Binding 0 + Decorate 218(g_tTex1di4a) DescriptorSet 0 + Decorate 221(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -703,27 +722,25 @@ gl_FragCoord origin is upper left 198: 6(float) Constant 1065353216 199: 7(fvec4) ConstantComposite 198 198 198 198 201: TypePointer Function 6(float) - 203: TypePointer Output 195(PS_OUTPUT) -204(@entryPointOutput): 203(ptr) Variable Output - 207(g_sSamp2d): 15(ptr) Variable UniformConstant - 208: TypeImage 6(float) 1D array sampled format:Unknown - 209: TypePointer UniformConstant 208 -210(g_tTex1df4a): 209(ptr) Variable UniformConstant - 211: TypeImage 24(int) 1D array sampled format:Unknown - 212: TypePointer UniformConstant 211 -213(g_tTex1di4a): 212(ptr) Variable UniformConstant - 214: TypeImage 39(int) 1D array sampled format:Unknown - 215: TypePointer UniformConstant 214 -216(g_tTex1du4a): 215(ptr) Variable UniformConstant - 217: TypePointer UniformConstant 6(float) - 218(c1): 217(ptr) Variable UniformConstant - 219: TypeVector 6(float) 2 - 220: TypePointer UniformConstant 219(fvec2) - 221(c2): 220(ptr) Variable UniformConstant - 222: TypePointer Output 7(fvec4) - 223(Color): 222(ptr) Variable Output - 224: TypePointer Output 6(float) - 225(Depth): 224(ptr) Variable Output + 203: TypePointer Output 7(fvec4) + 204(Color): 203(ptr) Variable Output + 207: TypePointer Output 6(float) + 208(Depth): 207(ptr) Variable Output + 212(g_sSamp2d): 15(ptr) Variable UniformConstant + 213: TypeImage 6(float) 1D array sampled format:Unknown + 214: TypePointer UniformConstant 213 +215(g_tTex1df4a): 214(ptr) Variable UniformConstant + 216: TypeImage 24(int) 1D array sampled format:Unknown + 217: TypePointer UniformConstant 216 +218(g_tTex1di4a): 217(ptr) Variable UniformConstant + 219: TypeImage 39(int) 1D array sampled format:Unknown + 220: TypePointer UniformConstant 219 +221(g_tTex1du4a): 220(ptr) Variable UniformConstant + 222: TypePointer UniformConstant 6(float) + 223(c1): 222(ptr) Variable UniformConstant + 224: TypeVector 6(float) 2 + 225: TypePointer UniformConstant 224(fvec2) + 226(c2): 225(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -899,7 +916,11 @@ gl_FragCoord origin is upper left Store 200 199 202: 201(ptr) AccessChain 197(psout) 57 Store 202 198 - 205:195(PS_OUTPUT) Load 197(psout) - Store 204(@entryPointOutput) 205 + 205: 8(ptr) AccessChain 197(psout) 25 + 206: 7(fvec4) Load 205 + Store 204(Color) 206 + 209: 201(ptr) AccessChain 197(psout) 57 + 210: 6(float) Load 209 + Store 208(Depth) 210 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 9ba2a1ac..b5735e49 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -262,10 +262,20 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Sequence -0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:76 Color: direct index for structure (temp 4-component vector of float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Constant: +0:76 0 (const int) +0:76 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:76 Depth: direct index for structure (temp float FragDepth) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Constant: +0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -557,10 +567,20 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:76 Sequence -0:76 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:76 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:76 Color: direct index for structure (temp 4-component vector of float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Constant: +0:76 0 (const int) +0:76 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:76 Depth: direct index for structure (temp float FragDepth) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Constant: +0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -587,13 +607,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 236 +// Id's are bound by 237 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 233 235 + EntryPoint Fragment 4 "main" 205 209 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" @@ -633,19 +653,18 @@ gl_FragCoord origin is upper left MemberName 196(PS_OUTPUT) 0 "Color" MemberName 196(PS_OUTPUT) 1 "Depth" Name 198 "psout" - Name 205 "@entryPointOutput" - Name 208 "g_sSamp2d" - Name 211 "g_tTex1df4a" - Name 212 "g_tTex1df4" - Name 215 "g_tTex1di4" - Name 218 "g_tTex1du4" - Name 221 "g_tTex3df4" - Name 224 "g_tTex3di4" - Name 227 "g_tTex3du4" - Name 229 "c1" - Name 231 "c4" - Name 233 "Color" - Name 235 "Depth" + Name 205 "Color" + Name 209 "Depth" + Name 213 "g_sSamp2d" + Name 216 "g_tTex1df4a" + Name 217 "g_tTex1df4" + Name 220 "g_tTex1di4" + Name 223 "g_tTex1du4" + Name 226 "g_tTex3df4" + Name 229 "g_tTex3di4" + Name 232 "g_tTex3du4" + Name 234 "c1" + Name 236 "c4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 @@ -655,18 +674,18 @@ gl_FragCoord origin is upper left Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 208(g_sSamp2d) DescriptorSet 0 - Decorate 211(g_tTex1df4a) DescriptorSet 0 - Decorate 211(g_tTex1df4a) Binding 1 - Decorate 212(g_tTex1df4) DescriptorSet 0 - Decorate 212(g_tTex1df4) Binding 0 - Decorate 215(g_tTex1di4) DescriptorSet 0 - Decorate 218(g_tTex1du4) DescriptorSet 0 - Decorate 221(g_tTex3df4) DescriptorSet 0 - Decorate 224(g_tTex3di4) DescriptorSet 0 - Decorate 227(g_tTex3du4) DescriptorSet 0 - Decorate 233(Color) Location 0 - Decorate 235(Depth) BuiltIn FragDepth + Decorate 205(Color) Location 0 + Decorate 209(Depth) BuiltIn FragDepth + Decorate 213(g_sSamp2d) DescriptorSet 0 + Decorate 216(g_tTex1df4a) DescriptorSet 0 + Decorate 216(g_tTex1df4a) Binding 1 + Decorate 217(g_tTex1df4) DescriptorSet 0 + Decorate 217(g_tTex1df4) Binding 0 + Decorate 220(g_tTex1di4) DescriptorSet 0 + Decorate 223(g_tTex1du4) DescriptorSet 0 + Decorate 226(g_tTex3df4) DescriptorSet 0 + Decorate 229(g_tTex3di4) DescriptorSet 0 + Decorate 232(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -720,36 +739,34 @@ gl_FragCoord origin is upper left 199: 6(float) Constant 1065353216 200: 7(fvec4) ConstantComposite 199 199 199 199 202: TypePointer Function 6(float) - 204: TypePointer Output 196(PS_OUTPUT) -205(@entryPointOutput): 204(ptr) Variable Output - 208(g_sSamp2d): 15(ptr) Variable UniformConstant - 209: TypeImage 6(float) 1D sampled format:Unknown - 210: TypePointer UniformConstant 209 -211(g_tTex1df4a): 210(ptr) Variable UniformConstant - 212(g_tTex1df4): 210(ptr) Variable UniformConstant - 213: TypeImage 24(int) 1D sampled format:Unknown - 214: TypePointer UniformConstant 213 - 215(g_tTex1di4): 214(ptr) Variable UniformConstant - 216: TypeImage 39(int) 1D sampled format:Unknown - 217: TypePointer UniformConstant 216 - 218(g_tTex1du4): 217(ptr) Variable UniformConstant - 219: TypeImage 6(float) 3D sampled format:Unknown - 220: TypePointer UniformConstant 219 - 221(g_tTex3df4): 220(ptr) Variable UniformConstant - 222: TypeImage 24(int) 3D sampled format:Unknown - 223: TypePointer UniformConstant 222 - 224(g_tTex3di4): 223(ptr) Variable UniformConstant - 225: TypeImage 39(int) 3D sampled format:Unknown - 226: TypePointer UniformConstant 225 - 227(g_tTex3du4): 226(ptr) Variable UniformConstant - 228: TypePointer UniformConstant 6(float) - 229(c1): 228(ptr) Variable UniformConstant - 230: TypePointer UniformConstant 7(fvec4) - 231(c4): 230(ptr) Variable UniformConstant - 232: TypePointer Output 7(fvec4) - 233(Color): 232(ptr) Variable Output - 234: TypePointer Output 6(float) - 235(Depth): 234(ptr) Variable Output + 204: TypePointer Output 7(fvec4) + 205(Color): 204(ptr) Variable Output + 208: TypePointer Output 6(float) + 209(Depth): 208(ptr) Variable Output + 213(g_sSamp2d): 15(ptr) Variable UniformConstant + 214: TypeImage 6(float) 1D sampled format:Unknown + 215: TypePointer UniformConstant 214 +216(g_tTex1df4a): 215(ptr) Variable UniformConstant + 217(g_tTex1df4): 215(ptr) Variable UniformConstant + 218: TypeImage 24(int) 1D sampled format:Unknown + 219: TypePointer UniformConstant 218 + 220(g_tTex1di4): 219(ptr) Variable UniformConstant + 221: TypeImage 39(int) 1D sampled format:Unknown + 222: TypePointer UniformConstant 221 + 223(g_tTex1du4): 222(ptr) Variable UniformConstant + 224: TypeImage 6(float) 3D sampled format:Unknown + 225: TypePointer UniformConstant 224 + 226(g_tTex3df4): 225(ptr) Variable UniformConstant + 227: TypeImage 24(int) 3D sampled format:Unknown + 228: TypePointer UniformConstant 227 + 229(g_tTex3di4): 228(ptr) Variable UniformConstant + 230: TypeImage 39(int) 3D sampled format:Unknown + 231: TypePointer UniformConstant 230 + 232(g_tTex3du4): 231(ptr) Variable UniformConstant + 233: TypePointer UniformConstant 6(float) + 234(c1): 233(ptr) Variable UniformConstant + 235: TypePointer UniformConstant 7(fvec4) + 236(c4): 235(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function @@ -925,7 +942,11 @@ gl_FragCoord origin is upper left Store 201 200 203: 202(ptr) AccessChain 198(psout) 57 Store 203 199 - 206:196(PS_OUTPUT) Load 198(psout) - Store 205(@entryPointOutput) 206 + 206: 8(ptr) AccessChain 198(psout) 25 + 207: 7(fvec4) Load 206 + Store 205(Color) 207 + 210: 202(ptr) AccessChain 198(psout) 57 + 211: 6(float) Load 210 + Store 209(Depth) 211 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 283e085d..f8857ccf 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -334,10 +334,20 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Sequence -0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:115 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:115 Color: direct index for structure (temp 4-component vector of float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Constant: +0:115 0 (const int) +0:115 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:115 Depth: direct index for structure (temp float FragDepth) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Constant: +0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -705,10 +715,20 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:115 Sequence -0:115 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:115 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:115 Color: direct index for structure (temp 4-component vector of float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Constant: +0:115 0 (const int) +0:115 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:115 Depth: direct index for structure (temp float FragDepth) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Constant: +0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -739,14 +759,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 317 +// Id's are bound by 318 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 314 316 + EntryPoint Fragment 4 "main" 267 271 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -783,47 +803,46 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 267 "@entryPointOutput" - Name 270 "g_sSamp2d" - Name 273 "g_tTex1df4a" - Name 274 "g_tTex1df4" - Name 277 "g_tTex1di4" - Name 280 "g_tTex1du4" - Name 283 "g_tTex3df4" - Name 286 "g_tTex3di4" - Name 289 "g_tTex3du4" - Name 292 "g_tTexcdf4" - Name 295 "g_tTexcdi4" - Name 298 "g_tTexcdu4" - Name 300 "c1" - Name 303 "c3" - Name 305 "c4" - Name 307 "o1" - Name 310 "o3" - Name 312 "o4" - Name 314 "Color" - Name 316 "Depth" + Name 267 "Color" + Name 271 "Depth" + Name 275 "g_sSamp2d" + Name 278 "g_tTex1df4a" + Name 279 "g_tTex1df4" + Name 282 "g_tTex1di4" + Name 285 "g_tTex1du4" + Name 288 "g_tTex3df4" + Name 291 "g_tTex3di4" + Name 294 "g_tTex3du4" + Name 297 "g_tTexcdf4" + Name 300 "g_tTexcdi4" + Name 303 "g_tTexcdu4" + Name 305 "c1" + Name 308 "c3" + Name 310 "c4" + Name 312 "o1" + Name 315 "o3" + Name 317 "o4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 270(g_sSamp2d) DescriptorSet 0 - Decorate 273(g_tTex1df4a) DescriptorSet 0 - Decorate 273(g_tTex1df4a) Binding 1 - Decorate 274(g_tTex1df4) DescriptorSet 0 - Decorate 274(g_tTex1df4) Binding 0 - Decorate 277(g_tTex1di4) DescriptorSet 0 - Decorate 280(g_tTex1du4) DescriptorSet 0 - Decorate 283(g_tTex3df4) DescriptorSet 0 - Decorate 286(g_tTex3di4) DescriptorSet 0 - Decorate 289(g_tTex3du4) DescriptorSet 0 - Decorate 292(g_tTexcdf4) DescriptorSet 0 - Decorate 295(g_tTexcdi4) DescriptorSet 0 - Decorate 298(g_tTexcdu4) DescriptorSet 0 - Decorate 314(Color) Location 0 - Decorate 316(Depth) BuiltIn FragDepth + Decorate 267(Color) Location 0 + Decorate 271(Depth) BuiltIn FragDepth + Decorate 275(g_sSamp2d) DescriptorSet 0 + Decorate 278(g_tTex1df4a) DescriptorSet 0 + Decorate 278(g_tTex1df4a) Binding 1 + Decorate 279(g_tTex1df4) DescriptorSet 0 + Decorate 279(g_tTex1df4) Binding 0 + Decorate 282(g_tTex1di4) DescriptorSet 0 + Decorate 285(g_tTex1du4) DescriptorSet 0 + Decorate 288(g_tTex3df4) DescriptorSet 0 + Decorate 291(g_tTex3di4) DescriptorSet 0 + Decorate 294(g_tTex3du4) DescriptorSet 0 + Decorate 297(g_tTexcdf4) DescriptorSet 0 + Decorate 300(g_tTexcdi4) DescriptorSet 0 + Decorate 303(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -867,55 +886,53 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266: TypePointer Output 258(PS_OUTPUT) -267(@entryPointOutput): 266(ptr) Variable Output - 270(g_sSamp2d): 15(ptr) Variable UniformConstant - 271: TypeImage 6(float) 1D sampled format:Unknown - 272: TypePointer UniformConstant 271 -273(g_tTex1df4a): 272(ptr) Variable UniformConstant - 274(g_tTex1df4): 272(ptr) Variable UniformConstant - 275: TypeImage 24(int) 1D sampled format:Unknown - 276: TypePointer UniformConstant 275 - 277(g_tTex1di4): 276(ptr) Variable UniformConstant - 278: TypeImage 44(int) 1D sampled format:Unknown - 279: TypePointer UniformConstant 278 - 280(g_tTex1du4): 279(ptr) Variable UniformConstant - 281: TypeImage 6(float) 3D sampled format:Unknown - 282: TypePointer UniformConstant 281 - 283(g_tTex3df4): 282(ptr) Variable UniformConstant - 284: TypeImage 24(int) 3D sampled format:Unknown - 285: TypePointer UniformConstant 284 - 286(g_tTex3di4): 285(ptr) Variable UniformConstant - 287: TypeImage 44(int) 3D sampled format:Unknown - 288: TypePointer UniformConstant 287 - 289(g_tTex3du4): 288(ptr) Variable UniformConstant - 290: TypeImage 6(float) Cube sampled format:Unknown - 291: TypePointer UniformConstant 290 - 292(g_tTexcdf4): 291(ptr) Variable UniformConstant - 293: TypeImage 24(int) Cube sampled format:Unknown - 294: TypePointer UniformConstant 293 - 295(g_tTexcdi4): 294(ptr) Variable UniformConstant - 296: TypeImage 44(int) Cube sampled format:Unknown - 297: TypePointer UniformConstant 296 - 298(g_tTexcdu4): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 6(float) - 300(c1): 299(ptr) Variable UniformConstant - 301: TypeVector 6(float) 3 - 302: TypePointer UniformConstant 301(fvec3) - 303(c3): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 7(fvec4) - 305(c4): 304(ptr) Variable UniformConstant - 306: TypePointer UniformConstant 24(int) - 307(o1): 306(ptr) Variable UniformConstant - 308: TypeVector 24(int) 3 - 309: TypePointer UniformConstant 308(ivec3) - 310(o3): 309(ptr) Variable UniformConstant - 311: TypePointer UniformConstant 31(ivec4) - 312(o4): 311(ptr) Variable UniformConstant - 313: TypePointer Output 7(fvec4) - 314(Color): 313(ptr) Variable Output - 315: TypePointer Output 6(float) - 316(Depth): 315(ptr) Variable Output + 266: TypePointer Output 7(fvec4) + 267(Color): 266(ptr) Variable Output + 270: TypePointer Output 6(float) + 271(Depth): 270(ptr) Variable Output + 275(g_sSamp2d): 15(ptr) Variable UniformConstant + 276: TypeImage 6(float) 1D sampled format:Unknown + 277: TypePointer UniformConstant 276 +278(g_tTex1df4a): 277(ptr) Variable UniformConstant + 279(g_tTex1df4): 277(ptr) Variable UniformConstant + 280: TypeImage 24(int) 1D sampled format:Unknown + 281: TypePointer UniformConstant 280 + 282(g_tTex1di4): 281(ptr) Variable UniformConstant + 283: TypeImage 44(int) 1D sampled format:Unknown + 284: TypePointer UniformConstant 283 + 285(g_tTex1du4): 284(ptr) Variable UniformConstant + 286: TypeImage 6(float) 3D sampled format:Unknown + 287: TypePointer UniformConstant 286 + 288(g_tTex3df4): 287(ptr) Variable UniformConstant + 289: TypeImage 24(int) 3D sampled format:Unknown + 290: TypePointer UniformConstant 289 + 291(g_tTex3di4): 290(ptr) Variable UniformConstant + 292: TypeImage 44(int) 3D sampled format:Unknown + 293: TypePointer UniformConstant 292 + 294(g_tTex3du4): 293(ptr) Variable UniformConstant + 295: TypeImage 6(float) Cube sampled format:Unknown + 296: TypePointer UniformConstant 295 + 297(g_tTexcdf4): 296(ptr) Variable UniformConstant + 298: TypeImage 24(int) Cube sampled format:Unknown + 299: TypePointer UniformConstant 298 + 300(g_tTexcdi4): 299(ptr) Variable UniformConstant + 301: TypeImage 44(int) Cube sampled format:Unknown + 302: TypePointer UniformConstant 301 + 303(g_tTexcdu4): 302(ptr) Variable UniformConstant + 304: TypePointer UniformConstant 6(float) + 305(c1): 304(ptr) Variable UniformConstant + 306: TypeVector 6(float) 3 + 307: TypePointer UniformConstant 306(fvec3) + 308(c3): 307(ptr) Variable UniformConstant + 309: TypePointer UniformConstant 7(fvec4) + 310(c4): 309(ptr) Variable UniformConstant + 311: TypePointer UniformConstant 24(int) + 312(o1): 311(ptr) Variable UniformConstant + 313: TypeVector 24(int) 3 + 314: TypePointer UniformConstant 313(ivec3) + 315(o3): 314(ptr) Variable UniformConstant + 316: TypePointer UniformConstant 31(ivec4) + 317(o4): 316(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1163,7 +1180,11 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 268:258(PS_OUTPUT) Load 260(psout) - Store 267(@entryPointOutput) 268 + 268: 8(ptr) AccessChain 260(psout) 29 + 269: 7(fvec4) Load 268 + Store 267(Color) 269 + 272: 264(ptr) AccessChain 260(psout) 99 + 273: 6(float) Load 272 + Store 271(Depth) 273 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index a6fabbf1..4ee4aa70 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -334,10 +334,20 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Sequence -0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:109 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:109 Color: direct index for structure (temp 4-component vector of float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:109 Depth: direct index for structure (temp float FragDepth) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Constant: +0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -701,10 +711,20 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:109 Sequence -0:109 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:109 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:109 Color: direct index for structure (temp 4-component vector of float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Constant: +0:109 0 (const int) +0:109 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:109 Depth: direct index for structure (temp float FragDepth) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Constant: +0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -731,7 +751,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 307 +// Id's are bound by 308 Capability Shader Capability ImageGatherExtended @@ -739,7 +759,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 304 306 + EntryPoint Fragment 4 "main" 267 271 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" @@ -776,38 +796,37 @@ gl_FragCoord origin is upper left MemberName 258(PS_OUTPUT) 0 "Color" MemberName 258(PS_OUTPUT) 1 "Depth" Name 260 "psout" - Name 267 "@entryPointOutput" - Name 270 "g_sSamp2d" - Name 273 "g_tTex1df4a" - Name 276 "g_tTex1di4a" - Name 279 "g_tTex1du4a" - Name 282 "g_tTexcdf4a" - Name 285 "g_tTexcdi4a" - Name 288 "g_tTexcdu4a" - Name 290 "c1" - Name 293 "c2" - Name 295 "c4" - Name 297 "o1" - Name 300 "o3" - Name 302 "o4" - Name 304 "Color" - Name 306 "Depth" + Name 267 "Color" + Name 271 "Depth" + Name 275 "g_sSamp2d" + Name 278 "g_tTex1df4a" + Name 281 "g_tTex1di4a" + Name 284 "g_tTex1du4a" + Name 287 "g_tTexcdf4a" + Name 290 "g_tTexcdi4a" + Name 293 "g_tTexcdu4a" + Name 295 "c1" + Name 298 "c2" + Name 300 "c4" + Name 302 "o1" + Name 305 "o3" + Name 307 "o4" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 270(g_sSamp2d) DescriptorSet 0 - Decorate 273(g_tTex1df4a) DescriptorSet 0 - Decorate 273(g_tTex1df4a) Binding 0 - Decorate 276(g_tTex1di4a) DescriptorSet 0 - Decorate 279(g_tTex1du4a) DescriptorSet 0 - Decorate 282(g_tTexcdf4a) DescriptorSet 0 - Decorate 285(g_tTexcdi4a) DescriptorSet 0 - Decorate 288(g_tTexcdu4a) DescriptorSet 0 - Decorate 304(Color) Location 0 - Decorate 306(Depth) BuiltIn FragDepth + Decorate 267(Color) Location 0 + Decorate 271(Depth) BuiltIn FragDepth + Decorate 275(g_sSamp2d) DescriptorSet 0 + Decorate 278(g_tTex1df4a) DescriptorSet 0 + Decorate 278(g_tTex1df4a) Binding 0 + Decorate 281(g_tTex1di4a) DescriptorSet 0 + Decorate 284(g_tTex1du4a) DescriptorSet 0 + Decorate 287(g_tTexcdf4a) DescriptorSet 0 + Decorate 290(g_tTexcdi4a) DescriptorSet 0 + Decorate 293(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -851,45 +870,43 @@ gl_FragCoord origin is upper left 261: 6(float) Constant 1065353216 262: 7(fvec4) ConstantComposite 261 261 261 261 264: TypePointer Function 6(float) - 266: TypePointer Output 258(PS_OUTPUT) -267(@entryPointOutput): 266(ptr) Variable Output - 270(g_sSamp2d): 15(ptr) Variable UniformConstant - 271: TypeImage 6(float) 1D array sampled format:Unknown - 272: TypePointer UniformConstant 271 -273(g_tTex1df4a): 272(ptr) Variable UniformConstant - 274: TypeImage 24(int) 1D array sampled format:Unknown - 275: TypePointer UniformConstant 274 -276(g_tTex1di4a): 275(ptr) Variable UniformConstant - 277: TypeImage 44(int) 1D array sampled format:Unknown - 278: TypePointer UniformConstant 277 -279(g_tTex1du4a): 278(ptr) Variable UniformConstant - 280: TypeImage 6(float) Cube array sampled format:Unknown - 281: TypePointer UniformConstant 280 -282(g_tTexcdf4a): 281(ptr) Variable UniformConstant - 283: TypeImage 24(int) Cube array sampled format:Unknown - 284: TypePointer UniformConstant 283 -285(g_tTexcdi4a): 284(ptr) Variable UniformConstant - 286: TypeImage 44(int) Cube array sampled format:Unknown - 287: TypePointer UniformConstant 286 -288(g_tTexcdu4a): 287(ptr) Variable UniformConstant - 289: TypePointer UniformConstant 6(float) - 290(c1): 289(ptr) Variable UniformConstant - 291: TypeVector 6(float) 2 - 292: TypePointer UniformConstant 291(fvec2) - 293(c2): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 7(fvec4) - 295(c4): 294(ptr) Variable UniformConstant - 296: TypePointer UniformConstant 24(int) - 297(o1): 296(ptr) Variable UniformConstant - 298: TypeVector 24(int) 3 - 299: TypePointer UniformConstant 298(ivec3) - 300(o3): 299(ptr) Variable UniformConstant - 301: TypePointer UniformConstant 31(ivec4) - 302(o4): 301(ptr) Variable UniformConstant - 303: TypePointer Output 7(fvec4) - 304(Color): 303(ptr) Variable Output - 305: TypePointer Output 6(float) - 306(Depth): 305(ptr) Variable Output + 266: TypePointer Output 7(fvec4) + 267(Color): 266(ptr) Variable Output + 270: TypePointer Output 6(float) + 271(Depth): 270(ptr) Variable Output + 275(g_sSamp2d): 15(ptr) Variable UniformConstant + 276: TypeImage 6(float) 1D array sampled format:Unknown + 277: TypePointer UniformConstant 276 +278(g_tTex1df4a): 277(ptr) Variable UniformConstant + 279: TypeImage 24(int) 1D array sampled format:Unknown + 280: TypePointer UniformConstant 279 +281(g_tTex1di4a): 280(ptr) Variable UniformConstant + 282: TypeImage 44(int) 1D array sampled format:Unknown + 283: TypePointer UniformConstant 282 +284(g_tTex1du4a): 283(ptr) Variable UniformConstant + 285: TypeImage 6(float) Cube array sampled format:Unknown + 286: TypePointer UniformConstant 285 +287(g_tTexcdf4a): 286(ptr) Variable UniformConstant + 288: TypeImage 24(int) Cube array sampled format:Unknown + 289: TypePointer UniformConstant 288 +290(g_tTexcdi4a): 289(ptr) Variable UniformConstant + 291: TypeImage 44(int) Cube array sampled format:Unknown + 292: TypePointer UniformConstant 291 +293(g_tTexcdu4a): 292(ptr) Variable UniformConstant + 294: TypePointer UniformConstant 6(float) + 295(c1): 294(ptr) Variable UniformConstant + 296: TypeVector 6(float) 2 + 297: TypePointer UniformConstant 296(fvec2) + 298(c2): 297(ptr) Variable UniformConstant + 299: TypePointer UniformConstant 7(fvec4) + 300(c4): 299(ptr) Variable UniformConstant + 301: TypePointer UniformConstant 24(int) + 302(o1): 301(ptr) Variable UniformConstant + 303: TypeVector 24(int) 3 + 304: TypePointer UniformConstant 303(ivec3) + 305(o3): 304(ptr) Variable UniformConstant + 306: TypePointer UniformConstant 31(ivec4) + 307(o4): 306(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function @@ -1137,7 +1154,11 @@ gl_FragCoord origin is upper left Store 263 262 265: 264(ptr) AccessChain 260(psout) 99 Store 265 261 - 268:258(PS_OUTPUT) Load 260(psout) - Store 267(@entryPointOutput) 268 + 268: 8(ptr) AccessChain 260(psout) 29 + 269: 7(fvec4) Load 268 + Store 267(Color) 269 + 272: 264(ptr) AccessChain 260(psout) 99 + 273: 6(float) Load 272 + Store 271(Depth) 273 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 1c5e4255..ca913a8c 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1060,10 +1060,20 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Sequence -0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:279 Color: direct index for structure (temp 4-component vector of float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Constant: +0:279 0 (const int) +0:279 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:279 Depth: direct index for structure (temp float FragDepth) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Constant: +0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -2162,10 +2172,20 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:279 Sequence -0:279 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:279 Color: direct index for structure (temp 4-component vector of float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Constant: +0:279 0 (const int) +0:279 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:279 Depth: direct index for structure (temp float FragDepth) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Constant: +0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -2201,7 +2221,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 544 +// Id's are bound by 545 Capability Shader Capability Sampled1D @@ -2210,7 +2230,7 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 534 541 543 + EntryPoint Fragment 4 "main" 534 538 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "sizeQueryTemp" @@ -2298,10 +2318,9 @@ gl_FragCoord origin is upper left MemberName 522(PS_OUTPUT) 0 "Color" MemberName 522(PS_OUTPUT) 1 "Depth" Name 524 "psout" - Name 534 "@entryPointOutput" - Name 539 "g_sSamp" - Name 541 "Color" - Name 543 "Depth" + Name 534 "Color" + Name 538 "Depth" + Name 544 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -2331,10 +2350,10 @@ gl_FragCoord origin is upper left Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 539(g_sSamp) DescriptorSet 0 - Decorate 539(g_sSamp) Binding 0 - Decorate 541(Color) Location 0 - Decorate 543(Depth) BuiltIn FragDepth + Decorate 534(Color) Location 0 + Decorate 538(Depth) BuiltIn FragDepth + Decorate 544(g_sSamp) DescriptorSet 0 + Decorate 544(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -2441,15 +2460,13 @@ gl_FragCoord origin is upper left 528: TypePointer Function 521(fvec4) 530: 14(int) Constant 1 531: TypePointer Function 9(float) - 533: TypePointer Output 522(PS_OUTPUT) -534(@entryPointOutput): 533(ptr) Variable Output - 537: TypeSampler - 538: TypePointer UniformConstant 537 - 539(g_sSamp): 538(ptr) Variable UniformConstant - 540: TypePointer Output 521(fvec4) - 541(Color): 540(ptr) Variable Output - 542: TypePointer Output 9(float) - 543(Depth): 542(ptr) Variable Output + 533: TypePointer Output 521(fvec4) + 534(Color): 533(ptr) Variable Output + 537: TypePointer Output 9(float) + 538(Depth): 537(ptr) Variable Output + 542: TypeSampler + 543: TypePointer UniformConstant 542 + 544(g_sSamp): 543(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -3063,7 +3080,11 @@ gl_FragCoord origin is upper left Store 529 527 532: 531(ptr) AccessChain 524(psout) 530 Store 532 526 - 535:522(PS_OUTPUT) Load 524(psout) - Store 534(@entryPointOutput) 535 + 535: 528(ptr) AccessChain 524(psout) 525 + 536: 521(fvec4) Load 535 + Store 534(Color) 536 + 539: 531(ptr) AccessChain 524(psout) 530 + 540: 9(float) Load 539 + Store 538(Depth) 540 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 8b10755b..94801888 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -36,10 +36,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Sequence -0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:26 Pos: direct index for structure (temp 4-component vector of float Position) +0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:26 Constant: +0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -87,10 +91,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:26 Sequence -0:26 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:26 Pos: direct index for structure (temp 4-component vector of float Position) +0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:26 Constant: +0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -99,14 +107,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 43 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 36 43 + EntryPoint Vertex 4 "main" 36 Name 4 "main" Name 8 "sizeQueryTemp" Name 12 "g_tTex1df4" @@ -116,15 +124,14 @@ Shader version: 450 Name 27 "VS_OUTPUT" MemberName 27(VS_OUTPUT) 0 "Pos" Name 29 "vsout" - Name 36 "@entryPointOutput" - Name 41 "g_sSamp" - Name 43 "Pos" + Name 36 "Pos" + Name 42 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position - Decorate 41(g_sSamp) DescriptorSet 0 - Decorate 41(g_sSamp) Binding 0 - Decorate 43(Pos) BuiltIn Position + Decorate 36(Pos) BuiltIn Position + Decorate 42(g_sSamp) DescriptorSet 0 + Decorate 42(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -142,13 +149,11 @@ Shader version: 450 31: 9(float) Constant 0 32: 26(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 26(fvec4) - 35: TypePointer Output 27(VS_OUTPUT) -36(@entryPointOutput): 35(ptr) Variable Output - 39: TypeSampler - 40: TypePointer UniformConstant 39 - 41(g_sSamp): 40(ptr) Variable UniformConstant - 42: TypePointer Output 26(fvec4) - 43(Pos): 42(ptr) Variable Output + 35: TypePointer Output 26(fvec4) + 36(Pos): 35(ptr) Variable Output + 40: TypeSampler + 41: TypePointer UniformConstant 40 + 42(g_sSamp): 41(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(sizeQueryTemp): 7(ptr) Variable Function @@ -171,7 +176,8 @@ Shader version: 450 Store 23(NumberOfLevelsU) 25 34: 33(ptr) AccessChain 29(vsout) 30 Store 34 32 - 37:27(VS_OUTPUT) Load 29(vsout) - Store 36(@entryPointOutput) 37 + 37: 33(ptr) AccessChain 29(vsout) 30 + 38: 26(fvec4) Load 37 + Store 36(Pos) 38 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 8addf8fa..3d56bd46 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -43,10 +43,20 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Sequence -0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:22 Depth: direct index for structure (temp float FragDepth) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -98,10 +108,20 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:22 Sequence -0:22 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:22 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 0 (const int) +0:22 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:22 Depth: direct index for structure (temp float FragDepth) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Constant: +0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index b5702f34..3657cb22 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -43,10 +43,14 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Sequence -0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) 0:31 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -99,22 +103,26 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:31 Sequence -0:31 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (temp structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) 0:31 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 48 +// Id's are bound by 47 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 43 47 + EntryPoint Fragment 4 "main" 43 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "Test1(" @@ -131,9 +139,8 @@ gl_FragCoord origin is upper left Name 34 "PS_OUTPUT" MemberName 34(PS_OUTPUT) 0 "color" Name 36 "ps_output" - Name 43 "@entryPointOutput" - Name 47 "color" - Decorate 47(color) Location 0 + Name 43 "color" + Decorate 43(color) Location 0 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 @@ -163,18 +170,17 @@ gl_FragCoord origin is upper left 38: 37(int) Constant 0 39: 33(fvec4) ConstantComposite 13 13 13 13 40: TypePointer Function 33(fvec4) - 42: TypePointer Output 34(PS_OUTPUT) -43(@entryPointOutput): 42(ptr) Variable Output - 46: TypePointer Output 33(fvec4) - 47(color): 46(ptr) Variable Output + 42: TypePointer Output 33(fvec4) + 43(color): 42(ptr) Variable Output 4(main): 2 Function None 3 5: Label 36(ps_output): 35(ptr) Variable Function 32: 2 FunctionCall 6(Test1() 41: 40(ptr) AccessChain 36(ps_output) 38 Store 41 39 - 44:34(PS_OUTPUT) Load 36(ps_output) - Store 43(@entryPointOutput) 44 + 44: 40(ptr) AccessChain 36(ps_output) 38 + 45: 33(fvec4) Load 44 + Store 43(color) 45 Return FunctionEnd 6(Test1(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index af6106b4..b0f40624 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -55,10 +55,20 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Sequence -0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:24 Color: direct index for structure (temp 4-component vector of float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:24 Depth: direct index for structure (temp float FragDepth) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Constant: +0:24 1 (const int) 0:24 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -125,10 +135,20 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:24 Sequence -0:24 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:24 Color: direct index for structure (temp 4-component vector of float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Constant: +0:24 0 (const int) +0:24 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:24 Depth: direct index for structure (temp float FragDepth) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Constant: +0:24 1 (const int) 0:24 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -137,12 +157,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 60 +// Id's are bound by 61 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 57 59 + EntryPoint Fragment 4 "main" 45 53 57 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -160,14 +180,13 @@ gl_FragCoord origin is upper left MemberName 31(PS_OUTPUT) 1 "Depth" Name 33 "psout" Name 45 "inpos" - Name 53 "@entryPointOutput" - Name 57 "Color" - Name 59 "Depth" + Name 53 "Color" + Name 57 "Depth" MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord - Decorate 57(Color) Location 0 - Decorate 59(Depth) BuiltIn FragDepth + Decorate 53(Color) Location 0 + Decorate 57(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -189,12 +208,10 @@ gl_FragCoord origin is upper left 46: TypeInt 32 0 47: 46(int) Constant 3 48: TypePointer Input 6(float) - 52: TypePointer Output 31(PS_OUTPUT) -53(@entryPointOutput): 52(ptr) Variable Output - 56: TypePointer Output 30(fvec4) - 57(Color): 56(ptr) Variable Output - 58: TypePointer Output 6(float) - 59(Depth): 58(ptr) Variable Output + 52: TypePointer Output 30(fvec4) + 53(Color): 52(ptr) Variable Output + 56: TypePointer Output 6(float) + 57(Depth): 56(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function @@ -225,8 +242,12 @@ gl_FragCoord origin is upper left 50: 6(float) Load 49 51: 7(ptr) AccessChain 33(psout) 43 Store 51 50 - 54:31(PS_OUTPUT) Load 33(psout) - Store 53(@entryPointOutput) 54 + 54: 41(ptr) AccessChain 33(psout) 35 + 55: 30(fvec4) Load 54 + Store 53(Color) 55 + 58: 7(ptr) AccessChain 33(psout) 43 + 59: 6(float) Load 58 + Store 57(Depth) 59 Return FunctionEnd 12(MyFunc(f1;f1;f1;): 2 Function None 8 diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index fd807bae..151bdb42 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2772,10 +2772,14 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:492 Sequence -0:492 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:492 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:492 color: direct index for structure (temp 4-component vector of float) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Constant: +0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) @@ -5569,10 +5573,14 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:492 Sequence -0:492 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:492 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:492 color: direct index for structure (temp 4-component vector of float) +0:492 'ps_output' (temp structure{temp 4-component vector of float color}) +0:492 Constant: +0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects 0:? 'gs_ua' (global uint) @@ -5591,13 +5599,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1826 +// Id's are bound by 1825 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1805 1825 + EntryPoint Fragment 4 "main" 1805 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -6111,21 +6119,20 @@ gl_FragCoord origin is upper left Name 1798 "PS_OUTPUT" MemberName 1798(PS_OUTPUT) 0 "color" Name 1800 "ps_output" - Name 1805 "@entryPointOutput" - Name 1809 "gs_ua" - Name 1810 "gs_ub" - Name 1811 "gs_uc" - Name 1813 "gs_ua2" - Name 1814 "gs_ub2" - Name 1815 "gs_uc2" - Name 1817 "gs_ua3" - Name 1818 "gs_ub3" - Name 1819 "gs_uc3" - Name 1821 "gs_ua4" - Name 1822 "gs_ub4" - Name 1823 "gs_uc4" - Name 1825 "color" - Decorate 1825(color) Location 0 + Name 1805 "color" + Name 1810 "gs_ua" + Name 1811 "gs_ub" + Name 1812 "gs_uc" + Name 1814 "gs_ua2" + Name 1815 "gs_ub2" + Name 1816 "gs_uc2" + Name 1818 "gs_ua3" + Name 1819 "gs_ub3" + Name 1820 "gs_uc3" + Name 1822 "gs_ua4" + Name 1823 "gs_ub4" + Name 1824 "gs_uc4" + Decorate 1805(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6241,33 +6248,32 @@ gl_FragCoord origin is upper left 1799: TypePointer Function 1798(PS_OUTPUT) 1801: 148(int) Constant 0 1802: 48(fvec4) ConstantComposite 284 284 284 284 - 1804: TypePointer Output 1798(PS_OUTPUT) -1805(@entryPointOutput): 1804(ptr) Variable Output - 1808: TypePointer Private 8(int) - 1809(gs_ua): 1808(ptr) Variable Private - 1810(gs_ub): 1808(ptr) Variable Private - 1811(gs_uc): 1808(ptr) Variable Private - 1812: TypePointer Private 26(ivec2) - 1813(gs_ua2): 1812(ptr) Variable Private - 1814(gs_ub2): 1812(ptr) Variable Private - 1815(gs_uc2): 1812(ptr) Variable Private - 1816: TypePointer Private 38(ivec3) - 1817(gs_ua3): 1816(ptr) Variable Private - 1818(gs_ub3): 1816(ptr) Variable Private - 1819(gs_uc3): 1816(ptr) Variable Private - 1820: TypePointer Private 50(ivec4) - 1821(gs_ua4): 1820(ptr) Variable Private - 1822(gs_ub4): 1820(ptr) Variable Private - 1823(gs_uc4): 1820(ptr) Variable Private - 1824: TypePointer Output 48(fvec4) - 1825(color): 1824(ptr) Variable Output + 1804: TypePointer Output 48(fvec4) + 1805(color): 1804(ptr) Variable Output + 1809: TypePointer Private 8(int) + 1810(gs_ua): 1809(ptr) Variable Private + 1811(gs_ub): 1809(ptr) Variable Private + 1812(gs_uc): 1809(ptr) Variable Private + 1813: TypePointer Private 26(ivec2) + 1814(gs_ua2): 1813(ptr) Variable Private + 1815(gs_ub2): 1813(ptr) Variable Private + 1816(gs_uc2): 1813(ptr) Variable Private + 1817: TypePointer Private 38(ivec3) + 1818(gs_ua3): 1817(ptr) Variable Private + 1819(gs_ub3): 1817(ptr) Variable Private + 1820(gs_uc3): 1817(ptr) Variable Private + 1821: TypePointer Private 50(ivec4) + 1822(gs_ua4): 1821(ptr) Variable Private + 1823(gs_ub4): 1821(ptr) Variable Private + 1824(gs_uc4): 1821(ptr) Variable Private 4(main): 2 Function None 3 5: Label 1800(ps_output): 1799(ptr) Variable Function 1803: 49(ptr) AccessChain 1800(ps_output) 1801 Store 1803 1802 - 1806:1798(PS_OUTPUT) Load 1800(ps_output) - Store 1805(@entryPointOutput) 1806 + 1806: 49(ptr) AccessChain 1800(ps_output) 1801 + 1807: 48(fvec4) Load 1806 + Store 1805(color) 1807 Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 5de1da62..7733e2e5 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -88,10 +88,20 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Sequence -0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:54 Color: direct index for structure (temp 4-component vector of float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Constant: +0:54 0 (const int) +0:54 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:54 Depth: direct index for structure (temp float FragDepth) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Constant: +0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,10 +215,20 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:54 Sequence -0:54 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:54 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:54 Color: direct index for structure (temp 4-component vector of float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Constant: +0:54 0 (const int) +0:54 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:54 Depth: direct index for structure (temp float FragDepth) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Constant: +0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,14 +251,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 109 +// Id's are bound by 110 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 106 108 + EntryPoint Fragment 4 "main" 92 96 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" @@ -254,15 +274,14 @@ gl_FragCoord origin is upper left MemberName 80(PS_OUTPUT) 0 "Color" MemberName 80(PS_OUTPUT) 1 "Depth" Name 82 "psout" - Name 92 "@entryPointOutput" - Name 97 "g_sSamp" - Name 99 "c1" - Name 101 "c4" - Name 102 "o1" - Name 103 "o3" - Name 104 "o4" - Name 106 "Color" - Name 108 "Depth" + Name 92 "Color" + Name 96 "Depth" + Name 102 "g_sSamp" + Name 104 "c1" + Name 106 "c4" + Name 107 "o1" + Name 108 "o3" + Name 109 "o4" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 Decorate 21(g_tTex2dmsi4) DescriptorSet 0 Decorate 29(g_tTex2dmsu4) DescriptorSet 0 @@ -270,10 +289,10 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 97(g_sSamp) DescriptorSet 0 - Decorate 97(g_sSamp) Binding 0 - Decorate 106(Color) Location 0 - Decorate 108(Depth) BuiltIn FragDepth + Decorate 92(Color) Location 0 + Decorate 96(Depth) BuiltIn FragDepth + Decorate 102(g_sSamp) DescriptorSet 0 + Decorate 102(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -316,22 +335,20 @@ gl_FragCoord origin is upper left 86: TypePointer Function 17(fvec4) 88: 11(int) Constant 1 89: TypePointer Function 6(float) - 91: TypePointer Output 80(PS_OUTPUT) -92(@entryPointOutput): 91(ptr) Variable Output - 95: TypeSampler - 96: TypePointer UniformConstant 95 - 97(g_sSamp): 96(ptr) Variable UniformConstant - 98: TypePointer UniformConstant 11(int) - 99(c1): 98(ptr) Variable UniformConstant - 100: TypePointer UniformConstant 24(ivec4) - 101(c4): 100(ptr) Variable UniformConstant - 102(o1): 98(ptr) Variable UniformConstant - 103(o3): 52(ptr) Variable UniformConstant - 104(o4): 100(ptr) Variable UniformConstant - 105: TypePointer Output 17(fvec4) - 106(Color): 105(ptr) Variable Output - 107: TypePointer Output 6(float) - 108(Depth): 107(ptr) Variable Output + 91: TypePointer Output 17(fvec4) + 92(Color): 91(ptr) Variable Output + 95: TypePointer Output 6(float) + 96(Depth): 95(ptr) Variable Output + 100: TypeSampler + 101: TypePointer UniformConstant 100 + 102(g_sSamp): 101(ptr) Variable UniformConstant + 103: TypePointer UniformConstant 11(int) + 104(c1): 103(ptr) Variable UniformConstant + 105: TypePointer UniformConstant 24(ivec4) + 106(c4): 105(ptr) Variable UniformConstant + 107(o1): 103(ptr) Variable UniformConstant + 108(o3): 52(ptr) Variable UniformConstant + 109(o4): 105(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 82(psout): 81(ptr) Variable Function @@ -381,7 +398,11 @@ gl_FragCoord origin is upper left Store 87 85 90: 89(ptr) AccessChain 82(psout) 88 Store 90 84 - 93:80(PS_OUTPUT) Load 82(psout) - Store 92(@entryPointOutput) 93 + 93: 86(ptr) AccessChain 82(psout) 83 + 94: 17(fvec4) Load 93 + Store 92(Color) 94 + 97: 89(ptr) AccessChain 82(psout) 88 + 98: 6(float) Load 97 + Store 96(Depth) 98 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index f4966766..ea2e6d56 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -106,10 +106,20 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float FragDepth) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -256,10 +266,20 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:70 Sequence -0:70 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:70 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 0 (const int) +0:70 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:70 Depth: direct index for structure (temp float FragDepth) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Constant: +0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -297,14 +317,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 150 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 87 146 148 + EntryPoint Fragment 4 "main" 87 91 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -319,31 +339,30 @@ gl_FragCoord origin is upper left MemberName 75(PS_OUTPUT) 0 "Color" MemberName 75(PS_OUTPUT) 1 "Depth" Name 77 "psout" - Name 87 "@entryPointOutput" - Name 92 "g_sSamp" - Name 95 "g_tTex1df4" - Name 98 "g_tTex1di4" - Name 101 "g_tTex1du4" - Name 104 "g_tTex2df4" - Name 107 "g_tTex2di4" - Name 110 "g_tTex2du4" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 122 "g_tTexcdf4" - Name 125 "g_tTexcdi4" - Name 128 "g_tTexcdu4" - Name 131 "g_tTexcdf4a" - Name 134 "g_tTexcdi4a" - Name 137 "g_tTexcdu4a" - Name 138 "c1" - Name 140 "c2" - Name 141 "o1" - Name 142 "o2" - Name 143 "o3" - Name 144 "o4" - Name 146 "Color" - Name 148 "Depth" + Name 87 "Color" + Name 91 "Depth" + Name 97 "g_sSamp" + Name 100 "g_tTex1df4" + Name 103 "g_tTex1di4" + Name 106 "g_tTex1du4" + Name 109 "g_tTex2df4" + Name 112 "g_tTex2di4" + Name 115 "g_tTex2du4" + Name 118 "g_tTex3df4" + Name 121 "g_tTex3di4" + Name 124 "g_tTex3du4" + Name 127 "g_tTexcdf4" + Name 130 "g_tTexcdi4" + Name 133 "g_tTexcdu4" + Name 136 "g_tTexcdf4a" + Name 139 "g_tTexcdi4a" + Name 142 "g_tTexcdu4a" + Name 143 "c1" + Name 145 "c2" + Name 146 "o1" + Name 147 "o2" + Name 148 "o3" + Name 149 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 27(g_tTex1di4a) DescriptorSet 0 Decorate 37(g_tTex1du4a) DescriptorSet 0 @@ -351,26 +370,26 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 92(g_sSamp) DescriptorSet 0 - Decorate 92(g_sSamp) Binding 0 - Decorate 95(g_tTex1df4) DescriptorSet 0 - Decorate 95(g_tTex1df4) Binding 0 - Decorate 98(g_tTex1di4) DescriptorSet 0 - Decorate 101(g_tTex1du4) DescriptorSet 0 - Decorate 104(g_tTex2df4) DescriptorSet 0 - Decorate 107(g_tTex2di4) DescriptorSet 0 - Decorate 110(g_tTex2du4) DescriptorSet 0 - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 122(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 128(g_tTexcdu4) DescriptorSet 0 - Decorate 131(g_tTexcdf4a) DescriptorSet 0 - Decorate 134(g_tTexcdi4a) DescriptorSet 0 - Decorate 137(g_tTexcdu4a) DescriptorSet 0 - Decorate 146(Color) Location 0 - Decorate 148(Depth) BuiltIn FragDepth + Decorate 87(Color) Location 0 + Decorate 91(Depth) BuiltIn FragDepth + Decorate 97(g_sSamp) DescriptorSet 0 + Decorate 97(g_sSamp) Binding 0 + Decorate 100(g_tTex1df4) DescriptorSet 0 + Decorate 100(g_tTex1df4) Binding 0 + Decorate 103(g_tTex1di4) DescriptorSet 0 + Decorate 106(g_tTex1du4) DescriptorSet 0 + Decorate 109(g_tTex2df4) DescriptorSet 0 + Decorate 112(g_tTex2di4) DescriptorSet 0 + Decorate 115(g_tTex2du4) DescriptorSet 0 + Decorate 118(g_tTex3df4) DescriptorSet 0 + Decorate 121(g_tTex3di4) DescriptorSet 0 + Decorate 124(g_tTex3du4) DescriptorSet 0 + Decorate 127(g_tTexcdf4) DescriptorSet 0 + Decorate 130(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 136(g_tTexcdf4a) DescriptorSet 0 + Decorate 139(g_tTexcdi4a) DescriptorSet 0 + Decorate 142(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -414,67 +433,65 @@ gl_FragCoord origin is upper left 81: TypePointer Function 23(fvec4) 83: 11(int) Constant 1 84: TypePointer Function 6(float) - 86: TypePointer Output 75(PS_OUTPUT) -87(@entryPointOutput): 86(ptr) Variable Output - 90: TypeSampler - 91: TypePointer UniformConstant 90 - 92(g_sSamp): 91(ptr) Variable UniformConstant - 93: TypeImage 6(float) 1D sampled format:Unknown - 94: TypePointer UniformConstant 93 - 95(g_tTex1df4): 94(ptr) Variable UniformConstant - 96: TypeImage 11(int) 1D sampled format:Unknown - 97: TypePointer UniformConstant 96 - 98(g_tTex1di4): 97(ptr) Variable UniformConstant - 99: TypeImage 18(int) 1D sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTex1du4): 100(ptr) Variable UniformConstant - 102: TypeImage 6(float) 2D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex2df4): 103(ptr) Variable UniformConstant - 105: TypeImage 11(int) 2D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex2di4): 106(ptr) Variable UniformConstant - 108: TypeImage 18(int) 2D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex2du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 11(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 18(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdf4): 121(ptr) Variable UniformConstant - 123: TypeImage 11(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 126: TypeImage 18(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdu4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTexcdf4a): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTexcdi4a): 133(ptr) Variable UniformConstant - 135: TypeImage 18(int) Cube array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTexcdu4a): 136(ptr) Variable UniformConstant - 138(c1): 20(ptr) Variable UniformConstant - 139: TypePointer UniformConstant 15(ivec2) - 140(c2): 139(ptr) Variable UniformConstant - 141(o1): 20(ptr) Variable UniformConstant - 142(o2): 139(ptr) Variable UniformConstant - 143(o3): 13(ptr) Variable UniformConstant - 144(o4): 49(ptr) Variable UniformConstant - 145: TypePointer Output 23(fvec4) - 146(Color): 145(ptr) Variable Output - 147: TypePointer Output 6(float) - 148(Depth): 147(ptr) Variable Output + 86: TypePointer Output 23(fvec4) + 87(Color): 86(ptr) Variable Output + 90: TypePointer Output 6(float) + 91(Depth): 90(ptr) Variable Output + 95: TypeSampler + 96: TypePointer UniformConstant 95 + 97(g_sSamp): 96(ptr) Variable UniformConstant + 98: TypeImage 6(float) 1D sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTex1df4): 99(ptr) Variable UniformConstant + 101: TypeImage 11(int) 1D sampled format:Unknown + 102: TypePointer UniformConstant 101 + 103(g_tTex1di4): 102(ptr) Variable UniformConstant + 104: TypeImage 18(int) 1D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex1du4): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 2D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex2df4): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 2D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex2di4): 111(ptr) Variable UniformConstant + 113: TypeImage 18(int) 2D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex2du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 3D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex3df4): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 3D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex3di4): 120(ptr) Variable UniformConstant + 122: TypeImage 18(int) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdf4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) Cube sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdi4): 129(ptr) Variable UniformConstant + 131: TypeImage 18(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTexcdf4a): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdi4a): 138(ptr) Variable UniformConstant + 140: TypeImage 18(int) Cube array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTexcdu4a): 141(ptr) Variable UniformConstant + 143(c1): 20(ptr) Variable UniformConstant + 144: TypePointer UniformConstant 15(ivec2) + 145(c2): 144(ptr) Variable UniformConstant + 146(o1): 20(ptr) Variable UniformConstant + 147(o2): 144(ptr) Variable UniformConstant + 148(o3): 13(ptr) Variable UniformConstant + 149(o4): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(psout): 76(ptr) Variable Function @@ -518,7 +535,11 @@ gl_FragCoord origin is upper left Store 82 80 85: 84(ptr) AccessChain 77(psout) 83 Store 85 79 - 88:75(PS_OUTPUT) Load 77(psout) - Store 87(@entryPointOutput) 88 + 88: 81(ptr) AccessChain 77(psout) 78 + 89: 23(fvec4) Load 88 + Store 87(Color) 89 + 92: 84(ptr) AccessChain 77(psout) 83 + 93: 6(float) Load 92 + Store 91(Depth) 93 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 2d8501aa..ec283111 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float FragDepth) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -322,10 +332,20 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float FragDepth) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -363,14 +383,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 169 +// Id's are bound by 170 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 118 166 168 + EntryPoint Fragment 4 "main" 118 122 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -389,27 +409,26 @@ gl_FragCoord origin is upper left MemberName 106(PS_OUTPUT) 0 "Color" MemberName 106(PS_OUTPUT) 1 "Depth" Name 108 "psout" - Name 118 "@entryPointOutput" - Name 123 "g_sSamp" - Name 126 "g_tTexcdf4" - Name 129 "g_tTexcdi4" - Name 132 "g_tTexcdu4" - Name 135 "g_tTex1df4a" - Name 138 "g_tTex1di4a" - Name 141 "g_tTex1du4a" - Name 144 "g_tTex2df4a" - Name 147 "g_tTex2di4a" - Name 150 "g_tTex2du4a" - Name 153 "g_tTexcdf4a" - Name 156 "g_tTexcdi4a" - Name 159 "g_tTexcdu4a" - Name 160 "c1" - Name 161 "o1" - Name 162 "o2" - Name 163 "o3" - Name 164 "o4" - Name 166 "Color" - Name 168 "Depth" + Name 118 "Color" + Name 122 "Depth" + Name 128 "g_sSamp" + Name 131 "g_tTexcdf4" + Name 134 "g_tTexcdi4" + Name 137 "g_tTexcdu4" + Name 140 "g_tTex1df4a" + Name 143 "g_tTex1di4a" + Name 146 "g_tTex1du4a" + Name 149 "g_tTex2df4a" + Name 152 "g_tTex2di4a" + Name 155 "g_tTex2du4a" + Name 158 "g_tTexcdf4a" + Name 161 "g_tTexcdi4a" + Name 164 "g_tTexcdu4a" + Name 165 "c1" + Name 166 "o1" + Name 167 "o2" + Name 168 "o3" + Name 169 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -421,22 +440,22 @@ gl_FragCoord origin is upper left Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 123(g_sSamp) DescriptorSet 0 - Decorate 123(g_sSamp) Binding 0 - Decorate 126(g_tTexcdf4) DescriptorSet 0 - Decorate 129(g_tTexcdi4) DescriptorSet 0 - Decorate 132(g_tTexcdu4) DescriptorSet 0 - Decorate 135(g_tTex1df4a) DescriptorSet 0 - Decorate 138(g_tTex1di4a) DescriptorSet 0 - Decorate 141(g_tTex1du4a) DescriptorSet 0 - Decorate 144(g_tTex2df4a) DescriptorSet 0 - Decorate 147(g_tTex2di4a) DescriptorSet 0 - Decorate 150(g_tTex2du4a) DescriptorSet 0 - Decorate 153(g_tTexcdf4a) DescriptorSet 0 - Decorate 156(g_tTexcdi4a) DescriptorSet 0 - Decorate 159(g_tTexcdu4a) DescriptorSet 0 - Decorate 166(Color) Location 0 - Decorate 168(Depth) BuiltIn FragDepth + Decorate 118(Color) Location 0 + Decorate 122(Depth) BuiltIn FragDepth + Decorate 128(g_sSamp) DescriptorSet 0 + Decorate 128(g_sSamp) Binding 0 + Decorate 131(g_tTexcdf4) DescriptorSet 0 + Decorate 134(g_tTexcdi4) DescriptorSet 0 + Decorate 137(g_tTexcdu4) DescriptorSet 0 + Decorate 140(g_tTex1df4a) DescriptorSet 0 + Decorate 143(g_tTex1di4a) DescriptorSet 0 + Decorate 146(g_tTex1du4a) DescriptorSet 0 + Decorate 149(g_tTex2df4a) DescriptorSet 0 + Decorate 152(g_tTex2di4a) DescriptorSet 0 + Decorate 155(g_tTex2du4a) DescriptorSet 0 + Decorate 158(g_tTexcdf4a) DescriptorSet 0 + Decorate 161(g_tTexcdi4a) DescriptorSet 0 + Decorate 164(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -493,56 +512,54 @@ gl_FragCoord origin is upper left 112: TypePointer Function 23(fvec4) 114: 11(int) Constant 1 115: TypePointer Function 6(float) - 117: TypePointer Output 106(PS_OUTPUT) -118(@entryPointOutput): 117(ptr) Variable Output - 121: TypeSampler - 122: TypePointer UniformConstant 121 - 123(g_sSamp): 122(ptr) Variable UniformConstant - 124: TypeImage 6(float) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdf4): 125(ptr) Variable UniformConstant - 127: TypeImage 11(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdi4): 128(ptr) Variable UniformConstant - 130: TypeImage 15(int) Cube sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTexcdu4): 131(ptr) Variable UniformConstant - 133: TypeImage 6(float) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1df4a): 134(ptr) Variable UniformConstant - 136: TypeImage 11(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1di4a): 137(ptr) Variable UniformConstant - 139: TypeImage 15(int) 1D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex1du4a): 140(ptr) Variable UniformConstant - 142: TypeImage 6(float) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2df4a): 143(ptr) Variable UniformConstant - 145: TypeImage 11(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2di4a): 146(ptr) Variable UniformConstant - 148: TypeImage 15(int) 2D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex2du4a): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdf4a): 152(ptr) Variable UniformConstant - 154: TypeImage 11(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdi4a): 155(ptr) Variable UniformConstant - 157: TypeImage 15(int) Cube array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTexcdu4a): 158(ptr) Variable UniformConstant - 160(c1): 17(ptr) Variable UniformConstant - 161(o1): 17(ptr) Variable UniformConstant - 162(o2): 13(ptr) Variable UniformConstant - 163(o3): 50(ptr) Variable UniformConstant - 164(o4): 80(ptr) Variable UniformConstant - 165: TypePointer Output 23(fvec4) - 166(Color): 165(ptr) Variable Output - 167: TypePointer Output 6(float) - 168(Depth): 167(ptr) Variable Output + 117: TypePointer Output 23(fvec4) + 118(Color): 117(ptr) Variable Output + 121: TypePointer Output 6(float) + 122(Depth): 121(ptr) Variable Output + 126: TypeSampler + 127: TypePointer UniformConstant 126 + 128(g_sSamp): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) Cube sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTexcdf4): 130(ptr) Variable UniformConstant + 132: TypeImage 11(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdi4): 133(ptr) Variable UniformConstant + 135: TypeImage 15(int) Cube sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTexcdu4): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) 1D array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTex1df4a): 139(ptr) Variable UniformConstant + 141: TypeImage 11(int) 1D array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTex1di4a): 142(ptr) Variable UniformConstant + 144: TypeImage 15(int) 1D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex1du4a): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) 2D array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTex2df4a): 148(ptr) Variable UniformConstant + 150: TypeImage 11(int) 2D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex2di4a): 151(ptr) Variable UniformConstant + 153: TypeImage 15(int) 2D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex2du4a): 154(ptr) Variable UniformConstant + 156: TypeImage 6(float) Cube array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTexcdf4a): 157(ptr) Variable UniformConstant + 159: TypeImage 11(int) Cube array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTexcdi4a): 160(ptr) Variable UniformConstant + 162: TypeImage 15(int) Cube array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTexcdu4a): 163(ptr) Variable UniformConstant + 165(c1): 17(ptr) Variable UniformConstant + 166(o1): 17(ptr) Variable UniformConstant + 167(o2): 13(ptr) Variable UniformConstant + 168(o3): 50(ptr) Variable UniformConstant + 169(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(psout): 107(ptr) Variable Function @@ -604,7 +621,11 @@ gl_FragCoord origin is upper left Store 113 111 116: 115(ptr) AccessChain 108(psout) 114 Store 116 110 - 119:106(PS_OUTPUT) Load 108(psout) - Store 118(@entryPointOutput) 119 + 119: 112(ptr) AccessChain 108(psout) 109 + 120: 23(fvec4) Load 119 + Store 118(Color) 120 + 123: 115(ptr) AccessChain 108(psout) 114 + 124: 6(float) Load 123 + Store 122(Depth) 124 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index fada8726..b574eb6a 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -131,10 +131,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Sequence -0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:69 Pos: direct index for structure (temp 4-component vector of float Position) +0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:69 Constant: +0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -305,10 +309,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:69 Sequence -0:69 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:69 Pos: direct index for structure (temp 4-component vector of float Position) +0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:69 Constant: +0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -345,14 +353,14 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 164 +// Id's are bound by 163 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 115 163 + EntryPoint Vertex 4 "main" 115 Name 4 "main" Name 9 "g_tTex1df4" Name 14 "c2" @@ -369,26 +377,25 @@ Shader version: 450 Name 106 "VS_OUTPUT" MemberName 106(VS_OUTPUT) 0 "Pos" Name 108 "vsout" - Name 115 "@entryPointOutput" - Name 120 "g_sSamp" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTex1df4a" - Name 135 "g_tTex1di4a" - Name 138 "g_tTex1du4a" - Name 141 "g_tTex2df4a" - Name 144 "g_tTex2di4a" - Name 147 "g_tTex2du4a" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" - Name 157 "c1" - Name 158 "o1" - Name 159 "o2" - Name 160 "o3" - Name 161 "o4" - Name 163 "Pos" + Name 115 "Pos" + Name 121 "g_sSamp" + Name 124 "g_tTexcdf4" + Name 127 "g_tTexcdi4" + Name 130 "g_tTexcdu4" + Name 133 "g_tTex1df4a" + Name 136 "g_tTex1di4a" + Name 139 "g_tTex1du4a" + Name 142 "g_tTex2df4a" + Name 145 "g_tTex2di4a" + Name 148 "g_tTex2du4a" + Name 151 "g_tTexcdf4a" + Name 154 "g_tTexcdi4a" + Name 157 "g_tTexcdu4a" + Name 158 "c1" + Name 159 "o1" + Name 160 "o2" + Name 161 "o3" + Name 162 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 27(g_tTex1di4) DescriptorSet 0 @@ -400,21 +407,21 @@ Shader version: 450 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position - Decorate 120(g_sSamp) DescriptorSet 0 - Decorate 120(g_sSamp) Binding 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 135(g_tTex1di4a) DescriptorSet 0 - Decorate 138(g_tTex1du4a) DescriptorSet 0 - Decorate 141(g_tTex2df4a) DescriptorSet 0 - Decorate 144(g_tTex2di4a) DescriptorSet 0 - Decorate 147(g_tTex2du4a) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 - Decorate 163(Pos) BuiltIn Position + Decorate 115(Pos) BuiltIn Position + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 + Decorate 124(g_tTexcdf4) DescriptorSet 0 + Decorate 127(g_tTexcdi4) DescriptorSet 0 + Decorate 130(g_tTexcdu4) DescriptorSet 0 + Decorate 133(g_tTex1df4a) DescriptorSet 0 + Decorate 136(g_tTex1di4a) DescriptorSet 0 + Decorate 139(g_tTex1du4a) DescriptorSet 0 + Decorate 142(g_tTex2df4a) DescriptorSet 0 + Decorate 145(g_tTex2di4a) DescriptorSet 0 + Decorate 148(g_tTex2du4a) DescriptorSet 0 + Decorate 151(g_tTexcdf4a) DescriptorSet 0 + Decorate 154(g_tTexcdi4a) DescriptorSet 0 + Decorate 157(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -469,54 +476,52 @@ Shader version: 450 110: 6(float) Constant 0 111: 23(fvec4) ConstantComposite 110 110 110 110 112: TypePointer Function 23(fvec4) - 114: TypePointer Output 106(VS_OUTPUT) -115(@entryPointOutput): 114(ptr) Variable Output - 118: TypeSampler - 119: TypePointer UniformConstant 118 - 120(g_sSamp): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 11(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 15(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1df4a): 131(ptr) Variable UniformConstant - 133: TypeImage 11(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1di4a): 134(ptr) Variable UniformConstant - 136: TypeImage 15(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1du4a): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 11(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 15(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 11(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 15(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant - 157(c1): 17(ptr) Variable UniformConstant - 158(o1): 17(ptr) Variable UniformConstant - 159(o2): 13(ptr) Variable UniformConstant - 160(o3): 50(ptr) Variable UniformConstant - 161(o4): 80(ptr) Variable UniformConstant - 162: TypePointer Output 23(fvec4) - 163(Pos): 162(ptr) Variable Output + 114: TypePointer Output 23(fvec4) + 115(Pos): 114(ptr) Variable Output + 119: TypeSampler + 120: TypePointer UniformConstant 119 + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) Cube sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTexcdf4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdi4): 126(ptr) Variable UniformConstant + 128: TypeImage 15(int) Cube sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTexcdu4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 1D array sampled format:Unknown + 132: TypePointer UniformConstant 131 +133(g_tTex1df4a): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 1D array sampled format:Unknown + 135: TypePointer UniformConstant 134 +136(g_tTex1di4a): 135(ptr) Variable UniformConstant + 137: TypeImage 15(int) 1D array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTex1du4a): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 2D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex2df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 2D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex2di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 15(int) 2D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex2du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdf4a): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTexcdi4a): 153(ptr) Variable UniformConstant + 155: TypeImage 15(int) Cube array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTexcdu4a): 156(ptr) Variable UniformConstant + 158(c1): 17(ptr) Variable UniformConstant + 159(o1): 17(ptr) Variable UniformConstant + 160(o2): 13(ptr) Variable UniformConstant + 161(o3): 50(ptr) Variable UniformConstant + 162(o4): 80(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(vsout): 107(ptr) Variable Function @@ -576,7 +581,8 @@ Shader version: 450 105: 43(ivec4) ImageFetch 100 102 Lod 104 113: 112(ptr) AccessChain 108(vsout) 109 Store 113 111 - 116:106(VS_OUTPUT) Load 108(vsout) - Store 115(@entryPointOutput) 116 + 116: 112(ptr) AccessChain 108(vsout) 109 + 117: 23(fvec4) Load 116 + Store 115(Pos) 117 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 86acd71f..2b02aeec 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -40,10 +40,20 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float FragDepth) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Constant: +0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -106,10 +116,20 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:37 Sequence -0:37 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float FragDepth) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Constant: +0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects 0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) @@ -129,13 +149,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 75 +// Id's are bound by 76 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 72 74 + EntryPoint Fragment 4 "main" 55 59 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -149,25 +169,24 @@ gl_FragCoord origin is upper left MemberName 44(PS_OUTPUT) 0 "Color" MemberName 44(PS_OUTPUT) 1 "Depth" Name 46 "psout" - Name 55 "@entryPointOutput" - Name 58 "g_tTexbf4_test" - Name 61 "c2" - Name 64 "c3" - Name 66 "c4" - Name 67 "o1" - Name 68 "o2" - Name 69 "o3" - Name 70 "o4" - Name 72 "Color" - Name 74 "Depth" + Name 55 "Color" + Name 59 "Depth" + Name 63 "g_tTexbf4_test" + Name 66 "c2" + Name 69 "c3" + Name 71 "c4" + Name 72 "o1" + Name 73 "o2" + Name 74 "o3" + Name 75 "o4" Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 58(g_tTexbf4_test) DescriptorSet 0 - Decorate 58(g_tTexbf4_test) Binding 0 - Decorate 72(Color) Location 0 - Decorate 74(Depth) BuiltIn FragDepth + Decorate 55(Color) Location 0 + Decorate 59(Depth) BuiltIn FragDepth + Decorate 63(g_tTexbf4_test) DescriptorSet 0 + Decorate 63(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -200,25 +219,23 @@ gl_FragCoord origin is upper left 49: 7(fvec4) ConstantComposite 48 48 48 48 51: 15(int) Constant 1 52: TypePointer Function 6(float) - 54: TypePointer Output 44(PS_OUTPUT) -55(@entryPointOutput): 54(ptr) Variable Output -58(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 59: TypeVector 15(int) 2 - 60: TypePointer UniformConstant 59(ivec2) - 61(c2): 60(ptr) Variable UniformConstant - 62: TypeVector 15(int) 3 - 63: TypePointer UniformConstant 62(ivec3) - 64(c3): 63(ptr) Variable UniformConstant - 65: TypePointer UniformConstant 21(ivec4) - 66(c4): 65(ptr) Variable UniformConstant - 67(o1): 16(ptr) Variable UniformConstant - 68(o2): 60(ptr) Variable UniformConstant - 69(o3): 63(ptr) Variable UniformConstant - 70(o4): 65(ptr) Variable UniformConstant - 71: TypePointer Output 7(fvec4) - 72(Color): 71(ptr) Variable Output - 73: TypePointer Output 6(float) - 74(Depth): 73(ptr) Variable Output + 54: TypePointer Output 7(fvec4) + 55(Color): 54(ptr) Variable Output + 58: TypePointer Output 6(float) + 59(Depth): 58(ptr) Variable Output +63(g_tTexbf4_test): 12(ptr) Variable UniformConstant + 64: TypeVector 15(int) 2 + 65: TypePointer UniformConstant 64(ivec2) + 66(c2): 65(ptr) Variable UniformConstant + 67: TypeVector 15(int) 3 + 68: TypePointer UniformConstant 67(ivec3) + 69(c3): 68(ptr) Variable UniformConstant + 70: TypePointer UniformConstant 21(ivec4) + 71(c4): 70(ptr) Variable UniformConstant + 72(o1): 16(ptr) Variable UniformConstant + 73(o2): 65(ptr) Variable UniformConstant + 74(o3): 68(ptr) Variable UniformConstant + 75(o4): 70(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -244,7 +261,11 @@ gl_FragCoord origin is upper left Store 50 49 53: 52(ptr) AccessChain 46(psout) 51 Store 53 48 - 56:44(PS_OUTPUT) Load 46(psout) - Store 55(@entryPointOutput) 56 + 56: 8(ptr) AccessChain 46(psout) 47 + 57: 7(fvec4) Load 56 + Store 55(Color) 57 + 60: 52(ptr) AccessChain 46(psout) 51 + 61: 6(float) Load 60 + Store 59(Depth) 61 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 82f00d24..5ac4e8d2 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -148,10 +148,20 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float FragDepth) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -340,10 +350,20 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:75 Sequence -0:75 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:75 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:75 Color: direct index for structure (temp 4-component vector of float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:75 Depth: direct index for structure (temp float FragDepth) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Constant: +0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -381,7 +401,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 178 +// Id's are bound by 179 Capability Shader Capability ImageGatherExtended @@ -389,7 +409,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 175 177 + EntryPoint Fragment 4 "main" 130 134 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" @@ -411,24 +431,23 @@ gl_FragCoord origin is upper left MemberName 118(PS_OUTPUT) 0 "Color" MemberName 118(PS_OUTPUT) 1 "Depth" Name 120 "psout" - Name 130 "@entryPointOutput" - Name 135 "g_sSamp" - Name 138 "g_tTexcdf4" - Name 141 "g_tTexcdi4" - Name 144 "g_tTexcdu4" - Name 147 "g_tTex1df4a" - Name 150 "g_tTex1di4a" - Name 153 "g_tTex1du4a" - Name 156 "g_tTex2df4a" - Name 159 "g_tTex2di4a" - Name 162 "g_tTex2du4a" - Name 165 "g_tTexcdf4a" - Name 168 "g_tTexcdi4a" - Name 171 "g_tTexcdu4a" - Name 172 "c1" - Name 173 "o4" - Name 175 "Color" - Name 177 "Depth" + Name 130 "Color" + Name 134 "Depth" + Name 140 "g_sSamp" + Name 143 "g_tTexcdf4" + Name 146 "g_tTexcdi4" + Name 149 "g_tTexcdu4" + Name 152 "g_tTex1df4a" + Name 155 "g_tTex1di4a" + Name 158 "g_tTex1du4a" + Name 161 "g_tTex2df4a" + Name 164 "g_tTex2di4a" + Name 167 "g_tTex2du4a" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" + Name 177 "c1" + Name 178 "o4" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 Decorate 29(g_tTex1di4) DescriptorSet 0 @@ -440,22 +459,22 @@ gl_FragCoord origin is upper left Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 135(g_sSamp) DescriptorSet 0 - Decorate 135(g_sSamp) Binding 0 - Decorate 138(g_tTexcdf4) DescriptorSet 0 - Decorate 141(g_tTexcdi4) DescriptorSet 0 - Decorate 144(g_tTexcdu4) DescriptorSet 0 - Decorate 147(g_tTex1df4a) DescriptorSet 0 - Decorate 150(g_tTex1di4a) DescriptorSet 0 - Decorate 153(g_tTex1du4a) DescriptorSet 0 - Decorate 156(g_tTex2df4a) DescriptorSet 0 - Decorate 159(g_tTex2di4a) DescriptorSet 0 - Decorate 162(g_tTex2du4a) DescriptorSet 0 - Decorate 165(g_tTexcdf4a) DescriptorSet 0 - Decorate 168(g_tTexcdi4a) DescriptorSet 0 - Decorate 171(g_tTexcdu4a) DescriptorSet 0 - Decorate 175(Color) Location 0 - Decorate 177(Depth) BuiltIn FragDepth + Decorate 130(Color) Location 0 + Decorate 134(Depth) BuiltIn FragDepth + Decorate 140(g_sSamp) DescriptorSet 0 + Decorate 140(g_sSamp) Binding 0 + Decorate 143(g_tTexcdf4) DescriptorSet 0 + Decorate 146(g_tTexcdi4) DescriptorSet 0 + Decorate 149(g_tTexcdu4) DescriptorSet 0 + Decorate 152(g_tTex1df4a) DescriptorSet 0 + Decorate 155(g_tTex1di4a) DescriptorSet 0 + Decorate 158(g_tTex1du4a) DescriptorSet 0 + Decorate 161(g_tTex2df4a) DescriptorSet 0 + Decorate 164(g_tTex2di4a) DescriptorSet 0 + Decorate 167(g_tTex2du4a) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -515,53 +534,51 @@ gl_FragCoord origin is upper left 124: TypePointer Function 25(fvec4) 126: 11(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 118(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output - 133: TypeSampler - 134: TypePointer UniformConstant 133 - 135(g_sSamp): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTexcdf4): 137(ptr) Variable UniformConstant - 139: TypeImage 11(int) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdi4): 140(ptr) Variable UniformConstant - 142: TypeImage 15(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdu4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) 1D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex1df4a): 146(ptr) Variable UniformConstant - 148: TypeImage 11(int) 1D array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTex1di4a): 149(ptr) Variable UniformConstant - 151: TypeImage 15(int) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1du4a): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) 2D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex2df4a): 155(ptr) Variable UniformConstant - 157: TypeImage 11(int) 2D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex2di4a): 158(ptr) Variable UniformConstant - 160: TypeImage 15(int) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2du4a): 161(ptr) Variable UniformConstant - 163: TypeImage 6(float) Cube array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTexcdf4a): 164(ptr) Variable UniformConstant - 166: TypeImage 11(int) Cube array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTexcdi4a): 167(ptr) Variable UniformConstant - 169: TypeImage 15(int) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdu4a): 170(ptr) Variable UniformConstant - 172(c1): 17(ptr) Variable UniformConstant - 173(o4): 88(ptr) Variable UniformConstant - 174: TypePointer Output 25(fvec4) - 175(Color): 174(ptr) Variable Output - 176: TypePointer Output 6(float) - 177(Depth): 176(ptr) Variable Output + 129: TypePointer Output 25(fvec4) + 130(Color): 129(ptr) Variable Output + 133: TypePointer Output 6(float) + 134(Depth): 133(ptr) Variable Output + 138: TypeSampler + 139: TypePointer UniformConstant 138 + 140(g_sSamp): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) Cube sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTexcdf4): 142(ptr) Variable UniformConstant + 144: TypeImage 11(int) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdi4): 145(ptr) Variable UniformConstant + 147: TypeImage 15(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdu4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 1D array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTex1df4a): 151(ptr) Variable UniformConstant + 153: TypeImage 11(int) 1D array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTex1di4a): 154(ptr) Variable UniformConstant + 156: TypeImage 15(int) 1D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex1du4a): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) 2D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex2df4a): 160(ptr) Variable UniformConstant + 162: TypeImage 11(int) 2D array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTex2di4a): 163(ptr) Variable UniformConstant + 165: TypeImage 15(int) 2D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex2du4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 11(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 15(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant + 177(c1): 17(ptr) Variable UniformConstant + 178(o4): 88(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 120(psout): 119(ptr) Variable Function @@ -632,7 +649,11 @@ gl_FragCoord origin is upper left Store 125 123 128: 127(ptr) AccessChain 120(psout) 126 Store 128 122 - 131:118(PS_OUTPUT) Load 120(psout) - Store 130(@entryPointOutput) 131 + 131: 124(ptr) AccessChain 120(psout) 121 + 132: 25(fvec4) Load 131 + Store 130(Color) 132 + 135: 127(ptr) AccessChain 120(psout) 126 + 136: 6(float) Load 135 + Store 134(Depth) 136 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index e3230f6c..ce5da11a 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -112,10 +112,20 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Sequence -0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:68 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:68 Color: direct index for structure (temp 4-component vector of float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 0 (const int) +0:68 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,10 +278,20 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:68 Sequence -0:68 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:68 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:68 Color: direct index for structure (temp 4-component vector of float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 0 (const int) +0:68 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:68 Depth: direct index for structure (temp float FragDepth) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Constant: +0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -309,7 +329,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 156 Capability Shader Capability ImageGatherExtended @@ -317,7 +337,7 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 152 154 + EntryPoint Fragment 4 "main" 96 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" @@ -334,29 +354,28 @@ gl_FragCoord origin is upper left MemberName 84(PS_OUTPUT) 0 "Color" MemberName 84(PS_OUTPUT) 1 "Depth" Name 86 "psout" - Name 96 "@entryPointOutput" - Name 101 "g_sSamp" - Name 104 "g_tTex1df4" - Name 107 "g_tTex1di4" - Name 110 "g_tTex1du4" - Name 113 "g_tTex2df4" - Name 116 "g_tTex2di4" - Name 119 "g_tTex2du4" - Name 122 "g_tTex3df4" - Name 125 "g_tTex3di4" - Name 128 "g_tTex3du4" - Name 131 "g_tTexcdf4" - Name 134 "g_tTexcdi4" - Name 137 "g_tTexcdu4" - Name 140 "g_tTexcdf4a" - Name 143 "g_tTexcdi4a" - Name 146 "g_tTexcdu4a" - Name 147 "c1" - Name 148 "c2" - Name 149 "o3" - Name 150 "o4" - Name 152 "Color" - Name 154 "Depth" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" + Name 152 "c1" + Name 153 "c2" + Name 154 "o3" + Name 155 "o4" Decorate 9(g_tTex1df4a) DescriptorSet 0 Decorate 29(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1du4a) DescriptorSet 0 @@ -364,26 +383,26 @@ gl_FragCoord origin is upper left Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 101(g_sSamp) DescriptorSet 0 - Decorate 101(g_sSamp) Binding 0 - Decorate 104(g_tTex1df4) DescriptorSet 0 - Decorate 104(g_tTex1df4) Binding 0 - Decorate 107(g_tTex1di4) DescriptorSet 0 - Decorate 110(g_tTex1du4) DescriptorSet 0 - Decorate 113(g_tTex2df4) DescriptorSet 0 - Decorate 116(g_tTex2di4) DescriptorSet 0 - Decorate 119(g_tTex2du4) DescriptorSet 0 - Decorate 122(g_tTex3df4) DescriptorSet 0 - Decorate 125(g_tTex3di4) DescriptorSet 0 - Decorate 128(g_tTex3du4) DescriptorSet 0 - Decorate 131(g_tTexcdf4) DescriptorSet 0 - Decorate 134(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdu4) DescriptorSet 0 - Decorate 140(g_tTexcdf4a) DescriptorSet 0 - Decorate 143(g_tTexcdi4a) DescriptorSet 0 - Decorate 146(g_tTexcdu4a) DescriptorSet 0 - Decorate 152(Color) Location 0 - Decorate 154(Depth) BuiltIn FragDepth + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 109(g_tTex1df4) Binding 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -430,64 +449,62 @@ gl_FragCoord origin is upper left 90: TypePointer Function 25(fvec4) 92: 11(int) Constant 1 93: TypePointer Function 6(float) - 95: TypePointer Output 84(PS_OUTPUT) -96(@entryPointOutput): 95(ptr) Variable Output - 99: TypeSampler - 100: TypePointer UniformConstant 99 - 101(g_sSamp): 100(ptr) Variable UniformConstant - 102: TypeImage 6(float) 1D sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTex1df4): 103(ptr) Variable UniformConstant - 105: TypeImage 11(int) 1D sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTex1di4): 106(ptr) Variable UniformConstant - 108: TypeImage 18(int) 1D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex1du4): 109(ptr) Variable UniformConstant - 111: TypeImage 6(float) 2D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex2df4): 112(ptr) Variable UniformConstant - 114: TypeImage 11(int) 2D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex2di4): 115(ptr) Variable UniformConstant - 117: TypeImage 18(int) 2D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex2du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) 3D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex3df4): 121(ptr) Variable UniformConstant - 123: TypeImage 11(int) 3D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex3di4): 124(ptr) Variable UniformConstant - 126: TypeImage 18(int) 3D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex3du4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTexcdf4): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTexcdi4): 133(ptr) Variable UniformConstant - 135: TypeImage 18(int) Cube sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTexcdu4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) Cube array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTexcdf4a): 139(ptr) Variable UniformConstant - 141: TypeImage 11(int) Cube array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTexcdi4a): 142(ptr) Variable UniformConstant - 144: TypeImage 18(int) Cube array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTexcdu4a): 145(ptr) Variable UniformConstant - 147(c1): 20(ptr) Variable UniformConstant - 148(c2): 60(ptr) Variable UniformConstant - 149(o3): 13(ptr) Variable UniformConstant - 150(o4): 53(ptr) Variable UniformConstant - 151: TypePointer Output 25(fvec4) - 152(Color): 151(ptr) Variable Output - 153: TypePointer Output 6(float) - 154(Depth): 153(ptr) Variable Output + 95: TypePointer Output 25(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler + 105: TypePointer UniformConstant 104 + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 18(int) 1D sampled format:Unknown + 114: TypePointer UniformConstant 113 + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D sampled format:Unknown + 120: TypePointer UniformConstant 119 + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 18(int) 2D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 18(int) 3D sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 18(int) Cube sampled format:Unknown + 141: TypePointer UniformConstant 140 + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 18(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant + 152(c1): 20(ptr) Variable UniformConstant + 153(c2): 60(ptr) Variable UniformConstant + 154(o3): 13(ptr) Variable UniformConstant + 155(o4): 53(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 86(psout): 85(ptr) Variable Function @@ -537,7 +554,11 @@ gl_FragCoord origin is upper left Store 91 89 94: 93(ptr) AccessChain 86(psout) 92 Store 94 88 - 97:84(PS_OUTPUT) Load 86(psout) - Store 96(@entryPointOutput) 97 + 97: 90(ptr) AccessChain 86(psout) 87 + 98: 25(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 86(psout) 92 + 102: 6(float) Load 101 + Store 100(Depth) 102 Return FunctionEnd diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index d8eb9de3..7acaa717 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -108,10 +108,14 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'idx' (uniform int) @@ -231,10 +235,14 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'idx' (uniform int) @@ -243,12 +251,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 76 +// Id's are bound by 75 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 75 + EntryPoint Fragment 4 "main" 71 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "e1_00" @@ -274,9 +282,8 @@ gl_FragCoord origin is upper left Name 62 "PS_OUTPUT" MemberName 62(PS_OUTPUT) 0 "Color" Name 64 "psout" - Name 71 "@entryPointOutput" - Name 75 "Color" - Decorate 75(Color) Location 0 + Name 71 "Color" + Decorate 71(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -315,10 +322,8 @@ gl_FragCoord origin is upper left 63: TypePointer Function 62(PS_OUTPUT) 65: 46(int) Constant 0 68: TypePointer Function 61(fvec4) - 70: TypePointer Output 62(PS_OUTPUT) -71(@entryPointOutput): 70(ptr) Variable Output - 74: TypePointer Output 61(fvec4) - 75(Color): 74(ptr) Variable Output + 70: TypePointer Output 61(fvec4) + 71(Color): 70(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(e1_00): 7(ptr) Variable Function @@ -368,7 +373,8 @@ gl_FragCoord origin is upper left 67: 61(fvec4) CompositeConstruct 66 66 66 66 69: 68(ptr) AccessChain 64(psout) 65 Store 69 67 - 72:62(PS_OUTPUT) Load 64(psout) - Store 71(@entryPointOutput) 72 + 72: 68(ptr) AccessChain 64(psout) 65 + 73: 61(fvec4) Load 72 + Store 71(Color) 73 Return FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 787a503a..168065bb 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -58,10 +58,14 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:19 color: direct index for structure (temp 4-component vector of float) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Constant: +0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -129,22 +133,26 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:19 color: direct index for structure (temp 4-component vector of float) +0:19 'ps_output' (temp structure{temp 4-component vector of float color}) +0:19 Constant: +0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 45 +// Id's are bound by 44 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 40 44 + EntryPoint Fragment 4 "main" 40 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -159,9 +167,8 @@ gl_FragCoord origin is upper left Name 30 "PS_OUTPUT" MemberName 30(PS_OUTPUT) 0 "color" Name 32 "ps_output" - Name 40 "@entryPointOutput" - Name 44 "color" - Decorate 44(color) Location 0 + Name 40 "color" + Decorate 40(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -183,10 +190,8 @@ gl_FragCoord origin is upper left 31: TypePointer Function 30(PS_OUTPUT) 33: 19(int) Constant 0 37: TypePointer Function 29(fvec4) - 39: TypePointer Output 30(PS_OUTPUT) -40(@entryPointOutput): 39(ptr) Variable Output - 43: TypePointer Output 29(fvec4) - 44(color): 43(ptr) Variable Output + 39: TypePointer Output 29(fvec4) + 40(color): 39(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -213,7 +218,8 @@ gl_FragCoord origin is upper left 36: 29(fvec4) CompositeConstruct 35 35 35 35 38: 37(ptr) AccessChain 32(ps_output) 33 Store 38 36 - 41:30(PS_OUTPUT) Load 32(ps_output) - Store 40(@entryPointOutput) 41 + 41: 37(ptr) AccessChain 32(ps_output) 33 + 42: 29(fvec4) Load 41 + Store 40(color) 42 Return FunctionEnd diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index fac24107..8bd07c06 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -31,10 +31,20 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Sequence -0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:129 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:129 Color: direct index for structure (temp 4-component vector of float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:129 Depth: direct index for structure (temp float FragDepth) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Constant: +0:129 1 (const int) 0:129 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -76,10 +86,20 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:129 Sequence -0:129 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:129 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:129 Color: direct index for structure (temp 4-component vector of float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Constant: +0:129 0 (const int) +0:129 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:129 Depth: direct index for structure (temp float FragDepth) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Constant: +0:129 1 (const int) 0:129 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -87,12 +107,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 34 +// Id's are bound by 35 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 27 31 33 + EntryPoint Fragment 4 "main" 27 31 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "thisLineIs" @@ -100,12 +120,11 @@ gl_FragCoord origin is upper left MemberName 12(PS_OUTPUT) 0 "Color" MemberName 12(PS_OUTPUT) 1 "Depth" Name 14 "psout" - Name 27 "@entryPointOutput" - Name 31 "Color" - Name 33 "Depth" + Name 27 "Color" + Name 31 "Depth" MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 31(Color) Location 0 - Decorate 33(Depth) BuiltIn FragDepth + Decorate 27(Color) Location 0 + Decorate 31(Depth) BuiltIn FragDepth 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -121,12 +140,10 @@ gl_FragCoord origin is upper left 21: TypePointer Function 11(fvec4) 23: 6(int) Constant 1 24: TypePointer Function 10(float) - 26: TypePointer Output 12(PS_OUTPUT) -27(@entryPointOutput): 26(ptr) Variable Output - 30: TypePointer Output 11(fvec4) - 31(Color): 30(ptr) Variable Output - 32: TypePointer Output 10(float) - 33(Depth): 32(ptr) Variable Output + 26: TypePointer Output 11(fvec4) + 27(Color): 26(ptr) Variable Output + 30: TypePointer Output 10(float) + 31(Depth): 30(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(thisLineIs): 7(ptr) Variable Function @@ -139,7 +156,11 @@ gl_FragCoord origin is upper left Store 22 20 25: 24(ptr) AccessChain 14(psout) 23 Store 25 19 - 28:12(PS_OUTPUT) Load 14(psout) - Store 27(@entryPointOutput) 28 + 28: 21(ptr) AccessChain 14(psout) 15 + 29: 11(fvec4) Load 28 + Store 27(Color) 29 + 32: 24(ptr) AccessChain 14(psout) 23 + 33: 10(float) Load 32 + Store 31(Depth) 33 Return FunctionEnd diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 4cbf8b77..d76dc3f0 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -19,10 +19,14 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Sequence -0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:12 move second child to first child (noContraction temp 4-component vector of float) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:12 color: direct index for structure (noContraction temp 4-component vector of float) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Constant: +0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -52,10 +56,14 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:12 Sequence -0:12 move second child to first child (temp structure{noContraction temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{noContraction temp 4-component vector of float color}) -0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:12 move second child to first child (noContraction temp 4-component vector of float) +0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:12 color: direct index for structure (noContraction temp 4-component vector of float) +0:12 'ps_output' (temp structure{noContraction temp 4-component vector of float color}) +0:12 Constant: +0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects 0:? 'precisefloat' (noContraction global float) @@ -63,12 +71,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 33 +// Id's are bound by 32 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 26 32 + EntryPoint Fragment 4 "main" 26 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 13 "MyFunction(f1;vf3;" @@ -77,10 +85,9 @@ gl_FragCoord origin is upper left Name 16 "PS_OUTPUT" MemberName 16(PS_OUTPUT) 0 "color" Name 18 "ps_output" - Name 26 "@entryPointOutput" - Name 30 "precisefloat" - Name 32 "color" - Decorate 32(color) Location 0 + Name 26 "color" + Name 31 "precisefloat" + Decorate 26(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -96,19 +103,18 @@ gl_FragCoord origin is upper left 21: 6(float) Constant 1065353216 22: 15(fvec4) ConstantComposite 21 21 21 21 23: TypePointer Function 15(fvec4) - 25: TypePointer Output 16(PS_OUTPUT) -26(@entryPointOutput): 25(ptr) Variable Output - 29: TypePointer Private 6(float) -30(precisefloat): 29(ptr) Variable Private - 31: TypePointer Output 15(fvec4) - 32(color): 31(ptr) Variable Output + 25: TypePointer Output 15(fvec4) + 26(color): 25(ptr) Variable Output + 30: TypePointer Private 6(float) +31(precisefloat): 30(ptr) Variable Private 4(main): 2 Function None 3 5: Label 18(ps_output): 17(ptr) Variable Function 24: 23(ptr) AccessChain 18(ps_output) 20 Store 24 22 - 27:16(PS_OUTPUT) Load 18(ps_output) - Store 26(@entryPointOutput) 27 + 27: 23(ptr) AccessChain 18(ps_output) 20 + 28: 15(fvec4) Load 27 + Store 26(color) 28 Return FunctionEnd 13(MyFunction(f1;vf3;): 2 Function None 10 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 1e20680f..3f1c7886 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -496,10 +496,14 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Sequence -0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:200 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:200 Color: direct index for structure (temp 4-component vector of float) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Constant: +0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -1015,10 +1019,14 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:200 Sequence -0:200 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:200 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:200 Color: direct index for structure (temp 4-component vector of float) +0:200 'psout' (temp structure{temp 4-component vector of float Color}) +0:200 Constant: +0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects 0:? 'i3' (uniform 3-component vector of int) @@ -1035,13 +1043,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 482 +// Id's are bound by 481 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 477 481 + EntryPoint Fragment 4 "main" 477 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1130,9 +1138,8 @@ gl_FragCoord origin is upper left Name 471 "PS_OUTPUT" MemberName 471(PS_OUTPUT) 0 "Color" Name 473 "psout" - Name 477 "@entryPointOutput" - Name 481 "Color" - Decorate 481(Color) Location 0 + Name 477 "Color" + Decorate 477(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1203,10 +1210,8 @@ gl_FragCoord origin is upper left 465: 6(float) Constant 1080452710 471(PS_OUTPUT): TypeStruct 462(fvec4) 472: TypePointer Function 471(PS_OUTPUT) - 476: TypePointer Output 471(PS_OUTPUT) -477(@entryPointOutput): 476(ptr) Variable Output - 480: TypePointer Output 462(fvec4) - 481(Color): 480(ptr) Variable Output + 476: TypePointer Output 462(fvec4) + 477(Color): 476(ptr) Variable Output 4(main): 2 Function None 3 5: Label 252(r00): 8(ptr) Variable Function @@ -1472,8 +1477,9 @@ gl_FragCoord origin is upper left 474: 462(fvec4) Load 464(outval) 475: 463(ptr) AccessChain 473(psout) 149 Store 475 474 - 478:471(PS_OUTPUT) Load 473(psout) - Store 477(@entryPointOutput) 478 + 478: 463(ptr) AccessChain 473(psout) 149 + 479: 462(fvec4) Load 478 + Store 477(Color) 479 Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index d5499257..e35a9a42 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -121,10 +121,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -267,10 +277,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -289,14 +309,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 138 +// Id's are bound by 139 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 135 137 + EntryPoint Fragment 4 "main" 130 134 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -322,10 +342,9 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 130 "@entryPointOutput" - Name 133 "g_tTex1df4a" - Name 135 "Color" - Name 137 "Depth" + Name 130 "Color" + Name 134 "Depth" + Name 138 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -339,10 +358,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1df4a) Binding 1 - Decorate 135(Color) Location 0 - Decorate 137(Depth) BuiltIn FragDepth + Decorate 130(Color) Location 0 + Decorate 134(Depth) BuiltIn FragDepth + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -420,13 +439,11 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 25(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 120(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output -133(g_tTex1df4a): 11(ptr) Variable UniformConstant - 134: TypePointer Output 7(fvec4) - 135(Color): 134(ptr) Variable Output - 136: TypePointer Output 6(float) - 137(Depth): 136(ptr) Variable Output + 129: TypePointer Output 7(fvec4) + 130(Color): 129(ptr) Variable Output + 133: TypePointer Output 6(float) + 134(Depth): 133(ptr) Variable Output +138(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -488,7 +505,11 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 131:120(PS_OUTPUT) Load 122(psout) - Store 130(@entryPointOutput) 131 + 131: 8(ptr) AccessChain 122(psout) 123 + 132: 7(fvec4) Load 131 + Store 130(Color) 132 + 135: 127(ptr) AccessChain 122(psout) 126 + 136: 6(float) Load 135 + Store 134(Depth) 136 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index bb73a97e..2e79f621 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -231,10 +231,20 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Sequence -0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:89 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:89 Color: direct index for structure (temp 4-component vector of float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:89 Depth: direct index for structure (temp float FragDepth) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Constant: +0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -490,10 +500,20 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:89 Sequence -0:89 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:89 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:89 Color: direct index for structure (temp 4-component vector of float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:89 Depth: direct index for structure (temp float FragDepth) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Constant: +0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -517,13 +537,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 190 +// Id's are bound by 191 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 187 189 + EntryPoint Fragment 4 "main" 180 184 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -569,12 +589,11 @@ gl_FragCoord origin is upper left MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 180 "@entryPointOutput" - Name 183 "g_sSamp2d" - Name 184 "g_sSamp2D_b" - Name 185 "g_tTex1df4a" - Name 187 "Color" - Name 189 "Depth" + Name 180 "Color" + Name 184 "Depth" + Name 188 "g_sSamp2d" + Name 189 "g_sSamp2D_b" + Name 190 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -591,12 +610,12 @@ gl_FragCoord origin is upper left Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 183(g_sSamp2d) DescriptorSet 0 - Decorate 184(g_sSamp2D_b) DescriptorSet 0 - Decorate 185(g_tTex1df4a) DescriptorSet 0 - Decorate 185(g_tTex1df4a) Binding 1 - Decorate 187(Color) Location 0 - Decorate 189(Depth) BuiltIn FragDepth + Decorate 180(Color) Location 0 + Decorate 184(Depth) BuiltIn FragDepth + Decorate 188(g_sSamp2d) DescriptorSet 0 + Decorate 189(g_sSamp2D_b) DescriptorSet 0 + Decorate 190(g_tTex1df4a) DescriptorSet 0 + Decorate 190(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -696,15 +715,13 @@ gl_FragCoord origin is upper left 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(PS_OUTPUT) -180(@entryPointOutput): 179(ptr) Variable Output - 183(g_sSamp2d): 44(ptr) Variable UniformConstant -184(g_sSamp2D_b): 44(ptr) Variable UniformConstant -185(g_tTex1df4a): 40(ptr) Variable UniformConstant - 186: TypePointer Output 36(fvec4) - 187(Color): 186(ptr) Variable Output - 188: TypePointer Output 35(float) - 189(Depth): 188(ptr) Variable Output + 179: TypePointer Output 36(fvec4) + 180(Color): 179(ptr) Variable Output + 183: TypePointer Output 35(float) + 184(Depth): 183(ptr) Variable Output + 188(g_sSamp2d): 44(ptr) Variable UniformConstant +189(g_sSamp2D_b): 44(ptr) Variable UniformConstant +190(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -809,7 +826,11 @@ gl_FragCoord origin is upper left Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 181:171(PS_OUTPUT) Load 173(psout) - Store 180(@entryPointOutput) 181 + 181: 37(ptr) AccessChain 173(psout) 23 + 182: 36(fvec4) Load 181 + Store 180(Color) 182 + 185: 177(ptr) AccessChain 173(psout) 10 + 186: 35(float) Load 185 + Store 184(Depth) 186 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index b241f6d1..9be83eb9 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -306,10 +316,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -331,13 +351,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 153 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 150 152 + EntryPoint Fragment 4 "main" 136 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -363,13 +383,12 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 136 "@entryPointOutput" - Name 139 "g_tTex1df4a" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" - Name 150 "Color" - Name 152 "Depth" + Name 136 "Color" + Name 140 "Depth" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -383,13 +402,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTex1df4a) Binding 1 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 - Decorate 150(Color) Location 0 - Decorate 152(Depth) BuiltIn FragDepth + Decorate 136(Color) Location 0 + Decorate 140(Depth) BuiltIn FragDepth + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -473,22 +492,20 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135: TypePointer Output 127(PS_OUTPUT) -136(@entryPointOutput): 135(ptr) Variable Output -139(g_tTex1df4a): 11(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 21(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 36(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant - 149: TypePointer Output 7(fvec4) - 150(Color): 149(ptr) Variable Output - 151: TypePointer Output 6(float) - 152(Depth): 151(ptr) Variable Output + 135: TypePointer Output 7(fvec4) + 136(Color): 135(ptr) Variable Output + 139: TypePointer Output 6(float) + 140(Depth): 139(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 21(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 36(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -550,7 +567,11 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 22 Store 134 130 - 137:127(PS_OUTPUT) Load 129(psout) - Store 136(@entryPointOutput) 137 + 137: 8(ptr) AccessChain 129(psout) 60 + 138: 7(fvec4) Load 137 + Store 136(Color) 138 + 141: 133(ptr) AccessChain 129(psout) 22 + 142: 6(float) Load 141 + Store 140(Depth) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index a2debf48..ae5aab5f 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -100,10 +100,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -222,10 +232,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -241,13 +261,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 111 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 107 109 + EntryPoint Fragment 4 "main" 102 106 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -267,10 +287,9 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 102 "@entryPointOutput" - Name 105 "g_tTex1df4a" - Name 107 "Color" - Name 109 "Depth" + Name 102 "Color" + Name 106 "Depth" + Name 110 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -281,10 +300,10 @@ gl_FragCoord origin is upper left Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 105(g_tTex1df4a) DescriptorSet 0 - Decorate 105(g_tTex1df4a) Binding 1 - Decorate 107(Color) Location 0 - Decorate 109(Depth) BuiltIn FragDepth + Decorate 102(Color) Location 0 + Decorate 106(Depth) BuiltIn FragDepth + Decorate 110(g_tTex1df4a) DescriptorSet 0 + Decorate 110(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -349,13 +368,11 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101: TypePointer Output 93(PS_OUTPUT) -102(@entryPointOutput): 101(ptr) Variable Output -105(g_tTex1df4a): 11(ptr) Variable UniformConstant - 106: TypePointer Output 7(fvec4) - 107(Color): 106(ptr) Variable Output - 108: TypePointer Output 6(float) - 109(Depth): 108(ptr) Variable Output + 101: TypePointer Output 7(fvec4) + 102(Color): 101(ptr) Variable Output + 105: TypePointer Output 6(float) + 106(Depth): 105(ptr) Variable Output +110(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -399,7 +416,11 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 39 Store 100 96 - 103:93(PS_OUTPUT) Load 95(psout) - Store 102(@entryPointOutput) 103 + 103: 8(ptr) AccessChain 95(psout) 25 + 104: 7(fvec4) Load 103 + Store 102(Color) 104 + 107: 99(ptr) AccessChain 95(psout) 39 + 108: 6(float) Load 107 + Store 106(Depth) 108 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 2bb30523..d80e6f1f 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -303,10 +313,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -325,14 +345,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 138 +// Id's are bound by 139 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 135 137 + EntryPoint Fragment 4 "main" 130 134 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -358,10 +378,9 @@ gl_FragCoord origin is upper left MemberName 120(PS_OUTPUT) 0 "Color" MemberName 120(PS_OUTPUT) 1 "Depth" Name 122 "psout" - Name 130 "@entryPointOutput" - Name 133 "g_tTex1df4a" - Name 135 "Color" - Name 137 "Depth" + Name 130 "Color" + Name 134 "Depth" + Name 138 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -375,10 +394,10 @@ gl_FragCoord origin is upper left Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 133(g_tTex1df4a) Binding 1 - Decorate 135(Color) Location 0 - Decorate 137(Depth) BuiltIn FragDepth + Decorate 130(Color) Location 0 + Decorate 134(Depth) BuiltIn FragDepth + Decorate 138(g_tTex1df4a) DescriptorSet 0 + Decorate 138(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -456,13 +475,11 @@ gl_FragCoord origin is upper left 124: 7(fvec4) ConstantComposite 117 117 117 117 126: 26(int) Constant 1 127: TypePointer Function 6(float) - 129: TypePointer Output 120(PS_OUTPUT) -130(@entryPointOutput): 129(ptr) Variable Output -133(g_tTex1df4a): 11(ptr) Variable UniformConstant - 134: TypePointer Output 7(fvec4) - 135(Color): 134(ptr) Variable Output - 136: TypePointer Output 6(float) - 137(Depth): 136(ptr) Variable Output + 129: TypePointer Output 7(fvec4) + 130(Color): 129(ptr) Variable Output + 133: TypePointer Output 6(float) + 134(Depth): 133(ptr) Variable Output +138(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -524,7 +541,11 @@ gl_FragCoord origin is upper left Store 125 124 128: 127(ptr) AccessChain 122(psout) 126 Store 128 117 - 131:120(PS_OUTPUT) Load 122(psout) - Store 130(@entryPointOutput) 131 + 131: 8(ptr) AccessChain 122(psout) 123 + 132: 7(fvec4) Load 131 + Store 130(Color) 132 + 135: 127(ptr) AccessChain 122(psout) 126 + 136: 6(float) Load 135 + Store 134(Depth) 136 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 7c19be99..c462e479 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -169,10 +169,20 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float FragDepth) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -366,10 +376,20 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float FragDepth) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -391,13 +411,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 163 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 154 159 161 + EntryPoint Fragment 4 "main" 154 158 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -429,10 +449,9 @@ gl_FragCoord origin is upper left MemberName 143(PS_OUTPUT) 0 "Color" MemberName 143(PS_OUTPUT) 1 "Depth" Name 145 "psout" - Name 154 "@entryPointOutput" - Name 157 "g_tTex1df4a" - Name 159 "Color" - Name 161 "Depth" + Name 154 "Color" + Name 158 "Depth" + Name 162 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -449,10 +468,10 @@ gl_FragCoord origin is upper left Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 157(g_tTex1df4a) Binding 1 - Decorate 159(Color) Location 0 - Decorate 161(Depth) BuiltIn FragDepth + Decorate 154(Color) Location 0 + Decorate 158(Depth) BuiltIn FragDepth + Decorate 162(g_tTex1df4a) DescriptorSet 0 + Decorate 162(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -539,13 +558,11 @@ gl_FragCoord origin is upper left 148: 7(fvec4) ConstantComposite 147 147 147 147 150: 23(int) Constant 1 151: TypePointer Function 6(float) - 153: TypePointer Output 143(PS_OUTPUT) -154(@entryPointOutput): 153(ptr) Variable Output -157(g_tTex1df4a): 11(ptr) Variable UniformConstant - 158: TypePointer Output 7(fvec4) - 159(Color): 158(ptr) Variable Output - 160: TypePointer Output 6(float) - 161(Depth): 160(ptr) Variable Output + 153: TypePointer Output 7(fvec4) + 154(Color): 153(ptr) Variable Output + 157: TypePointer Output 6(float) + 158(Depth): 157(ptr) Variable Output +162(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -625,7 +642,11 @@ gl_FragCoord origin is upper left Store 149 148 152: 151(ptr) AccessChain 145(psout) 150 Store 152 147 - 155:143(PS_OUTPUT) Load 145(psout) - Store 154(@entryPointOutput) 155 + 155: 8(ptr) AccessChain 145(psout) 146 + 156: 7(fvec4) Load 155 + Store 154(Color) 156 + 159: 151(ptr) AccessChain 145(psout) 150 + 160: 6(float) Load 159 + Store 158(Depth) 160 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 57e32605..58a87fd2 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -157,10 +157,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -342,10 +352,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -367,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 153 +// Id's are bound by 154 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 136 150 152 + EntryPoint Fragment 4 "main" 136 140 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -399,13 +419,12 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 136 "@entryPointOutput" - Name 139 "g_tTex1df4a" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" - Name 150 "Color" - Name 152 "Depth" + Name 136 "Color" + Name 140 "Depth" + Name 144 "g_tTex1df4a" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -419,13 +438,13 @@ gl_FragCoord origin is upper left Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 139(g_tTex1df4a) DescriptorSet 0 - Decorate 139(g_tTex1df4a) Binding 1 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 - Decorate 150(Color) Location 0 - Decorate 152(Depth) BuiltIn FragDepth + Decorate 136(Color) Location 0 + Decorate 140(Depth) BuiltIn FragDepth + Decorate 144(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1df4a) Binding 1 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -509,22 +528,20 @@ gl_FragCoord origin is upper left 130: 6(float) Constant 1065353216 131: 7(fvec4) ConstantComposite 130 130 130 130 133: TypePointer Function 6(float) - 135: TypePointer Output 127(PS_OUTPUT) -136(@entryPointOutput): 135(ptr) Variable Output -139(g_tTex1df4a): 11(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 22(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 37(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant - 149: TypePointer Output 7(fvec4) - 150(Color): 149(ptr) Variable Output - 151: TypePointer Output 6(float) - 152(Depth): 151(ptr) Variable Output + 135: TypePointer Output 7(fvec4) + 136(Color): 135(ptr) Variable Output + 139: TypePointer Output 6(float) + 140(Depth): 139(ptr) Variable Output +144(g_tTex1df4a): 11(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 22(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 37(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -586,7 +603,11 @@ gl_FragCoord origin is upper left Store 132 131 134: 133(ptr) AccessChain 129(psout) 23 Store 134 130 - 137:127(PS_OUTPUT) Load 129(psout) - Store 136(@entryPointOutput) 137 + 137: 8(ptr) AccessChain 129(psout) 61 + 138: 7(fvec4) Load 137 + Store 136(Color) 138 + 141: 133(ptr) AccessChain 129(psout) 23 + 142: 6(float) Load 141 + Store 140(Depth) 142 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 5a5380c3..6a0d18d0 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -112,10 +112,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -246,10 +256,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -265,13 +285,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 111 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 102 107 109 + EntryPoint Fragment 4 "main" 102 106 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -291,10 +311,9 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 102 "@entryPointOutput" - Name 105 "g_tTex1df4a" - Name 107 "Color" - Name 109 "Depth" + Name 102 "Color" + Name 106 "Depth" + Name 110 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -305,10 +324,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 105(g_tTex1df4a) DescriptorSet 0 - Decorate 105(g_tTex1df4a) Binding 1 - Decorate 107(Color) Location 0 - Decorate 109(Depth) BuiltIn FragDepth + Decorate 102(Color) Location 0 + Decorate 106(Depth) BuiltIn FragDepth + Decorate 110(g_tTex1df4a) DescriptorSet 0 + Decorate 110(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -373,13 +392,11 @@ gl_FragCoord origin is upper left 96: 6(float) Constant 1065353216 97: 7(fvec4) ConstantComposite 96 96 96 96 99: TypePointer Function 6(float) - 101: TypePointer Output 93(PS_OUTPUT) -102(@entryPointOutput): 101(ptr) Variable Output -105(g_tTex1df4a): 11(ptr) Variable UniformConstant - 106: TypePointer Output 7(fvec4) - 107(Color): 106(ptr) Variable Output - 108: TypePointer Output 6(float) - 109(Depth): 108(ptr) Variable Output + 101: TypePointer Output 7(fvec4) + 102(Color): 101(ptr) Variable Output + 105: TypePointer Output 6(float) + 106(Depth): 105(ptr) Variable Output +110(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -423,7 +440,11 @@ gl_FragCoord origin is upper left Store 98 97 100: 99(ptr) AccessChain 95(psout) 40 Store 100 96 - 103:93(PS_OUTPUT) Load 95(psout) - Store 102(@entryPointOutput) 103 + 103: 8(ptr) AccessChain 95(psout) 26 + 104: 7(fvec4) Load 103 + Store 102(Color) 104 + 107: 99(ptr) AccessChain 95(psout) 40 + 108: 6(float) Load 107 + Store 106(Depth) 108 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 17f4743e..215fa8fd 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -148,10 +148,20 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:59 Depth: direct index for structure (temp float FragDepth) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -332,10 +342,20 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:59 Depth: direct index for structure (temp float FragDepth) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -365,14 +385,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 184 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 180 182 + EntryPoint Fragment 4 "main" 140 144 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -398,21 +418,20 @@ gl_FragCoord origin is upper left MemberName 129(PS_OUTPUT) 0 "Color" MemberName 129(PS_OUTPUT) 1 "Depth" Name 131 "psout" - Name 140 "@entryPointOutput" - Name 145 "g_tTex1df4" - Name 148 "g_tTex1di4" - Name 151 "g_tTex1du4" - Name 154 "g_tTex2df4" - Name 157 "g_tTex2di4" - Name 160 "g_tTex2du4" - Name 163 "g_tTex3df4" - Name 166 "g_tTex3di4" - Name 169 "g_tTex3du4" - Name 172 "g_tTexcdf4" - Name 175 "g_tTexcdi4" - Name 178 "g_tTexcdu4" - Name 180 "Color" - Name 182 "Depth" + Name 140 "Color" + Name 144 "Depth" + Name 150 "g_tTex1df4" + Name 153 "g_tTex1di4" + Name 156 "g_tTex1du4" + Name 159 "g_tTex2df4" + Name 162 "g_tTex2di4" + Name 165 "g_tTex2du4" + Name 168 "g_tTex3df4" + Name 171 "g_tTex3di4" + Name 174 "g_tTex3du4" + Name 177 "g_tTexcdf4" + Name 180 "g_tTexcdi4" + Name 183 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -425,21 +444,21 @@ gl_FragCoord origin is upper left Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 145(g_tTex1df4) DescriptorSet 0 - Decorate 145(g_tTex1df4) Binding 0 - Decorate 148(g_tTex1di4) DescriptorSet 0 - Decorate 151(g_tTex1du4) DescriptorSet 0 - Decorate 154(g_tTex2df4) DescriptorSet 0 - Decorate 157(g_tTex2di4) DescriptorSet 0 - Decorate 160(g_tTex2du4) DescriptorSet 0 - Decorate 163(g_tTex3df4) DescriptorSet 0 - Decorate 166(g_tTex3di4) DescriptorSet 0 - Decorate 169(g_tTex3du4) DescriptorSet 0 - Decorate 172(g_tTexcdf4) DescriptorSet 0 - Decorate 175(g_tTexcdi4) DescriptorSet 0 - Decorate 178(g_tTexcdu4) DescriptorSet 0 - Decorate 180(Color) Location 0 - Decorate 182(Depth) BuiltIn FragDepth + Decorate 140(Color) Location 0 + Decorate 144(Depth) BuiltIn FragDepth + Decorate 150(g_tTex1df4) DescriptorSet 0 + Decorate 150(g_tTex1df4) Binding 0 + Decorate 153(g_tTex1di4) DescriptorSet 0 + Decorate 156(g_tTex1du4) DescriptorSet 0 + Decorate 159(g_tTex2df4) DescriptorSet 0 + Decorate 162(g_tTex2di4) DescriptorSet 0 + Decorate 165(g_tTex2du4) DescriptorSet 0 + Decorate 168(g_tTex3df4) DescriptorSet 0 + Decorate 171(g_tTex3di4) DescriptorSet 0 + Decorate 174(g_tTex3du4) DescriptorSet 0 + Decorate 177(g_tTexcdf4) DescriptorSet 0 + Decorate 180(g_tTexcdi4) DescriptorSet 0 + Decorate 183(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -512,48 +531,46 @@ gl_FragCoord origin is upper left 134: 102(fvec4) ConstantComposite 133 133 133 133 135: TypePointer Function 102(fvec4) 137: 29(int) Constant 1 - 139: TypePointer Output 129(PS_OUTPUT) -140(@entryPointOutput): 139(ptr) Variable Output - 143: TypeImage 6(float) 1D sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTex1df4): 144(ptr) Variable UniformConstant - 146: TypeImage 29(int) 1D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex1di4): 147(ptr) Variable UniformConstant - 149: TypeImage 42(int) 1D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex1du4): 150(ptr) Variable UniformConstant - 152: TypeImage 6(float) 2D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex2df4): 153(ptr) Variable UniformConstant - 155: TypeImage 29(int) 2D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex2di4): 156(ptr) Variable UniformConstant - 158: TypeImage 42(int) 2D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex2du4): 159(ptr) Variable UniformConstant - 161: TypeImage 6(float) 3D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex3df4): 162(ptr) Variable UniformConstant - 164: TypeImage 29(int) 3D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex3di4): 165(ptr) Variable UniformConstant - 167: TypeImage 42(int) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3du4): 168(ptr) Variable UniformConstant - 170: TypeImage 6(float) Cube sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTexcdf4): 171(ptr) Variable UniformConstant - 173: TypeImage 29(int) Cube sampled format:Unknown - 174: TypePointer UniformConstant 173 - 175(g_tTexcdi4): 174(ptr) Variable UniformConstant - 176: TypeImage 42(int) Cube sampled format:Unknown - 177: TypePointer UniformConstant 176 - 178(g_tTexcdu4): 177(ptr) Variable UniformConstant - 179: TypePointer Output 102(fvec4) - 180(Color): 179(ptr) Variable Output - 181: TypePointer Output 6(float) - 182(Depth): 181(ptr) Variable Output + 139: TypePointer Output 102(fvec4) + 140(Color): 139(ptr) Variable Output + 143: TypePointer Output 6(float) + 144(Depth): 143(ptr) Variable Output + 148: TypeImage 6(float) 1D sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTex1df4): 149(ptr) Variable UniformConstant + 151: TypeImage 29(int) 1D sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTex1di4): 152(ptr) Variable UniformConstant + 154: TypeImage 42(int) 1D sampled format:Unknown + 155: TypePointer UniformConstant 154 + 156(g_tTex1du4): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) 2D sampled format:Unknown + 158: TypePointer UniformConstant 157 + 159(g_tTex2df4): 158(ptr) Variable UniformConstant + 160: TypeImage 29(int) 2D sampled format:Unknown + 161: TypePointer UniformConstant 160 + 162(g_tTex2di4): 161(ptr) Variable UniformConstant + 163: TypeImage 42(int) 2D sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTex2du4): 164(ptr) Variable UniformConstant + 166: TypeImage 6(float) 3D sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTex3df4): 167(ptr) Variable UniformConstant + 169: TypeImage 29(int) 3D sampled format:Unknown + 170: TypePointer UniformConstant 169 + 171(g_tTex3di4): 170(ptr) Variable UniformConstant + 172: TypeImage 42(int) 3D sampled format:Unknown + 173: TypePointer UniformConstant 172 + 174(g_tTex3du4): 173(ptr) Variable UniformConstant + 175: TypeImage 6(float) Cube sampled format:Unknown + 176: TypePointer UniformConstant 175 + 177(g_tTexcdf4): 176(ptr) Variable UniformConstant + 178: TypeImage 29(int) Cube sampled format:Unknown + 179: TypePointer UniformConstant 178 + 180(g_tTexcdi4): 179(ptr) Variable UniformConstant + 181: TypeImage 42(int) Cube sampled format:Unknown + 182: TypePointer UniformConstant 181 + 183(g_tTexcdu4): 182(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -630,7 +647,11 @@ gl_FragCoord origin is upper left Store 136 134 138: 7(ptr) AccessChain 131(psout) 137 Store 138 133 - 141:129(PS_OUTPUT) Load 131(psout) - Store 140(@entryPointOutput) 141 + 141: 135(ptr) AccessChain 131(psout) 132 + 142: 102(fvec4) Load 141 + Store 140(Color) 142 + 145: 7(ptr) AccessChain 131(psout) 137 + 146: 6(float) Load 145 + Store 144(Depth) 146 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 31814458..f6967c7c 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float FragDepth) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -314,10 +324,20 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float FragDepth) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -347,14 +367,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 181 +// Id's are bound by 182 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 178 180 + EntryPoint Fragment 4 "main" 138 142 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -380,21 +400,20 @@ gl_FragCoord origin is upper left MemberName 127(PS_OUTPUT) 0 "Color" MemberName 127(PS_OUTPUT) 1 "Depth" Name 129 "psout" - Name 138 "@entryPointOutput" - Name 143 "g_tTex3df4" - Name 146 "g_tTex3di4" - Name 149 "g_tTex3du4" - Name 152 "g_tTex1df4a" - Name 155 "g_tTex1di4a" - Name 158 "g_tTex1du4a" - Name 161 "g_tTex2df4a" - Name 164 "g_tTex2di4a" - Name 167 "g_tTex2du4a" - Name 170 "g_tTexcdf4a" - Name 173 "g_tTexcdi4a" - Name 176 "g_tTexcdu4a" - Name 178 "Color" - Name 180 "Depth" + Name 138 "Color" + Name 142 "Depth" + Name 148 "g_tTex3df4" + Name 151 "g_tTex3di4" + Name 154 "g_tTex3du4" + Name 157 "g_tTex1df4a" + Name 160 "g_tTex1di4a" + Name 163 "g_tTex1du4a" + Name 166 "g_tTex2df4a" + Name 169 "g_tTex2di4a" + Name 172 "g_tTex2du4a" + Name 175 "g_tTexcdf4a" + Name 178 "g_tTexcdi4a" + Name 181 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -408,20 +427,20 @@ gl_FragCoord origin is upper left Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 143(g_tTex3df4) DescriptorSet 0 - Decorate 146(g_tTex3di4) DescriptorSet 0 - Decorate 149(g_tTex3du4) DescriptorSet 0 - Decorate 152(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1di4a) DescriptorSet 0 - Decorate 158(g_tTex1du4a) DescriptorSet 0 - Decorate 161(g_tTex2df4a) DescriptorSet 0 - Decorate 164(g_tTex2di4a) DescriptorSet 0 - Decorate 167(g_tTex2du4a) DescriptorSet 0 - Decorate 170(g_tTexcdf4a) DescriptorSet 0 - Decorate 173(g_tTexcdi4a) DescriptorSet 0 - Decorate 176(g_tTexcdu4a) DescriptorSet 0 - Decorate 178(Color) Location 0 - Decorate 180(Depth) BuiltIn FragDepth + Decorate 138(Color) Location 0 + Decorate 142(Depth) BuiltIn FragDepth + Decorate 148(g_tTex3df4) DescriptorSet 0 + Decorate 151(g_tTex3di4) DescriptorSet 0 + Decorate 154(g_tTex3du4) DescriptorSet 0 + Decorate 157(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1di4a) DescriptorSet 0 + Decorate 163(g_tTex1du4a) DescriptorSet 0 + Decorate 166(g_tTex2df4a) DescriptorSet 0 + Decorate 169(g_tTex2di4a) DescriptorSet 0 + Decorate 172(g_tTex2du4a) DescriptorSet 0 + Decorate 175(g_tTexcdf4a) DescriptorSet 0 + Decorate 178(g_tTexcdi4a) DescriptorSet 0 + Decorate 181(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -492,48 +511,46 @@ gl_FragCoord origin is upper left 132: 126(fvec4) ConstantComposite 131 131 131 131 133: TypePointer Function 126(fvec4) 135: 25(int) Constant 1 - 137: TypePointer Output 127(PS_OUTPUT) -138(@entryPointOutput): 137(ptr) Variable Output - 141: TypeImage 6(float) 3D sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTex3df4): 142(ptr) Variable UniformConstant - 144: TypeImage 25(int) 3D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex3di4): 145(ptr) Variable UniformConstant - 147: TypeImage 37(int) 3D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex3du4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 1D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex1df4a): 151(ptr) Variable UniformConstant - 153: TypeImage 25(int) 1D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex1di4a): 154(ptr) Variable UniformConstant - 156: TypeImage 37(int) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1du4a): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 2D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex2df4a): 160(ptr) Variable UniformConstant - 162: TypeImage 25(int) 2D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex2di4a): 163(ptr) Variable UniformConstant - 165: TypeImage 37(int) 2D array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTex2du4a): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdf4a): 169(ptr) Variable UniformConstant - 171: TypeImage 25(int) Cube array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTexcdi4a): 172(ptr) Variable UniformConstant - 174: TypeImage 37(int) Cube array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTexcdu4a): 175(ptr) Variable UniformConstant - 177: TypePointer Output 126(fvec4) - 178(Color): 177(ptr) Variable Output - 179: TypePointer Output 6(float) - 180(Depth): 179(ptr) Variable Output + 137: TypePointer Output 126(fvec4) + 138(Color): 137(ptr) Variable Output + 141: TypePointer Output 6(float) + 142(Depth): 141(ptr) Variable Output + 146: TypeImage 6(float) 3D sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTex3df4): 147(ptr) Variable UniformConstant + 149: TypeImage 25(int) 3D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex3di4): 150(ptr) Variable UniformConstant + 152: TypeImage 37(int) 3D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex3du4): 153(ptr) Variable UniformConstant + 155: TypeImage 6(float) 1D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex1df4a): 156(ptr) Variable UniformConstant + 158: TypeImage 25(int) 1D array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTex1di4a): 159(ptr) Variable UniformConstant + 161: TypeImage 37(int) 1D array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTex1du4a): 162(ptr) Variable UniformConstant + 164: TypeImage 6(float) 2D array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTex2df4a): 165(ptr) Variable UniformConstant + 167: TypeImage 25(int) 2D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex2di4a): 168(ptr) Variable UniformConstant + 170: TypeImage 37(int) 2D array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTex2du4a): 171(ptr) Variable UniformConstant + 173: TypeImage 6(float) Cube array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTexcdf4a): 174(ptr) Variable UniformConstant + 176: TypeImage 25(int) Cube array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTexcdi4a): 177(ptr) Variable UniformConstant + 179: TypeImage 37(int) Cube array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTexcdu4a): 180(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -610,7 +627,11 @@ gl_FragCoord origin is upper left Store 134 132 136: 7(ptr) AccessChain 129(psout) 135 Store 136 131 - 139:127(PS_OUTPUT) Load 129(psout) - Store 138(@entryPointOutput) 139 + 139: 133(ptr) AccessChain 129(psout) 130 + 140: 126(fvec4) Load 139 + Store 138(Color) 140 + 143: 7(ptr) AccessChain 129(psout) 135 + 144: 6(float) Load 143 + Store 142(Depth) 144 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index fa3904e2..b0693566 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -112,10 +112,20 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float FragDepth) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,10 +270,20 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float FragDepth) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -293,14 +313,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 155 +// Id's are bound by 156 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 152 154 + EntryPoint Fragment 4 "main" 103 107 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -320,24 +340,23 @@ gl_FragCoord origin is upper left MemberName 92(PS_OUTPUT) 0 "Color" MemberName 92(PS_OUTPUT) 1 "Depth" Name 94 "psout" - Name 103 "@entryPointOutput" - Name 108 "g_tTex3df4" - Name 111 "g_tTex3di4" - Name 114 "g_tTex3du4" - Name 117 "g_tTexcdf4" - Name 120 "g_tTexcdi4" - Name 123 "g_tTexcdu4" - Name 126 "g_tTex1df4a" - Name 129 "g_tTex1di4a" - Name 132 "g_tTex1du4a" - Name 135 "g_tTex2df4a" - Name 138 "g_tTex2di4a" - Name 141 "g_tTex2du4a" - Name 144 "g_tTexcdf4a" - Name 147 "g_tTexcdi4a" - Name 150 "g_tTexcdu4a" - Name 152 "Color" - Name 154 "Depth" + Name 103 "Color" + Name 107 "Depth" + Name 113 "g_tTex3df4" + Name 116 "g_tTex3di4" + Name 119 "g_tTex3du4" + Name 122 "g_tTexcdf4" + Name 125 "g_tTexcdi4" + Name 128 "g_tTexcdu4" + Name 131 "g_tTex1df4a" + Name 134 "g_tTex1di4a" + Name 137 "g_tTex1du4a" + Name 140 "g_tTex2df4a" + Name 143 "g_tTex2di4a" + Name 146 "g_tTex2du4a" + Name 149 "g_tTexcdf4a" + Name 152 "g_tTexcdi4a" + Name 155 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -348,23 +367,23 @@ gl_FragCoord origin is upper left Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 108(g_tTex3df4) DescriptorSet 0 - Decorate 111(g_tTex3di4) DescriptorSet 0 - Decorate 114(g_tTex3du4) DescriptorSet 0 - Decorate 117(g_tTexcdf4) DescriptorSet 0 - Decorate 120(g_tTexcdi4) DescriptorSet 0 - Decorate 123(g_tTexcdu4) DescriptorSet 0 - Decorate 126(g_tTex1df4a) DescriptorSet 0 - Decorate 129(g_tTex1di4a) DescriptorSet 0 - Decorate 132(g_tTex1du4a) DescriptorSet 0 - Decorate 135(g_tTex2df4a) DescriptorSet 0 - Decorate 138(g_tTex2di4a) DescriptorSet 0 - Decorate 141(g_tTex2du4a) DescriptorSet 0 - Decorate 144(g_tTexcdf4a) DescriptorSet 0 - Decorate 147(g_tTexcdi4a) DescriptorSet 0 - Decorate 150(g_tTexcdu4a) DescriptorSet 0 - Decorate 152(Color) Location 0 - Decorate 154(Depth) BuiltIn FragDepth + Decorate 103(Color) Location 0 + Decorate 107(Depth) BuiltIn FragDepth + Decorate 113(g_tTex3df4) DescriptorSet 0 + Decorate 116(g_tTex3di4) DescriptorSet 0 + Decorate 119(g_tTex3du4) DescriptorSet 0 + Decorate 122(g_tTexcdf4) DescriptorSet 0 + Decorate 125(g_tTexcdi4) DescriptorSet 0 + Decorate 128(g_tTexcdu4) DescriptorSet 0 + Decorate 131(g_tTex1df4a) DescriptorSet 0 + Decorate 134(g_tTex1di4a) DescriptorSet 0 + Decorate 137(g_tTex1du4a) DescriptorSet 0 + Decorate 140(g_tTex2df4a) DescriptorSet 0 + Decorate 143(g_tTex2di4a) DescriptorSet 0 + Decorate 146(g_tTex2du4a) DescriptorSet 0 + Decorate 149(g_tTexcdf4a) DescriptorSet 0 + Decorate 152(g_tTexcdi4a) DescriptorSet 0 + Decorate 155(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,57 +440,55 @@ gl_FragCoord origin is upper left 97: 91(fvec4) ConstantComposite 96 96 96 96 98: TypePointer Function 91(fvec4) 100: 22(int) Constant 1 - 102: TypePointer Output 92(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output - 106: TypeImage 6(float) 3D sampled format:Unknown - 107: TypePointer UniformConstant 106 - 108(g_tTex3df4): 107(ptr) Variable UniformConstant - 109: TypeImage 22(int) 3D sampled format:Unknown - 110: TypePointer UniformConstant 109 - 111(g_tTex3di4): 110(ptr) Variable UniformConstant - 112: TypeImage 38(int) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3du4): 113(ptr) Variable UniformConstant - 115: TypeImage 6(float) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdf4): 116(ptr) Variable UniformConstant - 118: TypeImage 22(int) Cube sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTexcdi4): 119(ptr) Variable UniformConstant - 121: TypeImage 38(int) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdu4): 122(ptr) Variable UniformConstant - 124: TypeImage 6(float) 1D array sampled format:Unknown - 125: TypePointer UniformConstant 124 -126(g_tTex1df4a): 125(ptr) Variable UniformConstant - 127: TypeImage 22(int) 1D array sampled format:Unknown - 128: TypePointer UniformConstant 127 -129(g_tTex1di4a): 128(ptr) Variable UniformConstant - 130: TypeImage 38(int) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1du4a): 131(ptr) Variable UniformConstant - 133: TypeImage 6(float) 2D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex2df4a): 134(ptr) Variable UniformConstant - 136: TypeImage 22(int) 2D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex2di4a): 137(ptr) Variable UniformConstant - 139: TypeImage 38(int) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2du4a): 140(ptr) Variable UniformConstant - 142: TypeImage 6(float) Cube array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTexcdf4a): 143(ptr) Variable UniformConstant - 145: TypeImage 22(int) Cube array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTexcdi4a): 146(ptr) Variable UniformConstant - 148: TypeImage 38(int) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdu4a): 149(ptr) Variable UniformConstant - 151: TypePointer Output 91(fvec4) - 152(Color): 151(ptr) Variable Output - 153: TypePointer Output 6(float) - 154(Depth): 153(ptr) Variable Output + 102: TypePointer Output 91(fvec4) + 103(Color): 102(ptr) Variable Output + 106: TypePointer Output 6(float) + 107(Depth): 106(ptr) Variable Output + 111: TypeImage 6(float) 3D sampled format:Unknown + 112: TypePointer UniformConstant 111 + 113(g_tTex3df4): 112(ptr) Variable UniformConstant + 114: TypeImage 22(int) 3D sampled format:Unknown + 115: TypePointer UniformConstant 114 + 116(g_tTex3di4): 115(ptr) Variable UniformConstant + 117: TypeImage 38(int) 3D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex3du4): 118(ptr) Variable UniformConstant + 120: TypeImage 6(float) Cube sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTexcdf4): 121(ptr) Variable UniformConstant + 123: TypeImage 22(int) Cube sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTexcdi4): 124(ptr) Variable UniformConstant + 126: TypeImage 38(int) Cube sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTexcdu4): 127(ptr) Variable UniformConstant + 129: TypeImage 6(float) 1D array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTex1df4a): 130(ptr) Variable UniformConstant + 132: TypeImage 22(int) 1D array sampled format:Unknown + 133: TypePointer UniformConstant 132 +134(g_tTex1di4a): 133(ptr) Variable UniformConstant + 135: TypeImage 38(int) 1D array sampled format:Unknown + 136: TypePointer UniformConstant 135 +137(g_tTex1du4a): 136(ptr) Variable UniformConstant + 138: TypeImage 6(float) 2D array sampled format:Unknown + 139: TypePointer UniformConstant 138 +140(g_tTex2df4a): 139(ptr) Variable UniformConstant + 141: TypeImage 22(int) 2D array sampled format:Unknown + 142: TypePointer UniformConstant 141 +143(g_tTex2di4a): 142(ptr) Variable UniformConstant + 144: TypeImage 38(int) 2D array sampled format:Unknown + 145: TypePointer UniformConstant 144 +146(g_tTex2du4a): 145(ptr) Variable UniformConstant + 147: TypeImage 6(float) Cube array sampled format:Unknown + 148: TypePointer UniformConstant 147 +149(g_tTexcdf4a): 148(ptr) Variable UniformConstant + 150: TypeImage 22(int) Cube array sampled format:Unknown + 151: TypePointer UniformConstant 150 +152(g_tTexcdi4a): 151(ptr) Variable UniformConstant + 153: TypeImage 38(int) Cube array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTexcdu4a): 154(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -524,7 +541,11 @@ gl_FragCoord origin is upper left Store 99 97 101: 7(ptr) AccessChain 94(psout) 100 Store 101 96 - 104:92(PS_OUTPUT) Load 94(psout) - Store 103(@entryPointOutput) 104 + 104: 98(ptr) AccessChain 94(psout) 95 + 105: 91(fvec4) Load 104 + Store 103(Color) 105 + 108: 7(ptr) AccessChain 94(psout) 100 + 109: 6(float) Load 108 + Store 107(Depth) 109 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index ba413641..caa2b2cf 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -118,10 +118,20 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,10 +282,20 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -305,14 +325,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 161 +// Id's are bound by 162 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 158 160 + EntryPoint Fragment 4 "main" 109 113 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -332,24 +352,23 @@ gl_FragCoord origin is upper left MemberName 98(PS_OUTPUT) 0 "Color" MemberName 98(PS_OUTPUT) 1 "Depth" Name 100 "psout" - Name 109 "@entryPointOutput" - Name 114 "g_tTex1df4" - Name 117 "g_tTex1di4" - Name 120 "g_tTex1du4" - Name 123 "g_tTex2df4" - Name 126 "g_tTex2di4" - Name 129 "g_tTex2du4" - Name 132 "g_tTex3df4" - Name 135 "g_tTex3di4" - Name 138 "g_tTex3du4" - Name 141 "g_tTexcdf4" - Name 144 "g_tTexcdi4" - Name 147 "g_tTexcdu4" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" - Name 158 "Color" - Name 160 "Depth" + Name 109 "Color" + Name 113 "Depth" + Name 119 "g_tTex1df4" + Name 122 "g_tTex1di4" + Name 125 "g_tTex1du4" + Name 128 "g_tTex2df4" + Name 131 "g_tTex2di4" + Name 134 "g_tTex2du4" + Name 137 "g_tTex3df4" + Name 140 "g_tTex3di4" + Name 143 "g_tTex3du4" + Name 146 "g_tTexcdf4" + Name 149 "g_tTexcdi4" + Name 152 "g_tTexcdu4" + Name 155 "g_tTexcdf4a" + Name 158 "g_tTexcdi4a" + Name 161 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -359,24 +378,24 @@ gl_FragCoord origin is upper left Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 114(g_tTex1df4) DescriptorSet 0 - Decorate 114(g_tTex1df4) Binding 0 - Decorate 117(g_tTex1di4) DescriptorSet 0 - Decorate 120(g_tTex1du4) DescriptorSet 0 - Decorate 123(g_tTex2df4) DescriptorSet 0 - Decorate 126(g_tTex2di4) DescriptorSet 0 - Decorate 129(g_tTex2du4) DescriptorSet 0 - Decorate 132(g_tTex3df4) DescriptorSet 0 - Decorate 135(g_tTex3di4) DescriptorSet 0 - Decorate 138(g_tTex3du4) DescriptorSet 0 - Decorate 141(g_tTexcdf4) DescriptorSet 0 - Decorate 144(g_tTexcdi4) DescriptorSet 0 - Decorate 147(g_tTexcdu4) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 - Decorate 158(Color) Location 0 - Decorate 160(Depth) BuiltIn FragDepth + Decorate 109(Color) Location 0 + Decorate 113(Depth) BuiltIn FragDepth + Decorate 119(g_tTex1df4) DescriptorSet 0 + Decorate 119(g_tTex1df4) Binding 0 + Decorate 122(g_tTex1di4) DescriptorSet 0 + Decorate 125(g_tTex1du4) DescriptorSet 0 + Decorate 128(g_tTex2df4) DescriptorSet 0 + Decorate 131(g_tTex2di4) DescriptorSet 0 + Decorate 134(g_tTex2du4) DescriptorSet 0 + Decorate 137(g_tTex3df4) DescriptorSet 0 + Decorate 140(g_tTex3di4) DescriptorSet 0 + Decorate 143(g_tTex3du4) DescriptorSet 0 + Decorate 146(g_tTexcdf4) DescriptorSet 0 + Decorate 149(g_tTexcdi4) DescriptorSet 0 + Decorate 152(g_tTexcdu4) DescriptorSet 0 + Decorate 155(g_tTexcdf4a) DescriptorSet 0 + Decorate 158(g_tTexcdi4a) DescriptorSet 0 + Decorate 161(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -436,57 +455,55 @@ gl_FragCoord origin is upper left 103: 97(fvec4) ConstantComposite 102 102 102 102 104: TypePointer Function 97(fvec4) 106: 26(int) Constant 1 - 108: TypePointer Output 98(PS_OUTPUT) -109(@entryPointOutput): 108(ptr) Variable Output - 112: TypeImage 6(float) 1D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex1df4): 113(ptr) Variable UniformConstant - 115: TypeImage 26(int) 1D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex1di4): 116(ptr) Variable UniformConstant - 118: TypeImage 43(int) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex1du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) 2D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex2df4): 122(ptr) Variable UniformConstant - 124: TypeImage 26(int) 2D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex2di4): 125(ptr) Variable UniformConstant - 127: TypeImage 43(int) 2D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex2du4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 3D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex3df4): 131(ptr) Variable UniformConstant - 133: TypeImage 26(int) 3D sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTex3di4): 134(ptr) Variable UniformConstant - 136: TypeImage 43(int) 3D sampled format:Unknown - 137: TypePointer UniformConstant 136 - 138(g_tTex3du4): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) Cube sampled format:Unknown - 140: TypePointer UniformConstant 139 - 141(g_tTexcdf4): 140(ptr) Variable UniformConstant - 142: TypeImage 26(int) Cube sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTexcdi4): 143(ptr) Variable UniformConstant - 145: TypeImage 43(int) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdu4): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 26(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 43(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant - 157: TypePointer Output 97(fvec4) - 158(Color): 157(ptr) Variable Output - 159: TypePointer Output 6(float) - 160(Depth): 159(ptr) Variable Output + 108: TypePointer Output 97(fvec4) + 109(Color): 108(ptr) Variable Output + 112: TypePointer Output 6(float) + 113(Depth): 112(ptr) Variable Output + 117: TypeImage 6(float) 1D sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTex1df4): 118(ptr) Variable UniformConstant + 120: TypeImage 26(int) 1D sampled format:Unknown + 121: TypePointer UniformConstant 120 + 122(g_tTex1di4): 121(ptr) Variable UniformConstant + 123: TypeImage 43(int) 1D sampled format:Unknown + 124: TypePointer UniformConstant 123 + 125(g_tTex1du4): 124(ptr) Variable UniformConstant + 126: TypeImage 6(float) 2D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex2df4): 127(ptr) Variable UniformConstant + 129: TypeImage 26(int) 2D sampled format:Unknown + 130: TypePointer UniformConstant 129 + 131(g_tTex2di4): 130(ptr) Variable UniformConstant + 132: TypeImage 43(int) 2D sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTex2du4): 133(ptr) Variable UniformConstant + 135: TypeImage 6(float) 3D sampled format:Unknown + 136: TypePointer UniformConstant 135 + 137(g_tTex3df4): 136(ptr) Variable UniformConstant + 138: TypeImage 26(int) 3D sampled format:Unknown + 139: TypePointer UniformConstant 138 + 140(g_tTex3di4): 139(ptr) Variable UniformConstant + 141: TypeImage 43(int) 3D sampled format:Unknown + 142: TypePointer UniformConstant 141 + 143(g_tTex3du4): 142(ptr) Variable UniformConstant + 144: TypeImage 6(float) Cube sampled format:Unknown + 145: TypePointer UniformConstant 144 + 146(g_tTexcdf4): 145(ptr) Variable UniformConstant + 147: TypeImage 26(int) Cube sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTexcdi4): 148(ptr) Variable UniformConstant + 150: TypeImage 43(int) Cube sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTexcdu4): 151(ptr) Variable UniformConstant + 153: TypeImage 6(float) Cube array sampled format:Unknown + 154: TypePointer UniformConstant 153 +155(g_tTexcdf4a): 154(ptr) Variable UniformConstant + 156: TypeImage 26(int) Cube array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTexcdi4a): 157(ptr) Variable UniformConstant + 159: TypeImage 43(int) Cube array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTexcdu4a): 160(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -542,7 +559,11 @@ gl_FragCoord origin is upper left Store 105 103 107: 7(ptr) AccessChain 100(psout) 106 Store 107 102 - 110:98(PS_OUTPUT) Load 100(psout) - Store 109(@entryPointOutput) 110 + 110: 104(ptr) AccessChain 100(psout) 101 + 111: 97(fvec4) Load 110 + Store 109(Color) 111 + 114: 7(ptr) AccessChain 100(psout) 106 + 115: 6(float) Load 114 + Store 113(Depth) 115 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index f8049ba2..0702b247 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -166,10 +166,20 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:59 Depth: direct index for structure (temp float FragDepth) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -368,10 +378,20 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:59 Sequence -0:59 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:59 Color: direct index for structure (temp 4-component vector of float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 0 (const int) +0:59 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:59 Depth: direct index for structure (temp float FragDepth) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Constant: +0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -401,14 +421,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 185 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 181 183 + EntryPoint Fragment 4 "main" 141 145 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" @@ -434,21 +454,20 @@ gl_FragCoord origin is upper left MemberName 130(PS_OUTPUT) 0 "Color" MemberName 130(PS_OUTPUT) 1 "Depth" Name 132 "psout" - Name 141 "@entryPointOutput" - Name 146 "g_tTex1df4" - Name 149 "g_tTex1di4" - Name 152 "g_tTex1du4" - Name 155 "g_tTex2df4" - Name 158 "g_tTex2di4" - Name 161 "g_tTex2du4" - Name 164 "g_tTex3df4" - Name 167 "g_tTex3di4" - Name 170 "g_tTex3du4" - Name 173 "g_tTexcdf4" - Name 176 "g_tTexcdi4" - Name 179 "g_tTexcdu4" - Name 181 "Color" - Name 183 "Depth" + Name 141 "Color" + Name 145 "Depth" + Name 151 "g_tTex1df4" + Name 154 "g_tTex1di4" + Name 157 "g_tTex1du4" + Name 160 "g_tTex2df4" + Name 163 "g_tTex2di4" + Name 166 "g_tTex2du4" + Name 169 "g_tTex3df4" + Name 172 "g_tTex3di4" + Name 175 "g_tTex3du4" + Name 178 "g_tTexcdf4" + Name 181 "g_tTexcdi4" + Name 184 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -461,21 +480,21 @@ gl_FragCoord origin is upper left Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 146(g_tTex1df4) DescriptorSet 0 - Decorate 146(g_tTex1df4) Binding 0 - Decorate 149(g_tTex1di4) DescriptorSet 0 - Decorate 152(g_tTex1du4) DescriptorSet 0 - Decorate 155(g_tTex2df4) DescriptorSet 0 - Decorate 158(g_tTex2di4) DescriptorSet 0 - Decorate 161(g_tTex2du4) DescriptorSet 0 - Decorate 164(g_tTex3df4) DescriptorSet 0 - Decorate 167(g_tTex3di4) DescriptorSet 0 - Decorate 170(g_tTex3du4) DescriptorSet 0 - Decorate 173(g_tTexcdf4) DescriptorSet 0 - Decorate 176(g_tTexcdi4) DescriptorSet 0 - Decorate 179(g_tTexcdu4) DescriptorSet 0 - Decorate 181(Color) Location 0 - Decorate 183(Depth) BuiltIn FragDepth + Decorate 141(Color) Location 0 + Decorate 145(Depth) BuiltIn FragDepth + Decorate 151(g_tTex1df4) DescriptorSet 0 + Decorate 151(g_tTex1df4) Binding 0 + Decorate 154(g_tTex1di4) DescriptorSet 0 + Decorate 157(g_tTex1du4) DescriptorSet 0 + Decorate 160(g_tTex2df4) DescriptorSet 0 + Decorate 163(g_tTex2di4) DescriptorSet 0 + Decorate 166(g_tTex2du4) DescriptorSet 0 + Decorate 169(g_tTex3df4) DescriptorSet 0 + Decorate 172(g_tTex3di4) DescriptorSet 0 + Decorate 175(g_tTex3du4) DescriptorSet 0 + Decorate 178(g_tTexcdf4) DescriptorSet 0 + Decorate 181(g_tTexcdi4) DescriptorSet 0 + Decorate 184(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -549,48 +568,46 @@ gl_FragCoord origin is upper left 135: 103(fvec4) ConstantComposite 134 134 134 134 136: TypePointer Function 103(fvec4) 138: 30(int) Constant 1 - 140: TypePointer Output 130(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output - 144: TypeImage 6(float) 1D sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTex1df4): 145(ptr) Variable UniformConstant - 147: TypeImage 30(int) 1D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex1di4): 148(ptr) Variable UniformConstant - 150: TypeImage 43(int) 1D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex1du4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) 2D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex2df4): 154(ptr) Variable UniformConstant - 156: TypeImage 30(int) 2D sampled format:Unknown - 157: TypePointer UniformConstant 156 - 158(g_tTex2di4): 157(ptr) Variable UniformConstant - 159: TypeImage 43(int) 2D sampled format:Unknown - 160: TypePointer UniformConstant 159 - 161(g_tTex2du4): 160(ptr) Variable UniformConstant - 162: TypeImage 6(float) 3D sampled format:Unknown - 163: TypePointer UniformConstant 162 - 164(g_tTex3df4): 163(ptr) Variable UniformConstant - 165: TypeImage 30(int) 3D sampled format:Unknown - 166: TypePointer UniformConstant 165 - 167(g_tTex3di4): 166(ptr) Variable UniformConstant - 168: TypeImage 43(int) 3D sampled format:Unknown - 169: TypePointer UniformConstant 168 - 170(g_tTex3du4): 169(ptr) Variable UniformConstant - 171: TypeImage 6(float) Cube sampled format:Unknown - 172: TypePointer UniformConstant 171 - 173(g_tTexcdf4): 172(ptr) Variable UniformConstant - 174: TypeImage 30(int) Cube sampled format:Unknown - 175: TypePointer UniformConstant 174 - 176(g_tTexcdi4): 175(ptr) Variable UniformConstant - 177: TypeImage 43(int) Cube sampled format:Unknown - 178: TypePointer UniformConstant 177 - 179(g_tTexcdu4): 178(ptr) Variable UniformConstant - 180: TypePointer Output 103(fvec4) - 181(Color): 180(ptr) Variable Output - 182: TypePointer Output 6(float) - 183(Depth): 182(ptr) Variable Output + 140: TypePointer Output 103(fvec4) + 141(Color): 140(ptr) Variable Output + 144: TypePointer Output 6(float) + 145(Depth): 144(ptr) Variable Output + 149: TypeImage 6(float) 1D sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTex1df4): 150(ptr) Variable UniformConstant + 152: TypeImage 30(int) 1D sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTex1di4): 153(ptr) Variable UniformConstant + 155: TypeImage 43(int) 1D sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTex1du4): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) 2D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex2df4): 159(ptr) Variable UniformConstant + 161: TypeImage 30(int) 2D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex2di4): 162(ptr) Variable UniformConstant + 164: TypeImage 43(int) 2D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex2du4): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) 3D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex3df4): 168(ptr) Variable UniformConstant + 170: TypeImage 30(int) 3D sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTex3di4): 171(ptr) Variable UniformConstant + 173: TypeImage 43(int) 3D sampled format:Unknown + 174: TypePointer UniformConstant 173 + 175(g_tTex3du4): 174(ptr) Variable UniformConstant + 176: TypeImage 6(float) Cube sampled format:Unknown + 177: TypePointer UniformConstant 176 + 178(g_tTexcdf4): 177(ptr) Variable UniformConstant + 179: TypeImage 30(int) Cube sampled format:Unknown + 180: TypePointer UniformConstant 179 + 181(g_tTexcdi4): 180(ptr) Variable UniformConstant + 182: TypeImage 43(int) Cube sampled format:Unknown + 183: TypePointer UniformConstant 182 + 184(g_tTexcdu4): 183(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function @@ -667,7 +684,11 @@ gl_FragCoord origin is upper left Store 137 135 139: 7(ptr) AccessChain 132(psout) 138 Store 139 134 - 142:130(PS_OUTPUT) Load 132(psout) - Store 141(@entryPointOutput) 142 + 142: 136(ptr) AccessChain 132(psout) 133 + 143: 103(fvec4) Load 142 + Store 141(Color) 143 + 146: 7(ptr) AccessChain 132(psout) 138 + 147: 6(float) Load 146 + Store 145(Depth) 147 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 10ae1b7f..705e283e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -157,10 +157,20 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float FragDepth) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -350,10 +360,20 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:60 Sequence -0:60 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:60 Color: direct index for structure (temp 4-component vector of float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 0 (const int) +0:60 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:60 Depth: direct index for structure (temp float FragDepth) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Constant: +0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -383,14 +403,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 183 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 179 181 + EntryPoint Fragment 4 "main" 139 143 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -416,21 +436,20 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 139 "@entryPointOutput" - Name 144 "g_tTex3df4" - Name 147 "g_tTex3di4" - Name 150 "g_tTex3du4" - Name 153 "g_tTex1df4a" - Name 156 "g_tTex1di4a" - Name 159 "g_tTex1du4a" - Name 162 "g_tTex2df4a" - Name 165 "g_tTex2di4a" - Name 168 "g_tTex2du4a" - Name 171 "g_tTexcdf4a" - Name 174 "g_tTexcdi4a" - Name 177 "g_tTexcdu4a" - Name 179 "Color" - Name 181 "Depth" + Name 139 "Color" + Name 143 "Depth" + Name 149 "g_tTex3df4" + Name 152 "g_tTex3di4" + Name 155 "g_tTex3du4" + Name 158 "g_tTex1df4a" + Name 161 "g_tTex1di4a" + Name 164 "g_tTex1du4a" + Name 167 "g_tTex2df4a" + Name 170 "g_tTex2di4a" + Name 173 "g_tTex2du4a" + Name 176 "g_tTexcdf4a" + Name 179 "g_tTexcdi4a" + Name 182 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -444,20 +463,20 @@ gl_FragCoord origin is upper left Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex3df4) DescriptorSet 0 - Decorate 147(g_tTex3di4) DescriptorSet 0 - Decorate 150(g_tTex3du4) DescriptorSet 0 - Decorate 153(g_tTex1df4a) DescriptorSet 0 - Decorate 156(g_tTex1di4a) DescriptorSet 0 - Decorate 159(g_tTex1du4a) DescriptorSet 0 - Decorate 162(g_tTex2df4a) DescriptorSet 0 - Decorate 165(g_tTex2di4a) DescriptorSet 0 - Decorate 168(g_tTex2du4a) DescriptorSet 0 - Decorate 171(g_tTexcdf4a) DescriptorSet 0 - Decorate 174(g_tTexcdi4a) DescriptorSet 0 - Decorate 177(g_tTexcdu4a) DescriptorSet 0 - Decorate 179(Color) Location 0 - Decorate 181(Depth) BuiltIn FragDepth + Decorate 139(Color) Location 0 + Decorate 143(Depth) BuiltIn FragDepth + Decorate 149(g_tTex3df4) DescriptorSet 0 + Decorate 152(g_tTex3di4) DescriptorSet 0 + Decorate 155(g_tTex3du4) DescriptorSet 0 + Decorate 158(g_tTex1df4a) DescriptorSet 0 + Decorate 161(g_tTex1di4a) DescriptorSet 0 + Decorate 164(g_tTex1du4a) DescriptorSet 0 + Decorate 167(g_tTex2df4a) DescriptorSet 0 + Decorate 170(g_tTex2di4a) DescriptorSet 0 + Decorate 173(g_tTex2du4a) DescriptorSet 0 + Decorate 176(g_tTexcdf4a) DescriptorSet 0 + Decorate 179(g_tTexcdi4a) DescriptorSet 0 + Decorate 182(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -529,48 +548,46 @@ gl_FragCoord origin is upper left 133: 127(fvec4) ConstantComposite 132 132 132 132 134: TypePointer Function 127(fvec4) 136: 26(int) Constant 1 - 138: TypePointer Output 128(PS_OUTPUT) -139(@entryPointOutput): 138(ptr) Variable Output - 142: TypeImage 6(float) 3D sampled format:Unknown - 143: TypePointer UniformConstant 142 - 144(g_tTex3df4): 143(ptr) Variable UniformConstant - 145: TypeImage 26(int) 3D sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTex3di4): 146(ptr) Variable UniformConstant - 148: TypeImage 38(int) 3D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex3du4): 149(ptr) Variable UniformConstant - 151: TypeImage 6(float) 1D array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTex1df4a): 152(ptr) Variable UniformConstant - 154: TypeImage 26(int) 1D array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTex1di4a): 155(ptr) Variable UniformConstant - 157: TypeImage 38(int) 1D array sampled format:Unknown - 158: TypePointer UniformConstant 157 -159(g_tTex1du4a): 158(ptr) Variable UniformConstant - 160: TypeImage 6(float) 2D array sampled format:Unknown - 161: TypePointer UniformConstant 160 -162(g_tTex2df4a): 161(ptr) Variable UniformConstant - 163: TypeImage 26(int) 2D array sampled format:Unknown - 164: TypePointer UniformConstant 163 -165(g_tTex2di4a): 164(ptr) Variable UniformConstant - 166: TypeImage 38(int) 2D array sampled format:Unknown - 167: TypePointer UniformConstant 166 -168(g_tTex2du4a): 167(ptr) Variable UniformConstant - 169: TypeImage 6(float) Cube array sampled format:Unknown - 170: TypePointer UniformConstant 169 -171(g_tTexcdf4a): 170(ptr) Variable UniformConstant - 172: TypeImage 26(int) Cube array sampled format:Unknown - 173: TypePointer UniformConstant 172 -174(g_tTexcdi4a): 173(ptr) Variable UniformConstant - 175: TypeImage 38(int) Cube array sampled format:Unknown - 176: TypePointer UniformConstant 175 -177(g_tTexcdu4a): 176(ptr) Variable UniformConstant - 178: TypePointer Output 127(fvec4) - 179(Color): 178(ptr) Variable Output - 180: TypePointer Output 6(float) - 181(Depth): 180(ptr) Variable Output + 138: TypePointer Output 127(fvec4) + 139(Color): 138(ptr) Variable Output + 142: TypePointer Output 6(float) + 143(Depth): 142(ptr) Variable Output + 147: TypeImage 6(float) 3D sampled format:Unknown + 148: TypePointer UniformConstant 147 + 149(g_tTex3df4): 148(ptr) Variable UniformConstant + 150: TypeImage 26(int) 3D sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTex3di4): 151(ptr) Variable UniformConstant + 153: TypeImage 38(int) 3D sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTex3du4): 154(ptr) Variable UniformConstant + 156: TypeImage 6(float) 1D array sampled format:Unknown + 157: TypePointer UniformConstant 156 +158(g_tTex1df4a): 157(ptr) Variable UniformConstant + 159: TypeImage 26(int) 1D array sampled format:Unknown + 160: TypePointer UniformConstant 159 +161(g_tTex1di4a): 160(ptr) Variable UniformConstant + 162: TypeImage 38(int) 1D array sampled format:Unknown + 163: TypePointer UniformConstant 162 +164(g_tTex1du4a): 163(ptr) Variable UniformConstant + 165: TypeImage 6(float) 2D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex2df4a): 166(ptr) Variable UniformConstant + 168: TypeImage 26(int) 2D array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTex2di4a): 169(ptr) Variable UniformConstant + 171: TypeImage 38(int) 2D array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTex2du4a): 172(ptr) Variable UniformConstant + 174: TypeImage 6(float) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdf4a): 175(ptr) Variable UniformConstant + 177: TypeImage 26(int) Cube array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTexcdi4a): 178(ptr) Variable UniformConstant + 180: TypeImage 38(int) Cube array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTexcdu4a): 181(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function @@ -647,7 +664,11 @@ gl_FragCoord origin is upper left Store 135 133 137: 7(ptr) AccessChain 130(psout) 136 Store 137 132 - 140:128(PS_OUTPUT) Load 130(psout) - Store 139(@entryPointOutput) 140 + 140: 134(ptr) AccessChain 130(psout) 131 + 141: 127(fvec4) Load 140 + Store 139(Color) 141 + 144: 7(ptr) AccessChain 130(psout) 136 + 145: 6(float) Load 144 + Store 143(Depth) 145 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index e744e607..6e7e0fdb 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -124,10 +124,20 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float FragDepth) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -284,10 +294,20 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:65 Sequence -0:65 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:65 Color: direct index for structure (temp 4-component vector of float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 0 (const int) +0:65 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:65 Depth: direct index for structure (temp float FragDepth) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Constant: +0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -317,14 +337,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 157 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 153 155 + EntryPoint Fragment 4 "main" 104 108 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" @@ -344,24 +364,23 @@ gl_FragCoord origin is upper left MemberName 93(PS_OUTPUT) 0 "Color" MemberName 93(PS_OUTPUT) 1 "Depth" Name 95 "psout" - Name 104 "@entryPointOutput" - Name 109 "g_tTex3df4" - Name 112 "g_tTex3di4" - Name 115 "g_tTex3du4" - Name 118 "g_tTexcdf4" - Name 121 "g_tTexcdi4" - Name 124 "g_tTexcdu4" - Name 127 "g_tTex1df4a" - Name 130 "g_tTex1di4a" - Name 133 "g_tTex1du4a" - Name 136 "g_tTex2df4a" - Name 139 "g_tTex2di4a" - Name 142 "g_tTex2du4a" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" - Name 153 "Color" - Name 155 "Depth" + Name 104 "Color" + Name 108 "Depth" + Name 114 "g_tTex3df4" + Name 117 "g_tTex3di4" + Name 120 "g_tTex3du4" + Name 123 "g_tTexcdf4" + Name 126 "g_tTexcdi4" + Name 129 "g_tTexcdu4" + Name 132 "g_tTex1df4a" + Name 135 "g_tTex1di4a" + Name 138 "g_tTex1du4a" + Name 141 "g_tTex2df4a" + Name 144 "g_tTex2di4a" + Name 147 "g_tTex2du4a" + Name 150 "g_tTexcdf4a" + Name 153 "g_tTexcdi4a" + Name 156 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 @@ -372,23 +391,23 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 109(g_tTex3df4) DescriptorSet 0 - Decorate 112(g_tTex3di4) DescriptorSet 0 - Decorate 115(g_tTex3du4) DescriptorSet 0 - Decorate 118(g_tTexcdf4) DescriptorSet 0 - Decorate 121(g_tTexcdi4) DescriptorSet 0 - Decorate 124(g_tTexcdu4) DescriptorSet 0 - Decorate 127(g_tTex1df4a) DescriptorSet 0 - Decorate 130(g_tTex1di4a) DescriptorSet 0 - Decorate 133(g_tTex1du4a) DescriptorSet 0 - Decorate 136(g_tTex2df4a) DescriptorSet 0 - Decorate 139(g_tTex2di4a) DescriptorSet 0 - Decorate 142(g_tTex2du4a) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 - Decorate 153(Color) Location 0 - Decorate 155(Depth) BuiltIn FragDepth + Decorate 104(Color) Location 0 + Decorate 108(Depth) BuiltIn FragDepth + Decorate 114(g_tTex3df4) DescriptorSet 0 + Decorate 117(g_tTex3di4) DescriptorSet 0 + Decorate 120(g_tTex3du4) DescriptorSet 0 + Decorate 123(g_tTexcdf4) DescriptorSet 0 + Decorate 126(g_tTexcdi4) DescriptorSet 0 + Decorate 129(g_tTexcdu4) DescriptorSet 0 + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 135(g_tTex1di4a) DescriptorSet 0 + Decorate 138(g_tTex1du4a) DescriptorSet 0 + Decorate 141(g_tTex2df4a) DescriptorSet 0 + Decorate 144(g_tTex2di4a) DescriptorSet 0 + Decorate 147(g_tTex2du4a) DescriptorSet 0 + Decorate 150(g_tTexcdf4a) DescriptorSet 0 + Decorate 153(g_tTexcdi4a) DescriptorSet 0 + Decorate 156(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -446,57 +465,55 @@ gl_FragCoord origin is upper left 98: 92(fvec4) ConstantComposite 97 97 97 97 99: TypePointer Function 92(fvec4) 101: 23(int) Constant 1 - 103: TypePointer Output 93(PS_OUTPUT) -104(@entryPointOutput): 103(ptr) Variable Output - 107: TypeImage 6(float) 3D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex3df4): 108(ptr) Variable UniformConstant - 110: TypeImage 23(int) 3D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex3di4): 111(ptr) Variable UniformConstant - 113: TypeImage 39(int) 3D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex3du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdf4): 117(ptr) Variable UniformConstant - 119: TypeImage 23(int) Cube sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTexcdi4): 120(ptr) Variable UniformConstant - 122: TypeImage 39(int) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdu4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 1D array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTex1df4a): 126(ptr) Variable UniformConstant - 128: TypeImage 23(int) 1D array sampled format:Unknown - 129: TypePointer UniformConstant 128 -130(g_tTex1di4a): 129(ptr) Variable UniformConstant - 131: TypeImage 39(int) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1du4a): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) 2D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex2df4a): 135(ptr) Variable UniformConstant - 137: TypeImage 23(int) 2D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex2di4a): 138(ptr) Variable UniformConstant - 140: TypeImage 39(int) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2du4a): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 23(int) Cube array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 39(int) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant - 152: TypePointer Output 92(fvec4) - 153(Color): 152(ptr) Variable Output - 154: TypePointer Output 6(float) - 155(Depth): 154(ptr) Variable Output + 103: TypePointer Output 92(fvec4) + 104(Color): 103(ptr) Variable Output + 107: TypePointer Output 6(float) + 108(Depth): 107(ptr) Variable Output + 112: TypeImage 6(float) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3df4): 113(ptr) Variable UniformConstant + 115: TypeImage 23(int) 3D sampled format:Unknown + 116: TypePointer UniformConstant 115 + 117(g_tTex3di4): 116(ptr) Variable UniformConstant + 118: TypeImage 39(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3du4): 119(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTexcdf4): 122(ptr) Variable UniformConstant + 124: TypeImage 23(int) Cube sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTexcdi4): 125(ptr) Variable UniformConstant + 127: TypeImage 39(int) Cube sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTexcdu4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) 1D array sampled format:Unknown + 131: TypePointer UniformConstant 130 +132(g_tTex1df4a): 131(ptr) Variable UniformConstant + 133: TypeImage 23(int) 1D array sampled format:Unknown + 134: TypePointer UniformConstant 133 +135(g_tTex1di4a): 134(ptr) Variable UniformConstant + 136: TypeImage 39(int) 1D array sampled format:Unknown + 137: TypePointer UniformConstant 136 +138(g_tTex1du4a): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 2D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex2df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 23(int) 2D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex2di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 39(int) 2D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex2du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdf4a): 149(ptr) Variable UniformConstant + 151: TypeImage 23(int) Cube array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTexcdi4a): 152(ptr) Variable UniformConstant + 154: TypeImage 39(int) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdu4a): 155(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function @@ -549,7 +566,11 @@ gl_FragCoord origin is upper left Store 100 98 102: 7(ptr) AccessChain 95(psout) 101 Store 102 97 - 105:93(PS_OUTPUT) Load 95(psout) - Store 104(@entryPointOutput) 105 + 105: 99(ptr) AccessChain 95(psout) 96 + 106: 92(fvec4) Load 105 + Store 104(Color) 106 + 109: 7(ptr) AccessChain 95(psout) 101 + 110: 6(float) Load 109 + Store 108(Depth) 110 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index f529d464..ac23b8fa 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -130,10 +130,20 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -296,10 +306,20 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:66 Sequence -0:66 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:66 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:66 Color: direct index for structure (temp 4-component vector of float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 0 (const int) +0:66 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:66 Depth: direct index for structure (temp float FragDepth) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Constant: +0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -329,14 +349,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 163 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 159 161 + EntryPoint Fragment 4 "main" 110 114 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" @@ -356,24 +376,23 @@ gl_FragCoord origin is upper left MemberName 99(PS_OUTPUT) 0 "Color" MemberName 99(PS_OUTPUT) 1 "Depth" Name 101 "psout" - Name 110 "@entryPointOutput" - Name 115 "g_tTex1df4" - Name 118 "g_tTex1di4" - Name 121 "g_tTex1du4" - Name 124 "g_tTex2df4" - Name 127 "g_tTex2di4" - Name 130 "g_tTex2du4" - Name 133 "g_tTex3df4" - Name 136 "g_tTex3di4" - Name 139 "g_tTex3du4" - Name 142 "g_tTexcdf4" - Name 145 "g_tTexcdi4" - Name 148 "g_tTexcdu4" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 159 "Color" - Name 161 "Depth" + Name 110 "Color" + Name 114 "Depth" + Name 120 "g_tTex1df4" + Name 123 "g_tTex1di4" + Name 126 "g_tTex1du4" + Name 129 "g_tTex2df4" + Name 132 "g_tTex2di4" + Name 135 "g_tTex2du4" + Name 138 "g_tTex3df4" + Name 141 "g_tTex3di4" + Name 144 "g_tTex3du4" + Name 147 "g_tTexcdf4" + Name 150 "g_tTexcdi4" + Name 153 "g_tTexcdu4" + Name 156 "g_tTexcdf4a" + Name 159 "g_tTexcdi4a" + Name 162 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 @@ -383,24 +402,24 @@ gl_FragCoord origin is upper left Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 115(g_tTex1df4) DescriptorSet 0 - Decorate 115(g_tTex1df4) Binding 0 - Decorate 118(g_tTex1di4) DescriptorSet 0 - Decorate 121(g_tTex1du4) DescriptorSet 0 - Decorate 124(g_tTex2df4) DescriptorSet 0 - Decorate 127(g_tTex2di4) DescriptorSet 0 - Decorate 130(g_tTex2du4) DescriptorSet 0 - Decorate 133(g_tTex3df4) DescriptorSet 0 - Decorate 136(g_tTex3di4) DescriptorSet 0 - Decorate 139(g_tTex3du4) DescriptorSet 0 - Decorate 142(g_tTexcdf4) DescriptorSet 0 - Decorate 145(g_tTexcdi4) DescriptorSet 0 - Decorate 148(g_tTexcdu4) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 - Decorate 159(Color) Location 0 - Decorate 161(Depth) BuiltIn FragDepth + Decorate 110(Color) Location 0 + Decorate 114(Depth) BuiltIn FragDepth + Decorate 120(g_tTex1df4) DescriptorSet 0 + Decorate 120(g_tTex1df4) Binding 0 + Decorate 123(g_tTex1di4) DescriptorSet 0 + Decorate 126(g_tTex1du4) DescriptorSet 0 + Decorate 129(g_tTex2df4) DescriptorSet 0 + Decorate 132(g_tTex2di4) DescriptorSet 0 + Decorate 135(g_tTex2du4) DescriptorSet 0 + Decorate 138(g_tTex3df4) DescriptorSet 0 + Decorate 141(g_tTex3di4) DescriptorSet 0 + Decorate 144(g_tTex3du4) DescriptorSet 0 + Decorate 147(g_tTexcdf4) DescriptorSet 0 + Decorate 150(g_tTexcdi4) DescriptorSet 0 + Decorate 153(g_tTexcdu4) DescriptorSet 0 + Decorate 156(g_tTexcdf4a) DescriptorSet 0 + Decorate 159(g_tTexcdi4a) DescriptorSet 0 + Decorate 162(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -461,57 +480,55 @@ gl_FragCoord origin is upper left 104: 98(fvec4) ConstantComposite 103 103 103 103 105: TypePointer Function 98(fvec4) 107: 27(int) Constant 1 - 109: TypePointer Output 99(PS_OUTPUT) -110(@entryPointOutput): 109(ptr) Variable Output - 113: TypeImage 6(float) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1df4): 114(ptr) Variable UniformConstant - 116: TypeImage 27(int) 1D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex1di4): 117(ptr) Variable UniformConstant - 119: TypeImage 44(int) 1D sampled format:Unknown - 120: TypePointer UniformConstant 119 - 121(g_tTex1du4): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) 2D sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTex2df4): 123(ptr) Variable UniformConstant - 125: TypeImage 27(int) 2D sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTex2di4): 126(ptr) Variable UniformConstant - 128: TypeImage 44(int) 2D sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTex2du4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 3D sampled format:Unknown - 132: TypePointer UniformConstant 131 - 133(g_tTex3df4): 132(ptr) Variable UniformConstant - 134: TypeImage 27(int) 3D sampled format:Unknown - 135: TypePointer UniformConstant 134 - 136(g_tTex3di4): 135(ptr) Variable UniformConstant - 137: TypeImage 44(int) 3D sampled format:Unknown - 138: TypePointer UniformConstant 137 - 139(g_tTex3du4): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) Cube sampled format:Unknown - 141: TypePointer UniformConstant 140 - 142(g_tTexcdf4): 141(ptr) Variable UniformConstant - 143: TypeImage 27(int) Cube sampled format:Unknown - 144: TypePointer UniformConstant 143 - 145(g_tTexcdi4): 144(ptr) Variable UniformConstant - 146: TypeImage 44(int) Cube sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTexcdu4): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 27(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 44(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158: TypePointer Output 98(fvec4) - 159(Color): 158(ptr) Variable Output - 160: TypePointer Output 6(float) - 161(Depth): 160(ptr) Variable Output + 109: TypePointer Output 98(fvec4) + 110(Color): 109(ptr) Variable Output + 113: TypePointer Output 6(float) + 114(Depth): 113(ptr) Variable Output + 118: TypeImage 6(float) 1D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex1df4): 119(ptr) Variable UniformConstant + 121: TypeImage 27(int) 1D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex1di4): 122(ptr) Variable UniformConstant + 124: TypeImage 44(int) 1D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex1du4): 125(ptr) Variable UniformConstant + 127: TypeImage 6(float) 2D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex2df4): 128(ptr) Variable UniformConstant + 130: TypeImage 27(int) 2D sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTex2di4): 131(ptr) Variable UniformConstant + 133: TypeImage 44(int) 2D sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTex2du4): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) 3D sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTex3df4): 137(ptr) Variable UniformConstant + 139: TypeImage 27(int) 3D sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTex3di4): 140(ptr) Variable UniformConstant + 142: TypeImage 44(int) 3D sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTex3du4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) Cube sampled format:Unknown + 146: TypePointer UniformConstant 145 + 147(g_tTexcdf4): 146(ptr) Variable UniformConstant + 148: TypeImage 27(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdi4): 149(ptr) Variable UniformConstant + 151: TypeImage 44(int) Cube sampled format:Unknown + 152: TypePointer UniformConstant 151 + 153(g_tTexcdu4): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) Cube array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTexcdf4a): 155(ptr) Variable UniformConstant + 157: TypeImage 27(int) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdi4a): 158(ptr) Variable UniformConstant + 160: TypeImage 44(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdu4a): 161(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function @@ -567,7 +584,11 @@ gl_FragCoord origin is upper left Store 106 104 108: 7(ptr) AccessChain 101(psout) 107 Store 108 103 - 111:99(PS_OUTPUT) Load 101(psout) - Store 110(@entryPointOutput) 111 + 111: 105(ptr) AccessChain 101(psout) 102 + 112: 98(fvec4) Load 111 + Store 110(Color) 112 + 115: 7(ptr) AccessChain 101(psout) 107 + 116: 6(float) Load 115 + Store 114(Depth) 116 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 75b31249..70e0fbe6 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -175,10 +175,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -375,10 +385,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -397,14 +417,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 132 +// Id's are bound by 133 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 124 129 131 + EntryPoint Fragment 4 "main" 124 128 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -430,10 +450,9 @@ gl_FragCoord origin is upper left MemberName 113(PS_OUTPUT) 0 "Color" MemberName 113(PS_OUTPUT) 1 "Depth" Name 115 "psout" - Name 124 "@entryPointOutput" - Name 127 "g_tTex1df4a" - Name 129 "Color" - Name 131 "Depth" + Name 124 "Color" + Name 128 "Depth" + Name 132 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -447,10 +466,10 @@ gl_FragCoord origin is upper left Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 127(g_tTex1df4a) DescriptorSet 0 - Decorate 127(g_tTex1df4a) Binding 1 - Decorate 129(Color) Location 0 - Decorate 131(Depth) BuiltIn FragDepth + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 132(g_tTex1df4a) DescriptorSet 0 + Decorate 132(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -522,13 +541,11 @@ gl_FragCoord origin is upper left 118: 7(fvec4) ConstantComposite 117 117 117 117 120: 27(int) Constant 1 121: TypePointer Function 6(float) - 123: TypePointer Output 113(PS_OUTPUT) -124(@entryPointOutput): 123(ptr) Variable Output -127(g_tTex1df4a): 11(ptr) Variable UniformConstant - 128: TypePointer Output 7(fvec4) - 129(Color): 128(ptr) Variable Output - 130: TypePointer Output 6(float) - 131(Depth): 130(ptr) Variable Output + 123: TypePointer Output 7(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output +132(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -590,7 +607,11 @@ gl_FragCoord origin is upper left Store 119 118 122: 121(ptr) AccessChain 115(psout) 120 Store 122 117 - 125:113(PS_OUTPUT) Load 115(psout) - Store 124(@entryPointOutput) 125 + 125: 8(ptr) AccessChain 115(psout) 116 + 126: 7(fvec4) Load 125 + Store 124(Color) 126 + 129: 121(ptr) AccessChain 115(psout) 120 + 130: 6(float) Load 129 + Store 128(Depth) 130 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index ed868f3b..fe075520 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -223,10 +223,20 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float FragDepth) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -474,10 +484,20 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:50 Sequence -0:50 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:50 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:50 Color: direct index for structure (temp 4-component vector of float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 0 (const int) +0:50 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:50 Depth: direct index for structure (temp float FragDepth) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Constant: +0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -499,13 +519,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 167 +// Id's are bound by 168 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 159 164 166 + EntryPoint Fragment 4 "main" 159 163 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -537,10 +557,9 @@ gl_FragCoord origin is upper left MemberName 148(PS_OUTPUT) 0 "Color" MemberName 148(PS_OUTPUT) 1 "Depth" Name 150 "psout" - Name 159 "@entryPointOutput" - Name 162 "g_tTex1df4a" - Name 164 "Color" - Name 166 "Depth" + Name 159 "Color" + Name 163 "Depth" + Name 167 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -557,10 +576,10 @@ gl_FragCoord origin is upper left Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 162(g_tTex1df4a) DescriptorSet 0 - Decorate 162(g_tTex1df4a) Binding 1 - Decorate 164(Color) Location 0 - Decorate 166(Depth) BuiltIn FragDepth + Decorate 159(Color) Location 0 + Decorate 163(Depth) BuiltIn FragDepth + Decorate 167(g_tTex1df4a) DescriptorSet 0 + Decorate 167(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -652,13 +671,11 @@ gl_FragCoord origin is upper left 153: 7(fvec4) ConstantComposite 152 152 152 152 155: 24(int) Constant 1 156: TypePointer Function 6(float) - 158: TypePointer Output 148(PS_OUTPUT) -159(@entryPointOutput): 158(ptr) Variable Output -162(g_tTex1df4a): 11(ptr) Variable UniformConstant - 163: TypePointer Output 7(fvec4) - 164(Color): 163(ptr) Variable Output - 165: TypePointer Output 6(float) - 166(Depth): 165(ptr) Variable Output + 158: TypePointer Output 7(fvec4) + 159(Color): 158(ptr) Variable Output + 162: TypePointer Output 6(float) + 163(Depth): 162(ptr) Variable Output +167(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -738,7 +755,11 @@ gl_FragCoord origin is upper left Store 154 153 157: 156(ptr) AccessChain 150(psout) 155 Store 157 152 - 160:148(PS_OUTPUT) Load 150(psout) - Store 159(@entryPointOutput) 160 + 160: 8(ptr) AccessChain 150(psout) 151 + 161: 7(fvec4) Load 160 + Store 159(Color) 161 + 164: 156(ptr) AccessChain 150(psout) 155 + 165: 6(float) Load 164 + Store 163(Depth) 165 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 7a677aca..f2d6af7f 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -215,10 +215,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float Position) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -457,10 +461,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float Position) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -481,13 +489,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 161 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 156 161 + EntryPoint Vertex 4 "main" 156 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -517,9 +525,8 @@ Shader version: 450 Name 148 "VS_OUTPUT" MemberName 148(VS_OUTPUT) 0 "Pos" Name 150 "vsout" - Name 156 "@entryPointOutput" - Name 159 "g_tTex1df4a" - Name 161 "Pos" + Name 156 "Pos" + Name 160 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -536,9 +543,9 @@ Shader version: 450 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position - Decorate 159(g_tTex1df4a) DescriptorSet 0 - Decorate 159(g_tTex1df4a) Binding 1 - Decorate 161(Pos) BuiltIn Position + Decorate 156(Pos) BuiltIn Position + Decorate 160(g_tTex1df4a) DescriptorSet 0 + Decorate 160(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -628,11 +635,9 @@ Shader version: 450 151: 24(int) Constant 0 152: 6(float) Constant 0 153: 7(fvec4) ConstantComposite 152 152 152 152 - 155: TypePointer Output 148(VS_OUTPUT) -156(@entryPointOutput): 155(ptr) Variable Output -159(g_tTex1df4a): 11(ptr) Variable UniformConstant - 160: TypePointer Output 7(fvec4) - 161(Pos): 160(ptr) Variable Output + 155: TypePointer Output 7(fvec4) + 156(Pos): 155(ptr) Variable Output +160(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -710,7 +715,8 @@ Shader version: 450 Store 139(txval42) 147 154: 8(ptr) AccessChain 150(vsout) 151 Store 154 153 - 157:148(VS_OUTPUT) Load 150(vsout) - Store 156(@entryPointOutput) 157 + 157: 8(ptr) AccessChain 150(vsout) 151 + 158: 7(fvec4) Load 157 + Store 156(Pos) 158 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index ce3b2cac..4bfdadf3 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -193,10 +193,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -414,10 +424,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -439,13 +459,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 159 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 155 157 + EntryPoint Fragment 4 "main" 141 145 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -471,13 +491,12 @@ gl_FragCoord origin is upper left MemberName 132(PS_OUTPUT) 0 "Color" MemberName 132(PS_OUTPUT) 1 "Depth" Name 134 "psout" - Name 141 "@entryPointOutput" - Name 144 "g_tTex1df4a" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Name 155 "Color" - Name 157 "Depth" + Name 141 "Color" + Name 145 "Depth" + Name 149 "g_tTex1df4a" + Name 152 "g_tTexcdf4" + Name 155 "g_tTexcdi4" + Name 158 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -491,13 +510,13 @@ gl_FragCoord origin is upper left Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 144(g_tTex1df4a) DescriptorSet 0 - Decorate 144(g_tTex1df4a) Binding 1 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 - Decorate 155(Color) Location 0 - Decorate 157(Depth) BuiltIn FragDepth + Decorate 141(Color) Location 0 + Decorate 145(Depth) BuiltIn FragDepth + Decorate 149(g_tTex1df4a) DescriptorSet 0 + Decorate 149(g_tTex1df4a) Binding 1 + Decorate 152(g_tTexcdf4) DescriptorSet 0 + Decorate 155(g_tTexcdi4) DescriptorSet 0 + Decorate 158(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -586,22 +605,20 @@ gl_FragCoord origin is upper left 135: 6(float) Constant 1065353216 136: 7(fvec4) ConstantComposite 135 135 135 135 138: TypePointer Function 6(float) - 140: TypePointer Output 132(PS_OUTPUT) -141(@entryPointOutput): 140(ptr) Variable Output -144(g_tTex1df4a): 11(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown - 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 23(int) Cube sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 38(int) Cube sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant - 154: TypePointer Output 7(fvec4) - 155(Color): 154(ptr) Variable Output - 156: TypePointer Output 6(float) - 157(Depth): 156(ptr) Variable Output + 140: TypePointer Output 7(fvec4) + 141(Color): 140(ptr) Variable Output + 144: TypePointer Output 6(float) + 145(Depth): 144(ptr) Variable Output +149(g_tTex1df4a): 11(ptr) Variable UniformConstant + 150: TypeImage 6(float) Cube sampled format:Unknown + 151: TypePointer UniformConstant 150 + 152(g_tTexcdf4): 151(ptr) Variable UniformConstant + 153: TypeImage 23(int) Cube sampled format:Unknown + 154: TypePointer UniformConstant 153 + 155(g_tTexcdi4): 154(ptr) Variable UniformConstant + 156: TypeImage 38(int) Cube sampled format:Unknown + 157: TypePointer UniformConstant 156 + 158(g_tTexcdu4): 157(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -663,7 +680,11 @@ gl_FragCoord origin is upper left Store 137 136 139: 138(ptr) AccessChain 134(psout) 24 Store 139 135 - 142:132(PS_OUTPUT) Load 134(psout) - Store 141(@entryPointOutput) 142 + 142: 8(ptr) AccessChain 134(psout) 63 + 143: 7(fvec4) Load 142 + Store 141(Color) 143 + 146: 138(ptr) AccessChain 134(psout) 24 + 147: 6(float) Load 146 + Store 145(Depth) 147 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 4e9f2af6..fc4cb532 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -130,10 +130,20 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Sequence -0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:38 Color: direct index for structure (temp 4-component vector of float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:38 Depth: direct index for structure (temp float FragDepth) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Constant: +0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,10 +295,20 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:38 Sequence -0:38 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:38 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:38 Color: direct index for structure (temp 4-component vector of float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Constant: +0:38 0 (const int) +0:38 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:38 Depth: direct index for structure (temp float FragDepth) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Constant: +0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,14 +327,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 112 +// Id's are bound by 113 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 95 109 111 + EntryPoint Fragment 4 "main" 95 99 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -334,13 +354,12 @@ gl_FragCoord origin is upper left MemberName 86(PS_OUTPUT) 0 "Color" MemberName 86(PS_OUTPUT) 1 "Depth" Name 88 "psout" - Name 95 "@entryPointOutput" - Name 98 "g_tTex1df4a" - Name 101 "g_tTexcdf4" - Name 104 "g_tTexcdi4" - Name 107 "g_tTexcdu4" - Name 109 "Color" - Name 111 "Depth" + Name 95 "Color" + Name 99 "Depth" + Name 103 "g_tTex1df4a" + Name 106 "g_tTexcdf4" + Name 109 "g_tTexcdi4" + Name 112 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -351,13 +370,13 @@ gl_FragCoord origin is upper left Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 98(g_tTex1df4a) DescriptorSet 0 - Decorate 98(g_tTex1df4a) Binding 1 - Decorate 101(g_tTexcdf4) DescriptorSet 0 - Decorate 104(g_tTexcdi4) DescriptorSet 0 - Decorate 107(g_tTexcdu4) DescriptorSet 0 - Decorate 109(Color) Location 0 - Decorate 111(Depth) BuiltIn FragDepth + Decorate 95(Color) Location 0 + Decorate 99(Depth) BuiltIn FragDepth + Decorate 103(g_tTex1df4a) DescriptorSet 0 + Decorate 103(g_tTex1df4a) Binding 1 + Decorate 106(g_tTexcdf4) DescriptorSet 0 + Decorate 109(g_tTexcdi4) DescriptorSet 0 + Decorate 112(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -415,22 +434,20 @@ gl_FragCoord origin is upper left 89: 6(float) Constant 1065353216 90: 7(fvec4) ConstantComposite 89 89 89 89 92: TypePointer Function 6(float) - 94: TypePointer Output 86(PS_OUTPUT) -95(@entryPointOutput): 94(ptr) Variable Output - 98(g_tTex1df4a): 11(ptr) Variable UniformConstant - 99: TypeImage 6(float) Cube array sampled format:Unknown - 100: TypePointer UniformConstant 99 - 101(g_tTexcdf4): 100(ptr) Variable UniformConstant - 102: TypeImage 26(int) Cube array sampled format:Unknown - 103: TypePointer UniformConstant 102 - 104(g_tTexcdi4): 103(ptr) Variable UniformConstant - 105: TypeImage 40(int) Cube array sampled format:Unknown - 106: TypePointer UniformConstant 105 - 107(g_tTexcdu4): 106(ptr) Variable UniformConstant - 108: TypePointer Output 7(fvec4) - 109(Color): 108(ptr) Variable Output - 110: TypePointer Output 6(float) - 111(Depth): 110(ptr) Variable Output + 94: TypePointer Output 7(fvec4) + 95(Color): 94(ptr) Variable Output + 98: TypePointer Output 6(float) + 99(Depth): 98(ptr) Variable Output +103(g_tTex1df4a): 11(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube array sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTexcdf4): 105(ptr) Variable UniformConstant + 107: TypeImage 26(int) Cube array sampled format:Unknown + 108: TypePointer UniformConstant 107 + 109(g_tTexcdi4): 108(ptr) Variable UniformConstant + 110: TypeImage 40(int) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 + 112(g_tTexcdu4): 111(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -474,7 +491,11 @@ gl_FragCoord origin is upper left Store 91 90 93: 92(ptr) AccessChain 88(psout) 27 Store 93 89 - 96:86(PS_OUTPUT) Load 88(psout) - Store 95(@entryPointOutput) 96 + 96: 8(ptr) AccessChain 88(psout) 65 + 97: 7(fvec4) Load 96 + Store 95(Color) 97 + 100: 92(ptr) AccessChain 88(psout) 27 + 101: 6(float) Load 100 + Store 99(Depth) 101 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 675c3f8a..192edb12 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -139,10 +139,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -303,10 +313,20 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:42 Sequence -0:42 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:42 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:42 Color: direct index for structure (temp 4-component vector of float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 0 (const int) +0:42 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:42 Depth: direct index for structure (temp float FragDepth) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Constant: +0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -325,14 +345,14 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 139 +// Id's are bound by 140 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 131 136 138 + EntryPoint Fragment 4 "main" 131 135 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -358,10 +378,9 @@ gl_FragCoord origin is upper left MemberName 121(PS_OUTPUT) 0 "Color" MemberName 121(PS_OUTPUT) 1 "Depth" Name 123 "psout" - Name 131 "@entryPointOutput" - Name 134 "g_tTex1df4" - Name 136 "Color" - Name 138 "Depth" + Name 131 "Color" + Name 135 "Depth" + Name 139 "g_tTex1df4" Decorate 12(g_tTex1df4a) DescriptorSet 0 Decorate 12(g_tTex1df4a) Binding 1 Decorate 16(g_sSamp) DescriptorSet 0 @@ -375,10 +394,10 @@ gl_FragCoord origin is upper left Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 134(g_tTex1df4) DescriptorSet 0 - Decorate 134(g_tTex1df4) Binding 0 - Decorate 136(Color) Location 0 - Decorate 138(Depth) BuiltIn FragDepth + Decorate 131(Color) Location 0 + Decorate 135(Depth) BuiltIn FragDepth + Decorate 139(g_tTex1df4) DescriptorSet 0 + Decorate 139(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -457,13 +476,11 @@ gl_FragCoord origin is upper left 125: 7(fvec4) ConstantComposite 118 118 118 118 127: 26(int) Constant 1 128: TypePointer Function 6(float) - 130: TypePointer Output 121(PS_OUTPUT) -131(@entryPointOutput): 130(ptr) Variable Output - 134(g_tTex1df4): 11(ptr) Variable UniformConstant - 135: TypePointer Output 7(fvec4) - 136(Color): 135(ptr) Variable Output - 137: TypePointer Output 6(float) - 138(Depth): 137(ptr) Variable Output + 130: TypePointer Output 7(fvec4) + 131(Color): 130(ptr) Variable Output + 134: TypePointer Output 6(float) + 135(Depth): 134(ptr) Variable Output + 139(g_tTex1df4): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -525,7 +542,11 @@ gl_FragCoord origin is upper left Store 126 125 129: 128(ptr) AccessChain 123(psout) 127 Store 129 118 - 132:121(PS_OUTPUT) Load 123(psout) - Store 131(@entryPointOutput) 132 + 132: 8(ptr) AccessChain 123(psout) 124 + 133: 7(fvec4) Load 132 + Store 131(Color) 133 + 136: 128(ptr) AccessChain 123(psout) 127 + 137: 6(float) Load 136 + Store 135(Depth) 137 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 96def42f..e96a5245 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -169,10 +169,20 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Sequence -0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:51 Depth: direct index for structure (temp float FragDepth) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -367,10 +377,20 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:51 Sequence -0:51 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:51 Color: direct index for structure (temp 4-component vector of float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 0 (const int) +0:51 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:51 Depth: direct index for structure (temp float FragDepth) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Constant: +0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -393,13 +413,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 164 +// Id's are bound by 165 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 155 161 163 + EntryPoint Fragment 4 "main" 155 159 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -431,11 +451,10 @@ gl_FragCoord origin is upper left MemberName 144(PS_OUTPUT) 0 "Color" MemberName 144(PS_OUTPUT) 1 "Depth" Name 146 "psout" - Name 155 "@entryPointOutput" - Name 158 "g_sSamp2d" - Name 159 "g_tTex1df4a" - Name 161 "Color" - Name 163 "Depth" + Name 155 "Color" + Name 159 "Depth" + Name 163 "g_sSamp2d" + Name 164 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -452,11 +471,11 @@ gl_FragCoord origin is upper left Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 158(g_sSamp2d) DescriptorSet 0 - Decorate 159(g_tTex1df4a) DescriptorSet 0 - Decorate 159(g_tTex1df4a) Binding 1 - Decorate 161(Color) Location 0 - Decorate 163(Depth) BuiltIn FragDepth + Decorate 155(Color) Location 0 + Decorate 159(Depth) BuiltIn FragDepth + Decorate 163(g_sSamp2d) DescriptorSet 0 + Decorate 164(g_tTex1df4a) DescriptorSet 0 + Decorate 164(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -544,14 +563,12 @@ gl_FragCoord origin is upper left 149: 7(fvec4) ConstantComposite 148 148 148 148 151: 23(int) Constant 1 152: TypePointer Function 6(float) - 154: TypePointer Output 144(PS_OUTPUT) -155(@entryPointOutput): 154(ptr) Variable Output - 158(g_sSamp2d): 15(ptr) Variable UniformConstant -159(g_tTex1df4a): 11(ptr) Variable UniformConstant - 160: TypePointer Output 7(fvec4) - 161(Color): 160(ptr) Variable Output - 162: TypePointer Output 6(float) - 163(Depth): 162(ptr) Variable Output + 154: TypePointer Output 7(fvec4) + 155(Color): 154(ptr) Variable Output + 158: TypePointer Output 6(float) + 159(Depth): 158(ptr) Variable Output + 163(g_sSamp2d): 15(ptr) Variable UniformConstant +164(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -631,7 +648,11 @@ gl_FragCoord origin is upper left Store 150 149 153: 152(ptr) AccessChain 146(psout) 151 Store 153 148 - 156:144(PS_OUTPUT) Load 146(psout) - Store 155(@entryPointOutput) 156 + 156: 8(ptr) AccessChain 146(psout) 147 + 157: 7(fvec4) Load 156 + Store 155(Color) 157 + 160: 152(ptr) AccessChain 146(psout) 151 + 161: 6(float) Load 160 + Store 159(Depth) 161 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 73eabbc0..15c9ac73 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -161,10 +161,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float Position) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -349,10 +353,14 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Position Pos}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Position Pos}) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Pos' (out 4-component vector of float Position) +0:48 Pos: direct index for structure (temp 4-component vector of float Position) +0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Constant: +0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -373,13 +381,13 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 158 +// Id's are bound by 157 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 152 157 + EntryPoint Vertex 4 "main" 152 Name 4 "main" Name 9 "txval10" Name 12 "g_tTex1df4" @@ -409,9 +417,8 @@ Shader version: 450 Name 144 "VS_OUTPUT" MemberName 144(VS_OUTPUT) 0 "Pos" Name 146 "vsout" - Name 152 "@entryPointOutput" - Name 155 "g_tTex1df4a" - Name 157 "Pos" + Name 152 "Pos" + Name 156 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -428,9 +435,9 @@ Shader version: 450 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position - Decorate 155(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1df4a) Binding 1 - Decorate 157(Pos) BuiltIn Position + Decorate 152(Pos) BuiltIn Position + Decorate 156(g_tTex1df4a) DescriptorSet 0 + Decorate 156(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -516,11 +523,9 @@ Shader version: 450 147: 23(int) Constant 0 148: 6(float) Constant 0 149: 7(fvec4) ConstantComposite 148 148 148 148 - 151: TypePointer Output 144(VS_OUTPUT) -152(@entryPointOutput): 151(ptr) Variable Output -155(g_tTex1df4a): 11(ptr) Variable UniformConstant - 156: TypePointer Output 7(fvec4) - 157(Pos): 156(ptr) Variable Output + 151: TypePointer Output 7(fvec4) + 152(Pos): 151(ptr) Variable Output +156(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -598,7 +603,8 @@ Shader version: 450 Store 135(txval42) 143 150: 8(ptr) AccessChain 146(vsout) 147 Store 150 149 - 153:144(VS_OUTPUT) Load 146(vsout) - Store 152(@entryPointOutput) 153 + 153: 8(ptr) AccessChain 146(vsout) 147 + 154: 7(fvec4) Load 153 + Store 152(Pos) 154 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 9d32ce58..712f0503 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -157,10 +157,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -342,10 +352,20 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:48 Sequence -0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 0 (const int) +0:48 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:48 Depth: direct index for structure (temp float FragDepth) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Constant: +0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -367,13 +387,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 155 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 137 151 153 + EntryPoint Fragment 4 "main" 137 141 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -399,13 +419,12 @@ gl_FragCoord origin is upper left MemberName 128(PS_OUTPUT) 0 "Color" MemberName 128(PS_OUTPUT) 1 "Depth" Name 130 "psout" - Name 137 "@entryPointOutput" - Name 140 "g_tTex1df4a" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" - Name 151 "Color" - Name 153 "Depth" + Name 137 "Color" + Name 141 "Depth" + Name 145 "g_tTex1df4a" + Name 148 "g_tTexcdf4" + Name 151 "g_tTexcdi4" + Name 154 "g_tTexcdu4" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -419,13 +438,13 @@ gl_FragCoord origin is upper left Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 140(g_tTex1df4a) Binding 1 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 - Decorate 151(Color) Location 0 - Decorate 153(Depth) BuiltIn FragDepth + Decorate 137(Color) Location 0 + Decorate 141(Depth) BuiltIn FragDepth + Decorate 145(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1df4a) Binding 1 + Decorate 148(g_tTexcdf4) DescriptorSet 0 + Decorate 151(g_tTexcdi4) DescriptorSet 0 + Decorate 154(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -510,22 +529,20 @@ gl_FragCoord origin is upper left 131: 6(float) Constant 1065353216 132: 7(fvec4) ConstantComposite 131 131 131 131 134: TypePointer Function 6(float) - 136: TypePointer Output 128(PS_OUTPUT) -137(@entryPointOutput): 136(ptr) Variable Output -140(g_tTex1df4a): 11(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 22(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 37(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant - 150: TypePointer Output 7(fvec4) - 151(Color): 150(ptr) Variable Output - 152: TypePointer Output 6(float) - 153(Depth): 152(ptr) Variable Output + 136: TypePointer Output 7(fvec4) + 137(Color): 136(ptr) Variable Output + 140: TypePointer Output 6(float) + 141(Depth): 140(ptr) Variable Output +145(g_tTex1df4a): 11(ptr) Variable UniformConstant + 146: TypeImage 6(float) Cube sampled format:Unknown + 147: TypePointer UniformConstant 146 + 148(g_tTexcdf4): 147(ptr) Variable UniformConstant + 149: TypeImage 22(int) Cube sampled format:Unknown + 150: TypePointer UniformConstant 149 + 151(g_tTexcdi4): 150(ptr) Variable UniformConstant + 152: TypeImage 37(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdu4): 153(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -587,7 +604,11 @@ gl_FragCoord origin is upper left Store 133 132 135: 134(ptr) AccessChain 130(psout) 23 Store 135 131 - 138:128(PS_OUTPUT) Load 130(psout) - Store 137(@entryPointOutput) 138 + 138: 8(ptr) AccessChain 130(psout) 61 + 139: 7(fvec4) Load 138 + Store 137(Color) 139 + 142: 134(ptr) AccessChain 130(psout) 23 + 143: 6(float) Load 142 + Store 141(Depth) 143 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index d628a7c1..02f4a329 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -112,10 +112,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -246,10 +256,20 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:36 Sequence -0:36 move second child to first child (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color, temp float FragDepth Depth}) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:? Sequence +0:? Sequence +0:36 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:36 Color: direct index for structure (temp 4-component vector of float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 0 (const int) +0:36 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:36 Depth: direct index for structure (temp float FragDepth) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Constant: +0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -265,13 +285,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 111 +// Id's are bound by 112 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 108 110 + EntryPoint Fragment 4 "main" 103 107 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval10" @@ -291,10 +311,9 @@ gl_FragCoord origin is upper left MemberName 94(PS_OUTPUT) 0 "Color" MemberName 94(PS_OUTPUT) 1 "Depth" Name 96 "psout" - Name 103 "@entryPointOutput" - Name 106 "g_tTex1df4a" - Name 108 "Color" - Name 110 "Depth" + Name 103 "Color" + Name 107 "Depth" + Name 111 "g_tTex1df4a" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 Decorate 16(g_sSamp) DescriptorSet 0 @@ -305,10 +324,10 @@ gl_FragCoord origin is upper left Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 106(g_tTex1df4a) DescriptorSet 0 - Decorate 106(g_tTex1df4a) Binding 1 - Decorate 108(Color) Location 0 - Decorate 110(Depth) BuiltIn FragDepth + Decorate 103(Color) Location 0 + Decorate 107(Depth) BuiltIn FragDepth + Decorate 111(g_tTex1df4a) DescriptorSet 0 + Decorate 111(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -374,13 +393,11 @@ gl_FragCoord origin is upper left 97: 6(float) Constant 1065353216 98: 7(fvec4) ConstantComposite 97 97 97 97 100: TypePointer Function 6(float) - 102: TypePointer Output 94(PS_OUTPUT) -103(@entryPointOutput): 102(ptr) Variable Output -106(g_tTex1df4a): 11(ptr) Variable UniformConstant - 107: TypePointer Output 7(fvec4) - 108(Color): 107(ptr) Variable Output - 109: TypePointer Output 6(float) - 110(Depth): 109(ptr) Variable Output + 102: TypePointer Output 7(fvec4) + 103(Color): 102(ptr) Variable Output + 106: TypePointer Output 6(float) + 107(Depth): 106(ptr) Variable Output +111(g_tTex1df4a): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval10): 8(ptr) Variable Function @@ -424,7 +441,11 @@ gl_FragCoord origin is upper left Store 99 98 101: 100(ptr) AccessChain 96(psout) 40 Store 101 97 - 104:94(PS_OUTPUT) Load 96(psout) - Store 103(@entryPointOutput) 104 + 104: 8(ptr) AccessChain 96(psout) 26 + 105: 7(fvec4) Load 104 + Store 103(Color) 105 + 108: 100(ptr) AccessChain 96(psout) 40 + 109: 6(float) Load 108 + Store 107(Depth) 109 Return FunctionEnd diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 2d066905..a37991d8 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -19,10 +19,14 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Constant: +0:17 0 (const int) 0:17 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -51,22 +55,26 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:17 Sequence -0:17 move second child to first child (temp structure{temp 4-component vector of float color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float color}) -0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:? Sequence +0:? Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'ps_output' (temp structure{temp 4-component vector of float color}) +0:17 Constant: +0:17 0 (const int) 0:17 Branch: Return 0:? Linker Objects 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 27 +// Id's are bound by 26 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 22 26 + EntryPoint Fragment 4 "main" 22 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 6 "MyFunc(" @@ -74,9 +82,8 @@ gl_FragCoord origin is upper left Name 12 "PS_OUTPUT" MemberName 12(PS_OUTPUT) 0 "color" Name 14 "ps_output" - Name 22 "@entryPointOutput" - Name 26 "color" - Decorate 26(color) Location 0 + Name 22 "color" + Decorate 22(color) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -88,17 +95,16 @@ gl_FragCoord origin is upper left 17: 10(float) Constant 1065353216 18: 11(fvec4) ConstantComposite 17 17 17 17 19: TypePointer Function 11(fvec4) - 21: TypePointer Output 12(PS_OUTPUT) -22(@entryPointOutput): 21(ptr) Variable Output - 25: TypePointer Output 11(fvec4) - 26(color): 25(ptr) Variable Output + 21: TypePointer Output 11(fvec4) + 22(color): 21(ptr) Variable Output 4(main): 2 Function None 3 5: Label 14(ps_output): 13(ptr) Variable Function 20: 19(ptr) AccessChain 14(ps_output) 16 Store 20 18 - 23:12(PS_OUTPUT) Load 14(ps_output) - Store 22(@entryPointOutput) 23 + 23: 19(ptr) AccessChain 14(ps_output) 16 + 24: 11(fvec4) Load 23 + Store 22(color) 24 Return FunctionEnd 6(MyFunc(): 2 Function None 3 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index a7e1e971..42885bcf 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -15,10 +15,14 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -45,10 +49,14 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:19 Sequence -0:19 move second child to first child (temp structure{temp 4-component vector of float Color}) -0:? '@entryPointOutput' (out structure{temp 4-component vector of float Color}) -0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:? Sequence +0:? Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) @@ -57,23 +65,22 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 29 +// Id's are bound by 28 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 19 28 + EntryPoint Fragment 4 "main" 19 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 19 "@entryPointOutput" - Name 24 "TestTexture" - Name 26 "TestUF" - Name 28 "Color" - Decorate 24(TestTexture) DescriptorSet 0 - Decorate 28(Color) Location 0 + Name 19 "Color" + Name 25 "TestTexture" + Name 27 "TestUF" + Decorate 19(Color) Location 0 + Decorate 25(TestTexture) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -86,21 +93,20 @@ gl_FragCoord origin is upper left 14: 6(float) Constant 1065353216 15: 7(fvec4) ConstantComposite 13 13 13 14 16: TypePointer Function 7(fvec4) - 18: TypePointer Output 8(PS_OUTPUT) -19(@entryPointOutput): 18(ptr) Variable Output - 22: TypeImage 6(float) 2D sampled format:Unknown - 23: TypePointer UniformConstant 22 - 24(TestTexture): 23(ptr) Variable UniformConstant - 25: TypePointer UniformConstant 7(fvec4) - 26(TestUF): 25(ptr) Variable UniformConstant - 27: TypePointer Output 7(fvec4) - 28(Color): 27(ptr) Variable Output + 18: TypePointer Output 7(fvec4) + 19(Color): 18(ptr) Variable Output + 23: TypeImage 6(float) 2D sampled format:Unknown + 24: TypePointer UniformConstant 23 + 25(TestTexture): 24(ptr) Variable UniformConstant + 26: TypePointer UniformConstant 7(fvec4) + 27(TestUF): 26(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function 17: 16(ptr) AccessChain 10(psout) 12 Store 17 15 - 20:8(PS_OUTPUT) Load 10(psout) - Store 19(@entryPointOutput) 20 + 20: 16(ptr) AccessChain 10(psout) 12 + 21: 7(fvec4) Load 20 + Store 19(Color) 21 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 5436adf4..0c00f238 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -13,7 +13,7 @@ Linked fragment stage: Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 5663 "main" 4045 4656 4112 + EntryPoint Fragment 5663 "main" 4656 4112 ExecutionMode 5663 OriginUpperLeft Decorate 4727 DescriptorSet 0 Decorate 4727 Binding 0 @@ -130,8 +130,6 @@ Linked fragment stage: 138: 13(float) Constant 1065353216 1284: 29(fvec4) ConstantComposite 138 138 138 138 650: TypePointer Function 13(float) - 1670: TypePointer Output 1032(struct) - 4045: 1670(ptr) Variable Output 667: TypePointer Output 29(fvec4) 4656: 667(ptr) Variable Output 651: TypePointer Output 13(float) @@ -214,9 +212,13 @@ Linked fragment stage: 7204: 23(ivec4) ImageSampleImplicitLod 12016 2476 20158: 666(ptr) AccessChain 5072 2571 Store 20158 1284 - 19657: 650(ptr) AccessChain 5072 2574 - Store 19657 138 - 17934:1032(struct) Load 5072 - Store 4045 17934 + 19742: 650(ptr) AccessChain 5072 2574 + Store 19742 138 + 19848: 666(ptr) AccessChain 5072 2571 + 7967: 29(fvec4) Load 19848 + Store 4656 7967 + 16622: 650(ptr) AccessChain 5072 2574 + 11539: 13(float) Load 16622 + Store 4112 11539 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index 546763f8..34477d21 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 189 +// Id's are bound by 190 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 186 188 + EntryPoint Fragment 4 "main" 180 184 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 7 "MemberTest" @@ -59,12 +59,11 @@ Linked fragment stage: MemberName 171(PS_OUTPUT) 0 "Color" MemberName 171(PS_OUTPUT) 1 "Depth" Name 173 "psout" - Name 180 "@entryPointOutput" - Name 182 "g_sSamp2d" - Name 183 "g_sSamp2D_b" - Name 184 "g_tTex1df4a" - Name 186 "Color" - Name 188 "Depth" + Name 180 "Color" + Name 184 "Depth" + Name 187 "g_sSamp2d" + Name 188 "g_sSamp2D_b" + Name 189 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -81,12 +80,12 @@ Linked fragment stage: Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth - Decorate 182(g_sSamp2d) DescriptorSet 0 - Decorate 183(g_sSamp2D_b) DescriptorSet 0 - Decorate 184(g_tTex1df4a) DescriptorSet 0 - Decorate 184(g_tTex1df4a) Binding 1 - Decorate 186(Color) Location 0 - Decorate 188(Depth) BuiltIn FragDepth + Decorate 180(Color) Location 0 + Decorate 184(Depth) BuiltIn FragDepth + Decorate 187(g_sSamp2d) DescriptorSet 0 + Decorate 188(g_sSamp2D_b) DescriptorSet 0 + Decorate 189(g_tTex1df4a) DescriptorSet 0 + Decorate 189(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -186,15 +185,13 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(PS_OUTPUT) -180(@entryPointOutput): 179(ptr) Variable Output - 182(g_sSamp2d): 44(ptr) Variable UniformConstant -183(g_sSamp2D_b): 44(ptr) Variable UniformConstant -184(g_tTex1df4a): 40(ptr) Variable UniformConstant - 185: TypePointer Output 36(fvec4) - 186(Color): 185(ptr) Variable Output - 187: TypePointer Output 35(float) - 188(Depth): 187(ptr) Variable Output + 179: TypePointer Output 36(fvec4) + 180(Color): 179(ptr) Variable Output + 183: TypePointer Output 35(float) + 184(Depth): 183(ptr) Variable Output + 187(g_sSamp2d): 44(ptr) Variable UniformConstant +188(g_sSamp2D_b): 44(ptr) Variable UniformConstant +189(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function @@ -299,7 +296,11 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173(psout) 10 Store 178 174 - 181:171(PS_OUTPUT) Load 173(psout) - Store 180(@entryPointOutput) 181 + 181: 37(ptr) AccessChain 173(psout) 23 + 182: 36(fvec4) Load 181 + Store 180(Color) 182 + 185: 177(ptr) AccessChain 173(psout) 10 + 186: 35(float) Load 185 + Store 184(Depth) 186 Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index 7ac9e466..b4a792c2 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 189 +// Id's are bound by 190 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 180 186 188 + EntryPoint Fragment 4 "main" 180 184 ExecutionMode 4 OriginUpperLeft Decorate 41 DescriptorSet 0 Decorate 41 Binding 0 @@ -31,12 +31,12 @@ Linked fragment stage: Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 MemberDecorate 171 1 BuiltIn FragDepth - Decorate 182 DescriptorSet 0 - Decorate 183 DescriptorSet 0 - Decorate 184 DescriptorSet 0 - Decorate 184 Binding 1 - Decorate 186 Location 0 - Decorate 188 BuiltIn FragDepth + Decorate 180 Location 0 + Decorate 184 BuiltIn FragDepth + Decorate 187 DescriptorSet 0 + Decorate 188 DescriptorSet 0 + Decorate 189 DescriptorSet 0 + Decorate 189 Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -136,15 +136,13 @@ Linked fragment stage: 174: 35(float) Constant 1065353216 175: 36(fvec4) ConstantComposite 174 174 174 174 177: TypePointer Function 35(float) - 179: TypePointer Output 171(struct) + 179: TypePointer Output 36(fvec4) 180: 179(ptr) Variable Output - 182: 44(ptr) Variable UniformConstant - 183: 44(ptr) Variable UniformConstant - 184: 40(ptr) Variable UniformConstant - 185: TypePointer Output 36(fvec4) - 186: 185(ptr) Variable Output - 187: TypePointer Output 35(float) - 188: 187(ptr) Variable Output + 183: TypePointer Output 35(float) + 184: 183(ptr) Variable Output + 187: 44(ptr) Variable UniformConstant + 188: 44(ptr) Variable UniformConstant + 189: 40(ptr) Variable UniformConstant 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function @@ -249,7 +247,11 @@ Linked fragment stage: Store 176 175 178: 177(ptr) AccessChain 173 10 Store 178 174 - 181: 171(struct) Load 173 - Store 180 181 + 181: 37(ptr) AccessChain 173 23 + 182: 36(fvec4) Load 181 + Store 180 182 + 185: 177(ptr) AccessChain 173 10 + 186: 35(float) Load 185 + Store 184 186 Return FunctionEnd diff --git a/Test/hlsl.entry-out.frag b/Test/hlsl.entry-out.frag index 72389914..14f0e459 100644 --- a/Test/hlsl.entry-out.frag +++ b/Test/hlsl.entry-out.frag @@ -3,10 +3,15 @@ struct OutParam { int2 i; }; -float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2) : COLOR0 +float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam out3) : COLOR0 { out1 = input; out2.v = 2.0; out2.i = 3; + OutParam local; + local.v = 12.0; + local.i = 13; + out3 = local; + return out1; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index ad54631f..5ffcb46b 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1487" +#define GLSLANG_REVISION "Overload400-PrecQual.1489" #define GLSLANG_DATE "16-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index bad6034d..d0ff3cdb 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1672,7 +1672,7 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) return false; } - node = intermediate.addAssign(assignOp, node, rightNode, loc); + node = parseContext.handleAssign(loc, assignOp, node, rightNode); if (node == nullptr) { parseContext.error(loc, "could not create assignment", "", ""); return false; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e80505af..d97bf2a2 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1011,7 +1011,7 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT assert(entryPointOutput != nullptr); // should have been error tested at the beginning TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), entryPointOutput->getType()); - TIntermNode* returnSequence = intermediate.addAssign(EOpAssign, left, converted, loc); + TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, converted); returnSequence = intermediate.makeAggregate(returnSequence); returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc)); returnSequence->getAsAggregate()->setOperator(EOpSequence); @@ -1032,6 +1032,32 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* arguments = newArg; } +// Some simple source assignments need to be flattened to a sequence +// of AST assignments. Catch these and flatten, otherwise, pass through +// to intermediate.addAssign(). +TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) +{ + if (! shouldFlatten(left->getType()) || + ! left->getAsSymbolNode() || + flattenMap.find(left->getAsSymbolNode()->getId()) == flattenMap.end()) + return intermediate.addAssign(op, left, right, loc); + + // If we get here, we are assigning a whole struct to a flattened l-value, so have to + // do member-by-member assignment: + const auto& members = *left->getType().getStruct(); + const auto& memberVariables = flattenMap[left->getAsSymbolNode()->getId()]; + TIntermAggregate* assignList = nullptr; + for (int member = 0; member < (int)memberVariables.size(); ++member) { + TIntermTyped* subRight = intermediate.addIndex(EOpIndexDirectStruct, right, intermediate.addConstantUnion(member, loc), loc); + subRight->setType(*members[member].type); + TIntermTyped* subLeft = intermediate.addSymbol(*memberVariables[member]); + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + } + assignList->setOperator(EOpSequence); + + return assignList; +} + // // HLSL atomic operations have slightly different arguments than // GLSL/AST/SPIRV. The semantics are converted below in decomposeIntrinsic. diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index d75b3d7c..ccdf771c 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -94,6 +94,7 @@ public: void remapNonEntrypointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); + TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); @@ -238,7 +239,7 @@ protected: // TVector ioArraySymbolResizeList; - TUnorderedMap> flattenMap; + TMap> flattenMap; unsigned int nextInLocation; unsigned int nextOutLocation; }; From 34e7ee79bb8e9a7ef2f35ed30308fb4f1a297368 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 17:10:39 -0600 Subject: [PATCH 129/217] HLSL: Improve setting and testing of interpolation qualifiers. Notably, use of 'linear' on a non-input could mark it as an input. --- Test/baseResults/hlsl.struct.frag.out | 158 +++++++------ Test/baseResults/hlsl.structin.vert.out | 293 +++++++++++++++--------- Test/hlsl.struct.frag | 8 +- Test/hlsl.structin.vert | 9 +- glslang/Include/revision.h | 2 +- hlsl/hlslGrammar.cpp | 3 +- hlsl/hlslParseHelper.cpp | 8 +- hlsl/hlslParseHelper.h | 2 +- 8 files changed, 299 insertions(+), 184 deletions(-) diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 4a5548f7..d5ddc6d2 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -6,9 +6,10 @@ WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) +0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) @@ -18,10 +19,7 @@ gl_FragCoord origin is upper left 0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: 0:40 0 (const int) -0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float) -0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) -0:40 Constant: -0:40 7 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -30,11 +28,18 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=2 ) flat in bool) +0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) +0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) +0:? 'ff1' (in bool Face) +0:? 'ff2' (layout(location=5 offset=4 ) in bool) +0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) Linked fragment stage: @@ -43,9 +48,10 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) +0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) @@ -55,10 +61,7 @@ gl_FragCoord origin is upper left 0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: 0:40 0 (const int) -0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float) -0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) -0:40 Constant: -0:40 7 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -67,20 +70,27 @@ gl_FragCoord origin is upper left 0:? Linker Objects 0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) 0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) 0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=2 ) flat in bool) +0:? 'c' (layout(location=3 ) centroid noperspective in 1-component vector of float) +0:? 'd' (layout(location=4 ) centroid sample in 2-component vector of float) +0:? 'ff1' (in bool Face) +0:? 'ff2' (layout(location=5 offset=4 ) in bool) +0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 52 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 34 36 + EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 41 43 45 48 49 50 51 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -89,33 +99,47 @@ gl_FragCoord origin is upper left Name 19 "" MemberName 19 0 "i" Name 21 "s2" - Name 25 "" - MemberName 25 0 "a" - MemberName 25 1 "b" - MemberName 25 2 "c" - MemberName 25 3 "d" - MemberName 25 4 "ff1" - MemberName 25 5 "ff2" - MemberName 25 6 "ff3" - MemberName 25 7 "ff4" - Name 27 "s4" - Name 34 "@entryPointOutput" - Name 36 "input" - Name 39 "myS" - MemberName 39(myS) 0 "b" - MemberName 39(myS) 1 "c" - MemberName 39(myS) 2 "a" - MemberName 39(myS) 3 "d" - Name 41 "s1" - Name 44 "ff5" - Name 45 "ff6" - MemberDecorate 25 4 BuiltIn FrontFacing - Decorate 34(@entryPointOutput) Location 0 - Decorate 36(input) Location 0 - Decorate 44(ff5) Offset 20 - Decorate 44(ff5) Binding 5 - Decorate 45(ff6) Offset 36 - Decorate 45(ff6) Binding 8 + Name 25 "ff4" + Name 30 "@entryPointOutput" + Name 31 "input" + Name 34 "myS" + MemberName 34(myS) 0 "b" + MemberName 34(myS) 1 "c" + MemberName 34(myS) 2 "a" + MemberName 34(myS) 3 "d" + Name 36 "s1" + Name 39 "ff5" + Name 40 "ff6" + Name 41 "a" + Name 43 "b" + Name 45 "c" + Name 48 "d" + Name 49 "ff1" + Name 50 "ff2" + Name 51 "ff3" + Decorate 25(ff4) Offset 4 + Decorate 25(ff4) Location 7 + Decorate 25(ff4) Binding 0 + Decorate 30(@entryPointOutput) Location 0 + Decorate 31(input) Location 0 + Decorate 39(ff5) Offset 20 + Decorate 39(ff5) Binding 5 + Decorate 40(ff6) Offset 36 + Decorate 40(ff6) Binding 8 + Decorate 41(a) Location 1 + Decorate 43(b) Flat + Decorate 43(b) Location 2 + Decorate 45(c) NoPerspective + Decorate 45(c) Centroid + Decorate 45(c) Location 3 + Decorate 48(d) Centroid + Decorate 48(d) Location 4 + Decorate 49(ff1) BuiltIn FrontFacing + Decorate 50(ff2) Offset 4 + Decorate 50(ff2) Location 5 + Decorate 51(ff3) Offset 4 + Decorate 51(ff3) Location 6 + Decorate 51(ff3) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -129,23 +153,30 @@ gl_FragCoord origin is upper left 21(s2): 20(ptr) Variable Private 22: TypeInt 32 1 23: 22(int) Constant 0 - 24: TypeVector 17(float) 2 - 25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4) - 26: TypePointer Private 25(struct) - 27(s4): 26(ptr) Variable Private - 28: 22(int) Constant 7 - 29: TypePointer Private 18(fvec4) - 33: TypePointer Output 18(fvec4) -34(@entryPointOutput): 33(ptr) Variable Output - 35: TypePointer Input 18(fvec4) - 36(input): 35(ptr) Variable Input - 39(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 40: TypePointer Private 39(myS) - 41(s1): 40(ptr) Variable Private - 42: TypeVector 17(float) 3 - 43: TypePointer Private 42(fvec3) - 44(ff5): 43(ptr) Variable Private - 45(ff6): 43(ptr) Variable Private + 24: TypePointer Input 18(fvec4) + 25(ff4): 24(ptr) Variable Input + 27: TypePointer Private 18(fvec4) + 29: TypePointer Output 18(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31(input): 24(ptr) Variable Input + 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 35: TypePointer Private 34(myS) + 36(s1): 35(ptr) Variable Private + 37: TypeVector 17(float) 3 + 38: TypePointer Private 37(fvec3) + 39(ff5): 38(ptr) Variable Private + 40(ff6): 38(ptr) Variable Private + 41(a): 24(ptr) Variable Input + 42: TypePointer Input 6(bool) + 43(b): 42(ptr) Variable Input + 44: TypePointer Input 17(float) + 45(c): 44(ptr) Variable Input + 46: TypeVector 17(float) 2 + 47: TypePointer Input 46(fvec2) + 48(d): 47(ptr) Variable Input + 49(ff1): 42(ptr) Variable Input + 50(ff2): 42(ptr) Variable Input + 51(ff3): 42(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -155,11 +186,10 @@ gl_FragCoord origin is upper left 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - 30: 29(ptr) AccessChain 27(s4) 28 - 31: 18(fvec4) Load 30 - 32: 29(ptr) AccessChain 21(s2) 23 - Store 32 31 - 37: 18(fvec4) Load 36(input) - Store 34(@entryPointOutput) 37 + 26: 18(fvec4) Load 25(ff4) + 28: 27(ptr) AccessChain 21(s2) 23 + Store 28 26 + 32: 18(fvec4) Load 31(input) + Store 30(@entryPointOutput) 32 Return FunctionEnd diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index 48d9f29e..9452b4a4 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -1,42 +1,67 @@ hlsl.structin.vert Shader version: 450 0:? Sequence -0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) -0:7 Function Parameters: -0:7 'd' (layout(location=0 ) in 4-component vector of float) -0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) -0:7 'e' (layout(location=4 ) in 4-component vector of float) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 'e' (layout(location=5 ) in 4-component vector of float) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float Position) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:8 Constant: -0:8 1 (const int) -0:8 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:8 Constant: -0:8 0 (const int) -0:8 Construct vec4 (temp 4-component vector of float) -0:8 Convert uint to float (temp float) -0:8 direct index (temp uint) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:8 Constant: -0:8 0 (const int) -0:8 'd' (layout(location=0 ) in 4-component vector of float) -0:8 'e' (layout(location=4 ) in 4-component vector of float) -0:8 Branch: Return +0:11 move second child to first child (temp 4-component vector of float) +0:11 b: direct index for structure (smooth temp 4-component vector of float) +0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:11 Constant: +0:11 2 (const int) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Construct vec4 (temp 4-component vector of float) +0:11 Convert uint to float (temp float) +0:11 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:11 Constant: +0:11 0 (const int) +0:11 'd' (layout(location=0 ) in 4-component vector of float) +0:11 'e' (layout(location=5 ) in 4-component vector of float) +0:? Sequence +0:? Sequence +0:13 move second child to first child (temp 2-element array of 4-component vector of float) +0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child (temp 2-component vector of uint) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:13 coord: direct index for structure (temp 2-component vector of uint) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:13 b: direct index for structure (smooth temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 2 (const int) +0:13 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) 0:? 'd' (layout(location=0 ) in 4-component vector of float) 0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'e' (layout(location=4 ) in 4-component vector of float) +0:? 'b' (layout(location=4 ) smooth in 4-component vector of float) +0:? 'e' (layout(location=5 ) in 4-component vector of float) Linked vertex stage: @@ -44,100 +69,158 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position) -0:7 Function Parameters: -0:7 'd' (layout(location=0 ) in 4-component vector of float) -0:7 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord}) -0:7 'e' (layout(location=4 ) in 4-component vector of float) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 Function Parameters: +0:8 'd' (layout(location=0 ) in 4-component vector of float) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 'e' (layout(location=5 ) in 4-component vector of float) 0:? Sequence -0:8 Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:? '@entryPointOutput' (out 4-component vector of float Position) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 add (temp 4-component vector of float) -0:8 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:8 Constant: -0:8 1 (const int) -0:8 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:8 Constant: -0:8 0 (const int) -0:8 Construct vec4 (temp 4-component vector of float) -0:8 Convert uint to float (temp float) -0:8 direct index (temp uint) -0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:8 Constant: -0:8 0 (const int) -0:8 'd' (layout(location=0 ) in 4-component vector of float) -0:8 'e' (layout(location=4 ) in 4-component vector of float) -0:8 Branch: Return +0:11 move second child to first child (temp 4-component vector of float) +0:11 b: direct index for structure (smooth temp 4-component vector of float) +0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:11 Constant: +0:11 2 (const int) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 add (temp 4-component vector of float) +0:11 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:11 Constant: +0:11 1 (const int) +0:11 direct index (layout(location=1 ) temp 4-component vector of float) +0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:11 Constant: +0:11 0 (const int) +0:11 Construct vec4 (temp 4-component vector of float) +0:11 Convert uint to float (temp float) +0:11 direct index (temp uint) +0:? 'coord' (layout(location=3 ) in 2-component vector of uint) +0:11 Constant: +0:11 0 (const int) +0:11 'd' (layout(location=0 ) in 4-component vector of float) +0:11 'e' (layout(location=5 ) in 4-component vector of float) +0:? Sequence +0:? Sequence +0:13 move second child to first child (temp 2-element array of 4-component vector of float) +0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 move second child to first child (temp 2-component vector of uint) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:13 coord: direct index for structure (temp 2-component vector of uint) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 1 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) +0:13 b: direct index for structure (smooth temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 Constant: +0:13 2 (const int) +0:13 Branch: Return 0:? Linker Objects -0:? '@entryPointOutput' (out 4-component vector of float Position) +0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:? 'coord' (layout(location=2 ) out 2-component vector of uint) +0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) 0:? 'd' (layout(location=0 ) in 4-component vector of float) 0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'e' (layout(location=4 ) in 4-component vector of float) +0:? 'b' (layout(location=4 ) smooth in 4-component vector of float) +0:? 'e' (layout(location=5 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 9 14 26 34 37 + EntryPoint Vertex 4 "main" 18 28 36 39 45 50 55 59 Name 4 "main" - Name 9 "@entryPointOutput" - Name 14 "m" - Name 26 "coord" - Name 34 "d" - Name 37 "e" - Decorate 9(@entryPointOutput) BuiltIn Position - Decorate 14(m) Location 1 - Decorate 26(coord) Location 3 - Decorate 34(d) Location 0 - Decorate 37(e) Location 4 + Name 12 "VI" + MemberName 12(VI) 0 "m" + MemberName 12(VI) 1 "coord" + MemberName 12(VI) 2 "b" + Name 14 "local" + Name 18 "m" + Name 28 "coord" + Name 36 "d" + Name 39 "e" + Name 45 "m" + Name 50 "coord" + Name 55 "b" + Name 59 "b" + Decorate 18(m) Location 1 + Decorate 28(coord) Location 3 + Decorate 36(d) Location 0 + Decorate 39(e) Location 5 + Decorate 45(m) Location 0 + Decorate 50(coord) Location 2 + Decorate 55(b) Location 3 + Decorate 59(b) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) -9(@entryPointOutput): 8(ptr) Variable Output - 10: TypeInt 32 0 - 11: 10(int) Constant 2 - 12: TypeArray 7(fvec4) 11 - 13: TypePointer Input 12 - 14(m): 13(ptr) Variable Input + 8: TypeInt 32 0 + 9: 8(int) Constant 2 + 10: TypeArray 7(fvec4) 9 + 11: TypeVector 8(int) 2 + 12(VI): TypeStruct 10 11(ivec2) 7(fvec4) + 13: TypePointer Function 12(VI) 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Input 7(fvec4) - 20: 15(int) Constant 0 - 24: TypeVector 10(int) 2 - 25: TypePointer Input 24(ivec2) - 26(coord): 25(ptr) Variable Input - 27: 10(int) Constant 0 - 28: TypePointer Input 10(int) - 34(d): 17(ptr) Variable Input - 37(e): 17(ptr) Variable Input + 16: 15(int) Constant 2 + 17: TypePointer Input 10 + 18(m): 17(ptr) Variable Input + 19: 15(int) Constant 1 + 20: TypePointer Input 7(fvec4) + 23: 15(int) Constant 0 + 27: TypePointer Input 11(ivec2) + 28(coord): 27(ptr) Variable Input + 29: 8(int) Constant 0 + 30: TypePointer Input 8(int) + 36(d): 20(ptr) Variable Input + 39(e): 20(ptr) Variable Input + 42: TypePointer Function 7(fvec4) + 44: TypePointer Output 10 + 45(m): 44(ptr) Variable Output + 46: TypePointer Function 10 + 49: TypePointer Output 11(ivec2) + 50(coord): 49(ptr) Variable Output + 51: TypePointer Function 11(ivec2) + 54: TypePointer Output 7(fvec4) + 55(b): 54(ptr) Variable Output + 59(b): 20(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 18: 17(ptr) AccessChain 14(m) 16 - 19: 7(fvec4) Load 18 - 21: 17(ptr) AccessChain 14(m) 20 + 14(local): 13(ptr) Variable Function + 21: 20(ptr) AccessChain 18(m) 19 22: 7(fvec4) Load 21 - 23: 7(fvec4) FAdd 19 22 - 29: 28(ptr) AccessChain 26(coord) 27 - 30: 10(int) Load 29 - 31: 6(float) ConvertUToF 30 - 32: 7(fvec4) CompositeConstruct 31 31 31 31 - 33: 7(fvec4) FAdd 23 32 - 35: 7(fvec4) Load 34(d) - 36: 7(fvec4) FAdd 33 35 - 38: 7(fvec4) Load 37(e) - 39: 7(fvec4) FAdd 36 38 - Store 9(@entryPointOutput) 39 + 24: 20(ptr) AccessChain 18(m) 23 + 25: 7(fvec4) Load 24 + 26: 7(fvec4) FAdd 22 25 + 31: 30(ptr) AccessChain 28(coord) 29 + 32: 8(int) Load 31 + 33: 6(float) ConvertUToF 32 + 34: 7(fvec4) CompositeConstruct 33 33 33 33 + 35: 7(fvec4) FAdd 26 34 + 37: 7(fvec4) Load 36(d) + 38: 7(fvec4) FAdd 35 37 + 40: 7(fvec4) Load 39(e) + 41: 7(fvec4) FAdd 38 40 + 43: 42(ptr) AccessChain 14(local) 16 + Store 43 41 + 47: 46(ptr) AccessChain 14(local) 23 + 48: 10 Load 47 + Store 45(m) 48 + 52: 51(ptr) AccessChain 14(local) 19 + 53: 11(ivec2) Load 52 + Store 50(coord) 53 + 56: 42(ptr) AccessChain 14(local) 16 + 57: 7(fvec4) Load 56 + Store 55(b) 57 Return FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index c76f3349..58cd524b 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -16,7 +16,7 @@ struct { float4 i; } s2; -struct { +struct IN_S { linear float4 a; nointerpolation bool b; noperspective centroid float1 c; @@ -25,19 +25,19 @@ struct { 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) ; -} s4; +}; float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]); float3 ff6 : packoffset(c2.y) : register(s3[5]); -float4 PixelShaderFunction(float4 input) : COLOR0 +float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 { struct FS { bool3 b3; } s3; s3 == s3; - s2.i = s4.ff4; + s2.i = s.ff4; return input; } \ No newline at end of file diff --git a/Test/hlsl.structin.vert b/Test/hlsl.structin.vert index 424624a4..7eba552d 100644 --- a/Test/hlsl.structin.vert +++ b/Test/hlsl.structin.vert @@ -1,9 +1,14 @@ struct VI { float4 m[2]; uint2 coord; + linear float4 b; }; -float4 main(float4 d, VI vi, float4 e) : SV_POSITION +VI main(float4 d, VI vi, float4 e) : SV_POSITION { - return vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; + VI local; + + local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; + + return local; } \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 5ffcb46b..b1618c5c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1489" +#define GLSLANG_REVISION "Overload400-PrecQual.1490" #define GLSLANG_DATE "16-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index d0ff3cdb..cc7e9010 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -435,7 +435,7 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) return false; if (type.getBasicType() == EbtBlock) { // the type was a block, which set some parts of the qualifier - parseContext.mergeQualifiers(loc, type.getQualifier(), qualifier, true); + parseContext.mergeQualifiers(type.getQualifier(), qualifier); // further, it can create an anonymous instance of the block if (peekTokenClass(EHTokSemicolon)) parseContext.declareBlock(loc, type); @@ -476,7 +476,6 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) qualifier.volatil = true; break; case EHTokLinear: - qualifier.storage = EvqVaryingIn; qualifier.smooth = true; break; case EHTokCentroid: diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d97bf2a2..1b0cb345 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -728,7 +728,7 @@ void HlslParseContext::flattenStruct(const TVariable& variable) for (int member = 0; member < (int)members.size(); ++member) { TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(), *members[member].type); - memberVariable->getWritableType().getQualifier().storage = variable.getType().getQualifier().storage; + mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); memberVariables.push_back(memberVariable); } @@ -3049,7 +3049,7 @@ void HlslParseContext::globalQualifierFix(const TSourceLoc&, TQualifier& qualifi // 'dst', for the purpose of error checking order for versions // that require specific orderings of qualifiers. // -void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, const TQualifier& src, bool force) +void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src) { // Storage qualification if (dst.storage == EvqTemporary || dst.storage == EvqGlobal) @@ -3060,8 +3060,6 @@ void HlslParseContext::mergeQualifiers(const TSourceLoc& loc, TQualifier& dst, c else if ((dst.storage == EvqIn && src.storage == EvqConst) || (dst.storage == EvqConst && src.storage == EvqIn)) dst.storage = EvqConstReadOnly; - else if (src.storage != EvqTemporary && src.storage != EvqGlobal) - error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), ""); // Layout qualifiers mergeObjectLayoutQualifiers(dst, src, false); @@ -4586,7 +4584,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS } TQualifier newMemberQualification = defaultQualification; - mergeQualifiers(memberLoc, newMemberQualification, memberQualifier, false); + mergeQualifiers(newMemberQualification, memberQualifier); memberQualifier = newMemberQualification; } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index ccdf771c..d54c373f 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -129,7 +129,7 @@ public: void boolCheck(const TSourceLoc&, const TIntermTyped*); void globalQualifierFix(const TSourceLoc&, TQualifier&); bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); - void mergeQualifiers(const TSourceLoc&, TQualifier& dst, const TQualifier& src, bool force); + void mergeQualifiers(TQualifier& dst, const TQualifier& src); int computeSamplerTypeIndex(TSampler&); TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); From d2ce838a58a1b16aa6ef03cc31882f3584b92157 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 19:44:00 -0600 Subject: [PATCH 130/217] HLSL: Handle flatten for reads from flatten structs and parameter passing. --- Test/baseResults/hlsl.entry-in.frag.out | 149 ++++++++++++++++++++++++ Test/hlsl.entry-in.frag | 13 +++ glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 39 +++++-- 5 files changed, 193 insertions(+), 11 deletions(-) create mode 100755 Test/baseResults/hlsl.entry-in.frag.out create mode 100644 Test/hlsl.entry-in.frag diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out new file mode 100755 index 00000000..e1a55bc3 --- /dev/null +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -0,0 +1,149 @@ +hlsl.entry-in.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:? Sequence +0:10 move second child to first child (temp 2-component vector of float) +0:10 v: direct index for structure (temp 2-component vector of float) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:10 move second child to first child (temp 4-component vector of float) +0:10 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:10 move second child to first child (temp 2-component vector of int) +0:10 i2: direct index for structure (temp 2-component vector of int) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:12 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:12 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:12 Constant: +0:12 1 (const int) +0:12 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:? Sequence +0:10 move second child to first child (temp 2-component vector of float) +0:10 v: direct index for structure (temp 2-component vector of float) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:10 move second child to first child (temp 4-component vector of float) +0:10 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:10 move second child to first child (temp 2-component vector of int) +0:10 i2: direct index for structure (temp 2-component vector of int) +0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:10 Constant: +0:10 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:12 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:12 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:12 Constant: +0:12 1 (const int) +0:12 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 16 22 28 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 11 "InParam" + MemberName 11(InParam) 0 "v" + MemberName 11(InParam) 1 "fragCoord" + MemberName 11(InParam) 2 "i2" + Name 13 "local" + Name 16 "v" + Name 22 "fragCoord" + Name 28 "i2" + Name 33 "@entryPointOutput" + MemberDecorate 11(InParam) 1 BuiltIn FragCoord + Decorate 16(v) Location 0 + Decorate 22(fragCoord) BuiltIn FragCoord + Decorate 28(i2) Location 1 + Decorate 33(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypeVector 6(float) 4 + 9: TypeInt 32 1 + 10: TypeVector 9(int) 2 + 11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2) + 12: TypePointer Function 11(InParam) + 14: 9(int) Constant 0 + 15: TypePointer Input 7(fvec2) + 16(v): 15(ptr) Variable Input + 18: TypePointer Function 7(fvec2) + 20: 9(int) Constant 1 + 21: TypePointer Input 8(fvec4) + 22(fragCoord): 21(ptr) Variable Input + 24: TypePointer Function 8(fvec4) + 26: 9(int) Constant 2 + 27: TypePointer Input 10(ivec2) + 28(i2): 27(ptr) Variable Input + 30: TypePointer Function 10(ivec2) + 32: TypePointer Output 8(fvec4) +33(@entryPointOutput): 32(ptr) Variable Output +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 13(local): 12(ptr) Variable Function + 17: 7(fvec2) Load 16(v) + 19: 18(ptr) AccessChain 13(local) 14 + Store 19 17 + 23: 8(fvec4) Load 22(fragCoord) + 25: 24(ptr) AccessChain 13(local) 20 + Store 25 23 + 29: 10(ivec2) Load 28(i2) + 31: 30(ptr) AccessChain 13(local) 26 + Store 31 29 + 34: 24(ptr) AccessChain 13(local) 20 + 35: 8(fvec4) Load 34 + Store 33(@entryPointOutput) 35 + Return + FunctionEnd diff --git a/Test/hlsl.entry-in.frag b/Test/hlsl.entry-in.frag new file mode 100644 index 00000000..4d4ba50b --- /dev/null +++ b/Test/hlsl.entry-in.frag @@ -0,0 +1,13 @@ +struct InParam { + float2 v; + float4 fragCoord : SV_POSITION; + int2 i2; +}; + +float4 PixelShaderFunction(InParam i) : COLOR0 +{ + InParam local; + local = i; + + return local.fragCoord; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index b1618c5c..0eb19923 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1490" +#define GLSLANG_REVISION "Overload400-PrecQual.1491" #define GLSLANG_DATE "16-Sep-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index d4206af2..06660c73 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -85,6 +85,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.depthLess.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, + {"hlsl.entry-in.frag", "PixelShaderFunction"}, {"hlsl.entry-out.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 1b0cb345..b274653f 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1037,20 +1037,39 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* // to intermediate.addAssign(). TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) { - if (! shouldFlatten(left->getType()) || - ! left->getAsSymbolNode() || - flattenMap.find(left->getAsSymbolNode()->getId()) == flattenMap.end()) + const auto mustFlatten = [&](const TIntermTyped& node) { + return shouldFlatten(node.getType()) && node.getAsSymbolNode() && + flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); + }; + + bool flattenLeft = mustFlatten(*left); + bool flattenRight = mustFlatten(*right); + if (! flattenLeft && ! flattenRight) return intermediate.addAssign(op, left, right, loc); - // If we get here, we are assigning a whole struct to a flattened l-value, so have to - // do member-by-member assignment: + // If we get here, we are assigning to or from a whole struct that must be + // flattened, so have to do member-by-member assignment: const auto& members = *left->getType().getStruct(); - const auto& memberVariables = flattenMap[left->getAsSymbolNode()->getId()]; + const auto getMember = [&](bool flatten, TIntermTyped* node, + const TVector& memberVariables, int member) { + TIntermTyped* subTree; + if (flatten) + subTree = intermediate.addSymbol(*memberVariables[member]); + else { + subTree = intermediate.addIndex(EOpIndexDirectStruct, node, + intermediate.addConstantUnion(member, loc), loc); + subTree->setType(*members[member].type); + } + + return subTree; + }; + + const auto& leftVariables = flattenMap[left->getAsSymbolNode()->getId()]; + const auto& rightVariables = flattenMap[right->getAsSymbolNode()->getId()]; TIntermAggregate* assignList = nullptr; - for (int member = 0; member < (int)memberVariables.size(); ++member) { - TIntermTyped* subRight = intermediate.addIndex(EOpIndexDirectStruct, right, intermediate.addConstantUnion(member, loc), loc); - subRight->setType(*members[member].type); - TIntermTyped* subLeft = intermediate.addSymbol(*memberVariables[member]); + for (int member = 0; member < (int)members.size(); ++member) { + TIntermTyped* subRight = getMember(flattenRight, right, rightVariables, member); + TIntermTyped* subLeft = getMember(flattenLeft, left, leftVariables, member); assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); } assignList->setOperator(EOpSequence); From fcea302dbc647e32b5e0c59c9e9b523f0efd96f0 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 16 Sep 2016 21:16:04 -0600 Subject: [PATCH 131/217] HLSL: Fix bug in previous checkin when non-flattened objects are not simple l-values. --- hlsl/hlslParseHelper.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b274653f..894b3854 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1063,13 +1063,17 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op return subTree; }; - - const auto& leftVariables = flattenMap[left->getAsSymbolNode()->getId()]; - const auto& rightVariables = flattenMap[right->getAsSymbolNode()->getId()]; + + TVector* leftVariables = nullptr; + TVector* rightVariables = nullptr; + if (flattenLeft) + leftVariables = &flattenMap[left->getAsSymbolNode()->getId()]; + if (flattenRight) + rightVariables = &flattenMap[right->getAsSymbolNode()->getId()]; TIntermAggregate* assignList = nullptr; for (int member = 0; member < (int)members.size(); ++member) { - TIntermTyped* subRight = getMember(flattenRight, right, rightVariables, member); - TIntermTyped* subLeft = getMember(flattenLeft, left, leftVariables, member); + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member); assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); } assignList->setOperator(EOpSequence); From f911500db8ce06d84f8d8f8154a1322ad3af0527 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 18 Sep 2016 23:10:22 -0600 Subject: [PATCH 132/217] HLSL: Non-functional; make flatten semantics be about aggregates, not just structures. --- glslang/Include/revision.h | 4 ++-- hlsl/hlslParseHelper.cpp | 26 +++++++++++++------------- hlsl/hlslParseHelper.h | 6 +++--- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 0eb19923..2d58c265 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1491" -#define GLSLANG_DATE "16-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1493" +#define GLSLANG_DATE "18-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 894b3854..cb528051 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -700,9 +700,9 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; } -// Is this a structure that can't be passed down the stack? +// Is this an aggregate that can't be passed down the stack? // E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. -bool HlslParseContext::shouldFlatten(const TType& type) +bool HlslParseContext::shouldFlatten(const TType& type) const { if (! inEntrypoint) return false; @@ -714,13 +714,13 @@ bool HlslParseContext::shouldFlatten(const TType& type) qualifier == EvqVaryingOut); } -// Figure out the mapping between a structure's top members and an +// Figure out the mapping between an aggregate's top members and an // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. // // TODO: generalize this to arbitrary nesting? -void HlslParseContext::flattenStruct(const TVariable& variable) +void HlslParseContext::flatten(const TVariable& variable) { TVector memberVariables; @@ -735,8 +735,8 @@ void HlslParseContext::flattenStruct(const TVariable& variable) flattenMap[variable.getUniqueId()] = memberVariables; } -// Turn an access into structure that was flattened to instead be -// an access to the individual variable the member was flattened to. +// Turn an access into aggregate that was flattened to instead be +// an access to the individual variable the element/member was flattened to. // Assumes shouldFlatten() or equivalent was called first. TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) { @@ -855,7 +855,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l remapEntrypointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) - flattenStruct(*entryPointOutput); + flatten(*entryPointOutput); assignLocations(*entryPointOutput); } } else @@ -887,7 +887,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // get IO straightened out if (inEntrypoint) { if (shouldFlatten(*param.type)) - flattenStruct(*variable); + flatten(*variable); assignLocations(*variable); } @@ -1035,7 +1035,7 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* // Some simple source assignments need to be flattened to a sequence // of AST assignments. Catch these and flatten, otherwise, pass through // to intermediate.addAssign(). -TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) +TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const { const auto mustFlatten = [&](const TIntermTyped& node) { return shouldFlatten(node.getType()) && node.getAsSymbolNode() && @@ -1064,12 +1064,12 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op return subTree; }; - TVector* leftVariables = nullptr; - TVector* rightVariables = nullptr; + const TVector* leftVariables = nullptr; + const TVector* rightVariables = nullptr; if (flattenLeft) - leftVariables = &flattenMap[left->getAsSymbolNode()->getId()]; + leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second; if (flattenRight) - rightVariables = &flattenMap[right->getAsSymbolNode()->getId()]; + rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second; TIntermAggregate* assignList = nullptr; for (int member = 0; member < (int)members.size(); ++member) { TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index d54c373f..d9635848 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -83,8 +83,8 @@ public: TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); - bool shouldFlatten(const TType&); - void flattenStruct(const TVariable& variable); + bool shouldFlatten(const TType&) const; + void flatten(const TVariable& variable); TIntermTyped* flattenAccess(TIntermTyped* base, int member); void assignLocations(TVariable& variable); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); @@ -94,7 +94,7 @@ public: void remapNonEntrypointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); - TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); + TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right) const; TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); From 5159d4f1af38c1c20545d4ca7edc97d91fc0cb4a Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 00:06:19 -0600 Subject: [PATCH 133/217] HLSL: Intercept flatten aggregates passed to a function input, and copy member-by-member. --- Test/baseResults/hlsl.entry-in.frag.out | 328 +++++++++++++++++------- Test/hlsl.entry-in.frag | 9 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 34 ++- 4 files changed, 275 insertions(+), 98 deletions(-) diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index e1a55bc3..a5f8c7ee 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -2,37 +2,91 @@ hlsl.entry-in.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) 0:8 Function Parameters: -0:8 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add (temp float) +0:9 direct index (temp float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 direct index (temp float) +0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Parameters: +0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? Sequence -0:10 move second child to first child (temp 2-component vector of float) -0:10 v: direct index for structure (temp 2-component vector of float) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 0 (const int) +0:15 move second child to first child (temp 2-component vector of float) +0:15 v: direct index for structure (temp 2-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:10 move second child to first child (temp 4-component vector of float) -0:10 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 1 (const int) +0:15 move second child to first child (temp 4-component vector of float) +0:15 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:10 move second child to first child (temp 2-component vector of int) -0:10 i2: direct index for structure (temp 2-component vector of int) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 2 (const int) +0:15 move second child to first child (temp 2-component vector of int) +0:15 i2: direct index for structure (temp 2-component vector of int) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:12 Sequence -0:12 move second child to first child (temp 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp float) +0:16 'ret1' (temp float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'ret2' (temp float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:? Comma (temp float) +0:? Sequence +0:? move second child to first child (temp 2-component vector of float) +0:? v: direct index for structure (temp 2-component vector of float) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? move second child to first child (temp 4-component vector of float) +0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? move second child to first child (temp 2-component vector of int) +0:? i2: direct index for structure (temp 2-component vector of int) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:12 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:12 Constant: -0:12 1 (const int) -0:12 Branch: Return +0:19 vector-scale (temp 4-component vector of float) +0:19 vector-scale (temp 4-component vector of float) +0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 Constant: +0:19 1 (const int) +0:19 'ret1' (temp float) +0:19 'ret2' (temp float) +0:19 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'v' (layout(location=0 ) in 2-component vector of float) @@ -46,37 +100,91 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) 0:8 Function Parameters: -0:8 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Sequence +0:9 Branch: Return with expression +0:9 add (temp float) +0:9 direct index (temp float) +0:9 v: direct index for structure (temp 2-component vector of float) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 1 (const int) +0:9 direct index (temp float) +0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 Constant: +0:9 1 (const int) +0:9 Constant: +0:9 0 (const int) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Parameters: +0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? Sequence -0:10 move second child to first child (temp 2-component vector of float) -0:10 v: direct index for structure (temp 2-component vector of float) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 0 (const int) +0:15 move second child to first child (temp 2-component vector of float) +0:15 v: direct index for structure (temp 2-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:10 move second child to first child (temp 4-component vector of float) -0:10 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 1 (const int) +0:15 move second child to first child (temp 4-component vector of float) +0:15 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:10 move second child to first child (temp 2-component vector of int) -0:10 i2: direct index for structure (temp 2-component vector of int) -0:10 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:10 Constant: -0:10 2 (const int) +0:15 move second child to first child (temp 2-component vector of int) +0:15 i2: direct index for structure (temp 2-component vector of int) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 Constant: +0:15 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:12 Sequence -0:12 move second child to first child (temp 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp float) +0:16 'ret1' (temp float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'ret2' (temp float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:? Comma (temp float) +0:? Sequence +0:? move second child to first child (temp 2-component vector of float) +0:? v: direct index for structure (temp 2-component vector of float) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 0 (const int) +0:? 'v' (layout(location=0 ) in 2-component vector of float) +0:? move second child to first child (temp 4-component vector of float) +0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 1 (const int) +0:? 'fragCoord' (in 4-component vector of float FragCoord) +0:? move second child to first child (temp 2-component vector of int) +0:? i2: direct index for structure (temp 2-component vector of int) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? Constant: +0:? 2 (const int) +0:? 'i2' (layout(location=1 ) in 2-component vector of int) +0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:12 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) -0:12 Constant: -0:12 1 (const int) -0:12 Branch: Return +0:19 vector-scale (temp 4-component vector of float) +0:19 vector-scale (temp 4-component vector of float) +0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 Constant: +0:19 1 (const int) +0:19 'ret1' (temp float) +0:19 'ret2' (temp float) +0:19 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'v' (layout(location=0 ) in 2-component vector of float) @@ -85,28 +193,35 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 37 +// Id's are bound by 71 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 16 22 28 33 + EntryPoint Fragment 4 "PixelShaderFunction" 32 37 43 63 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 11 "InParam" MemberName 11(InParam) 0 "v" MemberName 11(InParam) 1 "fragCoord" MemberName 11(InParam) 2 "i2" - Name 13 "local" - Name 16 "v" - Name 22 "fragCoord" - Name 28 "i2" - Name 33 "@entryPointOutput" + Name 15 "fun(struct-InParam-vf2-vf4-vi21;" + Name 14 "p" + Name 30 "local" + Name 32 "v" + Name 37 "fragCoord" + Name 43 "i2" + Name 47 "ret1" + Name 48 "param" + Name 51 "ret2" + Name 52 "aggShadow" + Name 59 "param" + Name 63 "@entryPointOutput" MemberDecorate 11(InParam) 1 BuiltIn FragCoord - Decorate 16(v) Location 0 - Decorate 22(fragCoord) BuiltIn FragCoord - Decorate 28(i2) Location 1 - Decorate 33(@entryPointOutput) Location 0 + Decorate 32(v) Location 0 + Decorate 37(fragCoord) BuiltIn FragCoord + Decorate 43(i2) Location 1 + Decorate 63(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -116,34 +231,75 @@ gl_FragCoord origin is upper left 10: TypeVector 9(int) 2 11(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2) 12: TypePointer Function 11(InParam) - 14: 9(int) Constant 0 - 15: TypePointer Input 7(fvec2) - 16(v): 15(ptr) Variable Input - 18: TypePointer Function 7(fvec2) - 20: 9(int) Constant 1 - 21: TypePointer Input 8(fvec4) - 22(fragCoord): 21(ptr) Variable Input - 24: TypePointer Function 8(fvec4) - 26: 9(int) Constant 2 - 27: TypePointer Input 10(ivec2) - 28(i2): 27(ptr) Variable Input - 30: TypePointer Function 10(ivec2) - 32: TypePointer Output 8(fvec4) -33(@entryPointOutput): 32(ptr) Variable Output + 13: TypeFunction 6(float) 12(ptr) + 17: 9(int) Constant 0 + 18: TypeInt 32 0 + 19: 18(int) Constant 1 + 20: TypePointer Function 6(float) + 23: 9(int) Constant 1 + 24: 18(int) Constant 0 + 31: TypePointer Input 7(fvec2) + 32(v): 31(ptr) Variable Input + 34: TypePointer Function 7(fvec2) + 36: TypePointer Input 8(fvec4) + 37(fragCoord): 36(ptr) Variable Input + 39: TypePointer Function 8(fvec4) + 41: 9(int) Constant 2 + 42: TypePointer Input 10(ivec2) + 43(i2): 42(ptr) Variable Input + 45: TypePointer Function 10(ivec2) + 62: TypePointer Output 8(fvec4) +63(@entryPointOutput): 62(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label - 13(local): 12(ptr) Variable Function - 17: 7(fvec2) Load 16(v) - 19: 18(ptr) AccessChain 13(local) 14 - Store 19 17 - 23: 8(fvec4) Load 22(fragCoord) - 25: 24(ptr) AccessChain 13(local) 20 - Store 25 23 - 29: 10(ivec2) Load 28(i2) - 31: 30(ptr) AccessChain 13(local) 26 - Store 31 29 - 34: 24(ptr) AccessChain 13(local) 20 - 35: 8(fvec4) Load 34 - Store 33(@entryPointOutput) 35 + 30(local): 12(ptr) Variable Function + 47(ret1): 20(ptr) Variable Function + 48(param): 12(ptr) Variable Function + 51(ret2): 20(ptr) Variable Function + 52(aggShadow): 12(ptr) Variable Function + 59(param): 20(ptr) Variable Function + 33: 7(fvec2) Load 32(v) + 35: 34(ptr) AccessChain 30(local) 17 + Store 35 33 + 38: 8(fvec4) Load 37(fragCoord) + 40: 39(ptr) AccessChain 30(local) 23 + Store 40 38 + 44: 10(ivec2) Load 43(i2) + 46: 45(ptr) AccessChain 30(local) 41 + Store 46 44 + 49: 11(InParam) Load 30(local) + Store 48(param) 49 + 50: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 48(param) + Store 47(ret1) 50 + 53: 7(fvec2) Load 32(v) + 54: 34(ptr) AccessChain 52(aggShadow) 17 + Store 54 53 + 55: 8(fvec4) Load 37(fragCoord) + 56: 39(ptr) AccessChain 52(aggShadow) 23 + Store 56 55 + 57: 10(ivec2) Load 43(i2) + 58: 45(ptr) AccessChain 52(aggShadow) 41 + Store 58 57 + 60: 11(InParam) Load 52(aggShadow) + Store 59(param) 60 + 61: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 59(param) + Store 51(ret2) 61 + 64: 39(ptr) AccessChain 30(local) 23 + 65: 8(fvec4) Load 64 + 66: 6(float) Load 47(ret1) + 67: 8(fvec4) VectorTimesScalar 65 66 + 68: 6(float) Load 51(ret2) + 69: 8(fvec4) VectorTimesScalar 67 68 + Store 63(@entryPointOutput) 69 Return FunctionEnd +15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13 + 14(p): 12(ptr) FunctionParameter + 16: Label + 21: 20(ptr) AccessChain 14(p) 17 19 + 22: 6(float) Load 21 + 25: 20(ptr) AccessChain 14(p) 23 24 + 26: 6(float) Load 25 + 27: 6(float) FAdd 22 26 + ReturnValue 27 + FunctionEnd diff --git a/Test/hlsl.entry-in.frag b/Test/hlsl.entry-in.frag index 4d4ba50b..e15955dd 100644 --- a/Test/hlsl.entry-in.frag +++ b/Test/hlsl.entry-in.frag @@ -4,10 +4,17 @@ struct InParam { int2 i2; }; +float fun(InParam p) +{ + return p.v.y + p.fragCoord.x; +} + float4 PixelShaderFunction(InParam i) : COLOR0 { InParam local; local = i; + float ret1 = fun(local); + float ret2 = fun(i); - return local.fragCoord; + return local.fragCoord * ret1 * ret2; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2d58c265..8469dcf1 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -3,4 +3,4 @@ // For the date, it uses the current date (when then script is run). #define GLSLANG_REVISION "Overload400-PrecQual.1493" -#define GLSLANG_DATE "18-Sep-2016" +#define GLSLANG_DATE "19-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index cb528051..07d96ea3 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2241,6 +2241,16 @@ TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunct void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) const { TIntermAggregate* aggregate = arguments->getAsAggregate(); + const auto setArg = [&](int argNum, TIntermNode* arg) { + if (function.getParamCount() == 1) + arguments = arg; + else { + if (aggregate) + aggregate->getSequence()[argNum] = arg; + else + arguments = arg; + } + }; // Process each argument's conversion for (int i = 0; i < function.getParamCount(); ++i) { @@ -2254,16 +2264,20 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // convert to the correct type. arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); - if (arg) { - if (function.getParamCount() == 1) - arguments = arg; - else { - if (aggregate) - aggregate->getSequence()[i] = arg; - else - arguments = arg; - } - } + setArg(i, arg); + } + } else { + if (shouldFlatten(arg->getType())) { + TSourceLoc dummyLoc; + dummyLoc.init(); + TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); + TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), + internalAggregate->getName(), + internalAggregate->getType()); + TIntermAggregate* assignAgg = handleAssign(dummyLoc, EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode); + assignAgg->setOperator(EOpComma); + setArg(i, assignAgg); } } } From 28b28140bb56aa89d2dfa72c199fb9c88276ee78 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 00:19:49 -0600 Subject: [PATCH 134/217] HLSL: Fix assert: ensure flattened shadow is EvqTemporary. --- Test/baseResults/hlsl.entry-in.frag.out | 16 ++++++++-------- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index a5f8c7ee..010f27b5 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -58,23 +58,23 @@ gl_FragCoord origin is upper left 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:? move second child to first child (temp 4-component vector of float) 0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:? move second child to first child (temp 2-component vector of int) 0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -156,23 +156,23 @@ gl_FragCoord origin is upper left 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:? move second child to first child (temp 4-component vector of float) 0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:? move second child to first child (temp 2-component vector of int) 0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 8469dcf1..0a9710cf 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1493" +#define GLSLANG_REVISION "Overload400-PrecQual.1494" #define GLSLANG_DATE "19-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 07d96ea3..6f60a594 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2271,6 +2271,7 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI TSourceLoc dummyLoc; dummyLoc.init(); TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); + internalAggregate->getWritableType().getQualifier().makeTemporary(); TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), internalAggregate->getName(), internalAggregate->getType()); From 142785f324009289f8187868ab4843761693d7a9 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 14:56:55 -0600 Subject: [PATCH 135/217] HLSL: Change the final syntax-error printf to go to the infoLog. Fixes issue #510. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/InfoSink.cpp | 20 ++++++++++++-------- hlsl/hlslParseHelper.cpp | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 0a9710cf..1fc0ca7e 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1494" +#define GLSLANG_REVISION "Overload400-PrecQual.1495" #define GLSLANG_DATE "19-Sep-2016" diff --git a/glslang/MachineIndependent/InfoSink.cpp b/glslang/MachineIndependent/InfoSink.cpp index aa0fe89a..79acba87 100644 --- a/glslang/MachineIndependent/InfoSink.cpp +++ b/glslang/MachineIndependent/InfoSink.cpp @@ -38,11 +38,15 @@ namespace glslang { -void TInfoSinkBase::append(const char* s) +void TInfoSinkBase::append(const char* s) { if (outputStream & EString) { - checkMem(strlen(s)); - sink.append(s); + if (s == nullptr) + sink.append("(null)"); + else { + checkMem(strlen(s)); + sink.append(s); + } } //#ifdef _WIN32 @@ -54,10 +58,10 @@ void TInfoSinkBase::append(const char* s) fprintf(stdout, "%s", s); } -void TInfoSinkBase::append(int count, char c) +void TInfoSinkBase::append(int count, char c) { if (outputStream & EString) { - checkMem(count); + checkMem(count); sink.append(count, c); } @@ -74,10 +78,10 @@ void TInfoSinkBase::append(int count, char c) fprintf(stdout, "%c", c); } -void TInfoSinkBase::append(const TPersistString& t) +void TInfoSinkBase::append(const TPersistString& t) { if (outputStream & EString) { - checkMem(t.size()); + checkMem(t.size()); sink.append(t); } @@ -93,7 +97,7 @@ void TInfoSinkBase::append(const TPersistString& t) void TInfoSinkBase::append(const TString& t) { if (outputStream & EString) { - checkMem(t.size()); + checkMem(t.size()); sink.append(t.c_str()); } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 6f60a594..5504d1fe 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -124,8 +124,8 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& // Print a message formated such that if you click on the message it will take you right to // the line through most UIs. const glslang::TSourceLoc& sourceLoc = input.getSourceLoc(); - printf("\n%s(%i): error at column %i, HLSL translation failed.\n", sourceLoc.name, sourceLoc.line, - sourceLoc.column); + infoSink.info << sourceLoc.name << "(" << sourceLoc.line << "): error at column " << sourceLoc.column << ", HLSL parsing failed.\n"; + ++numErrors; return false; } From 6fccb3cd75cdc34b63461dff19a1d2bd0ef9159f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 16:01:41 -0600 Subject: [PATCH 136/217] Non-functional: Sweep through the stack for consistent with "main" and entry point. Partially addresses issue #513. --- SPIRV/GlslangToSpv.cpp | 14 +++++++------- SPIRV/SpvBuilder.cpp | 2 +- SPIRV/SpvBuilder.h | 2 +- Test/baseResults/120.frag.out | 2 +- Test/baseResults/420.geom.out | 2 +- Test/baseResults/420_size_gl_in.geom.out | 2 +- Test/baseResults/430.vert.out | 2 +- Test/baseResults/440.frag.out | 2 +- Test/baseResults/440.vert.out | 2 +- Test/baseResults/450.comp.out | 2 +- Test/baseResults/badChars.frag.out | 2 +- Test/baseResults/cppBad.vert.out | 2 +- Test/baseResults/dce.frag.out | 2 +- Test/baseResults/errors.frag.out | 2 +- Test/baseResults/mains1.frag.out | 2 +- Test/baseResults/noMain.vert.out | 2 +- Test/baseResults/nonVulkan.frag.out | 2 +- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- glslang/MachineIndependent/SymbolTable.cpp | 2 +- glslang/MachineIndependent/linkValidate.cpp | 6 +++--- glslang/MachineIndependent/localintermediate.h | 8 ++++---- .../preprocessor/PpScanner.cpp | 2 +- glslang/MachineIndependent/reflection.cpp | 10 +++++----- hlsl/hlslParseHelper.cpp | 18 +++++++++--------- hlsl/hlslParseHelper.h | 6 +++--- 26 files changed, 52 insertions(+), 52 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 4513df8a..eab7cec8 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -137,7 +137,7 @@ protected: void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember); - bool isShaderEntrypoint(const glslang::TIntermAggregate* node); + bool isShaderEntryPoint(const glslang::TIntermAggregate* node); void makeFunctions(const glslang::TIntermSequence&); void makeGlobalInitializers(const glslang::TIntermSequence&); void visitFunctions(const glslang::TIntermSequence&); @@ -713,7 +713,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), glslangIntermediate->getVersion()); stdBuiltins = builder.import("GLSL.std.450"); builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450); - shaderEntry = builder.makeEntrypoint(glslangIntermediate->getEntryPoint().c_str()); + shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPoint().c_str()); entryPoint = builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPoint().c_str()); // Add the source extensions @@ -1279,7 +1279,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // In all cases, still let the traverser visit the children for us. makeFunctions(node->getAsAggregate()->getSequence()); - // Also, we want all globals initializers to go into the entry of main(), before + // Also, we want all globals initializers to go into the beginning of the entry point, before // anything else gets there, so visit out of order, doing them all now. makeGlobalInitializers(node->getAsAggregate()->getSequence()); @@ -1313,7 +1313,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt } case glslang::EOpFunction: if (visit == glslang::EvPreVisit) { - if (isShaderEntrypoint(node)) { + if (isShaderEntryPoint(node)) { inMain = true; builder.setBuildPoint(shaderEntry->getLastBlock()); } else { @@ -2451,7 +2451,7 @@ void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& } } -bool TGlslangToSpvTraverser::isShaderEntrypoint(const glslang::TIntermAggregate* node) +bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate* node) { // have to ignore mangling and just look at the base name size_t firstOpen = node->getName().find('('); @@ -2463,7 +2463,7 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF { for (int f = 0; f < (int)glslFunctions.size(); ++f) { glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate(); - if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntrypoint(glslFunction)) + if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction)) continue; // We're on a user function. Set up the basic interface for the function now, @@ -2523,7 +2523,7 @@ void TGlslangToSpvTraverser::makeGlobalInitializers(const glslang::TIntermSequen if (initializer && initializer->getOp() != glslang::EOpFunction && initializer->getOp() != glslang::EOpLinkerObjects) { // We're on a top-level node that's not a function. Treat as an initializer, whose - // code goes into the beginning of main. + // code goes into the beginning of the entry point. initializer->traverse(this); } } diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 708871eb..a881d1b4 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -931,7 +931,7 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat } // Comments in header -Function* Builder::makeEntrypoint(const char* entryPoint) +Function* Builder::makeEntryPoint(const char* entryPoint) { assert(! mainFunction); diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 787d98e7..38dc1fa3 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -210,7 +210,7 @@ public: // Make the entry-point function. The returned pointer is only valid // for the lifetime of this builder. - Function* makeEntrypoint(const char*); + Function* makeEntryPoint(const char*); // Make a shader-style function, and create its entry block if entry is non-zero. // Return the function, pass back the entry. diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out index 0d10b0e9..4fa76000 100644 --- a/Test/baseResults/120.frag.out +++ b/Test/baseResults/120.frag.out @@ -23,7 +23,7 @@ ERROR: 0:84: 'z' : vector field selection out of range ERROR: 0:85: 'assign' : l-value required ERROR: 0:91: 'int' : overloaded functions must have the same return type ERROR: 0:91: 'main' : function already has a body -ERROR: 0:91: 'int' : main function cannot return a value +ERROR: 0:91: 'int' : entry point cannot return a value ERROR: 0:92: 'main' : function cannot take any parameter(s) ERROR: 0:94: 'a' : variables with qualifier 'const' must be initialized ERROR: 0:97: 'out' : overloaded functions must have the same parameter storage qualifiers for argument 1 diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out index 416df139..625feea7 100644 --- a/Test/baseResults/420.geom.out +++ b/Test/baseResults/420.geom.out @@ -132,7 +132,7 @@ ERROR: node is still EOpNull! Linked geometry stage: -ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point ERROR: Linking geometry stage: At least one shader must specify an output layout primitive ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) diff --git a/Test/baseResults/420_size_gl_in.geom.out b/Test/baseResults/420_size_gl_in.geom.out index 21d1944f..28d09a6d 100644 --- a/Test/baseResults/420_size_gl_in.geom.out +++ b/Test/baseResults/420_size_gl_in.geom.out @@ -39,7 +39,7 @@ ERROR: node is still EOpNull! Linked geometry stage: -ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point ERROR: Linking geometry stage: At least one shader must specify an output layout primitive ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 4b7825bd..676fcd3f 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -266,7 +266,7 @@ ERROR: node is still EOpNull! Linked vertex stage: -ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries: ERROR: xfb_buffer 3, xfb_stride 64, minimum stride needed: 80 diff --git a/Test/baseResults/440.frag.out b/Test/baseResults/440.frag.out index cafd85a5..064fe19e 100644 --- a/Test/baseResults/440.frag.out +++ b/Test/baseResults/440.frag.out @@ -122,7 +122,7 @@ ERROR: node is still EOpNull! Linked fragment stage: -ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point Shader version: 440 ERROR: node is still EOpNull! diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index 2e1f5fe6..022ddec4 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -160,7 +160,7 @@ ERROR: node is still EOpNull! Linked vertex stage: -ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point ERROR: Linking vertex stage: xfb_stride is too small to hold all buffer entries: ERROR: xfb_buffer 0, xfb_stride 92, minimum stride needed: 96 ERROR: Linking vertex stage: xfb_stride must be multiple of 8 for buffer holding a double: diff --git a/Test/baseResults/450.comp.out b/Test/baseResults/450.comp.out index d5d1ecab..203c4b24 100644 --- a/Test/baseResults/450.comp.out +++ b/Test/baseResults/450.comp.out @@ -9,7 +9,7 @@ local_size = (1, 1, 1) Linked compute stage: -ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point Shader version: 450 local_size = (1, 1, 1) diff --git a/Test/baseResults/badChars.frag.out b/Test/baseResults/badChars.frag.out index 37af2875..a29b22f5 100644 --- a/Test/baseResults/badChars.frag.out +++ b/Test/baseResults/badChars.frag.out @@ -17,7 +17,7 @@ ERROR: node is still EOpNull! Linked fragment stage: -ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point Shader version: 100 ERROR: node is still EOpNull! diff --git a/Test/baseResults/cppBad.vert.out b/Test/baseResults/cppBad.vert.out index 6938af6a..1fb18ecd 100755 --- a/Test/baseResults/cppBad.vert.out +++ b/Test/baseResults/cppBad.vert.out @@ -14,7 +14,7 @@ ERROR: node is still EOpNull! Linked vertex stage: -ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point Shader version: 100 ERROR: node is still EOpNull! diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out index a19fe4e8..2846abd5 100644 --- a/Test/baseResults/dce.frag.out +++ b/Test/baseResults/dce.frag.out @@ -138,7 +138,7 @@ Shader version: 400 Linked fragment stage: -ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point Shader version: 400 0:? Sequence diff --git a/Test/baseResults/errors.frag.out b/Test/baseResults/errors.frag.out index f1e06d2c..23f66315 100644 --- a/Test/baseResults/errors.frag.out +++ b/Test/baseResults/errors.frag.out @@ -1,6 +1,6 @@ errors.frag ERROR: 0:1: 'main' : function cannot take any parameter(s) -ERROR: 0:1: 'int' : main function cannot return a value +ERROR: 0:1: 'int' : entry point cannot return a value ERROR: 2 compilation errors. No code generated. diff --git a/Test/baseResults/mains1.frag.out b/Test/baseResults/mains1.frag.out index 8ba02bf1..0b5c2b78 100644 --- a/Test/baseResults/mains1.frag.out +++ b/Test/baseResults/mains1.frag.out @@ -42,7 +42,7 @@ output primitive = line_strip Linked geometry stage: ERROR: Linking geometry stage: Contradictory output layout primitives -ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking geometry stage: Missing entry point: Each stage requires one entry point ERROR: Linking geometry stage: At least one shader must specify an input layout primitive ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) diff --git a/Test/baseResults/noMain.vert.out b/Test/baseResults/noMain.vert.out index 630af955..80a32255 100644 --- a/Test/baseResults/noMain.vert.out +++ b/Test/baseResults/noMain.vert.out @@ -23,7 +23,7 @@ ERROR: node is still EOpNull! Linked vertex stage: -ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point Linked fragment stage: diff --git a/Test/baseResults/nonVulkan.frag.out b/Test/baseResults/nonVulkan.frag.out index 10c693c0..8e03610e 100644 --- a/Test/baseResults/nonVulkan.frag.out +++ b/Test/baseResults/nonVulkan.frag.out @@ -18,7 +18,7 @@ ERROR: node is still EOpNull! Linked fragment stage: -ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point +ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point Shader version: 450 ERROR: node is still EOpNull! diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 1fc0ca7e..2058a258 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1495" +#define GLSLANG_REVISION "Overload400-PrecQual.1496" #define GLSLANG_DATE "19-Sep-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 297ae156..c15d721e 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1058,8 +1058,8 @@ TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, if (function.getParamCount() > 0) error(loc, "function cannot take any parameter(s)", function.getName().c_str(), ""); if (function.getType().getBasicType() != EbtVoid) - error(loc, "", function.getType().getBasicTypeString().c_str(), "main function cannot return a value"); - intermediate.addMainCount(); + error(loc, "", function.getType().getBasicTypeString().c_str(), "entry point cannot return a value"); + intermediate.incrementEntryPointCount(); inMain = true; } else inMain = false; diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index 630053a0..2068f26b 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -35,7 +35,7 @@ // // -// Symbol table for parsing. Most functionaliy and main ideas +// Symbol table for parsing. Most functionality and main ideas // are documented in the header file. // diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index dbd2f927..9fd93a78 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -81,7 +81,7 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) else entryPoint = unit.entryPoint; } - numMains += unit.numMains; + numEntryPoints += unit.numEntryPoints; numErrors += unit.numErrors; numPushConstants += unit.numPushConstants; callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end()); @@ -370,8 +370,8 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // void TIntermediate::finalCheck(TInfoSink& infoSink) { - if (source == EShSourceGlsl && numMains < 1) - error(infoSink, "Missing entry point: Each stage requires one \"void main()\" entry point"); + if (source == EShSourceGlsl && numEntryPoints < 1) + error(infoSink, "Missing entry point: Each stage requires one entry point"); if (numPushConstants > 1) error(infoSink, "Only one push_constant block is allowed per stage"); diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 80deabea..0491bdd6 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -137,7 +137,7 @@ class TIntermediate { public: explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : source(EShSourceNone), language(l), profile(p), version(v), treeRoot(0), - numMains(0), numErrors(0), numPushConstants(0), recursive(false), + numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), depthReplacing(false), blendEquations(0), @@ -173,8 +173,8 @@ public: void setTreeRoot(TIntermNode* r) { treeRoot = r; } TIntermNode* getTreeRoot() const { return treeRoot; } - void addMainCount() { ++numMains; } - int getNumMains() const { return numMains; } + void incrementEntryPointCount() { ++numEntryPoints; } + int getNumEntryPoints() const { return numEntryPoints; } int getNumErrors() const { return numErrors; } void addPushConstantCount() { ++numPushConstants; } bool isRecursive() const { return recursive; } @@ -370,7 +370,7 @@ protected: TIntermNode* treeRoot; std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them TBuiltInResource resources; - int numMains; + int numEntryPoints; int numErrors; int numPushConstants; bool recursive; diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index d6b76c57..7daebb3d 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -696,7 +696,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) } // -// The main functional entry-point into the preprocessor, which will +// The main functional entry point into the preprocessor, which will // scan the source strings to figure out and return the next processing token. // // Return string pointer to next token. diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index d3e04af7..3082647f 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -48,7 +48,7 @@ // // High-level algorithm for one stage: // -// 1. Put main() on list of live functions. +// 1. Put the entry point on the list of live functions. // // 2. Traverse any live function, while skipping if-tests with a compile-time constant // condition of false, and while adding any encountered function calls to the live @@ -59,7 +59,7 @@ // 3. Add any encountered uniform variables and blocks to the reflection database. // // Can be attempted with a failed link, but will return false if recursion had been detected, or -// there wasn't exactly one main. +// there wasn't exactly one entry point. // namespace glslang { @@ -83,7 +83,7 @@ public: virtual void visitSymbol(TIntermSymbol* base); virtual bool visitSelection(TVisit, TIntermSelection* node); - // Track live funtions as well as uniforms, so that we don't visit dead functions + // Track live functions as well as uniforms, so that we don't visit dead functions // and only visit each function once. void addFunctionCall(TIntermAggregate* call) { @@ -717,12 +717,12 @@ bool TLiveTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node) // Returns false if the input is too malformed to do this. bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) { - if (intermediate.getNumMains() != 1 || intermediate.isRecursive()) + if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) return false; TLiveTraverser it(intermediate, *this); - // put main() on functions to process + // put the entry point on functions to process it.pushFunction("main("); // process all the functions diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5504d1fe..edbb7060 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -704,7 +704,7 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt // E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. bool HlslParseContext::shouldFlatten(const TType& type) const { - if (! inEntrypoint) + if (! inEntryPoint) return false; const TStorageQualifier qualifier = type.getQualifier().storage; @@ -850,16 +850,16 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l currentFunctionType = new TType(EbtVoid); functionReturnsValue = false; - inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); - if (inEntrypoint) { - remapEntrypointIO(function); + inEntryPoint = (function.getName() == intermediate.getEntryPoint().c_str()); + if (inEntryPoint) { + remapEntryPointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) flatten(*entryPointOutput); assignLocations(*entryPointOutput); } } else - remapNonEntrypointIO(function); + remapNonEntryPointIO(function); // // New symbol table scope for body of function plus its arguments @@ -885,7 +885,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l error(loc, "redefinition", variable->getName().c_str(), ""); else { // get IO straightened out - if (inEntrypoint) { + if (inEntryPoint) { if (shouldFlatten(*param.type)) flatten(*variable); assignLocations(*variable); @@ -925,7 +925,7 @@ void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& func // AST I/O is done through shader globals declared in the 'in' or 'out' // storage class. An HLSL entry point has a return value, input parameters // and output parameters. These need to get remapped to the AST I/O. -void HlslParseContext::remapEntrypointIO(TFunction& function) +void HlslParseContext::remapEntryPointIO(TFunction& function) { // Will auto-assign locations here to the inputs/outputs defined by the entry point @@ -969,7 +969,7 @@ void HlslParseContext::remapEntrypointIO(TFunction& function) // An HLSL function that looks like an entry point, but is not, // declares entry point IO built-ins, but these have to be undone. -void HlslParseContext::remapNonEntrypointIO(TFunction& function) +void HlslParseContext::remapNonEntryPointIO(TFunction& function) { const auto remapBuiltInType = [&](TType& type) { type.getQualifier().builtIn = EbvNone; }; @@ -1007,7 +1007,7 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT // assignment subtree, and the second part being a return with no value. // // Otherwise, for a non entry point, just return a return statement. - if (inEntrypoint) { + if (inEntryPoint) { assert(entryPointOutput != nullptr); // should have been error tested at the beginning TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), entryPointOutput->getType()); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index d9635848..ea763413 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -90,8 +90,8 @@ public: TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); - void remapEntrypointIO(TFunction& function); - void remapNonEntrypointIO(TFunction& function); + void remapEntryPointIO(TFunction& function); + void remapNonEntryPointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right) const; @@ -185,7 +185,7 @@ protected: int structNestingLevel; // 0 if outside blocks and structures int controlFlowNestingLevel; // 0 if outside all flow control TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting - bool inEntrypoint; // if inside a function, true if the function is the entry point + bool inEntryPoint; // if inside a function, true if the function is the entry point bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement const TType* currentFunctionType; // the return type of the function that's currently being parsed bool functionReturnsValue; // true if a non-void function has a return From 55717302ef46386bff5b567fb7312c131e149edf Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Mon, 19 Sep 2016 15:35:12 -0600 Subject: [PATCH 137/217] Refactor TLiveTraverser from the former reflection traverser, for future use in binding mapping. This PR factors out the code that knows how to walk just the live parts of the AST. The traverser in reflect.cpp is renamed to TReflectionTraverser, and inherits from TLiveTraverser, which will also be used by a future binding offset PR. The code is now smart about the entry point name (no longer hardcoded to "main"). There is an option to traverse all code (live+dead), because a consumer of the class may wish to use it for both purposes without wanting a whole separate class hierarchy. --- glslang/CMakeLists.txt | 1 + glslang/MachineIndependent/LiveTraverser.h | 134 +++++++++++++++++++++ glslang/MachineIndependent/reflection.cpp | 78 ++---------- glslang/MachineIndependent/reflection.h | 4 +- 4 files changed, 150 insertions(+), 67 deletions(-) create mode 100644 glslang/MachineIndependent/LiveTraverser.h diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index ff911355..6325fd4a 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -55,6 +55,7 @@ set(HEADERS MachineIndependent/glslang_tab.cpp.h MachineIndependent/gl_types.h MachineIndependent/Initialize.h + MachineIndependent/LiveTraverser.h MachineIndependent/localintermediate.h MachineIndependent/ParseHelper.h MachineIndependent/reflection.h diff --git a/glslang/MachineIndependent/LiveTraverser.h b/glslang/MachineIndependent/LiveTraverser.h new file mode 100644 index 00000000..5a902049 --- /dev/null +++ b/glslang/MachineIndependent/LiveTraverser.h @@ -0,0 +1,134 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#include "../Include/Common.h" +#include "reflection.h" +#include "localintermediate.h" + +#include "gl_types.h" + +#include +#include + +namespace glslang { + +// +// The traverser: mostly pass through, except +// - processing function-call nodes to push live functions onto the stack of functions to process +// - processing selection nodes to trim semantically dead code +// +// This is in the glslang namespace directly so it can be a friend of TReflection. +// This can be derived from to implement reflection database traversers or +// binding mappers: anything that wants to traverse the live subset of the tree. +// + +class TLiveTraverser : public TIntermTraverser { +public: + TLiveTraverser(const TIntermediate& i, bool traverseAll = false) : + intermediate(i), traverseAll(traverseAll) + { } + + // + // Given a function name, find its subroot in the tree, and push it onto the stack of + // functions left to process. + // + void pushFunction(const TString& name) + { + TIntermSequence& globals = intermediate.getTreeRoot()->getAsAggregate()->getSequence(); + for (unsigned int f = 0; f < globals.size(); ++f) { + TIntermAggregate* candidate = globals[f]->getAsAggregate(); + if (candidate && candidate->getOp() == EOpFunction && candidate->getName() == name) { + functions.push_back(candidate); + break; + } + } + } + + typedef std::list TFunctionStack; + TFunctionStack functions; + +protected: + // To catch which function calls are not dead, and hence which functions must be visited. + virtual bool visitAggregate(TVisit, TIntermAggregate* node) + { + if (!traverseAll) + if (node->getOp() == EOpFunctionCall) + addFunctionCall(node); + + return true; // traverse this subtree + } + + // To prune semantically dead paths. + virtual bool visitSelection(TVisit /* visit */, TIntermSelection* node) + { + if (traverseAll) + return true; // traverse all code + + TIntermConstantUnion* constant = node->getCondition()->getAsConstantUnion(); + if (constant) { + // cull the path that is dead + if (constant->getConstArray()[0].getBConst() == true && node->getTrueBlock()) + node->getTrueBlock()->traverse(this); + if (constant->getConstArray()[0].getBConst() == false && node->getFalseBlock()) + node->getFalseBlock()->traverse(this); + + return false; // don't traverse any more, we did it all above + } else + return true; // traverse the whole subtree + } + + // Track live functions as well as uniforms, so that we don't visit dead functions + // and only visit each function once. + void addFunctionCall(TIntermAggregate* call) + { + // // just use the map to ensure we process each function at most once + if (liveFunctions.find(call->getName()) == liveFunctions.end()) { + liveFunctions.insert(call->getName()); + pushFunction(call->getName()); + } + } + + const TIntermediate& intermediate; + typedef std::unordered_set TLiveFunctions; + TLiveFunctions liveFunctions; + bool traverseAll; + +private: + // prevent copy & copy construct + TLiveTraverser(TLiveTraverser&); + TLiveTraverser& operator=(TLiveTraverser&); +}; + +} // namespace glslang diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index 3082647f..a951122a 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -1,5 +1,5 @@ // -//Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // //All rights reserved. // @@ -35,6 +35,7 @@ #include "../Include/Common.h" #include "reflection.h" +#include "LiveTraverser.h" #include "localintermediate.h" #include "gl_types.h" @@ -62,37 +63,26 @@ // there wasn't exactly one entry point. // + namespace glslang { // // The traverser: mostly pass through, except -// - processing function-call nodes to push live functions onto the stack of functions to process // - processing binary nodes to see if they are dereferences of an aggregates to track // - processing symbol nodes to see if they are non-aggregate objects to track -// - processing selection nodes to trim semantically dead code +// +// This ignores semantically dead code by using TLiveTraverser. // // This is in the glslang namespace directly so it can be a friend of TReflection. // -class TLiveTraverser : public TIntermTraverser { +class TReflectionTraverser : public TLiveTraverser { public: - TLiveTraverser(const TIntermediate& i, TReflection& r) : intermediate(i), reflection(r) { } + TReflectionTraverser(const TIntermediate& i, TReflection& r) : + TLiveTraverser(i), reflection(r) { } - virtual bool visitAggregate(TVisit, TIntermAggregate* node); virtual bool visitBinary(TVisit, TIntermBinary* node); virtual void visitSymbol(TIntermSymbol* base); - virtual bool visitSelection(TVisit, TIntermSelection* node); - - // Track live functions as well as uniforms, so that we don't visit dead functions - // and only visit each function once. - void addFunctionCall(TIntermAggregate* call) - { - // just use the map to ensure we process each function at most once - if (reflection.nameToIndex.find(call->getName()) == reflection.nameToIndex.end()) { - reflection.nameToIndex[call->getName()] = -1; - pushFunction(call->getName()); - } - } // Add a simple reference to a uniform variable to the uniform database, no dereference involved. // However, no dereference doesn't mean simple... it could be a complex aggregate. @@ -358,21 +348,6 @@ public: return blockIndex; } - // - // Given a function name, find its subroot in the tree, and push it onto the stack of - // functions left to process. - // - void pushFunction(const TString& name) - { - TIntermSequence& globals = intermediate.getTreeRoot()->getAsAggregate()->getSequence(); - for (unsigned int f = 0; f < globals.size(); ++f) { - TIntermAggregate* candidate = globals[f]->getAsAggregate(); - if (candidate && candidate->getOp() == EOpFunction && candidate->getName() == name) { - functions.push_back(candidate); - break; - } - } - } // Are we at a level in a dereference chain at which individual active uniform queries are made? bool isReflectionGranularity(const TType& type) @@ -639,33 +614,21 @@ public: return type.isArray() ? type.getOuterArraySize() : 1; } - typedef std::list TFunctionStack; - TFunctionStack functions; - const TIntermediate& intermediate; TReflection& reflection; std::set processedDerefs; protected: - TLiveTraverser(TLiveTraverser&); - TLiveTraverser& operator=(TLiveTraverser&); + TReflectionTraverser(TReflectionTraverser&); + TReflectionTraverser& operator=(TReflectionTraverser&); }; // // Implement the traversal functions of interest. // -// To catch which function calls are not dead, and hence which functions must be visited. -bool TLiveTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node) -{ - if (node->getOp() == EOpFunctionCall) - addFunctionCall(node); - - return true; // traverse this subtree -} - // To catch dereferenced aggregates that must be reflected. // This catches them at the highest level possible in the tree. -bool TLiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) +bool TReflectionTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) { switch (node->getOp()) { case EOpIndexDirect: @@ -683,7 +646,7 @@ bool TLiveTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) } // To reflect non-dereferenced objects. -void TLiveTraverser::visitSymbol(TIntermSymbol* base) +void TReflectionTraverser::visitSymbol(TIntermSymbol* base) { if (base->getQualifier().storage == EvqUniform) addUniform(*base); @@ -692,21 +655,6 @@ void TLiveTraverser::visitSymbol(TIntermSymbol* base) addAttribute(*base); } -// To prune semantically dead paths. -bool TLiveTraverser::visitSelection(TVisit /* visit */, TIntermSelection* node) -{ - TIntermConstantUnion* constant = node->getCondition()->getAsConstantUnion(); - if (constant) { - // cull the path that is dead - if (constant->getConstArray()[0].getBConst() == true && node->getTrueBlock()) - node->getTrueBlock()->traverse(this); - if (constant->getConstArray()[0].getBConst() == false && node->getFalseBlock()) - node->getFalseBlock()->traverse(this); - - return false; // don't traverse any more, we did it all above - } else - return true; // traverse the whole subtree -} // // Implement TReflection methods. @@ -720,7 +668,7 @@ bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) return false; - TLiveTraverser it(intermediate, *this); + TReflectionTraverser it(intermediate, *this); // put the entry point on functions to process it.pushFunction("main("); diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h index 5d930c7a..8880602c 100644 --- a/glslang/MachineIndependent/reflection.h +++ b/glslang/MachineIndependent/reflection.h @@ -49,7 +49,7 @@ namespace glslang { class TIntermediate; class TIntermAggregate; -class TLiveTraverser; +class TReflectionTraverser; // Data needed for just a single object at the granularity exchanged by the reflection API class TObjectReflection { @@ -116,7 +116,7 @@ public: void dump(); protected: - friend class glslang::TLiveTraverser; + friend class glslang::TReflectionTraverser; // Need a TString hash: typedef std::unordered_map TNameToIndex; typedef std::map TNameToIndex; From eee9d536bc12eeeca6d57310d60cd05824960a62 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 18:09:30 -0600 Subject: [PATCH 138/217] Track separate entry-point names and mangled names... ... and use each in the correct way at consumption sites. This completes issue #513. --- SPIRV/GlslangToSpv.cpp | 8 +++---- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 21 ++++++++++++------- glslang/MachineIndependent/ShaderLang.cpp | 4 ++-- glslang/MachineIndependent/linkValidate.cpp | 6 +++--- .../MachineIndependent/localintermediate.h | 9 +++++--- glslang/MachineIndependent/reflection.cpp | 4 ++-- hlsl/hlslParseHelper.cpp | 3 ++- 8 files changed, 32 insertions(+), 25 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index eab7cec8..72865886 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -713,8 +713,8 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), glslangIntermediate->getVersion()); stdBuiltins = builder.import("GLSL.std.450"); builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450); - shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPoint().c_str()); - entryPoint = builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPoint().c_str()); + shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str()); + entryPoint = builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPointName().c_str()); // Add the source extensions const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions(); @@ -2453,9 +2453,7 @@ void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate* node) { - // have to ignore mangling and just look at the base name - size_t firstOpen = node->getName().find('('); - return node->getName().compare(0, firstOpen, glslangIntermediate->getEntryPoint().c_str()) == 0; + return node->getName().compare(glslangIntermediate->getEntryPointMangledName().c_str()) == 0; } // Make all the functions, skeletally, without actually visiting their bodies. diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2058a258..a496025a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1496" +#define GLSLANG_REVISION "Overload400-PrecQual.1499" #define GLSLANG_DATE "19-Sep-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index c15d721e..3c9caf13 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1051,19 +1051,24 @@ TIntermAggregate* TParseContext::handleFunctionDefinition(const TSourceLoc& loc, currentFunctionType = new TType(EbtVoid); functionReturnsValue = false; - // - // Raise error message if main function takes any parameters or returns anything other than void - // - if (function.getName() == intermediate.getEntryPoint().c_str()) { - if (function.getParamCount() > 0) - error(loc, "function cannot take any parameter(s)", function.getName().c_str(), ""); - if (function.getType().getBasicType() != EbtVoid) - error(loc, "", function.getType().getBasicTypeString().c_str(), "entry point cannot return a value"); + // Check for entry point + if (function.getName().compare(intermediate.getEntryPointName().c_str()) == 0) { + intermediate.setEntryPointMangledName(function.getMangledName().c_str()); intermediate.incrementEntryPointCount(); inMain = true; } else inMain = false; + // + // Raise error message if main function takes any parameters or returns anything other than void + // + if (inMain) { + if (function.getParamCount() > 0) + error(loc, "function cannot take any parameter(s)", function.getName().c_str(), ""); + if (function.getType().getBasicType() != EbtVoid) + error(loc, "", function.getType().getBasicTypeString().c_str(), "entry point cannot return a value"); + } + // // New symbol table scope for body of function plus its arguments // diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index c0510c7a..414a62b3 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -697,7 +697,7 @@ bool ProcessDeferred( parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion, compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); } else { - intermediate.setEntryPoint("main"); + intermediate.setEntryPointName("main"); parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion, compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); } @@ -1485,7 +1485,7 @@ void TShader::setStringsWithLengthsAndNames( void TShader::setEntryPoint(const char* entryPoint) { - intermediate->setEntryPoint(entryPoint); + intermediate->setEntryPointName(entryPoint); } // diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 9fd93a78..afffb374 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -75,11 +75,11 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) if (source != unit.source) error(infoSink, "can't link compilation units from different source languages"); - if (source == EShSourceHlsl && unit.entryPoint.size() > 0) { - if (entryPoint.size() > 0) + if (source == EShSourceHlsl && unit.entryPointName.size() > 0) { + if (entryPointName.size() > 0) error(infoSink, "can't handle multiple entry points per stage"); else - entryPoint = unit.entryPoint; + entryPointName = unit.entryPointName; } numEntryPoints += unit.numEntryPoints; numErrors += unit.numErrors; diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 0491bdd6..3ce615ee 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -159,8 +159,10 @@ public: void setSource(EShSource s) { source = s; } EShSource getSource() const { return source; } - void setEntryPoint(const char* ep) { entryPoint = ep; } - const std::string& getEntryPoint() const { return entryPoint; } + void setEntryPointName(const char* ep) { entryPointName = ep; } + void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; } + const std::string& getEntryPointName() const { return entryPointName; } + const std::string& getEntryPointMangledName() const { return entryPointMangledName; } void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } @@ -363,7 +365,8 @@ protected: const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later - std::string entryPoint; + std::string entryPointName; + std::string entryPointMangledName; EProfile profile; int version; SpvVersion spvVersion; diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index a951122a..d5577656 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -670,8 +670,8 @@ bool TReflection::addStage(EShLanguage, const TIntermediate& intermediate) TReflectionTraverser it(intermediate, *this); - // put the entry point on functions to process - it.pushFunction("main("); + // put the entry point on the list of functions to process + it.pushFunction(intermediate.getEntryPointMangledName().c_str()); // process all the functions while (! it.functions.empty()) { diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index edbb7060..4e43bff0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -850,8 +850,9 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l currentFunctionType = new TType(EbtVoid); functionReturnsValue = false; - inEntryPoint = (function.getName() == intermediate.getEntryPoint().c_str()); + inEntryPoint = function.getName().compare(intermediate.getEntryPointName().c_str()) == 0; if (inEntryPoint) { + intermediate.setEntryPointMangledName(function.getMangledName().c_str()); remapEntryPointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) From 86f7138706e6909353ecb2f4bbe692ee3b2164e5 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 20:23:18 -0600 Subject: [PATCH 139/217] HLSL: Add string basic type and recognize string declaration grammar. This includes the "< decl ; decl ; >" syntax which has its own namespace. This functionality is not implemented, just silently accepted. --- Test/baseResults/hlsl.string.frag.out | 64 +++++++++++++++++++++++++++ Test/hlsl.string.frag | 12 +++++ glslang/Include/BaseTypes.h | 4 ++ glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 55 +++++++++++++++++++++++ hlsl/hlslGrammar.h | 1 + hlsl/hlslParseHelper.cpp | 5 +++ hlsl/hlslScanContext.cpp | 2 + hlsl/hlslTokens.h | 1 + 10 files changed, 146 insertions(+), 1 deletion(-) create mode 100755 Test/baseResults/hlsl.string.frag.out create mode 100755 Test/hlsl.string.frag diff --git a/Test/baseResults/hlsl.string.frag.out b/Test/baseResults/hlsl.string.frag.out new file mode 100755 index 00000000..6016f52e --- /dev/null +++ b/Test/baseResults/hlsl.string.frag.out @@ -0,0 +1,64 @@ +hlsl.string.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main(f1; (global float) +0:10 Function Parameters: +0:10 'f' (layout(location=0 ) in float) +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 'f' (layout(location=0 ) in float) +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'f' (layout(location=0 ) in float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main(f1; (global float) +0:10 Function Parameters: +0:10 'f' (layout(location=0 ) in float) +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp float) +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:11 'f' (layout(location=0 ) in float) +0:11 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out float) +0:? 'f' (layout(location=0 ) in float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 13 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 10 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "@entryPointOutput" + Name 10 "f" + Decorate 8(@entryPointOutput) Location 0 + Decorate 10(f) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Output 6(float) +8(@entryPointOutput): 7(ptr) Variable Output + 9: TypePointer Input 6(float) + 10(f): 9(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 11: 6(float) Load 10(f) + Store 8(@entryPointOutput) 11 + Return + FunctionEnd diff --git a/Test/hlsl.string.frag b/Test/hlsl.string.frag new file mode 100755 index 00000000..09885ff9 --- /dev/null +++ b/Test/hlsl.string.frag @@ -0,0 +1,12 @@ +string s = "string1"; +string e = ""; +string bracket < string a = "nested" ; > ; +string brackets < string b = "nest1" ; string c = "nest2" ; string d = "nest3" ; > ; +string brackete1 < > ; +string brackete2 < ; > ; +string brackete3 < ; ; > ; + +float main(float f) +{ + return f; +} \ No newline at end of file diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index bc8f1103..64ef80c9 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -55,6 +55,10 @@ enum TBasicType { EbtSampler, EbtStruct, EbtBlock, + + // HLSL types that live only temporarily. + EbtString, + EbtNumTypes }; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index a496025a..bf8f2285 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1499" +#define GLSLANG_REVISION "Overload400-PrecQual.1501" #define GLSLANG_DATE "19-Sep-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 06660c73..01cc0323 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -160,6 +160,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.stringtoken.frag", "main"}, + {"hlsl.string.frag", "main"}, {"hlsl.structin.vert", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index cc7e9010..07625145 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -721,6 +721,54 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) return true; } +// string_template_type +// : STRING +// | STRING identifier LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE +// +bool HlslGrammar::acceptStringTemplateType(TType& type) +{ + // STRING + if (! acceptTokenClass(EHTokString)) + return false; + + // no matter what happens next, we recognized a string type + new(&type) TType(EbtString); + + // identifier LEFT_ANGLE, or not? + if (! acceptTokenClass(EHTokIdentifier)) { + expected("identifier following 'string'"); + return false; + } + + if (! peekTokenClass(EHTokLeftAngle)) { + // then it must be the non-template version, back up and let + // normal declaration code handle it + + // recede the identifier + recedeToken(); + return true; + } + + // move past the LEFT_ANGLE + advanceToken(); + + // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE + do { + // eat any extra SEMI_COLON; don't know if the grammar calls for this or not + while (acceptTokenClass(EHTokSemicolon)) + ; + + if (acceptTokenClass(EHTokRightAngle)) + return true; + + // declaration + TIntermNode* node; + if (! acceptDeclaration(node)) { + expected("declaration in string list"); + return false; + } + } while (true); +} // sampler_type // : SAMPLER @@ -894,6 +942,10 @@ bool HlslGrammar::acceptType(TType& type) return acceptMatrixTemplateType(type); break; + case EHTokString: + return acceptStringTemplateType(type); + break; + case EHTokSampler: // fall through case EHTokSampler1d: // ... case EHTokSampler2d: // ... @@ -2062,6 +2114,9 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) case EHTokBoolConstant: node = intermediate.addConstantUnion(token.b, token.loc, true); break; + case EHTokStringConstant: + node = nullptr; + break; default: return false; diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 4e93f09d..f5c7d4d2 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -73,6 +73,7 @@ namespace glslang { bool acceptTemplateType(TBasicType&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); + bool acceptStringTemplateType(TType&); bool acceptSamplerType(TType&); bool acceptTextureType(TType&); bool acceptStruct(TType&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4e43bff0..e506e297 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4052,6 +4052,11 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes, TIntermTyped* initializer) { + // string identifiers can nest inside < ... >, apparently with their own namespace, + // which is not implemented + if (parseType.getBasicType() == EbtString) + return nullptr; + TType type; type.shallowCopy(parseType); if (type.isImplicitlySizedArray()) { diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 29a22553..edeee64c 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -122,6 +122,7 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; (*KeywordMap)["matrix"] = EHTokMatrix; + (*KeywordMap)["string"] = EHTokString; (*KeywordMap)["void"] = EHTokVoid; (*KeywordMap)["bool"] = EHTokBool; @@ -471,6 +472,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokBuffer: case EHTokVector: case EHTokMatrix: + case EHTokString: return keyword; // scalar types diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index db3b0972..9e23cc7a 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -70,6 +70,7 @@ enum EHlslTokenClass { EHTokBuffer, EHTokVector, EHTokMatrix, + EHTokString, // scalar types EHTokVoid, From 6b71c400f8b968714b63db8a8878d62e87ce933f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 22:16:09 -0600 Subject: [PATCH 140/217] HLSL: Remove extraneous built-in member decorations for IO structs used in non-IO situations. --- .../hlsl.calculatelod.dx10.frag.out | 29 ++++----- .../hlsl.calculatelodunclamped.dx10.frag.out | 28 ++++---- Test/baseResults/hlsl.entry-in.frag.out | 65 +++++++++---------- .../hlsl.gather.array.dx10.frag.out | 29 ++++----- .../hlsl.gather.basic.dx10.frag.out | 29 ++++----- .../hlsl.gather.basic.dx10.vert.out | 21 +++--- .../hlsl.gather.offset.dx10.frag.out | 29 ++++----- .../hlsl.gather.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.gatherRGBA.array.dx10.frag.out | 29 ++++----- .../hlsl.gatherRGBA.basic.dx10.frag.out | 29 ++++----- .../hlsl.gatherRGBA.offset.dx10.frag.out | 29 ++++----- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.getdimensions.dx10.frag.out | 29 ++++----- .../hlsl.getdimensions.dx10.vert.out | 21 +++--- .../hlsl.getsampleposition.dx10.frag.out | 28 ++++---- Test/baseResults/hlsl.inoutquals.frag.out | 29 ++++----- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 29 ++++----- .../baseResults/hlsl.load.array.dx10.frag.out | 29 ++++----- .../baseResults/hlsl.load.basic.dx10.frag.out | 29 ++++----- .../baseResults/hlsl.load.basic.dx10.vert.out | 21 +++--- .../hlsl.load.buffer.dx10.frag.out | 29 ++++----- .../hlsl.load.offset.dx10.frag.out | 29 ++++----- .../hlsl.load.offsetarray.dx10.frag.out | 29 ++++----- Test/baseResults/hlsl.pp.line.frag.out | 29 ++++----- .../hlsl.sample.array.dx10.frag.out | 29 ++++----- .../hlsl.sample.basic.dx10.frag.out | 29 ++++----- .../hlsl.sample.offset.dx10.frag.out | 29 ++++----- .../hlsl.sample.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.samplebias.array.dx10.frag.out | 29 ++++----- .../hlsl.samplebias.basic.dx10.frag.out | 29 ++++----- .../hlsl.samplebias.offset.dx10.frag.out | 29 ++++----- .../hlsl.samplebias.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.samplecmp.array.dx10.frag.out | 29 ++++----- .../hlsl.samplecmp.basic.dx10.frag.out | 29 ++++----- .../hlsl.samplecmp.offset.dx10.frag.out | 29 ++++----- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 29 ++++----- ...lsl.samplecmplevelzero.array.dx10.frag.out | 29 ++++----- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 29 ++++----- ...sl.samplecmplevelzero.offset.dx10.frag.out | 29 ++++----- ...mplecmplevelzero.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.samplegrad.array.dx10.frag.out | 29 ++++----- .../hlsl.samplegrad.basic.dx10.frag.out | 29 ++++----- .../hlsl.samplegrad.basic.dx10.vert.out | 21 +++--- .../hlsl.samplegrad.offset.dx10.frag.out | 29 ++++----- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 29 ++++----- .../hlsl.samplelevel.array.dx10.frag.out | 29 ++++----- .../hlsl.samplelevel.basic.dx10.frag.out | 29 ++++----- .../hlsl.samplelevel.basic.dx10.vert.out | 21 +++--- .../hlsl.samplelevel.offset.dx10.frag.out | 29 ++++----- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 29 ++++----- Test/baseResults/hlsl.struct.frag.out | 4 +- Test/baseResults/hlsl.structin.vert.out | 36 +++++----- ...emap.hlsl.sample.basic.everything.frag.out | 1 - .../remap.hlsl.sample.basic.none.frag.out | 1 - .../remap.hlsl.sample.basic.strip.frag.out | 1 - hlsl/hlslParseHelper.cpp | 6 ++ 56 files changed, 724 insertions(+), 769 deletions(-) diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 5174eeea..68eee1a0 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -307,8 +307,8 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -318,13 +318,13 @@ gl_FragCoord origin is upper left 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return @@ -394,7 +394,6 @@ gl_FragCoord origin is upper left Decorate 93(g_tTexcdf4a) DescriptorSet 0 Decorate 106(g_tTexcdi4a) DescriptorSet 0 Decorate 118(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 141(Color) Location 0 Decorate 145(Depth) BuiltIn FragDepth Decorate 149(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 88b7f70c..9370e14a 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -136,7 +136,7 @@ ERROR: node is still EOpNull! 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -145,8 +145,8 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -156,13 +156,13 @@ ERROR: node is still EOpNull! 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return @@ -188,7 +188,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -310,7 +310,7 @@ ERROR: node is still EOpNull! 0:38 0 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -319,8 +319,8 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -330,13 +330,13 @@ ERROR: node is still EOpNull! 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index 010f27b5..5baea644 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -4,44 +4,44 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) 0:8 Function Parameters: -0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:9 Branch: Return with expression 0:9 add (temp float) 0:9 direct index (temp float) 0:9 v: direct index for structure (temp 2-component vector of float) -0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 1 (const int) 0:9 direct index (temp float) 0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:9 Constant: 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) 0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) 0:13 Function Parameters: -0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:15 move second child to first child (temp 4-component vector of float) -0:15 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 fragCoord: direct index for structure (temp 4-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:15 move second child to first child (temp 2-component vector of int) 0:15 i2: direct index for structure (temp 2-component vector of int) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) 0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) @@ -58,30 +58,30 @@ gl_FragCoord origin is upper left 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? fragCoord: direct index for structure (temp 4-component vector of float) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:? move second child to first child (temp 2-component vector of int) 0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:19 vector-scale (temp 4-component vector of float) 0:19 vector-scale (temp 4-component vector of float) -0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 fragCoord: direct index for structure (temp 4-component vector of float) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Constant: 0:19 1 (const int) 0:19 'ret1' (temp float) @@ -102,44 +102,44 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) 0:8 Function Parameters: -0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:9 Branch: Return with expression 0:9 add (temp float) 0:9 direct index (temp float) 0:9 v: direct index for structure (temp 2-component vector of float) -0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 1 (const int) 0:9 direct index (temp float) 0:9 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:9 Constant: 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) 0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) 0:13 Function Parameters: -0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:15 move second child to first child (temp 4-component vector of float) -0:15 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 fragCoord: direct index for structure (temp 4-component vector of float) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:15 move second child to first child (temp 2-component vector of int) 0:15 i2: direct index for structure (temp 2-component vector of int) -0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:15 Constant: 0:15 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) @@ -147,7 +147,7 @@ gl_FragCoord origin is upper left 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) 0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) @@ -156,30 +156,30 @@ gl_FragCoord origin is upper left 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) 0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? fragCoord: direct index for structure (temp 4-component vector of float) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) 0:? move second child to first child (temp 2-component vector of int) 0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Constant: 0:? 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:19 vector-scale (temp 4-component vector of float) 0:19 vector-scale (temp 4-component vector of float) -0:19 fragCoord: direct index for structure (temp 4-component vector of float FragCoord) -0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float FragCoord fragCoord, temp 2-component vector of int i2}) +0:19 fragCoord: direct index for structure (temp 4-component vector of float) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Constant: 0:19 1 (const int) 0:19 'ret1' (temp float) @@ -217,7 +217,6 @@ gl_FragCoord origin is upper left Name 52 "aggShadow" Name 59 "param" Name 63 "@entryPointOutput" - MemberDecorate 11(InParam) 1 BuiltIn FragCoord Decorate 32(v) Location 0 Decorate 37(fragCoord) BuiltIn FragCoord Decorate 43(i2) Location 1 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 1c4c2f17..d2545cca 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -85,8 +85,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -96,13 +96,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -128,7 +128,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -202,7 +202,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -211,8 +211,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -222,13 +222,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -290,7 +290,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTexcdf4a) DescriptorSet 0 Decorate 70(g_tTexcdi4a) DescriptorSet 0 Decorate 80(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 99(Color) Location 0 Decorate 103(Depth) BuiltIn FragDepth Decorate 109(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 340529d5..52648f70 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) 0:44 Color: direct index for structure (temp 4-component vector of float) -0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -79,8 +79,8 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:44 1.000000 0:45 move second child to first child (temp float) -0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Depth: direct index for structure (temp float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: @@ -90,13 +90,13 @@ gl_FragCoord origin is upper left 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:47 Depth: direct index for structure (temp float FragDepth) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Depth: direct index for structure (temp float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 1 (const int) 0:47 Branch: Return @@ -126,7 +126,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:44 move second child to first child (temp 4-component vector of float) 0:44 Color: direct index for structure (temp 4-component vector of float) -0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: @@ -203,8 +203,8 @@ gl_FragCoord origin is upper left 0:44 1.000000 0:44 1.000000 0:45 move second child to first child (temp float) -0:45 Depth: direct index for structure (temp float FragDepth) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 Depth: direct index for structure (temp float) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: @@ -214,13 +214,13 @@ gl_FragCoord origin is upper left 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:47 Depth: direct index for structure (temp float FragDepth) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 Depth: direct index for structure (temp float) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 1 (const int) 0:47 Branch: Return @@ -289,7 +289,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTexcdf4) DescriptorSet 0 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 100(Color) Location 0 Decorate 104(Depth) BuiltIn FragDepth Decorate 108(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 74e26488..1f01fc3e 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.gather.basic.dx10.vert Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -68,8 +68,8 @@ Shader version: 450 0:? 0.800000 0:? 0.900000 0:43 move second child to first child (temp 4-component vector of float) -0:43 Pos: direct index for structure (temp 4-component vector of float Position) -0:43 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:43 Pos: direct index for structure (temp 4-component vector of float) +0:43 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: @@ -81,8 +81,8 @@ Shader version: 450 0:? Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:45 Pos: direct index for structure (temp 4-component vector of float Position) -0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:45 Pos: direct index for structure (temp 4-component vector of float) +0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:45 Constant: 0:45 0 (const int) 0:45 Branch: Return @@ -110,7 +110,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -177,8 +177,8 @@ Shader version: 450 0:? 0.800000 0:? 0.900000 0:43 move second child to first child (temp 4-component vector of float) -0:43 Pos: direct index for structure (temp 4-component vector of float Position) -0:43 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:43 Pos: direct index for structure (temp 4-component vector of float) +0:43 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: @@ -190,8 +190,8 @@ Shader version: 450 0:? Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:45 Pos: direct index for structure (temp 4-component vector of float Position) -0:45 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:45 Pos: direct index for structure (temp 4-component vector of float) +0:45 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:45 Constant: 0:45 0 (const int) 0:45 Branch: Return @@ -256,7 +256,6 @@ Shader version: 450 Decorate 59(g_tTexcdf4) DescriptorSet 0 Decorate 70(g_tTexcdi4) DescriptorSet 0 Decorate 80(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 90(VS_OUTPUT) 0 BuiltIn Position Decorate 97(Pos) BuiltIn Position Decorate 101(g_sSamp2d) DescriptorSet 0 Decorate 104(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 5ac30a11..ac317915 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -55,8 +55,8 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -66,13 +66,13 @@ gl_FragCoord origin is upper left 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return @@ -101,7 +101,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:40 move second child to first child (temp 4-component vector of float) 0:40 Color: direct index for structure (temp 4-component vector of float) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: @@ -154,8 +154,8 @@ gl_FragCoord origin is upper left 0:40 1.000000 0:40 1.000000 0:41 move second child to first child (temp float) -0:41 Depth: direct index for structure (temp float FragDepth) -0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:41 Depth: direct index for structure (temp float) +0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: @@ -165,13 +165,13 @@ gl_FragCoord origin is upper left 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 0 (const int) 0:43 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:43 Depth: direct index for structure (temp float FragDepth) -0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:43 Depth: direct index for structure (temp float) +0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:43 Constant: 0:43 1 (const int) 0:43 Branch: Return @@ -232,7 +232,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 35(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 - MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 71(Color) Location 0 Decorate 75(Depth) BuiltIn FragDepth Decorate 81(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 84472b0a..bf8f3822 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) 0:32 Color: direct index for structure (temp 4-component vector of float) -0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -58,8 +58,8 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:32 1.000000 0:33 move second child to first child (temp float) -0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Depth: direct index for structure (temp float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: @@ -69,13 +69,13 @@ gl_FragCoord origin is upper left 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Branch: Return @@ -98,7 +98,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:32 move second child to first child (temp 4-component vector of float) 0:32 Color: direct index for structure (temp 4-component vector of float) -0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: @@ -154,8 +154,8 @@ gl_FragCoord origin is upper left 0:32 1.000000 0:32 1.000000 0:33 move second child to first child (temp float) -0:33 Depth: direct index for structure (temp float FragDepth) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Depth: direct index for structure (temp float) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: @@ -165,13 +165,13 @@ gl_FragCoord origin is upper left 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Branch: Return @@ -220,7 +220,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 51(g_tTex2du4) DescriptorSet 0 - MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 72(Color) Location 0 Decorate 76(Depth) BuiltIn FragDepth Decorate 82(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index cb6180f5..026fd1b7 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -247,7 +247,7 @@ gl_FragCoord origin is upper left 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) 0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:67 1.000000 0:68 move second child to first child (temp float) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: @@ -267,13 +267,13 @@ gl_FragCoord origin is upper left 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 0 (const int) 0:70 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float FragDepth) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 1 (const int) 0:70 Branch: Return @@ -303,7 +303,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -548,7 +548,7 @@ gl_FragCoord origin is upper left 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) 0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -557,8 +557,8 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:67 1.000000 0:68 move second child to first child (temp float) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: @@ -568,13 +568,13 @@ gl_FragCoord origin is upper left 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 0 (const int) 0:70 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float FragDepth) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 1 (const int) 0:70 Branch: Return @@ -662,7 +662,6 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4a) DescriptorSet 0 Decorate 124(g_tTexcdi4a) DescriptorSet 0 Decorate 134(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 204(Color) Location 0 Decorate 208(Depth) BuiltIn FragDepth Decorate 212(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index b5735e49..2ec5343b 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -247,7 +247,7 @@ gl_FragCoord origin is upper left 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) 0:73 Color: direct index for structure (temp 4-component vector of float) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:73 1.000000 0:74 move second child to first child (temp float) -0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 Depth: direct index for structure (temp float) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: @@ -267,13 +267,13 @@ gl_FragCoord origin is upper left 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:76 Constant: 0:76 0 (const int) 0:76 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:76 Depth: direct index for structure (temp float FragDepth) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Depth: direct index for structure (temp float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:76 Constant: 0:76 1 (const int) 0:76 Branch: Return @@ -307,7 +307,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -552,7 +552,7 @@ gl_FragCoord origin is upper left 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) 0:73 Color: direct index for structure (temp 4-component vector of float) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: @@ -561,8 +561,8 @@ gl_FragCoord origin is upper left 0:73 1.000000 0:73 1.000000 0:74 move second child to first child (temp float) -0:74 Depth: direct index for structure (temp float FragDepth) -0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:74 Depth: direct index for structure (temp float) +0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:74 Constant: 0:74 1 (const int) 0:74 Constant: @@ -572,13 +572,13 @@ gl_FragCoord origin is upper left 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:76 Constant: 0:76 0 (const int) 0:76 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:76 Depth: direct index for structure (temp float FragDepth) -0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:76 Depth: direct index for structure (temp float) +0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:76 Constant: 0:76 1 (const int) 0:76 Branch: Return @@ -673,7 +673,6 @@ gl_FragCoord origin is upper left Decorate 112(g_tTexcdf4) DescriptorSet 0 Decorate 125(g_tTexcdi4) DescriptorSet 0 Decorate 135(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 205(Color) Location 0 Decorate 209(Depth) BuiltIn FragDepth Decorate 213(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index f8857ccf..a869ba73 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -319,7 +319,7 @@ gl_FragCoord origin is upper left 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) 0:112 Color: direct index for structure (temp 4-component vector of float) -0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -328,8 +328,8 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:112 1.000000 0:113 move second child to first child (temp float) -0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Depth: direct index for structure (temp float) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: @@ -339,13 +339,13 @@ gl_FragCoord origin is upper left 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:115 Constant: 0:115 0 (const int) 0:115 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:115 Depth: direct index for structure (temp float FragDepth) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Depth: direct index for structure (temp float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:115 Constant: 0:115 1 (const int) 0:115 Branch: Return @@ -383,7 +383,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -700,7 +700,7 @@ gl_FragCoord origin is upper left 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) 0:112 Color: direct index for structure (temp 4-component vector of float) -0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:112 Constant: 0:112 0 (const int) 0:112 Constant: @@ -709,8 +709,8 @@ gl_FragCoord origin is upper left 0:112 1.000000 0:112 1.000000 0:113 move second child to first child (temp float) -0:113 Depth: direct index for structure (temp float FragDepth) -0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:113 Depth: direct index for structure (temp float) +0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:113 Constant: 0:113 1 (const int) 0:113 Constant: @@ -720,13 +720,13 @@ gl_FragCoord origin is upper left 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:115 Constant: 0:115 0 (const int) 0:115 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:115 Depth: direct index for structure (temp float FragDepth) -0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:115 Depth: direct index for structure (temp float) +0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:115 Constant: 0:115 1 (const int) 0:115 Branch: Return @@ -827,7 +827,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 50(g_tTex2du4) DescriptorSet 0 - MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 267(Color) Location 0 Decorate 271(Depth) BuiltIn FragDepth Decorate 275(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 4ee4aa70..022f63ed 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -319,7 +319,7 @@ gl_FragCoord origin is upper left 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) 0:106 Color: direct index for structure (temp 4-component vector of float) -0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -328,8 +328,8 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:106 1.000000 0:107 move second child to first child (temp float) -0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Depth: direct index for structure (temp float) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: @@ -339,13 +339,13 @@ gl_FragCoord origin is upper left 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:109 Constant: 0:109 0 (const int) 0:109 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:109 Depth: direct index for structure (temp float FragDepth) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Depth: direct index for structure (temp float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:109 Constant: 0:109 1 (const int) 0:109 Branch: Return @@ -379,7 +379,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -696,7 +696,7 @@ gl_FragCoord origin is upper left 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) 0:106 Color: direct index for structure (temp 4-component vector of float) -0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:106 Constant: 0:106 0 (const int) 0:106 Constant: @@ -705,8 +705,8 @@ gl_FragCoord origin is upper left 0:106 1.000000 0:106 1.000000 0:107 move second child to first child (temp float) -0:107 Depth: direct index for structure (temp float FragDepth) -0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:107 Depth: direct index for structure (temp float) +0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:107 Constant: 0:107 1 (const int) 0:107 Constant: @@ -716,13 +716,13 @@ gl_FragCoord origin is upper left 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:109 Constant: 0:109 0 (const int) 0:109 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:109 Depth: direct index for structure (temp float FragDepth) -0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:109 Depth: direct index for structure (temp float) +0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:109 Constant: 0:109 1 (const int) 0:109 Branch: Return @@ -816,7 +816,6 @@ gl_FragCoord origin is upper left Decorate 16(g_sSamp) Binding 0 Decorate 36(g_tTex2di4a) DescriptorSet 0 Decorate 50(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 267(Color) Location 0 Decorate 271(Depth) BuiltIn FragDepth Decorate 275(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index ca913a8c..18b35e4c 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1045,7 +1045,7 @@ gl_FragCoord origin is upper left 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) 0:276 Color: direct index for structure (temp 4-component vector of float) -0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -1054,8 +1054,8 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:276 1.000000 0:277 move second child to first child (temp float) -0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 Depth: direct index for structure (temp float) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: @@ -1065,13 +1065,13 @@ gl_FragCoord origin is upper left 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:279 Constant: 0:279 0 (const int) 0:279 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:279 Depth: direct index for structure (temp float FragDepth) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Depth: direct index for structure (temp float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:279 Constant: 0:279 1 (const int) 0:279 Branch: Return @@ -1114,7 +1114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -2157,7 +2157,7 @@ gl_FragCoord origin is upper left 0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:276 move second child to first child (temp 4-component vector of float) 0:276 Color: direct index for structure (temp 4-component vector of float) -0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:276 Constant: 0:276 0 (const int) 0:276 Constant: @@ -2166,8 +2166,8 @@ gl_FragCoord origin is upper left 0:276 1.000000 0:276 1.000000 0:277 move second child to first child (temp float) -0:277 Depth: direct index for structure (temp float FragDepth) -0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:277 Depth: direct index for structure (temp float) +0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:277 Constant: 0:277 1 (const int) 0:277 Constant: @@ -2177,13 +2177,13 @@ gl_FragCoord origin is upper left 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:279 Constant: 0:279 0 (const int) 0:279 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:279 Depth: direct index for structure (temp float FragDepth) -0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:279 Depth: direct index for structure (temp float) +0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:279 Constant: 0:279 1 (const int) 0:279 Branch: Return @@ -2349,7 +2349,6 @@ gl_FragCoord origin is upper left Decorate 482(g_tTex2dmsf4a) DescriptorSet 0 Decorate 496(g_tTex2dmsi4a) DescriptorSet 0 Decorate 510(g_tTex2dmsu4a) DescriptorSet 0 - MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 534(Color) Location 0 Decorate 538(Depth) BuiltIn FragDepth Decorate 544(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 94801888..3c063c12 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.getdimensions.dx10.vert Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -27,8 +27,8 @@ Shader version: 450 0:22 textureQueryLevels (temp uint) 0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) -0:24 Pos: direct index for structure (temp 4-component vector of float Position) -0:24 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:24 Pos: direct index for structure (temp 4-component vector of float) +0:24 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: @@ -40,8 +40,8 @@ Shader version: 450 0:? Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:26 Pos: direct index for structure (temp 4-component vector of float Position) -0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:26 Pos: direct index for structure (temp 4-component vector of float) +0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:26 Constant: 0:26 0 (const int) 0:26 Branch: Return @@ -56,7 +56,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -82,8 +82,8 @@ Shader version: 450 0:22 textureQueryLevels (temp uint) 0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:24 move second child to first child (temp 4-component vector of float) -0:24 Pos: direct index for structure (temp 4-component vector of float Position) -0:24 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:24 Pos: direct index for structure (temp 4-component vector of float) +0:24 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: @@ -95,8 +95,8 @@ Shader version: 450 0:? Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:26 Pos: direct index for structure (temp 4-component vector of float Position) -0:26 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:26 Pos: direct index for structure (temp 4-component vector of float) +0:26 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:26 Constant: 0:26 0 (const int) 0:26 Branch: Return @@ -128,7 +128,6 @@ Shader version: 450 Name 42 "g_sSamp" Decorate 12(g_tTex1df4) DescriptorSet 0 Decorate 12(g_tTex1df4) Binding 0 - MemberDecorate 27(VS_OUTPUT) 0 BuiltIn Position Decorate 36(Pos) BuiltIn Position Decorate 42(g_sSamp) DescriptorSet 0 Decorate 42(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 3d56bd46..a44e9445 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,7 +7,7 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -28,7 +28,7 @@ ERROR: node is still EOpNull! 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -37,8 +37,8 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:19 1.000000 0:20 move second child to first child (temp float) -0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Depth: direct index for structure (temp float) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: @@ -48,13 +48,13 @@ ERROR: node is still EOpNull! 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 Branch: Return @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -93,7 +93,7 @@ ERROR: node is still EOpNull! 0:17 2 (const int) 0:19 move second child to first child (temp 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) -0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:19 Constant: 0:19 0 (const int) 0:19 Constant: @@ -102,8 +102,8 @@ ERROR: node is still EOpNull! 0:19 1.000000 0:19 1.000000 0:20 move second child to first child (temp float) -0:20 Depth: direct index for structure (temp float FragDepth) -0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Depth: direct index for structure (temp float) +0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: @@ -113,13 +113,13 @@ ERROR: node is still EOpNull! 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 Branch: Return diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index b0f40624..2fcb7222 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -37,7 +37,7 @@ gl_FragCoord origin is upper left 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) 0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -47,8 +47,8 @@ gl_FragCoord origin is upper left 0:21 Constant: 0:21 1.000000 0:22 move second child to first child (temp float) -0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -60,13 +60,13 @@ gl_FragCoord origin is upper left 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:24 Depth: direct index for structure (temp float FragDepth) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Depth: direct index for structure (temp float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:24 Branch: Return @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -117,7 +117,7 @@ gl_FragCoord origin is upper left 0:19 'z' (temp float) 0:21 move second child to first child (temp 4-component vector of float) 0:21 Color: direct index for structure (temp 4-component vector of float) -0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:21 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:21 Constant: 0:21 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -127,8 +127,8 @@ gl_FragCoord origin is upper left 0:21 Constant: 0:21 1.000000 0:22 move second child to first child (temp float) -0:22 Depth: direct index for structure (temp float FragDepth) -0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:22 Depth: direct index for structure (temp float) +0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index (temp float) @@ -140,13 +140,13 @@ gl_FragCoord origin is upper left 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:24 Depth: direct index for structure (temp float FragDepth) -0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Depth: direct index for structure (temp float) +0:24 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:24 Branch: Return @@ -182,7 +182,6 @@ gl_FragCoord origin is upper left Name 45 "inpos" Name 53 "Color" Name 57 "Depth" - MemberDecorate 31(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord Decorate 53(Color) Location 0 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 7733e2e5..051f2017 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -82,8 +82,8 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:51 1.000000 0:52 move second child to first child (temp float) -0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Depth: direct index for structure (temp float) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: @@ -93,13 +93,13 @@ gl_FragCoord origin is upper left 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 0 (const int) 0:54 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:54 Depth: direct index for structure (temp float FragDepth) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 1 (const int) 0:54 Branch: Return @@ -129,7 +129,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) @@ -200,7 +200,7 @@ gl_FragCoord origin is upper left 0:49 'o2' (uniform 2-component vector of int) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: @@ -209,8 +209,8 @@ gl_FragCoord origin is upper left 0:51 1.000000 0:51 1.000000 0:52 move second child to first child (temp float) -0:52 Depth: direct index for structure (temp float FragDepth) -0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:52 Depth: direct index for structure (temp float) +0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: @@ -220,13 +220,13 @@ gl_FragCoord origin is upper left 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 0 (const int) 0:54 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:54 Depth: direct index for structure (temp float FragDepth) -0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:54 Constant: 0:54 1 (const int) 0:54 Branch: Return @@ -288,7 +288,6 @@ gl_FragCoord origin is upper left Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 - MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 92(Color) Location 0 Decorate 96(Depth) BuiltIn FragDepth Decorate 102(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index ea2e6d56..37238837 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) 0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -100,8 +100,8 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:67 1.000000 0:68 move second child to first child (temp float) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: @@ -111,13 +111,13 @@ gl_FragCoord origin is upper left 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 0 (const int) 0:70 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float FragDepth) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 1 (const int) 0:70 Branch: Return @@ -162,7 +162,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -251,7 +251,7 @@ gl_FragCoord origin is upper left 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) 0:67 Color: direct index for structure (temp 4-component vector of float) -0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:67 Constant: 0:67 0 (const int) 0:67 Constant: @@ -260,8 +260,8 @@ gl_FragCoord origin is upper left 0:67 1.000000 0:67 1.000000 0:68 move second child to first child (temp float) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: @@ -271,13 +271,13 @@ gl_FragCoord origin is upper left 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 0 (const int) 0:70 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:70 Depth: direct index for structure (temp float FragDepth) -0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:70 Depth: direct index for structure (temp float) +0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:70 Constant: 0:70 1 (const int) 0:70 Branch: Return @@ -369,7 +369,6 @@ gl_FragCoord origin is upper left Decorate 47(g_tTex2df4a) DescriptorSet 0 Decorate 59(g_tTex2di4a) DescriptorSet 0 Decorate 68(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 87(Color) Location 0 Decorate 91(Depth) BuiltIn FragDepth Decorate 97(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index ec283111..41d44eee 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:72 1.000000 0:73 move second child to first child (temp float) -0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Depth: direct index for structure (temp float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 0 (const int) 0:75 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float FragDepth) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 1 (const int) 0:75 Branch: Return @@ -195,7 +195,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) @@ -317,7 +317,7 @@ gl_FragCoord origin is upper left 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -326,8 +326,8 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:72 1.000000 0:73 move second child to first child (temp float) -0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Depth: direct index for structure (temp float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: @@ -337,13 +337,13 @@ gl_FragCoord origin is upper left 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 0 (const int) 0:75 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float FragDepth) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 1 (const int) 0:75 Branch: Return @@ -439,7 +439,6 @@ gl_FragCoord origin is upper left Decorate 78(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 - MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 118(Color) Location 0 Decorate 122(Depth) BuiltIn FragDepth Decorate 128(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index b574eb6a..62e6128d 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.load.basic.dx10.vert Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) @@ -122,8 +122,8 @@ Shader version: 450 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Pos: direct index for structure (temp 4-component vector of float Position) -0:67 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:67 Pos: direct index for structure (temp 4-component vector of float) +0:67 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: @@ -135,8 +135,8 @@ Shader version: 450 0:? Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:69 Pos: direct index for structure (temp 4-component vector of float Position) -0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:69 Pos: direct index for structure (temp 4-component vector of float) +0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:69 Constant: 0:69 0 (const int) 0:69 Branch: Return @@ -179,7 +179,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) @@ -300,8 +300,8 @@ Shader version: 450 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) -0:67 Pos: direct index for structure (temp 4-component vector of float Position) -0:67 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:67 Pos: direct index for structure (temp 4-component vector of float) +0:67 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: @@ -313,8 +313,8 @@ Shader version: 450 0:? Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:69 Pos: direct index for structure (temp 4-component vector of float Position) -0:69 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:69 Pos: direct index for structure (temp 4-component vector of float) +0:69 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:69 Constant: 0:69 0 (const int) 0:69 Branch: Return @@ -406,7 +406,6 @@ Shader version: 450 Decorate 78(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3di4) DescriptorSet 0 Decorate 99(g_tTex3du4) DescriptorSet 0 - MemberDecorate 106(VS_OUTPUT) 0 BuiltIn Position Decorate 115(Pos) BuiltIn Position Decorate 121(g_sSamp) DescriptorSet 0 Decorate 121(g_sSamp) Binding 0 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 2b02aeec..012af868 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -34,8 +34,8 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:34 1.000000 0:35 move second child to first child (temp float) -0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: @@ -45,13 +45,13 @@ gl_FragCoord origin is upper left 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:37 Constant: 0:37 0 (const int) 0:37 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float FragDepth) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:37 Constant: 0:37 1 (const int) 0:37 Branch: Return @@ -78,7 +78,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:30 'c1' (uniform int) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: @@ -110,8 +110,8 @@ gl_FragCoord origin is upper left 0:34 1.000000 0:34 1.000000 0:35 move second child to first child (temp float) -0:35 Depth: direct index for structure (temp float FragDepth) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 1 (const int) 0:35 Constant: @@ -121,13 +121,13 @@ gl_FragCoord origin is upper left 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:37 Constant: 0:37 0 (const int) 0:37 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:37 Depth: direct index for structure (temp float FragDepth) -0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:37 Constant: 0:37 1 (const int) 0:37 Branch: Return @@ -182,7 +182,6 @@ gl_FragCoord origin is upper left Decorate 13(g_tTexbf4) DescriptorSet 0 Decorate 27(g_tTexbi4) DescriptorSet 0 Decorate 39(g_tTexbu4) DescriptorSet 0 - MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 55(Color) Location 0 Decorate 59(Depth) BuiltIn FragDepth Decorate 63(g_tTexbf4_test) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 5ac4e8d2..2110e6f4 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:72 1.000000 0:73 move second child to first child (temp float) -0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Depth: direct index for structure (temp float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: @@ -153,13 +153,13 @@ gl_FragCoord origin is upper left 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 0 (const int) 0:75 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float FragDepth) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 1 (const int) 0:75 Branch: Return @@ -204,7 +204,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -335,7 +335,7 @@ gl_FragCoord origin is upper left 0:64 'o3' (uniform 3-component vector of int) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) -0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: @@ -344,8 +344,8 @@ gl_FragCoord origin is upper left 0:72 1.000000 0:72 1.000000 0:73 move second child to first child (temp float) -0:73 Depth: direct index for structure (temp float FragDepth) -0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:73 Depth: direct index for structure (temp float) +0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: @@ -355,13 +355,13 @@ gl_FragCoord origin is upper left 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 0 (const int) 0:75 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:75 Depth: direct index for structure (temp float FragDepth) -0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:75 Depth: direct index for structure (temp float) +0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:75 Constant: 0:75 1 (const int) 0:75 Branch: Return @@ -458,7 +458,6 @@ gl_FragCoord origin is upper left Decorate 86(g_tTex3df4) DescriptorSet 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3du4) DescriptorSet 0 - MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 130(Color) Location 0 Decorate 134(Depth) BuiltIn FragDepth Decorate 140(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index ce5da11a..d5f66716 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -106,8 +106,8 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:65 1.000000 0:66 move second child to first child (temp float) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: @@ -117,13 +117,13 @@ gl_FragCoord origin is upper left 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 0 (const int) 0:68 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Branch: Return @@ -168,7 +168,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) @@ -263,7 +263,7 @@ gl_FragCoord origin is upper left 0:59 'o2' (uniform 2-component vector of int) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: @@ -272,8 +272,8 @@ gl_FragCoord origin is upper left 0:65 1.000000 0:65 1.000000 0:66 move second child to first child (temp float) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: @@ -283,13 +283,13 @@ gl_FragCoord origin is upper left 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 0 (const int) 0:68 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:68 Depth: direct index for structure (temp float FragDepth) -0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:68 Depth: direct index for structure (temp float) +0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:68 Constant: 0:68 1 (const int) 0:68 Branch: Return @@ -382,7 +382,6 @@ gl_FragCoord origin is upper left Decorate 51(g_tTex2df4a) DescriptorSet 0 Decorate 66(g_tTex2di4a) DescriptorSet 0 Decorate 76(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 96(Color) Location 0 Decorate 100(Depth) BuiltIn FragDepth Decorate 106(g_sSamp) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 8bd07c06..95a2f25a 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) 0:126 Color: direct index for structure (temp 4-component vector of float) -0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -25,8 +25,8 @@ gl_FragCoord origin is upper left 0:126 Constant: 0:126 1.000000 0:127 move second child to first child (temp float) -0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 Depth: direct index for structure (temp float) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: @@ -36,13 +36,13 @@ gl_FragCoord origin is upper left 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:129 Constant: 0:129 0 (const int) 0:129 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:129 Depth: direct index for structure (temp float FragDepth) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Depth: direct index for structure (temp float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:129 Constant: 0:129 1 (const int) 0:129 Branch: Return @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -67,7 +67,7 @@ gl_FragCoord origin is upper left 0:124 124 (const int) 0:126 move second child to first child (temp 4-component vector of float) 0:126 Color: direct index for structure (temp 4-component vector of float) -0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 (temp 4-component vector of float) @@ -80,8 +80,8 @@ gl_FragCoord origin is upper left 0:126 Constant: 0:126 1.000000 0:127 move second child to first child (temp float) -0:127 Depth: direct index for structure (temp float FragDepth) -0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:127 Depth: direct index for structure (temp float) +0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: @@ -91,13 +91,13 @@ gl_FragCoord origin is upper left 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:129 Constant: 0:129 0 (const int) 0:129 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:129 Depth: direct index for structure (temp float FragDepth) -0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:129 Depth: direct index for structure (temp float) +0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:129 Constant: 0:129 1 (const int) 0:129 Branch: Return @@ -122,7 +122,6 @@ gl_FragCoord origin is upper left Name 14 "psout" Name 27 "Color" Name 31 "Depth" - MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 27(Color) Location 0 Decorate 31(Depth) BuiltIn FragDepth 2: TypeVoid diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index e35a9a42..54c3553a 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -106,7 +106,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -115,8 +115,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -126,13 +126,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -158,7 +158,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -262,7 +262,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -271,8 +271,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -282,13 +282,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -357,7 +357,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 130(Color) Location 0 Decorate 134(Depth) BuiltIn FragDepth Decorate 138(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 2e79f621..dca7f774 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) 0:86 Color: direct index for structure (temp 4-component vector of float) -0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -225,8 +225,8 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:86 1.000000 0:87 move second child to first child (temp float) -0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 Depth: direct index for structure (temp float) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: @@ -236,13 +236,13 @@ gl_FragCoord origin is upper left 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:89 Constant: 0:89 0 (const int) 0:89 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:89 Depth: direct index for structure (temp float FragDepth) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Depth: direct index for structure (temp float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:89 Constant: 0:89 1 (const int) 0:89 Branch: Return @@ -273,7 +273,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -485,7 +485,7 @@ gl_FragCoord origin is upper left 0:? 0.900000 0:86 move second child to first child (temp 4-component vector of float) 0:86 Color: direct index for structure (temp 4-component vector of float) -0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: @@ -494,8 +494,8 @@ gl_FragCoord origin is upper left 0:86 1.000000 0:86 1.000000 0:87 move second child to first child (temp float) -0:87 Depth: direct index for structure (temp float FragDepth) -0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:87 Depth: direct index for structure (temp float) +0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: @@ -505,13 +505,13 @@ gl_FragCoord origin is upper left 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:89 Constant: 0:89 0 (const int) 0:89 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:89 Depth: direct index for structure (temp float FragDepth) -0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:89 Depth: direct index for structure (temp float) +0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:89 Constant: 0:89 1 (const int) 0:89 Branch: Return @@ -609,7 +609,6 @@ gl_FragCoord origin is upper left Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 180(Color) Location 0 Decorate 184(Depth) BuiltIn FragDepth Decorate 188(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 9be83eb9..b8c7d5cc 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -179,7 +179,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -301,7 +301,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -310,8 +310,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -321,13 +321,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -401,7 +401,6 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 136(Color) Location 0 Decorate 140(Depth) BuiltIn FragDepth Decorate 144(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index ae5aab5f..b30a4e2d 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -94,8 +94,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -105,13 +105,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -226,8 +226,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -237,13 +237,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -299,7 +299,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4) DescriptorSet 0 Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 102(Color) Location 0 Decorate 106(Depth) BuiltIn FragDepth Decorate 110(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index d80e6f1f..66f4629a 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:37 0.500000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -307,8 +307,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -318,13 +318,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -393,7 +393,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdi4) DescriptorSet 0 Decorate 110(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 130(Color) Location 0 Decorate 134(Depth) BuiltIn FragDepth Decorate 138(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index c462e479..faba4bef 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -163,8 +163,8 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:47 1.000000 0:48 move second child to first child (temp float) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: @@ -174,13 +174,13 @@ gl_FragCoord origin is upper left 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 0 (const int) 0:50 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float FragDepth) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 1 (const int) 0:50 Branch: Return @@ -209,7 +209,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -361,7 +361,7 @@ gl_FragCoord origin is upper left 0:45 0.500000 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -370,8 +370,8 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:47 1.000000 0:48 move second child to first child (temp float) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: @@ -381,13 +381,13 @@ gl_FragCoord origin is upper left 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 0 (const int) 0:50 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float FragDepth) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 1 (const int) 0:50 Branch: Return @@ -467,7 +467,6 @@ gl_FragCoord origin is upper left Decorate 119(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 154(Color) Location 0 Decorate 158(Depth) BuiltIn FragDepth Decorate 162(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 58a87fd2..e83058b0 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -162,13 +162,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -346,8 +346,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -357,13 +357,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -437,7 +437,6 @@ gl_FragCoord origin is upper left Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 116(g_tTex3du4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 136(Color) Location 0 Decorate 140(Depth) BuiltIn FragDepth Decorate 144(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 6a0d18d0..a9e44041 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -106,8 +106,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -117,13 +117,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -250,8 +250,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -323,7 +323,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 102(Color) Location 0 Decorate 106(Depth) BuiltIn FragDepth Decorate 110(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 215fa8fd..660db5b2 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) 0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:56 1.000000 0:57 move second child to first child (temp float) -0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Depth: direct index for structure (temp float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: @@ -153,13 +153,13 @@ gl_FragCoord origin is upper left 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 0 (const int) 0:59 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:59 Depth: direct index for structure (temp float FragDepth) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Branch: Return @@ -196,7 +196,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -327,7 +327,7 @@ gl_FragCoord origin is upper left 0:54 0.750000 0:56 move second child to first child (temp 4-component vector of float) 0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -336,8 +336,8 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:56 1.000000 0:57 move second child to first child (temp float) -0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Depth: direct index for structure (temp float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: @@ -347,13 +347,13 @@ gl_FragCoord origin is upper left 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 0 (const int) 0:59 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:59 Depth: direct index for structure (temp float FragDepth) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Branch: Return @@ -443,7 +443,6 @@ gl_FragCoord origin is upper left Decorate 96(g_tTexcdf4a) DescriptorSet 0 Decorate 110(g_tTexcdi4a) DescriptorSet 0 Decorate 121(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 140(Color) Location 0 Decorate 144(Depth) BuiltIn FragDepth Decorate 150(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index f6967c7c..253a59e2 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) 0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:57 1.000000 0:58 move second child to first child (temp float) -0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Depth: direct index for structure (temp float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 0 (const int) 0:60 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float FragDepth) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 1 (const int) 0:60 Branch: Return @@ -187,7 +187,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -309,7 +309,7 @@ gl_FragCoord origin is upper left 0:55 0.750000 0:57 move second child to first child (temp 4-component vector of float) 0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -318,8 +318,8 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:57 1.000000 0:58 move second child to first child (temp float) -0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Depth: direct index for structure (temp float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: @@ -329,13 +329,13 @@ gl_FragCoord origin is upper left 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 0 (const int) 0:60 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float FragDepth) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 1 (const int) 0:60 Branch: Return @@ -426,7 +426,6 @@ gl_FragCoord origin is upper left Decorate 90(g_tTexcdf4) DescriptorSet 0 Decorate 105(g_tTexcdi4) DescriptorSet 0 Decorate 117(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 138(Color) Location 0 Decorate 142(Depth) BuiltIn FragDepth Decorate 148(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index b0693566..3d744bd3 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) 0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -106,8 +106,8 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:62 1.000000 0:63 move second child to first child (temp float) -0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Depth: direct index for structure (temp float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: @@ -117,13 +117,13 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float FragDepth) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 1 (const int) 0:65 Branch: Return @@ -160,7 +160,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) 0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -264,8 +264,8 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:62 1.000000 0:63 move second child to first child (temp float) -0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Depth: direct index for structure (temp float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: @@ -275,13 +275,13 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float FragDepth) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 1 (const int) 0:65 Branch: Return @@ -366,7 +366,6 @@ gl_FragCoord origin is upper left Decorate 52(g_tTex2df4) DescriptorSet 0 Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 82(g_tTex2du4) DescriptorSet 0 - MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(Color) Location 0 Decorate 107(Depth) BuiltIn FragDepth Decorate 113(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index caa2b2cf..2eb302e7 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) 0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:63 1.000000 0:64 move second child to first child (temp float) -0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Depth: direct index for structure (temp float) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: @@ -123,13 +123,13 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 0 (const int) 0:66 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Branch: Return @@ -166,7 +166,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -267,7 +267,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) 0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -276,8 +276,8 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:63 1.000000 0:64 move second child to first child (temp float) -0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Depth: direct index for structure (temp float) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: @@ -287,13 +287,13 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 0 (const int) 0:66 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Branch: Return @@ -377,7 +377,6 @@ gl_FragCoord origin is upper left Decorate 58(g_tTex2df4a) DescriptorSet 0 Decorate 76(g_tTex2di4a) DescriptorSet 0 Decorate 88(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 109(Color) Location 0 Decorate 113(Depth) BuiltIn FragDepth Decorate 119(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 0702b247..949f7f2b 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) 0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:56 1.000000 0:57 move second child to first child (temp float) -0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Depth: direct index for structure (temp float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: @@ -171,13 +171,13 @@ gl_FragCoord origin is upper left 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 0 (const int) 0:59 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:59 Depth: direct index for structure (temp float FragDepth) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Branch: Return @@ -214,7 +214,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -363,7 +363,7 @@ gl_FragCoord origin is upper left 0:54 0.000000 0:56 move second child to first child (temp 4-component vector of float) 0:56 Color: direct index for structure (temp 4-component vector of float) -0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: @@ -372,8 +372,8 @@ gl_FragCoord origin is upper left 0:56 1.000000 0:56 1.000000 0:57 move second child to first child (temp float) -0:57 Depth: direct index for structure (temp float FragDepth) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 Depth: direct index for structure (temp float) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: @@ -383,13 +383,13 @@ gl_FragCoord origin is upper left 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 0 (const int) 0:59 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:59 Depth: direct index for structure (temp float FragDepth) -0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:59 Constant: 0:59 1 (const int) 0:59 Branch: Return @@ -479,7 +479,6 @@ gl_FragCoord origin is upper left Decorate 97(g_tTexcdf4a) DescriptorSet 0 Decorate 111(g_tTexcdi4a) DescriptorSet 0 Decorate 122(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 141(Color) Location 0 Decorate 145(Depth) BuiltIn FragDepth Decorate 151(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 705e283e..5f83499a 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) 0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:57 1.000000 0:58 move second child to first child (temp float) -0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Depth: direct index for structure (temp float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: @@ -162,13 +162,13 @@ gl_FragCoord origin is upper left 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 0 (const int) 0:60 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float FragDepth) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 1 (const int) 0:60 Branch: Return @@ -205,7 +205,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -345,7 +345,7 @@ gl_FragCoord origin is upper left 0:55 0.000000 0:57 move second child to first child (temp 4-component vector of float) 0:57 Color: direct index for structure (temp 4-component vector of float) -0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: @@ -354,8 +354,8 @@ gl_FragCoord origin is upper left 0:57 1.000000 0:57 1.000000 0:58 move second child to first child (temp float) -0:58 Depth: direct index for structure (temp float FragDepth) -0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:58 Depth: direct index for structure (temp float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: @@ -365,13 +365,13 @@ gl_FragCoord origin is upper left 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 0 (const int) 0:60 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:60 Depth: direct index for structure (temp float FragDepth) -0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:60 Depth: direct index for structure (temp float) +0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:60 Constant: 0:60 1 (const int) 0:60 Branch: Return @@ -462,7 +462,6 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4) DescriptorSet 0 Decorate 106(g_tTexcdi4) DescriptorSet 0 Decorate 118(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 139(Color) Location 0 Decorate 143(Depth) BuiltIn FragDepth Decorate 149(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index 6e7e0fdb..ceb1415f 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) 0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -118,8 +118,8 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:62 1.000000 0:63 move second child to first child (temp float) -0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Depth: direct index for structure (temp float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: @@ -129,13 +129,13 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float FragDepth) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 1 (const int) 0:65 Branch: Return @@ -172,7 +172,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -279,7 +279,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:62 move second child to first child (temp 4-component vector of float) 0:62 Color: direct index for structure (temp 4-component vector of float) -0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: @@ -288,8 +288,8 @@ gl_FragCoord origin is upper left 0:62 1.000000 0:62 1.000000 0:63 move second child to first child (temp float) -0:63 Depth: direct index for structure (temp float FragDepth) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 Depth: direct index for structure (temp float) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: @@ -299,13 +299,13 @@ gl_FragCoord origin is upper left 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:65 Depth: direct index for structure (temp float FragDepth) -0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:65 Depth: direct index for structure (temp float) +0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 1 (const int) 0:65 Branch: Return @@ -390,7 +390,6 @@ gl_FragCoord origin is upper left Decorate 53(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 83(g_tTex2du4) DescriptorSet 0 - MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 104(Color) Location 0 Decorate 108(Depth) BuiltIn FragDepth Decorate 114(g_tTex3df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index ac23b8fa..ea32bcec 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) 0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -124,8 +124,8 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:63 1.000000 0:64 move second child to first child (temp float) -0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Depth: direct index for structure (temp float) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: @@ -135,13 +135,13 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 0 (const int) 0:66 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Branch: Return @@ -178,7 +178,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -291,7 +291,7 @@ gl_FragCoord origin is upper left 0:? 3 (const int) 0:63 move second child to first child (temp 4-component vector of float) 0:63 Color: direct index for structure (temp 4-component vector of float) -0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: @@ -300,8 +300,8 @@ gl_FragCoord origin is upper left 0:63 1.000000 0:63 1.000000 0:64 move second child to first child (temp float) -0:64 Depth: direct index for structure (temp float FragDepth) -0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:64 Depth: direct index for structure (temp float) +0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: @@ -311,13 +311,13 @@ gl_FragCoord origin is upper left 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 0 (const int) 0:66 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:66 Depth: direct index for structure (temp float FragDepth) -0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:66 Depth: direct index for structure (temp float) +0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Branch: Return @@ -401,7 +401,6 @@ gl_FragCoord origin is upper left Decorate 59(g_tTex2df4a) DescriptorSet 0 Decorate 77(g_tTex2di4a) DescriptorSet 0 Decorate 89(g_tTex2du4a) DescriptorSet 0 - MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 110(Color) Location 0 Decorate 114(Depth) BuiltIn FragDepth Decorate 120(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 70e0fbe6..16f575af 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -160,7 +160,7 @@ gl_FragCoord origin is upper left 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -180,13 +180,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -212,7 +212,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -370,7 +370,7 @@ gl_FragCoord origin is upper left 0:? 1.300000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -379,8 +379,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -390,13 +390,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -465,7 +465,6 @@ gl_FragCoord origin is upper left Decorate 85(g_tTexcdf4) DescriptorSet 0 Decorate 98(g_tTexcdi4) DescriptorSet 0 Decorate 107(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 124(Color) Location 0 Decorate 128(Depth) BuiltIn FragDepth Decorate 132(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index fe075520..d0d275f1 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -208,7 +208,7 @@ gl_FragCoord origin is upper left 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -217,8 +217,8 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:47 1.000000 0:48 move second child to first child (temp float) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: @@ -228,13 +228,13 @@ gl_FragCoord origin is upper left 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 0 (const int) 0:50 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float FragDepth) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 1 (const int) 0:50 Branch: Return @@ -263,7 +263,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -469,7 +469,7 @@ gl_FragCoord origin is upper left 0:? 1.300000 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) -0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: @@ -478,8 +478,8 @@ gl_FragCoord origin is upper left 0:47 1.000000 0:47 1.000000 0:48 move second child to first child (temp float) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: @@ -489,13 +489,13 @@ gl_FragCoord origin is upper left 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 0 (const int) 0:50 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:50 Depth: direct index for structure (temp float FragDepth) -0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:50 Depth: direct index for structure (temp float) +0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:50 Constant: 0:50 1 (const int) 0:50 Branch: Return @@ -575,7 +575,6 @@ gl_FragCoord origin is upper left Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 159(Color) Location 0 Decorate 163(Depth) BuiltIn FragDepth Decorate 167(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index f2d6af7f..5e95ae0d 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplegrad.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -206,8 +206,8 @@ Shader version: 450 0:? 1.200000 0:? 1.300000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float Position) -0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float) +0:46 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -219,8 +219,8 @@ Shader version: 450 0:? Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float Position) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:48 Constant: 0:48 0 (const int) 0:48 Branch: Return @@ -247,7 +247,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -452,8 +452,8 @@ Shader version: 450 0:? 1.200000 0:? 1.300000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float Position) -0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float) +0:46 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -465,8 +465,8 @@ Shader version: 450 0:? Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float Position) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:48 Constant: 0:48 0 (const int) 0:48 Branch: Return @@ -542,7 +542,6 @@ Shader version: 450 Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 148(VS_OUTPUT) 0 BuiltIn Position Decorate 156(Pos) BuiltIn Position Decorate 160(g_tTex1df4a) DescriptorSet 0 Decorate 160(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 4bfdadf3..ffe88328 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -178,7 +178,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -187,8 +187,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -198,13 +198,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -233,7 +233,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -409,7 +409,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -418,8 +418,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -429,13 +429,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -509,7 +509,6 @@ gl_FragCoord origin is upper left Decorate 95(g_tTex3df4) DescriptorSet 0 Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 121(g_tTex3du4) DescriptorSet 0 - MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 141(Color) Location 0 Decorate 145(Depth) BuiltIn FragDepth Decorate 149(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index fc4cb532..9e141760 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -124,8 +124,8 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:35 1.000000 0:36 move second child to first child (temp float) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: @@ -135,13 +135,13 @@ gl_FragCoord origin is upper left 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:38 Depth: direct index for structure (temp float FragDepth) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Depth: direct index for structure (temp float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:38 Branch: Return @@ -167,7 +167,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -280,7 +280,7 @@ gl_FragCoord origin is upper left 0:? 0 (const int) 0:35 move second child to first child (temp 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) -0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: @@ -289,8 +289,8 @@ gl_FragCoord origin is upper left 0:35 1.000000 0:35 1.000000 0:36 move second child to first child (temp float) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: @@ -300,13 +300,13 @@ gl_FragCoord origin is upper left 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:38 Depth: direct index for structure (temp float FragDepth) -0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:38 Depth: direct index for structure (temp float) +0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:38 Branch: Return @@ -369,7 +369,6 @@ gl_FragCoord origin is upper left Decorate 55(g_tTex2df4) DescriptorSet 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 80(g_tTex2du4) DescriptorSet 0 - MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 95(Color) Location 0 Decorate 99(Depth) BuiltIn FragDepth Decorate 103(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 192edb12..766f6acb 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -144,13 +144,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:37 0.750000 0:39 move second child to first child (temp 4-component vector of float) 0:39 Color: direct index for structure (temp 4-component vector of float) -0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: @@ -307,8 +307,8 @@ gl_FragCoord origin is upper left 0:39 1.000000 0:39 1.000000 0:40 move second child to first child (temp float) -0:40 Depth: direct index for structure (temp float FragDepth) -0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:40 Depth: direct index for structure (temp float) +0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: @@ -318,13 +318,13 @@ gl_FragCoord origin is upper left 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 0 (const int) 0:42 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:42 Depth: direct index for structure (temp float FragDepth) -0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:42 Depth: direct index for structure (temp float) +0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:42 Constant: 0:42 1 (const int) 0:42 Branch: Return @@ -393,7 +393,6 @@ gl_FragCoord origin is upper left Decorate 91(g_tTexcdf4a) DescriptorSet 0 Decorate 101(g_tTexcdi4a) DescriptorSet 0 Decorate 111(g_tTexcdu4a) DescriptorSet 0 - MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 131(Color) Location 0 Decorate 135(Depth) BuiltIn FragDepth Decorate 139(g_tTex1df4) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index e96a5245..ee53339b 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -163,8 +163,8 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:48 1.000000 0:49 move second child to first child (temp float) -0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Depth: direct index for structure (temp float) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: @@ -174,13 +174,13 @@ gl_FragCoord origin is upper left 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:51 Depth: direct index for structure (temp float FragDepth) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Depth: direct index for structure (temp float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 1 (const int) 0:51 Branch: Return @@ -210,7 +210,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -362,7 +362,7 @@ gl_FragCoord origin is upper left 0:46 0.750000 0:48 move second child to first child (temp 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: @@ -371,8 +371,8 @@ gl_FragCoord origin is upper left 0:48 1.000000 0:48 1.000000 0:49 move second child to first child (temp float) -0:49 Depth: direct index for structure (temp float FragDepth) -0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:49 Depth: direct index for structure (temp float) +0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: @@ -382,13 +382,13 @@ gl_FragCoord origin is upper left 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:51 Depth: direct index for structure (temp float FragDepth) -0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:51 Depth: direct index for structure (temp float) +0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 1 (const int) 0:51 Branch: Return @@ -470,7 +470,6 @@ gl_FragCoord origin is upper left Decorate 120(g_tTexcdf4) DescriptorSet 0 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 155(Color) Location 0 Decorate 159(Depth) BuiltIn FragDepth Decorate 163(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 15c9ac73..9af7a9fc 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplelevel.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -152,8 +152,8 @@ Shader version: 450 0:44 Constant: 0:44 0.750000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float Position) -0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float) +0:46 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -165,8 +165,8 @@ Shader version: 450 0:? Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float Position) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:48 Constant: 0:48 0 (const int) 0:48 Branch: Return @@ -193,7 +193,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Position Pos}) +0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -344,8 +344,8 @@ Shader version: 450 0:44 Constant: 0:44 0.750000 0:46 move second child to first child (temp 4-component vector of float) -0:46 Pos: direct index for structure (temp 4-component vector of float Position) -0:46 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:46 Pos: direct index for structure (temp 4-component vector of float) +0:46 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: @@ -357,8 +357,8 @@ Shader version: 450 0:? Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) -0:48 Pos: direct index for structure (temp 4-component vector of float Position) -0:48 'vsout' (temp structure{temp 4-component vector of float Position Pos}) +0:48 Pos: direct index for structure (temp 4-component vector of float) +0:48 'vsout' (temp structure{temp 4-component vector of float Pos}) 0:48 Constant: 0:48 0 (const int) 0:48 Branch: Return @@ -434,7 +434,6 @@ Shader version: 450 Decorate 120(g_tTexcdf4) DescriptorSet 0 Decorate 129(g_tTexcdi4) DescriptorSet 0 Decorate 138(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 144(VS_OUTPUT) 0 BuiltIn Position Decorate 152(Pos) BuiltIn Position Decorate 156(g_tTex1df4a) DescriptorSet 0 Decorate 156(g_tTex1df4a) Binding 1 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 712f0503..d669a999 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -151,8 +151,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -162,13 +162,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:? -1 (const int) 0:45 move second child to first child (temp 4-component vector of float) 0:45 Color: direct index for structure (temp 4-component vector of float) -0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: @@ -346,8 +346,8 @@ gl_FragCoord origin is upper left 0:45 1.000000 0:45 1.000000 0:46 move second child to first child (temp float) -0:46 Depth: direct index for structure (temp float FragDepth) -0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:46 Depth: direct index for structure (temp float) +0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: @@ -357,13 +357,13 @@ gl_FragCoord origin is upper left 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:48 Depth: direct index for structure (temp float FragDepth) -0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:48 Depth: direct index for structure (temp float) +0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Branch: Return @@ -437,7 +437,6 @@ gl_FragCoord origin is upper left Decorate 93(g_tTex3df4) DescriptorSet 0 Decorate 106(g_tTex3di4) DescriptorSet 0 Decorate 117(g_tTex3du4) DescriptorSet 0 - MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 137(Color) Location 0 Decorate 141(Depth) BuiltIn FragDepth Decorate 145(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 02f4a329..fd2673b6 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -106,8 +106,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -117,13 +117,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:? 1 (const int) 0:33 move second child to first child (temp 4-component vector of float) 0:33 Color: direct index for structure (temp 4-component vector of float) -0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: @@ -250,8 +250,8 @@ gl_FragCoord origin is upper left 0:33 1.000000 0:33 1.000000 0:34 move second child to first child (temp float) -0:34 Depth: direct index for structure (temp float FragDepth) -0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:34 Depth: direct index for structure (temp float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: @@ -261,13 +261,13 @@ gl_FragCoord origin is upper left 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 0 (const int) 0:36 move second child to first child (temp float) 0:? 'Depth' (out float FragDepth) -0:36 Depth: direct index for structure (temp float FragDepth) -0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth}) +0:36 Depth: direct index for structure (temp float) +0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Branch: Return @@ -323,7 +323,6 @@ gl_FragCoord origin is upper left Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 84(g_tTex2du4) DescriptorSet 0 - MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 103(Color) Location 0 Decorate 107(Depth) BuiltIn FragDepth Decorate 111(g_tTex1df4a) DescriptorSet 0 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index d5ddc6d2..3a444953 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) -0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) +0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left 0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) -0:34 's' (in structure{smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float ff4}) +0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? Sequence 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index 9452b4a4..b27f210b 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -1,15 +1,15 @@ hlsl.structin.vert Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) -0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'e' (layout(location=5 ) in 4-component vector of float) 0:? Sequence 0:11 move second child to first child (temp 4-component vector of float) -0:11 b: direct index for structure (smooth temp 4-component vector of float) -0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:11 b: direct index for structure (temp 4-component vector of float) +0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 2 (const int) 0:11 add (temp 4-component vector of float) @@ -37,19 +37,19 @@ Shader version: 450 0:13 move second child to first child (temp 2-element array of 4-component vector of float) 0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) 0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 0 (const int) 0:13 move second child to first child (temp 2-component vector of uint) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:13 coord: direct index for structure (temp 2-component vector of uint) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 1 (const int) 0:13 move second child to first child (temp 4-component vector of float) 0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:13 b: direct index for structure (smooth temp 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 b: direct index for structure (temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 2 (const int) 0:13 Branch: Return @@ -60,7 +60,7 @@ Shader version: 450 0:? 'd' (layout(location=0 ) in 4-component vector of float) 0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'b' (layout(location=4 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=4 ) in 4-component vector of float) 0:? 'e' (layout(location=5 ) in 4-component vector of float) @@ -69,15 +69,15 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) -0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 'e' (layout(location=5 ) in 4-component vector of float) 0:? Sequence 0:11 move second child to first child (temp 4-component vector of float) -0:11 b: direct index for structure (smooth temp 4-component vector of float) -0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:11 b: direct index for structure (temp 4-component vector of float) +0:11 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 2 (const int) 0:11 add (temp 4-component vector of float) @@ -105,19 +105,19 @@ Shader version: 450 0:13 move second child to first child (temp 2-element array of 4-component vector of float) 0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) 0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 0 (const int) 0:13 move second child to first child (temp 2-component vector of uint) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:13 coord: direct index for structure (temp 2-component vector of uint) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 1 (const int) 0:13 move second child to first child (temp 4-component vector of float) 0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) -0:13 b: direct index for structure (smooth temp 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, smooth temp 4-component vector of float b}) +0:13 b: direct index for structure (temp 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:13 Constant: 0:13 2 (const int) 0:13 Branch: Return @@ -128,7 +128,7 @@ Shader version: 450 0:? 'd' (layout(location=0 ) in 4-component vector of float) 0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) -0:? 'b' (layout(location=4 ) smooth in 4-component vector of float) +0:? 'b' (layout(location=4 ) in 4-component vector of float) 0:? 'e' (layout(location=5 ) in 4-component vector of float) // Module Version 10000 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index 0c00f238..bd1fa7e4 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -30,7 +30,6 @@ Linked fragment stage: Decorate 3789 DescriptorSet 0 Decorate 3805 DescriptorSet 0 Decorate 3869 DescriptorSet 0 - MemberDecorate 1032 1 BuiltIn FragDepth Decorate 4656 Location 0 Decorate 4112 BuiltIn FragDepth 8: TypeVoid diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index 34477d21..b149718f 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -79,7 +79,6 @@ Linked fragment stage: Decorate 147(g_tTexcdf4) DescriptorSet 0 Decorate 156(g_tTexcdi4) DescriptorSet 0 Decorate 165(g_tTexcdu4) DescriptorSet 0 - MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth Decorate 180(Color) Location 0 Decorate 184(Depth) BuiltIn FragDepth Decorate 187(g_sSamp2d) DescriptorSet 0 diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index b4a792c2..53407678 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -30,7 +30,6 @@ Linked fragment stage: Decorate 147 DescriptorSet 0 Decorate 156 DescriptorSet 0 Decorate 165 DescriptorSet 0 - MemberDecorate 171 1 BuiltIn FragDepth Decorate 180 Location 0 Decorate 184 BuiltIn FragDepth Decorate 187 DescriptorSet 0 diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e506e297..9f1cff18 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -717,6 +717,9 @@ bool HlslParseContext::shouldFlatten(const TType& type) const // Figure out the mapping between an aggregate's top members and an // equivalent set of individual variables. // +// N.B. Erases memory of I/O-related annotations in the original type's member, +// effecting a transfer of this information to the flattened variable form. +// // Assumes shouldFlatten() or equivalent was called first. // // TODO: generalize this to arbitrary nesting? @@ -730,6 +733,9 @@ void HlslParseContext::flatten(const TVariable& variable) *members[member].type); mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); memberVariables.push_back(memberVariable); + + // N.B. Erase I/O-related annotations from the source-type member. + members[member].type->getQualifier().makeTemporary(); } flattenMap[variable.getUniqueId()] = memberVariables; From 2572b19e942a8d5de59265553fa45ab64671495b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 19 Sep 2016 23:12:48 -0600 Subject: [PATCH 141/217] HLSL: Turn on reflection, with basic test file, to catch regressions. This is not a claim that reflection is working right, only a way to see it is occurring and catch any regression. --- Test/baseResults/hlsl.reflection.vert.out | 84 ++++++++++ Test/hlsl.reflection.vert | 165 ++++++++++++++++++++ Test/runtests | 2 + glslang/Include/revision.h | 2 +- glslang/MachineIndependent/linkValidate.cpp | 4 +- hlsl/hlslParseHelper.cpp | 1 + 6 files changed, 255 insertions(+), 3 deletions(-) create mode 100644 Test/baseResults/hlsl.reflection.vert.out create mode 100644 Test/hlsl.reflection.vert diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out new file mode 100644 index 00000000..b97de159 --- /dev/null +++ b/Test/baseResults/hlsl.reflection.vert.out @@ -0,0 +1,84 @@ +hlsl.reflection.vert + +Linked vertex stage: + + +Uniform reflection: +anonMember3: offset 96, type 8b52, size 1, index 0 +s.a: offset -1, type 1404, size 1, index -1 +scalar: offset 12, type 1404, size 1, index 0 +m23: offset 16, type 8b67, size 1, index 0 +scalarAfterm23: offset 64, type 1404, size 1, index 0 +c_m23: offset 16, type 8b67, size 1, index 0 +c_scalarAfterm23: offset 64, type 1404, size 1, index 0 +scalarBeforeArray: offset 112, type 1404, size 1, index 0 +floatArray: offset 128, type 1406, size 5, index 0 +scalarAfterArray: offset 208, type 1404, size 1, index 0 +memfloat2: offset 48, type 8b50, size 1, index 0 +memf1: offset 56, type 1406, size 1, index 0 +memf2: offset 60, type 8b56, size 1, index 0 +memf3: offset 64, type 1404, size 1, index 0 +memfloat2a: offset 72, type 8b50, size 1, index 0 +m22: offset 80, type 8b5a, size 7, index 0 +dm22: offset -1, type 8b5a, size 4, index -1 +foo.n1.a: offset 0, type 1406, size 1, index 0 +foo.n2.b: offset 16, type 1406, size 1, index 0 +foo.n2.c: offset 20, type 1406, size 1, index 0 +foo.n2.d: offset 24, type 1406, size 1, index 0 +deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 +deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 +deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 +deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 +deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 +deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 +deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 +deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 +deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 +deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 +deepC[1].iv4: offset -1, type 8b52, size 1, index -1 +deepC[1].d2.i: offset -1, type 1404, size 1, index -1 +deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 +deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 +deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 +deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 +deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 +deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 +deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 +deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 +deepC[1].v3: offset -1, type 8b54, size 1, index -1 +deepD[0].iv4: offset -1, type 8b52, size 1, index -1 +deepD[0].d2.i: offset -1, type 1404, size 1, index -1 +deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 +deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 +deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 +deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 +deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 +deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 +deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 +deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 +deepD[0].v3: offset -1, type 8b54, size 1, index -1 +deepD[1].iv4: offset -1, type 8b52, size 1, index -1 +deepD[1].d2.i: offset -1, type 1404, size 1, index -1 +deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 +deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 +deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 +deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 +deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 +deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 +deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 +deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 +deepD[1].v3: offset -1, type 8b54, size 1, index -1 +foo: offset 0, type 1406, size 1, index 0 +anonMember1: offset 0, type 8b51, size 1, index 0 +uf1: offset -1, type 1406, size 1, index -1 + +Uniform block reflection: +: offset -1, type ffffffff, size 512, index -1 + +Vertex attribute reflection: +attributeFloat: offset 0, type 1406, size 0, index 0 +attributeFloat2: offset 0, type 8b50, size 0, index 0 +attributeFloat3: offset 0, type 8b51, size 0, index 0 +attributeFloat4: offset 0, type 8b52, size 0, index 0 +attributeMat4: offset 0, type 8b5c, size 0, index 0 + diff --git a/Test/hlsl.reflection.vert b/Test/hlsl.reflection.vert new file mode 100644 index 00000000..21cc8109 --- /dev/null +++ b/Test/hlsl.reflection.vert @@ -0,0 +1,165 @@ + +cbuffer nameless { + float3 anonMember1; + float3x2 m23; + int scalarAfterm23; + float4 anonDeadMember2; + float4 anonMember3; + int scalarBeforeArray; + float floatArray[5]; + int scalarAfterArray; + float2x2 m22[9]; +}; + +cbuffer c_nameless { + float3 c_anonMember1; + float3x2 c_m23; + int c_scalarAfterm23; + float4 c_anonDeadMember2; + float4 c_anonMember3; +}; + +cbuffer named { + float3 deadMember1; + int scalar; + float4 member2; + float4 member3; + float2 memfloat2; + float memf1; + bool memf2; + int memf3; + float2 memfloat2a; + float2x2 m22[7]; +} ablock; + +cbuffer namelessdead { + int a; +}; + +cbuffer namedDead { + int b; +} bblock; + +struct N1 { + float a; +}; + +struct N2 { + float b; + float c; + float d; +}; + +struct N3 { + N1 n1; + N2 n2; +}; + +cbuffer nested { + N3 foo; +} nest; + +struct TS { + int a; + int dead; +}; + +uniform TS s; + +uniform float uf1; +uniform float uf2; +uniform float ufDead3; +uniform float ufDead4; + +uniform float2x2 dm22[10]; + +struct deep1 { + float2 va[3]; + bool b; +}; + +struct deep2 { + int i; + deep1 d1[4]; +}; + +struct deep3 { + float4 iv4; + deep2 d2; + int3 v3; +}; + + + + +uniform deep3 deepA[2], deepB[2], deepC[3], deepD[2]; + +const bool control = true; + +void deadFunction() +{ + float3 v3 = ablock.deadMember1; + float4 v = anonDeadMember2; + float f = ufDead4; +} + +void liveFunction2() +{ + float3 v = anonMember1; + float f = uf1; +} + +tbuffer abl { + float foo; +} arrBl; + +tbuffer abl2 { + float foo; +} arrBl2; + +void flizv(in float attributeFloat, in float2 attributeFloat2, in float3 attributeFloat3, in float4 attributeFloat4, in float4x4 attributeMat4) +{ + liveFunction2(); + + if (! control) + deadFunction(); + + float f; + int i; + if (control) { + liveFunction2(); + f = anonMember3.z; + f = s.a; + f = ablock.scalar; + f = m23[1].y + scalarAfterm23; + f = c_m23[1].y + c_scalarAfterm23; + f += scalarBeforeArray; + f += floatArray[2]; + f += floatArray[4]; + f += scalarAfterArray; + f += ablock.memfloat2.x; + f += ablock.memf1; + f += float(ablock.memf2); + f += ablock.memf3; + f += ablock.memfloat2a.y; + f += ablock.m22[i][1][0]; + f += dm22[3][0][1]; + f += m22[2][1].y; + f += nest.foo.n1.a + nest.foo.n2.b + nest.foo.n2.c + nest.foo.n2.d; + f += deepA[i].d2.d1[2].va[1].x; + f += deepB[1].d2.d1[i].va[1].x; + f += deepB[i].d2.d1[i].va[1].x; + deep3 d = deepC[1]; + deep3 da[2] = deepD; + } else + f = ufDead3; + + f += arrBl.foo + arrBl.foo; + f += arrBl2.foo; + + f += attributeFloat; + f += attributeFloat2.x; + f += attributeFloat3.x; + f += attributeFloat4.x; + f += attributeMat4[0][1]; +} diff --git a/Test/runtests b/Test/runtests index 5e777a8b..18513380 100755 --- a/Test/runtests +++ b/Test/runtests @@ -31,6 +31,8 @@ diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASER echo Running reflection... $EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 +$EXE -D -e flizv -l -q -C -V hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out +diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 # # multi-threaded test diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index bf8f2285..32969be1 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1501" +#define GLSLANG_REVISION "Overload400-PrecQual.1502" #define GLSLANG_DATE "19-Sep-2016" diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index afffb374..f213dd6c 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -75,8 +75,8 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) if (source != unit.source) error(infoSink, "can't link compilation units from different source languages"); - if (source == EShSourceHlsl && unit.entryPointName.size() > 0) { - if (entryPointName.size() > 0) + if (source == EShSourceHlsl && unit.getNumEntryPoints() > 0) { + if (getNumEntryPoints() > 0) error(infoSink, "can't handle multiple entry points per stage"); else entryPointName = unit.entryPointName; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9f1cff18..9018606a 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -859,6 +859,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l inEntryPoint = function.getName().compare(intermediate.getEntryPointName().c_str()) == 0; if (inEntryPoint) { intermediate.setEntryPointMangledName(function.getMangledName().c_str()); + intermediate.incrementEntryPointCount(); remapEntryPointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) From a1e2d4952e0bf6ec809d243e01e0c602797bbfd2 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 20 Sep 2016 13:22:58 -0600 Subject: [PATCH 142/217] HLSL: Move to correct parsing of annotations, improving all annotations and recent string grammar. --- Test/hlsl.string.frag | 2 +- glslang/Include/revision.h | 4 +-- hlsl/hlslGrammar.cpp | 60 ++++++++++++-------------------------- hlsl/hlslGrammar.h | 2 +- hlsl/hlslParseHelper.cpp | 11 +++++-- hlsl/hlslParseHelper.h | 11 ++++--- hlsl/hlslScanContext.cpp | 4 +-- hlsl/hlslTokens.h | 2 +- 8 files changed, 40 insertions(+), 56 deletions(-) diff --git a/Test/hlsl.string.frag b/Test/hlsl.string.frag index 09885ff9..572e73b7 100755 --- a/Test/hlsl.string.frag +++ b/Test/hlsl.string.frag @@ -1,7 +1,7 @@ string s = "string1"; string e = ""; string bracket < string a = "nested" ; > ; -string brackets < string b = "nest1" ; string c = "nest2" ; string d = "nest3" ; > ; +string brackets < string b = "nest1" ; string c = "nest2" ; float test [ 4 ] = { 1.0 , 1.0 , 1.0 , 1.0 } ; vector a = float3(2.0); > ; string brackete1 < > ; string brackete2 < ; > ; string brackete3 < ; ; > ; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 32969be1..6850d6fc 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1502" -#define GLSLANG_DATE "19-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1503" +#define GLSLANG_DATE "20-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 07625145..d458a882 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -721,36 +721,16 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) return true; } -// string_template_type -// : STRING -// | STRING identifier LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE +// annotations +// : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE // -bool HlslGrammar::acceptStringTemplateType(TType& type) +bool HlslGrammar::acceptAnnotations(TQualifier&) { - // STRING - if (! acceptTokenClass(EHTokString)) + if (! acceptTokenClass(EHTokLeftAngle)) return false; - // no matter what happens next, we recognized a string type - new(&type) TType(EbtString); - - // identifier LEFT_ANGLE, or not? - if (! acceptTokenClass(EHTokIdentifier)) { - expected("identifier following 'string'"); - return false; - } - - if (! peekTokenClass(EHTokLeftAngle)) { - // then it must be the non-template version, back up and let - // normal declaration code handle it - - // recede the identifier - recedeToken(); - return true; - } - - // move past the LEFT_ANGLE - advanceToken(); + // note that we are nesting a name space + parseContext.nestAnnotations(); // declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE do { @@ -759,15 +739,18 @@ bool HlslGrammar::acceptStringTemplateType(TType& type) ; if (acceptTokenClass(EHTokRightAngle)) - return true; + break; // declaration TIntermNode* node; if (! acceptDeclaration(node)) { - expected("declaration in string list"); + expected("declaration in annotation"); return false; } } while (true); + + parseContext.unnestAnnotations(); + return true; } // sampler_type @@ -942,10 +925,6 @@ bool HlslGrammar::acceptType(TType& type) return acceptMatrixTemplateType(type); break; - case EHTokString: - return acceptStringTemplateType(type); - break; - case EHTokSampler: // fall through case EHTokSampler1d: // ... case EHTokSampler2d: // ... @@ -991,6 +970,10 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtVoid); break; + case EHTokString: + new(&type) TType(EbtString); + break; + case EHTokFloat: new(&type) TType(EbtFloat); break; @@ -2740,16 +2723,9 @@ void HlslGrammar::acceptPostDecls(TQualifier& qualifier) // semantic, in idToken.string parseContext.handleSemantic(idToken.loc, qualifier, *idToken.string); } - } else if (acceptTokenClass(EHTokLeftAngle)) { - // TODO: process annotations, just accepting them for now - do { - if (peekTokenClass(EHTokNone)) - return; - if (acceptTokenClass(EHTokRightAngle)) - break; - advanceToken(); - } while (true); - } else + } else if (peekTokenClass(EHTokLeftAngle)) + acceptAnnotations(qualifier); + else break; } while (true); diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index f5c7d4d2..992eb5e9 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -73,7 +73,7 @@ namespace glslang { bool acceptTemplateType(TBasicType&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); - bool acceptStringTemplateType(TType&); + bool acceptAnnotations(TQualifier&); bool acceptSamplerType(TType&); bool acceptTextureType(TType&); bool acceptStruct(TType&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 9018606a..63cd5ecf 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -52,7 +52,8 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), - contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), + contextPragma(true, false), + loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), entryPointOutput(nullptr), @@ -4059,8 +4060,12 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes, TIntermTyped* initializer) { - // string identifiers can nest inside < ... >, apparently with their own namespace, - // which is not implemented + // TODO: things scoped within an annotation need their own name space; + // haven't done that yet + if (annotationNestingLevel > 0) + return nullptr; + + // TODO: strings are not yet handled if (parseType.getBasicType() == EbtString) return nullptr; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index ea763413..01620883 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -159,10 +159,12 @@ public: void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); - void nestLooping() { ++loopNestingLevel; } - void unnestLooping() { --loopNestingLevel; } - void pushScope() { symbolTable.push(); } - void popScope() { symbolTable.pop(0); } + void nestLooping() { ++loopNestingLevel; } + void unnestLooping() { --loopNestingLevel; } + void nestAnnotations() { ++annotationNestingLevel; } + void unnestAnnotations() { --annotationNestingLevel; } + void pushScope() { symbolTable.push(); } + void popScope() { symbolTable.pop(0); } void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } void popSwitchSequence() { switchSequenceStack.pop_back(); } @@ -182,6 +184,7 @@ protected: // Current state of parsing struct TPragma contextPragma; int loopNestingLevel; // 0 if outside all loops + int annotationNestingLevel; // 0 if outside all annotations int structNestingLevel; // 0 if outside blocks and structures int controlFlowNestingLevel; // 0 if outside all flow control TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index edeee64c..cf83ef39 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -122,9 +122,9 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; (*KeywordMap)["matrix"] = EHTokMatrix; - (*KeywordMap)["string"] = EHTokString; (*KeywordMap)["void"] = EHTokVoid; + (*KeywordMap)["string"] = EHTokString; (*KeywordMap)["bool"] = EHTokBool; (*KeywordMap)["int"] = EHTokInt; (*KeywordMap)["uint"] = EHTokUint; @@ -472,11 +472,11 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokBuffer: case EHTokVector: case EHTokMatrix: - case EHTokString: return keyword; // scalar types case EHTokVoid: + case EHTokString: case EHTokBool: case EHTokInt: case EHTokUint: diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index 9e23cc7a..e38cb9a6 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -70,10 +70,10 @@ enum EHlslTokenClass { EHTokBuffer, EHTokVector, EHTokMatrix, - EHTokString, // scalar types EHTokVoid, + EHTokString, EHTokBool, EHTokInt, EHTokUint, From 7f7c2ed7809b0041f508e4d99dbf2c1284d0c320 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 7 Sep 2016 15:20:19 -0600 Subject: [PATCH 143/217] HLSL: Add location offsets per resource type This PR adds the ability to offset sampler, texture, and UBO bindings from provided base bindings, and to auto-number bindings that are not provided with explicit register numbers. The mechanism works as follows: - Offsets may be given on the command line for all stages, or individually for one or more single stages, in which case the offset will be auto-selected according to the stage being compiled. There is also an API to set them. The new command line options are --shift-sampler-binding, --shift-texture-binding, and --shift-UBO-binding. - Uniforms which are not given explicit bindings in the source code are auto-numbered if and only if they are in live code as determined by the algorithm used to build the reflection database, and the --auto-map-bindings option is given. This auto-numbering avoids using any binding slots which were explicitly provided in the code, whether or not that explicit use was live. E.g, "uniform Texture1D foo : register(t3);" with --shift-texture-binding 10 will reserve binding 13, whether or not foo is used in live code. - Shorter synonyms for the command line options are available. See the --help output. The testing infrastructure is slightly extended to allow use of the binding offset API, and two new tests spv.register.(no)autoassign.frag are added for comparing the resulting SPIR-V. --- StandAlone/StandAlone.cpp | 115 +++++++- .../spv.register.autoassign.frag.out | 230 ++++++++++++++++ .../spv.register.noautoassign.frag.out | 224 ++++++++++++++++ Test/spv.register.autoassign.frag | 71 +++++ Test/spv.register.noautoassign.frag | 71 +++++ glslang/CMakeLists.txt | 2 + glslang/MachineIndependent/ShaderLang.cpp | 27 +- glslang/MachineIndependent/iomapper.cpp | 249 ++++++++++++++++++ glslang/MachineIndependent/iomapper.h | 61 +++++ .../MachineIndependent/localintermediate.h | 21 +- glslang/Public/ShaderLang.h | 9 + gtests/Spv.FromFile.cpp | 41 +++ gtests/TestFixture.h | 80 ++++++ 13 files changed, 1191 insertions(+), 10 deletions(-) create mode 100644 Test/baseResults/spv.register.autoassign.frag.out create mode 100644 Test/baseResults/spv.register.noautoassign.frag.out create mode 100644 Test/spv.register.autoassign.frag create mode 100644 Test/spv.register.noautoassign.frag create mode 100644 glslang/MachineIndependent/iomapper.cpp create mode 100644 glslang/MachineIndependent/iomapper.h diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 606f2476..063e416d 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -1,6 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // //All rights reserved. // @@ -48,7 +48,9 @@ #include "../SPIRV/disassemble.h" #include #include +#include #include +#include #include "../glslang/OSDependent/osinclude.h" @@ -78,6 +80,7 @@ enum TOptions { EOptionOutputHexadecimal = (1 << 16), EOptionReadHlsl = (1 << 17), EOptionCascadingErrors = (1 << 18), + EOptionAutoMapBindings = (1 << 19), }; // @@ -96,7 +99,7 @@ enum TFailCode { // // Forward declarations. // -EShLanguage FindLanguage(const std::string& name); +EShLanguage FindLanguage(const std::string& name, bool parseSuffix=true); void CompileFile(const char* fileName, ShHandle); void usage(); void FreeFileData(char** data); @@ -157,6 +160,10 @@ const char* binaryFileName = nullptr; const char* entryPointName = nullptr; const char* shaderStageName = nullptr; +std::array baseSamplerBinding; +std::array baseTextureBinding; +std::array baseUboBinding; + // // Create the default name for saving a binary if -o is not provided. // @@ -204,6 +211,35 @@ void Error(const char* message) exit(EFailUsage); } +// +// Process an optional binding base of the form: +// --argname [stage] base +// Where stage is one of the forms accepted by FindLanguage, and base is an integer +// +void ProcessBindingBase(int& argc, char**& argv, std::array& base) +{ + if (argc < 2) + usage(); + + if (!isdigit(argv[1][0])) { + if (argc < 3) // this form needs one more argument + usage(); + + // Parse form: --argname stage base + const EShLanguage lang = FindLanguage(argv[1], false); + base[lang] = atoi(argv[2]); + argc-= 2; + argv+= 2; + } else { + // Parse form: --argname base + for (int lang=0; lang= 1; argc--, argv++) { if (argv[0][0] == '-') { switch (argv[0][1]) { + case '-': + { + std::string lowerword(argv[0]+2); + std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower); + + // handle --word style options + if (lowerword == "shift-sampler-bindings" || // synonyms + lowerword == "shift-sampler-binding" || + lowerword == "ssb") { + ProcessBindingBase(argc, argv, baseSamplerBinding); + } else if (lowerword == "shift-texture-bindings" || // synonyms + lowerword == "shift-texture-binding" || + lowerword == "stb") { + ProcessBindingBase(argc, argv, baseTextureBinding); + } else if (lowerword == "shift-ubo-bindings" || // synonyms + lowerword == "shift-ubo-binding" || + lowerword == "sub") { + ProcessBindingBase(argc, argv, baseUboBinding); + } else if (lowerword == "auto-map-bindings" || // synonyms + lowerword == "auto-map-binding" || + lowerword == "amb") { + Options |= EOptionAutoMapBindings; + } else { + usage(); + } + } + break; case 'H': Options |= EOptionHumanReadableSpv; if ((Options & EOptionSpv) == 0) { @@ -461,6 +528,14 @@ void CompileAndLinkShaderUnits(std::vector compUnits) shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, 1); if (entryPointName) // HLSL todo: this needs to be tracked per compUnits shader->setEntryPoint(entryPointName); + + shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); + shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); + shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); + + if (Options & EOptionAutoMapBindings) + shader->setAutoMapBindings(true); + shaders.push_back(shader); const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100; @@ -506,6 +581,10 @@ void CompileAndLinkShaderUnits(std::vector compUnits) PutsIfNonEmpty(program.getInfoDebugLog()); } + // Map IO + if (Options & EOptionSpv) + program.mapIO(); + // Reflect if (Options & EOptionDumpReflection) { program.buildReflection(); @@ -705,15 +784,22 @@ int C_DECL main(int argc, char* argv[]) // .frag = fragment // .comp = compute // -EShLanguage FindLanguage(const std::string& name) +EShLanguage FindLanguage(const std::string& name, bool parseSuffix) { - size_t ext = name.rfind('.'); - if (ext == std::string::npos) { - usage(); - return EShLangVertex; + size_t ext = 0; + + // Search for a suffix on a filename: e.g, "myfile.frag". If given + // the suffix directly, we skip looking the '.' + if (parseSuffix) { + ext = name.rfind('.'); + if (ext == std::string::npos) { + usage(); + return EShLangVertex; + } + ++ext; } - std::string suffix = name.substr(ext + 1, std::string::npos); + std::string suffix = name.substr(ext, std::string::npos); if (shaderStageName) suffix = shaderStageName; @@ -831,6 +917,19 @@ void usage() " -v print version strings\n" " -w suppress warnings (except as required by #extension : warn)\n" " -x save 32-bit hexadecimal numbers as text, requires a binary option (e.g., -V)\n" + "\n" + " --shift-sampler-binding [stage] num set base binding number for samplers\n" + " --ssb [stage] num synonym for --shift-sampler-binding\n" + "\n" + " --shift-texture-binding [stage] num set base binding number for textures\n" + " --stb [stage] num synonym for --shift-texture-binding\n" + "\n" + " --shift-UBO-binding [stage] num set base binding number for UBOs\n" + " --sub [stage] num synonym for --shift-UBO-binding\n" + "\n" + " --auto-map-bindings automatically bind uniform variables without\n" + " explicit bindings.\n" + " --amb synonym for --auto-map-bindings\n" ); exit(EFailUsage); diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out new file mode 100644 index 00000000..c2cd59a3 --- /dev/null +++ b/Test/baseResults/spv.register.autoassign.frag.out @@ -0,0 +1,230 @@ +spv.register.autoassign.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 143 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "mystruct" + Name 117 "g_tTex_unused1" + Name 119 "g_sSamp_unused1" + Name 124 "g_tTex_unused2" + Name 126 "g_sSamp_unused2" + Name 134 "PS_OUTPUT" + MemberName 134(PS_OUTPUT) 0 "Color" + Name 136 "psout" + Name 143 "Color" + Name 147 "g_tTex_unused3" + Name 149 "myfloat4_a" + Name 150 "myfloat4_b" + Name 153 "myint4_a" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 1 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 2 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 3 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 4 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 6 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 8 + Decorate 95(mystruct) Binding 19 + Decorate 117(g_tTex_unused1) DescriptorSet 0 + Decorate 117(g_tTex_unused1) Binding 10 + Decorate 119(g_sSamp_unused1) DescriptorSet 0 + Decorate 124(g_tTex_unused2) DescriptorSet 0 + Decorate 124(g_tTex_unused2) Binding 12 + Decorate 126(g_sSamp_unused2) DescriptorSet 0 + Decorate 143(Color) Location 0 + Decorate 147(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypePointer UniformConstant 93(MyStruct_t) + 95(mystruct): 94(ptr) Variable UniformConstant + 96: 35(int) Constant 1 + 97: TypePointer UniformConstant 6(float) +117(g_tTex_unused1): 16(ptr) Variable UniformConstant +119(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 122: 6(float) Constant 1066192077 +124(g_tTex_unused2): 16(ptr) Variable UniformConstant +126(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 129: 6(float) Constant 1067030938 + 134(PS_OUTPUT): TypeStruct 7(fvec4) + 135: TypePointer Function 134(PS_OUTPUT) + 140: TypePointer Function 7(fvec4) + 142: TypePointer Output 7(fvec4) + 143(Color): 142(ptr) Variable Output +147(g_tTex_unused3): 16(ptr) Variable UniformConstant + 148: TypePointer UniformConstant 7(fvec4) + 149(myfloat4_a): 148(ptr) Variable UniformConstant + 150(myfloat4_b): 148(ptr) Variable UniformConstant + 151: TypeVector 40(int) 4 + 152: TypePointer UniformConstant 151(ivec4) + 153(myint4_a): 152(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 136(psout): 135(ptr) Variable Function + 137: 7(fvec4) FunctionCall 9(Func1() + 138: 7(fvec4) FunctionCall 11(Func2() + 139: 7(fvec4) FAdd 137 138 + 141: 140(ptr) AccessChain 136(psout) 41 + Store 141 139 + 144: 140(ptr) AccessChain 136(psout) 41 + 145: 7(fvec4) Load 144 + Store 143(Color) 145 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 98: 97(ptr) AccessChain 95(mystruct) 76 96 + 99: 6(float) Load 98 + 100: 7(fvec4) CompositeConstruct 99 99 99 99 + 101: 7(fvec4) FAdd 91 100 + ReturnValue 101 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 104: 15 Load 17(g_tTex1) + 105: 19 Load 21(g_sSamp1) + 106: 23 SampledImage 104 105 + 107: 7(fvec4) ImageSampleImplicitLod 106 25 + 108: 16(ptr) AccessChain 39(g_tTex3) 53 + 109: 15 Load 108 + 110: 20(ptr) AccessChain 46(g_sSamp3) 53 + 111: 19 Load 110 + 112: 23 SampledImage 109 111 + 113: 7(fvec4) ImageSampleImplicitLod 112 50 + 114: 7(fvec4) FAdd 107 113 + ReturnValue 114 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 118: 15 Load 117(g_tTex_unused1) + 120: 19 Load 119(g_sSamp_unused1) + 121: 23 SampledImage 118 120 + 123: 7(fvec4) ImageSampleImplicitLod 121 122 + 125: 15 Load 124(g_tTex_unused2) + 127: 19 Load 126(g_sSamp_unused2) + 128: 23 SampledImage 125 127 + 130: 7(fvec4) ImageSampleImplicitLod 128 129 + 131: 7(fvec4) FAdd 123 130 + ReturnValue 131 + FunctionEnd diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out new file mode 100644 index 00000000..3a8ab1a3 --- /dev/null +++ b/Test/baseResults/spv.register.noautoassign.frag.out @@ -0,0 +1,224 @@ +spv.register.noautoassign.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 154 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 143 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "mystruct" + Name 117 "g_tTex_unused1" + Name 119 "g_sSamp_unused1" + Name 124 "g_tTex_unused2" + Name 126 "g_sSamp_unused2" + Name 134 "PS_OUTPUT" + MemberName 134(PS_OUTPUT) 0 "Color" + Name 136 "psout" + Name 143 "Color" + Name 147 "g_tTex_unused3" + Name 149 "myfloat4_a" + Name 150 "myfloat4_b" + Name 153 "myint4_a" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 95(mystruct) Binding 19 + Decorate 117(g_tTex_unused1) DescriptorSet 0 + Decorate 117(g_tTex_unused1) Binding 10 + Decorate 119(g_sSamp_unused1) DescriptorSet 0 + Decorate 124(g_tTex_unused2) DescriptorSet 0 + Decorate 124(g_tTex_unused2) Binding 12 + Decorate 126(g_sSamp_unused2) DescriptorSet 0 + Decorate 143(Color) Location 0 + Decorate 147(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypePointer UniformConstant 93(MyStruct_t) + 95(mystruct): 94(ptr) Variable UniformConstant + 96: 35(int) Constant 1 + 97: TypePointer UniformConstant 6(float) +117(g_tTex_unused1): 16(ptr) Variable UniformConstant +119(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 122: 6(float) Constant 1066192077 +124(g_tTex_unused2): 16(ptr) Variable UniformConstant +126(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 129: 6(float) Constant 1067030938 + 134(PS_OUTPUT): TypeStruct 7(fvec4) + 135: TypePointer Function 134(PS_OUTPUT) + 140: TypePointer Function 7(fvec4) + 142: TypePointer Output 7(fvec4) + 143(Color): 142(ptr) Variable Output +147(g_tTex_unused3): 16(ptr) Variable UniformConstant + 148: TypePointer UniformConstant 7(fvec4) + 149(myfloat4_a): 148(ptr) Variable UniformConstant + 150(myfloat4_b): 148(ptr) Variable UniformConstant + 151: TypeVector 40(int) 4 + 152: TypePointer UniformConstant 151(ivec4) + 153(myint4_a): 152(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 136(psout): 135(ptr) Variable Function + 137: 7(fvec4) FunctionCall 9(Func1() + 138: 7(fvec4) FunctionCall 11(Func2() + 139: 7(fvec4) FAdd 137 138 + 141: 140(ptr) AccessChain 136(psout) 41 + Store 141 139 + 144: 140(ptr) AccessChain 136(psout) 41 + 145: 7(fvec4) Load 144 + Store 143(Color) 145 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 98: 97(ptr) AccessChain 95(mystruct) 76 96 + 99: 6(float) Load 98 + 100: 7(fvec4) CompositeConstruct 99 99 99 99 + 101: 7(fvec4) FAdd 91 100 + ReturnValue 101 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 104: 15 Load 17(g_tTex1) + 105: 19 Load 21(g_sSamp1) + 106: 23 SampledImage 104 105 + 107: 7(fvec4) ImageSampleImplicitLod 106 25 + 108: 16(ptr) AccessChain 39(g_tTex3) 53 + 109: 15 Load 108 + 110: 20(ptr) AccessChain 46(g_sSamp3) 53 + 111: 19 Load 110 + 112: 23 SampledImage 109 111 + 113: 7(fvec4) ImageSampleImplicitLod 112 50 + 114: 7(fvec4) FAdd 107 113 + ReturnValue 114 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 118: 15 Load 117(g_tTex_unused1) + 120: 19 Load 119(g_sSamp_unused1) + 121: 23 SampledImage 118 120 + 123: 7(fvec4) ImageSampleImplicitLod 121 122 + 125: 15 Load 124(g_tTex_unused2) + 127: 19 Load 126(g_sSamp_unused2) + 128: 23 SampledImage 125 127 + 130: 7(fvec4) ImageSampleImplicitLod 128 129 + 131: 7(fvec4) FAdd 123 130 + ReturnValue 131 + FunctionEnd diff --git a/Test/spv.register.autoassign.frag b/Test/spv.register.autoassign.frag new file mode 100644 index 00000000..0d6f0b2d --- /dev/null +++ b/Test/spv.register.autoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/Test/spv.register.noautoassign.frag b/Test/spv.register.noautoassign.frag new file mode 100644 index 00000000..0d6f0b2d --- /dev/null +++ b/Test/spv.register.noautoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 6325fd4a..95d4bdd8 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -10,6 +10,7 @@ set(SOURCES MachineIndependent/glslang.y MachineIndependent/glslang_tab.cpp MachineIndependent/Constant.cpp + MachineIndependent/iomapper.cpp MachineIndependent/InfoSink.cpp MachineIndependent/Initialize.cpp MachineIndependent/IntermTraverse.cpp @@ -55,6 +56,7 @@ set(HEADERS MachineIndependent/glslang_tab.cpp.h MachineIndependent/gl_types.h MachineIndependent/Initialize.h + MachineIndependent/iomapper.h MachineIndependent/LiveTraverser.h MachineIndependent/localintermediate.h MachineIndependent/ParseHelper.h diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 414a62b3..dc0c01b6 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -60,6 +60,7 @@ #define SH_EXPORTING #include "../Public/ShaderLang.h" #include "reflection.h" +#include "iomapper.h" #include "Initialize.h" namespace { // anonymous namespace for file-local functions and symbols @@ -1488,6 +1489,10 @@ void TShader::setEntryPoint(const char* entryPoint) intermediate->setEntryPointName(entryPoint); } +void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); } +void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } +void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } +void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } // // Turn the shader strings into a parse tree in the TIntermediate. // @@ -1548,7 +1553,7 @@ const char* TShader::getInfoDebugLog() return infoSink->debug.c_str(); } -TProgram::TProgram() : pool(0), reflection(0), linked(false) +TProgram::TProgram() : pool(0), reflection(0), ioMapper(nullptr), linked(false) { infoSink = new TInfoSink; for (int s = 0; s < EShLangCount; ++s) { @@ -1700,4 +1705,24 @@ int TProgram::getAttributeType(int index) { return reflection->getAtt void TProgram::dumpReflection() { reflection->dump(); } +// +// I/O mapping implementation. +// +bool TProgram::mapIO() +{ + if (! linked || ioMapper) + return false; + + ioMapper = new TIoMapper; + + for (int s = 0; s < EShLangCount; ++s) { + if (intermediate[s]) { + if (! ioMapper->addStage((EShLanguage)s, *intermediate[s])) + return false; + } + } + + return true; +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp new file mode 100644 index 00000000..d02fb5ea --- /dev/null +++ b/glslang/MachineIndependent/iomapper.cpp @@ -0,0 +1,249 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#include "../Include/Common.h" +#include "iomapper.h" +#include "LiveTraverser.h" +#include "localintermediate.h" + +#include "gl_types.h" + +#include +#include + +// +// Map IO bindings. +// +// High-level algorithm for one stage: +// +// 1. Traverse all code (live+dead) to find the explicitly provided bindings. +// +// 2. Traverse (just) the live code to determine which non-provided bindings +// require auto-numbering. We do not auto-number dead ones. +// +// 3. Traverse all the code to apply the bindings: +// a. explicitly given bindings are offset according to their type +// b. implicit live bindings are auto-numbered into the holes, using +// any open binding slot. +// c. implicit dead bindings are left un-bound. +// + + +namespace glslang { + +// Map of IDs to bindings +typedef std::unordered_map TBindingMap; +typedef std::unordered_set TUsedBindings; + + +// This traverses the AST to determine which bindings are used, and which are implicit +// (for subsequent auto-numbering) +class TBindingTraverser : public TLiveTraverser { +public: + TBindingTraverser(const TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, + bool traverseDeadCode = false) : + TLiveTraverser(i, traverseDeadCode), + bindingMap(bindingMap), + usedBindings(usedBindings) + { } + +protected: + virtual void visitSymbol(TIntermSymbol* base) { + if (base->getQualifier().storage == EvqUniform) + addUniform(*base); + } + + // Return the right binding base given the variable type. + int getBindingBase(const TType& type) { + if (type.getBasicType() == EbtSampler) { + const TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return intermediate.getShiftSamplerBinding(); + if (sampler.isTexture()) + return intermediate.getShiftTextureBinding(); + } + + if (type.getQualifier().isUniformOrBuffer()) + return intermediate.getShiftUboBinding(); + + return -1; // not a type with a binding + } + + // Mark a given base symbol ID as being bound to 'binding' + void markBinding(const TIntermSymbol& base, int binding) { + bindingMap[base.getId()] = binding; + + if (binding >= 0) { + // const TType& type = base.getType(); + const unsigned int size = 1; // type.isArray() ? type.getCumulativeArraySize() : 1; + + for (unsigned int offset=0; offsettraverse(&it_binding_all); + + // Traverse just live code to find things that need implicit bindings. + it_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); + + while (! it_binding_live.functions.empty()) { + TIntermNode* function = it_binding_live.functions.back(); + it_binding_live.functions.pop_back(); + function->traverse(&it_binding_live); + } + + // Bind everything that needs a binding and doesn't have one. + root->traverse(&it_iomap); + + return true; +} + +} // end namespace glslang diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h new file mode 100644 index 00000000..69ed4c5b --- /dev/null +++ b/glslang/MachineIndependent/iomapper.h @@ -0,0 +1,61 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef _IOMAPPER_INCLUDED +#define _IOMAPPER_INCLUDED + +#include "../Public/ShaderLang.h" + +// +// A reflection database and its interface, consistent with the OpenGL API reflection queries. +// + +namespace glslang { + +class TIntermediate; + +// I/O mapper +class TIoMapper { +public: + TIoMapper() {} + virtual ~TIoMapper() {} + + // grow the reflection stage by stage + bool addStage(EShLanguage, TIntermediate&); +}; + +} // end namespace glslang + +#endif // _IOMAPPER_INCLUDED diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 3ce615ee..4de811cf 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -141,7 +141,11 @@ public: invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), depthReplacing(false), blendEquations(0), - multiStream(false), xfbMode(false) + multiStream(false), xfbMode(false), + shiftSamplerBinding(0), + shiftTextureBinding(0), + shiftUboBinding(0), + autoMapBindings(false) { localSize[0] = 1; localSize[1] = 1; @@ -163,6 +167,16 @@ public: void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; } const std::string& getEntryPointName() const { return entryPointName; } const std::string& getEntryPointMangledName() const { return entryPointMangledName; } + + void setShiftSamplerBinding(unsigned int shift) { shiftSamplerBinding = shift; } + unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; } + void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; } + unsigned int getShiftTextureBinding() const { return shiftTextureBinding; } + void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; } + unsigned int getShiftUboBinding() const { return shiftUboBinding; } + void setAutoMapBindings(bool map) { autoMapBindings = map; } + bool getAutoMapBindings() const { return autoMapBindings; } + void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } @@ -367,6 +381,11 @@ protected: EShSource source; // source language, known a bit later std::string entryPointName; std::string entryPointMangledName; + unsigned int shiftSamplerBinding; + unsigned int shiftTextureBinding; + unsigned int shiftUboBinding; + bool autoMapBindings; + EProfile profile; int version; SpvVersion spvVersion; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index d1121595..80605ba3 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -300,6 +300,10 @@ public: const char* const* s, const int* l, const char* const* names, int n); void setPreamble(const char* s) { preamble = s; } void setEntryPoint(const char* entryPoint); + void setShiftSamplerBinding(unsigned int base); + void setShiftTextureBinding(unsigned int base); + void setShiftUboBinding(unsigned int base); + void setAutoMapBindings(bool map); // Interface to #include handlers. // @@ -433,6 +437,7 @@ private: }; class TReflection; +class TIoMapper; // Make one TProgram per set of shaders that will get linked together. Add all // the shaders that are to be linked together. After calling shader.parse() @@ -470,6 +475,9 @@ public: int getAttributeType(int index); // can be used for glGetActiveAttrib() void dumpReflection(); + // I/O mapping: apply base offsets and map live unbound variables + bool mapIO(); + protected: bool linkStage(EShLanguage, EShMessages); @@ -479,6 +487,7 @@ protected: bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage TInfoSink* infoSink; TReflection* reflection; + TIoMapper* ioMapper; bool linked; private: diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 45fed044..5ea46c44 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -41,11 +41,30 @@ namespace glslangtest { namespace { +struct IoMapData { + const char* fileName; + const char* entryPoint; + int baseSamplerBinding; + int baseTextureBinding; + int baseUboBinding; + bool autoMapBindings; +}; + +std::string FileNameAsCustomTestSuffixIoMap( + const ::testing::TestParamInfo& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam>; using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam>; using VulkanSemantics = GlslangTest<::testing::TestWithParam>; using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; +using HlslSemantics = GlslangTest<::testing::TestWithParam>; // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate SPIR-V. @@ -91,6 +110,18 @@ TEST_P(VulkanAstSemantics, FromFile) Target::AST); } +// HLSL-level Vulkan semantics tests. +TEST_P(HlslSemantics, FromFile) +{ + loadFileCompileIoMapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseUboBinding, + GetParam().autoMapBindings); +} + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileVulkanToSpirvTest, @@ -216,6 +247,16 @@ INSTANTIATE_TEST_CASE_P( FileNameAsCustomTestSuffix ); +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, HlslSemantics, + ::testing::ValuesIn(std::vector{ + { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileOpenGLToSpirvTest, diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 81930125..47e2703a 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -234,6 +234,54 @@ public: } } + // Compiles and links the given source |code| of the given shader + // |stage| into the target under the semantics specified via |controls|. + // Returns a GlslangResult instance containing all the information generated + // during the process. If the target includes SPIR-V, also disassembles + // the result and returns disassembly text. + GlslangResult compileLinkIoMap( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + int baseSamplerBinding, + int baseTextureBinding, + int baseUboBinding, + bool autoMapBindings) + { + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(kind); + shader.setShiftSamplerBinding(baseSamplerBinding); + shader.setShiftTextureBinding(baseTextureBinding); + shader.setShiftUboBinding(baseUboBinding); + shader.setAutoMapBindings(autoMapBindings); + + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + + success &= program.link(controls); + success &= program.mapIO(); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector spirv_binary; + glslang::GlslangToSpv(*program.getIntermediate(kind), + spirv_binary, &logger); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + // This is like compileAndLink but with remapping of the SPV binary // through spirvbin_t::remap(). While technically this could be merged // with compileAndLink() above (with the remap step optionally being a no-op) @@ -347,6 +395,38 @@ public: expectedOutputFname); } + void loadFileCompileIoMapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName, + int baseSamplerBinding, + int baseTextureBinding, + int baseUboBinding, + bool autoMapBindings) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, + baseSamplerBinding, baseTextureBinding, baseUboBinding, + autoMapBindings); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + void loadFileCompileRemapAndCheck(const std::string& testDir, const std::string& testName, Source source, From 6714bcc2ca97f668c0358f3d8ce039d61b5ab25e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 21 Sep 2016 17:50:12 -0600 Subject: [PATCH 144/217] HLSL: Fix result type of passing a flattened-aggregate to a function. --- Test/baseResults/hlsl.entry-in.frag.out | 6 +++--- glslang/Include/revision.h | 4 ++-- hlsl/hlslParseHelper.cpp | 8 ++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index 5baea644..8572fa1c 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) 0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:? Comma (temp float) +0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) 0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:? Comma (temp float) +0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) 0:? v: direct index for structure (temp 2-component vector of float) @@ -256,7 +256,7 @@ gl_FragCoord origin is upper left 48(param): 12(ptr) Variable Function 51(ret2): 20(ptr) Variable Function 52(aggShadow): 12(ptr) Variable Function - 59(param): 20(ptr) Variable Function + 59(param): 12(ptr) Variable Function 33: 7(fvec2) Load 32(v) 35: 34(ptr) AccessChain 30(local) 17 Store 35 33 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 6850d6fc..0fd06e15 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1503" -#define GLSLANG_DATE "20-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1506" +#define GLSLANG_DATE "21-Sep-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 63cd5ecf..5af79040 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2277,6 +2277,10 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI } } else { if (shouldFlatten(arg->getType())) { + // Will make a two-level subtree. + // The deepest will copy member-by-member to build the structure to pass. + // The level above that will be an two-operand EOpComma sequence that follows the copy by the + // object itself. TSourceLoc dummyLoc; dummyLoc.init(); TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); @@ -2284,9 +2288,13 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), internalAggregate->getName(), internalAggregate->getType()); + // This makes the deepest level, the member-wise copy TIntermAggregate* assignAgg = handleAssign(dummyLoc, EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + + // Now, pair that with the resulting aggregate. assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode); assignAgg->setOperator(EOpComma); + assignAgg->setType(internalAggregate->getType()); setArg(i, assignAgg); } } From 5159664475c1698c056ef80a3352e8d3600d99f3 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Wed, 21 Sep 2016 18:56:12 +0800 Subject: [PATCH 145/217] SPV: Implement the extension SPV_KHR_shader_ballot --- SPIRV/CMakeLists.txt | 1 + SPIRV/GLSL.ext.KHR.h | 51 ++ SPIRV/GlslangToSpv.cpp | 169 +++++-- SPIRV/SpvBuilder.cpp | 4 +- SPIRV/SpvBuilder.h | 4 +- SPIRV/doc.cpp | 24 +- Test/baseResults/spv.shaderBallot.comp.out | 563 +++++++++++---------- glslang/MachineIndependent/Initialize.cpp | 5 +- 8 files changed, 480 insertions(+), 341 deletions(-) create mode 100644 SPIRV/GLSL.ext.KHR.h diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 48a6c468..ad72276f 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -13,6 +13,7 @@ set(SPVREMAP_SOURCES set(HEADERS spirv.hpp GLSL.std.450.h + GLSL.ext.KHR.h GlslangToSpv.h Logger.h SpvBuilder.h diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h new file mode 100644 index 00000000..7ce795f4 --- /dev/null +++ b/SPIRV/GLSL.ext.KHR.h @@ -0,0 +1,51 @@ +/* +** Copyright (c) 2014-2016 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and/or associated documentation files (the "Materials"), +** to deal in the Materials without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Materials, and to permit persons to whom the +** Materials are furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Materials. +** +** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS +** IN THE MATERIALS. +*/ + +#ifndef GLSLextKHR_H +#define GLSLextKHR_H + +enum BuiltIn; +enum Op; +enum Capability; + +static const int GLSLextKHRVersion = 100; +static const int GLSLextKHRRevision = 1; + +// SPV_KHR_shader_ballot +static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; + +static const BuiltIn BuiltInSubgroupEqMaskKHR = static_cast(4416); +static const BuiltIn BuiltInSubgroupGeMaskKHR = static_cast(4417); +static const BuiltIn BuiltInSubgroupGtMaskKHR = static_cast(4418); +static const BuiltIn BuiltInSubgroupLeMaskKHR = static_cast(4419); +static const BuiltIn BuiltInSubgroupLtMaskKHR = static_cast(4420); + +static const Op OpSubgroupBallotKHR = static_cast(4421); +static const Op OpSubgroupFirstInvocationKHR = static_cast(4422); + +static const Capability CapabilitySubgroupBallotKHR = static_cast(4423); + +#endif // #ifndef GLSLextKHR_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 72865886..8372dbb8 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -42,9 +42,10 @@ #include "GlslangToSpv.h" #include "SpvBuilder.h" namespace spv { - #include "GLSL.std.450.h" + #include "GLSL.std.450.h" + #include "GLSL.ext.KHR.h" #ifdef AMD_EXTENSIONS - #include "GLSL.ext.AMD.h" + #include "GLSL.ext.AMD.h" #endif } @@ -154,7 +155,7 @@ protected: spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); - spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy); + spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); #ifdef AMD_EXTENSIONS spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand); #endif @@ -521,16 +522,40 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId; case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex; case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; + case glslang::EbvSubGroupSize: + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupSize; + case glslang::EbvSubGroupInvocation: + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLocalInvocationId; + case glslang::EbvSubGroupEqMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupEqMaskKHR; + case glslang::EbvSubGroupGeMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupGeMaskKHR; + case glslang::EbvSubGroupGtMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupGtMaskKHR; + case glslang::EbvSubGroupLeMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLeMaskKHR; + case glslang::EbvSubGroupLtMask: - // TODO: Add SPIR-V builtin ID. - logger->missingFunctionality("shader ballot"); - return spv::BuiltInMax; + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLtMaskKHR; + #ifdef AMD_EXTENSIONS case glslang::EbvBaryCoordNoPersp: return spv::BuiltInBaryCoordNoPerspAMD; case glslang::EbvBaryCoordNoPerspCentroid: return spv::BuiltInBaryCoordNoPerspCentroidAMD; @@ -3610,10 +3635,6 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpBallot: case glslang::EOpReadFirstInvocation: - logger->missingFunctionality("shader ballot"); - libCall = spv::GLSLstd450Bad; - break; - case glslang::EOpAnyInvocation: case glslang::EOpAllInvocations: case glslang::EOpAllInvocationsEqual: @@ -3625,7 +3646,11 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: #endif - return createInvocationsOperation(op, typeId, operand, typeProxy); + { + std::vector operands; + operands.push_back(operand); + return createInvocationsOperation(op, typeId, operands, typeProxy); + } #ifdef AMD_EXTENSIONS case glslang::EOpMbcnt: @@ -3959,113 +3984,149 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv } // Create group invocation operations. -spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) +spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; - builder.addCapability(spv::CapabilityGroups); + spv::Op opCode = spv::OpNop; - std::vector operands; - operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + std::vector spvGroupOperands; + if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation) { + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + } else { + builder.addCapability(spv::CapabilityGroups); + + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS - if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || - op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) - operands.push_back(spv::GroupOperationReduce); + if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || + op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) + spvGroupOperands.push_back(spv::GroupOperationReduce); #endif - operands.push_back(operand); + } + + for (auto opIt = operands.begin(); opIt != operands.end(); ++opIt) + spvGroupOperands.push_back(*opIt); switch (op) { case glslang::EOpAnyInvocation: + opCode = spv::OpGroupAny; + break; case glslang::EOpAllInvocations: - return builder.createOp(op == glslang::EOpAnyInvocation ? spv::OpGroupAny : spv::OpGroupAll, typeId, operands); - + opCode = spv::OpGroupAll; + break; case glslang::EOpAllInvocationsEqual: { - spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, operands); - spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, operands); + spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, spvGroupOperands); + spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, spvGroupOperands); return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll, builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny)); } + + case glslang::EOpReadInvocation: + opCode = spv::OpGroupBroadcast; + break; + case glslang::EOpReadFirstInvocation: + opCode = spv::OpSubgroupFirstInvocationKHR; + break; + case glslang::EOpBallot: + { + // NOTE: According to the spec, the result type of "OpSubgroupBallotKHR" must be a 4 component vector of 32 + // bit integer types. The GLSL built-in function "ballotARB()" assumes the maximum number of invocations in + // a subgroup is 64. Thus, we have to convert uvec4.xy to uint64_t as follow: + // + // result = Bitcast(SubgroupBallotKHR(Predicate).xy) + // + spv::Id uintType = builder.makeUintType(32); + spv::Id uvec4Type = builder.makeVectorType(uintType, 4); + spv::Id result = builder.createOp(spv::OpSubgroupBallotKHR, uvec4Type, spvGroupOperands); + + std::vector components; + components.push_back(builder.createCompositeExtract(result, uintType, 0)); + components.push_back(builder.createCompositeExtract(result, uintType, 1)); + + spv::Id uvec2Type = builder.makeVectorType(uintType, 2); + return builder.createUnaryOp(spv::OpBitcast, typeId, + builder.createCompositeConstruct(uvec2Type, components)); + } + #ifdef AMD_EXTENSIONS case glslang::EOpMinInvocations: case glslang::EOpMaxInvocations: case glslang::EOpAddInvocations: - { - spv::Op spvOp = spv::OpNop; if (op == glslang::EOpMinInvocations) { if (isFloat) - spvOp = spv::OpGroupFMin; + opCode = spv::OpGroupFMin; else { if (isUnsigned) - spvOp = spv::OpGroupUMin; + opCode = spv::OpGroupUMin; else - spvOp = spv::OpGroupSMin; + opCode = spv::OpGroupSMin; } } else if (op == glslang::EOpMaxInvocations) { if (isFloat) - spvOp = spv::OpGroupFMax; + opCode = spv::OpGroupFMax; else { if (isUnsigned) - spvOp = spv::OpGroupUMax; + opCode = spv::OpGroupUMax; else - spvOp = spv::OpGroupSMax; + opCode = spv::OpGroupSMax; } } else { if (isFloat) - spvOp = spv::OpGroupFAdd; + opCode = spv::OpGroupFAdd; else - spvOp = spv::OpGroupIAdd; + opCode = spv::OpGroupIAdd; } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(spvOp, typeId, operand); - else - return builder.createOp(spvOp, typeId, operands); - } + return CreateInvocationsVectorOperation(opCode, typeId, operands[0]); + + break; case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: - { - spv::Op spvOp = spv::OpNop; if (op == glslang::EOpMinInvocationsNonUniform) { if (isFloat) - spvOp = spv::OpGroupFMinNonUniformAMD; + opCode = spv::OpGroupFMinNonUniformAMD; else { if (isUnsigned) - spvOp = spv::OpGroupUMinNonUniformAMD; + opCode = spv::OpGroupUMinNonUniformAMD; else - spvOp = spv::OpGroupSMinNonUniformAMD; + opCode = spv::OpGroupSMinNonUniformAMD; } } else if (op == glslang::EOpMaxInvocationsNonUniform) { if (isFloat) - spvOp = spv::OpGroupFMaxNonUniformAMD; + opCode = spv::OpGroupFMaxNonUniformAMD; else { if (isUnsigned) - spvOp = spv::OpGroupUMaxNonUniformAMD; + opCode = spv::OpGroupUMaxNonUniformAMD; else - spvOp = spv::OpGroupSMaxNonUniformAMD; + opCode = spv::OpGroupSMaxNonUniformAMD; } } else { if (isFloat) - spvOp = spv::OpGroupFAddNonUniformAMD; + opCode = spv::OpGroupFAddNonUniformAMD; else - spvOp = spv::OpGroupIAddNonUniformAMD; + opCode = spv::OpGroupIAddNonUniformAMD; } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(spvOp, typeId, operand); - else - return builder.createOp(spvOp, typeId, operands); - } + return CreateInvocationsVectorOperation(opCode, typeId, operands[0]); + + break; #endif default: logger->missingFunctionality("invocation operation"); return spv::NoResult; } + + assert(opCode != spv::OpNop); + return builder.createOp(opCode, typeId, spvGroupOperands); } #ifdef AMD_EXTENSIONS @@ -4256,9 +4317,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: break; case glslang::EOpReadInvocation: - logger->missingFunctionality("shader ballot"); - libCall = spv::GLSLstd450Bad; - break; + return createInvocationsOperation(op, typeId, operands, typeProxy); #ifdef AMD_EXTENSIONS case glslang::EOpSwizzleInvocations: @@ -4825,7 +4884,7 @@ spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) if (extBuiltinMap.find(name) != extBuiltinMap.end()) return extBuiltinMap[name]; else { - builder.addExtensions(name); + builder.addExtension(name); spv::Id extBuiltins = builder.import(name); extBuiltinMap[name] = extBuiltins; return extBuiltins; diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index a881d1b4..7aaa51f9 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -2318,9 +2318,9 @@ void Builder::dump(std::vector& out) const capInst.dump(out); } - for (int e = 0; e < (int)extensions.size(); ++e) { + for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) { Instruction extInst(0, 0, OpExtension); - extInst.addStringOperand(extensions[e]); + extInst.addStringOperand(*it); extInst.dump(out); } diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 38dc1fa3..6e709eaa 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -71,7 +71,7 @@ public: sourceVersion = version; } void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } - void addExtensions(const char* ext) { extensions.push_back(ext); } + void addExtension(const char* ext) { extensions.insert(ext); } Id import(const char*); void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) { @@ -552,7 +552,7 @@ public: SourceLanguage source; int sourceVersion; - std::vector extensions; + std::set extensions; std::vector sourceExtensions; AddressingModel addressModel; MemoryModel memoryModel; diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index a25f7c00..d2161dd8 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -45,14 +45,15 @@ #include #include -#ifdef AMD_EXTENSIONS namespace spv { extern "C" { // Include C-based headers that don't have a namespace + #include "GLSL.ext.KHR.h" +#ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" +#endif } } -#endif namespace spv { @@ -312,6 +313,12 @@ const char* BuiltInString(int builtIn) case BuiltInCeiling: default: return "Bad"; + case 4416: return "SubgroupEqMaskKHR"; + case 4417: return "SubgroupGeMaskKHR"; + case 4418: return "SubgroupGtMaskKHR"; + case 4419: return "SubgroupLeMaskKHR"; + case 4420: return "SubgroupLtMaskKHR"; + #ifdef AMD_EXTENSIONS case 4992: return "BaryCoordNoPerspAMD"; case 4993: return "BaryCoordNoPerspCentroidAMD"; @@ -799,6 +806,8 @@ const char* CapabilityString(int info) case CapabilityCeiling: default: return "Bad"; + + case 4423: return "SubgroupBallotKHR"; } } @@ -1131,6 +1140,9 @@ const char* OpcodeString(int op) default: return "Bad"; + case 4421: return "OpSubgroupBallotKHR"; + case 4422: return "OpSubgroupFirstInvocationKHR"; + #ifdef AMD_EXTENSIONS case 5000: return "OpGroupIAddNonUniformAMD"; case 5001: return "OpGroupFAddNonUniformAMD"; @@ -1146,11 +1158,7 @@ const char* OpcodeString(int op) // The set of objects that hold all the instruction/operand // parameterization information. -#ifdef AMD_EXTENSIONS InstructionParameters InstructionDesc[OpCodeMask + 1]; -#else -InstructionParameters InstructionDesc[OpcodeCeiling]; -#endif OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; OperandParameters DecorationOperands[DecorationCeiling]; @@ -2742,6 +2750,10 @@ void Parameterize() InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'"); + InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'"); + + InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'"); + #ifdef AMD_EXTENSIONS InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out index cb2e0130..c60db162 100644 --- a/Test/baseResults/spv.shaderBallot.comp.out +++ b/Test/baseResults/spv.shaderBallot.comp.out @@ -5,16 +5,18 @@ Warning, version 450 is not yet complete; most version-specific features are pre Linked compute stage: -Missing functionality: shader ballot // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 241 +// Id's are bound by 245 Capability Shader Capability Int64 + Capability Groups + Capability SubgroupBallotKHR + Extension "SPV_KHR_shader_ballot" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 22 24 27 30 33 + EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32 ExecutionMode 4 LocalSize 8 8 1 Source GLSL 450 SourceExtension "GL_ARB_gpu_shader_int64" @@ -22,293 +24,304 @@ Missing functionality: shader ballot Name 4 "main" Name 8 "invocation" Name 10 "gl_SubGroupInvocationARB" - Name 13 "gl_SubGroupSizeARB" - Name 20 "relMask" - Name 22 "gl_SubGroupEqMaskARB" - Name 24 "gl_SubGroupGeMaskARB" - Name 27 "gl_SubGroupGtMaskARB" - Name 30 "gl_SubGroupLeMaskARB" - Name 33 "gl_SubGroupLtMaskARB" - Name 48 "Buffers" - MemberName 48(Buffers) 0 "f4" - MemberName 48(Buffers) 1 "i4" - MemberName 48(Buffers) 2 "u4" - Name 51 "data" - MemberDecorate 48(Buffers) 0 Offset 0 - MemberDecorate 48(Buffers) 1 Offset 16 - MemberDecorate 48(Buffers) 2 Offset 32 - Decorate 48(Buffers) BufferBlock - Decorate 51(data) DescriptorSet 0 - Decorate 51(data) Binding 0 - Decorate 240 BuiltIn WorkgroupSize + Name 12 "gl_SubGroupSizeARB" + Name 19 "relMask" + Name 21 "gl_SubGroupEqMaskARB" + Name 23 "gl_SubGroupGeMaskARB" + Name 26 "gl_SubGroupGtMaskARB" + Name 29 "gl_SubGroupLeMaskARB" + Name 32 "gl_SubGroupLtMaskARB" + Name 52 "Buffers" + MemberName 52(Buffers) 0 "f4" + MemberName 52(Buffers) 1 "i4" + MemberName 52(Buffers) 2 "u4" + Name 55 "data" + Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId + Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize + Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR + Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR + Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR + Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR + Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR + MemberDecorate 52(Buffers) 0 Offset 0 + MemberDecorate 52(Buffers) 1 Offset 16 + MemberDecorate 52(Buffers) 2 Offset 32 + Decorate 52(Buffers) BufferBlock + Decorate 55(data) DescriptorSet 0 + Decorate 55(data) Binding 0 + Decorate 244 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubGroupInvocationARB): 9(ptr) Variable Input - 12: TypePointer UniformConstant 6(int) -13(gl_SubGroupSizeARB): 12(ptr) Variable UniformConstant - 16: 6(int) Constant 4 - 18: TypeInt 64 0 - 19: TypePointer Function 18(int) - 21: TypePointer Input 18(int) -22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input -24(gl_SubGroupGeMaskARB): 21(ptr) Variable Input -27(gl_SubGroupGtMaskARB): 21(ptr) Variable Input -30(gl_SubGroupLeMaskARB): 21(ptr) Variable Input -33(gl_SubGroupLtMaskARB): 21(ptr) Variable Input - 37: TypeBool - 38: 37(bool) ConstantTrue - 43: TypeFloat 32 - 44: TypeVector 43(float) 4 - 45: TypeInt 32 1 - 46: TypeVector 45(int) 4 - 47: TypeVector 6(int) 4 - 48(Buffers): TypeStruct 44(fvec4) 46(ivec4) 47(ivec4) - 49: TypeArray 48(Buffers) 16 - 50: TypePointer Uniform 49 - 51(data): 50(ptr) Variable Uniform - 53: 45(int) Constant 0 - 54: 6(int) Constant 0 - 55: TypePointer Uniform 43(float) - 62: 45(int) Constant 1 - 63: TypeVector 43(float) 2 - 64: TypePointer Uniform 44(fvec4) - 74: 45(int) Constant 2 - 75: TypeVector 43(float) 3 - 85: 45(int) Constant 3 - 92: TypePointer Uniform 45(int) - 99: TypeVector 45(int) 2 - 100: TypePointer Uniform 46(ivec4) - 110: TypeVector 45(int) 3 - 126: TypePointer Uniform 6(int) - 133: TypeVector 6(int) 2 - 134: TypePointer Uniform 47(ivec4) - 144: TypeVector 6(int) 3 - 238: 6(int) Constant 8 - 239: 6(int) Constant 1 - 240: 144(ivec3) ConstantComposite 238 238 239 +12(gl_SubGroupSizeARB): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeInt 64 0 + 18: TypePointer Function 17(int) + 20: TypePointer Input 17(int) +21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input +23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input +26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input +29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input +32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input + 36: TypeBool + 37: 36(bool) ConstantTrue + 38: TypeVector 6(int) 4 + 42: TypeVector 6(int) 2 + 48: TypeFloat 32 + 49: TypeVector 48(float) 4 + 50: TypeInt 32 1 + 51: TypeVector 50(int) 4 + 52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4) + 53: TypeArray 52(Buffers) 15 + 54: TypePointer Uniform 53 + 55(data): 54(ptr) Variable Uniform + 57: 50(int) Constant 0 + 58: 6(int) Constant 0 + 59: TypePointer Uniform 48(float) + 63: 6(int) Constant 3 + 67: 50(int) Constant 1 + 68: TypeVector 48(float) 2 + 69: TypePointer Uniform 49(fvec4) + 79: 50(int) Constant 2 + 80: TypeVector 48(float) 3 + 90: 50(int) Constant 3 + 97: TypePointer Uniform 50(int) + 104: TypeVector 50(int) 2 + 105: TypePointer Uniform 51(ivec4) + 115: TypeVector 50(int) 3 + 131: TypePointer Uniform 6(int) + 138: TypePointer Uniform 38(ivec4) + 148: TypeVector 6(int) 3 + 242: 6(int) Constant 8 + 243: 6(int) Constant 1 + 244: 148(ivec3) ConstantComposite 242 242 243 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function - 20(relMask): 19(ptr) Variable Function + 19(relMask): 18(ptr) Variable Function 11: 6(int) Load 10(gl_SubGroupInvocationARB) - 14: 6(int) Load 13(gl_SubGroupSizeARB) - 15: 6(int) IAdd 11 14 - 17: 6(int) UMod 15 16 - Store 8(invocation) 17 - 23: 18(int) Load 22(gl_SubGroupEqMaskARB) - 25: 18(int) Load 24(gl_SubGroupGeMaskARB) - 26: 18(int) IAdd 23 25 - 28: 18(int) Load 27(gl_SubGroupGtMaskARB) - 29: 18(int) IAdd 26 28 - 31: 18(int) Load 30(gl_SubGroupLeMaskARB) - 32: 18(int) IAdd 29 31 - 34: 18(int) Load 33(gl_SubGroupLtMaskARB) - 35: 18(int) IAdd 32 34 - Store 20(relMask) 35 - 36: 18(int) Load 20(relMask) - 39: 18(int) ExtInst 1(GLSL.std.450) 0(Unknown) 38 - 40: 37(bool) IEqual 36 39 - SelectionMerge 42 None - BranchConditional 40 41 159 - 41: Label - 52: 6(int) Load 8(invocation) - 56: 55(ptr) AccessChain 51(data) 53 53 54 - 57: 43(float) Load 56 - 58: 6(int) Load 8(invocation) - 59: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 57 58 - 60: 55(ptr) AccessChain 51(data) 52 53 54 - Store 60 59 - 61: 6(int) Load 8(invocation) - 65: 64(ptr) AccessChain 51(data) 62 53 - 66: 44(fvec4) Load 65 - 67: 63(fvec2) VectorShuffle 66 66 0 1 - 68: 6(int) Load 8(invocation) - 69: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 67 68 - 70: 64(ptr) AccessChain 51(data) 61 53 - 71: 44(fvec4) Load 70 - 72: 44(fvec4) VectorShuffle 71 69 4 5 2 3 - Store 70 72 + 13: 6(int) Load 12(gl_SubGroupSizeARB) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 22: 17(int) Load 21(gl_SubGroupEqMaskARB) + 24: 17(int) Load 23(gl_SubGroupGeMaskARB) + 25: 17(int) IAdd 22 24 + 27: 17(int) Load 26(gl_SubGroupGtMaskARB) + 28: 17(int) IAdd 25 27 + 30: 17(int) Load 29(gl_SubGroupLeMaskARB) + 31: 17(int) IAdd 28 30 + 33: 17(int) Load 32(gl_SubGroupLtMaskARB) + 34: 17(int) IAdd 31 33 + Store 19(relMask) 34 + 35: 17(int) Load 19(relMask) + 39: 38(ivec4) SubgroupBallotKHR 37 + 40: 6(int) CompositeExtract 39 0 + 41: 6(int) CompositeExtract 39 1 + 43: 42(ivec2) CompositeConstruct 40 41 + 44: 17(int) Bitcast 43 + 45: 36(bool) IEqual 35 44 + SelectionMerge 47 None + BranchConditional 45 46 163 + 46: Label + 56: 6(int) Load 8(invocation) + 60: 59(ptr) AccessChain 55(data) 57 57 58 + 61: 48(float) Load 60 + 62: 6(int) Load 8(invocation) + 64: 48(float) GroupBroadcast 63 61 62 + 65: 59(ptr) AccessChain 55(data) 56 57 58 + Store 65 64 + 66: 6(int) Load 8(invocation) + 70: 69(ptr) AccessChain 55(data) 67 57 + 71: 49(fvec4) Load 70 + 72: 68(fvec2) VectorShuffle 71 71 0 1 73: 6(int) Load 8(invocation) - 76: 64(ptr) AccessChain 51(data) 74 53 - 77: 44(fvec4) Load 76 - 78: 75(fvec3) VectorShuffle 77 77 0 1 2 - 79: 6(int) Load 8(invocation) - 80: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 78 79 - 81: 64(ptr) AccessChain 51(data) 73 53 - 82: 44(fvec4) Load 81 - 83: 44(fvec4) VectorShuffle 82 80 4 5 6 3 - Store 81 83 + 74: 68(fvec2) GroupBroadcast 63 72 73 + 75: 69(ptr) AccessChain 55(data) 66 57 + 76: 49(fvec4) Load 75 + 77: 49(fvec4) VectorShuffle 76 74 4 5 2 3 + Store 75 77 + 78: 6(int) Load 8(invocation) + 81: 69(ptr) AccessChain 55(data) 79 57 + 82: 49(fvec4) Load 81 + 83: 80(fvec3) VectorShuffle 82 82 0 1 2 84: 6(int) Load 8(invocation) - 86: 64(ptr) AccessChain 51(data) 85 53 - 87: 44(fvec4) Load 86 - 88: 6(int) Load 8(invocation) - 89: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 87 88 - 90: 64(ptr) AccessChain 51(data) 84 53 - Store 90 89 - 91: 6(int) Load 8(invocation) - 93: 92(ptr) AccessChain 51(data) 53 62 54 - 94: 45(int) Load 93 - 95: 6(int) Load 8(invocation) - 96: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 94 95 - 97: 92(ptr) AccessChain 51(data) 91 62 54 - Store 97 96 - 98: 6(int) Load 8(invocation) - 101: 100(ptr) AccessChain 51(data) 62 62 - 102: 46(ivec4) Load 101 - 103: 99(ivec2) VectorShuffle 102 102 0 1 - 104: 6(int) Load 8(invocation) - 105: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 103 104 - 106: 100(ptr) AccessChain 51(data) 98 62 - 107: 46(ivec4) Load 106 - 108: 46(ivec4) VectorShuffle 107 105 4 5 2 3 - Store 106 108 + 85: 80(fvec3) GroupBroadcast 63 83 84 + 86: 69(ptr) AccessChain 55(data) 78 57 + 87: 49(fvec4) Load 86 + 88: 49(fvec4) VectorShuffle 87 85 4 5 6 3 + Store 86 88 + 89: 6(int) Load 8(invocation) + 91: 69(ptr) AccessChain 55(data) 90 57 + 92: 49(fvec4) Load 91 + 93: 6(int) Load 8(invocation) + 94: 49(fvec4) GroupBroadcast 63 92 93 + 95: 69(ptr) AccessChain 55(data) 89 57 + Store 95 94 + 96: 6(int) Load 8(invocation) + 98: 97(ptr) AccessChain 55(data) 57 67 58 + 99: 50(int) Load 98 + 100: 6(int) Load 8(invocation) + 101: 50(int) GroupBroadcast 63 99 100 + 102: 97(ptr) AccessChain 55(data) 96 67 58 + Store 102 101 + 103: 6(int) Load 8(invocation) + 106: 105(ptr) AccessChain 55(data) 67 67 + 107: 51(ivec4) Load 106 + 108: 104(ivec2) VectorShuffle 107 107 0 1 109: 6(int) Load 8(invocation) - 111: 100(ptr) AccessChain 51(data) 74 62 - 112: 46(ivec4) Load 111 - 113: 110(ivec3) VectorShuffle 112 112 0 1 2 + 110: 104(ivec2) GroupBroadcast 63 108 109 + 111: 105(ptr) AccessChain 55(data) 103 67 + 112: 51(ivec4) Load 111 + 113: 51(ivec4) VectorShuffle 112 110 4 5 2 3 + Store 111 113 114: 6(int) Load 8(invocation) - 115: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 113 114 - 116: 100(ptr) AccessChain 51(data) 109 62 - 117: 46(ivec4) Load 116 - 118: 46(ivec4) VectorShuffle 117 115 4 5 6 3 - Store 116 118 + 116: 105(ptr) AccessChain 55(data) 79 67 + 117: 51(ivec4) Load 116 + 118: 115(ivec3) VectorShuffle 117 117 0 1 2 119: 6(int) Load 8(invocation) - 120: 100(ptr) AccessChain 51(data) 85 62 - 121: 46(ivec4) Load 120 - 122: 6(int) Load 8(invocation) - 123: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 121 122 - 124: 100(ptr) AccessChain 51(data) 119 62 - Store 124 123 - 125: 6(int) Load 8(invocation) - 127: 126(ptr) AccessChain 51(data) 53 74 54 - 128: 6(int) Load 127 - 129: 6(int) Load 8(invocation) - 130: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 128 129 - 131: 126(ptr) AccessChain 51(data) 125 74 54 - Store 131 130 - 132: 6(int) Load 8(invocation) - 135: 134(ptr) AccessChain 51(data) 62 74 - 136: 47(ivec4) Load 135 - 137: 133(ivec2) VectorShuffle 136 136 0 1 - 138: 6(int) Load 8(invocation) - 139: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 137 138 - 140: 134(ptr) AccessChain 51(data) 132 74 - 141: 47(ivec4) Load 140 - 142: 47(ivec4) VectorShuffle 141 139 4 5 2 3 - Store 140 142 - 143: 6(int) Load 8(invocation) - 145: 134(ptr) AccessChain 51(data) 74 74 - 146: 47(ivec4) Load 145 - 147: 144(ivec3) VectorShuffle 146 146 0 1 2 - 148: 6(int) Load 8(invocation) - 149: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 147 148 - 150: 134(ptr) AccessChain 51(data) 143 74 - 151: 47(ivec4) Load 150 - 152: 47(ivec4) VectorShuffle 151 149 4 5 6 3 - Store 150 152 - 153: 6(int) Load 8(invocation) - 154: 134(ptr) AccessChain 51(data) 85 74 - 155: 47(ivec4) Load 154 - 156: 6(int) Load 8(invocation) - 157: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 155 156 - 158: 134(ptr) AccessChain 51(data) 153 74 - Store 158 157 - Branch 42 - 159: Label + 120: 115(ivec3) GroupBroadcast 63 118 119 + 121: 105(ptr) AccessChain 55(data) 114 67 + 122: 51(ivec4) Load 121 + 123: 51(ivec4) VectorShuffle 122 120 4 5 6 3 + Store 121 123 + 124: 6(int) Load 8(invocation) + 125: 105(ptr) AccessChain 55(data) 90 67 + 126: 51(ivec4) Load 125 + 127: 6(int) Load 8(invocation) + 128: 51(ivec4) GroupBroadcast 63 126 127 + 129: 105(ptr) AccessChain 55(data) 124 67 + Store 129 128 + 130: 6(int) Load 8(invocation) + 132: 131(ptr) AccessChain 55(data) 57 79 58 + 133: 6(int) Load 132 + 134: 6(int) Load 8(invocation) + 135: 6(int) GroupBroadcast 63 133 134 + 136: 131(ptr) AccessChain 55(data) 130 79 58 + Store 136 135 + 137: 6(int) Load 8(invocation) + 139: 138(ptr) AccessChain 55(data) 67 79 + 140: 38(ivec4) Load 139 + 141: 42(ivec2) VectorShuffle 140 140 0 1 + 142: 6(int) Load 8(invocation) + 143: 42(ivec2) GroupBroadcast 63 141 142 + 144: 138(ptr) AccessChain 55(data) 137 79 + 145: 38(ivec4) Load 144 + 146: 38(ivec4) VectorShuffle 145 143 4 5 2 3 + Store 144 146 + 147: 6(int) Load 8(invocation) + 149: 138(ptr) AccessChain 55(data) 79 79 + 150: 38(ivec4) Load 149 + 151: 148(ivec3) VectorShuffle 150 150 0 1 2 + 152: 6(int) Load 8(invocation) + 153: 148(ivec3) GroupBroadcast 63 151 152 + 154: 138(ptr) AccessChain 55(data) 147 79 + 155: 38(ivec4) Load 154 + 156: 38(ivec4) VectorShuffle 155 153 4 5 6 3 + Store 154 156 + 157: 6(int) Load 8(invocation) + 158: 138(ptr) AccessChain 55(data) 90 79 + 159: 38(ivec4) Load 158 160: 6(int) Load 8(invocation) - 161: 55(ptr) AccessChain 51(data) 53 53 54 - 162: 43(float) Load 161 - 163: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 162 - 164: 55(ptr) AccessChain 51(data) 160 53 54 - Store 164 163 - 165: 6(int) Load 8(invocation) - 166: 64(ptr) AccessChain 51(data) 62 53 - 167: 44(fvec4) Load 166 - 168: 63(fvec2) VectorShuffle 167 167 0 1 - 169: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 168 - 170: 64(ptr) AccessChain 51(data) 165 53 - 171: 44(fvec4) Load 170 - 172: 44(fvec4) VectorShuffle 171 169 4 5 2 3 - Store 170 172 - 173: 6(int) Load 8(invocation) - 174: 64(ptr) AccessChain 51(data) 74 53 - 175: 44(fvec4) Load 174 - 176: 75(fvec3) VectorShuffle 175 175 0 1 2 - 177: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 176 - 178: 64(ptr) AccessChain 51(data) 173 53 - 179: 44(fvec4) Load 178 - 180: 44(fvec4) VectorShuffle 179 177 4 5 6 3 - Store 178 180 - 181: 6(int) Load 8(invocation) - 182: 64(ptr) AccessChain 51(data) 85 53 - 183: 44(fvec4) Load 182 - 184: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 183 - 185: 64(ptr) AccessChain 51(data) 181 53 - Store 185 184 - 186: 6(int) Load 8(invocation) - 187: 92(ptr) AccessChain 51(data) 53 62 54 - 188: 45(int) Load 187 - 189: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 188 - 190: 92(ptr) AccessChain 51(data) 186 62 54 - Store 190 189 - 191: 6(int) Load 8(invocation) - 192: 100(ptr) AccessChain 51(data) 62 62 - 193: 46(ivec4) Load 192 - 194: 99(ivec2) VectorShuffle 193 193 0 1 - 195: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 194 - 196: 100(ptr) AccessChain 51(data) 191 62 - 197: 46(ivec4) Load 196 - 198: 46(ivec4) VectorShuffle 197 195 4 5 2 3 - Store 196 198 - 199: 6(int) Load 8(invocation) - 200: 100(ptr) AccessChain 51(data) 74 62 - 201: 46(ivec4) Load 200 - 202: 110(ivec3) VectorShuffle 201 201 0 1 2 - 203: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 202 - 204: 100(ptr) AccessChain 51(data) 199 62 - 205: 46(ivec4) Load 204 - 206: 46(ivec4) VectorShuffle 205 203 4 5 6 3 - Store 204 206 - 207: 6(int) Load 8(invocation) - 208: 100(ptr) AccessChain 51(data) 85 62 - 209: 46(ivec4) Load 208 - 210: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 209 - 211: 100(ptr) AccessChain 51(data) 207 62 - Store 211 210 - 212: 6(int) Load 8(invocation) - 213: 126(ptr) AccessChain 51(data) 53 74 54 - 214: 6(int) Load 213 - 215: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 214 - 216: 126(ptr) AccessChain 51(data) 212 74 54 - Store 216 215 - 217: 6(int) Load 8(invocation) - 218: 134(ptr) AccessChain 51(data) 62 74 - 219: 47(ivec4) Load 218 - 220: 133(ivec2) VectorShuffle 219 219 0 1 - 221: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 220 - 222: 134(ptr) AccessChain 51(data) 217 74 - 223: 47(ivec4) Load 222 - 224: 47(ivec4) VectorShuffle 223 221 4 5 2 3 - Store 222 224 - 225: 6(int) Load 8(invocation) - 226: 134(ptr) AccessChain 51(data) 74 74 - 227: 47(ivec4) Load 226 - 228: 144(ivec3) VectorShuffle 227 227 0 1 2 - 229: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 228 - 230: 134(ptr) AccessChain 51(data) 225 74 - 231: 47(ivec4) Load 230 - 232: 47(ivec4) VectorShuffle 231 229 4 5 6 3 - Store 230 232 - 233: 6(int) Load 8(invocation) - 234: 134(ptr) AccessChain 51(data) 85 74 - 235: 47(ivec4) Load 234 - 236: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 235 - 237: 134(ptr) AccessChain 51(data) 233 74 - Store 237 236 - Branch 42 - 42: Label + 161: 38(ivec4) GroupBroadcast 63 159 160 + 162: 138(ptr) AccessChain 55(data) 157 79 + Store 162 161 + Branch 47 + 163: Label + 164: 6(int) Load 8(invocation) + 165: 59(ptr) AccessChain 55(data) 57 57 58 + 166: 48(float) Load 165 + 167: 48(float) SubgroupFirstInvocationKHR 166 + 168: 59(ptr) AccessChain 55(data) 164 57 58 + Store 168 167 + 169: 6(int) Load 8(invocation) + 170: 69(ptr) AccessChain 55(data) 67 57 + 171: 49(fvec4) Load 170 + 172: 68(fvec2) VectorShuffle 171 171 0 1 + 173: 68(fvec2) SubgroupFirstInvocationKHR 172 + 174: 69(ptr) AccessChain 55(data) 169 57 + 175: 49(fvec4) Load 174 + 176: 49(fvec4) VectorShuffle 175 173 4 5 2 3 + Store 174 176 + 177: 6(int) Load 8(invocation) + 178: 69(ptr) AccessChain 55(data) 79 57 + 179: 49(fvec4) Load 178 + 180: 80(fvec3) VectorShuffle 179 179 0 1 2 + 181: 80(fvec3) SubgroupFirstInvocationKHR 180 + 182: 69(ptr) AccessChain 55(data) 177 57 + 183: 49(fvec4) Load 182 + 184: 49(fvec4) VectorShuffle 183 181 4 5 6 3 + Store 182 184 + 185: 6(int) Load 8(invocation) + 186: 69(ptr) AccessChain 55(data) 90 57 + 187: 49(fvec4) Load 186 + 188: 49(fvec4) SubgroupFirstInvocationKHR 187 + 189: 69(ptr) AccessChain 55(data) 185 57 + Store 189 188 + 190: 6(int) Load 8(invocation) + 191: 97(ptr) AccessChain 55(data) 57 67 58 + 192: 50(int) Load 191 + 193: 50(int) SubgroupFirstInvocationKHR 192 + 194: 97(ptr) AccessChain 55(data) 190 67 58 + Store 194 193 + 195: 6(int) Load 8(invocation) + 196: 105(ptr) AccessChain 55(data) 67 67 + 197: 51(ivec4) Load 196 + 198: 104(ivec2) VectorShuffle 197 197 0 1 + 199: 104(ivec2) SubgroupFirstInvocationKHR 198 + 200: 105(ptr) AccessChain 55(data) 195 67 + 201: 51(ivec4) Load 200 + 202: 51(ivec4) VectorShuffle 201 199 4 5 2 3 + Store 200 202 + 203: 6(int) Load 8(invocation) + 204: 105(ptr) AccessChain 55(data) 79 67 + 205: 51(ivec4) Load 204 + 206: 115(ivec3) VectorShuffle 205 205 0 1 2 + 207: 115(ivec3) SubgroupFirstInvocationKHR 206 + 208: 105(ptr) AccessChain 55(data) 203 67 + 209: 51(ivec4) Load 208 + 210: 51(ivec4) VectorShuffle 209 207 4 5 6 3 + Store 208 210 + 211: 6(int) Load 8(invocation) + 212: 105(ptr) AccessChain 55(data) 90 67 + 213: 51(ivec4) Load 212 + 214: 51(ivec4) SubgroupFirstInvocationKHR 213 + 215: 105(ptr) AccessChain 55(data) 211 67 + Store 215 214 + 216: 6(int) Load 8(invocation) + 217: 131(ptr) AccessChain 55(data) 57 79 58 + 218: 6(int) Load 217 + 219: 6(int) SubgroupFirstInvocationKHR 218 + 220: 131(ptr) AccessChain 55(data) 216 79 58 + Store 220 219 + 221: 6(int) Load 8(invocation) + 222: 138(ptr) AccessChain 55(data) 67 79 + 223: 38(ivec4) Load 222 + 224: 42(ivec2) VectorShuffle 223 223 0 1 + 225: 42(ivec2) SubgroupFirstInvocationKHR 224 + 226: 138(ptr) AccessChain 55(data) 221 79 + 227: 38(ivec4) Load 226 + 228: 38(ivec4) VectorShuffle 227 225 4 5 2 3 + Store 226 228 + 229: 6(int) Load 8(invocation) + 230: 138(ptr) AccessChain 55(data) 79 79 + 231: 38(ivec4) Load 230 + 232: 148(ivec3) VectorShuffle 231 231 0 1 2 + 233: 148(ivec3) SubgroupFirstInvocationKHR 232 + 234: 138(ptr) AccessChain 55(data) 229 79 + 235: 38(ivec4) Load 234 + 236: 38(ivec4) VectorShuffle 235 233 4 5 6 3 + Store 234 236 + 237: 6(int) Load 8(invocation) + 238: 138(ptr) AccessChain 55(data) 90 79 + 239: 38(ivec4) Load 238 + 240: 38(ivec4) SubgroupFirstInvocationKHR 239 + 241: 138(ptr) AccessChain 55(data) 237 79 + Store 241 240 + Branch 47 + 47: Label Return FunctionEnd diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 6d2e9c07..9578d454 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -3862,7 +3862,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("readInvocationARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setFunctionExtensions("readFirstInvocationARB", 1, &E_GL_ARB_shader_ballot); - BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); @@ -3870,6 +3869,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); + if (spvVersion.vulkan >= 100) + // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan + SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); + symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); From e0b9debda2ee0815d3556c72907246b6d1a0b6eb Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 16 Sep 2016 13:26:37 -0600 Subject: [PATCH 146/217] Flatten uniform arrays This checkin adds a --flatten-uniform-arrays option which can break uniform arrays of samplers, textures, or UBOs up into individual scalars named (e.g) myarray[0], myarray[1], etc. These appear as individual linkage objects. Code notes: - shouldFlatten internally calls shouldFlattenIO, and shouldFlattenUniform, but is the only flattening query directly called. - flattenVariable will handle structs or arrays (but not yet arrayed structs; this is tested an an error is generated). - There's some error checking around unhandled situations. E.g, flattening uniform arrays with initializer lists is not implemented. - This piggybacks on as much of the existing mechanism for struct flattening as it can. E.g, it uses the same flattenMap, and the same flattenAccess() method. - handleAssign() has been generalized to cope with either structs or arrays. - Extended test infrastructure to test flattening ability. --- StandAlone/StandAlone.cpp | 13 + Test/baseResults/hlsl.array.flatten.frag.out | 588 ++++++++++++++++++ Test/hlsl.array.flatten.frag | 38 ++ glslang/MachineIndependent/Intermediate.cpp | 5 + glslang/MachineIndependent/ShaderLang.cpp | 2 + .../MachineIndependent/localintermediate.h | 6 +- glslang/Public/ShaderLang.h | 1 + gtests/Hlsl.FromFile.cpp | 18 + gtests/TestFixture.h | 31 +- hlsl/hlslParseHelper.cpp | 204 ++++-- hlsl/hlslParseHelper.h | 12 +- 11 files changed, 872 insertions(+), 46 deletions(-) create mode 100644 Test/baseResults/hlsl.array.flatten.frag.out create mode 100644 Test/hlsl.array.flatten.frag diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 063e416d..30af4fe4 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -81,6 +81,7 @@ enum TOptions { EOptionReadHlsl = (1 << 17), EOptionCascadingErrors = (1 << 18), EOptionAutoMapBindings = (1 << 19), + EOptionFlattenUniformArrays = (1 << 20), }; // @@ -285,6 +286,10 @@ void ProcessArguments(int argc, char* argv[]) lowerword == "auto-map-binding" || lowerword == "amb") { Options |= EOptionAutoMapBindings; + } else if (lowerword == "flatten-uniform-arrays" || // synonyms + lowerword == "flatten-uniform-array" || + lowerword == "fua") { + Options |= EOptionFlattenUniformArrays; } else { usage(); } @@ -407,6 +412,10 @@ void ProcessArguments(int argc, char* argv[]) // -o or -x makes no sense if there is no target binary if (binaryFileName && (Options & EOptionSpv) == 0) Error("no binary generation requested (e.g., -V)"); + + if ((Options & EOptionFlattenUniformArrays) != 0 && + (Options & EOptionReadHlsl) == 0) + Error("uniform array flattening only valid when compiling HLSL source."); } // @@ -532,6 +541,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); + shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); if (Options & EOptionAutoMapBindings) shader->setAutoMapBindings(true); @@ -930,6 +940,9 @@ void usage() " --auto-map-bindings automatically bind uniform variables without\n" " explicit bindings.\n" " --amb synonym for --auto-map-bindings\n" + "\n" + " --flatten-uniform-arrays flatten uniform array references to scalars\n" + " --fua synonym for --flatten-uniform-arrays\n" ); exit(EFailUsage); diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out new file mode 100644 index 00000000..a3752251 --- /dev/null +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -0,0 +1,588 @@ +hlsl.array.flatten.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (global 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (global 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (temp texture1D) +0:? 'g_samp[1]' (temp sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:? Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:? Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:? Sequence +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 0 (const int) +0:? 'g_floats[0]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 1 (const int) +0:? 'g_floats[1]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 2 (const int) +0:? 'g_floats[2]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 3 (const int) +0:? 'g_floats[3]' (uniform float) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (global 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:? Comma (temp 3-element array of texture1D) +0:? Sequence +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Comma (temp 3-element array of sampler) +0:? Sequence +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'g_mats[0]' (uniform 3X3 matrix of float) +0:? 'g_mats[1]' (uniform 3X3 matrix of float) +0:? 'g_mats[2]' (uniform 3X3 matrix of float) +0:? 'g_mats[3]' (uniform 3X3 matrix of float) +0:? 'g_mats_explicit[0]' (layout(binding=10 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[1]' (layout(binding=11 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[2]' (layout(binding=12 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[3]' (layout(binding=13 ) uniform 3X3 matrix of float) +0:? 'g_floats[0]' (uniform float) +0:? 'g_floats[1]' (uniform float) +0:? 'g_floats[2]' (uniform float) +0:? 'g_floats[3]' (uniform float) +0:? 'not_flattened_a' (global 5-element array of int) +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (global 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (global 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (temp texture1D) +0:? 'g_samp[1]' (temp sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (global 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:? Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:? Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:? Sequence +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 0 (const int) +0:? 'g_floats[0]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 1 (const int) +0:? 'g_floats[1]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 2 (const int) +0:? 'g_floats[2]' (uniform float) +0:35 move second child to first child (temp float) +0:35 direct index (temp float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 Constant: +0:35 3 (const int) +0:? 'g_floats[3]' (uniform float) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (global 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:? Comma (temp 3-element array of texture1D) +0:? Sequence +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:? move second child to first child (temp texture1D) +0:? direct index (temp texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Constant: +0:? 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'aggShadow' (temp 3-element array of texture1D) +0:? Comma (temp 3-element array of sampler) +0:? Sequence +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:? move second child to first child (temp sampler) +0:? direct index (temp sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Constant: +0:? 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:? 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'g_mats[0]' (uniform 3X3 matrix of float) +0:? 'g_mats[1]' (uniform 3X3 matrix of float) +0:? 'g_mats[2]' (uniform 3X3 matrix of float) +0:? 'g_mats[3]' (uniform 3X3 matrix of float) +0:? 'g_mats_explicit[0]' (layout(binding=10 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[1]' (layout(binding=11 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[2]' (layout(binding=12 ) uniform 3X3 matrix of float) +0:? 'g_mats_explicit[3]' (layout(binding=13 ) uniform 3X3 matrix of float) +0:? 'g_floats[0]' (uniform float) +0:? 'g_floats[1]' (uniform float) +0:? 'g_floats[2]' (uniform float) +0:? 'g_floats[3]' (uniform float) +0:? 'not_flattened_a' (global 5-element array of int) +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 128 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 93 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "TestFn1(" + Name 22 "TestFn2(t11[3];p1[3];" + Name 20 "l_tex" + Name 21 "l_samp" + Name 28 "not_flattened_a" + Name 36 "g_tex[1]" + Name 39 "g_samp[1]" + Name 55 "local_sampler_array" + Name 57 "g_samp[0]" + Name 62 "g_samp[2]" + Name 65 "local_texture_array" + Name 66 "g_tex[0]" + Name 71 "g_tex[2]" + Name 77 "local_float_array" + Name 79 "g_floats[0]" + Name 83 "g_floats[1]" + Name 86 "g_floats[2]" + Name 89 "g_floats[3]" + Name 93 "color" + Name 95 "aggShadow" + Name 102 "aggShadow" + Name 111 "g_tex_explicit[0]" + Name 112 "g_tex_explicit[1]" + Name 113 "g_tex_explicit[2]" + Name 114 "g_samp_explicit[0]" + Name 115 "g_samp_explicit[1]" + Name 116 "g_samp_explicit[2]" + Name 120 "g_mats[0]" + Name 121 "g_mats[1]" + Name 122 "g_mats[2]" + Name 123 "g_mats[3]" + Name 124 "g_mats_explicit[0]" + Name 125 "g_mats_explicit[1]" + Name 126 "g_mats_explicit[2]" + Name 127 "g_mats_explicit[3]" + Decorate 57(g_samp[0]) DescriptorSet 0 + Decorate 62(g_samp[2]) DescriptorSet 0 + Decorate 66(g_tex[0]) DescriptorSet 0 + Decorate 71(g_tex[2]) DescriptorSet 0 + Decorate 93(color) Location 0 + Decorate 111(g_tex_explicit[0]) DescriptorSet 0 + Decorate 111(g_tex_explicit[0]) Binding 1 + Decorate 112(g_tex_explicit[1]) DescriptorSet 0 + Decorate 112(g_tex_explicit[1]) Binding 2 + Decorate 113(g_tex_explicit[2]) DescriptorSet 0 + Decorate 113(g_tex_explicit[2]) Binding 3 + Decorate 114(g_samp_explicit[0]) DescriptorSet 0 + Decorate 114(g_samp_explicit[0]) Binding 5 + Decorate 115(g_samp_explicit[1]) DescriptorSet 0 + Decorate 115(g_samp_explicit[1]) Binding 6 + Decorate 116(g_samp_explicit[2]) DescriptorSet 0 + Decorate 116(g_samp_explicit[2]) Binding 7 + Decorate 124(g_mats_explicit[0]) Binding 10 + Decorate 125(g_mats_explicit[1]) Binding 11 + Decorate 126(g_mats_explicit[2]) Binding 12 + Decorate 127(g_mats_explicit[3]) Binding 13 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 1D sampled format:Unknown + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 11 13 + 15: TypePointer UniformConstant 14 + 16: TypeSampler + 17: TypeArray 16 13 + 18: TypePointer UniformConstant 17 + 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) + 24: TypeInt 32 1 + 25: 12(int) Constant 5 + 26: TypeArray 24(int) 25 + 27: TypePointer Private 26 +28(not_flattened_a): 27(ptr) Variable Private + 29: 24(int) Constant 1 + 30: 24(int) Constant 2 + 31: 24(int) Constant 3 + 32: 24(int) Constant 4 + 33: 24(int) Constant 5 + 34: 26 ConstantComposite 29 30 31 32 33 + 35: TypePointer UniformConstant 11 + 36(g_tex[1]): 35(ptr) Variable UniformConstant + 38: TypePointer UniformConstant 16 + 39(g_samp[1]): 38(ptr) Variable UniformConstant + 41: TypeSampledImage 11 + 43: 6(float) Constant 1045220557 +55(local_sampler_array): 18(ptr) Variable UniformConstant + 56: 24(int) Constant 0 + 57(g_samp[0]): 38(ptr) Variable UniformConstant + 62(g_samp[2]): 38(ptr) Variable UniformConstant +65(local_texture_array): 15(ptr) Variable UniformConstant + 66(g_tex[0]): 35(ptr) Variable UniformConstant + 71(g_tex[2]): 35(ptr) Variable UniformConstant + 74: 12(int) Constant 4 + 75: TypeArray 6(float) 74 + 76: TypePointer Function 75 + 78: TypePointer UniformConstant 6(float) + 79(g_floats[0]): 78(ptr) Variable UniformConstant + 81: TypePointer Function 6(float) + 83(g_floats[1]): 78(ptr) Variable UniformConstant + 86(g_floats[2]): 78(ptr) Variable UniformConstant + 89(g_floats[3]): 78(ptr) Variable UniformConstant + 92: TypePointer Output 7(fvec4) + 93(color): 92(ptr) Variable Output + 95(aggShadow): 15(ptr) Variable UniformConstant + 102(aggShadow): 18(ptr) Variable UniformConstant +111(g_tex_explicit[0]): 35(ptr) Variable UniformConstant +112(g_tex_explicit[1]): 35(ptr) Variable UniformConstant +113(g_tex_explicit[2]): 35(ptr) Variable UniformConstant +114(g_samp_explicit[0]): 38(ptr) Variable UniformConstant +115(g_samp_explicit[1]): 38(ptr) Variable UniformConstant +116(g_samp_explicit[2]): 38(ptr) Variable UniformConstant + 117: TypeVector 6(float) 3 + 118: TypeMatrix 117(fvec3) 3 + 119: TypePointer UniformConstant 118 + 120(g_mats[0]): 119(ptr) Variable UniformConstant + 121(g_mats[1]): 119(ptr) Variable UniformConstant + 122(g_mats[2]): 119(ptr) Variable UniformConstant + 123(g_mats[3]): 119(ptr) Variable UniformConstant +124(g_mats_explicit[0]): 119(ptr) Variable UniformConstant +125(g_mats_explicit[1]): 119(ptr) Variable UniformConstant +126(g_mats_explicit[2]): 119(ptr) Variable UniformConstant +127(g_mats_explicit[3]): 119(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +77(local_float_array): 76(ptr) Variable Function + Store 28(not_flattened_a) 34 + 58: 16 Load 57(g_samp[0]) + 59: 38(ptr) AccessChain 55(local_sampler_array) 56 + Store 59 58 + 60: 16 Load 39(g_samp[1]) + 61: 38(ptr) AccessChain 55(local_sampler_array) 29 + Store 61 60 + 63: 16 Load 62(g_samp[2]) + 64: 38(ptr) AccessChain 55(local_sampler_array) 30 + Store 64 63 + 67: 11 Load 66(g_tex[0]) + 68: 35(ptr) AccessChain 65(local_texture_array) 56 + Store 68 67 + 69: 11 Load 36(g_tex[1]) + 70: 35(ptr) AccessChain 65(local_texture_array) 29 + Store 70 69 + 72: 11 Load 71(g_tex[2]) + 73: 35(ptr) AccessChain 65(local_texture_array) 30 + Store 73 72 + 80: 6(float) Load 79(g_floats[0]) + 82: 81(ptr) AccessChain 77(local_float_array) 56 + Store 82 80 + 84: 6(float) Load 83(g_floats[1]) + 85: 81(ptr) AccessChain 77(local_float_array) 29 + Store 85 84 + 87: 6(float) Load 86(g_floats[2]) + 88: 81(ptr) AccessChain 77(local_float_array) 30 + Store 88 87 + 90: 6(float) Load 89(g_floats[3]) + 91: 81(ptr) AccessChain 77(local_float_array) 31 + Store 91 90 + 94: 7(fvec4) FunctionCall 9(TestFn1() + 96: 11 Load 66(g_tex[0]) + 97: 35(ptr) AccessChain 95(aggShadow) 56 + Store 97 96 + 98: 11 Load 36(g_tex[1]) + 99: 35(ptr) AccessChain 95(aggShadow) 29 + Store 99 98 + 100: 11 Load 71(g_tex[2]) + 101: 35(ptr) AccessChain 95(aggShadow) 30 + Store 101 100 + 103: 16 Load 57(g_samp[0]) + 104: 38(ptr) AccessChain 102(aggShadow) 56 + Store 104 103 + 105: 16 Load 39(g_samp[1]) + 106: 38(ptr) AccessChain 102(aggShadow) 29 + Store 106 105 + 107: 16 Load 62(g_samp[2]) + 108: 38(ptr) AccessChain 102(aggShadow) 30 + Store 108 107 + 109: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 95(aggShadow) 102(aggShadow) + 110: 7(fvec4) FAdd 94 109 + Store 93(color) 110 + Return + FunctionEnd + 9(TestFn1(): 7(fvec4) Function None 8 + 10: Label + 37: 11 Load 36(g_tex[1]) + 40: 16 Load 39(g_samp[1]) + 42: 41 SampledImage 37 40 + 44: 7(fvec4) ImageSampleImplicitLod 42 43 + ReturnValue 44 + FunctionEnd +22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19 + 20(l_tex): 15(ptr) FunctionParameter + 21(l_samp): 18(ptr) FunctionParameter + 23: Label + 47: 35(ptr) AccessChain 20(l_tex) 30 + 48: 11 Load 47 + 49: 38(ptr) AccessChain 21(l_samp) 30 + 50: 16 Load 49 + 51: 41 SampledImage 48 50 + 52: 7(fvec4) ImageSampleImplicitLod 51 43 + ReturnValue 52 + FunctionEnd diff --git a/Test/hlsl.array.flatten.frag b/Test/hlsl.array.flatten.frag new file mode 100644 index 00000000..b243bec2 --- /dev/null +++ b/Test/hlsl.array.flatten.frag @@ -0,0 +1,38 @@ + +// uniform Texture1D g_tex3[3][2]; // TODO: legal in HLSL, but we don't handle it yet. + +uniform Texture1D g_tex[3]; +uniform Texture1D g_tex_explicit[3] : register(t1); + +SamplerState g_samp[3]; +SamplerState g_samp_explicit[3] : register(s5); + +uniform float3x3 g_mats[4]; +uniform float3x3 g_mats_explicit[4] : register(b10); +uniform float g_floats[4]; + +// uniform float g_floats[4] = { 10, 11, 12, 13 }; // TODO: ... add when initializer lists can be flattened. + +float4 TestFn1() +{ + return g_tex[1].Sample(g_samp[1], 0.2); +} + +float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) +{ + return l_tex[2].Sample(l_samp[2], 0.2); +} + +int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +void main(out PS_OUTPUT ps_output) +{ + // test flattening for local assignment initialization + SamplerState local_sampler_array[3] = g_samp; + Texture1D local_texture_array[3] = g_tex; + float local_float_array[4] = g_floats; + + ps_output.color = TestFn1() + TestFn2(g_tex, g_samp); +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 677cef39..a0bee74e 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -424,6 +424,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // opaque types can be passed to functions if (op == EOpFunction) break; + + // HLSL can assign samplers directly (no constructor) + if (source == EShSourceHlsl && node->getBasicType() == EbtSampler) + break; + // samplers can get assigned via a sampler constructor // (well, not yet, but code in the rest of this function is ready for it) if (node->getBasicType() == EbtSampler && op == EOpAssign && diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index dc0c01b6..ffd6b00c 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1493,6 +1493,8 @@ void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShift void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } +void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } + // // Turn the shader strings into a parse tree in the TIntermediate. // diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 4de811cf..14b8a00a 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -145,7 +145,8 @@ public: shiftSamplerBinding(0), shiftTextureBinding(0), shiftUboBinding(0), - autoMapBindings(false) + autoMapBindings(false), + flattenUniformArrays(false) { localSize[0] = 1; localSize[1] = 1; @@ -176,6 +177,8 @@ public: unsigned int getShiftUboBinding() const { return shiftUboBinding; } void setAutoMapBindings(bool map) { autoMapBindings = map; } bool getAutoMapBindings() const { return autoMapBindings; } + void setFlattenUniformArrays(bool flatten) { flattenUniformArrays = flatten; } + bool getFlattenUniformArrays() const { return flattenUniformArrays; } void setVersion(int v) { version = v; } int getVersion() const { return version; } @@ -385,6 +388,7 @@ protected: unsigned int shiftTextureBinding; unsigned int shiftUboBinding; bool autoMapBindings; + bool flattenUniformArrays; EProfile profile; int version; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 80605ba3..496e6d4d 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -304,6 +304,7 @@ public: void setShiftTextureBinding(unsigned int base); void setShiftUboBinding(unsigned int base); void setAutoMapBindings(bool map); + void setFlattenUniformArrays(bool flatten); // Interface to #include handlers. // diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 01cc0323..55450a74 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -58,6 +58,7 @@ std::string FileNameAsCustomTestSuffix( } using HlslCompileTest = GlslangTest<::testing::TestWithParam>; +using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam>; // Compiling HLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate both AST and SPIR-V. @@ -68,6 +69,13 @@ TEST_P(HlslCompileTest, FromFile) Target::BothASTAndSpv, GetParam().entryPoint); } +TEST_P(HlslCompileAndFlattenTest, FromFile) +{ + loadFileCompileFlattenUniformsAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::BothASTAndSpv, GetParam().entryPoint); +} + // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, @@ -181,5 +189,15 @@ INSTANTIATE_TEST_CASE_P( ); // clang-format on +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslCompileAndFlattenTest, + ::testing::ValuesIn(std::vector{ + {"hlsl.array.flatten.frag", "main"}, + }), + FileNameAsCustomTestSuffix +); + +// clang-format on } // anonymous namespace } // namespace glslangtest diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 47e2703a..4b364c4b 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -204,11 +204,14 @@ public: // the result and returns disassembly text. GlslangResult compileAndLink( const std::string shaderName, const std::string& code, - const std::string& entryPointName, EShMessages controls) + const std::string& entryPointName, EShMessages controls, + bool flattenUniformArrays = false) { const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); glslang::TShader shader(kind); + shader.setFlattenUniformArrays(flattenUniformArrays); + bool success = compile(&shader, code, entryPointName, controls); glslang::TProgram program; @@ -395,6 +398,32 @@ public: expectedOutputFname); } + void loadFileCompileFlattenUniformsAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName="") + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, true); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + void loadFileCompileIoMapAndCheck(const std::string& testDir, const std::string& testName, Source source, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5af79040..d5db6b23 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -403,12 +403,19 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) handleIoResizeArrayAccess(loc, base); - if (index->getQualifier().storage == EvqConst) { - if (base->getType().isImplicitlySizedArray()) - updateImplicitArraySize(loc, base, indexValue); - result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + if (base->getAsSymbolNode() && shouldFlatten(base->getType())) { + if (index->getQualifier().storage != EvqConst) + error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); + + result = flattenAccess(base, indexValue); } else { - result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + if (index->getQualifier().storage == EvqConst) { + if (base->getType().isImplicitlySizedArray()) + updateImplicitArraySize(loc, base, indexValue); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + } else { + result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + } } } @@ -701,9 +708,9 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; } -// Is this an aggregate that can't be passed down the stack? +// Is this an IO variable that can't be passed down the stack? // E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. -bool HlslParseContext::shouldFlatten(const TType& type) const +bool HlslParseContext::shouldFlattenIO(const TType& type) const { if (! inEntryPoint) return false; @@ -715,6 +722,33 @@ bool HlslParseContext::shouldFlatten(const TType& type) const qualifier == EvqVaryingOut); } +// Is this a uniform array which should be flattened? +bool HlslParseContext::shouldFlattenUniform(const TType& type) const +{ + const TStorageQualifier qualifier = type.getQualifier().storage; + + return type.isArray() && + intermediate.getFlattenUniformArrays() && + qualifier == EvqUniform; +} + +void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) +{ + const TType& type = variable.getType(); + + // Presently, flattening of structure arrays is unimplemented. + // We handle one, or the other. + if (type.isArray() && type.isStruct()) { + error(loc, "cannot flatten structure array", variable.getName().c_str(), ""); + } + + if (type.isStruct()) + flattenStruct(variable); + + if (type.isArray()) + flattenArray(loc, variable); +} + // Figure out the mapping between an aggregate's top members and an // equivalent set of individual variables. // @@ -724,7 +758,7 @@ bool HlslParseContext::shouldFlatten(const TType& type) const // Assumes shouldFlatten() or equivalent was called first. // // TODO: generalize this to arbitrary nesting? -void HlslParseContext::flatten(const TVariable& variable) +void HlslParseContext::flattenStruct(const TVariable& variable) { TVector memberVariables; @@ -742,8 +776,54 @@ void HlslParseContext::flatten(const TVariable& variable) flattenMap[variable.getUniqueId()] = memberVariables; } -// Turn an access into aggregate that was flattened to instead be -// an access to the individual variable the element/member was flattened to. +// Figure out mapping between an array's members and an +// equivalent set of individual variables. +// +// Assumes shouldFlatten() or equivalent was called first. +void HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable) +{ + const TType& type = variable.getType(); + assert(type.isArray()); + + if (type.isImplicitlySizedArray()) + error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), ""); + + if (type.getArraySizes()->getNumDims() != 1) + error(loc, "cannot flatten multi-dimensional array", variable.getName().c_str(), ""); + + const int size = type.getCumulativeArraySize(); + + TVector memberVariables; + + const TType dereferencedType(type, 0); + int binding = type.getQualifier().layoutBinding; + + if (dereferencedType.isStruct() || dereferencedType.isArray()) { + error(loc, "cannot flatten array of aggregate types", variable.getName().c_str(), ""); + } + + for (int element=0; element < size; ++element) { + char elementNumBuf[20]; // sufficient for MAXINT + snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); + const TString memberName = variable.getName() + elementNumBuf; + + TVariable* memberVariable = makeInternalVariable(memberName.c_str(), dereferencedType); + memberVariable->getWritableType().getQualifier() = variable.getType().getQualifier(); + + memberVariable->getWritableType().getQualifier().layoutBinding = binding; + + if (binding != TQualifier::layoutBindingEnd) + ++binding; + + memberVariables.push_back(memberVariable); + intermediate.addSymbolLinkageNode(linkage, *memberVariable); + } + + flattenMap[variable.getUniqueId()] = memberVariables; +} + +// Turn an access into an aggregate that was flattened to instead be +// an access to the individual variable the member was flattened to. // Assumes shouldFlatten() or equivalent was called first. TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) { @@ -864,7 +944,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l remapEntryPointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) - flatten(*entryPointOutput); + flatten(loc, *entryPointOutput); assignLocations(*entryPointOutput); } } else @@ -896,7 +976,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // get IO straightened out if (inEntryPoint) { if (shouldFlatten(*param.type)) - flatten(*variable); + flatten(loc, *variable); assignLocations(*variable); } @@ -1051,40 +1131,68 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); }; - bool flattenLeft = mustFlatten(*left); - bool flattenRight = mustFlatten(*right); + const bool flattenLeft = mustFlatten(*left); + const bool flattenRight = mustFlatten(*right); if (! flattenLeft && ! flattenRight) return intermediate.addAssign(op, left, right, loc); - // If we get here, we are assigning to or from a whole struct that must be - // flattened, so have to do member-by-member assignment: - const auto& members = *left->getType().getStruct(); - const auto getMember = [&](bool flatten, TIntermTyped* node, - const TVector& memberVariables, int member) { - TIntermTyped* subTree; - if (flatten) - subTree = intermediate.addSymbol(*memberVariables[member]); - else { - subTree = intermediate.addIndex(EOpIndexDirectStruct, node, - intermediate.addConstantUnion(member, loc), loc); - subTree->setType(*members[member].type); - } - - return subTree; - }; - + TIntermAggregate* assignList = nullptr; const TVector* leftVariables = nullptr; const TVector* rightVariables = nullptr; + if (flattenLeft) leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second; if (flattenRight) rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second; - TIntermAggregate* assignList = nullptr; - for (int member = 0; member < (int)members.size(); ++member) { - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member); - TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member); - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + + const auto getMember = [&](bool flatten, TIntermTyped* node, + const TVector& memberVariables, int member, + TOperator op, const TType& memberType) { + TIntermTyped* subTree; + if (flatten) + subTree = intermediate.addSymbol(*memberVariables[member]); + else { + subTree = intermediate.addIndex(op, node, intermediate.addConstantUnion(member, loc), loc); + subTree->setType(memberType); + } + + return subTree; + }; + + // Handle struct assignment + if (left->getType().isStruct()) { + // If we get here, we are assigning to or from a whole struct that must be + // flattened, so have to do member-by-member assignment: + const auto& members = *left->getType().getStruct(); + + for (int member = 0; member < (int)members.size(); ++member) { + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member, + EOpIndexDirectStruct, *members[member].type); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, + EOpIndexDirectStruct, *members[member].type); + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + } } + + // Handle array assignment + if (left->getType().isArray()) { + // If we get here, we are assigning to or from a whole array that must be + // flattened, so have to do member-by-member assignment: + + const TType dereferencedType(left->getType(), 0); + const int size = left->getType().getCumulativeArraySize(); + + for (int element=0; element < size; ++element) { + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element, + EOpIndexDirect, dereferencedType); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, + EOpIndexDirect, dereferencedType); + + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + } + } + + assert(assignList != nullptr); assignList->setOperator(EOpSequence); return assignList; @@ -4095,13 +4203,21 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i inheritGlobalDefaults(type.getQualifier()); + bool flattenVar = false; + // Declare the variable if (arraySizes || type.isArray()) { // Arrayness is potentially coming both from the type and from the // variable: "int[] a[];" or just one or the other. // Merge it all to the type, so all arrayness is part of the type. - arrayDimMerge(type, arraySizes); + arrayDimMerge(type, arraySizes); // Safe if there are no arraySizes + declareArray(loc, identifier, type, symbol, newDeclaration); + + flattenVar = shouldFlatten(type); + + if (flattenVar) + flatten(loc, *symbol->getAsVariable()); } else { // non-array case if (! symbol) @@ -4116,6 +4232,9 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i // Deal with initializer TIntermNode* initNode = nullptr; if (symbol && initializer) { + if (flattenVar) + error(loc, "flattened array with initializer list unsupported", identifier.c_str(), ""); + TVariable* variable = symbol->getAsVariable(); if (! variable) { error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); @@ -4124,9 +4243,12 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i initNode = executeInitializer(loc, initializer, variable); } - // see if it's a linker-level object to track - if (newDeclaration && symbolTable.atGlobalLevel()) - intermediate.addSymbolLinkageNode(linkage, *symbol); + // see if it's a linker-level object to track. if it's flattened above, + // that process added linkage objects for the flattened symbols, we don't + // add the aggregate here. + if (!flattenVar) + if (newDeclaration && symbolTable.atGlobalLevel()) + intermediate.addSymbolLinkageNode(linkage, *symbol); return initNode; } @@ -4257,7 +4379,7 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // normal assigning of a value to a variable... specializationCheck(loc, initializer->getType(), "initializer"); TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc); - TIntermNode* initNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc); + TIntermNode* initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer); if (! initNode) assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString()); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 01620883..b7d33237 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -83,9 +83,6 @@ public: TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); - bool shouldFlatten(const TType&) const; - void flatten(const TVariable& variable); - TIntermTyped* flattenAccess(TIntermTyped* base, int member); void assignLocations(TVariable& variable); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); @@ -181,6 +178,15 @@ protected: const char* szExtraInfoFormat, TPrefixType prefix, va_list args); + // Array and struct flattening + bool shouldFlatten(const TType& type) const { return shouldFlattenIO(type) || shouldFlattenUniform(type); } + TIntermTyped* flattenAccess(TIntermTyped* base, int member); + bool shouldFlattenIO(const TType&) const; + bool shouldFlattenUniform(const TType&) const; + void flatten(const TSourceLoc& loc, const TVariable& variable); + void flattenStruct(const TVariable& variable); + void flattenArray(const TSourceLoc& loc, const TVariable& variable); + // Current state of parsing struct TPragma contextPragma; int loopNestingLevel; // 0 if outside all loops From cf43e661251f7797e469a93fa0ecd3e66980eca7 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 22 Sep 2016 14:35:23 -0600 Subject: [PATCH 147/217] Fix defects in uniform array flattening Fix for two defects as follows: - The IO mapping traverser was not setting inVisit, and would skip some AST nodes. Depending on the order of nodes, this could have prevented the binding from showing up in the generated SPIR-V. - If a uniform array was flattened, each of the flattened scalars from the array is still a (now-scalar) uniform. It was being converted to a temporary. --- Test/baseResults/hlsl.array.flatten.frag.out | 10 ++-- .../spv.register.autoassign-2.frag.out | 57 +++++++++++++++++++ Test/spv.register.autoassign-2.frag | 15 +++++ glslang/MachineIndependent/LiveTraverser.h | 4 +- glslang/MachineIndependent/iomapper.cpp | 2 +- gtests/Spv.FromFile.cpp | 9 ++- gtests/TestFixture.h | 10 +++- hlsl/hlslParseHelper.cpp | 21 ++++--- 8 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 Test/baseResults/spv.register.autoassign-2.frag.out create mode 100644 Test/spv.register.autoassign-2.frag diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index a3752251..eedd698f 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -8,8 +8,8 @@ gl_FragCoord origin is upper left 0:18 Branch: Return with expression 0:18 texture (global 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) -0:? 'g_tex[1]' (temp texture1D) -0:? 'g_samp[1]' (temp sampler) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) 0:18 Constant: 0:18 0.200000 0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) @@ -197,8 +197,8 @@ gl_FragCoord origin is upper left 0:18 Branch: Return with expression 0:18 texture (global 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) -0:? 'g_tex[1]' (temp texture1D) -0:? 'g_samp[1]' (temp sampler) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) 0:18 Constant: 0:18 0.200000 0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) @@ -419,6 +419,8 @@ gl_FragCoord origin is upper left Name 125 "g_mats_explicit[1]" Name 126 "g_mats_explicit[2]" Name 127 "g_mats_explicit[3]" + Decorate 36(g_tex[1]) DescriptorSet 0 + Decorate 39(g_samp[1]) DescriptorSet 0 Decorate 57(g_samp[0]) DescriptorSet 0 Decorate 62(g_samp[2]) DescriptorSet 0 Decorate 66(g_tex[0]) DescriptorSet 0 diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out new file mode 100644 index 00000000..038c7f0e --- /dev/null +++ b/Test/baseResults/spv.register.autoassign-2.frag.out @@ -0,0 +1,57 @@ +spv.register.autoassign-2.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 30 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "Color" + Name 12 "g_tScene[0]" + Name 16 "g_tSamp" + Name 24 "g_tScene[1]" + Decorate 9(Color) Location 0 + Decorate 12(g_tScene[0]) DescriptorSet 0 + Decorate 12(g_tScene[0]) Binding 10 + Decorate 16(g_tSamp) DescriptorSet 0 + Decorate 16(g_tSamp) Binding 5 + Decorate 24(g_tScene[1]) DescriptorSet 0 + Decorate 24(g_tScene[1]) Binding 11 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(Color): 8(ptr) Variable Output + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tScene[0]): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_tSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1050253722 + 22: 20(fvec2) ConstantComposite 21 21 + 24(g_tScene[1]): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(g_tScene[0]) + 17: 14 Load 16(g_tSamp) + 19: 18 SampledImage 13 17 + 23: 7(fvec4) ImageSampleImplicitLod 19 22 + 25: 10 Load 24(g_tScene[1]) + 26: 14 Load 16(g_tSamp) + 27: 18 SampledImage 25 26 + 28: 7(fvec4) ImageSampleImplicitLod 27 22 + 29: 7(fvec4) FAdd 23 28 + Store 9(Color) 29 + Return + FunctionEnd diff --git a/Test/spv.register.autoassign-2.frag b/Test/spv.register.autoassign-2.frag new file mode 100644 index 00000000..b943791f --- /dev/null +++ b/Test/spv.register.autoassign-2.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s0); + +Texture2D g_tScene[2] : register(t0); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) + + g_tScene[1].Sample(g_tSamp, 0.3); +} diff --git a/glslang/MachineIndependent/LiveTraverser.h b/glslang/MachineIndependent/LiveTraverser.h index 5a902049..286efe6c 100644 --- a/glslang/MachineIndependent/LiveTraverser.h +++ b/glslang/MachineIndependent/LiveTraverser.h @@ -56,7 +56,9 @@ namespace glslang { class TLiveTraverser : public TIntermTraverser { public: - TLiveTraverser(const TIntermediate& i, bool traverseAll = false) : + TLiveTraverser(const TIntermediate& i, bool traverseAll = false, + bool preVisit = true, bool inVisit = false, bool postVisit = false) : + TIntermTraverser(preVisit, inVisit, postVisit), intermediate(i), traverseAll(traverseAll) { } diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index d02fb5ea..22d97c29 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -74,7 +74,7 @@ class TBindingTraverser : public TLiveTraverser { public: TBindingTraverser(const TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, bool traverseDeadCode = false) : - TLiveTraverser(i, traverseDeadCode), + TLiveTraverser(i, traverseDeadCode, true, true, false), bindingMap(bindingMap), usedBindings(usedBindings) { } diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 5ea46c44..9dd21676 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -48,6 +48,7 @@ struct IoMapData { int baseTextureBinding; int baseUboBinding; bool autoMapBindings; + bool flattenUniforms; }; std::string FileNameAsCustomTestSuffixIoMap( @@ -119,7 +120,8 @@ TEST_P(HlslSemantics, FromFile) GetParam().baseSamplerBinding, GetParam().baseTextureBinding, GetParam().baseUboBinding, - GetParam().autoMapBindings); + GetParam().autoMapBindings, + GetParam().flattenUniforms); } // clang-format off @@ -251,8 +253,9 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, HlslSemantics, ::testing::ValuesIn(std::vector{ - { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true }, - { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false }, + { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, + { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true }, }), FileNameAsCustomTestSuffixIoMap ); diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 4b364c4b..0a7bf76e 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -248,7 +248,8 @@ public: int baseSamplerBinding, int baseTextureBinding, int baseUboBinding, - bool autoMapBindings) + bool autoMapBindings, + bool flattenUniformArrays) { const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); @@ -257,6 +258,7 @@ public: shader.setShiftTextureBinding(baseTextureBinding); shader.setShiftUboBinding(baseUboBinding); shader.setAutoMapBindings(autoMapBindings); + shader.setFlattenUniformArrays(flattenUniformArrays); bool success = compile(&shader, code, entryPointName, controls); @@ -433,7 +435,8 @@ public: int baseSamplerBinding, int baseTextureBinding, int baseUboBinding, - bool autoMapBindings) + bool autoMapBindings, + bool flattenUniformArrays) { const std::string inputFname = testDir + "/" + testName; const std::string expectedOutputFname = @@ -446,7 +449,8 @@ public: const EShMessages controls = DeriveOptions(source, semantics, target); GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, baseSamplerBinding, baseTextureBinding, baseUboBinding, - autoMapBindings); + autoMapBindings, + flattenUniformArrays); // Generate the hybrid output in the way of glslangValidator. std::ostringstream stream; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d5db6b23..470b03f5 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -383,6 +383,7 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, { TIntermTyped* result = nullptr; + bool flattened = false; int indexValue = 0; if (index->getQualifier().storage == EvqConst) { indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); @@ -408,6 +409,7 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); result = flattenAccess(base, indexValue); + flattened = (result != base); } else { if (index->getQualifier().storage == EvqConst) { if (base->getType().isImplicitlySizedArray()) @@ -423,13 +425,18 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, // Insert dummy error-recovery result result = intermediate.addConstantUnion(0.0, EbtFloat, loc); } else { - // Insert valid dereferenced result - TType newType(base->getType(), 0); // dereferenced type - if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) - newType.getQualifier().storage = EvqConst; - else - newType.getQualifier().storage = EvqTemporary; - result->setType(newType); + // If the array reference was flattened, it has the correct type. E.g, if it was + // a uniform array, it was flattened INTO a set of scalar uniforms, not scalar temps. + // In that case, we preserve the qualifiers. + if (!flattened) { + // Insert valid dereferenced result + TType newType(base->getType(), 0); // dereferenced type + if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) + newType.getQualifier().storage = EvqConst; + else + newType.getQualifier().storage = EvqTemporary; + result->setType(newType); + } } return result; From 36876e640831a7f410adddf52d5230f357d12c58 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 23 Sep 2016 22:13:43 +0800 Subject: [PATCH 148/217] SPV: Still have to specify SPIR-V extension for gl_SubGroupSizeARB and gl_SubGroupInvocationARB. --- SPIRV/GlslangToSpv.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 8372dbb8..a6c777c6 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -524,10 +524,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; case glslang::EbvSubGroupSize: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); builder.addCapability(spv::CapabilitySubgroupBallotKHR); return spv::BuiltInSubgroupSize; case glslang::EbvSubGroupInvocation: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); builder.addCapability(spv::CapabilitySubgroupBallotKHR); return spv::BuiltInSubgroupLocalInvocationId; From 10f7fc739cd4501ee18a1ea7db781bdb1de000b4 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 25 Sep 2016 20:25:06 -0600 Subject: [PATCH 149/217] HLSL: Reverse what the driver is told about row/column majorness, matching the row-column reversal. --- Test/baseResults/hlsl.buffer.frag.out | 199 ++++++++++++---------- Test/baseResults/hlsl.layout.frag.out | 36 ++-- Test/baseResults/hlsl.reflection.vert.out | 14 +- Test/hlsl.buffer.frag | 4 + glslang/Include/revision.h | 4 +- hlsl/hlslGrammar.cpp | 4 +- hlsl/hlslParseHelper.cpp | 8 +- 7 files changed, 145 insertions(+), 124 deletions(-) diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 78a8e738..6d7b6105 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -2,40 +2,40 @@ hlsl.buffer.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:26 Function Parameters: -0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:27 Sequence -0:27 move second child to first child (temp 4-component vector of float) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 'input' (layout(location=0 ) in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:27 Constant: -0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:27 Constant: -0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:27 Constant: -0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) -0:27 Branch: Return +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return 0:? Linker Objects -0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -46,46 +46,46 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:26 Function Parameters: -0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:27 Sequence -0:27 move second child to first child (temp 4-component vector of float) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 'input' (layout(location=0 ) in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:27 Constant: -0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:27 Constant: -0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:27 Constant: -0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) -0:27 Branch: Return +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return 0:? Linker Objects -0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 42 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -105,16 +105,20 @@ gl_FragCoord origin is upper left MemberName 28 0 "v3" MemberName 28 1 "i3" Name 30 "" - Name 34 "" - MemberName 34 0 "v4" - MemberName 34 1 "i4" - MemberName 34 2 "f1" - MemberName 34 3 "f3" - MemberName 34 4 "f4" - MemberName 34 5 "f5" - MemberName 34 6 "f6" - MemberName 34 7 "f7" - Name 36 "" + Name 35 "" + MemberName 35 0 "v4" + MemberName 35 1 "i4" + MemberName 35 2 "f1" + MemberName 35 3 "f3" + MemberName 35 4 "f4" + MemberName 35 5 "f5" + MemberName 35 6 "f6" + MemberName 35 7 "f7" + MemberName 35 8 "m1" + MemberName 35 9 "m2" + MemberName 35 10 "m3" + MemberName 35 11 "m4" + Name 37 "" Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 MemberDecorate 13 0 Offset 0 @@ -128,17 +132,29 @@ gl_FragCoord origin is upper left Decorate 28 Block Decorate 30 DescriptorSet 10 Decorate 30 Binding 2 - MemberDecorate 34 0 Offset 16 - MemberDecorate 34 1 Offset 48 - MemberDecorate 34 2 Offset 60 - MemberDecorate 34 3 Offset 64 - MemberDecorate 34 4 Offset 68 - MemberDecorate 34 5 Offset 72 - MemberDecorate 34 6 Offset 76 - MemberDecorate 34 7 Offset 80 - Decorate 34 BufferBlock - Decorate 36 DescriptorSet 0 - Decorate 36 Binding 8 + MemberDecorate 35 0 Offset 16 + MemberDecorate 35 1 Offset 48 + MemberDecorate 35 2 Offset 60 + MemberDecorate 35 3 Offset 64 + MemberDecorate 35 4 Offset 68 + MemberDecorate 35 5 Offset 72 + MemberDecorate 35 6 Offset 76 + MemberDecorate 35 7 Offset 80 + MemberDecorate 35 8 RowMajor + MemberDecorate 35 8 Offset 96 + MemberDecorate 35 8 MatrixStride 16 + MemberDecorate 35 9 ColMajor + MemberDecorate 35 9 Offset 160 + MemberDecorate 35 9 MatrixStride 16 + MemberDecorate 35 10 RowMajor + MemberDecorate 35 10 Offset 208 + MemberDecorate 35 10 MatrixStride 16 + MemberDecorate 35 11 RowMajor + MemberDecorate 35 11 Offset 272 + MemberDecorate 35 11 MatrixStride 16 + Decorate 35 BufferBlock + Decorate 37 DescriptorSet 0 + Decorate 37 Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -159,9 +175,10 @@ gl_FragCoord origin is upper left 28: TypeStruct 7(fvec4) 16(int) 29: TypePointer Uniform 28(struct) 30: 29(ptr) Variable Uniform - 34: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) - 35: TypePointer Uniform 34(struct) - 36: 35(ptr) Variable Uniform + 34: TypeMatrix 7(fvec4) 3 + 35: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 + 36: TypePointer Uniform 35(struct) + 37: 36(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(input) @@ -174,9 +191,9 @@ gl_FragCoord origin is upper left 31: 18(ptr) AccessChain 30 17 32: 7(fvec4) Load 31 33: 7(fvec4) FAdd 27 32 - 37: 18(ptr) AccessChain 36 17 - 38: 7(fvec4) Load 37 - 39: 7(fvec4) FAdd 33 38 - Store 9(@entryPointOutput) 39 + 38: 18(ptr) AccessChain 37 17 + 39: 7(fvec4) Load 38 + 40: 7(fvec4) FAdd 33 39 + Store 9(@entryPointOutput) 40 Return FunctionEnd diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 44553855..938332b7 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -11,24 +11,24 @@ gl_FragCoord origin is upper left 0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float) 0:17 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 Constant: 0:17 0 (const uint) -0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 Constant: 0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 Constant: 0:17 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) -0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) Linked fragment stage: @@ -46,24 +46,24 @@ gl_FragCoord origin is upper left 0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float) 0:17 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 Constant: 0:17 0 (const uint) -0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 Constant: 0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 Constant: 0:17 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) -0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out index b97de159..466b2a6f 100644 --- a/Test/baseResults/hlsl.reflection.vert.out +++ b/Test/baseResults/hlsl.reflection.vert.out @@ -4,16 +4,16 @@ Linked vertex stage: Uniform reflection: -anonMember3: offset 96, type 8b52, size 1, index 0 +anonMember3: offset 80, type 8b52, size 1, index 0 s.a: offset -1, type 1404, size 1, index -1 scalar: offset 12, type 1404, size 1, index 0 m23: offset 16, type 8b67, size 1, index 0 -scalarAfterm23: offset 64, type 1404, size 1, index 0 +scalarAfterm23: offset 48, type 1404, size 1, index 0 c_m23: offset 16, type 8b67, size 1, index 0 -c_scalarAfterm23: offset 64, type 1404, size 1, index 0 -scalarBeforeArray: offset 112, type 1404, size 1, index 0 -floatArray: offset 128, type 1406, size 5, index 0 -scalarAfterArray: offset 208, type 1404, size 1, index 0 +c_scalarAfterm23: offset 48, type 1404, size 1, index 0 +scalarBeforeArray: offset 96, type 1404, size 1, index 0 +floatArray: offset 112, type 1406, size 5, index 0 +scalarAfterArray: offset 192, type 1404, size 1, index 0 memfloat2: offset 48, type 8b50, size 1, index 0 memf1: offset 56, type 1406, size 1, index 0 memf2: offset 60, type 8b56, size 1, index 0 @@ -73,7 +73,7 @@ anonMember1: offset 0, type 8b51, size 1, index 0 uf1: offset -1, type 1406, size 1, index -1 Uniform block reflection: -: offset -1, type ffffffff, size 512, index -1 +: offset -1, type ffffffff, size 496, index -1 Vertex attribute reflection: attributeFloat: offset 0, type 1406, size 0, index 0 diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag index 4e28043a..b93dcd31 100644 --- a/Test/hlsl.buffer.frag +++ b/Test/hlsl.buffer.frag @@ -20,6 +20,10 @@ tbuffer tbufName : register(b8) { float f5 : packoffset(c4.z); float f6 : packoffset(c); float f7; + float3x4 m1; + row_major float3x4 m2; + column_major float3x4 m3; + float3x4 m4; }; float4 PixelShaderFunction(float4 input) : COLOR0 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 0fd06e15..811e161b 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1506" -#define GLSLANG_DATE "21-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1507" +#define GLSLANG_DATE "25-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index d458a882..30d42f10 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -491,10 +491,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) qualifier.sample = true; break; case EHTokRowMajor: - qualifier.layoutMatrix = ElmRowMajor; + qualifier.layoutMatrix = ElmColumnMajor; break; case EHTokColumnMajor: - qualifier.layoutMatrix = ElmColumnMajor; + qualifier.layoutMatrix = ElmRowMajor; break; case EHTokPrecise: qualifier.noContraction = true; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 470b03f5..4afbd924 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -63,11 +63,11 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int linkage = new TIntermAggregate; globalUniformDefaults.clear(); - globalUniformDefaults.layoutMatrix = ElmColumnMajor; + globalUniformDefaults.layoutMatrix = ElmRowMajor; globalUniformDefaults.layoutPacking = ElpStd140; globalBufferDefaults.clear(); - globalBufferDefaults.layoutMatrix = ElmColumnMajor; + globalBufferDefaults.layoutMatrix = ElmRowMajor; globalBufferDefaults.layoutPacking = ElpStd430; globalInputDefaults.clear(); @@ -3624,11 +3624,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { - qualifier.layoutMatrix = ElmColumnMajor; + qualifier.layoutMatrix = ElmRowMajor; return; } if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { - qualifier.layoutMatrix = ElmRowMajor; + qualifier.layoutMatrix = ElmColumnMajor; return; } if (id == "push_constant") { From b707205b0d939ce784d57ec42da663b8ff190f63 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Mon, 26 Sep 2016 15:53:40 +0800 Subject: [PATCH 150/217] SPV: OpGroupBroadcast is unable to handle vector operand. --- SPIRV/GlslangToSpv.cpp | 43 +- Test/baseResults/spv.shaderBallot.comp.out | 438 ++++++++++++--------- 2 files changed, 272 insertions(+), 209 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index a6c777c6..c79b6c21 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -156,9 +156,7 @@ protected: spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); -#ifdef AMD_EXTENSIONS - spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand); -#endif + spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands); spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); @@ -4029,6 +4027,8 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op case glslang::EOpReadInvocation: opCode = spv::OpGroupBroadcast; + if (builder.isVectorType(typeId)) + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; case glslang::EOpReadFirstInvocation: opCode = spv::OpSubgroupFirstInvocationKHR; @@ -4084,7 +4084,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, typeId, operands[0]); + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; case glslang::EOpMinInvocationsNonUniform: @@ -4118,7 +4118,7 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(opCode, typeId, operands[0]); + return CreateInvocationsVectorOperation(opCode, typeId, operands); break; #endif @@ -4131,16 +4131,21 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op return builder.createOp(opCode, typeId, spvGroupOperands); } -#ifdef AMD_EXTENSIONS // Create group invocation operations on a vector -spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand) +spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector& operands) { +#ifdef AMD_EXTENSIONS assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || - op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD || op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupSMaxNonUniformAMD || op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); +#else + assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || + op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast); +#endif // Handle group invocation operations scalar by scalar. // The result type is the same type as the original type. @@ -4150,28 +4155,32 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv // - make a vector out the scalar results // get the types sorted out - int numComponents = builder.getNumComponents(operand); - spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operand)); + int numComponents = builder.getNumComponents(operands[0]); + spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operands[0])); std::vector results; // do each scalar op for (int comp = 0; comp < numComponents; ++comp) { std::vector indexes; indexes.push_back(comp); - spv::Id scalar = builder.createCompositeExtract(operand, scalarType, indexes); + spv::Id scalar = builder.createCompositeExtract(operands[0], scalarType, indexes); - std::vector operands; - operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - operands.push_back(spv::GroupOperationReduce); - operands.push_back(scalar); + std::vector spvGroupOperands; + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + if (op == spv::OpGroupBroadcast) { + spvGroupOperands.push_back(scalar); + spvGroupOperands.push_back(operands[1]); + } else { + spvGroupOperands.push_back(spv::GroupOperationReduce); + spvGroupOperands.push_back(scalar); + } - results.push_back(builder.createOp(op, scalarType, operands)); + results.push_back(builder.createOp(op, scalarType, spvGroupOperands)); } // put the pieces together return builder.createCompositeConstruct(typeId, results); } -#endif spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out index c60db162..b837b8bc 100644 --- a/Test/baseResults/spv.shaderBallot.comp.out +++ b/Test/baseResults/spv.shaderBallot.comp.out @@ -7,7 +7,7 @@ Linked compute stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 245 +// Id's are bound by 299 Capability Shader Capability Int64 @@ -49,7 +49,7 @@ Linked compute stage: Decorate 52(Buffers) BufferBlock Decorate 55(data) DescriptorSet 0 Decorate 55(data) Binding 0 - Decorate 244 BuiltIn WorkgroupSize + Decorate 298 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -85,19 +85,19 @@ Linked compute stage: 67: 50(int) Constant 1 68: TypeVector 48(float) 2 69: TypePointer Uniform 49(fvec4) - 79: 50(int) Constant 2 - 80: TypeVector 48(float) 3 - 90: 50(int) Constant 3 - 97: TypePointer Uniform 50(int) - 104: TypeVector 50(int) 2 - 105: TypePointer Uniform 51(ivec4) - 115: TypeVector 50(int) 3 - 131: TypePointer Uniform 6(int) - 138: TypePointer Uniform 38(ivec4) - 148: TypeVector 6(int) 3 - 242: 6(int) Constant 8 - 243: 6(int) Constant 1 - 244: 148(ivec3) ConstantComposite 242 242 243 + 83: 50(int) Constant 2 + 84: TypeVector 48(float) 3 + 100: 50(int) Constant 3 + 115: TypePointer Uniform 50(int) + 122: TypeVector 50(int) 2 + 123: TypePointer Uniform 51(ivec4) + 137: TypeVector 50(int) 3 + 167: TypePointer Uniform 6(int) + 174: TypePointer Uniform 38(ivec4) + 188: TypeVector 6(int) 3 + 296: 6(int) Constant 8 + 297: 6(int) Constant 1 + 298: 188(ivec3) ConstantComposite 296 296 297 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function @@ -125,7 +125,7 @@ Linked compute stage: 44: 17(int) Bitcast 43 45: 36(bool) IEqual 35 44 SelectionMerge 47 None - BranchConditional 45 46 163 + BranchConditional 45 46 217 46: Label 56: 6(int) Load 8(invocation) 60: 59(ptr) AccessChain 55(data) 57 57 58 @@ -139,188 +139,242 @@ Linked compute stage: 71: 49(fvec4) Load 70 72: 68(fvec2) VectorShuffle 71 71 0 1 73: 6(int) Load 8(invocation) - 74: 68(fvec2) GroupBroadcast 63 72 73 - 75: 69(ptr) AccessChain 55(data) 66 57 - 76: 49(fvec4) Load 75 - 77: 49(fvec4) VectorShuffle 76 74 4 5 2 3 - Store 75 77 - 78: 6(int) Load 8(invocation) - 81: 69(ptr) AccessChain 55(data) 79 57 - 82: 49(fvec4) Load 81 - 83: 80(fvec3) VectorShuffle 82 82 0 1 2 - 84: 6(int) Load 8(invocation) - 85: 80(fvec3) GroupBroadcast 63 83 84 - 86: 69(ptr) AccessChain 55(data) 78 57 - 87: 49(fvec4) Load 86 - 88: 49(fvec4) VectorShuffle 87 85 4 5 6 3 - Store 86 88 - 89: 6(int) Load 8(invocation) - 91: 69(ptr) AccessChain 55(data) 90 57 - 92: 49(fvec4) Load 91 - 93: 6(int) Load 8(invocation) - 94: 49(fvec4) GroupBroadcast 63 92 93 - 95: 69(ptr) AccessChain 55(data) 89 57 - Store 95 94 - 96: 6(int) Load 8(invocation) - 98: 97(ptr) AccessChain 55(data) 57 67 58 - 99: 50(int) Load 98 - 100: 6(int) Load 8(invocation) - 101: 50(int) GroupBroadcast 63 99 100 - 102: 97(ptr) AccessChain 55(data) 96 67 58 - Store 102 101 + 74: 48(float) CompositeExtract 72 0 + 75: 48(float) GroupBroadcast 63 74 73 + 76: 48(float) CompositeExtract 72 1 + 77: 48(float) GroupBroadcast 63 76 73 + 78: 68(fvec2) CompositeConstruct 75 77 + 79: 69(ptr) AccessChain 55(data) 66 57 + 80: 49(fvec4) Load 79 + 81: 49(fvec4) VectorShuffle 80 78 4 5 2 3 + Store 79 81 + 82: 6(int) Load 8(invocation) + 85: 69(ptr) AccessChain 55(data) 83 57 + 86: 49(fvec4) Load 85 + 87: 84(fvec3) VectorShuffle 86 86 0 1 2 + 88: 6(int) Load 8(invocation) + 89: 48(float) CompositeExtract 87 0 + 90: 48(float) GroupBroadcast 63 89 88 + 91: 48(float) CompositeExtract 87 1 + 92: 48(float) GroupBroadcast 63 91 88 + 93: 48(float) CompositeExtract 87 2 + 94: 48(float) GroupBroadcast 63 93 88 + 95: 84(fvec3) CompositeConstruct 90 92 94 + 96: 69(ptr) AccessChain 55(data) 82 57 + 97: 49(fvec4) Load 96 + 98: 49(fvec4) VectorShuffle 97 95 4 5 6 3 + Store 96 98 + 99: 6(int) Load 8(invocation) + 101: 69(ptr) AccessChain 55(data) 100 57 + 102: 49(fvec4) Load 101 103: 6(int) Load 8(invocation) - 106: 105(ptr) AccessChain 55(data) 67 67 - 107: 51(ivec4) Load 106 - 108: 104(ivec2) VectorShuffle 107 107 0 1 - 109: 6(int) Load 8(invocation) - 110: 104(ivec2) GroupBroadcast 63 108 109 - 111: 105(ptr) AccessChain 55(data) 103 67 - 112: 51(ivec4) Load 111 - 113: 51(ivec4) VectorShuffle 112 110 4 5 2 3 - Store 111 113 + 104: 48(float) CompositeExtract 102 0 + 105: 48(float) GroupBroadcast 63 104 103 + 106: 48(float) CompositeExtract 102 1 + 107: 48(float) GroupBroadcast 63 106 103 + 108: 48(float) CompositeExtract 102 2 + 109: 48(float) GroupBroadcast 63 108 103 + 110: 48(float) CompositeExtract 102 3 + 111: 48(float) GroupBroadcast 63 110 103 + 112: 49(fvec4) CompositeConstruct 105 107 109 111 + 113: 69(ptr) AccessChain 55(data) 99 57 + Store 113 112 114: 6(int) Load 8(invocation) - 116: 105(ptr) AccessChain 55(data) 79 67 - 117: 51(ivec4) Load 116 - 118: 115(ivec3) VectorShuffle 117 117 0 1 2 - 119: 6(int) Load 8(invocation) - 120: 115(ivec3) GroupBroadcast 63 118 119 - 121: 105(ptr) AccessChain 55(data) 114 67 - 122: 51(ivec4) Load 121 - 123: 51(ivec4) VectorShuffle 122 120 4 5 6 3 - Store 121 123 - 124: 6(int) Load 8(invocation) - 125: 105(ptr) AccessChain 55(data) 90 67 - 126: 51(ivec4) Load 125 + 116: 115(ptr) AccessChain 55(data) 57 67 58 + 117: 50(int) Load 116 + 118: 6(int) Load 8(invocation) + 119: 50(int) GroupBroadcast 63 117 118 + 120: 115(ptr) AccessChain 55(data) 114 67 58 + Store 120 119 + 121: 6(int) Load 8(invocation) + 124: 123(ptr) AccessChain 55(data) 67 67 + 125: 51(ivec4) Load 124 + 126: 122(ivec2) VectorShuffle 125 125 0 1 127: 6(int) Load 8(invocation) - 128: 51(ivec4) GroupBroadcast 63 126 127 - 129: 105(ptr) AccessChain 55(data) 124 67 - Store 129 128 - 130: 6(int) Load 8(invocation) - 132: 131(ptr) AccessChain 55(data) 57 79 58 - 133: 6(int) Load 132 - 134: 6(int) Load 8(invocation) - 135: 6(int) GroupBroadcast 63 133 134 - 136: 131(ptr) AccessChain 55(data) 130 79 58 - Store 136 135 - 137: 6(int) Load 8(invocation) - 139: 138(ptr) AccessChain 55(data) 67 79 - 140: 38(ivec4) Load 139 - 141: 42(ivec2) VectorShuffle 140 140 0 1 - 142: 6(int) Load 8(invocation) - 143: 42(ivec2) GroupBroadcast 63 141 142 - 144: 138(ptr) AccessChain 55(data) 137 79 - 145: 38(ivec4) Load 144 - 146: 38(ivec4) VectorShuffle 145 143 4 5 2 3 - Store 144 146 - 147: 6(int) Load 8(invocation) - 149: 138(ptr) AccessChain 55(data) 79 79 - 150: 38(ivec4) Load 149 - 151: 148(ivec3) VectorShuffle 150 150 0 1 2 + 128: 50(int) CompositeExtract 126 0 + 129: 50(int) GroupBroadcast 63 128 127 + 130: 50(int) CompositeExtract 126 1 + 131: 50(int) GroupBroadcast 63 130 127 + 132: 122(ivec2) CompositeConstruct 129 131 + 133: 123(ptr) AccessChain 55(data) 121 67 + 134: 51(ivec4) Load 133 + 135: 51(ivec4) VectorShuffle 134 132 4 5 2 3 + Store 133 135 + 136: 6(int) Load 8(invocation) + 138: 123(ptr) AccessChain 55(data) 83 67 + 139: 51(ivec4) Load 138 + 140: 137(ivec3) VectorShuffle 139 139 0 1 2 + 141: 6(int) Load 8(invocation) + 142: 50(int) CompositeExtract 140 0 + 143: 50(int) GroupBroadcast 63 142 141 + 144: 50(int) CompositeExtract 140 1 + 145: 50(int) GroupBroadcast 63 144 141 + 146: 50(int) CompositeExtract 140 2 + 147: 50(int) GroupBroadcast 63 146 141 + 148: 137(ivec3) CompositeConstruct 143 145 147 + 149: 123(ptr) AccessChain 55(data) 136 67 + 150: 51(ivec4) Load 149 + 151: 51(ivec4) VectorShuffle 150 148 4 5 6 3 + Store 149 151 152: 6(int) Load 8(invocation) - 153: 148(ivec3) GroupBroadcast 63 151 152 - 154: 138(ptr) AccessChain 55(data) 147 79 - 155: 38(ivec4) Load 154 - 156: 38(ivec4) VectorShuffle 155 153 4 5 6 3 - Store 154 156 - 157: 6(int) Load 8(invocation) - 158: 138(ptr) AccessChain 55(data) 90 79 - 159: 38(ivec4) Load 158 - 160: 6(int) Load 8(invocation) - 161: 38(ivec4) GroupBroadcast 63 159 160 - 162: 138(ptr) AccessChain 55(data) 157 79 - Store 162 161 - Branch 47 - 163: Label - 164: 6(int) Load 8(invocation) - 165: 59(ptr) AccessChain 55(data) 57 57 58 - 166: 48(float) Load 165 - 167: 48(float) SubgroupFirstInvocationKHR 166 - 168: 59(ptr) AccessChain 55(data) 164 57 58 - Store 168 167 - 169: 6(int) Load 8(invocation) - 170: 69(ptr) AccessChain 55(data) 67 57 - 171: 49(fvec4) Load 170 - 172: 68(fvec2) VectorShuffle 171 171 0 1 - 173: 68(fvec2) SubgroupFirstInvocationKHR 172 - 174: 69(ptr) AccessChain 55(data) 169 57 - 175: 49(fvec4) Load 174 - 176: 49(fvec4) VectorShuffle 175 173 4 5 2 3 - Store 174 176 - 177: 6(int) Load 8(invocation) - 178: 69(ptr) AccessChain 55(data) 79 57 - 179: 49(fvec4) Load 178 - 180: 80(fvec3) VectorShuffle 179 179 0 1 2 - 181: 80(fvec3) SubgroupFirstInvocationKHR 180 - 182: 69(ptr) AccessChain 55(data) 177 57 - 183: 49(fvec4) Load 182 - 184: 49(fvec4) VectorShuffle 183 181 4 5 6 3 - Store 182 184 - 185: 6(int) Load 8(invocation) - 186: 69(ptr) AccessChain 55(data) 90 57 - 187: 49(fvec4) Load 186 - 188: 49(fvec4) SubgroupFirstInvocationKHR 187 - 189: 69(ptr) AccessChain 55(data) 185 57 - Store 189 188 - 190: 6(int) Load 8(invocation) - 191: 97(ptr) AccessChain 55(data) 57 67 58 - 192: 50(int) Load 191 - 193: 50(int) SubgroupFirstInvocationKHR 192 - 194: 97(ptr) AccessChain 55(data) 190 67 58 - Store 194 193 - 195: 6(int) Load 8(invocation) - 196: 105(ptr) AccessChain 55(data) 67 67 - 197: 51(ivec4) Load 196 - 198: 104(ivec2) VectorShuffle 197 197 0 1 - 199: 104(ivec2) SubgroupFirstInvocationKHR 198 - 200: 105(ptr) AccessChain 55(data) 195 67 - 201: 51(ivec4) Load 200 - 202: 51(ivec4) VectorShuffle 201 199 4 5 2 3 + 153: 123(ptr) AccessChain 55(data) 100 67 + 154: 51(ivec4) Load 153 + 155: 6(int) Load 8(invocation) + 156: 50(int) CompositeExtract 154 0 + 157: 50(int) GroupBroadcast 63 156 155 + 158: 50(int) CompositeExtract 154 1 + 159: 50(int) GroupBroadcast 63 158 155 + 160: 50(int) CompositeExtract 154 2 + 161: 50(int) GroupBroadcast 63 160 155 + 162: 50(int) CompositeExtract 154 3 + 163: 50(int) GroupBroadcast 63 162 155 + 164: 51(ivec4) CompositeConstruct 157 159 161 163 + 165: 123(ptr) AccessChain 55(data) 152 67 + Store 165 164 + 166: 6(int) Load 8(invocation) + 168: 167(ptr) AccessChain 55(data) 57 83 58 + 169: 6(int) Load 168 + 170: 6(int) Load 8(invocation) + 171: 6(int) GroupBroadcast 63 169 170 + 172: 167(ptr) AccessChain 55(data) 166 83 58 + Store 172 171 + 173: 6(int) Load 8(invocation) + 175: 174(ptr) AccessChain 55(data) 67 83 + 176: 38(ivec4) Load 175 + 177: 42(ivec2) VectorShuffle 176 176 0 1 + 178: 6(int) Load 8(invocation) + 179: 6(int) CompositeExtract 177 0 + 180: 6(int) GroupBroadcast 63 179 178 + 181: 6(int) CompositeExtract 177 1 + 182: 6(int) GroupBroadcast 63 181 178 + 183: 42(ivec2) CompositeConstruct 180 182 + 184: 174(ptr) AccessChain 55(data) 173 83 + 185: 38(ivec4) Load 184 + 186: 38(ivec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 6(int) Load 8(invocation) + 189: 174(ptr) AccessChain 55(data) 83 83 + 190: 38(ivec4) Load 189 + 191: 188(ivec3) VectorShuffle 190 190 0 1 2 + 192: 6(int) Load 8(invocation) + 193: 6(int) CompositeExtract 191 0 + 194: 6(int) GroupBroadcast 63 193 192 + 195: 6(int) CompositeExtract 191 1 + 196: 6(int) GroupBroadcast 63 195 192 + 197: 6(int) CompositeExtract 191 2 + 198: 6(int) GroupBroadcast 63 197 192 + 199: 188(ivec3) CompositeConstruct 194 196 198 + 200: 174(ptr) AccessChain 55(data) 187 83 + 201: 38(ivec4) Load 200 + 202: 38(ivec4) VectorShuffle 201 199 4 5 6 3 Store 200 202 203: 6(int) Load 8(invocation) - 204: 105(ptr) AccessChain 55(data) 79 67 - 205: 51(ivec4) Load 204 - 206: 115(ivec3) VectorShuffle 205 205 0 1 2 - 207: 115(ivec3) SubgroupFirstInvocationKHR 206 - 208: 105(ptr) AccessChain 55(data) 203 67 - 209: 51(ivec4) Load 208 - 210: 51(ivec4) VectorShuffle 209 207 4 5 6 3 - Store 208 210 - 211: 6(int) Load 8(invocation) - 212: 105(ptr) AccessChain 55(data) 90 67 - 213: 51(ivec4) Load 212 - 214: 51(ivec4) SubgroupFirstInvocationKHR 213 - 215: 105(ptr) AccessChain 55(data) 211 67 - Store 215 214 - 216: 6(int) Load 8(invocation) - 217: 131(ptr) AccessChain 55(data) 57 79 58 - 218: 6(int) Load 217 - 219: 6(int) SubgroupFirstInvocationKHR 218 - 220: 131(ptr) AccessChain 55(data) 216 79 58 - Store 220 219 - 221: 6(int) Load 8(invocation) - 222: 138(ptr) AccessChain 55(data) 67 79 - 223: 38(ivec4) Load 222 - 224: 42(ivec2) VectorShuffle 223 223 0 1 - 225: 42(ivec2) SubgroupFirstInvocationKHR 224 - 226: 138(ptr) AccessChain 55(data) 221 79 - 227: 38(ivec4) Load 226 - 228: 38(ivec4) VectorShuffle 227 225 4 5 2 3 - Store 226 228 - 229: 6(int) Load 8(invocation) - 230: 138(ptr) AccessChain 55(data) 79 79 - 231: 38(ivec4) Load 230 - 232: 148(ivec3) VectorShuffle 231 231 0 1 2 - 233: 148(ivec3) SubgroupFirstInvocationKHR 232 - 234: 138(ptr) AccessChain 55(data) 229 79 - 235: 38(ivec4) Load 234 - 236: 38(ivec4) VectorShuffle 235 233 4 5 6 3 - Store 234 236 - 237: 6(int) Load 8(invocation) - 238: 138(ptr) AccessChain 55(data) 90 79 - 239: 38(ivec4) Load 238 - 240: 38(ivec4) SubgroupFirstInvocationKHR 239 - 241: 138(ptr) AccessChain 55(data) 237 79 - Store 241 240 + 204: 174(ptr) AccessChain 55(data) 100 83 + 205: 38(ivec4) Load 204 + 206: 6(int) Load 8(invocation) + 207: 6(int) CompositeExtract 205 0 + 208: 6(int) GroupBroadcast 63 207 206 + 209: 6(int) CompositeExtract 205 1 + 210: 6(int) GroupBroadcast 63 209 206 + 211: 6(int) CompositeExtract 205 2 + 212: 6(int) GroupBroadcast 63 211 206 + 213: 6(int) CompositeExtract 205 3 + 214: 6(int) GroupBroadcast 63 213 206 + 215: 38(ivec4) CompositeConstruct 208 210 212 214 + 216: 174(ptr) AccessChain 55(data) 203 83 + Store 216 215 + Branch 47 + 217: Label + 218: 6(int) Load 8(invocation) + 219: 59(ptr) AccessChain 55(data) 57 57 58 + 220: 48(float) Load 219 + 221: 48(float) SubgroupFirstInvocationKHR 220 + 222: 59(ptr) AccessChain 55(data) 218 57 58 + Store 222 221 + 223: 6(int) Load 8(invocation) + 224: 69(ptr) AccessChain 55(data) 67 57 + 225: 49(fvec4) Load 224 + 226: 68(fvec2) VectorShuffle 225 225 0 1 + 227: 68(fvec2) SubgroupFirstInvocationKHR 226 + 228: 69(ptr) AccessChain 55(data) 223 57 + 229: 49(fvec4) Load 228 + 230: 49(fvec4) VectorShuffle 229 227 4 5 2 3 + Store 228 230 + 231: 6(int) Load 8(invocation) + 232: 69(ptr) AccessChain 55(data) 83 57 + 233: 49(fvec4) Load 232 + 234: 84(fvec3) VectorShuffle 233 233 0 1 2 + 235: 84(fvec3) SubgroupFirstInvocationKHR 234 + 236: 69(ptr) AccessChain 55(data) 231 57 + 237: 49(fvec4) Load 236 + 238: 49(fvec4) VectorShuffle 237 235 4 5 6 3 + Store 236 238 + 239: 6(int) Load 8(invocation) + 240: 69(ptr) AccessChain 55(data) 100 57 + 241: 49(fvec4) Load 240 + 242: 49(fvec4) SubgroupFirstInvocationKHR 241 + 243: 69(ptr) AccessChain 55(data) 239 57 + Store 243 242 + 244: 6(int) Load 8(invocation) + 245: 115(ptr) AccessChain 55(data) 57 67 58 + 246: 50(int) Load 245 + 247: 50(int) SubgroupFirstInvocationKHR 246 + 248: 115(ptr) AccessChain 55(data) 244 67 58 + Store 248 247 + 249: 6(int) Load 8(invocation) + 250: 123(ptr) AccessChain 55(data) 67 67 + 251: 51(ivec4) Load 250 + 252: 122(ivec2) VectorShuffle 251 251 0 1 + 253: 122(ivec2) SubgroupFirstInvocationKHR 252 + 254: 123(ptr) AccessChain 55(data) 249 67 + 255: 51(ivec4) Load 254 + 256: 51(ivec4) VectorShuffle 255 253 4 5 2 3 + Store 254 256 + 257: 6(int) Load 8(invocation) + 258: 123(ptr) AccessChain 55(data) 83 67 + 259: 51(ivec4) Load 258 + 260: 137(ivec3) VectorShuffle 259 259 0 1 2 + 261: 137(ivec3) SubgroupFirstInvocationKHR 260 + 262: 123(ptr) AccessChain 55(data) 257 67 + 263: 51(ivec4) Load 262 + 264: 51(ivec4) VectorShuffle 263 261 4 5 6 3 + Store 262 264 + 265: 6(int) Load 8(invocation) + 266: 123(ptr) AccessChain 55(data) 100 67 + 267: 51(ivec4) Load 266 + 268: 51(ivec4) SubgroupFirstInvocationKHR 267 + 269: 123(ptr) AccessChain 55(data) 265 67 + Store 269 268 + 270: 6(int) Load 8(invocation) + 271: 167(ptr) AccessChain 55(data) 57 83 58 + 272: 6(int) Load 271 + 273: 6(int) SubgroupFirstInvocationKHR 272 + 274: 167(ptr) AccessChain 55(data) 270 83 58 + Store 274 273 + 275: 6(int) Load 8(invocation) + 276: 174(ptr) AccessChain 55(data) 67 83 + 277: 38(ivec4) Load 276 + 278: 42(ivec2) VectorShuffle 277 277 0 1 + 279: 42(ivec2) SubgroupFirstInvocationKHR 278 + 280: 174(ptr) AccessChain 55(data) 275 83 + 281: 38(ivec4) Load 280 + 282: 38(ivec4) VectorShuffle 281 279 4 5 2 3 + Store 280 282 + 283: 6(int) Load 8(invocation) + 284: 174(ptr) AccessChain 55(data) 83 83 + 285: 38(ivec4) Load 284 + 286: 188(ivec3) VectorShuffle 285 285 0 1 2 + 287: 188(ivec3) SubgroupFirstInvocationKHR 286 + 288: 174(ptr) AccessChain 55(data) 283 83 + 289: 38(ivec4) Load 288 + 290: 38(ivec4) VectorShuffle 289 287 4 5 6 3 + Store 288 290 + 291: 6(int) Load 8(invocation) + 292: 174(ptr) AccessChain 55(data) 100 83 + 293: 38(ivec4) Load 292 + 294: 38(ivec4) SubgroupFirstInvocationKHR 293 + 295: 174(ptr) AccessChain 55(data) 291 83 + Store 295 294 Branch 47 47: Label Return From ad0752e8faf365b5265b832cb524c107452d6521 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Mon, 26 Sep 2016 17:02:44 -0600 Subject: [PATCH 151/217] GLSL: Add binding map tests This PR adds a GLSL equivalent to the HLSL binding mapping tests for offsets and auto-numbering. The shaders are as equivalent as possible. The bindings of the base results match exactly between the two. --- .../spv.glsl.register.autoassign.frag.out | 228 ++++++++++++++++++ .../spv.glsl.register.noautoassign.frag.out | 222 +++++++++++++++++ Test/spv.glsl.register.autoassign.frag | 68 ++++++ Test/spv.glsl.register.noautoassign.frag | 68 ++++++ gtests/Spv.FromFile.cpp | 32 ++- 5 files changed, 614 insertions(+), 4 deletions(-) create mode 100644 Test/baseResults/spv.glsl.register.autoassign.frag.out create mode 100644 Test/baseResults/spv.glsl.register.noautoassign.frag.out create mode 100644 Test/spv.glsl.register.autoassign.frag create mode 100644 Test/spv.glsl.register.noautoassign.frag diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out new file mode 100644 index 00000000..a96b904b --- /dev/null +++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -0,0 +1,228 @@ +spv.glsl.register.autoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 1 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 2 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 3 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 4 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 6 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 8 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 19 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/Test/baseResults/spv.glsl.register.noautoassign.frag.out new file mode 100644 index 00000000..05bf3cf0 --- /dev/null +++ b/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -0,0 +1,222 @@ +spv.glsl.register.noautoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 86(g_sSamp5) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 19 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/spv.glsl.register.autoassign.frag b/Test/spv.glsl.register.autoassign.frag new file mode 100644 index 00000000..f754d8aa --- /dev/null +++ b/Test/spv.glsl.register.autoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform sampler g_sSamp4[3]; +uniform sampler g_sSamp5; + +uniform sampler g_sSamp_unused1; +uniform sampler g_sSamp_unused2; + +uniform layout(binding=1) texture1D g_tTex1; +uniform texture1D g_tTex2; +uniform layout(binding=3) texture1D g_tTex3[2]; +uniform texture1D g_tTex4[3]; +uniform texture1D g_tTex5; + +uniform layout(binding=0) texture1D g_tTex_unused1; +uniform layout(binding=2) texture1D g_tTex_unused2; +uniform texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/Test/spv.glsl.register.noautoassign.frag b/Test/spv.glsl.register.noautoassign.frag new file mode 100644 index 00000000..f754d8aa --- /dev/null +++ b/Test/spv.glsl.register.noautoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform sampler g_sSamp4[3]; +uniform sampler g_sSamp5; + +uniform sampler g_sSamp_unused1; +uniform sampler g_sSamp_unused2; + +uniform layout(binding=1) texture1D g_tTex1; +uniform texture1D g_tTex2; +uniform layout(binding=3) texture1D g_tTex3[2]; +uniform texture1D g_tTex4[3]; +uniform texture1D g_tTex5; + +uniform layout(binding=0) texture1D g_tTex_unused1; +uniform layout(binding=2) texture1D g_tTex_unused2; +uniform texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 9dd21676..749daa06 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -1,4 +1,4 @@ -// + // // Copyright (C) 2016 Google, Inc. // // All rights reserved. @@ -65,7 +65,8 @@ using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam>; using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; -using HlslSemantics = GlslangTest<::testing::TestWithParam>; +using HlslIoMap = GlslangTest<::testing::TestWithParam>; +using GlslIoMap = GlslangTest<::testing::TestWithParam>; // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate SPIR-V. @@ -112,7 +113,7 @@ TEST_P(VulkanAstSemantics, FromFile) } // HLSL-level Vulkan semantics tests. -TEST_P(HlslSemantics, FromFile) +TEST_P(HlslIoMap, FromFile) { loadFileCompileIoMapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, Source::HLSL, Semantics::Vulkan, @@ -124,6 +125,19 @@ TEST_P(HlslSemantics, FromFile) GetParam().flattenUniforms); } +// GLSL-level Vulkan semantics tests. +TEST_P(GlslIoMap, FromFile) +{ + loadFileCompileIoMapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + Source::GLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseUboBinding, + GetParam().autoMapBindings, + GetParam().flattenUniforms); +} + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileVulkanToSpirvTest, @@ -251,7 +265,7 @@ INSTANTIATE_TEST_CASE_P( // clang-format off INSTANTIATE_TEST_CASE_P( - Hlsl, HlslSemantics, + Hlsl, HlslIoMap, ::testing::ValuesIn(std::vector{ { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false }, { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, @@ -260,6 +274,16 @@ INSTANTIATE_TEST_CASE_P( FileNameAsCustomTestSuffixIoMap ); +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, GlslIoMap, + ::testing::ValuesIn(std::vector{ + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 15, true, false }, + { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 15, false, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileOpenGLToSpirvTest, From daff1a2523faf36df291bae95f6c44889e193747 Mon Sep 17 00:00:00 2001 From: Dominik Witczak Date: Tue, 27 Sep 2016 09:51:34 +0200 Subject: [PATCH 152/217] #517: Enable AMD extensions by default --- CMakeLists.txt | 2 +- Test/baseResults/300.vert.out | 2 +- Test/baseResults/420.vert.out | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c03edd7c..33b4764d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.11) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF) +option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON) enable_testing() diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index 66a06517..ecfa3d50 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -9,7 +9,7 @@ ERROR: 0:12: '' : vertex input cannot be further qualified ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers ERROR: 0:14: '' : in/out must appear before const ERROR: 0:15: '' : precision qualifier must appear as last qualifier -ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective) +ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) ERROR: 0:17: 'sample' : Reserved word. ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:18: 'uniform' : too many storage qualifiers diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index a234970c..5636e7a1 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -4,7 +4,7 @@ ERROR: 0:2: '#version' : must occur first in shader WARNING: 0:3: varying deprecated in version 130; may be removed in future release ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420 ERROR: 0:7: '' : vertex input cannot be further qualified -ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective) +ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:13: 'uniform' : too many storage qualifiers ERROR: 0:18: '=' : global const initializers must be constant 'const int' From 04b3e8746fa363b05ece9b314c8e3a067f971bbe Mon Sep 17 00:00:00 2001 From: Maciej Jesionowski Date: Mon, 26 Sep 2016 16:49:09 +0200 Subject: [PATCH 153/217] SPV: PrimitiveId in frag shader will emit Geometry capability Using PrimitiveId in a fragment shader requires declaring an OpCapability with either Geometry or Tessellation. --- SPIRV/GlslangToSpv.cpp | 8 +++++++- Test/baseResults/spv.400.frag.out | 14 ++++++++++++-- Test/spv.400.frag | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index c79b6c21..34cdc5c2 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -499,11 +499,17 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; case glslang::EbvBaseVertex: case glslang::EbvBaseInstance: + case glslang::EbvDrawId: // TODO: Add SPIR-V builtin ID. logger->missingFunctionality("shader draw parameters"); return spv::BuiltInMax; - case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId; + + case glslang::EbvPrimitiveId: + if (glslangIntermediate->getStage() == EShLangFragment) + builder.addCapability(spv::CapabilityGeometry); + return spv::BuiltInPrimitiveId; + case glslang::EbvInvocationId: return spv::BuiltInInvocationId; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out index f06b0fcd..7858845e 100644 --- a/Test/baseResults/spv.400.frag.out +++ b/Test/baseResults/spv.400.frag.out @@ -7,16 +7,17 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1114 +// Id's are bound by 1118 Capability Shader + Capability Geometry Capability Float64 Capability ImageGatherExtended Capability ClipDistance Capability SampledRect 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 + EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 ExecutionMode 4 OriginUpperLeft Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -55,6 +56,8 @@ Linked fragment stage: Name 1099 "vl2" Name 1105 "uo" Name 1107 "u" + Name 1115 "id" + Name 1116 "gl_PrimitiveID" Decorate 17(u2drs) DescriptorSet 0 Decorate 1025(arrayedSampler) DescriptorSet 0 Decorate 1027(i) Flat @@ -64,6 +67,8 @@ Linked fragment stage: Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1099(vl2) Location 6 Decorate 1107(u) Flat + Decorate 1116(gl_PrimitiveID) Flat + Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -185,9 +190,12 @@ Linked fragment stage: 1105(uo): 1104(ptr) Variable Output 1106: TypePointer Input 32(int) 1107(u): 1106(ptr) Variable Input + 1114: TypePointer Function 23(int) +1116(gl_PrimitiveID): 1026(ptr) Variable Input 4(main): 2 Function None 3 5: Label 1019(v): 1018(ptr) Variable Function + 1115(id): 1114(ptr) Variable Function 1028: 23(int) Load 1027(i) 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1031: 1021 Load 1030 @@ -242,6 +250,8 @@ Linked fragment stage: Store 1105(uo) 1111 1112: 2 FunctionCall 6(foo23() 1113: 2 FunctionCall 8(doubles() + 1117: 23(int) Load 1116(gl_PrimitiveID) + Store 1115(id) 1117 Return FunctionEnd 6(foo23(): 2 Function None 3 diff --git a/Test/spv.400.frag b/Test/spv.400.frag index 05b4370b..d64c4700 100644 --- a/Test/spv.400.frag +++ b/Test/spv.400.frag @@ -259,5 +259,7 @@ void main() uo = u % i; foo23(); doubles(); + + int id = gl_PrimitiveID; } From 265c0618b147478a6364d99ad4f00b33779675c7 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 27 Sep 2016 10:57:35 -0600 Subject: [PATCH 154/217] HLSL: allow implicit array sizing. In HLSL array sizes need not be provided explicitly in all circumstances. For example, this is valid (note no number between the [ ]): // no explicit array size uniform float g_array[] = { 1, 2, 3, 4, 5 }; This PR does not attempt to validate most invalid cases. A new test is added to verify the resulting linker objects. --- .../hlsl.array.implicit-size.frag.out | 264 ++++++++++++++++++ Test/hlsl.array.implicit-size.frag | 31 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 29 +- 4 files changed, 316 insertions(+), 9 deletions(-) create mode 100644 Test/baseResults/hlsl.array.implicit-size.frag.out create mode 100644 Test/hlsl.array.implicit-size.frag diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out new file mode 100644 index 00000000..6345c89c --- /dev/null +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -0,0 +1,264 @@ +hlsl.array.implicit-size.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:26 Function Parameters: +0:26 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 3-element array of float) +0:28 'l_array' (temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (out structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Construct vec4 (temp 4-component vector of float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 direct index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 Constant: +0:30 0 (const int) +0:30 direct index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 Constant: +0:30 4 (const int) +0:30 direct index (temp float) +0:30 'l_array' (temp 3-element array of float) +0:30 Constant: +0:30 1 (const int) +0:30 f: direct index for structure (temp float) +0:30 direct index (temp structure{temp int i, temp float f}) +0:30 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) +0:30 1 (const int) +0:30 2.000000 +0:30 3 (const int) +0:30 4.000000 +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 indirect index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 'idx' (temp void) +0:? Linker Objects +0:? 'g_array' (uniform 5-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'g_array_unused' (uniform 7-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) +0:? 1 (const int) +0:? 2.000000 +0:? 3 (const int) +0:? 4.000000 + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:26 Function Parameters: +0:26 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 3-element array of float) +0:28 'l_array' (temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:30 move second child to first child (temp 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (out structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Construct vec4 (temp 4-component vector of float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 add (temp float) +0:30 direct index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 Constant: +0:30 0 (const int) +0:30 direct index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 Constant: +0:30 4 (const int) +0:30 direct index (temp float) +0:30 'l_array' (temp 3-element array of float) +0:30 Constant: +0:30 1 (const int) +0:30 f: direct index for structure (temp float) +0:30 direct index (temp structure{temp int i, temp float f}) +0:30 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) +0:30 1 (const int) +0:30 2.000000 +0:30 3 (const int) +0:30 4.000000 +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 indirect index (temp float) +0:30 'g_array' (uniform 5-element array of float) +0:30 1.000000 +0:30 2.000000 +0:30 3.000000 +0:30 4.000000 +0:30 5.000000 +0:30 'idx' (temp void) +0:? Linker Objects +0:? 'g_array' (uniform 5-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 'g_array_unused' (uniform 7-element array of float) +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) +0:? 1 (const int) +0:? 2.000000 +0:? 3 (const int) +0:? 4.000000 + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 62 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 12 "main(struct-PS_OUTPUT-vf41;" + Name 11 "ps_output" + Name 18 "l_array" + Name 28 "g_array" + Name 41 "mystruct" + MemberName 41(mystruct) 0 "i" + MemberName 41(mystruct) 1 "f" + Name 45 "g_mystruct" + Name 50 "idx" + Name 61 "g_array_unused" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 10: TypeFunction 2 9(ptr) + 14: TypeInt 32 0 + 15: 14(int) Constant 3 + 16: TypeArray 6(float) 15 + 17: TypePointer Function 16 + 19: 6(float) Constant 1065353216 + 20: 6(float) Constant 1073741824 + 21: 6(float) Constant 1077936128 + 22: 16 ConstantComposite 19 20 21 + 23: TypeInt 32 1 + 24: 23(int) Constant 0 + 25: 14(int) Constant 5 + 26: TypeArray 6(float) 25 + 27: TypePointer UniformConstant 26 + 28(g_array): 27(ptr) Variable UniformConstant + 29: TypePointer UniformConstant 6(float) + 32: 23(int) Constant 4 + 36: 23(int) Constant 1 + 37: TypePointer Function 6(float) + 41(mystruct): TypeStruct 23(int) 6(float) + 42: 14(int) Constant 2 + 43: TypeArray 41(mystruct) 42 + 44: TypePointer UniformConstant 43 + 45(g_mystruct): 44(ptr) Variable UniformConstant + 49: TypePointer Function 2 + 56: TypePointer Function 7(fvec4) + 58: 14(int) Constant 7 + 59: TypeArray 6(float) 58 + 60: TypePointer UniformConstant 59 +61(g_array_unused): 60(ptr) Variable UniformConstant +4(PixelShaderFunction): 2 Function None 3 + 5: Label + FunctionEnd +12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 + 11(ps_output): 9(ptr) FunctionParameter + 13: Label + 18(l_array): 17(ptr) Variable Function + 50(idx): 49(ptr) Variable Function + Store 18(l_array) 22 + 30: 29(ptr) AccessChain 28(g_array) 24 + 31: 6(float) Load 30 + 33: 29(ptr) AccessChain 28(g_array) 32 + 34: 6(float) Load 33 + 35: 6(float) FAdd 31 34 + 38: 37(ptr) AccessChain 18(l_array) 36 + 39: 6(float) Load 38 + 40: 6(float) FAdd 35 39 + 46: 29(ptr) AccessChain 45(g_mystruct) 24 36 + 47: 6(float) Load 46 + 48: 6(float) FAdd 40 47 + 51: 2 Load 50(idx) + 52: 29(ptr) AccessChain 28(g_array) 51 + 53: 6(float) Load 52 + 54: 6(float) FAdd 48 53 + 55: 7(fvec4) CompositeConstruct 54 54 54 54 + 57: 56(ptr) AccessChain 11(ps_output) 24 + Store 57 55 + Return + FunctionEnd diff --git a/Test/hlsl.array.implicit-size.frag b/Test/hlsl.array.implicit-size.frag new file mode 100644 index 00000000..11f93b5e --- /dev/null +++ b/Test/hlsl.array.implicit-size.frag @@ -0,0 +1,31 @@ + +// implicit sized array +uniform float g_array [ ] = { 1, 2, 3, 4, 5 }; + +// Unused implicit sized array +uniform float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; + +// Test implicit size arrayed structs +uniform struct mystruct { + int i; + float f; +} g_mystruct[] = { + { 1, 2.0 }, + { 3, 4.0 }, +}; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +// INVALID: implicit size requires an initializer expression. +// uniform float bad[]; + +// INVALID: function parameters cannot be implicitly sized +// void BadFunction(int a[]) { } + +void main(out PS_OUTPUT ps_output) +{ + // implicit sized local array + float l_array[] = { 1, 2, 3 }; + + ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 55450a74..2e191ba2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -81,6 +81,7 @@ INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ {"hlsl.array.frag", "PixelShaderFunction"}, + {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 30d42f10..48698e5a 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1515,8 +1515,14 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); - if (arraySizes) + if (arraySizes) { + if (arraySizes->isImplicit()) { + parseContext.error(token.loc, "function parameter array cannot be implicitly sized", "", ""); + return false; + } + type->newArraySizes(*arraySizes); + } // post_decls acceptPostDecls(type->getQualifier()); @@ -2601,6 +2607,7 @@ bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) // array_specifier // : LEFT_BRACKET integer_expression RGHT_BRACKET post_decls // optional +// : LEFT_BRACKET RGHT_BRACKET post_decls // optional // void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) { @@ -2610,21 +2617,25 @@ void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) return; TSourceLoc loc = token.loc; - TIntermTyped* sizeExpr; - if (! acceptAssignmentExpression(sizeExpr)) { - expected("array-sizing expression"); - return; - } + TIntermTyped* sizeExpr = nullptr; + + // Array sizing expression is optional. If ommitted, array is implicitly sized. + const bool hasArraySize = acceptAssignmentExpression(sizeExpr); if (! acceptTokenClass(EHTokRightBracket)) { expected("]"); return; } - TArraySize arraySize; - parseContext.arraySizeCheck(loc, sizeExpr, arraySize); arraySizes = new TArraySizes; - arraySizes->addInnerSize(arraySize); + + if (hasArraySize) { + TArraySize arraySize; + parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + arraySizes->addInnerSize(arraySize); + } else { + arraySizes->addInnerSize(); // implicitly sized + } } // post_decls From e82061de0838e759403b8eb9a178c6d375934ca6 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 27 Sep 2016 14:38:57 -0600 Subject: [PATCH 155/217] HLSL: Rationalize combination of type arrayness and name arrayness. --- glslang/Include/revision.h | 4 +-- hlsl/hlslGrammar.cpp | 54 +++++++++++++++++++++++++------------- hlsl/hlslParseHelper.cpp | 28 +++----------------- hlsl/hlslParseHelper.h | 2 +- 4 files changed, 43 insertions(+), 45 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 811e161b..7806c77c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1507" -#define GLSLANG_DATE "25-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1523" +#define GLSLANG_DATE "27-Sep-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 48698e5a..85c2c697 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -271,7 +271,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); - TType type; + TType declaredType; // DX9 sampler declaration use a different syntax // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to @@ -280,21 +280,21 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used // For that reason, this line is commented out - // if (acceptSamplerDeclarationDX9(type)) + // if (acceptSamplerDeclarationDX9(declaredType)) // return true; // fully_specified_type - if (! acceptFullySpecifiedType(type)) + if (! acceptFullySpecifiedType(declaredType)) return false; - if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) { - if (type.getBasicType() == EbtSampler) { + if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) { + if (declaredType.getBasicType() == EbtSampler) { // Sampler/textures are uniform by default (if no explicit qualifier is present) in // HLSL. This line silently converts samplers *explicitly* declared static to uniform, // which is incorrect but harmless. - type.getQualifier().storage = EvqUniform; + declaredType.getQualifier().storage = EvqUniform; } else { - type.getQualifier().storage = EvqGlobal; + declaredType.getQualifier().storage = EvqGlobal; } } @@ -302,7 +302,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) HlslToken idToken; while (acceptIdentifier(idToken)) { // function_parameters - TFunction& function = *new TFunction(idToken.string, type); + TFunction& function = *new TFunction(idToken.string, declaredType); if (acceptFunctionParameters(function)) { // post_decls acceptPostDecls(function.getWritableType().getQualifier()); @@ -320,20 +320,38 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) parseContext.handleFunctionDeclarator(idToken.loc, function, true); } } else { - // a variable declaration + // A variable declaration. + // We can handle multiple variables per type declaration, so + // the number of types can expand when arrayness is different. + TType variableType; + variableType.shallowCopy(declaredType); - // array_specifier + // recognize array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); + // Fix arrayness in the variableType + if (declaredType.isImplicitlySizedArray()) { + // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b + // of different sizes, for this case sharing the shallow copy of arrayness + // with the parseType oversubscribes it, so get a deep copy of the arrayness. + variableType.newArraySizes(declaredType.getArraySizes()); + } + if (arraySizes || variableType.isArray()) { + // In the most general case, arrayness is potentially coming both from the + // declared type and from the variable: "int[] a[];" or just one or the other. + // Merge it all to the variableType, so all arrayness is part of the variableType. + parseContext.arrayDimMerge(variableType, arraySizes); + } + // samplers accept immediate sampler state - if (type.getBasicType() == EbtSampler) { + if (variableType.getBasicType() == EbtSampler) { if (! acceptSamplerState()) return false; } // post_decls - acceptPostDecls(type.getQualifier()); + acceptPostDecls(variableType.getQualifier()); // EQUAL assignment_expression TIntermTyped* expressionNode = nullptr; @@ -347,16 +365,16 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) } if (typedefDecl) - parseContext.declareTypedef(idToken.loc, *idToken.string, type, arraySizes); - else if (type.getBasicType() == EbtBlock) - parseContext.declareBlock(idToken.loc, type, idToken.string); + parseContext.declareTypedef(idToken.loc, *idToken.string, variableType, arraySizes); + else if (variableType.getBasicType() == EbtBlock) + parseContext.declareBlock(idToken.loc, variableType, idToken.string); else { // Declare the variable and add any initializer code to the AST. // The top-level node is always made into an aggregate, as that's // historically how the AST has been. node = intermediate.growAggregate(node, - parseContext.declareVariable(idToken.loc, *idToken.string, type, - arraySizes, expressionNode), + parseContext.declareVariable(idToken.loc, *idToken.string, variableType, + expressionNode), idToken.loc); } } @@ -412,7 +430,7 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) return false; } - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, 0, expressionNode); + node = parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); return true; } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4afbd924..34fd2025 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4160,11 +4160,6 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier TType type; type.deepCopy(parseType); - // Arrayness is potentially coming both from the type and from the - // variable: "int[] a[];" or just one or the other. - // Merge it all to the type, so all arrayness is part of the type. - arrayDimMerge(type, arraySizes); - TVariable* typeSymbol = new TVariable(&identifier, type, true); if (! symbolTable.insert(*typeSymbol)) error(loc, "name already defined", "typedef", identifier.c_str()); @@ -4181,7 +4176,7 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes, TIntermTyped* initializer) +TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, TType& type, TIntermTyped* initializer) { // TODO: things scoped within an annotation need their own name space; // haven't done that yet @@ -4189,18 +4184,9 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i return nullptr; // TODO: strings are not yet handled - if (parseType.getBasicType() == EbtString) + if (type.getBasicType() == EbtString) return nullptr; - TType type; - type.shallowCopy(parseType); - if (type.isImplicitlySizedArray()) { - // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b - // of different sizes, for this case sharing the shallow copy of arrayness - // with the parseType oversubscribes it, so get a deep copy of the arrayness. - type.newArraySizes(*parseType.getArraySizes()); - } - if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; @@ -4213,16 +4199,10 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i bool flattenVar = false; // Declare the variable - if (arraySizes || type.isArray()) { - // Arrayness is potentially coming both from the type and from the - // variable: "int[] a[];" or just one or the other. - // Merge it all to the type, so all arrayness is part of the type. - arrayDimMerge(type, arraySizes); // Safe if there are no arraySizes - + if (type.isArray()) { + // array case declareArray(loc, identifier, type, symbol, newDeclaration); - flattenVar = shouldFlatten(type); - if (flattenVar) flatten(loc, *symbol->getAsVariable()); } else { diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index b7d33237..7b7b95dc 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -140,7 +140,7 @@ public: const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); - TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); + TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); From 6dbc0a7a33eac420c0b9ce3b6c53140fb13122a8 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 27 Sep 2016 19:13:05 -0600 Subject: [PATCH 156/217] Support a uniform block to hold global uniform variables. Used initially just by HLSL, for $Global. Could be an option for GLSL -> Vulkan. --- glslang/Include/revision.h | 2 +- .../MachineIndependent/ParseContextBase.cpp | 50 +++++++++++++++++ glslang/MachineIndependent/ParseHelper.h | 18 ++++++- hlsl/hlslGrammar.cpp | 53 ++++++++++--------- hlsl/hlslParseHelper.cpp | 29 +++++----- hlsl/hlslParseHelper.h | 5 +- 6 files changed, 117 insertions(+), 40 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 7806c77c..fb515df0 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1523" +#define GLSLANG_REVISION "Overload400-PrecQual.1524" #define GLSLANG_DATE "27-Sep-2016" diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index 4c1d02a8..54715ce1 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -181,4 +181,54 @@ const TFunction* TParseContextBase::selectFunction( return incumbent; } +// +// Make the passed-in variable information become a member of the +// global uniform block. If this doesn't exist yet, make it. +// +void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberType, TString& memberName) +{ + // make the global block, if not yet made + if (globalUniformBlock == nullptr) { + TString& blockName = *NewPoolTString(getGlobalUniformBlockName()); + TQualifier blockQualifier; + blockQualifier.clear(); + blockQualifier.storage = EvqUniform; + TType blockType(new TTypeList, blockName, blockQualifier); + TString* instanceName = NewPoolTString(""); + globalUniformBlock = new TVariable(instanceName, blockType, true); + globalUniformBlockAdded = false; + } + + // add the requested member as a member to the block + TType* type = new TType; + type->shallowCopy(memberType); + type->setFieldName(memberName); + TTypeLoc typeLoc = {type, loc}; + globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); + globalUniformBlockChanged = true; +} + +// +// Insert into the symbol table the global uniform block created in +// growGlobalUniformBlock(). The variables added as members won't be +// found unless this is done. +// +bool TParseContextBase::insertGlobalUniformBlock() +{ + if (globalUniformBlock == nullptr) + return true; + + if (globalUniformBlockAdded) + return ! globalUniformBlockChanged; + + globalUniformBlockChanged = false; + globalUniformBlockAdded = symbolTable.insert(*globalUniformBlock); + if (globalUniformBlockAdded) { + intermediate.addSymbolLinkageNode(linkage, *globalUniformBlock); + finalizeGlobalUniformBlockLayout(*globalUniformBlock); + } + + return globalUniformBlockAdded; +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index aa92954b..b007ebbb 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -78,7 +78,8 @@ public: TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), symbolTable(symbolTable), - linkage(nullptr), scanContext(nullptr), ppContext(nullptr) { } + linkage(nullptr), scanContext(nullptr), ppContext(nullptr), + globalUniformBlock(nullptr) { } virtual ~TParseContextBase() { } virtual void setLimits(const TBuiltInResource&) = 0; @@ -126,6 +127,13 @@ public: TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) + // TODO: This could perhaps get its own object, but the current design doesn't work + // yet when new uniform variables are declared between function definitions, so + // this is pending getting a fully functional design. + virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName); + virtual bool insertGlobalUniformBlock(); + protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); @@ -147,6 +155,14 @@ protected: std::function, std::function, /* output */ bool& tie); + + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) + TVariable* globalUniformBlock; // the actual block, inserted into the symbol table + bool globalUniformBlockAdded; // true once inserted into the symbol table + bool globalUniformBlockChanged; // true if members have changed + // override this to set the language-specific name + virtual const char* getGlobalUniformBlockName() { return ""; } + virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } }; // diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 85c2c697..9652129c 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -287,17 +287,6 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) if (! acceptFullySpecifiedType(declaredType)) return false; - if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) { - if (declaredType.getBasicType() == EbtSampler) { - // Sampler/textures are uniform by default (if no explicit qualifier is present) in - // HLSL. This line silently converts samplers *explicitly* declared static to uniform, - // which is incorrect but harmless. - declaredType.getQualifier().storage = EvqUniform; - } else { - declaredType.getQualifier().storage = EvqGlobal; - } - } - // identifier HlslToken idToken; while (acceptIdentifier(idToken)) { @@ -320,7 +309,10 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) parseContext.handleFunctionDeclarator(idToken.loc, function, true); } } else { - // A variable declaration. + // A variable declaration. Fix the storage qualifier if it's a global. + if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) + declaredType.getQualifier().storage = EvqUniform; + // We can handle multiple variables per type declaration, so // the number of types can expand when arrayness is different. TType variableType; @@ -364,18 +356,29 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) } } - if (typedefDecl) - parseContext.declareTypedef(idToken.loc, *idToken.string, variableType, arraySizes); - else if (variableType.getBasicType() == EbtBlock) - parseContext.declareBlock(idToken.loc, variableType, idToken.string); - else { - // Declare the variable and add any initializer code to the AST. - // The top-level node is always made into an aggregate, as that's - // historically how the AST has been. - node = intermediate.growAggregate(node, - parseContext.declareVariable(idToken.loc, *idToken.string, variableType, - expressionNode), - idToken.loc); + // Hand off the actual declaration + + // TODO: things scoped within an annotation need their own name space; + // TODO: strings are not yet handled. + if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) { + if (typedefDecl) + parseContext.declareTypedef(idToken.loc, *idToken.string, variableType); + else if (variableType.getBasicType() == EbtBlock) + parseContext.declareBlock(idToken.loc, variableType, idToken.string); + else { + if (variableType.getQualifier().storage == EvqUniform && variableType.getBasicType() != EbtSampler) { + // this isn't really an individual variable, but a member of the $Global buffer + parseContext.growGlobalUniformBlock(idToken.loc, variableType, *idToken.string); + } else { + // Declare the variable and add any initializer code to the AST. + // The top-level node is always made into an aggregate, as that's + // historically how the AST has been. + node = intermediate.growAggregate(node, + parseContext.declareVariable(idToken.loc, *idToken.string, variableType, + expressionNode), + idToken.loc); + } + } } } @@ -473,7 +476,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) do { switch (peek()) { case EHTokStatic: - // normal glslang default + qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; break; case EHTokExtern: // TODO: no meaning in glslang? diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 34fd2025..65f7aa26 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -957,6 +957,11 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l } else remapNonEntryPointIO(function); + // Insert the $Global constant buffer. + // TODO: this design fails if new members are declared between function definitions. + if (! insertGlobalUniformBlock()) + error(loc, "failed to insert the global constant buffer", "uniform", ""); + // // New symbol table scope for body of function plus its arguments // @@ -4178,15 +4183,6 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, TType& type, TIntermTyped* initializer) { - // TODO: things scoped within an annotation need their own name space; - // haven't done that yet - if (annotationNestingLevel > 0) - return nullptr; - - // TODO: strings are not yet handled - if (type.getBasicType() == EbtString) - return nullptr; - if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; @@ -4832,6 +4828,13 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS intermediate.addSymbolLinkageNode(linkage, variable); } +void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block) +{ + block.getWritableType().getQualifier().layoutPacking = ElpStd140; + block.getWritableType().getQualifier().layoutMatrix = ElmRowMajor; + fixBlockUniformOffsets(block.getType().getQualifier(), *block.getWritableType().getWritableStruct()); +} + // // "For a block, this process applies to the entire block, or until the first member // is reached that has a location layout qualifier. When a block member is declared with a location @@ -4912,7 +4915,7 @@ void HlslParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& type // Also, compute and save the total size of the block. For the block's size, arrayness // is not taken into account, as each element is backed by a separate buffer. // -void HlslParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList) +void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TTypeList& typeList) { if (! qualifier.isUniformOrBuffer()) return; @@ -4930,8 +4933,10 @@ void HlslParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& // modify just the children's view of matrix layout, if there is one for this member TLayoutMatrix subMatrixLayout = typeList[member].type->getQualifier().layoutMatrix; int dummyStride; - int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, qualifier.layoutPacking == ElpStd140, - subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor : qualifier.layoutMatrix == ElmRowMajor); + int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, + qualifier.layoutPacking == ElpStd140, + subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor + : qualifier.layoutMatrix == ElmRowMajor); if (memberQualifier.hasOffset()) { // "The specified offset must be a multiple // of the base alignment of the type of the block member it qualifies, or a compile-time error results." diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 7b7b95dc..657858a6 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -51,6 +51,7 @@ public: void setLimits(const TBuiltInResource&); bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); + virtual const char* getGlobalUniformBlockName() { return "$Global"; } void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...); @@ -145,9 +146,10 @@ public: TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0); + void finalizeGlobalUniformBlockLayout(TVariable& block); void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); void fixBlockXfbOffsets(TQualifier&, TTypeList&); - void fixBlockUniformOffsets(TQualifier&, TTypeList&); + void fixBlockUniformOffsets(const TQualifier&, TTypeList&); void addQualifierToExisting(const TSourceLoc&, TQualifier, const TString& identifier); void addQualifierToExisting(const TSourceLoc&, TQualifier, TIdentifierList&); void updateStandaloneQualifierDefaults(const TSourceLoc&, const TPublicType&); @@ -160,6 +162,7 @@ public: void unnestLooping() { --loopNestingLevel; } void nestAnnotations() { ++annotationNestingLevel; } void unnestAnnotations() { --annotationNestingLevel; } + int getAnnotationNestingLevel() { return annotationNestingLevel; } void pushScope() { symbolTable.push(); } void popScope() { symbolTable.pop(0); } From 4e55988a47c1e5922434dc56b2f7a74d06cab1e5 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 27 Sep 2016 23:09:32 -0600 Subject: [PATCH 157/217] HLSL Tests: Tests for previous commit, to make it easier to see what's changing. --- Test/baseResults/hlsl.array.flatten.frag.out | 304 +-- Test/baseResults/hlsl.array.frag.out | 189 +- Test/baseResults/hlsl.assoc.frag.out | 4 +- Test/baseResults/hlsl.attribute.frag.out | 4 +- Test/baseResults/hlsl.buffer.frag.out | 4 +- .../hlsl.calculatelod.dx10.frag.out | 4 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 4 +- Test/baseResults/hlsl.cast.frag.out | 4 +- Test/baseResults/hlsl.conditional.frag.out | 4 +- Test/baseResults/hlsl.constructexpr.frag.out | 4 +- Test/baseResults/hlsl.depthGreater.frag.out | 4 +- Test/baseResults/hlsl.depthLess.frag.out | 4 +- Test/baseResults/hlsl.discard.frag.out | 12 +- Test/baseResults/hlsl.doLoop.frag.out | 4 +- Test/baseResults/hlsl.entry-in.frag.out | 16 +- Test/baseResults/hlsl.entry-out.frag.out | 4 +- Test/baseResults/hlsl.float1.frag.out | 4 +- Test/baseResults/hlsl.float4.frag.out | 99 +- Test/baseResults/hlsl.forLoop.frag.out | 4 +- .../hlsl.gather.array.dx10.frag.out | 4 +- .../hlsl.gather.basic.dx10.frag.out | 4 +- .../hlsl.gather.basic.dx10.vert.out | 4 +- .../hlsl.gather.offset.dx10.frag.out | 4 +- .../hlsl.gather.offsetarray.dx10.frag.out | 4 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 859 ++++--- .../hlsl.gatherRGBA.basic.dx10.frag.out | 895 ++++--- .../hlsl.gatherRGBA.offset.dx10.frag.out | 1732 +++++++++----- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 1696 ++++++++----- .../hlsl.getdimensions.dx10.frag.out | 4 +- .../hlsl.getdimensions.dx10.vert.out | 4 +- .../hlsl.getsampleposition.dx10.frag.out | 4 +- Test/baseResults/hlsl.if.frag.out | 4 +- Test/baseResults/hlsl.init.frag.out | 4 +- Test/baseResults/hlsl.init2.frag.out | 12 +- Test/baseResults/hlsl.inoutquals.frag.out | 12 +- .../hlsl.intrinsics.barriers.comp.out | 4 +- Test/baseResults/hlsl.intrinsics.comp.out | 20 +- .../hlsl.intrinsics.double.frag.out | 4 +- .../hlsl.intrinsics.evalfns.frag.out | 4 +- .../hlsl.intrinsics.f1632.frag.out | 20 +- Test/baseResults/hlsl.intrinsics.frag.out | 52 +- Test/baseResults/hlsl.intrinsics.lit.frag.out | 4 +- .../hlsl.intrinsics.negative.comp.out | 20 +- .../hlsl.intrinsics.negative.frag.out | 32 +- .../hlsl.intrinsics.negative.vert.out | 32 +- Test/baseResults/hlsl.intrinsics.vert.out | 48 +- Test/baseResults/hlsl.layout.frag.out | 4 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 489 ++-- .../baseResults/hlsl.load.array.dx10.frag.out | 536 +++-- .../baseResults/hlsl.load.basic.dx10.frag.out | 658 ++--- .../baseResults/hlsl.load.basic.dx10.vert.out | 635 +++-- .../hlsl.load.buffer.dx10.frag.out | 245 +- .../hlsl.load.offset.dx10.frag.out | 777 +++--- .../hlsl.load.offsetarray.dx10.frag.out | 621 +++-- Test/baseResults/hlsl.matType.frag.out | 89 +- Test/baseResults/hlsl.matrixindex.frag.out | 141 +- Test/baseResults/hlsl.max.frag.out | 4 +- Test/baseResults/hlsl.multiEntry.vert.out | 12 +- .../baseResults/hlsl.numericsuffixes.frag.out | 4 +- Test/baseResults/hlsl.overload.frag.out | 420 ++-- Test/baseResults/hlsl.pp.line.frag.out | 4 +- Test/baseResults/hlsl.precedence.frag.out | 4 +- Test/baseResults/hlsl.precedence2.frag.out | 4 +- Test/baseResults/hlsl.precise.frag.out | 8 +- Test/baseResults/hlsl.promotions.frag.out | 2112 +++++++++++------ Test/baseResults/hlsl.reflection.vert.out | 89 +- .../hlsl.sample.array.dx10.frag.out | 4 +- .../hlsl.sample.basic.dx10.frag.out | 4 +- .../hlsl.sample.offset.dx10.frag.out | 4 +- .../hlsl.sample.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplebias.array.dx10.frag.out | 4 +- .../hlsl.samplebias.basic.dx10.frag.out | 4 +- .../hlsl.samplebias.offset.dx10.frag.out | 4 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplecmp.array.dx10.frag.out | 4 +- .../hlsl.samplecmp.basic.dx10.frag.out | 4 +- .../hlsl.samplecmp.offset.dx10.frag.out | 4 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 4 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 4 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 4 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 4 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplegrad.array.dx10.frag.out | 4 +- .../hlsl.samplegrad.basic.dx10.frag.out | 4 +- .../hlsl.samplegrad.basic.dx10.vert.out | 4 +- .../hlsl.samplegrad.offset.dx10.frag.out | 4 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 4 +- .../hlsl.samplelevel.array.dx10.frag.out | 4 +- .../hlsl.samplelevel.basic.dx10.frag.out | 4 +- .../hlsl.samplelevel.basic.dx10.vert.out | 4 +- .../hlsl.samplelevel.offset.dx10.frag.out | 4 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 4 +- Test/baseResults/hlsl.scope.frag.out | 4 +- Test/baseResults/hlsl.semicolons.frag.out | 12 +- Test/baseResults/hlsl.shapeConv.frag.out | 4 +- Test/baseResults/hlsl.sin.frag.out | 4 +- Test/baseResults/hlsl.string.frag.out | 4 +- Test/baseResults/hlsl.stringtoken.frag.out | 21 +- Test/baseResults/hlsl.struct.frag.out | 194 +- Test/baseResults/hlsl.structin.vert.out | 4 +- Test/baseResults/hlsl.switch.frag.out | 4 +- Test/baseResults/hlsl.swizzle.frag.out | 4 +- Test/baseResults/hlsl.templatetypes.frag.out | 4 +- Test/baseResults/hlsl.typedef.frag.out | 8 +- Test/baseResults/hlsl.void.frag.out | 20 +- Test/baseResults/hlsl.whileLoop.frag.out | 4 +- .../spv.register.autoassign.frag.out | 171 +- .../spv.register.noautoassign.frag.out | 170 +- Test/hlsl.array.flatten.frag | 2 +- Test/hlsl.float1.frag | 4 +- Test/hlsl.float4.frag | 6 +- Test/hlsl.init.frag | 20 +- Test/hlsl.intrinsics.comp | 2 +- Test/hlsl.intrinsics.frag | 2 +- Test/hlsl.intrinsics.negative.vert | 24 +- Test/hlsl.precise.frag | 2 +- Test/hlsl.struct.frag | 4 +- Test/hlsl.swizzle.frag | 2 +- glslang/Include/revision.h | 2 +- 119 files changed, 8321 insertions(+), 5503 deletions(-) diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index eedd698f..e7487598 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -2,7 +2,7 @@ hlsl.array.flatten.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: TestFn1( (global 4-component vector of float) +0:17 Function Definition: TestFn1( (temp 4-component vector of float) 0:17 Function Parameters: 0:? Sequence 0:18 Branch: Return with expression @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:? 'g_samp[1]' (uniform sampler) 0:18 Constant: 0:18 0.200000 -0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) 0:22 Function Parameters: 0:22 'l_tex' (in 3-element array of texture1D) 0:22 'l_samp' (in 3-element array of sampler) @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:26 3 (const int) 0:26 4 (const int) 0:26 5 (const int) -0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) 0:31 Function Parameters: 0:31 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence @@ -84,36 +84,17 @@ gl_FragCoord origin is upper left 0:34 2 (const int) 0:? 'g_tex[2]' (uniform texture1D) 0:35 Sequence -0:? Sequence -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 0 (const int) -0:? 'g_floats[0]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 1 (const int) -0:? 'g_floats[1]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 2 (const int) -0:? 'g_floats[2]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 3 (const int) -0:? 'g_floats[3]' (uniform float) +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) 0:37 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:37 add (temp 4-component vector of float) -0:37 Function Call: TestFn1( (global 4-component vector of float) -0:37 Function Call: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) 0:? Comma (temp 3-element array of texture1D) 0:? Sequence 0:? move second child to first child (temp texture1D) @@ -169,18 +150,7 @@ gl_FragCoord origin is upper left 0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) 0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) 0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'g_mats[0]' (uniform 3X3 matrix of float) -0:? 'g_mats[1]' (uniform 3X3 matrix of float) -0:? 'g_mats[2]' (uniform 3X3 matrix of float) -0:? 'g_mats[3]' (uniform 3X3 matrix of float) -0:? 'g_mats_explicit[0]' (layout(binding=10 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[1]' (layout(binding=11 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[2]' (layout(binding=12 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[3]' (layout(binding=13 ) uniform 3X3 matrix of float) -0:? 'g_floats[0]' (uniform float) -0:? 'g_floats[1]' (uniform float) -0:? 'g_floats[2]' (uniform float) -0:? 'g_floats[3]' (uniform float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) 0:? 'not_flattened_a' (global 5-element array of int) 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -191,7 +161,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: TestFn1( (global 4-component vector of float) +0:17 Function Definition: TestFn1( (temp 4-component vector of float) 0:17 Function Parameters: 0:? Sequence 0:18 Branch: Return with expression @@ -201,7 +171,7 @@ gl_FragCoord origin is upper left 0:? 'g_samp[1]' (uniform sampler) 0:18 Constant: 0:18 0.200000 -0:22 Function Definition: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) 0:22 Function Parameters: 0:22 'l_tex' (in 3-element array of texture1D) 0:22 'l_samp' (in 3-element array of sampler) @@ -228,7 +198,7 @@ gl_FragCoord origin is upper left 0:26 3 (const int) 0:26 4 (const int) 0:26 5 (const int) -0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) 0:31 Function Parameters: 0:31 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence @@ -273,36 +243,17 @@ gl_FragCoord origin is upper left 0:34 2 (const int) 0:? 'g_tex[2]' (uniform texture1D) 0:35 Sequence -0:? Sequence -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 0 (const int) -0:? 'g_floats[0]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 1 (const int) -0:? 'g_floats[1]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 2 (const int) -0:? 'g_floats[2]' (uniform float) -0:35 move second child to first child (temp float) -0:35 direct index (temp float) -0:35 'local_float_array' (temp 4-element array of float) -0:35 Constant: -0:35 3 (const int) -0:? 'g_floats[3]' (uniform float) +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) 0:37 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:37 add (temp 4-component vector of float) -0:37 Function Call: TestFn1( (global 4-component vector of float) -0:37 Function Call: TestFn2(t11[3];p1[3]; (global 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) 0:? Comma (temp 3-element array of texture1D) 0:? Sequence 0:? move second child to first child (temp texture1D) @@ -358,30 +309,19 @@ gl_FragCoord origin is upper left 0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) 0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) 0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'g_mats[0]' (uniform 3X3 matrix of float) -0:? 'g_mats[1]' (uniform 3X3 matrix of float) -0:? 'g_mats[2]' (uniform 3X3 matrix of float) -0:? 'g_mats[3]' (uniform 3X3 matrix of float) -0:? 'g_mats_explicit[0]' (layout(binding=10 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[1]' (layout(binding=11 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[2]' (layout(binding=12 ) uniform 3X3 matrix of float) -0:? 'g_mats_explicit[3]' (layout(binding=13 ) uniform 3X3 matrix of float) -0:? 'g_floats[0]' (uniform float) -0:? 'g_floats[1]' (uniform float) -0:? 'g_floats[2]' (uniform float) -0:? 'g_floats[3]' (uniform float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) 0:? 'not_flattened_a' (global 5-element array of int) 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 128 +// Id's are bound by 123 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 93 + EntryPoint Fragment 4 "main" 99 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "TestFn1(" @@ -398,50 +338,51 @@ gl_FragCoord origin is upper left Name 66 "g_tex[0]" Name 71 "g_tex[2]" Name 77 "local_float_array" - Name 79 "g_floats[0]" - Name 83 "g_floats[1]" - Name 86 "g_floats[2]" - Name 89 "g_floats[3]" - Name 93 "color" - Name 95 "aggShadow" - Name 102 "aggShadow" - Name 111 "g_tex_explicit[0]" - Name 112 "g_tex_explicit[1]" - Name 113 "g_tex_explicit[2]" - Name 114 "g_samp_explicit[0]" - Name 115 "g_samp_explicit[1]" - Name 116 "g_samp_explicit[2]" - Name 120 "g_mats[0]" - Name 121 "g_mats[1]" - Name 122 "g_mats[2]" - Name 123 "g_mats[3]" - Name 124 "g_mats_explicit[0]" - Name 125 "g_mats_explicit[1]" - Name 126 "g_mats_explicit[2]" - Name 127 "g_mats_explicit[3]" + Name 83 "$Global" + MemberName 83($Global) 0 "g_mats" + MemberName 83($Global) 1 "g_mats_explicit" + MemberName 83($Global) 2 "g_floats" + Name 85 "" + Name 99 "color" + Name 101 "aggShadow" + Name 108 "aggShadow" + Name 117 "g_tex_explicit[0]" + Name 118 "g_tex_explicit[1]" + Name 119 "g_tex_explicit[2]" + Name 120 "g_samp_explicit[0]" + Name 121 "g_samp_explicit[1]" + Name 122 "g_samp_explicit[2]" Decorate 36(g_tex[1]) DescriptorSet 0 Decorate 39(g_samp[1]) DescriptorSet 0 Decorate 57(g_samp[0]) DescriptorSet 0 Decorate 62(g_samp[2]) DescriptorSet 0 Decorate 66(g_tex[0]) DescriptorSet 0 Decorate 71(g_tex[2]) DescriptorSet 0 - Decorate 93(color) Location 0 - Decorate 111(g_tex_explicit[0]) DescriptorSet 0 - Decorate 111(g_tex_explicit[0]) Binding 1 - Decorate 112(g_tex_explicit[1]) DescriptorSet 0 - Decorate 112(g_tex_explicit[1]) Binding 2 - Decorate 113(g_tex_explicit[2]) DescriptorSet 0 - Decorate 113(g_tex_explicit[2]) Binding 3 - Decorate 114(g_samp_explicit[0]) DescriptorSet 0 - Decorate 114(g_samp_explicit[0]) Binding 5 - Decorate 115(g_samp_explicit[1]) DescriptorSet 0 - Decorate 115(g_samp_explicit[1]) Binding 6 - Decorate 116(g_samp_explicit[2]) DescriptorSet 0 - Decorate 116(g_samp_explicit[2]) Binding 7 - Decorate 124(g_mats_explicit[0]) Binding 10 - Decorate 125(g_mats_explicit[1]) Binding 11 - Decorate 126(g_mats_explicit[2]) Binding 12 - Decorate 127(g_mats_explicit[3]) Binding 13 + Decorate 80 ArrayStride 48 + Decorate 81 ArrayStride 48 + Decorate 82 ArrayStride 16 + MemberDecorate 83($Global) 0 RowMajor + MemberDecorate 83($Global) 0 Offset 0 + MemberDecorate 83($Global) 0 MatrixStride 16 + MemberDecorate 83($Global) 1 RowMajor + MemberDecorate 83($Global) 1 Offset 192 + MemberDecorate 83($Global) 1 MatrixStride 16 + MemberDecorate 83($Global) 2 Offset 384 + Decorate 83($Global) Block + Decorate 85 DescriptorSet 0 + Decorate 99(color) Location 0 + Decorate 117(g_tex_explicit[0]) DescriptorSet 0 + Decorate 117(g_tex_explicit[0]) Binding 1 + Decorate 118(g_tex_explicit[1]) DescriptorSet 0 + Decorate 118(g_tex_explicit[1]) Binding 2 + Decorate 119(g_tex_explicit[2]) DescriptorSet 0 + Decorate 119(g_tex_explicit[2]) Binding 3 + Decorate 120(g_samp_explicit[0]) DescriptorSet 0 + Decorate 120(g_samp_explicit[0]) Binding 5 + Decorate 121(g_samp_explicit[1]) DescriptorSet 0 + Decorate 121(g_samp_explicit[1]) Binding 6 + Decorate 122(g_samp_explicit[2]) DescriptorSet 0 + Decorate 122(g_samp_explicit[2]) Binding 7 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -483,33 +424,26 @@ gl_FragCoord origin is upper left 74: 12(int) Constant 4 75: TypeArray 6(float) 74 76: TypePointer Function 75 - 78: TypePointer UniformConstant 6(float) - 79(g_floats[0]): 78(ptr) Variable UniformConstant - 81: TypePointer Function 6(float) - 83(g_floats[1]): 78(ptr) Variable UniformConstant - 86(g_floats[2]): 78(ptr) Variable UniformConstant - 89(g_floats[3]): 78(ptr) Variable UniformConstant - 92: TypePointer Output 7(fvec4) - 93(color): 92(ptr) Variable Output - 95(aggShadow): 15(ptr) Variable UniformConstant - 102(aggShadow): 18(ptr) Variable UniformConstant -111(g_tex_explicit[0]): 35(ptr) Variable UniformConstant -112(g_tex_explicit[1]): 35(ptr) Variable UniformConstant -113(g_tex_explicit[2]): 35(ptr) Variable UniformConstant -114(g_samp_explicit[0]): 38(ptr) Variable UniformConstant -115(g_samp_explicit[1]): 38(ptr) Variable UniformConstant -116(g_samp_explicit[2]): 38(ptr) Variable UniformConstant - 117: TypeVector 6(float) 3 - 118: TypeMatrix 117(fvec3) 3 - 119: TypePointer UniformConstant 118 - 120(g_mats[0]): 119(ptr) Variable UniformConstant - 121(g_mats[1]): 119(ptr) Variable UniformConstant - 122(g_mats[2]): 119(ptr) Variable UniformConstant - 123(g_mats[3]): 119(ptr) Variable UniformConstant -124(g_mats_explicit[0]): 119(ptr) Variable UniformConstant -125(g_mats_explicit[1]): 119(ptr) Variable UniformConstant -126(g_mats_explicit[2]): 119(ptr) Variable UniformConstant -127(g_mats_explicit[3]): 119(ptr) Variable UniformConstant + 78: TypeVector 6(float) 3 + 79: TypeMatrix 78(fvec3) 3 + 80: TypeArray 79 74 + 81: TypeArray 79 74 + 82: TypeArray 6(float) 74 + 83($Global): TypeStruct 80 81 82 + 84: TypePointer Uniform 83($Global) + 85: 84(ptr) Variable Uniform + 86: TypePointer Uniform 82 + 90: TypePointer Function 6(float) + 98: TypePointer Output 7(fvec4) + 99(color): 98(ptr) Variable Output + 101(aggShadow): 15(ptr) Variable UniformConstant + 108(aggShadow): 18(ptr) Variable UniformConstant +117(g_tex_explicit[0]): 35(ptr) Variable UniformConstant +118(g_tex_explicit[1]): 35(ptr) Variable UniformConstant +119(g_tex_explicit[2]): 35(ptr) Variable UniformConstant +120(g_samp_explicit[0]): 38(ptr) Variable UniformConstant +121(g_samp_explicit[1]): 38(ptr) Variable UniformConstant +122(g_samp_explicit[2]): 38(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(local_float_array): 76(ptr) Variable Function @@ -532,40 +466,42 @@ gl_FragCoord origin is upper left 72: 11 Load 71(g_tex[2]) 73: 35(ptr) AccessChain 65(local_texture_array) 30 Store 73 72 - 80: 6(float) Load 79(g_floats[0]) - 82: 81(ptr) AccessChain 77(local_float_array) 56 - Store 82 80 - 84: 6(float) Load 83(g_floats[1]) - 85: 81(ptr) AccessChain 77(local_float_array) 29 - Store 85 84 - 87: 6(float) Load 86(g_floats[2]) - 88: 81(ptr) AccessChain 77(local_float_array) 30 - Store 88 87 - 90: 6(float) Load 89(g_floats[3]) - 91: 81(ptr) AccessChain 77(local_float_array) 31 - Store 91 90 - 94: 7(fvec4) FunctionCall 9(TestFn1() - 96: 11 Load 66(g_tex[0]) - 97: 35(ptr) AccessChain 95(aggShadow) 56 + 87: 86(ptr) AccessChain 85 30 + 88: 82 Load 87 + 89: 6(float) CompositeExtract 88 0 + 91: 90(ptr) AccessChain 77(local_float_array) 56 + Store 91 89 + 92: 6(float) CompositeExtract 88 1 + 93: 90(ptr) AccessChain 77(local_float_array) 29 + Store 93 92 + 94: 6(float) CompositeExtract 88 2 + 95: 90(ptr) AccessChain 77(local_float_array) 30 + Store 95 94 + 96: 6(float) CompositeExtract 88 3 + 97: 90(ptr) AccessChain 77(local_float_array) 31 Store 97 96 - 98: 11 Load 36(g_tex[1]) - 99: 35(ptr) AccessChain 95(aggShadow) 29 - Store 99 98 - 100: 11 Load 71(g_tex[2]) - 101: 35(ptr) AccessChain 95(aggShadow) 30 - Store 101 100 - 103: 16 Load 57(g_samp[0]) - 104: 38(ptr) AccessChain 102(aggShadow) 56 - Store 104 103 - 105: 16 Load 39(g_samp[1]) - 106: 38(ptr) AccessChain 102(aggShadow) 29 - Store 106 105 - 107: 16 Load 62(g_samp[2]) - 108: 38(ptr) AccessChain 102(aggShadow) 30 - Store 108 107 - 109: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 95(aggShadow) 102(aggShadow) - 110: 7(fvec4) FAdd 94 109 - Store 93(color) 110 + 100: 7(fvec4) FunctionCall 9(TestFn1() + 102: 11 Load 66(g_tex[0]) + 103: 35(ptr) AccessChain 101(aggShadow) 56 + Store 103 102 + 104: 11 Load 36(g_tex[1]) + 105: 35(ptr) AccessChain 101(aggShadow) 29 + Store 105 104 + 106: 11 Load 71(g_tex[2]) + 107: 35(ptr) AccessChain 101(aggShadow) 30 + Store 107 106 + 109: 16 Load 57(g_samp[0]) + 110: 38(ptr) AccessChain 108(aggShadow) 56 + Store 110 109 + 111: 16 Load 39(g_samp[1]) + 112: 38(ptr) AccessChain 108(aggShadow) 29 + Store 112 111 + 113: 16 Load 62(g_samp[2]) + 114: 38(ptr) AccessChain 108(aggShadow) 30 + Store 114 113 + 115: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow) + 116: 7(fvec4) FAdd 100 115 + Store 99(color) 116 Return FunctionEnd 9(TestFn1(): 7(fvec4) Function None 8 diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 359f62f8..00aedb3d 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -2,7 +2,7 @@ hlsl.array.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -16,12 +16,18 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 Constant: 0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 direct index (layout(location=1 ) temp 4-component vector of float) 0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -39,17 +45,19 @@ gl_FragCoord origin is upper left 0:10 'i' (layout(location=0 ) in int) 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects -0:? 'a' (global 4-element array of 4-component vector of float) -0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -60,7 +68,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -74,12 +82,18 @@ gl_FragCoord origin is upper left 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 direct index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 Constant: 0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 direct index (layout(location=1 ) temp 4-component vector of float) 0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -97,41 +111,53 @@ gl_FragCoord origin is upper left 0:10 'i' (layout(location=0 ) in int) 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) -0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects -0:? 'a' (global 4-element array of 4-component vector of float) -0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 65 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 21 29 + EntryPoint Fragment 4 "PixelShaderFunction" 9 28 36 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" - Name 14 "a" - Name 21 "i" - Name 29 "input" - Name 42 "b" - Name 54 "" - MemberName 54 0 "m" - Name 58 "s" + Name 15 "" + MemberName 15 0 "m" + Name 18 "$Global" + MemberName 18($Global) 0 "a" + MemberName 18($Global) 1 "s" + Name 20 "" + Name 28 "i" + Name 36 "input" + Name 49 "b" Decorate 9(@entryPointOutput) Location 0 - Decorate 21(i) Location 0 - Decorate 29(input) Location 1 + Decorate 12 ArrayStride 16 + Decorate 14 ArrayStride 16 + MemberDecorate 15 0 Offset 0 + Decorate 17 ArrayStride 112 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 64 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 28(i) Location 0 + Decorate 36(input) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -141,60 +167,59 @@ gl_FragCoord origin is upper left 10: TypeInt 32 0 11: 10(int) Constant 4 12: TypeArray 7(fvec4) 11 - 13: TypePointer Private 12 - 14(a): 13(ptr) Variable Private - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Private 7(fvec4) - 20: TypePointer Input 15(int) - 21(i): 20(ptr) Variable Input - 26: 10(int) Constant 3 - 27: TypeArray 7(fvec4) 26 - 28: TypePointer Input 27 - 29(input): 28(ptr) Variable Input - 30: 15(int) Constant 2 - 31: TypePointer Input 7(fvec4) - 39: 10(int) Constant 10 - 40: TypeArray 7(fvec4) 39 - 41: TypePointer Function 40 - 43: 15(int) Constant 5 - 44: TypePointer Function 7(fvec4) - 52: 10(int) Constant 7 - 53: TypeArray 7(fvec4) 52 - 54: TypeStruct 53 - 55: 10(int) Constant 11 - 56: TypeArray 54(struct) 55 - 57: TypePointer Private 56 - 58(s): 57(ptr) Variable Private - 60: 15(int) Constant 0 + 13: 10(int) Constant 7 + 14: TypeArray 7(fvec4) 13 + 15: TypeStruct 14 + 16: 10(int) Constant 11 + 17: TypeArray 15(struct) 16 + 18($Global): TypeStruct 12 17 + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: 21(int) Constant 1 + 24: TypePointer Uniform 7(fvec4) + 27: TypePointer Input 21(int) + 28(i): 27(ptr) Variable Input + 33: 10(int) Constant 3 + 34: TypeArray 7(fvec4) 33 + 35: TypePointer Input 34 + 36(input): 35(ptr) Variable Input + 37: 21(int) Constant 2 + 38: TypePointer Input 7(fvec4) + 46: 10(int) Constant 10 + 47: TypeArray 7(fvec4) 46 + 48: TypePointer Function 47 + 50: 21(int) Constant 5 + 51: TypePointer Function 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label - 42(b): 41(ptr) Variable Function - 18: 17(ptr) AccessChain 14(a) 16 - 19: 7(fvec4) Load 18 - 22: 15(int) Load 21(i) - 23: 17(ptr) AccessChain 14(a) 22 - 24: 7(fvec4) Load 23 - 25: 7(fvec4) FAdd 19 24 - 32: 31(ptr) AccessChain 29(input) 30 - 33: 7(fvec4) Load 32 - 34: 7(fvec4) FAdd 25 33 - 35: 15(int) Load 21(i) - 36: 31(ptr) AccessChain 29(input) 35 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 34 37 - 45: 44(ptr) AccessChain 42(b) 43 - 46: 7(fvec4) Load 45 - 47: 7(fvec4) FAdd 38 46 - 48: 15(int) Load 21(i) - 49: 44(ptr) AccessChain 42(b) 48 - 50: 7(fvec4) Load 49 - 51: 7(fvec4) FAdd 47 50 - 59: 15(int) Load 21(i) - 61: 15(int) Load 21(i) - 62: 17(ptr) AccessChain 58(s) 59 60 61 - 63: 7(fvec4) Load 62 - 64: 7(fvec4) FAdd 51 63 - Store 9(@entryPointOutput) 64 + 49(b): 48(ptr) Variable Function + 25: 24(ptr) AccessChain 20 22 23 + 26: 7(fvec4) Load 25 + 29: 21(int) Load 28(i) + 30: 24(ptr) AccessChain 20 22 29 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) FAdd 26 31 + 39: 38(ptr) AccessChain 36(input) 37 + 40: 7(fvec4) Load 39 + 41: 7(fvec4) FAdd 32 40 + 42: 21(int) Load 28(i) + 43: 38(ptr) AccessChain 36(input) 42 + 44: 7(fvec4) Load 43 + 45: 7(fvec4) FAdd 41 44 + 52: 51(ptr) AccessChain 49(b) 50 + 53: 7(fvec4) Load 52 + 54: 7(fvec4) FAdd 45 53 + 55: 21(int) Load 28(i) + 56: 51(ptr) AccessChain 49(b) 55 + 57: 7(fvec4) Load 56 + 58: 7(fvec4) FAdd 54 57 + 59: 21(int) Load 28(i) + 60: 21(int) Load 28(i) + 61: 24(ptr) AccessChain 20 23 59 22 60 + 62: 7(fvec4) Load 61 + 63: 7(fvec4) FAdd 58 62 + Store 9(@entryPointOutput) 63 Return FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index d54d4674..bcd16036 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -2,7 +2,7 @@ hlsl.assoc.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 38421a88..a3ce657d 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -2,7 +2,7 @@ hlsl.attribute.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -21,7 +21,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 6d7b6105..97ea9a5b 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -2,7 +2,7 @@ hlsl.buffer.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:30 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:30 Function Parameters: 0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -46,7 +46,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:30 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:30 Function Parameters: 0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 68eee1a0..30af5920 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 9370e14a..92d84f92 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -188,7 +188,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 3bef95f0..bf7183f2 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -2,7 +2,7 @@ hlsl.cast.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -33,7 +33,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index f6c00fe6..32edbda7 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -2,7 +2,7 @@ hlsl.conditional.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -119,7 +119,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 956e1bb0..1595a08d 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -2,7 +2,7 @@ hlsl.constructexpr.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -53,7 +53,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out index 6a44a2f9..0b532460 100755 --- a/Test/baseResults/hlsl.depthGreater.frag.out +++ b/Test/baseResults/hlsl.depthGreater.frag.out @@ -3,7 +3,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_greater 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1; (temp void) 0:2 Function Parameters: 0:2 'depth' (out float FragDepth) 0:? Sequence @@ -22,7 +22,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_greater 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1; (temp void) 0:2 Function Parameters: 0:2 'depth' (out float FragDepth) 0:? Sequence diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out index b1307ce2..ec664e10 100755 --- a/Test/baseResults/hlsl.depthLess.frag.out +++ b/Test/baseResults/hlsl.depthLess.frag.out @@ -3,7 +3,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) 0:2 Function Parameters: 0:? Sequence 0:3 Sequence @@ -23,7 +23,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) 0:2 Function Parameters: 0:? Sequence 0:3 Sequence diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 9601c7d1..9b4f2c72 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -2,7 +2,7 @@ hlsl.discard.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (temp void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -14,11 +14,11 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global void) +0:8 Function Definition: PixelShaderFunction(vf4; (temp void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:9 Function Call: foo(f1; (global void) +0:9 Function Call: foo(f1; (temp void) 0:9 direct index (temp float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: @@ -49,7 +49,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (temp void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -61,11 +61,11 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global void) +0:8 Function Definition: PixelShaderFunction(vf4; (temp void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:9 Function Call: foo(f1; (global void) +0:9 Function Call: foo(f1; (temp void) 0:9 direct index (temp float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 019f43d7..2d5a8fbf 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -2,7 +2,7 @@ hlsl.doLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -38,7 +38,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index 8572fa1c..b2ab8cbe 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -2,7 +2,7 @@ hlsl.entry-in.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:8 Function Parameters: 0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) -0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float) 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -48,12 +48,12 @@ gl_FragCoord origin is upper left 0:16 Sequence 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) -0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) -0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) @@ -100,7 +100,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:8 Function Parameters: 0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) -0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float) 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -146,12 +146,12 @@ gl_FragCoord origin is upper left 0:16 Sequence 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) -0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) -0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence 0:? move second child to first child (temp 2-component vector of float) diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 81926dd1..d15741f7 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -2,7 +2,7 @@ hlsl.entry-out.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'out1' (layout(location=1 ) out 4-component vector of float) diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 313be0b5..83a243fc 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 85b3c9b4..6caac247 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -5,28 +5,19 @@ WARNING: 0:6: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (global 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: 0:9 'input' (in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) -0:10 'AmbientColor' (global 4-component vector of float) +0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) 0:? Linker Objects -0:? 'AmbientColor' (global 4-component vector of float) -0:? 'ff1' (global bool Face) -0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) Linked fragment stage: @@ -35,32 +26,23 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (global 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: 0:9 'input' (in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) -0:10 'AmbientColor' (global 4-component vector of float) +0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) 0:? Linker Objects -0:? 'AmbientColor' (global 4-component vector of float) -0:? 'ff1' (global bool Face) -0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 26 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -70,44 +52,43 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" - Name 14 "AmbientColor" - Name 26 "ff1" - Name 27 "ff2" - Name 28 "ff3" - Name 29 "ff4" - Decorate 26(ff1) BuiltIn FrontFacing - Decorate 27(ff2) Offset 4 - Decorate 28(ff3) Offset 4 - Decorate 28(ff3) Binding 0 - Decorate 29(ff4) Offset 4 - Decorate 29(ff4) Binding 1 + Name 15 "$Global" + MemberName 15($Global) 0 "AmbientColor" + MemberName 15($Global) 1 "ff1" + MemberName 15($Global) 2 "ff2" + MemberName 15($Global) 3 "ff3" + MemberName 15($Global) 4 "ff4" + Name 17 "" + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 16 + MemberDecorate 15($Global) 1 BuiltIn FrontFacing + MemberDecorate 15($Global) 2 Offset 20 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypePointer Private 7(fvec4) -14(AmbientColor): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 16: 6(float) Constant 1056964608 - 17: 6(float) Constant 0 - 18: 7(fvec4) ConstantComposite 15 16 17 15 - 24: TypeBool - 25: TypePointer Private 24(bool) - 26(ff1): 25(ptr) Variable Private - 27(ff2): 13(ptr) Variable Private - 28(ff3): 13(ptr) Variable Private - 29(ff4): 13(ptr) Variable Private + 14: TypeInt 32 0 + 15($Global): TypeStruct 7(fvec4) 14(int) 6(float) 7(fvec4) 7(fvec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: TypePointer Uniform 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label - Store 14(AmbientColor) 18 FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label - 19: 7(fvec4) Load 10(input) - 20: 7(fvec4) Load 14(AmbientColor) - 21: 7(fvec4) FMul 19 20 - ReturnValue 21 + 13: 7(fvec4) Load 10(input) + 21: 20(ptr) AccessChain 17 19 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FMul 13 22 + ReturnValue 23 FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index ba8e32e7..cc475784 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -2,7 +2,7 @@ hlsl.forLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -124,7 +124,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index d2545cca..a686c11b 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence @@ -128,7 +128,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 52648f70..e28ad34a 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence @@ -126,7 +126,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 1f01fc3e..92672356 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.gather.basic.dx10.vert Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -110,7 +110,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index ac317915..86a201cc 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -101,7 +101,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index bf8f3822..2bda352c 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence @@ -98,7 +98,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 026fd1b7..c9f6bbd7 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -12,7 +12,10 @@ gl_FragCoord origin is upper left 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:33 'c3' (uniform 3-component vector of float) +0:33 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) 0:33 Constant: 0:33 0 (const int) 0:34 Sequence @@ -22,7 +25,10 @@ gl_FragCoord origin is upper left 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:34 'c3' (uniform 3-component vector of float) +0:34 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) 0:34 Constant: 0:34 0 (const int) 0:35 Sequence @@ -32,7 +38,10 @@ gl_FragCoord origin is upper left 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:35 'c3' (uniform 3-component vector of float) +0:35 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) 0:35 Constant: 0:35 0 (const int) 0:37 Sequence @@ -42,7 +51,10 @@ gl_FragCoord origin is upper left 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:37 'c3' (uniform 3-component vector of float) +0:37 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) 0:37 Constant: 0:37 1 (const int) 0:38 Sequence @@ -52,7 +64,10 @@ gl_FragCoord origin is upper left 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:38 'c3' (uniform 3-component vector of float) +0:38 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) 0:38 Constant: 0:38 1 (const int) 0:39 Sequence @@ -62,7 +77,10 @@ gl_FragCoord origin is upper left 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c3' (uniform 3-component vector of float) +0:39 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) 0:39 Constant: 0:39 1 (const int) 0:41 Sequence @@ -72,7 +90,10 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) 0:41 Constant: 0:41 2 (const int) 0:42 Sequence @@ -82,7 +103,10 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 2 (const int) 0:43 Sequence @@ -92,7 +116,10 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c3' (uniform 3-component vector of float) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 2 (const int) 0:45 Sequence @@ -102,7 +129,10 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Constant: 0:45 3 (const int) 0:46 Sequence @@ -112,7 +142,10 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Constant: 0:46 3 (const int) 0:47 Sequence @@ -122,7 +155,10 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c3' (uniform 3-component vector of float) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:51 Sequence @@ -132,7 +168,10 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c4' (uniform 4-component vector of float) +0:51 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence @@ -142,7 +181,10 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c4' (uniform 4-component vector of float) +0:52 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) 0:52 Constant: 0:52 0 (const int) 0:53 Sequence @@ -152,7 +194,10 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c4' (uniform 4-component vector of float) +0:53 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) 0:53 Constant: 0:53 0 (const int) 0:55 Sequence @@ -162,7 +207,10 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 'c4' (uniform 4-component vector of float) +0:55 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) 0:55 Constant: 0:55 1 (const int) 0:56 Sequence @@ -172,7 +220,10 @@ gl_FragCoord origin is upper left 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c4' (uniform 4-component vector of float) +0:56 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence @@ -182,7 +233,10 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c4' (uniform 4-component vector of float) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 1 (const int) 0:59 Sequence @@ -192,7 +246,10 @@ gl_FragCoord origin is upper left 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c4' (uniform 4-component vector of float) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 2 (const int) 0:60 Sequence @@ -202,7 +259,10 @@ gl_FragCoord origin is upper left 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c4' (uniform 4-component vector of float) +0:60 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) 0:60 Constant: 0:60 2 (const int) 0:61 Sequence @@ -212,7 +272,10 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c4' (uniform 4-component vector of float) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 2 (const int) 0:63 Sequence @@ -222,7 +285,10 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c4' (uniform 4-component vector of float) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 Sequence @@ -232,7 +298,10 @@ gl_FragCoord origin is upper left 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c4' (uniform 4-component vector of float) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:65 Sequence @@ -242,7 +311,10 @@ gl_FragCoord origin is upper left 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c4' (uniform 4-component vector of float) +0:65 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -289,12 +361,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -303,7 +372,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence @@ -313,7 +382,10 @@ gl_FragCoord origin is upper left 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:33 'c3' (uniform 3-component vector of float) +0:33 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) 0:33 Constant: 0:33 0 (const int) 0:34 Sequence @@ -323,7 +395,10 @@ gl_FragCoord origin is upper left 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:34 'c3' (uniform 3-component vector of float) +0:34 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) 0:34 Constant: 0:34 0 (const int) 0:35 Sequence @@ -333,7 +408,10 @@ gl_FragCoord origin is upper left 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:35 'c3' (uniform 3-component vector of float) +0:35 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) 0:35 Constant: 0:35 0 (const int) 0:37 Sequence @@ -343,7 +421,10 @@ gl_FragCoord origin is upper left 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:37 'c3' (uniform 3-component vector of float) +0:37 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) 0:37 Constant: 0:37 1 (const int) 0:38 Sequence @@ -353,7 +434,10 @@ gl_FragCoord origin is upper left 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:38 'c3' (uniform 3-component vector of float) +0:38 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) 0:38 Constant: 0:38 1 (const int) 0:39 Sequence @@ -363,7 +447,10 @@ gl_FragCoord origin is upper left 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c3' (uniform 3-component vector of float) +0:39 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) 0:39 Constant: 0:39 1 (const int) 0:41 Sequence @@ -373,7 +460,10 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) 0:41 Constant: 0:41 2 (const int) 0:42 Sequence @@ -383,7 +473,10 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 2 (const int) 0:43 Sequence @@ -393,7 +486,10 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c3' (uniform 3-component vector of float) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 2 (const int) 0:45 Sequence @@ -403,7 +499,10 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Constant: 0:45 3 (const int) 0:46 Sequence @@ -413,7 +512,10 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Constant: 0:46 3 (const int) 0:47 Sequence @@ -423,7 +525,10 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c3' (uniform 3-component vector of float) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:51 Sequence @@ -433,7 +538,10 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c4' (uniform 4-component vector of float) +0:51 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence @@ -443,7 +551,10 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c4' (uniform 4-component vector of float) +0:52 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) 0:52 Constant: 0:52 0 (const int) 0:53 Sequence @@ -453,7 +564,10 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c4' (uniform 4-component vector of float) +0:53 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) 0:53 Constant: 0:53 0 (const int) 0:55 Sequence @@ -463,7 +577,10 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 'c4' (uniform 4-component vector of float) +0:55 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) 0:55 Constant: 0:55 1 (const int) 0:56 Sequence @@ -473,7 +590,10 @@ gl_FragCoord origin is upper left 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c4' (uniform 4-component vector of float) +0:56 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence @@ -483,7 +603,10 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c4' (uniform 4-component vector of float) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 1 (const int) 0:59 Sequence @@ -493,7 +616,10 @@ gl_FragCoord origin is upper left 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c4' (uniform 4-component vector of float) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 2 (const int) 0:60 Sequence @@ -503,7 +629,10 @@ gl_FragCoord origin is upper left 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c4' (uniform 4-component vector of float) +0:60 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) 0:60 Constant: 0:60 2 (const int) 0:61 Sequence @@ -513,7 +642,10 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c4' (uniform 4-component vector of float) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 2 (const int) 0:63 Sequence @@ -523,7 +655,10 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c4' (uniform 4-component vector of float) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 Sequence @@ -533,7 +668,10 @@ gl_FragCoord origin is upper left 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c4' (uniform 4-component vector of float) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:65 Sequence @@ -543,7 +681,10 @@ gl_FragCoord origin is upper left 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c4' (uniform 4-component vector of float) +0:65 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -590,85 +731,90 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 227 +// Id's are bound by 248 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 204 208 + EntryPoint Fragment 4 "main" 230 234 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4a" Name 16 "g_sSamp" - Name 22 "c3" - Name 29 "txval01" - Name 32 "g_tTex2di4a" - Name 42 "txval02" - Name 45 "g_tTex2du4a" - Name 52 "txval10" - Name 59 "txval11" - Name 65 "txval12" - Name 71 "txval20" - Name 78 "txval21" - Name 84 "txval22" - Name 90 "txval30" - Name 97 "txval31" - Name 103 "txval32" - Name 109 "txval40" - Name 112 "g_tTexcdf4a" - Name 118 "c4" - Name 121 "txval41" - Name 124 "g_tTexcdi4a" - Name 131 "txval42" - Name 134 "g_tTexcdu4a" - Name 141 "txval50" - Name 147 "txval51" - Name 153 "txval52" - Name 159 "txval60" - Name 165 "txval61" - Name 171 "txval62" - Name 177 "txval70" - Name 183 "txval71" - Name 189 "txval72" - Name 195 "PS_OUTPUT" - MemberName 195(PS_OUTPUT) 0 "Color" - MemberName 195(PS_OUTPUT) 1 "Depth" - Name 197 "psout" - Name 204 "Color" - Name 208 "Depth" - Name 212 "g_sSamp2d" - Name 215 "g_tTex1df4a" - Name 218 "g_tTex1di4a" - Name 221 "g_tTex1du4a" - Name 223 "c1" - Name 226 "c2" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4a" + Name 48 "txval02" + Name 51 "g_tTex2du4a" + Name 59 "txval10" + Name 67 "txval11" + Name 74 "txval12" + Name 81 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4a" + Name 136 "txval41" + Name 139 "g_tTexcdi4a" + Name 147 "txval42" + Name 150 "g_tTexcdu4a" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 244 "g_tTex1di4a" + Name 247 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4a) DescriptorSet 0 - Decorate 45(g_tTex2du4a) DescriptorSet 0 - Decorate 112(g_tTexcdf4a) DescriptorSet 0 - Decorate 124(g_tTexcdi4a) DescriptorSet 0 - Decorate 134(g_tTexcdu4a) DescriptorSet 0 - Decorate 204(Color) Location 0 - Decorate 208(Depth) BuiltIn FragDepth - Decorate 212(g_sSamp2d) DescriptorSet 0 - Decorate 215(g_tTex1df4a) DescriptorSet 0 - Decorate 215(g_tTex1df4a) Binding 0 - Decorate 218(g_tTex1di4a) DescriptorSet 0 - Decorate 221(g_tTex1du4a) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4a) DescriptorSet 0 + Decorate 51(g_tTex2du4a) DescriptorSet 0 + Decorate 127(g_tTexcdf4a) DescriptorSet 0 + Decorate 139(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 0 + Decorate 244(g_tTex1di4a) DescriptorSet 0 + Decorate 247(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -681,245 +827,266 @@ gl_FragCoord origin is upper left 15: TypePointer UniformConstant 14 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: TypePointer UniformConstant 20(fvec3) - 22(c3): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4a): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 2D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex2du4a): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 57: 24(int) Constant 1 - 76: 24(int) Constant 2 - 95: 24(int) Constant 3 - 110: TypeImage 6(float) Cube array sampled format:Unknown - 111: TypePointer UniformConstant 110 -112(g_tTexcdf4a): 111(ptr) Variable UniformConstant - 115: TypeSampledImage 110 - 117: TypePointer UniformConstant 7(fvec4) - 118(c4): 117(ptr) Variable UniformConstant - 122: TypeImage 24(int) Cube array sampled format:Unknown - 123: TypePointer UniformConstant 122 -124(g_tTexcdi4a): 123(ptr) Variable UniformConstant - 127: TypeSampledImage 122 - 132: TypeImage 39(int) Cube array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTexcdu4a): 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 195(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 196: TypePointer Function 195(PS_OUTPUT) - 198: 6(float) Constant 1065353216 - 199: 7(fvec4) ConstantComposite 198 198 198 198 - 201: TypePointer Function 6(float) - 203: TypePointer Output 7(fvec4) - 204(Color): 203(ptr) Variable Output - 207: TypePointer Output 6(float) - 208(Depth): 207(ptr) Variable Output - 212(g_sSamp2d): 15(ptr) Variable UniformConstant - 213: TypeImage 6(float) 1D array sampled format:Unknown - 214: TypePointer UniformConstant 213 -215(g_tTex1df4a): 214(ptr) Variable UniformConstant - 216: TypeImage 24(int) 1D array sampled format:Unknown - 217: TypePointer UniformConstant 216 -218(g_tTex1di4a): 217(ptr) Variable UniformConstant - 219: TypeImage 39(int) 1D array sampled format:Unknown - 220: TypePointer UniformConstant 219 -221(g_tTex1du4a): 220(ptr) Variable UniformConstant - 222: TypePointer UniformConstant 6(float) - 223(c1): 222(ptr) Variable UniformConstant - 224: TypeVector 6(float) 2 - 225: TypePointer UniformConstant 224(fvec2) - 226(c2): 225(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 27: TypePointer Uniform 21(fvec3) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4a): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 65: 25(int) Constant 1 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTexcdf4a): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 7(fvec4) + 137: TypeImage 25(int) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdi4a): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D array sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242: TypeImage 25(int) 1D array sampled format:Unknown + 243: TypePointer UniformConstant 242 +244(g_tTex1di4a): 243(ptr) Variable UniformConstant + 245: TypeImage 45(int) 1D array sampled format:Unknown + 246: TypePointer UniformConstant 245 +247(g_tTex1du4a): 246(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function - 29(txval01): 28(ptr) Variable Function - 42(txval02): 41(ptr) Variable Function - 52(txval10): 8(ptr) Variable Function - 59(txval11): 28(ptr) Variable Function - 65(txval12): 41(ptr) Variable Function - 71(txval20): 8(ptr) Variable Function - 78(txval21): 28(ptr) Variable Function - 84(txval22): 41(ptr) Variable Function - 90(txval30): 8(ptr) Variable Function - 97(txval31): 28(ptr) Variable Function - 103(txval32): 41(ptr) Variable Function - 109(txval40): 8(ptr) Variable Function - 121(txval41): 28(ptr) Variable Function - 131(txval42): 41(ptr) Variable Function - 141(txval50): 8(ptr) Variable Function - 147(txval51): 28(ptr) Variable Function - 153(txval52): 41(ptr) Variable Function - 159(txval60): 8(ptr) Variable Function - 165(txval61): 28(ptr) Variable Function - 171(txval62): 41(ptr) Variable Function - 177(txval70): 8(ptr) Variable Function - 183(txval71): 28(ptr) Variable Function - 189(txval72): 41(ptr) Variable Function - 197(psout): 196(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 67(txval11): 33(ptr) Variable Function + 74(txval12): 47(ptr) Variable Function + 81(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function 13: 10 Load 12(g_tTex2df4a) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec3) Load 22(c3) - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval00) 26 - 33: 30 Load 32(g_tTex2di4a) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 37: 20(fvec3) Load 22(c3) - 38: 27(ivec4) ImageGather 36 37 25 - Store 29(txval01) 38 - 46: 43 Load 45(g_tTex2du4a) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 50: 20(fvec3) Load 22(c3) - 51: 40(ivec4) ImageGather 49 50 25 - Store 42(txval02) 51 - 53: 10 Load 12(g_tTex2df4a) - 54: 14 Load 16(g_sSamp) - 55: 18 SampledImage 53 54 - 56: 20(fvec3) Load 22(c3) - 58: 7(fvec4) ImageGather 55 56 57 - Store 52(txval10) 58 - 60: 30 Load 32(g_tTex2di4a) + 28: 27(ptr) AccessChain 24 26 + 29: 21(fvec3) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4a) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 21(fvec3) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4a) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 21(fvec3) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4a) 61: 14 Load 16(g_sSamp) - 62: 35 SampledImage 60 61 - 63: 20(fvec3) Load 22(c3) - 64: 27(ivec4) ImageGather 62 63 57 - Store 59(txval11) 64 - 66: 43 Load 45(g_tTex2du4a) - 67: 14 Load 16(g_sSamp) - 68: 48 SampledImage 66 67 - 69: 20(fvec3) Load 22(c3) - 70: 40(ivec4) ImageGather 68 69 57 - Store 65(txval12) 70 - 72: 10 Load 12(g_tTex2df4a) - 73: 14 Load 16(g_sSamp) - 74: 18 SampledImage 72 73 - 75: 20(fvec3) Load 22(c3) - 77: 7(fvec4) ImageGather 74 75 76 - Store 71(txval20) 77 - 79: 30 Load 32(g_tTex2di4a) - 80: 14 Load 16(g_sSamp) - 81: 35 SampledImage 79 80 - 82: 20(fvec3) Load 22(c3) - 83: 27(ivec4) ImageGather 81 82 76 - Store 78(txval21) 83 - 85: 43 Load 45(g_tTex2du4a) - 86: 14 Load 16(g_sSamp) - 87: 48 SampledImage 85 86 - 88: 20(fvec3) Load 22(c3) - 89: 40(ivec4) ImageGather 87 88 76 - Store 84(txval22) 89 - 91: 10 Load 12(g_tTex2df4a) - 92: 14 Load 16(g_sSamp) - 93: 18 SampledImage 91 92 - 94: 20(fvec3) Load 22(c3) - 96: 7(fvec4) ImageGather 93 94 95 - Store 90(txval30) 96 - 98: 30 Load 32(g_tTex2di4a) - 99: 14 Load 16(g_sSamp) - 100: 35 SampledImage 98 99 - 101: 20(fvec3) Load 22(c3) - 102: 27(ivec4) ImageGather 100 101 95 - Store 97(txval31) 102 - 104: 43 Load 45(g_tTex2du4a) - 105: 14 Load 16(g_sSamp) - 106: 48 SampledImage 104 105 - 107: 20(fvec3) Load 22(c3) - 108: 40(ivec4) ImageGather 106 107 95 - Store 103(txval32) 108 - 113: 110 Load 112(g_tTexcdf4a) - 114: 14 Load 16(g_sSamp) - 116: 115 SampledImage 113 114 - 119: 7(fvec4) Load 118(c4) - 120: 7(fvec4) ImageGather 116 119 25 - Store 109(txval40) 120 - 125: 122 Load 124(g_tTexcdi4a) - 126: 14 Load 16(g_sSamp) - 128: 127 SampledImage 125 126 - 129: 7(fvec4) Load 118(c4) - 130: 27(ivec4) ImageGather 128 129 25 - Store 121(txval41) 130 - 135: 132 Load 134(g_tTexcdu4a) - 136: 14 Load 16(g_sSamp) - 138: 137 SampledImage 135 136 - 139: 7(fvec4) Load 118(c4) - 140: 40(ivec4) ImageGather 138 139 25 - Store 131(txval42) 140 - 142: 110 Load 112(g_tTexcdf4a) - 143: 14 Load 16(g_sSamp) - 144: 115 SampledImage 142 143 - 145: 7(fvec4) Load 118(c4) - 146: 7(fvec4) ImageGather 144 145 57 - Store 141(txval50) 146 - 148: 122 Load 124(g_tTexcdi4a) - 149: 14 Load 16(g_sSamp) - 150: 127 SampledImage 148 149 - 151: 7(fvec4) Load 118(c4) - 152: 27(ivec4) ImageGather 150 151 57 - Store 147(txval51) 152 - 154: 132 Load 134(g_tTexcdu4a) - 155: 14 Load 16(g_sSamp) - 156: 137 SampledImage 154 155 - 157: 7(fvec4) Load 118(c4) - 158: 40(ivec4) ImageGather 156 157 57 - Store 153(txval52) 158 - 160: 110 Load 112(g_tTexcdf4a) - 161: 14 Load 16(g_sSamp) - 162: 115 SampledImage 160 161 - 163: 7(fvec4) Load 118(c4) - 164: 7(fvec4) ImageGather 162 163 76 - Store 159(txval60) 164 - 166: 122 Load 124(g_tTexcdi4a) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 21(fvec3) Load 63 + 66: 7(fvec4) ImageGather 62 64 65 + Store 59(txval10) 66 + 68: 35 Load 37(g_tTex2di4a) + 69: 14 Load 16(g_sSamp) + 70: 40 SampledImage 68 69 + 71: 27(ptr) AccessChain 24 26 + 72: 21(fvec3) Load 71 + 73: 32(ivec4) ImageGather 70 72 65 + Store 67(txval11) 73 + 75: 49 Load 51(g_tTex2du4a) + 76: 14 Load 16(g_sSamp) + 77: 54 SampledImage 75 76 + 78: 27(ptr) AccessChain 24 26 + 79: 21(fvec3) Load 78 + 80: 46(ivec4) ImageGather 77 79 65 + Store 74(txval12) 80 + 82: 10 Load 12(g_tTex2df4a) + 83: 14 Load 16(g_sSamp) + 84: 18 SampledImage 82 83 + 85: 27(ptr) AccessChain 24 26 + 86: 21(fvec3) Load 85 + 87: 7(fvec4) ImageGather 84 86 26 + Store 81(txval20) 87 + 89: 35 Load 37(g_tTex2di4a) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 21(fvec3) Load 92 + 94: 32(ivec4) ImageGather 91 93 26 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4a) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 21(fvec3) Load 99 + 101: 46(ivec4) ImageGather 98 100 26 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4a) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 21(fvec3) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4a) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 21(fvec3) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4a) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 21(fvec3) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4a) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 108 + 134: 7(fvec4) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4a) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 108 + 145: 7(fvec4) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4a) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 108 + 156: 7(fvec4) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4a) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 108 + 163: 7(fvec4) Load 162 + 164: 7(fvec4) ImageGather 161 163 65 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4a) 167: 14 Load 16(g_sSamp) - 168: 127 SampledImage 166 167 - 169: 7(fvec4) Load 118(c4) - 170: 27(ivec4) ImageGather 168 169 76 - Store 165(txval61) 170 - 172: 132 Load 134(g_tTexcdu4a) - 173: 14 Load 16(g_sSamp) - 174: 137 SampledImage 172 173 - 175: 7(fvec4) Load 118(c4) - 176: 40(ivec4) ImageGather 174 175 76 - Store 171(txval62) 176 - 178: 110 Load 112(g_tTexcdf4a) - 179: 14 Load 16(g_sSamp) - 180: 115 SampledImage 178 179 - 181: 7(fvec4) Load 118(c4) - 182: 7(fvec4) ImageGather 180 181 95 - Store 177(txval70) 182 - 184: 122 Load 124(g_tTexcdi4a) - 185: 14 Load 16(g_sSamp) - 186: 127 SampledImage 184 185 - 187: 7(fvec4) Load 118(c4) - 188: 27(ivec4) ImageGather 186 187 95 - Store 183(txval71) 188 - 190: 132 Load 134(g_tTexcdu4a) - 191: 14 Load 16(g_sSamp) - 192: 137 SampledImage 190 191 - 193: 7(fvec4) Load 118(c4) - 194: 40(ivec4) ImageGather 192 193 95 - Store 189(txval72) 194 - 200: 8(ptr) AccessChain 197(psout) 25 - Store 200 199 - 202: 201(ptr) AccessChain 197(psout) 57 - Store 202 198 - 205: 8(ptr) AccessChain 197(psout) 25 - 206: 7(fvec4) Load 205 - Store 204(Color) 206 - 209: 201(ptr) AccessChain 197(psout) 57 - 210: 6(float) Load 209 - Store 208(Depth) 210 + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 108 + 170: 7(fvec4) Load 169 + 171: 32(ivec4) ImageGather 168 170 65 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4a) + 174: 14 Load 16(g_sSamp) + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 108 + 177: 7(fvec4) Load 176 + 178: 46(ivec4) ImageGather 175 177 65 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4a) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 108 + 184: 7(fvec4) Load 183 + 185: 7(fvec4) ImageGather 182 184 26 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4a) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 108 + 191: 7(fvec4) Load 190 + 192: 32(ivec4) ImageGather 189 191 26 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4a) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 108 + 198: 7(fvec4) Load 197 + 199: 46(ivec4) ImageGather 196 198 26 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4a) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 108 + 205: 7(fvec4) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4a) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 108 + 212: 7(fvec4) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4a) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 108 + 219: 7(fvec4) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 65 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 65 + 236: 6(float) Load 235 + Store 234(Depth) 236 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 2ec5343b..5cdf912e 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -12,7 +12,10 @@ gl_FragCoord origin is upper left 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c2' (uniform 2-component vector of float) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:40 Sequence @@ -22,7 +25,10 @@ gl_FragCoord origin is upper left 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c2' (uniform 2-component vector of float) +0:40 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence @@ -32,7 +38,10 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c2' (uniform 2-component vector of float) +0:41 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) 0:41 Constant: 0:41 0 (const int) 0:43 Sequence @@ -42,7 +51,10 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c2' (uniform 2-component vector of float) +0:43 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:44 Sequence @@ -52,7 +64,10 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c2' (uniform 2-component vector of float) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:45 Sequence @@ -62,7 +77,10 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c2' (uniform 2-component vector of float) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) 0:45 Constant: 0:45 1 (const int) 0:47 Sequence @@ -72,7 +90,10 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) 0:47 Constant: 0:47 2 (const int) 0:48 Sequence @@ -82,7 +103,10 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) 0:48 Constant: 0:48 2 (const int) 0:49 Sequence @@ -92,7 +116,10 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 'c2' (uniform 2-component vector of float) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) 0:49 Constant: 0:49 2 (const int) 0:51 Sequence @@ -102,7 +129,10 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 3 (const int) 0:52 Sequence @@ -112,7 +142,10 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 3 (const int) 0:53 Sequence @@ -122,7 +155,10 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c2' (uniform 2-component vector of float) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 3 (const int) 0:57 Sequence @@ -132,7 +168,10 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 0 (const int) 0:58 Sequence @@ -142,7 +181,10 @@ gl_FragCoord origin is upper left 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 0 (const int) 0:59 Sequence @@ -152,7 +194,10 @@ gl_FragCoord origin is upper left 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c3' (uniform 3-component vector of float) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 0 (const int) 0:61 Sequence @@ -162,7 +207,10 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence @@ -172,7 +220,10 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence @@ -182,7 +233,10 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c3' (uniform 3-component vector of float) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) 0:63 Constant: 0:63 1 (const int) 0:65 Sequence @@ -192,7 +246,10 @@ gl_FragCoord origin is upper left 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c3' (uniform 3-component vector of float) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) 0:65 Constant: 0:65 2 (const int) 0:66 Sequence @@ -202,7 +259,10 @@ gl_FragCoord origin is upper left 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c3' (uniform 3-component vector of float) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) 0:66 Constant: 0:66 2 (const int) 0:67 Sequence @@ -212,7 +272,10 @@ gl_FragCoord origin is upper left 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c3' (uniform 3-component vector of float) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) 0:67 Constant: 0:67 2 (const int) 0:69 Sequence @@ -222,7 +285,10 @@ gl_FragCoord origin is upper left 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:69 'c3' (uniform 3-component vector of float) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) 0:69 Constant: 0:69 3 (const int) 0:70 Sequence @@ -232,7 +298,10 @@ gl_FragCoord origin is upper left 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:70 'c3' (uniform 3-component vector of float) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) 0:70 Constant: 0:70 3 (const int) 0:71 Sequence @@ -242,7 +311,10 @@ gl_FragCoord origin is upper left 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:71 'c3' (uniform 3-component vector of float) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) @@ -293,12 +365,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -307,7 +376,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence @@ -317,7 +386,10 @@ gl_FragCoord origin is upper left 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c2' (uniform 2-component vector of float) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:40 Sequence @@ -327,7 +399,10 @@ gl_FragCoord origin is upper left 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c2' (uniform 2-component vector of float) +0:40 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence @@ -337,7 +412,10 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c2' (uniform 2-component vector of float) +0:41 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) 0:41 Constant: 0:41 0 (const int) 0:43 Sequence @@ -347,7 +425,10 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c2' (uniform 2-component vector of float) +0:43 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:44 Sequence @@ -357,7 +438,10 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c2' (uniform 2-component vector of float) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:45 Sequence @@ -367,7 +451,10 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c2' (uniform 2-component vector of float) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) 0:45 Constant: 0:45 1 (const int) 0:47 Sequence @@ -377,7 +464,10 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) 0:47 Constant: 0:47 2 (const int) 0:48 Sequence @@ -387,7 +477,10 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) 0:48 Constant: 0:48 2 (const int) 0:49 Sequence @@ -397,7 +490,10 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 'c2' (uniform 2-component vector of float) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) 0:49 Constant: 0:49 2 (const int) 0:51 Sequence @@ -407,7 +503,10 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 3 (const int) 0:52 Sequence @@ -417,7 +516,10 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 3 (const int) 0:53 Sequence @@ -427,7 +529,10 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c2' (uniform 2-component vector of float) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 3 (const int) 0:57 Sequence @@ -437,7 +542,10 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 0 (const int) 0:58 Sequence @@ -447,7 +555,10 @@ gl_FragCoord origin is upper left 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 0 (const int) 0:59 Sequence @@ -457,7 +568,10 @@ gl_FragCoord origin is upper left 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c3' (uniform 3-component vector of float) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 0 (const int) 0:61 Sequence @@ -467,7 +581,10 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence @@ -477,7 +594,10 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence @@ -487,7 +607,10 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c3' (uniform 3-component vector of float) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) 0:63 Constant: 0:63 1 (const int) 0:65 Sequence @@ -497,7 +620,10 @@ gl_FragCoord origin is upper left 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c3' (uniform 3-component vector of float) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) 0:65 Constant: 0:65 2 (const int) 0:66 Sequence @@ -507,7 +633,10 @@ gl_FragCoord origin is upper left 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c3' (uniform 3-component vector of float) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) 0:66 Constant: 0:66 2 (const int) 0:67 Sequence @@ -517,7 +646,10 @@ gl_FragCoord origin is upper left 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c3' (uniform 3-component vector of float) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) 0:67 Constant: 0:67 2 (const int) 0:69 Sequence @@ -527,7 +659,10 @@ gl_FragCoord origin is upper left 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:69 'c3' (uniform 3-component vector of float) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) 0:69 Constant: 0:69 3 (const int) 0:70 Sequence @@ -537,7 +672,10 @@ gl_FragCoord origin is upper left 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:70 'c3' (uniform 3-component vector of float) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) 0:70 Constant: 0:70 3 (const int) 0:71 Sequence @@ -547,7 +685,10 @@ gl_FragCoord origin is upper left 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:71 'c3' (uniform 3-component vector of float) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) @@ -598,93 +739,98 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 237 +// Id's are bound by 258 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 209 + EntryPoint Fragment 4 "main" 230 234 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4" Name 16 "g_sSamp" - Name 22 "c2" - Name 29 "txval01" - Name 32 "g_tTex2di4" - Name 42 "txval02" - Name 45 "g_tTex2du4" - Name 52 "txval10" - Name 59 "txval11" - Name 65 "txval12" - Name 71 "txval20" - Name 78 "txval21" - Name 84 "txval22" - Name 90 "txval30" - Name 97 "txval31" - Name 103 "txval32" - Name 109 "txval40" - Name 112 "g_tTexcdf4" - Name 119 "c3" - Name 122 "txval41" - Name 125 "g_tTexcdi4" - Name 132 "txval42" - Name 135 "g_tTexcdu4" - Name 142 "txval50" - Name 148 "txval51" - Name 154 "txval52" - Name 160 "txval60" - Name 166 "txval61" - Name 172 "txval62" - Name 178 "txval70" - Name 184 "txval71" - Name 190 "txval72" - Name 196 "PS_OUTPUT" - MemberName 196(PS_OUTPUT) 0 "Color" - MemberName 196(PS_OUTPUT) 1 "Depth" - Name 198 "psout" - Name 205 "Color" - Name 209 "Depth" - Name 213 "g_sSamp2d" - Name 216 "g_tTex1df4a" - Name 217 "g_tTex1df4" - Name 220 "g_tTex1di4" - Name 223 "g_tTex1du4" - Name 226 "g_tTex3df4" - Name 229 "g_tTex3di4" - Name 232 "g_tTex3du4" - Name 234 "c1" - Name 236 "c4" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4" + Name 48 "txval02" + Name 51 "g_tTex2du4" + Name 59 "txval10" + Name 66 "txval11" + Name 73 "txval12" + Name 80 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4" + Name 136 "txval41" + Name 139 "g_tTexcdi4" + Name 147 "txval42" + Name 150 "g_tTexcdu4" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 242 "g_tTex1df4" + Name 245 "g_tTex1di4" + Name 248 "g_tTex1du4" + Name 251 "g_tTex3df4" + Name 254 "g_tTex3di4" + Name 257 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4) DescriptorSet 0 - Decorate 45(g_tTex2du4) DescriptorSet 0 - Decorate 112(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 135(g_tTexcdu4) DescriptorSet 0 - Decorate 205(Color) Location 0 - Decorate 209(Depth) BuiltIn FragDepth - Decorate 213(g_sSamp2d) DescriptorSet 0 - Decorate 216(g_tTex1df4a) DescriptorSet 0 - Decorate 216(g_tTex1df4a) Binding 1 - Decorate 217(g_tTex1df4) DescriptorSet 0 - Decorate 217(g_tTex1df4) Binding 0 - Decorate 220(g_tTex1di4) DescriptorSet 0 - Decorate 223(g_tTex1du4) DescriptorSet 0 - Decorate 226(g_tTex3df4) DescriptorSet 0 - Decorate 229(g_tTex3di4) DescriptorSet 0 - Decorate 232(g_tTex3du4) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 150(g_tTexcdu4) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 1 + Decorate 242(g_tTex1df4) DescriptorSet 0 + Decorate 242(g_tTex1df4) Binding 0 + Decorate 245(g_tTex1di4) DescriptorSet 0 + Decorate 248(g_tTex1du4) DescriptorSet 0 + Decorate 251(g_tTex3df4) DescriptorSet 0 + Decorate 254(g_tTex3di4) DescriptorSet 0 + Decorate 257(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -698,254 +844,275 @@ gl_FragCoord origin is upper left 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 20: TypeVector 6(float) 2 - 21: TypePointer UniformConstant 20(fvec2) - 22(c2): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 2D sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex2du4): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 57: 24(int) Constant 1 - 76: 24(int) Constant 2 - 95: 24(int) Constant 3 - 110: TypeImage 6(float) Cube sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTexcdf4): 111(ptr) Variable UniformConstant - 115: TypeSampledImage 110 - 117: TypeVector 6(float) 3 - 118: TypePointer UniformConstant 117(fvec3) - 119(c3): 118(ptr) Variable UniformConstant - 123: TypeImage 24(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 128: TypeSampledImage 123 - 133: TypeImage 39(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdu4): 134(ptr) Variable UniformConstant - 138: TypeSampledImage 133 - 196(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 197: TypePointer Function 196(PS_OUTPUT) - 199: 6(float) Constant 1065353216 - 200: 7(fvec4) ConstantComposite 199 199 199 199 - 202: TypePointer Function 6(float) - 204: TypePointer Output 7(fvec4) - 205(Color): 204(ptr) Variable Output - 208: TypePointer Output 6(float) - 209(Depth): 208(ptr) Variable Output - 213(g_sSamp2d): 15(ptr) Variable UniformConstant - 214: TypeImage 6(float) 1D sampled format:Unknown - 215: TypePointer UniformConstant 214 -216(g_tTex1df4a): 215(ptr) Variable UniformConstant - 217(g_tTex1df4): 215(ptr) Variable UniformConstant - 218: TypeImage 24(int) 1D sampled format:Unknown - 219: TypePointer UniformConstant 218 - 220(g_tTex1di4): 219(ptr) Variable UniformConstant - 221: TypeImage 39(int) 1D sampled format:Unknown - 222: TypePointer UniformConstant 221 - 223(g_tTex1du4): 222(ptr) Variable UniformConstant - 224: TypeImage 6(float) 3D sampled format:Unknown - 225: TypePointer UniformConstant 224 - 226(g_tTex3df4): 225(ptr) Variable UniformConstant - 227: TypeImage 24(int) 3D sampled format:Unknown - 228: TypePointer UniformConstant 227 - 229(g_tTex3di4): 228(ptr) Variable UniformConstant - 230: TypeImage 39(int) 3D sampled format:Unknown - 231: TypePointer UniformConstant 230 - 232(g_tTex3du4): 231(ptr) Variable UniformConstant - 233: TypePointer UniformConstant 6(float) - 234(c1): 233(ptr) Variable UniformConstant - 235: TypePointer UniformConstant 7(fvec4) - 236(c4): 235(ptr) Variable UniformConstant + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 1 + 27: TypePointer Uniform 20(fvec2) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 86: 25(int) Constant 2 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdf4): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 21(fvec3) + 137: TypeImage 25(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdu4): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242(g_tTex1df4): 240(ptr) Variable UniformConstant + 243: TypeImage 25(int) 1D sampled format:Unknown + 244: TypePointer UniformConstant 243 + 245(g_tTex1di4): 244(ptr) Variable UniformConstant + 246: TypeImage 45(int) 1D sampled format:Unknown + 247: TypePointer UniformConstant 246 + 248(g_tTex1du4): 247(ptr) Variable UniformConstant + 249: TypeImage 6(float) 3D sampled format:Unknown + 250: TypePointer UniformConstant 249 + 251(g_tTex3df4): 250(ptr) Variable UniformConstant + 252: TypeImage 25(int) 3D sampled format:Unknown + 253: TypePointer UniformConstant 252 + 254(g_tTex3di4): 253(ptr) Variable UniformConstant + 255: TypeImage 45(int) 3D sampled format:Unknown + 256: TypePointer UniformConstant 255 + 257(g_tTex3du4): 256(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function - 29(txval01): 28(ptr) Variable Function - 42(txval02): 41(ptr) Variable Function - 52(txval10): 8(ptr) Variable Function - 59(txval11): 28(ptr) Variable Function - 65(txval12): 41(ptr) Variable Function - 71(txval20): 8(ptr) Variable Function - 78(txval21): 28(ptr) Variable Function - 84(txval22): 41(ptr) Variable Function - 90(txval30): 8(ptr) Variable Function - 97(txval31): 28(ptr) Variable Function - 103(txval32): 41(ptr) Variable Function - 109(txval40): 8(ptr) Variable Function - 122(txval41): 28(ptr) Variable Function - 132(txval42): 41(ptr) Variable Function - 142(txval50): 8(ptr) Variable Function - 148(txval51): 28(ptr) Variable Function - 154(txval52): 41(ptr) Variable Function - 160(txval60): 8(ptr) Variable Function - 166(txval61): 28(ptr) Variable Function - 172(txval62): 41(ptr) Variable Function - 178(txval70): 8(ptr) Variable Function - 184(txval71): 28(ptr) Variable Function - 190(txval72): 41(ptr) Variable Function - 198(psout): 197(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 66(txval11): 33(ptr) Variable Function + 73(txval12): 47(ptr) Variable Function + 80(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function 13: 10 Load 12(g_tTex2df4) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec2) Load 22(c2) - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval00) 26 - 33: 30 Load 32(g_tTex2di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 37: 20(fvec2) Load 22(c2) - 38: 27(ivec4) ImageGather 36 37 25 - Store 29(txval01) 38 - 46: 43 Load 45(g_tTex2du4) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 50: 20(fvec2) Load 22(c2) - 51: 40(ivec4) ImageGather 49 50 25 - Store 42(txval02) 51 - 53: 10 Load 12(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 55: 18 SampledImage 53 54 - 56: 20(fvec2) Load 22(c2) - 58: 7(fvec4) ImageGather 55 56 57 - Store 52(txval10) 58 - 60: 30 Load 32(g_tTex2di4) + 28: 27(ptr) AccessChain 24 26 + 29: 20(fvec2) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 20(fvec2) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 20(fvec2) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4) 61: 14 Load 16(g_sSamp) - 62: 35 SampledImage 60 61 - 63: 20(fvec2) Load 22(c2) - 64: 27(ivec4) ImageGather 62 63 57 - Store 59(txval11) 64 - 66: 43 Load 45(g_tTex2du4) - 67: 14 Load 16(g_sSamp) - 68: 48 SampledImage 66 67 - 69: 20(fvec2) Load 22(c2) - 70: 40(ivec4) ImageGather 68 69 57 - Store 65(txval12) 70 - 72: 10 Load 12(g_tTex2df4) - 73: 14 Load 16(g_sSamp) - 74: 18 SampledImage 72 73 - 75: 20(fvec2) Load 22(c2) - 77: 7(fvec4) ImageGather 74 75 76 - Store 71(txval20) 77 - 79: 30 Load 32(g_tTex2di4) - 80: 14 Load 16(g_sSamp) - 81: 35 SampledImage 79 80 - 82: 20(fvec2) Load 22(c2) - 83: 27(ivec4) ImageGather 81 82 76 - Store 78(txval21) 83 - 85: 43 Load 45(g_tTex2du4) - 86: 14 Load 16(g_sSamp) - 87: 48 SampledImage 85 86 - 88: 20(fvec2) Load 22(c2) - 89: 40(ivec4) ImageGather 87 88 76 - Store 84(txval22) 89 - 91: 10 Load 12(g_tTex2df4) - 92: 14 Load 16(g_sSamp) - 93: 18 SampledImage 91 92 - 94: 20(fvec2) Load 22(c2) - 96: 7(fvec4) ImageGather 93 94 95 - Store 90(txval30) 96 - 98: 30 Load 32(g_tTex2di4) - 99: 14 Load 16(g_sSamp) - 100: 35 SampledImage 98 99 - 101: 20(fvec2) Load 22(c2) - 102: 27(ivec4) ImageGather 100 101 95 - Store 97(txval31) 102 - 104: 43 Load 45(g_tTex2du4) - 105: 14 Load 16(g_sSamp) - 106: 48 SampledImage 104 105 - 107: 20(fvec2) Load 22(c2) - 108: 40(ivec4) ImageGather 106 107 95 - Store 103(txval32) 108 - 113: 110 Load 112(g_tTexcdf4) - 114: 14 Load 16(g_sSamp) - 116: 115 SampledImage 113 114 - 120: 117(fvec3) Load 119(c3) - 121: 7(fvec4) ImageGather 116 120 25 - Store 109(txval40) 121 - 126: 123 Load 125(g_tTexcdi4) - 127: 14 Load 16(g_sSamp) - 129: 128 SampledImage 126 127 - 130: 117(fvec3) Load 119(c3) - 131: 27(ivec4) ImageGather 129 130 25 - Store 122(txval41) 131 - 136: 133 Load 135(g_tTexcdu4) - 137: 14 Load 16(g_sSamp) - 139: 138 SampledImage 136 137 - 140: 117(fvec3) Load 119(c3) - 141: 40(ivec4) ImageGather 139 140 25 - Store 132(txval42) 141 - 143: 110 Load 112(g_tTexcdf4) - 144: 14 Load 16(g_sSamp) - 145: 115 SampledImage 143 144 - 146: 117(fvec3) Load 119(c3) - 147: 7(fvec4) ImageGather 145 146 57 - Store 142(txval50) 147 - 149: 123 Load 125(g_tTexcdi4) - 150: 14 Load 16(g_sSamp) - 151: 128 SampledImage 149 150 - 152: 117(fvec3) Load 119(c3) - 153: 27(ivec4) ImageGather 151 152 57 - Store 148(txval51) 153 - 155: 133 Load 135(g_tTexcdu4) - 156: 14 Load 16(g_sSamp) - 157: 138 SampledImage 155 156 - 158: 117(fvec3) Load 119(c3) - 159: 40(ivec4) ImageGather 157 158 57 - Store 154(txval52) 159 - 161: 110 Load 112(g_tTexcdf4) - 162: 14 Load 16(g_sSamp) - 163: 115 SampledImage 161 162 - 164: 117(fvec3) Load 119(c3) - 165: 7(fvec4) ImageGather 163 164 76 - Store 160(txval60) 165 - 167: 123 Load 125(g_tTexcdi4) - 168: 14 Load 16(g_sSamp) - 169: 128 SampledImage 167 168 - 170: 117(fvec3) Load 119(c3) - 171: 27(ivec4) ImageGather 169 170 76 - Store 166(txval61) 171 - 173: 133 Load 135(g_tTexcdu4) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 20(fvec2) Load 63 + 65: 7(fvec4) ImageGather 62 64 26 + Store 59(txval10) 65 + 67: 35 Load 37(g_tTex2di4) + 68: 14 Load 16(g_sSamp) + 69: 40 SampledImage 67 68 + 70: 27(ptr) AccessChain 24 26 + 71: 20(fvec2) Load 70 + 72: 32(ivec4) ImageGather 69 71 26 + Store 66(txval11) 72 + 74: 49 Load 51(g_tTex2du4) + 75: 14 Load 16(g_sSamp) + 76: 54 SampledImage 74 75 + 77: 27(ptr) AccessChain 24 26 + 78: 20(fvec2) Load 77 + 79: 46(ivec4) ImageGather 76 78 26 + Store 73(txval12) 79 + 81: 10 Load 12(g_tTex2df4) + 82: 14 Load 16(g_sSamp) + 83: 18 SampledImage 81 82 + 84: 27(ptr) AccessChain 24 26 + 85: 20(fvec2) Load 84 + 87: 7(fvec4) ImageGather 83 85 86 + Store 80(txval20) 87 + 89: 35 Load 37(g_tTex2di4) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 20(fvec2) Load 92 + 94: 32(ivec4) ImageGather 91 93 86 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 20(fvec2) Load 99 + 101: 46(ivec4) ImageGather 98 100 86 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 20(fvec2) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 20(fvec2) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 20(fvec2) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 86 + 134: 21(fvec3) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 86 + 145: 21(fvec3) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 86 + 156: 21(fvec3) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 86 + 163: 21(fvec3) Load 162 + 164: 7(fvec4) ImageGather 161 163 26 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4) + 167: 14 Load 16(g_sSamp) + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 86 + 170: 21(fvec3) Load 169 + 171: 32(ivec4) ImageGather 168 170 26 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4) 174: 14 Load 16(g_sSamp) - 175: 138 SampledImage 173 174 - 176: 117(fvec3) Load 119(c3) - 177: 40(ivec4) ImageGather 175 176 76 - Store 172(txval62) 177 - 179: 110 Load 112(g_tTexcdf4) - 180: 14 Load 16(g_sSamp) - 181: 115 SampledImage 179 180 - 182: 117(fvec3) Load 119(c3) - 183: 7(fvec4) ImageGather 181 182 95 - Store 178(txval70) 183 - 185: 123 Load 125(g_tTexcdi4) - 186: 14 Load 16(g_sSamp) - 187: 128 SampledImage 185 186 - 188: 117(fvec3) Load 119(c3) - 189: 27(ivec4) ImageGather 187 188 95 - Store 184(txval71) 189 - 191: 133 Load 135(g_tTexcdu4) - 192: 14 Load 16(g_sSamp) - 193: 138 SampledImage 191 192 - 194: 117(fvec3) Load 119(c3) - 195: 40(ivec4) ImageGather 193 194 95 - Store 190(txval72) 195 - 201: 8(ptr) AccessChain 198(psout) 25 - Store 201 200 - 203: 202(ptr) AccessChain 198(psout) 57 - Store 203 199 - 206: 8(ptr) AccessChain 198(psout) 25 - 207: 7(fvec4) Load 206 - Store 205(Color) 207 - 210: 202(ptr) AccessChain 198(psout) 57 - 211: 6(float) Load 210 - Store 209(Depth) 211 + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 86 + 177: 21(fvec3) Load 176 + 178: 46(ivec4) ImageGather 175 177 26 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 86 + 184: 21(fvec3) Load 183 + 185: 7(fvec4) ImageGather 182 184 86 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 86 + 191: 21(fvec3) Load 190 + 192: 32(ivec4) ImageGather 189 191 86 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 86 + 198: 21(fvec3) Load 197 + 199: 46(ivec4) ImageGather 196 198 86 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 86 + 205: 21(fvec3) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 86 + 212: 21(fvec3) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 86 + 219: 21(fvec3) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 26 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 26 + 236: 6(float) Load 235 + Store 234(Depth) 236 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index a869ba73..a04010f3 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -12,8 +12,14 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c2' (uniform 2-component vector of float) -0:46 'o2' (uniform 2-component vector of int) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:47 Sequence @@ -23,8 +29,14 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) -0:47 'o2' (uniform 2-component vector of int) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:47 Constant: 0:47 0 (const int) 0:48 Sequence @@ -34,8 +46,14 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) -0:48 'o2' (uniform 2-component vector of int) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:48 Constant: 0:48 0 (const int) 0:50 Sequence @@ -45,12 +63,27 @@ gl_FragCoord origin is upper left 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:50 'c2' (uniform 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) 0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) 0:50 Constant: 0:50 0 (const int) 0:51 Sequence @@ -60,12 +93,27 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence @@ -75,12 +123,27 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) 0:52 Constant: 0:52 0 (const int) 0:62 Sequence @@ -90,8 +153,14 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c2' (uniform 2-component vector of float) -0:62 'o2' (uniform 2-component vector of int) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence @@ -101,8 +170,14 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c2' (uniform 2-component vector of float) -0:63 'o2' (uniform 2-component vector of int) +0:63 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) 0:63 Constant: 0:63 1 (const int) 0:64 Sequence @@ -112,8 +187,14 @@ gl_FragCoord origin is upper left 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c2' (uniform 2-component vector of float) -0:64 'o2' (uniform 2-component vector of int) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) 0:64 Constant: 0:64 1 (const int) 0:66 Sequence @@ -123,12 +204,27 @@ gl_FragCoord origin is upper left 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c2' (uniform 2-component vector of float) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) 0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) 0:66 Constant: 0:66 1 (const int) 0:67 Sequence @@ -138,12 +234,27 @@ gl_FragCoord origin is upper left 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c2' (uniform 2-component vector of float) +0:67 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) 0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) 0:67 Constant: 0:67 1 (const int) 0:68 Sequence @@ -153,12 +264,27 @@ gl_FragCoord origin is upper left 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:68 'c2' (uniform 2-component vector of float) +0:68 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) 0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) 0:68 Constant: 0:68 1 (const int) 0:78 Sequence @@ -168,8 +294,14 @@ gl_FragCoord origin is upper left 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c2' (uniform 2-component vector of float) -0:78 'o2' (uniform 2-component vector of int) +0:78 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:79 Sequence @@ -179,8 +311,14 @@ gl_FragCoord origin is upper left 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:79 'c2' (uniform 2-component vector of float) -0:79 'o2' (uniform 2-component vector of int) +0:79 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) 0:79 Constant: 0:79 2 (const int) 0:80 Sequence @@ -190,8 +328,14 @@ gl_FragCoord origin is upper left 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:80 'c2' (uniform 2-component vector of float) -0:80 'o2' (uniform 2-component vector of int) +0:80 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) 0:80 Constant: 0:80 2 (const int) 0:82 Sequence @@ -201,12 +345,27 @@ gl_FragCoord origin is upper left 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:82 'c2' (uniform 2-component vector of float) +0:82 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) 0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) 0:82 Constant: 0:82 2 (const int) 0:83 Sequence @@ -216,12 +375,27 @@ gl_FragCoord origin is upper left 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:83 'c2' (uniform 2-component vector of float) +0:83 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) 0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) 0:83 Constant: 0:83 2 (const int) 0:84 Sequence @@ -231,12 +405,27 @@ gl_FragCoord origin is upper left 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:84 'c2' (uniform 2-component vector of float) +0:84 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) 0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) 0:84 Constant: 0:84 2 (const int) 0:94 Sequence @@ -246,8 +435,14 @@ gl_FragCoord origin is upper left 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c2' (uniform 2-component vector of float) -0:94 'o2' (uniform 2-component vector of int) +0:94 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:95 Sequence @@ -257,8 +452,14 @@ gl_FragCoord origin is upper left 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:95 'c2' (uniform 2-component vector of float) -0:95 'o2' (uniform 2-component vector of int) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) 0:95 Constant: 0:95 3 (const int) 0:96 Sequence @@ -268,8 +469,14 @@ gl_FragCoord origin is upper left 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:96 'c2' (uniform 2-component vector of float) -0:96 'o2' (uniform 2-component vector of int) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) 0:96 Constant: 0:96 3 (const int) 0:98 Sequence @@ -279,12 +486,27 @@ gl_FragCoord origin is upper left 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:98 'c2' (uniform 2-component vector of float) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) 0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) 0:98 Constant: 0:98 3 (const int) 0:99 Sequence @@ -294,12 +516,27 @@ gl_FragCoord origin is upper left 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:99 'c2' (uniform 2-component vector of float) +0:99 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) 0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) 0:99 Constant: 0:99 3 (const int) 0:100 Sequence @@ -309,12 +546,27 @@ gl_FragCoord origin is upper left 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:100 'c2' (uniform 2-component vector of float) +0:100 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) 0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) @@ -365,16 +617,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -383,7 +628,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence @@ -393,8 +638,14 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c2' (uniform 2-component vector of float) -0:46 'o2' (uniform 2-component vector of int) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:47 Sequence @@ -404,8 +655,14 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) -0:47 'o2' (uniform 2-component vector of int) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:47 Constant: 0:47 0 (const int) 0:48 Sequence @@ -415,8 +672,14 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) -0:48 'o2' (uniform 2-component vector of int) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:48 Constant: 0:48 0 (const int) 0:50 Sequence @@ -426,12 +689,27 @@ gl_FragCoord origin is upper left 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:50 'c2' (uniform 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) 0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) 0:50 Constant: 0:50 0 (const int) 0:51 Sequence @@ -441,12 +719,27 @@ gl_FragCoord origin is upper left 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence @@ -456,12 +749,27 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) 0:52 Constant: 0:52 0 (const int) 0:62 Sequence @@ -471,8 +779,14 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c2' (uniform 2-component vector of float) -0:62 'o2' (uniform 2-component vector of int) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence @@ -482,8 +796,14 @@ gl_FragCoord origin is upper left 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c2' (uniform 2-component vector of float) -0:63 'o2' (uniform 2-component vector of int) +0:63 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) 0:63 Constant: 0:63 1 (const int) 0:64 Sequence @@ -493,8 +813,14 @@ gl_FragCoord origin is upper left 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c2' (uniform 2-component vector of float) -0:64 'o2' (uniform 2-component vector of int) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) 0:64 Constant: 0:64 1 (const int) 0:66 Sequence @@ -504,12 +830,27 @@ gl_FragCoord origin is upper left 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c2' (uniform 2-component vector of float) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) 0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) 0:66 Constant: 0:66 1 (const int) 0:67 Sequence @@ -519,12 +860,27 @@ gl_FragCoord origin is upper left 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c2' (uniform 2-component vector of float) +0:67 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) 0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) 0:67 Constant: 0:67 1 (const int) 0:68 Sequence @@ -534,12 +890,27 @@ gl_FragCoord origin is upper left 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:68 'c2' (uniform 2-component vector of float) +0:68 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) 0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) 0:68 Constant: 0:68 1 (const int) 0:78 Sequence @@ -549,8 +920,14 @@ gl_FragCoord origin is upper left 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c2' (uniform 2-component vector of float) -0:78 'o2' (uniform 2-component vector of int) +0:78 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:79 Sequence @@ -560,8 +937,14 @@ gl_FragCoord origin is upper left 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:79 'c2' (uniform 2-component vector of float) -0:79 'o2' (uniform 2-component vector of int) +0:79 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) 0:79 Constant: 0:79 2 (const int) 0:80 Sequence @@ -571,8 +954,14 @@ gl_FragCoord origin is upper left 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:80 'c2' (uniform 2-component vector of float) -0:80 'o2' (uniform 2-component vector of int) +0:80 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) 0:80 Constant: 0:80 2 (const int) 0:82 Sequence @@ -582,12 +971,27 @@ gl_FragCoord origin is upper left 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:82 'c2' (uniform 2-component vector of float) +0:82 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) 0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) 0:82 Constant: 0:82 2 (const int) 0:83 Sequence @@ -597,12 +1001,27 @@ gl_FragCoord origin is upper left 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:83 'c2' (uniform 2-component vector of float) +0:83 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) 0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) 0:83 Constant: 0:83 2 (const int) 0:84 Sequence @@ -612,12 +1031,27 @@ gl_FragCoord origin is upper left 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:84 'c2' (uniform 2-component vector of float) +0:84 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) 0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) 0:84 Constant: 0:84 2 (const int) 0:94 Sequence @@ -627,8 +1061,14 @@ gl_FragCoord origin is upper left 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c2' (uniform 2-component vector of float) -0:94 'o2' (uniform 2-component vector of int) +0:94 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:95 Sequence @@ -638,8 +1078,14 @@ gl_FragCoord origin is upper left 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:95 'c2' (uniform 2-component vector of float) -0:95 'o2' (uniform 2-component vector of int) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) 0:95 Constant: 0:95 3 (const int) 0:96 Sequence @@ -649,8 +1095,14 @@ gl_FragCoord origin is upper left 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:96 'c2' (uniform 2-component vector of float) -0:96 'o2' (uniform 2-component vector of int) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) 0:96 Constant: 0:96 3 (const int) 0:98 Sequence @@ -660,12 +1112,27 @@ gl_FragCoord origin is upper left 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:98 'c2' (uniform 2-component vector of float) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) 0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) 0:98 Constant: 0:98 3 (const int) 0:99 Sequence @@ -675,12 +1142,27 @@ gl_FragCoord origin is upper left 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:99 'c2' (uniform 2-component vector of float) +0:99 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) 0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) 0:99 Constant: 0:99 3 (const int) 0:100 Sequence @@ -690,12 +1172,27 @@ gl_FragCoord origin is upper left 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:100 'c2' (uniform 2-component vector of float) +0:100 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) 0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) @@ -746,102 +1243,107 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 318 +// Id's are bound by 392 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 271 + EntryPoint Fragment 4 "main" 355 359 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4" Name 16 "g_sSamp" - Name 22 "c2" - Name 27 "o2" - Name 33 "txval011" - Name 36 "g_tTex2di4" - Name 47 "txval021" - Name 50 "g_tTex2du4" - Name 58 "txval004" - Name 71 "txval014" - Name 82 "txval024" - Name 93 "txval101" - Name 101 "txval111" - Name 108 "txval121" - Name 115 "txval104" - Name 126 "txval114" - Name 137 "txval124" - Name 148 "txval201" - Name 156 "txval211" - Name 163 "txval221" - Name 170 "txval204" - Name 181 "txval214" - Name 192 "txval224" - Name 203 "txval301" - Name 211 "txval311" - Name 218 "txval321" - Name 225 "txval304" - Name 236 "txval314" - Name 247 "txval324" - Name 258 "PS_OUTPUT" - MemberName 258(PS_OUTPUT) 0 "Color" - MemberName 258(PS_OUTPUT) 1 "Depth" - Name 260 "psout" - Name 267 "Color" - Name 271 "Depth" - Name 275 "g_sSamp2d" - Name 278 "g_tTex1df4a" - Name 279 "g_tTex1df4" - Name 282 "g_tTex1di4" - Name 285 "g_tTex1du4" - Name 288 "g_tTex3df4" - Name 291 "g_tTex3di4" - Name 294 "g_tTex3du4" - Name 297 "g_tTexcdf4" - Name 300 "g_tTexcdi4" - Name 303 "g_tTexcdu4" - Name 305 "c1" - Name 308 "c3" - Name 310 "c4" - Name 312 "o1" - Name 315 "o3" - Name 317 "o4" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4" + Name 56 "txval021" + Name 59 "g_tTex2du4" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 128 "txval111" + Name 137 "txval121" + Name 146 "txval104" + Name 162 "txval114" + Name 178 "txval124" + Name 194 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 367 "g_tTex1df4" + Name 370 "g_tTex1di4" + Name 373 "g_tTex1du4" + Name 376 "g_tTex3df4" + Name 379 "g_tTex3di4" + Name 382 "g_tTex3du4" + Name 385 "g_tTexcdf4" + Name 388 "g_tTexcdi4" + Name 391 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4) DescriptorSet 0 - Decorate 50(g_tTex2du4) DescriptorSet 0 - Decorate 267(Color) Location 0 - Decorate 271(Depth) BuiltIn FragDepth - Decorate 275(g_sSamp2d) DescriptorSet 0 - Decorate 278(g_tTex1df4a) DescriptorSet 0 - Decorate 278(g_tTex1df4a) Binding 1 - Decorate 279(g_tTex1df4) DescriptorSet 0 - Decorate 279(g_tTex1df4) Binding 0 - Decorate 282(g_tTex1di4) DescriptorSet 0 - Decorate 285(g_tTex1du4) DescriptorSet 0 - Decorate 288(g_tTex3df4) DescriptorSet 0 - Decorate 291(g_tTex3di4) DescriptorSet 0 - Decorate 294(g_tTex3du4) DescriptorSet 0 - Decorate 297(g_tTexcdf4) DescriptorSet 0 - Decorate 300(g_tTexcdi4) DescriptorSet 0 - Decorate 303(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4) DescriptorSet 0 + Decorate 59(g_tTex2du4) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 1 + Decorate 367(g_tTex1df4) DescriptorSet 0 + Decorate 367(g_tTex1df4) Binding 0 + Decorate 370(g_tTex1di4) DescriptorSet 0 + Decorate 373(g_tTex1du4) DescriptorSet 0 + Decorate 376(g_tTex3df4) DescriptorSet 0 + Decorate 379(g_tTex3di4) DescriptorSet 0 + Decorate 382(g_tTex3du4) DescriptorSet 0 + Decorate 385(g_tTexcdf4) DescriptorSet 0 + Decorate 388(g_tTexcdi4) DescriptorSet 0 + Decorate 391(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -855,335 +1357,409 @@ gl_FragCoord origin is upper left 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 20: TypeVector 6(float) 2 - 21: TypePointer UniformConstant 20(fvec2) - 22(c2): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: TypeVector 24(int) 2 - 26: TypePointer UniformConstant 25(ivec2) - 27(o2): 26(ptr) Variable UniformConstant - 29: 24(int) Constant 0 - 31: TypeVector 24(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 24(int) 2D sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex2di4): 35(ptr) Variable UniformConstant - 39: TypeSampledImage 34 - 44: TypeInt 32 0 - 45: TypeVector 44(int) 4 - 46: TypePointer Function 45(ivec4) - 48: TypeImage 44(int) 2D sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2du4): 49(ptr) Variable UniformConstant - 53: TypeSampledImage 48 - 67: 44(int) Constant 4 - 68: TypeArray 25(ivec2) 67 - 99: 24(int) Constant 1 - 154: 24(int) Constant 2 - 209: 24(int) Constant 3 - 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 259: TypePointer Function 258(PS_OUTPUT) - 261: 6(float) Constant 1065353216 - 262: 7(fvec4) ConstantComposite 261 261 261 261 - 264: TypePointer Function 6(float) - 266: TypePointer Output 7(fvec4) - 267(Color): 266(ptr) Variable Output - 270: TypePointer Output 6(float) - 271(Depth): 270(ptr) Variable Output - 275(g_sSamp2d): 15(ptr) Variable UniformConstant - 276: TypeImage 6(float) 1D sampled format:Unknown - 277: TypePointer UniformConstant 276 -278(g_tTex1df4a): 277(ptr) Variable UniformConstant - 279(g_tTex1df4): 277(ptr) Variable UniformConstant - 280: TypeImage 24(int) 1D sampled format:Unknown - 281: TypePointer UniformConstant 280 - 282(g_tTex1di4): 281(ptr) Variable UniformConstant - 283: TypeImage 44(int) 1D sampled format:Unknown - 284: TypePointer UniformConstant 283 - 285(g_tTex1du4): 284(ptr) Variable UniformConstant - 286: TypeImage 6(float) 3D sampled format:Unknown - 287: TypePointer UniformConstant 286 - 288(g_tTex3df4): 287(ptr) Variable UniformConstant - 289: TypeImage 24(int) 3D sampled format:Unknown - 290: TypePointer UniformConstant 289 - 291(g_tTex3di4): 290(ptr) Variable UniformConstant - 292: TypeImage 44(int) 3D sampled format:Unknown - 293: TypePointer UniformConstant 292 - 294(g_tTex3du4): 293(ptr) Variable UniformConstant - 295: TypeImage 6(float) Cube sampled format:Unknown - 296: TypePointer UniformConstant 295 - 297(g_tTexcdf4): 296(ptr) Variable UniformConstant - 298: TypeImage 24(int) Cube sampled format:Unknown - 299: TypePointer UniformConstant 298 - 300(g_tTexcdi4): 299(ptr) Variable UniformConstant - 301: TypeImage 44(int) Cube sampled format:Unknown - 302: TypePointer UniformConstant 301 - 303(g_tTexcdu4): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 6(float) - 305(c1): 304(ptr) Variable UniformConstant - 306: TypeVector 6(float) 3 - 307: TypePointer UniformConstant 306(fvec3) - 308(c3): 307(ptr) Variable UniformConstant - 309: TypePointer UniformConstant 7(fvec4) - 310(c4): 309(ptr) Variable UniformConstant - 311: TypePointer UniformConstant 24(int) - 312(o1): 311(ptr) Variable UniformConstant - 313: TypeVector 24(int) 3 - 314: TypePointer UniformConstant 313(ivec3) - 315(o3): 314(ptr) Variable UniformConstant - 316: TypePointer UniformConstant 31(ivec4) - 317(o4): 316(ptr) Variable UniformConstant + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 1 + 30: TypePointer Uniform 20(fvec2) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 202: 22(int) Constant 2 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367(g_tTex1df4): 365(ptr) Variable UniformConstant + 368: TypeImage 22(int) 1D sampled format:Unknown + 369: TypePointer UniformConstant 368 + 370(g_tTex1di4): 369(ptr) Variable UniformConstant + 371: TypeImage 53(int) 1D sampled format:Unknown + 372: TypePointer UniformConstant 371 + 373(g_tTex1du4): 372(ptr) Variable UniformConstant + 374: TypeImage 6(float) 3D sampled format:Unknown + 375: TypePointer UniformConstant 374 + 376(g_tTex3df4): 375(ptr) Variable UniformConstant + 377: TypeImage 22(int) 3D sampled format:Unknown + 378: TypePointer UniformConstant 377 + 379(g_tTex3di4): 378(ptr) Variable UniformConstant + 380: TypeImage 53(int) 3D sampled format:Unknown + 381: TypePointer UniformConstant 380 + 382(g_tTex3du4): 381(ptr) Variable UniformConstant + 383: TypeImage 6(float) Cube sampled format:Unknown + 384: TypePointer UniformConstant 383 + 385(g_tTexcdf4): 384(ptr) Variable UniformConstant + 386: TypeImage 22(int) Cube sampled format:Unknown + 387: TypePointer UniformConstant 386 + 388(g_tTexcdi4): 387(ptr) Variable UniformConstant + 389: TypeImage 53(int) Cube sampled format:Unknown + 390: TypePointer UniformConstant 389 + 391(g_tTexcdu4): 390(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function - 33(txval011): 32(ptr) Variable Function - 47(txval021): 46(ptr) Variable Function - 58(txval004): 8(ptr) Variable Function - 71(txval014): 32(ptr) Variable Function - 82(txval024): 46(ptr) Variable Function - 93(txval101): 8(ptr) Variable Function - 101(txval111): 32(ptr) Variable Function - 108(txval121): 46(ptr) Variable Function - 115(txval104): 8(ptr) Variable Function - 126(txval114): 32(ptr) Variable Function - 137(txval124): 46(ptr) Variable Function - 148(txval201): 8(ptr) Variable Function - 156(txval211): 32(ptr) Variable Function - 163(txval221): 46(ptr) Variable Function - 170(txval204): 8(ptr) Variable Function - 181(txval214): 32(ptr) Variable Function - 192(txval224): 46(ptr) Variable Function - 203(txval301): 8(ptr) Variable Function - 211(txval311): 32(ptr) Variable Function - 218(txval321): 46(ptr) Variable Function - 225(txval304): 8(ptr) Variable Function - 236(txval314): 32(ptr) Variable Function - 247(txval324): 46(ptr) Variable Function - 260(psout): 259(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 128(txval111): 39(ptr) Variable Function + 137(txval121): 55(ptr) Variable Function + 146(txval104): 8(ptr) Variable Function + 162(txval114): 39(ptr) Variable Function + 178(txval124): 55(ptr) Variable Function + 194(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function 13: 10 Load 12(g_tTex2df4) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec2) Load 22(c2) - 28: 25(ivec2) Load 27(o2) - 30: 7(fvec4) ImageGather 19 23 29 Offset 28 - Store 9(txval001) 30 - 37: 34 Load 36(g_tTex2di4) - 38: 14 Load 16(g_sSamp) - 40: 39 SampledImage 37 38 - 41: 20(fvec2) Load 22(c2) - 42: 25(ivec2) Load 27(o2) - 43: 31(ivec4) ImageGather 40 41 29 Offset 42 - Store 33(txval011) 43 - 51: 48 Load 50(g_tTex2du4) - 52: 14 Load 16(g_sSamp) - 54: 53 SampledImage 51 52 - 55: 20(fvec2) Load 22(c2) - 56: 25(ivec2) Load 27(o2) - 57: 45(ivec4) ImageGather 54 55 29 Offset 56 - Store 47(txval021) 57 - 59: 10 Load 12(g_tTex2df4) - 60: 14 Load 16(g_sSamp) - 61: 18 SampledImage 59 60 - 62: 20(fvec2) Load 22(c2) - 63: 25(ivec2) Load 27(o2) - 64: 25(ivec2) Load 27(o2) - 65: 25(ivec2) Load 27(o2) - 66: 25(ivec2) Load 27(o2) - 69: 68 CompositeConstruct 63 64 65 66 - 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 - Store 58(txval004) 70 - 72: 34 Load 36(g_tTex2di4) - 73: 14 Load 16(g_sSamp) - 74: 39 SampledImage 72 73 - 75: 20(fvec2) Load 22(c2) - 76: 25(ivec2) Load 27(o2) - 77: 25(ivec2) Load 27(o2) - 78: 25(ivec2) Load 27(o2) - 79: 25(ivec2) Load 27(o2) - 80: 68 CompositeConstruct 76 77 78 79 - 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 - Store 71(txval014) 81 - 83: 48 Load 50(g_tTex2du4) - 84: 14 Load 16(g_sSamp) - 85: 53 SampledImage 83 84 - 86: 20(fvec2) Load 22(c2) - 87: 25(ivec2) Load 27(o2) - 88: 25(ivec2) Load 27(o2) - 89: 25(ivec2) Load 27(o2) - 90: 25(ivec2) Load 27(o2) - 91: 68 CompositeConstruct 87 88 89 90 - 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 - Store 82(txval024) 92 - 94: 10 Load 12(g_tTex2df4) - 95: 14 Load 16(g_sSamp) - 96: 18 SampledImage 94 95 - 97: 20(fvec2) Load 22(c2) - 98: 25(ivec2) Load 27(o2) - 100: 7(fvec4) ImageGather 96 97 99 Offset 98 - Store 93(txval101) 100 - 102: 34 Load 36(g_tTex2di4) - 103: 14 Load 16(g_sSamp) - 104: 39 SampledImage 102 103 - 105: 20(fvec2) Load 22(c2) - 106: 25(ivec2) Load 27(o2) - 107: 31(ivec4) ImageGather 104 105 99 Offset 106 - Store 101(txval111) 107 - 109: 48 Load 50(g_tTex2du4) - 110: 14 Load 16(g_sSamp) - 111: 53 SampledImage 109 110 - 112: 20(fvec2) Load 22(c2) - 113: 25(ivec2) Load 27(o2) - 114: 45(ivec4) ImageGather 111 112 99 Offset 113 - Store 108(txval121) 114 - 116: 10 Load 12(g_tTex2df4) - 117: 14 Load 16(g_sSamp) - 118: 18 SampledImage 116 117 - 119: 20(fvec2) Load 22(c2) - 120: 25(ivec2) Load 27(o2) - 121: 25(ivec2) Load 27(o2) - 122: 25(ivec2) Load 27(o2) - 123: 25(ivec2) Load 27(o2) - 124: 68 CompositeConstruct 120 121 122 123 - 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 - Store 115(txval104) 125 - 127: 34 Load 36(g_tTex2di4) - 128: 14 Load 16(g_sSamp) - 129: 39 SampledImage 127 128 - 130: 20(fvec2) Load 22(c2) - 131: 25(ivec2) Load 27(o2) - 132: 25(ivec2) Load 27(o2) - 133: 25(ivec2) Load 27(o2) - 134: 25(ivec2) Load 27(o2) - 135: 68 CompositeConstruct 131 132 133 134 - 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 - Store 126(txval114) 136 - 138: 48 Load 50(g_tTex2du4) + 31: 30(ptr) AccessChain 28 29 + 32: 20(fvec2) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 20(fvec2) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 20(fvec2) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 20(fvec2) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 20(fvec2) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 20(fvec2) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 20(fvec2) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 127: 7(fvec4) ImageGather 122 124 29 Offset 126 + Store 119(txval101) 127 + 129: 41 Load 43(g_tTex2di4) + 130: 14 Load 16(g_sSamp) + 131: 46 SampledImage 129 130 + 132: 30(ptr) AccessChain 28 29 + 133: 20(fvec2) Load 132 + 134: 34(ptr) AccessChain 28 33 + 135: 23(ivec2) Load 134 + 136: 25(ivec4) ImageGather 131 133 29 Offset 135 + Store 128(txval111) 136 + 138: 57 Load 59(g_tTex2du4) 139: 14 Load 16(g_sSamp) - 140: 53 SampledImage 138 139 - 141: 20(fvec2) Load 22(c2) - 142: 25(ivec2) Load 27(o2) - 143: 25(ivec2) Load 27(o2) - 144: 25(ivec2) Load 27(o2) - 145: 25(ivec2) Load 27(o2) - 146: 68 CompositeConstruct 142 143 144 145 - 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 - Store 137(txval124) 147 - 149: 10 Load 12(g_tTex2df4) - 150: 14 Load 16(g_sSamp) - 151: 18 SampledImage 149 150 - 152: 20(fvec2) Load 22(c2) - 153: 25(ivec2) Load 27(o2) - 155: 7(fvec4) ImageGather 151 152 154 Offset 153 - Store 148(txval201) 155 - 157: 34 Load 36(g_tTex2di4) - 158: 14 Load 16(g_sSamp) - 159: 39 SampledImage 157 158 - 160: 20(fvec2) Load 22(c2) - 161: 25(ivec2) Load 27(o2) - 162: 31(ivec4) ImageGather 159 160 154 Offset 161 - Store 156(txval211) 162 - 164: 48 Load 50(g_tTex2du4) - 165: 14 Load 16(g_sSamp) - 166: 53 SampledImage 164 165 - 167: 20(fvec2) Load 22(c2) - 168: 25(ivec2) Load 27(o2) - 169: 45(ivec4) ImageGather 166 167 154 Offset 168 - Store 163(txval221) 169 - 171: 10 Load 12(g_tTex2df4) - 172: 14 Load 16(g_sSamp) - 173: 18 SampledImage 171 172 - 174: 20(fvec2) Load 22(c2) - 175: 25(ivec2) Load 27(o2) - 176: 25(ivec2) Load 27(o2) - 177: 25(ivec2) Load 27(o2) - 178: 25(ivec2) Load 27(o2) - 179: 68 CompositeConstruct 175 176 177 178 - 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 - Store 170(txval204) 180 - 182: 34 Load 36(g_tTex2di4) - 183: 14 Load 16(g_sSamp) - 184: 39 SampledImage 182 183 - 185: 20(fvec2) Load 22(c2) - 186: 25(ivec2) Load 27(o2) - 187: 25(ivec2) Load 27(o2) - 188: 25(ivec2) Load 27(o2) - 189: 25(ivec2) Load 27(o2) - 190: 68 CompositeConstruct 186 187 188 189 - 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 - Store 181(txval214) 191 - 193: 48 Load 50(g_tTex2du4) - 194: 14 Load 16(g_sSamp) - 195: 53 SampledImage 193 194 - 196: 20(fvec2) Load 22(c2) - 197: 25(ivec2) Load 27(o2) - 198: 25(ivec2) Load 27(o2) - 199: 25(ivec2) Load 27(o2) - 200: 25(ivec2) Load 27(o2) - 201: 68 CompositeConstruct 197 198 199 200 - 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 - Store 192(txval224) 202 - 204: 10 Load 12(g_tTex2df4) - 205: 14 Load 16(g_sSamp) - 206: 18 SampledImage 204 205 - 207: 20(fvec2) Load 22(c2) - 208: 25(ivec2) Load 27(o2) - 210: 7(fvec4) ImageGather 206 207 209 Offset 208 - Store 203(txval301) 210 - 212: 34 Load 36(g_tTex2di4) - 213: 14 Load 16(g_sSamp) - 214: 39 SampledImage 212 213 - 215: 20(fvec2) Load 22(c2) - 216: 25(ivec2) Load 27(o2) - 217: 31(ivec4) ImageGather 214 215 209 Offset 216 - Store 211(txval311) 217 - 219: 48 Load 50(g_tTex2du4) - 220: 14 Load 16(g_sSamp) - 221: 53 SampledImage 219 220 - 222: 20(fvec2) Load 22(c2) - 223: 25(ivec2) Load 27(o2) - 224: 45(ivec4) ImageGather 221 222 209 Offset 223 - Store 218(txval321) 224 - 226: 10 Load 12(g_tTex2df4) - 227: 14 Load 16(g_sSamp) - 228: 18 SampledImage 226 227 - 229: 20(fvec2) Load 22(c2) - 230: 25(ivec2) Load 27(o2) - 231: 25(ivec2) Load 27(o2) - 232: 25(ivec2) Load 27(o2) - 233: 25(ivec2) Load 27(o2) - 234: 68 CompositeConstruct 230 231 232 233 - 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 - Store 225(txval304) 235 - 237: 34 Load 36(g_tTex2di4) - 238: 14 Load 16(g_sSamp) - 239: 39 SampledImage 237 238 - 240: 20(fvec2) Load 22(c2) - 241: 25(ivec2) Load 27(o2) - 242: 25(ivec2) Load 27(o2) - 243: 25(ivec2) Load 27(o2) - 244: 25(ivec2) Load 27(o2) - 245: 68 CompositeConstruct 241 242 243 244 - 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 - Store 236(txval314) 246 - 248: 48 Load 50(g_tTex2du4) - 249: 14 Load 16(g_sSamp) - 250: 53 SampledImage 248 249 - 251: 20(fvec2) Load 22(c2) - 252: 25(ivec2) Load 27(o2) - 253: 25(ivec2) Load 27(o2) - 254: 25(ivec2) Load 27(o2) - 255: 25(ivec2) Load 27(o2) - 256: 68 CompositeConstruct 252 253 254 255 - 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 - Store 247(txval324) 257 - 263: 8(ptr) AccessChain 260(psout) 29 - Store 263 262 - 265: 264(ptr) AccessChain 260(psout) 99 - Store 265 261 - 268: 8(ptr) AccessChain 260(psout) 29 - 269: 7(fvec4) Load 268 - Store 267(Color) 269 - 272: 264(ptr) AccessChain 260(psout) 99 - 273: 6(float) Load 272 - Store 271(Depth) 273 + 140: 62 SampledImage 138 139 + 141: 30(ptr) AccessChain 28 29 + 142: 20(fvec2) Load 141 + 143: 34(ptr) AccessChain 28 33 + 144: 23(ivec2) Load 143 + 145: 54(ivec4) ImageGather 140 142 29 Offset 144 + Store 137(txval121) 145 + 147: 10 Load 12(g_tTex2df4) + 148: 14 Load 16(g_sSamp) + 149: 18 SampledImage 147 148 + 150: 30(ptr) AccessChain 28 29 + 151: 20(fvec2) Load 150 + 152: 34(ptr) AccessChain 28 33 + 153: 23(ivec2) Load 152 + 154: 34(ptr) AccessChain 28 33 + 155: 23(ivec2) Load 154 + 156: 34(ptr) AccessChain 28 33 + 157: 23(ivec2) Load 156 + 158: 34(ptr) AccessChain 28 33 + 159: 23(ivec2) Load 158 + 160: 84 CompositeConstruct 153 155 157 159 + 161: 7(fvec4) ImageGather 149 151 29 ConstOffsets 160 + Store 146(txval104) 161 + 163: 41 Load 43(g_tTex2di4) + 164: 14 Load 16(g_sSamp) + 165: 46 SampledImage 163 164 + 166: 30(ptr) AccessChain 28 29 + 167: 20(fvec2) Load 166 + 168: 34(ptr) AccessChain 28 33 + 169: 23(ivec2) Load 168 + 170: 34(ptr) AccessChain 28 33 + 171: 23(ivec2) Load 170 + 172: 34(ptr) AccessChain 28 33 + 173: 23(ivec2) Load 172 + 174: 34(ptr) AccessChain 28 33 + 175: 23(ivec2) Load 174 + 176: 84 CompositeConstruct 169 171 173 175 + 177: 25(ivec4) ImageGather 165 167 29 ConstOffsets 176 + Store 162(txval114) 177 + 179: 57 Load 59(g_tTex2du4) + 180: 14 Load 16(g_sSamp) + 181: 62 SampledImage 179 180 + 182: 30(ptr) AccessChain 28 29 + 183: 20(fvec2) Load 182 + 184: 34(ptr) AccessChain 28 33 + 185: 23(ivec2) Load 184 + 186: 34(ptr) AccessChain 28 33 + 187: 23(ivec2) Load 186 + 188: 34(ptr) AccessChain 28 33 + 189: 23(ivec2) Load 188 + 190: 34(ptr) AccessChain 28 33 + 191: 23(ivec2) Load 190 + 192: 84 CompositeConstruct 185 187 189 191 + 193: 54(ivec4) ImageGather 181 183 29 ConstOffsets 192 + Store 178(txval124) 193 + 195: 10 Load 12(g_tTex2df4) + 196: 14 Load 16(g_sSamp) + 197: 18 SampledImage 195 196 + 198: 30(ptr) AccessChain 28 29 + 199: 20(fvec2) Load 198 + 200: 34(ptr) AccessChain 28 33 + 201: 23(ivec2) Load 200 + 203: 7(fvec4) ImageGather 197 199 202 Offset 201 + Store 194(txval201) 203 + 205: 41 Load 43(g_tTex2di4) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 20(fvec2) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 202 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 20(fvec2) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 202 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 20(fvec2) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 202 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 20(fvec2) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 202 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 20(fvec2) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 202 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 20(fvec2) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 20(fvec2) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 20(fvec2) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 20(fvec2) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 20(fvec2) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 20(fvec2) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 29 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 29 + 361: 6(float) Load 360 + Store 359(Depth) 361 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 022f63ed..1a5df38e 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -12,8 +12,14 @@ gl_FragCoord origin is upper left 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c3' (uniform 3-component vector of float) -0:40 'o2' (uniform 2-component vector of int) +0:40 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence @@ -23,8 +29,14 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) -0:41 'o2' (uniform 2-component vector of int) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) 0:41 Constant: 0:41 0 (const int) 0:42 Sequence @@ -34,8 +46,14 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) -0:42 'o2' (uniform 2-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) 0:42 Constant: 0:42 0 (const int) 0:44 Sequence @@ -45,12 +63,27 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c3' (uniform 3-component vector of float) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) 0:44 Constant: 0:44 0 (const int) 0:45 Sequence @@ -60,12 +93,27 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) 0:45 Constant: 0:45 0 (const int) 0:46 Sequence @@ -75,12 +123,27 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:56 Sequence @@ -90,8 +153,14 @@ gl_FragCoord origin is upper left 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c3' (uniform 3-component vector of float) -0:56 'o2' (uniform 2-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence @@ -101,8 +170,14 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) -0:57 'o2' (uniform 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:57 Constant: 0:57 1 (const int) 0:58 Sequence @@ -112,8 +187,14 @@ gl_FragCoord origin is upper left 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) -0:58 'o2' (uniform 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:58 Constant: 0:58 1 (const int) 0:60 Sequence @@ -123,12 +204,27 @@ gl_FragCoord origin is upper left 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c3' (uniform 3-component vector of float) +0:60 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) 0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) 0:60 Constant: 0:60 1 (const int) 0:61 Sequence @@ -138,12 +234,27 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence @@ -153,12 +264,27 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:72 Sequence @@ -168,8 +294,14 @@ gl_FragCoord origin is upper left 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:72 'c3' (uniform 3-component vector of float) -0:72 'o2' (uniform 2-component vector of int) +0:72 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) 0:72 Constant: 0:72 2 (const int) 0:73 Sequence @@ -179,8 +311,14 @@ gl_FragCoord origin is upper left 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:73 'c3' (uniform 3-component vector of float) -0:73 'o2' (uniform 2-component vector of int) +0:73 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) 0:73 Constant: 0:73 2 (const int) 0:74 Sequence @@ -190,8 +328,14 @@ gl_FragCoord origin is upper left 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:74 'c3' (uniform 3-component vector of float) -0:74 'o2' (uniform 2-component vector of int) +0:74 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) 0:74 Constant: 0:74 2 (const int) 0:76 Sequence @@ -201,12 +345,27 @@ gl_FragCoord origin is upper left 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:76 'c3' (uniform 3-component vector of float) +0:76 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) 0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) 0:76 Constant: 0:76 2 (const int) 0:77 Sequence @@ -216,12 +375,27 @@ gl_FragCoord origin is upper left 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:77 'c3' (uniform 3-component vector of float) +0:77 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) 0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) 0:77 Constant: 0:77 2 (const int) 0:78 Sequence @@ -231,12 +405,27 @@ gl_FragCoord origin is upper left 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c3' (uniform 3-component vector of float) +0:78 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) 0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:88 Sequence @@ -246,8 +435,14 @@ gl_FragCoord origin is upper left 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:88 'c3' (uniform 3-component vector of float) -0:88 'o2' (uniform 2-component vector of int) +0:88 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) 0:88 Constant: 0:88 3 (const int) 0:89 Sequence @@ -257,8 +452,14 @@ gl_FragCoord origin is upper left 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:89 'c3' (uniform 3-component vector of float) -0:89 'o2' (uniform 2-component vector of int) +0:89 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) 0:89 Constant: 0:89 3 (const int) 0:90 Sequence @@ -268,8 +469,14 @@ gl_FragCoord origin is upper left 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:90 'c3' (uniform 3-component vector of float) -0:90 'o2' (uniform 2-component vector of int) +0:90 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) 0:90 Constant: 0:90 3 (const int) 0:92 Sequence @@ -279,12 +486,27 @@ gl_FragCoord origin is upper left 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:92 'c3' (uniform 3-component vector of float) +0:92 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) 0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) 0:92 Constant: 0:92 3 (const int) 0:93 Sequence @@ -294,12 +516,27 @@ gl_FragCoord origin is upper left 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:93 'c3' (uniform 3-component vector of float) +0:93 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) 0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) 0:93 Constant: 0:93 3 (const int) 0:94 Sequence @@ -309,12 +546,27 @@ gl_FragCoord origin is upper left 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c3' (uniform 3-component vector of float) +0:94 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) 0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) @@ -361,16 +613,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -379,7 +624,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence @@ -389,8 +634,14 @@ gl_FragCoord origin is upper left 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c3' (uniform 3-component vector of float) -0:40 'o2' (uniform 2-component vector of int) +0:40 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence @@ -400,8 +651,14 @@ gl_FragCoord origin is upper left 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) -0:41 'o2' (uniform 2-component vector of int) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) 0:41 Constant: 0:41 0 (const int) 0:42 Sequence @@ -411,8 +668,14 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) -0:42 'o2' (uniform 2-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) 0:42 Constant: 0:42 0 (const int) 0:44 Sequence @@ -422,12 +685,27 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c3' (uniform 3-component vector of float) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) 0:44 Constant: 0:44 0 (const int) 0:45 Sequence @@ -437,12 +715,27 @@ gl_FragCoord origin is upper left 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) 0:45 Constant: 0:45 0 (const int) 0:46 Sequence @@ -452,12 +745,27 @@ gl_FragCoord origin is upper left 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:56 Sequence @@ -467,8 +775,14 @@ gl_FragCoord origin is upper left 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c3' (uniform 3-component vector of float) -0:56 'o2' (uniform 2-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence @@ -478,8 +792,14 @@ gl_FragCoord origin is upper left 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) -0:57 'o2' (uniform 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:57 Constant: 0:57 1 (const int) 0:58 Sequence @@ -489,8 +809,14 @@ gl_FragCoord origin is upper left 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) -0:58 'o2' (uniform 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:58 Constant: 0:58 1 (const int) 0:60 Sequence @@ -500,12 +826,27 @@ gl_FragCoord origin is upper left 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c3' (uniform 3-component vector of float) +0:60 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) 0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) 0:60 Constant: 0:60 1 (const int) 0:61 Sequence @@ -515,12 +856,27 @@ gl_FragCoord origin is upper left 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence @@ -530,12 +886,27 @@ gl_FragCoord origin is upper left 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:72 Sequence @@ -545,8 +916,14 @@ gl_FragCoord origin is upper left 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:72 'c3' (uniform 3-component vector of float) -0:72 'o2' (uniform 2-component vector of int) +0:72 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) 0:72 Constant: 0:72 2 (const int) 0:73 Sequence @@ -556,8 +933,14 @@ gl_FragCoord origin is upper left 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:73 'c3' (uniform 3-component vector of float) -0:73 'o2' (uniform 2-component vector of int) +0:73 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) 0:73 Constant: 0:73 2 (const int) 0:74 Sequence @@ -567,8 +950,14 @@ gl_FragCoord origin is upper left 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:74 'c3' (uniform 3-component vector of float) -0:74 'o2' (uniform 2-component vector of int) +0:74 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) 0:74 Constant: 0:74 2 (const int) 0:76 Sequence @@ -578,12 +967,27 @@ gl_FragCoord origin is upper left 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:76 'c3' (uniform 3-component vector of float) +0:76 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) 0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) 0:76 Constant: 0:76 2 (const int) 0:77 Sequence @@ -593,12 +997,27 @@ gl_FragCoord origin is upper left 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:77 'c3' (uniform 3-component vector of float) +0:77 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) 0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) 0:77 Constant: 0:77 2 (const int) 0:78 Sequence @@ -608,12 +1027,27 @@ gl_FragCoord origin is upper left 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c3' (uniform 3-component vector of float) +0:78 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) 0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:88 Sequence @@ -623,8 +1057,14 @@ gl_FragCoord origin is upper left 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:88 'c3' (uniform 3-component vector of float) -0:88 'o2' (uniform 2-component vector of int) +0:88 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) 0:88 Constant: 0:88 3 (const int) 0:89 Sequence @@ -634,8 +1074,14 @@ gl_FragCoord origin is upper left 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:89 'c3' (uniform 3-component vector of float) -0:89 'o2' (uniform 2-component vector of int) +0:89 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) 0:89 Constant: 0:89 3 (const int) 0:90 Sequence @@ -645,8 +1091,14 @@ gl_FragCoord origin is upper left 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:90 'c3' (uniform 3-component vector of float) -0:90 'o2' (uniform 2-component vector of int) +0:90 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) 0:90 Constant: 0:90 3 (const int) 0:92 Sequence @@ -656,12 +1108,27 @@ gl_FragCoord origin is upper left 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:92 'c3' (uniform 3-component vector of float) +0:92 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) 0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) 0:92 Constant: 0:92 3 (const int) 0:93 Sequence @@ -671,12 +1138,27 @@ gl_FragCoord origin is upper left 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:93 'c3' (uniform 3-component vector of float) +0:93 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) 0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) 0:93 Constant: 0:93 3 (const int) 0:94 Sequence @@ -686,12 +1168,27 @@ gl_FragCoord origin is upper left 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c3' (uniform 3-component vector of float) +0:94 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) 0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) @@ -738,20 +1235,13 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 308 +// Id's are bound by 382 Capability Shader Capability ImageGatherExtended @@ -759,73 +1249,85 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 271 + EntryPoint Fragment 4 "main" 355 359 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4a" Name 16 "g_sSamp" - Name 22 "c3" - Name 27 "o2" - Name 33 "txval011" - Name 36 "g_tTex2di4a" - Name 47 "txval021" - Name 50 "g_tTex2du4a" - Name 58 "txval004" - Name 71 "txval014" - Name 82 "txval024" - Name 93 "txval101" - Name 101 "txval111" - Name 108 "txval121" - Name 115 "txval104" - Name 126 "txval114" - Name 137 "txval124" - Name 148 "txval201" - Name 156 "txval211" - Name 163 "txval221" - Name 170 "txval204" - Name 181 "txval214" - Name 192 "txval224" - Name 203 "txval301" - Name 211 "txval311" - Name 218 "txval321" - Name 225 "txval304" - Name 236 "txval314" - Name 247 "txval324" - Name 258 "PS_OUTPUT" - MemberName 258(PS_OUTPUT) 0 "Color" - MemberName 258(PS_OUTPUT) 1 "Depth" - Name 260 "psout" - Name 267 "Color" - Name 271 "Depth" - Name 275 "g_sSamp2d" - Name 278 "g_tTex1df4a" - Name 281 "g_tTex1di4a" - Name 284 "g_tTex1du4a" - Name 287 "g_tTexcdf4a" - Name 290 "g_tTexcdi4a" - Name 293 "g_tTexcdu4a" - Name 295 "c1" - Name 298 "c2" - Name 300 "c4" - Name 302 "o1" - Name 305 "o3" - Name 307 "o4" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4a" + Name 56 "txval021" + Name 59 "g_tTex2du4a" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 129 "txval111" + Name 138 "txval121" + Name 147 "txval104" + Name 163 "txval114" + Name 179 "txval124" + Name 195 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 369 "g_tTex1di4a" + Name 372 "g_tTex1du4a" + Name 375 "g_tTexcdf4a" + Name 378 "g_tTexcdi4a" + Name 381 "g_tTexcdu4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4a) DescriptorSet 0 - Decorate 50(g_tTex2du4a) DescriptorSet 0 - Decorate 267(Color) Location 0 - Decorate 271(Depth) BuiltIn FragDepth - Decorate 275(g_sSamp2d) DescriptorSet 0 - Decorate 278(g_tTex1df4a) DescriptorSet 0 - Decorate 278(g_tTex1df4a) Binding 0 - Decorate 281(g_tTex1di4a) DescriptorSet 0 - Decorate 284(g_tTex1du4a) DescriptorSet 0 - Decorate 287(g_tTexcdf4a) DescriptorSet 0 - Decorate 290(g_tTexcdi4a) DescriptorSet 0 - Decorate 293(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4a) DescriptorSet 0 + Decorate 59(g_tTex2du4a) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 0 + Decorate 369(g_tTex1di4a) DescriptorSet 0 + Decorate 372(g_tTex1du4a) DescriptorSet 0 + Decorate 375(g_tTexcdf4a) DescriptorSet 0 + Decorate 378(g_tTexcdi4a) DescriptorSet 0 + Decorate 381(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -838,326 +1340,400 @@ gl_FragCoord origin is upper left 15: TypePointer UniformConstant 14 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: TypePointer UniformConstant 20(fvec3) - 22(c3): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: TypeVector 24(int) 2 - 26: TypePointer UniformConstant 25(ivec2) - 27(o2): 26(ptr) Variable UniformConstant - 29: 24(int) Constant 0 - 31: TypeVector 24(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 24(int) 2D array sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex2di4a): 35(ptr) Variable UniformConstant - 39: TypeSampledImage 34 - 44: TypeInt 32 0 - 45: TypeVector 44(int) 4 - 46: TypePointer Function 45(ivec4) - 48: TypeImage 44(int) 2D array sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2du4a): 49(ptr) Variable UniformConstant - 53: TypeSampledImage 48 - 67: 44(int) Constant 4 - 68: TypeArray 25(ivec2) 67 - 99: 24(int) Constant 1 - 154: 24(int) Constant 2 - 209: 24(int) Constant 3 - 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 259: TypePointer Function 258(PS_OUTPUT) - 261: 6(float) Constant 1065353216 - 262: 7(fvec4) ConstantComposite 261 261 261 261 - 264: TypePointer Function 6(float) - 266: TypePointer Output 7(fvec4) - 267(Color): 266(ptr) Variable Output - 270: TypePointer Output 6(float) - 271(Depth): 270(ptr) Variable Output - 275(g_sSamp2d): 15(ptr) Variable UniformConstant - 276: TypeImage 6(float) 1D array sampled format:Unknown - 277: TypePointer UniformConstant 276 -278(g_tTex1df4a): 277(ptr) Variable UniformConstant - 279: TypeImage 24(int) 1D array sampled format:Unknown - 280: TypePointer UniformConstant 279 -281(g_tTex1di4a): 280(ptr) Variable UniformConstant - 282: TypeImage 44(int) 1D array sampled format:Unknown - 283: TypePointer UniformConstant 282 -284(g_tTex1du4a): 283(ptr) Variable UniformConstant - 285: TypeImage 6(float) Cube array sampled format:Unknown - 286: TypePointer UniformConstant 285 -287(g_tTexcdf4a): 286(ptr) Variable UniformConstant - 288: TypeImage 24(int) Cube array sampled format:Unknown - 289: TypePointer UniformConstant 288 -290(g_tTexcdi4a): 289(ptr) Variable UniformConstant - 291: TypeImage 44(int) Cube array sampled format:Unknown - 292: TypePointer UniformConstant 291 -293(g_tTexcdu4a): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 6(float) - 295(c1): 294(ptr) Variable UniformConstant - 296: TypeVector 6(float) 2 - 297: TypePointer UniformConstant 296(fvec2) - 298(c2): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 7(fvec4) - 300(c4): 299(ptr) Variable UniformConstant - 301: TypePointer UniformConstant 24(int) - 302(o1): 301(ptr) Variable UniformConstant - 303: TypeVector 24(int) 3 - 304: TypePointer UniformConstant 303(ivec3) - 305(o3): 304(ptr) Variable UniformConstant - 306: TypePointer UniformConstant 31(ivec4) - 307(o4): 306(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 2 + 30: TypePointer Uniform 21(fvec3) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D array sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4a): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4a): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 127: 22(int) Constant 1 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D array sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367: TypeImage 22(int) 1D array sampled format:Unknown + 368: TypePointer UniformConstant 367 +369(g_tTex1di4a): 368(ptr) Variable UniformConstant + 370: TypeImage 53(int) 1D array sampled format:Unknown + 371: TypePointer UniformConstant 370 +372(g_tTex1du4a): 371(ptr) Variable UniformConstant + 373: TypeImage 6(float) Cube array sampled format:Unknown + 374: TypePointer UniformConstant 373 +375(g_tTexcdf4a): 374(ptr) Variable UniformConstant + 376: TypeImage 22(int) Cube array sampled format:Unknown + 377: TypePointer UniformConstant 376 +378(g_tTexcdi4a): 377(ptr) Variable UniformConstant + 379: TypeImage 53(int) Cube array sampled format:Unknown + 380: TypePointer UniformConstant 379 +381(g_tTexcdu4a): 380(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function - 33(txval011): 32(ptr) Variable Function - 47(txval021): 46(ptr) Variable Function - 58(txval004): 8(ptr) Variable Function - 71(txval014): 32(ptr) Variable Function - 82(txval024): 46(ptr) Variable Function - 93(txval101): 8(ptr) Variable Function - 101(txval111): 32(ptr) Variable Function - 108(txval121): 46(ptr) Variable Function - 115(txval104): 8(ptr) Variable Function - 126(txval114): 32(ptr) Variable Function - 137(txval124): 46(ptr) Variable Function - 148(txval201): 8(ptr) Variable Function - 156(txval211): 32(ptr) Variable Function - 163(txval221): 46(ptr) Variable Function - 170(txval204): 8(ptr) Variable Function - 181(txval214): 32(ptr) Variable Function - 192(txval224): 46(ptr) Variable Function - 203(txval301): 8(ptr) Variable Function - 211(txval311): 32(ptr) Variable Function - 218(txval321): 46(ptr) Variable Function - 225(txval304): 8(ptr) Variable Function - 236(txval314): 32(ptr) Variable Function - 247(txval324): 46(ptr) Variable Function - 260(psout): 259(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 129(txval111): 39(ptr) Variable Function + 138(txval121): 55(ptr) Variable Function + 147(txval104): 8(ptr) Variable Function + 163(txval114): 39(ptr) Variable Function + 179(txval124): 55(ptr) Variable Function + 195(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function 13: 10 Load 12(g_tTex2df4a) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec3) Load 22(c3) - 28: 25(ivec2) Load 27(o2) - 30: 7(fvec4) ImageGather 19 23 29 Offset 28 - Store 9(txval001) 30 - 37: 34 Load 36(g_tTex2di4a) - 38: 14 Load 16(g_sSamp) - 40: 39 SampledImage 37 38 - 41: 20(fvec3) Load 22(c3) - 42: 25(ivec2) Load 27(o2) - 43: 31(ivec4) ImageGather 40 41 29 Offset 42 - Store 33(txval011) 43 - 51: 48 Load 50(g_tTex2du4a) - 52: 14 Load 16(g_sSamp) - 54: 53 SampledImage 51 52 - 55: 20(fvec3) Load 22(c3) - 56: 25(ivec2) Load 27(o2) - 57: 45(ivec4) ImageGather 54 55 29 Offset 56 - Store 47(txval021) 57 - 59: 10 Load 12(g_tTex2df4a) - 60: 14 Load 16(g_sSamp) - 61: 18 SampledImage 59 60 - 62: 20(fvec3) Load 22(c3) - 63: 25(ivec2) Load 27(o2) - 64: 25(ivec2) Load 27(o2) - 65: 25(ivec2) Load 27(o2) - 66: 25(ivec2) Load 27(o2) - 69: 68 CompositeConstruct 63 64 65 66 - 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 - Store 58(txval004) 70 - 72: 34 Load 36(g_tTex2di4a) - 73: 14 Load 16(g_sSamp) - 74: 39 SampledImage 72 73 - 75: 20(fvec3) Load 22(c3) - 76: 25(ivec2) Load 27(o2) - 77: 25(ivec2) Load 27(o2) - 78: 25(ivec2) Load 27(o2) - 79: 25(ivec2) Load 27(o2) - 80: 68 CompositeConstruct 76 77 78 79 - 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 - Store 71(txval014) 81 - 83: 48 Load 50(g_tTex2du4a) - 84: 14 Load 16(g_sSamp) - 85: 53 SampledImage 83 84 - 86: 20(fvec3) Load 22(c3) - 87: 25(ivec2) Load 27(o2) - 88: 25(ivec2) Load 27(o2) - 89: 25(ivec2) Load 27(o2) - 90: 25(ivec2) Load 27(o2) - 91: 68 CompositeConstruct 87 88 89 90 - 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 - Store 82(txval024) 92 - 94: 10 Load 12(g_tTex2df4a) - 95: 14 Load 16(g_sSamp) - 96: 18 SampledImage 94 95 - 97: 20(fvec3) Load 22(c3) - 98: 25(ivec2) Load 27(o2) - 100: 7(fvec4) ImageGather 96 97 99 Offset 98 - Store 93(txval101) 100 - 102: 34 Load 36(g_tTex2di4a) - 103: 14 Load 16(g_sSamp) - 104: 39 SampledImage 102 103 - 105: 20(fvec3) Load 22(c3) - 106: 25(ivec2) Load 27(o2) - 107: 31(ivec4) ImageGather 104 105 99 Offset 106 - Store 101(txval111) 107 - 109: 48 Load 50(g_tTex2du4a) - 110: 14 Load 16(g_sSamp) - 111: 53 SampledImage 109 110 - 112: 20(fvec3) Load 22(c3) - 113: 25(ivec2) Load 27(o2) - 114: 45(ivec4) ImageGather 111 112 99 Offset 113 - Store 108(txval121) 114 - 116: 10 Load 12(g_tTex2df4a) - 117: 14 Load 16(g_sSamp) - 118: 18 SampledImage 116 117 - 119: 20(fvec3) Load 22(c3) - 120: 25(ivec2) Load 27(o2) - 121: 25(ivec2) Load 27(o2) - 122: 25(ivec2) Load 27(o2) - 123: 25(ivec2) Load 27(o2) - 124: 68 CompositeConstruct 120 121 122 123 - 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 - Store 115(txval104) 125 - 127: 34 Load 36(g_tTex2di4a) - 128: 14 Load 16(g_sSamp) - 129: 39 SampledImage 127 128 - 130: 20(fvec3) Load 22(c3) - 131: 25(ivec2) Load 27(o2) - 132: 25(ivec2) Load 27(o2) - 133: 25(ivec2) Load 27(o2) - 134: 25(ivec2) Load 27(o2) - 135: 68 CompositeConstruct 131 132 133 134 - 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 - Store 126(txval114) 136 - 138: 48 Load 50(g_tTex2du4a) - 139: 14 Load 16(g_sSamp) - 140: 53 SampledImage 138 139 - 141: 20(fvec3) Load 22(c3) - 142: 25(ivec2) Load 27(o2) - 143: 25(ivec2) Load 27(o2) - 144: 25(ivec2) Load 27(o2) - 145: 25(ivec2) Load 27(o2) - 146: 68 CompositeConstruct 142 143 144 145 - 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 - Store 137(txval124) 147 - 149: 10 Load 12(g_tTex2df4a) - 150: 14 Load 16(g_sSamp) - 151: 18 SampledImage 149 150 - 152: 20(fvec3) Load 22(c3) - 153: 25(ivec2) Load 27(o2) - 155: 7(fvec4) ImageGather 151 152 154 Offset 153 - Store 148(txval201) 155 - 157: 34 Load 36(g_tTex2di4a) - 158: 14 Load 16(g_sSamp) - 159: 39 SampledImage 157 158 - 160: 20(fvec3) Load 22(c3) - 161: 25(ivec2) Load 27(o2) - 162: 31(ivec4) ImageGather 159 160 154 Offset 161 - Store 156(txval211) 162 - 164: 48 Load 50(g_tTex2du4a) + 31: 30(ptr) AccessChain 28 29 + 32: 21(fvec3) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4a) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 21(fvec3) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4a) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 21(fvec3) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4a) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 21(fvec3) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4a) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 21(fvec3) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4a) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 21(fvec3) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4a) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 21(fvec3) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 128: 7(fvec4) ImageGather 122 124 127 Offset 126 + Store 119(txval101) 128 + 130: 41 Load 43(g_tTex2di4a) + 131: 14 Load 16(g_sSamp) + 132: 46 SampledImage 130 131 + 133: 30(ptr) AccessChain 28 29 + 134: 21(fvec3) Load 133 + 135: 34(ptr) AccessChain 28 33 + 136: 23(ivec2) Load 135 + 137: 25(ivec4) ImageGather 132 134 127 Offset 136 + Store 129(txval111) 137 + 139: 57 Load 59(g_tTex2du4a) + 140: 14 Load 16(g_sSamp) + 141: 62 SampledImage 139 140 + 142: 30(ptr) AccessChain 28 29 + 143: 21(fvec3) Load 142 + 144: 34(ptr) AccessChain 28 33 + 145: 23(ivec2) Load 144 + 146: 54(ivec4) ImageGather 141 143 127 Offset 145 + Store 138(txval121) 146 + 148: 10 Load 12(g_tTex2df4a) + 149: 14 Load 16(g_sSamp) + 150: 18 SampledImage 148 149 + 151: 30(ptr) AccessChain 28 29 + 152: 21(fvec3) Load 151 + 153: 34(ptr) AccessChain 28 33 + 154: 23(ivec2) Load 153 + 155: 34(ptr) AccessChain 28 33 + 156: 23(ivec2) Load 155 + 157: 34(ptr) AccessChain 28 33 + 158: 23(ivec2) Load 157 + 159: 34(ptr) AccessChain 28 33 + 160: 23(ivec2) Load 159 + 161: 84 CompositeConstruct 154 156 158 160 + 162: 7(fvec4) ImageGather 150 152 127 ConstOffsets 161 + Store 147(txval104) 162 + 164: 41 Load 43(g_tTex2di4a) 165: 14 Load 16(g_sSamp) - 166: 53 SampledImage 164 165 - 167: 20(fvec3) Load 22(c3) - 168: 25(ivec2) Load 27(o2) - 169: 45(ivec4) ImageGather 166 167 154 Offset 168 - Store 163(txval221) 169 - 171: 10 Load 12(g_tTex2df4a) - 172: 14 Load 16(g_sSamp) - 173: 18 SampledImage 171 172 - 174: 20(fvec3) Load 22(c3) - 175: 25(ivec2) Load 27(o2) - 176: 25(ivec2) Load 27(o2) - 177: 25(ivec2) Load 27(o2) - 178: 25(ivec2) Load 27(o2) - 179: 68 CompositeConstruct 175 176 177 178 - 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 - Store 170(txval204) 180 - 182: 34 Load 36(g_tTex2di4a) - 183: 14 Load 16(g_sSamp) - 184: 39 SampledImage 182 183 - 185: 20(fvec3) Load 22(c3) - 186: 25(ivec2) Load 27(o2) - 187: 25(ivec2) Load 27(o2) - 188: 25(ivec2) Load 27(o2) - 189: 25(ivec2) Load 27(o2) - 190: 68 CompositeConstruct 186 187 188 189 - 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 - Store 181(txval214) 191 - 193: 48 Load 50(g_tTex2du4a) - 194: 14 Load 16(g_sSamp) - 195: 53 SampledImage 193 194 - 196: 20(fvec3) Load 22(c3) - 197: 25(ivec2) Load 27(o2) - 198: 25(ivec2) Load 27(o2) - 199: 25(ivec2) Load 27(o2) - 200: 25(ivec2) Load 27(o2) - 201: 68 CompositeConstruct 197 198 199 200 - 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 - Store 192(txval224) 202 - 204: 10 Load 12(g_tTex2df4a) - 205: 14 Load 16(g_sSamp) - 206: 18 SampledImage 204 205 - 207: 20(fvec3) Load 22(c3) - 208: 25(ivec2) Load 27(o2) - 210: 7(fvec4) ImageGather 206 207 209 Offset 208 - Store 203(txval301) 210 - 212: 34 Load 36(g_tTex2di4a) - 213: 14 Load 16(g_sSamp) - 214: 39 SampledImage 212 213 - 215: 20(fvec3) Load 22(c3) - 216: 25(ivec2) Load 27(o2) - 217: 31(ivec4) ImageGather 214 215 209 Offset 216 - Store 211(txval311) 217 - 219: 48 Load 50(g_tTex2du4a) - 220: 14 Load 16(g_sSamp) - 221: 53 SampledImage 219 220 - 222: 20(fvec3) Load 22(c3) - 223: 25(ivec2) Load 27(o2) - 224: 45(ivec4) ImageGather 221 222 209 Offset 223 - Store 218(txval321) 224 - 226: 10 Load 12(g_tTex2df4a) - 227: 14 Load 16(g_sSamp) - 228: 18 SampledImage 226 227 - 229: 20(fvec3) Load 22(c3) - 230: 25(ivec2) Load 27(o2) - 231: 25(ivec2) Load 27(o2) - 232: 25(ivec2) Load 27(o2) - 233: 25(ivec2) Load 27(o2) - 234: 68 CompositeConstruct 230 231 232 233 - 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 - Store 225(txval304) 235 - 237: 34 Load 36(g_tTex2di4a) - 238: 14 Load 16(g_sSamp) - 239: 39 SampledImage 237 238 - 240: 20(fvec3) Load 22(c3) - 241: 25(ivec2) Load 27(o2) - 242: 25(ivec2) Load 27(o2) - 243: 25(ivec2) Load 27(o2) - 244: 25(ivec2) Load 27(o2) - 245: 68 CompositeConstruct 241 242 243 244 - 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 - Store 236(txval314) 246 - 248: 48 Load 50(g_tTex2du4a) - 249: 14 Load 16(g_sSamp) - 250: 53 SampledImage 248 249 - 251: 20(fvec3) Load 22(c3) - 252: 25(ivec2) Load 27(o2) - 253: 25(ivec2) Load 27(o2) - 254: 25(ivec2) Load 27(o2) - 255: 25(ivec2) Load 27(o2) - 256: 68 CompositeConstruct 252 253 254 255 - 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 - Store 247(txval324) 257 - 263: 8(ptr) AccessChain 260(psout) 29 - Store 263 262 - 265: 264(ptr) AccessChain 260(psout) 99 - Store 265 261 - 268: 8(ptr) AccessChain 260(psout) 29 - 269: 7(fvec4) Load 268 - Store 267(Color) 269 - 272: 264(ptr) AccessChain 260(psout) 99 - 273: 6(float) Load 272 - Store 271(Depth) 273 + 166: 46 SampledImage 164 165 + 167: 30(ptr) AccessChain 28 29 + 168: 21(fvec3) Load 167 + 169: 34(ptr) AccessChain 28 33 + 170: 23(ivec2) Load 169 + 171: 34(ptr) AccessChain 28 33 + 172: 23(ivec2) Load 171 + 173: 34(ptr) AccessChain 28 33 + 174: 23(ivec2) Load 173 + 175: 34(ptr) AccessChain 28 33 + 176: 23(ivec2) Load 175 + 177: 84 CompositeConstruct 170 172 174 176 + 178: 25(ivec4) ImageGather 166 168 127 ConstOffsets 177 + Store 163(txval114) 178 + 180: 57 Load 59(g_tTex2du4a) + 181: 14 Load 16(g_sSamp) + 182: 62 SampledImage 180 181 + 183: 30(ptr) AccessChain 28 29 + 184: 21(fvec3) Load 183 + 185: 34(ptr) AccessChain 28 33 + 186: 23(ivec2) Load 185 + 187: 34(ptr) AccessChain 28 33 + 188: 23(ivec2) Load 187 + 189: 34(ptr) AccessChain 28 33 + 190: 23(ivec2) Load 189 + 191: 34(ptr) AccessChain 28 33 + 192: 23(ivec2) Load 191 + 193: 84 CompositeConstruct 186 188 190 192 + 194: 54(ivec4) ImageGather 182 184 127 ConstOffsets 193 + Store 179(txval124) 194 + 196: 10 Load 12(g_tTex2df4a) + 197: 14 Load 16(g_sSamp) + 198: 18 SampledImage 196 197 + 199: 30(ptr) AccessChain 28 29 + 200: 21(fvec3) Load 199 + 201: 34(ptr) AccessChain 28 33 + 202: 23(ivec2) Load 201 + 203: 7(fvec4) ImageGather 198 200 29 Offset 202 + Store 195(txval201) 203 + 205: 41 Load 43(g_tTex2di4a) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 21(fvec3) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 29 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4a) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 21(fvec3) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 29 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4a) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 21(fvec3) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 29 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4a) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 21(fvec3) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 29 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4a) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 21(fvec3) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 29 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4a) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 21(fvec3) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4a) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 21(fvec3) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4a) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 21(fvec3) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4a) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 21(fvec3) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4a) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 21(fvec3) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4a) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 21(fvec3) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 127 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 127 + 361: 6(float) Load 360 + Store 359(Depth) 361 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 18b35e4c..8aba16ae 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1114,7 +1114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 3c063c12..1d72e873 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.getdimensions.dx10.vert Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -56,7 +56,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index a44e9445..41f6ca2d 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,7 +7,7 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence @@ -72,7 +72,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 499015a4..3b329ae1 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -2,7 +2,7 @@ hlsl.if.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -103,7 +103,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 99acc235..b31921b4 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -236,7 +236,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 3657cb22..9ba8b118 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -2,7 +2,7 @@ hlsl.init2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -29,10 +29,10 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence -0:27 Function Call: Test1( (global void) +0:27 Function Call: Test1( (temp void) 0:30 move second child to first child (temp 4-component vector of float) 0:30 color: direct index for structure (temp 4-component vector of float) 0:30 'ps_output' (temp structure{temp 4-component vector of float color}) @@ -62,7 +62,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -89,10 +89,10 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence -0:27 Function Call: Test1( (global void) +0:27 Function Call: Test1( (temp void) 0:30 move second child to first child (temp 4-component vector of float) 0:30 color: direct index for structure (temp 4-component vector of float) 0:30 'ps_output' (temp structure{temp 4-component vector of float color}) diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 2fcb7222..b3b3d8fd 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -2,7 +2,7 @@ hlsl.inoutquals.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left 0:18 'z' (temp float) 0:18 Constant: 0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) 0:19 'x' (temp float) 0:19 'y' (temp float) 0:19 'z' (temp float) @@ -82,7 +82,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -98,7 +98,7 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) 0:? Sequence @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:18 'z' (temp float) 0:18 Constant: 0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) 0:19 'x' (temp float) 0:19 'y' (temp float) 0:19 'z' (temp float) diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 95e17258..5d92dd1f 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (global float) +0:3 Function Definition: ComputeShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) @@ -27,7 +27,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (global float) +0:3 Function Definition: ComputeShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index b760c65e..f7339755 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -74,7 +74,7 @@ local_size = (1, 1, 1) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -83,7 +83,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -156,7 +156,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -230,7 +230,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -335,7 +335,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -407,7 +407,7 @@ local_size = (1, 1, 1) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -416,7 +416,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -489,7 +489,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -563,7 +563,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 0dba0329..554e5520 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.double.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) @@ -51,7 +51,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index a23a8833..8f8dd610 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 21daced7..5fcb5f99 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -9,7 +9,7 @@ ERROR: 4 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -19,14 +19,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -37,7 +37,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -49,7 +49,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -76,7 +76,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -86,14 +86,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -104,7 +104,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -116,7 +116,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 151bdb42..09f88a86 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -339,7 +339,7 @@ gl_FragCoord origin is upper left 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -348,7 +348,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -733,7 +733,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -1138,7 +1138,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) @@ -1558,7 +1558,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -1846,7 +1846,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -2144,7 +2144,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -2456,7 +2456,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -2519,7 +2519,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -2582,7 +2582,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -2645,7 +2645,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) @@ -2759,7 +2759,7 @@ gl_FragCoord origin is upper left 0:483 matrix-multiply (temp 3X4 matrix of float) 0:483 'inFM2x4' (in 2X4 matrix of float) 0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:489 Function Parameters: 0:? Sequence 0:491 move second child to first child (temp 4-component vector of float) @@ -2803,7 +2803,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -3140,7 +3140,7 @@ gl_FragCoord origin is upper left 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -3149,7 +3149,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -3534,7 +3534,7 @@ gl_FragCoord origin is upper left 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -3939,7 +3939,7 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) @@ -4359,7 +4359,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -4647,7 +4647,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -4945,7 +4945,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -5257,7 +5257,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -5320,7 +5320,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -5383,7 +5383,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -5446,7 +5446,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) @@ -5560,7 +5560,7 @@ gl_FragCoord origin is upper left 0:483 matrix-multiply (temp 3X4 matrix of float) 0:483 'inFM2x4' (in 2X4 matrix of float) 0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:489 Function Parameters: 0:? Sequence 0:491 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index eb3cee7d..6b393048 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.lit.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 01008644..44dedf77 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.negative.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -12,7 +12,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -22,7 +22,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -33,7 +33,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -45,7 +45,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -75,7 +75,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -85,7 +85,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -95,7 +95,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -106,7 +106,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -118,7 +118,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 2244e8bc..29ee0095 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -65,7 +65,7 @@ ERROR: 60 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -142,7 +142,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -154,7 +154,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -197,7 +197,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -233,7 +233,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -276,7 +276,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -314,7 +314,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -357,7 +357,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) @@ -421,7 +421,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -498,7 +498,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -510,7 +510,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -553,7 +553,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -589,7 +589,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -632,7 +632,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -670,7 +670,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -713,7 +713,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index e702d332..72b6fbcc 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.negative.vert Shader version: 450 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -11,7 +11,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -21,7 +21,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -32,7 +32,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -44,7 +44,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -60,7 +60,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -72,7 +72,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -89,7 +89,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) @@ -138,7 +138,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -148,7 +148,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -158,7 +158,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -169,7 +169,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -181,7 +181,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -197,7 +197,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -209,7 +209,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -226,7 +226,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 121c8093..811a752d 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.vert Shader version: 450 0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -142,7 +142,7 @@ Shader version: 450 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -151,7 +151,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -317,7 +317,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -489,7 +489,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -681,7 +681,7 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) @@ -811,7 +811,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) @@ -946,7 +946,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) @@ -1088,7 +1088,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -1151,7 +1151,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -1214,7 +1214,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -1277,7 +1277,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) @@ -1399,7 +1399,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -1540,7 +1540,7 @@ Shader version: 450 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -1549,7 +1549,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -1715,7 +1715,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -1887,7 +1887,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -2079,7 +2079,7 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) @@ -2209,7 +2209,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) @@ -2344,7 +2344,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) @@ -2486,7 +2486,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -2549,7 +2549,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -2612,7 +2612,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -2675,7 +2675,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 938332b7..ef096f35 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -2,7 +2,7 @@ hlsl.layout.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:16 Function Parameters: 0:16 'input' (in 4-component vector of float) 0:? Sequence @@ -37,7 +37,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:16 Function Parameters: 0:16 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 051f2017..0048d9ad 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,75 +2,129 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) -0:32 'c2' (uniform 2-component vector of int) +0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) 0:33 textureFetch (global 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) -0:33 'c2' (uniform 2-component vector of int) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) 0:34 textureFetch (global 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) -0:34 'c2' (uniform 2-component vector of int) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) 0:37 textureFetchOffset (global 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) -0:37 'c2' (uniform 2-component vector of int) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) -0:37 'o2' (uniform 2-component vector of int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) 0:38 textureFetchOffset (global 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) -0:38 'c2' (uniform 2-component vector of int) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) -0:38 'o2' (uniform 2-component vector of int) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) 0:39 textureFetchOffset (global 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) -0:39 'c2' (uniform 2-component vector of int) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) -0:39 'o2' (uniform 2-component vector of int) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) 0:42 textureFetch (global 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:42 'c3' (uniform 3-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) 0:43 textureFetch (global 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:43 'c3' (uniform 3-component vector of int) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) 0:44 textureFetch (global 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:44 'c3' (uniform 3-component vector of int) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) 0:47 textureFetchOffset (global 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:47 'c3' (uniform 3-component vector of int) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) -0:47 'o2' (uniform 2-component vector of int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:48 textureFetchOffset (global 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:48 'c3' (uniform 3-component vector of int) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) -0:48 'o2' (uniform 2-component vector of int) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:49 textureFetchOffset (global 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:49 'c3' (uniform 3-component vector of int) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) -0:49 'o2' (uniform 2-component vector of int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -111,16 +165,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -129,75 +176,129 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch (global 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) -0:32 'c2' (uniform 2-component vector of int) +0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) 0:33 textureFetch (global 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) -0:33 'c2' (uniform 2-component vector of int) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) 0:34 textureFetch (global 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) -0:34 'c2' (uniform 2-component vector of int) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) 0:37 textureFetchOffset (global 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) -0:37 'c2' (uniform 2-component vector of int) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) -0:37 'o2' (uniform 2-component vector of int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) 0:38 textureFetchOffset (global 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) -0:38 'c2' (uniform 2-component vector of int) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) -0:38 'o2' (uniform 2-component vector of int) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) 0:39 textureFetchOffset (global 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) -0:39 'c2' (uniform 2-component vector of int) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) -0:39 'o2' (uniform 2-component vector of int) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) 0:42 textureFetch (global 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:42 'c3' (uniform 3-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) 0:43 textureFetch (global 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:43 'c3' (uniform 3-component vector of int) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) 0:44 textureFetch (global 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:44 'c3' (uniform 3-component vector of int) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) 0:47 textureFetchOffset (global 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:47 'c3' (uniform 3-component vector of int) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) -0:47 'o2' (uniform 2-component vector of int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:48 textureFetchOffset (global 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:48 'c3' (uniform 3-component vector of int) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) -0:48 'o2' (uniform 2-component vector of int) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:49 textureFetchOffset (global 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:49 'c3' (uniform 3-component vector of int) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) -0:49 'o2' (uniform 2-component vector of int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -238,60 +339,65 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 123 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 96 + EntryPoint Fragment 4 "main" 112 116 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" - Name 14 "c2" - Name 21 "g_tTex2dmsi4" - Name 29 "g_tTex2dmsu4" - Name 36 "o2" - Name 49 "g_tTex2dmsf4a" - Name 53 "c3" - Name 58 "g_tTex2dmsi4a" - Name 64 "g_tTex2dmsu4a" - Name 80 "PS_OUTPUT" - MemberName 80(PS_OUTPUT) 0 "Color" - MemberName 80(PS_OUTPUT) 1 "Depth" - Name 82 "psout" - Name 92 "Color" - Name 96 "Depth" - Name 102 "g_sSamp" - Name 104 "c1" - Name 106 "c4" - Name 107 "o1" - Name 108 "o3" - Name 109 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tTex2dmsi4" + Name 35 "g_tTex2dmsu4" + Name 62 "g_tTex2dmsf4a" + Name 71 "g_tTex2dmsi4a" + Name 78 "g_tTex2dmsu4a" + Name 101 "PS_OUTPUT" + MemberName 101(PS_OUTPUT) 0 "Color" + MemberName 101(PS_OUTPUT) 1 "Depth" + Name 103 "psout" + Name 112 "Color" + Name 116 "Depth" + Name 122 "g_sSamp" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 - Decorate 21(g_tTex2dmsi4) DescriptorSet 0 - Decorate 29(g_tTex2dmsu4) DescriptorSet 0 - Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 92(Color) Location 0 - Decorate 96(Depth) BuiltIn FragDepth - Decorate 102(g_sSamp) DescriptorSet 0 - Decorate 102(g_sSamp) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tTex2dmsi4) DescriptorSet 0 + Decorate 35(g_tTex2dmsu4) DescriptorSet 0 + Decorate 62(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 71(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 78(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 112(Color) Location 0 + Decorate 116(Depth) BuiltIn FragDepth + Decorate 122(g_sSamp) DescriptorSet 0 + Decorate 122(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -300,108 +406,121 @@ gl_FragCoord origin is upper left 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 16: 11(int) Constant 3 - 17: TypeVector 6(float) 4 - 19: TypeImage 11(int) 2D multi-sampled sampled format:Unknown - 20: TypePointer UniformConstant 19 -21(g_tTex2dmsi4): 20(ptr) Variable UniformConstant - 24: TypeVector 11(int) 4 - 26: TypeInt 32 0 - 27: TypeImage 26(int) 2D multi-sampled sampled format:Unknown - 28: TypePointer UniformConstant 27 -29(g_tTex2dmsu4): 28(ptr) Variable UniformConstant - 32: TypeVector 26(int) 4 - 36(o2): 13(ptr) Variable UniformConstant - 47: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown - 48: TypePointer UniformConstant 47 -49(g_tTex2dmsf4a): 48(ptr) Variable UniformConstant - 51: TypeVector 11(int) 3 - 52: TypePointer UniformConstant 51(ivec3) - 53(c3): 52(ptr) Variable UniformConstant - 56: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown - 57: TypePointer UniformConstant 56 -58(g_tTex2dmsi4a): 57(ptr) Variable UniformConstant - 62: TypeImage 26(int) 2D array multi-sampled sampled format:Unknown - 63: TypePointer UniformConstant 62 -64(g_tTex2dmsu4a): 63(ptr) Variable UniformConstant - 80(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) - 81: TypePointer Function 80(PS_OUTPUT) - 83: 11(int) Constant 0 - 84: 6(float) Constant 1065353216 - 85: 17(fvec4) ConstantComposite 84 84 84 84 - 86: TypePointer Function 17(fvec4) - 88: 11(int) Constant 1 - 89: TypePointer Function 6(float) - 91: TypePointer Output 17(fvec4) - 92(Color): 91(ptr) Variable Output - 95: TypePointer Output 6(float) - 96(Depth): 95(ptr) Variable Output - 100: TypeSampler - 101: TypePointer UniformConstant 100 - 102(g_sSamp): 101(ptr) Variable UniformConstant - 103: TypePointer UniformConstant 11(int) - 104(c1): 103(ptr) Variable UniformConstant - 105: TypePointer UniformConstant 24(ivec4) - 106(c4): 105(ptr) Variable UniformConstant - 107(o1): 103(ptr) Variable UniformConstant - 108(o3): 52(ptr) Variable UniformConstant - 109(o4): 105(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: 11(int) Constant 3 + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 2D multi-sampled sampled format:Unknown + 26: TypePointer UniformConstant 25 +27(g_tTex2dmsi4): 26(ptr) Variable UniformConstant + 32: TypeInt 32 0 + 33: TypeImage 32(int) 2D multi-sampled sampled format:Unknown + 34: TypePointer UniformConstant 33 +35(g_tTex2dmsu4): 34(ptr) Variable UniformConstant + 39: TypeVector 32(int) 4 + 44: 11(int) Constant 5 + 60: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 61: TypePointer UniformConstant 60 +62(g_tTex2dmsf4a): 61(ptr) Variable UniformConstant + 64: 11(int) Constant 2 + 65: TypePointer Uniform 13(ivec3) + 69: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown + 70: TypePointer UniformConstant 69 +71(g_tTex2dmsi4a): 70(ptr) Variable UniformConstant + 76: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown + 77: TypePointer UniformConstant 76 +78(g_tTex2dmsu4a): 77(ptr) Variable UniformConstant + 101(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 102: TypePointer Function 101(PS_OUTPUT) + 104: 11(int) Constant 0 + 105: 6(float) Constant 1065353216 + 106: 23(fvec4) ConstantComposite 105 105 105 105 + 107: TypePointer Function 23(fvec4) + 109: TypePointer Function 6(float) + 111: TypePointer Output 23(fvec4) + 112(Color): 111(ptr) Variable Output + 115: TypePointer Output 6(float) + 116(Depth): 115(ptr) Variable Output + 120: TypeSampler + 121: TypePointer UniformConstant 120 + 122(g_sSamp): 121(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 82(psout): 81(ptr) Variable Function + 103(psout): 102(ptr) Variable Function 10: 7 Load 9(g_tTex2dmsf4) - 15: 12(ivec2) Load 14(c2) - 18: 17(fvec4) ImageFetch 10 15 Sample 16 - 22: 19 Load 21(g_tTex2dmsi4) - 23: 12(ivec2) Load 14(c2) - 25: 24(ivec4) ImageFetch 22 23 Sample 16 - 30: 27 Load 29(g_tTex2dmsu4) - 31: 12(ivec2) Load 14(c2) - 33: 32(ivec4) ImageFetch 30 31 Sample 16 - 34: 7 Load 9(g_tTex2dmsf4) - 35: 12(ivec2) Load 14(c2) - 37: 12(ivec2) Load 36(o2) - 38: 17(fvec4) ImageFetch 34 35 Offset Sample 37 16 - 39: 19 Load 21(g_tTex2dmsi4) - 40: 12(ivec2) Load 14(c2) - 41: 12(ivec2) Load 36(o2) - 42: 24(ivec4) ImageFetch 39 40 Offset Sample 41 16 - 43: 27 Load 29(g_tTex2dmsu4) - 44: 12(ivec2) Load 14(c2) - 45: 12(ivec2) Load 36(o2) - 46: 32(ivec4) ImageFetch 43 44 Offset Sample 45 16 - 50: 47 Load 49(g_tTex2dmsf4a) - 54: 51(ivec3) Load 53(c3) - 55: 17(fvec4) ImageFetch 50 54 Sample 16 - 59: 56 Load 58(g_tTex2dmsi4a) - 60: 51(ivec3) Load 53(c3) - 61: 24(ivec4) ImageFetch 59 60 Sample 16 - 65: 62 Load 64(g_tTex2dmsu4a) - 66: 51(ivec3) Load 53(c3) - 67: 32(ivec4) ImageFetch 65 66 Sample 16 - 68: 47 Load 49(g_tTex2dmsf4a) - 69: 51(ivec3) Load 53(c3) - 70: 12(ivec2) Load 36(o2) - 71: 17(fvec4) ImageFetch 68 69 Offset Sample 70 16 - 72: 56 Load 58(g_tTex2dmsi4a) - 73: 51(ivec3) Load 53(c3) - 74: 12(ivec2) Load 36(o2) - 75: 24(ivec4) ImageFetch 72 73 Offset Sample 74 16 - 76: 62 Load 64(g_tTex2dmsu4a) - 77: 51(ivec3) Load 53(c3) - 78: 12(ivec2) Load 36(o2) - 79: 32(ivec4) ImageFetch 76 77 Offset Sample 78 16 - 87: 86(ptr) AccessChain 82(psout) 83 - Store 87 85 - 90: 89(ptr) AccessChain 82(psout) 88 - Store 90 84 - 93: 86(ptr) AccessChain 82(psout) 83 - 94: 17(fvec4) Load 93 - Store 92(Color) 94 - 97: 89(ptr) AccessChain 82(psout) 88 - 98: 6(float) Load 97 - Store 96(Depth) 98 + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 24: 23(fvec4) ImageFetch 10 21 Sample 22 + 28: 25 Load 27(g_tTex2dmsi4) + 29: 19(ptr) AccessChain 17 18 + 30: 12(ivec2) Load 29 + 31: 14(ivec4) ImageFetch 28 30 Sample 22 + 36: 33 Load 35(g_tTex2dmsu4) + 37: 19(ptr) AccessChain 17 18 + 38: 12(ivec2) Load 37 + 40: 39(ivec4) ImageFetch 36 38 Sample 22 + 41: 7 Load 9(g_tTex2dmsf4) + 42: 19(ptr) AccessChain 17 18 + 43: 12(ivec2) Load 42 + 45: 19(ptr) AccessChain 17 44 + 46: 12(ivec2) Load 45 + 47: 23(fvec4) ImageFetch 41 43 Offset Sample 46 22 + 48: 25 Load 27(g_tTex2dmsi4) + 49: 19(ptr) AccessChain 17 18 + 50: 12(ivec2) Load 49 + 51: 19(ptr) AccessChain 17 44 + 52: 12(ivec2) Load 51 + 53: 14(ivec4) ImageFetch 48 50 Offset Sample 52 22 + 54: 33 Load 35(g_tTex2dmsu4) + 55: 19(ptr) AccessChain 17 18 + 56: 12(ivec2) Load 55 + 57: 19(ptr) AccessChain 17 44 + 58: 12(ivec2) Load 57 + 59: 39(ivec4) ImageFetch 54 56 Offset Sample 58 22 + 63: 60 Load 62(g_tTex2dmsf4a) + 66: 65(ptr) AccessChain 17 64 + 67: 13(ivec3) Load 66 + 68: 23(fvec4) ImageFetch 63 67 Sample 22 + 72: 69 Load 71(g_tTex2dmsi4a) + 73: 65(ptr) AccessChain 17 64 + 74: 13(ivec3) Load 73 + 75: 14(ivec4) ImageFetch 72 74 Sample 22 + 79: 76 Load 78(g_tTex2dmsu4a) + 80: 65(ptr) AccessChain 17 64 + 81: 13(ivec3) Load 80 + 82: 39(ivec4) ImageFetch 79 81 Sample 22 + 83: 60 Load 62(g_tTex2dmsf4a) + 84: 65(ptr) AccessChain 17 64 + 85: 13(ivec3) Load 84 + 86: 19(ptr) AccessChain 17 44 + 87: 12(ivec2) Load 86 + 88: 23(fvec4) ImageFetch 83 85 Offset Sample 87 22 + 89: 69 Load 71(g_tTex2dmsi4a) + 90: 65(ptr) AccessChain 17 64 + 91: 13(ivec3) Load 90 + 92: 19(ptr) AccessChain 17 44 + 93: 12(ivec2) Load 92 + 94: 14(ivec4) ImageFetch 89 91 Offset Sample 93 22 + 95: 76 Load 78(g_tTex2dmsu4a) + 96: 65(ptr) AccessChain 17 64 + 97: 13(ivec3) Load 96 + 98: 19(ptr) AccessChain 17 44 + 99: 12(ivec2) Load 98 + 100: 39(ivec4) ImageFetch 95 97 Offset Sample 99 22 + 108: 107(ptr) AccessChain 103(psout) 104 + Store 108 106 + 110: 109(ptr) AccessChain 103(psout) 18 + Store 110 105 + 113: 107(ptr) AccessChain 103(psout) 104 + 114: 23(fvec4) Load 113 + Store 112(Color) 114 + 117: 109(ptr) AccessChain 103(psout) 18 + 118: 6(float) Load 117 + Store 116(Depth) 118 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 37238837..fada58a9 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,52 +2,73 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) 0:53 textureFetch (global 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) 0:54 textureFetch (global 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) 0:57 textureFetch (global 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -56,13 +77,19 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) 0:58 textureFetch (global 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -71,13 +98,19 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) 0:59 textureFetch (global 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -86,7 +119,10 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -144,16 +180,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -162,52 +191,73 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) 0:53 textureFetch (global 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) 0:54 textureFetch (global 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) 0:57 textureFetch (global 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -216,13 +266,19 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) 0:58 textureFetch (global 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -231,13 +287,19 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) 0:59 textureFetch (global 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -246,7 +308,10 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -304,91 +369,96 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 87 91 + EntryPoint Fragment 4 "main" 96 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" - Name 14 "c3" - Name 27 "g_tTex1di4a" - Name 37 "g_tTex1du4a" - Name 47 "g_tTex2df4a" - Name 50 "c4" - Name 59 "g_tTex2di4a" - Name 68 "g_tTex2du4a" - Name 75 "PS_OUTPUT" - MemberName 75(PS_OUTPUT) 0 "Color" - MemberName 75(PS_OUTPUT) 1 "Depth" - Name 77 "psout" - Name 87 "Color" - Name 91 "Depth" - Name 97 "g_sSamp" - Name 100 "g_tTex1df4" - Name 103 "g_tTex1di4" - Name 106 "g_tTex1du4" - Name 109 "g_tTex2df4" - Name 112 "g_tTex2di4" - Name 115 "g_tTex2du4" - Name 118 "g_tTex3df4" - Name 121 "g_tTex3di4" - Name 124 "g_tTex3du4" - Name 127 "g_tTexcdf4" - Name 130 "g_tTexcdi4" - Name 133 "g_tTexcdu4" - Name 136 "g_tTexcdf4a" - Name 139 "g_tTexcdi4a" - Name 142 "g_tTexcdu4a" - Name 143 "c1" - Name 145 "c2" - Name 146 "o1" - Name 147 "o2" - Name 148 "o3" - Name 149 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 32 "g_tTex1di4a" + Name 42 "g_tTex1du4a" + Name 53 "g_tTex2df4a" + Name 66 "g_tTex2di4a" + Name 76 "g_tTex2du4a" + Name 84 "PS_OUTPUT" + MemberName 84(PS_OUTPUT) 0 "Color" + MemberName 84(PS_OUTPUT) 1 "Depth" + Name 86 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 9(g_tTex1df4a) DescriptorSet 0 - Decorate 27(g_tTex1di4a) DescriptorSet 0 - Decorate 37(g_tTex1du4a) DescriptorSet 0 - Decorate 47(g_tTex2df4a) DescriptorSet 0 - Decorate 59(g_tTex2di4a) DescriptorSet 0 - Decorate 68(g_tTex2du4a) DescriptorSet 0 - Decorate 87(Color) Location 0 - Decorate 91(Depth) BuiltIn FragDepth - Decorate 97(g_sSamp) DescriptorSet 0 - Decorate 97(g_sSamp) Binding 0 - Decorate 100(g_tTex1df4) DescriptorSet 0 - Decorate 100(g_tTex1df4) Binding 0 - Decorate 103(g_tTex1di4) DescriptorSet 0 - Decorate 106(g_tTex1du4) DescriptorSet 0 - Decorate 109(g_tTex2df4) DescriptorSet 0 - Decorate 112(g_tTex2di4) DescriptorSet 0 - Decorate 115(g_tTex2du4) DescriptorSet 0 - Decorate 118(g_tTex3df4) DescriptorSet 0 - Decorate 121(g_tTex3di4) DescriptorSet 0 - Decorate 124(g_tTex3du4) DescriptorSet 0 - Decorate 127(g_tTexcdf4) DescriptorSet 0 - Decorate 130(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdu4) DescriptorSet 0 - Decorate 136(g_tTexcdf4a) DescriptorSet 0 - Decorate 139(g_tTexcdi4a) DescriptorSet 0 - Decorate 142(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 42(g_tTex1du4a) DescriptorSet 0 + Decorate 53(g_tTex2df4a) DescriptorSet 0 + Decorate 66(g_tTex2di4a) DescriptorSet 0 + Decorate 76(g_tTex2du4a) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 109(g_tTex1df4) Binding 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -396,149 +466,151 @@ gl_FragCoord origin is upper left 8: TypePointer UniformConstant 7 9(g_tTex1df4a): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 - 12: TypeVector 11(int) 3 - 13: TypePointer UniformConstant 12(ivec3) - 14(c3): 13(ptr) Variable UniformConstant - 15: TypeVector 11(int) 2 - 18: TypeInt 32 0 - 19: 18(int) Constant 2 - 20: TypePointer UniformConstant 11(int) - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D array sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4a): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 18(int) 1D array sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4a): 36(ptr) Variable UniformConstant - 43: TypeVector 18(int) 4 - 45: TypeImage 6(float) 2D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4a): 46(ptr) Variable UniformConstant - 49: TypePointer UniformConstant 33(ivec4) - 50(c4): 49(ptr) Variable UniformConstant - 53: 18(int) Constant 3 - 57: TypeImage 11(int) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2di4a): 58(ptr) Variable UniformConstant - 66: TypeImage 18(int) 2D array sampled format:Unknown - 67: TypePointer UniformConstant 66 - 68(g_tTex2du4a): 67(ptr) Variable UniformConstant - 75(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 76: TypePointer Function 75(PS_OUTPUT) - 78: 11(int) Constant 0 - 79: 6(float) Constant 1065353216 - 80: 23(fvec4) ConstantComposite 79 79 79 79 - 81: TypePointer Function 23(fvec4) - 83: 11(int) Constant 1 - 84: TypePointer Function 6(float) - 86: TypePointer Output 23(fvec4) - 87(Color): 86(ptr) Variable Output - 90: TypePointer Output 6(float) - 91(Depth): 90(ptr) Variable Output - 95: TypeSampler - 96: TypePointer UniformConstant 95 - 97(g_sSamp): 96(ptr) Variable UniformConstant - 98: TypeImage 6(float) 1D sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTex1df4): 99(ptr) Variable UniformConstant - 101: TypeImage 11(int) 1D sampled format:Unknown - 102: TypePointer UniformConstant 101 - 103(g_tTex1di4): 102(ptr) Variable UniformConstant - 104: TypeImage 18(int) 1D sampled format:Unknown + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: TypeVector 6(float) 4 + 30: TypeImage 11(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 40: TypeImage 23(int) 1D array sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4a): 41(ptr) Variable UniformConstant + 49: TypeVector 23(int) 4 + 51: TypeImage 6(float) 2D array sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4a): 52(ptr) Variable UniformConstant + 55: 11(int) Constant 3 + 56: TypePointer Uniform 14(ivec4) + 60: 23(int) Constant 3 + 64: TypeImage 11(int) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4a): 65(ptr) Variable UniformConstant + 74: TypeImage 23(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4a): 75(ptr) Variable UniformConstant + 84(PS_OUTPUT): TypeStruct 28(fvec4) 6(float) + 85: TypePointer Function 84(PS_OUTPUT) + 87: 11(int) Constant 0 + 88: 6(float) Constant 1065353216 + 89: 28(fvec4) ConstantComposite 88 88 88 88 + 90: TypePointer Function 28(fvec4) + 92: 11(int) Constant 1 + 93: TypePointer Function 6(float) + 95: TypePointer Output 28(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler 105: TypePointer UniformConstant 104 - 106(g_tTex1du4): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 2D sampled format:Unknown + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D sampled format:Unknown 108: TypePointer UniformConstant 107 - 109(g_tTex2df4): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 2D sampled format:Unknown + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D sampled format:Unknown 111: TypePointer UniformConstant 110 - 112(g_tTex2di4): 111(ptr) Variable UniformConstant - 113: TypeImage 18(int) 2D sampled format:Unknown + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 23(int) 1D sampled format:Unknown 114: TypePointer UniformConstant 113 - 115(g_tTex2du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 3D sampled format:Unknown + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown 117: TypePointer UniformConstant 116 - 118(g_tTex3df4): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 3D sampled format:Unknown + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D sampled format:Unknown 120: TypePointer UniformConstant 119 - 121(g_tTex3di4): 120(ptr) Variable UniformConstant - 122: TypeImage 18(int) 3D sampled format:Unknown + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 23(int) 2D sampled format:Unknown 123: TypePointer UniformConstant 122 - 124(g_tTex3du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) Cube sampled format:Unknown + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown 126: TypePointer UniformConstant 125 - 127(g_tTexcdf4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) Cube sampled format:Unknown + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) 3D sampled format:Unknown 129: TypePointer UniformConstant 128 - 130(g_tTexcdi4): 129(ptr) Variable UniformConstant - 131: TypeImage 18(int) Cube sampled format:Unknown + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 23(int) 3D sampled format:Unknown 132: TypePointer UniformConstant 131 - 133(g_tTexcdu4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube array sampled format:Unknown + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown 135: TypePointer UniformConstant 134 -136(g_tTexcdf4a): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube array sampled format:Unknown + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube sampled format:Unknown 138: TypePointer UniformConstant 137 -139(g_tTexcdi4a): 138(ptr) Variable UniformConstant - 140: TypeImage 18(int) Cube array sampled format:Unknown + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 23(int) Cube sampled format:Unknown 141: TypePointer UniformConstant 140 -142(g_tTexcdu4a): 141(ptr) Variable UniformConstant - 143(c1): 20(ptr) Variable UniformConstant - 144: TypePointer UniformConstant 15(ivec2) - 145(c2): 144(ptr) Variable UniformConstant - 146(o1): 20(ptr) Variable UniformConstant - 147(o2): 144(ptr) Variable UniformConstant - 148(o3): 13(ptr) Variable UniformConstant - 149(o4): 49(ptr) Variable UniformConstant + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 23(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 77(psout): 76(ptr) Variable Function + 86(psout): 85(ptr) Variable Function 10: 7 Load 9(g_tTex1df4a) - 16: 12(ivec3) Load 14(c3) - 17: 15(ivec2) VectorShuffle 16 16 0 1 - 21: 20(ptr) AccessChain 14(c3) 19 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 17 Lod 22 - 28: 25 Load 27(g_tTex1di4a) - 29: 12(ivec3) Load 14(c3) - 30: 15(ivec2) VectorShuffle 29 29 0 1 - 31: 20(ptr) AccessChain 14(c3) 19 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4a) - 39: 12(ivec3) Load 14(c3) - 40: 15(ivec2) VectorShuffle 39 39 0 1 - 41: 20(ptr) AccessChain 14(c3) 19 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4a) - 51: 33(ivec4) Load 50(c4) - 52: 12(ivec3) VectorShuffle 51 51 0 1 2 - 54: 20(ptr) AccessChain 50(c4) 53 - 55: 11(int) Load 54 - 56: 23(fvec4) ImageFetch 48 52 Lod 55 - 60: 57 Load 59(g_tTex2di4a) - 61: 33(ivec4) Load 50(c4) - 62: 12(ivec3) VectorShuffle 61 61 0 1 2 - 63: 20(ptr) AccessChain 50(c4) 53 - 64: 11(int) Load 63 - 65: 33(ivec4) ImageFetch 60 62 Lod 64 - 69: 66 Load 68(g_tTex2du4a) - 70: 33(ivec4) Load 50(c4) - 71: 12(ivec3) VectorShuffle 70 70 0 1 2 - 72: 20(ptr) AccessChain 50(c4) 53 - 73: 11(int) Load 72 - 74: 43(ivec4) ImageFetch 69 71 Lod 73 - 82: 81(ptr) AccessChain 77(psout) 78 - Store 82 80 - 85: 84(ptr) AccessChain 77(psout) 83 - Store 85 79 - 88: 81(ptr) AccessChain 77(psout) 78 - 89: 23(fvec4) Load 88 - Store 87(Color) 89 - 92: 84(ptr) AccessChain 77(psout) 83 - 93: 6(float) Load 92 - Store 91(Depth) 93 + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 28(fvec4) ImageFetch 10 22 Lod 27 + 33: 30 Load 32(g_tTex1di4a) + 34: 19(ptr) AccessChain 17 18 + 35: 13(ivec3) Load 34 + 36: 12(ivec2) VectorShuffle 35 35 0 1 + 37: 25(ptr) AccessChain 17 18 24 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageFetch 33 36 Lod 38 + 43: 40 Load 42(g_tTex1du4a) + 44: 19(ptr) AccessChain 17 18 + 45: 13(ivec3) Load 44 + 46: 12(ivec2) VectorShuffle 45 45 0 1 + 47: 25(ptr) AccessChain 17 18 24 + 48: 11(int) Load 47 + 50: 49(ivec4) ImageFetch 43 46 Lod 48 + 54: 51 Load 53(g_tTex2df4a) + 57: 56(ptr) AccessChain 17 55 + 58: 14(ivec4) Load 57 + 59: 13(ivec3) VectorShuffle 58 58 0 1 2 + 61: 25(ptr) AccessChain 17 55 60 + 62: 11(int) Load 61 + 63: 28(fvec4) ImageFetch 54 59 Lod 62 + 67: 64 Load 66(g_tTex2di4a) + 68: 56(ptr) AccessChain 17 55 + 69: 14(ivec4) Load 68 + 70: 13(ivec3) VectorShuffle 69 69 0 1 2 + 71: 25(ptr) AccessChain 17 55 60 + 72: 11(int) Load 71 + 73: 14(ivec4) ImageFetch 67 70 Lod 72 + 77: 74 Load 76(g_tTex2du4a) + 78: 56(ptr) AccessChain 17 55 + 79: 14(ivec4) Load 78 + 80: 13(ivec3) VectorShuffle 79 79 0 1 2 + 81: 25(ptr) AccessChain 17 55 60 + 82: 11(int) Load 81 + 83: 49(ivec4) ImageFetch 77 80 Lod 82 + 91: 90(ptr) AccessChain 86(psout) 87 + Store 91 89 + 94: 93(ptr) AccessChain 86(psout) 92 + Store 94 88 + 97: 90(ptr) AccessChain 86(psout) 87 + 98: 28(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 86(psout) 92 + 102: 6(float) Load 101 + Store 100(Depth) 102 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 41d44eee..20b7456d 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,85 +2,124 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch (global 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:54 textureFetch (global 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) 0:57 textureFetch (global 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch (global 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:59 textureFetch (global 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) 0:62 textureFetch (global 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -89,13 +128,19 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch (global 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -104,13 +149,19 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 textureFetch (global 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -119,7 +170,10 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) @@ -177,16 +231,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -195,85 +242,124 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetch (global 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch (global 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:54 textureFetch (global 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) 0:57 textureFetch (global 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch (global 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:59 textureFetch (global 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) 0:62 textureFetch (global 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -282,13 +368,19 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch (global 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -297,13 +389,19 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 textureFetch (global 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -312,7 +410,10 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) @@ -370,91 +471,96 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 170 +// Id's are bound by 172 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 118 122 + EntryPoint Fragment 4 "main" 125 129 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 27 "g_tTex1di4" - Name 37 "g_tTex1du4" - Name 47 "g_tTex2df4" - Name 51 "c3" - Name 60 "g_tTex2di4" - Name 69 "g_tTex2du4" - Name 78 "g_tTex3df4" - Name 81 "c4" - Name 90 "g_tTex3di4" - Name 99 "g_tTex3du4" - Name 106 "PS_OUTPUT" - MemberName 106(PS_OUTPUT) 0 "Color" - MemberName 106(PS_OUTPUT) 1 "Depth" - Name 108 "psout" - Name 118 "Color" - Name 122 "Depth" - Name 128 "g_sSamp" - Name 131 "g_tTexcdf4" - Name 134 "g_tTexcdi4" - Name 137 "g_tTexcdu4" - Name 140 "g_tTex1df4a" - Name 143 "g_tTex1di4a" - Name 146 "g_tTex1du4a" - Name 149 "g_tTex2df4a" - Name 152 "g_tTex2di4a" - Name 155 "g_tTex2du4a" - Name 158 "g_tTexcdf4a" - Name 161 "g_tTexcdi4a" - Name 164 "g_tTexcdu4a" - Name 165 "c1" - Name 166 "o1" - Name 167 "o2" - Name 168 "o3" - Name 169 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 27(g_tTex1di4) DescriptorSet 0 - Decorate 37(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex2df4) DescriptorSet 0 - Decorate 60(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3di4) DescriptorSet 0 - Decorate 99(g_tTex3du4) DescriptorSet 0 - Decorate 118(Color) Location 0 - Decorate 122(Depth) BuiltIn FragDepth - Decorate 128(g_sSamp) DescriptorSet 0 - Decorate 128(g_sSamp) Binding 0 - Decorate 131(g_tTexcdf4) DescriptorSet 0 - Decorate 134(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdu4) DescriptorSet 0 - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 143(g_tTex1di4a) DescriptorSet 0 - Decorate 146(g_tTex1du4a) DescriptorSet 0 - Decorate 149(g_tTex2df4a) DescriptorSet 0 - Decorate 152(g_tTex2di4a) DescriptorSet 0 - Decorate 155(g_tTex2du4a) DescriptorSet 0 - Decorate 158(g_tTexcdf4a) DescriptorSet 0 - Decorate 161(g_tTexcdi4a) DescriptorSet 0 - Decorate 164(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -463,168 +569,170 @@ gl_FragCoord origin is upper left 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 15(int) 1D sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4): 36(ptr) Variable UniformConstant - 43: TypeVector 15(int) 4 - 45: TypeImage 6(float) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4): 46(ptr) Variable UniformConstant - 49: TypeVector 11(int) 3 - 50: TypePointer UniformConstant 49(ivec3) - 51(c3): 50(ptr) Variable UniformConstant - 54: 15(int) Constant 2 - 58: TypeImage 11(int) 2D sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2di4): 59(ptr) Variable UniformConstant - 67: TypeImage 15(int) 2D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex2du4): 68(ptr) Variable UniformConstant - 76: TypeImage 6(float) 3D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex3df4): 77(ptr) Variable UniformConstant - 80: TypePointer UniformConstant 33(ivec4) - 81(c4): 80(ptr) Variable UniformConstant - 84: 15(int) Constant 3 - 88: TypeImage 11(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3di4): 89(ptr) Variable UniformConstant - 97: TypeImage 15(int) 3D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex3du4): 98(ptr) Variable UniformConstant - 106(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 107: TypePointer Function 106(PS_OUTPUT) - 109: 11(int) Constant 0 - 110: 6(float) Constant 1065353216 - 111: 23(fvec4) ConstantComposite 110 110 110 110 - 112: TypePointer Function 23(fvec4) - 114: 11(int) Constant 1 - 115: TypePointer Function 6(float) - 117: TypePointer Output 23(fvec4) - 118(Color): 117(ptr) Variable Output - 121: TypePointer Output 6(float) - 122(Depth): 121(ptr) Variable Output - 126: TypeSampler - 127: TypePointer UniformConstant 126 - 128(g_sSamp): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTexcdf4): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTexcdi4): 133(ptr) Variable UniformConstant - 135: TypeImage 15(int) Cube sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTexcdu4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) 1D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex1df4a): 139(ptr) Variable UniformConstant - 141: TypeImage 11(int) 1D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex1di4a): 142(ptr) Variable UniformConstant - 144: TypeImage 15(int) 1D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex1du4a): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) 2D array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTex2df4a): 148(ptr) Variable UniformConstant - 150: TypeImage 11(int) 2D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex2di4a): 151(ptr) Variable UniformConstant - 153: TypeImage 15(int) 2D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex2du4a): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) Cube array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTexcdf4a): 157(ptr) Variable UniformConstant - 159: TypeImage 11(int) Cube array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTexcdi4a): 160(ptr) Variable UniformConstant - 162: TypeImage 15(int) Cube array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTexcdu4a): 163(ptr) Variable UniformConstant - 165(c1): 17(ptr) Variable UniformConstant - 166(o1): 17(ptr) Variable UniformConstant - 167(o2): 13(ptr) Variable UniformConstant - 168(o3): 50(ptr) Variable UniformConstant - 169(o4): 80(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(PS_OUTPUT): TypeStruct 27(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Function 6(float) + 124: TypePointer Output 27(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 19(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 19(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 19(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 19(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 108(psout): 107(ptr) Variable Function + 116(psout): 115(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 19 Lod 22 - 28: 25 Load 27(g_tTex1di4) - 29: 17(ptr) AccessChain 14(c2) 16 - 30: 11(int) Load 29 - 31: 17(ptr) AccessChain 14(c2) 20 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4) - 39: 17(ptr) AccessChain 14(c2) 16 - 40: 11(int) Load 39 - 41: 17(ptr) AccessChain 14(c2) 20 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4) - 52: 49(ivec3) Load 51(c3) - 53: 12(ivec2) VectorShuffle 52 52 0 1 - 55: 17(ptr) AccessChain 51(c3) 54 - 56: 11(int) Load 55 - 57: 23(fvec4) ImageFetch 48 53 Lod 56 - 61: 58 Load 60(g_tTex2di4) - 62: 49(ivec3) Load 51(c3) - 63: 12(ivec2) VectorShuffle 62 62 0 1 - 64: 17(ptr) AccessChain 51(c3) 54 - 65: 11(int) Load 64 - 66: 33(ivec4) ImageFetch 61 63 Lod 65 - 70: 67 Load 69(g_tTex2du4) - 71: 49(ivec3) Load 51(c3) - 72: 12(ivec2) VectorShuffle 71 71 0 1 - 73: 17(ptr) AccessChain 51(c3) 54 - 74: 11(int) Load 73 - 75: 43(ivec4) ImageFetch 70 72 Lod 74 - 79: 76 Load 78(g_tTex3df4) - 82: 33(ivec4) Load 81(c4) - 83: 49(ivec3) VectorShuffle 82 82 0 1 2 - 85: 17(ptr) AccessChain 81(c4) 84 - 86: 11(int) Load 85 - 87: 23(fvec4) ImageFetch 79 83 Lod 86 - 91: 88 Load 90(g_tTex3di4) - 92: 33(ivec4) Load 81(c4) - 93: 49(ivec3) VectorShuffle 92 92 0 1 2 - 94: 17(ptr) AccessChain 81(c4) 84 - 95: 11(int) Load 94 - 96: 33(ivec4) ImageFetch 91 93 Lod 95 - 100: 97 Load 99(g_tTex3du4) - 101: 33(ivec4) Load 81(c4) - 102: 49(ivec3) VectorShuffle 101 101 0 1 2 - 103: 17(ptr) AccessChain 81(c4) 84 - 104: 11(int) Load 103 - 105: 43(ivec4) ImageFetch 100 102 Lod 104 - 113: 112(ptr) AccessChain 108(psout) 109 - Store 113 111 - 116: 115(ptr) AccessChain 108(psout) 114 - Store 116 110 - 119: 112(ptr) AccessChain 108(psout) 109 - 120: 23(fvec4) Load 119 - Store 118(Color) 120 - 123: 115(ptr) AccessChain 108(psout) 114 - 124: 6(float) Load 123 - Store 122(Depth) 124 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 122(ptr) AccessChain 116(psout) 18 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 27(fvec4) Load 126 + Store 125(Color) 127 + 130: 122(ptr) AccessChain 116(psout) 18 + 131: 6(float) Load 130 + Store 129(Depth) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 62e6128d..4e1efadb 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,85 +1,124 @@ hlsl.load.basic.dx10.vert Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) 0:52 textureFetch (global 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch (global 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:56 textureFetch (global 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index (temp int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) 0:57 textureFetch (global 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch (global 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:61 textureFetch (global 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) @@ -88,13 +127,19 @@ Shader version: 450 0:61 Constant: 0:61 2 (const int) 0:61 direct index (temp int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) 0:62 textureFetch (global 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -103,13 +148,19 @@ Shader version: 450 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch (global 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -118,7 +169,10 @@ Shader version: 450 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -163,15 +217,8 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Pos' (out 4-component vector of float Position) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked vertex stage: @@ -179,85 +226,124 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch (global 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) 0:52 textureFetch (global 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch (global 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:56 textureFetch (global 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index (temp int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) 0:57 textureFetch (global 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch (global 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:61 textureFetch (global 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) @@ -266,13 +352,19 @@ Shader version: 450 0:61 Constant: 0:61 2 (const int) 0:61 direct index (temp int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) 0:62 textureFetch (global 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -281,13 +373,19 @@ Shader version: 450 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch (global 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -296,7 +394,10 @@ Shader version: 450 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -341,86 +442,91 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Pos' (out 4-component vector of float Position) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 115 + EntryPoint Vertex 4 "main" 123 Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 27 "g_tTex1di4" - Name 37 "g_tTex1du4" - Name 47 "g_tTex2df4" - Name 51 "c3" - Name 60 "g_tTex2di4" - Name 69 "g_tTex2du4" - Name 78 "g_tTex3df4" - Name 81 "c4" - Name 90 "g_tTex3di4" - Name 99 "g_tTex3du4" - Name 106 "VS_OUTPUT" - MemberName 106(VS_OUTPUT) 0 "Pos" - Name 108 "vsout" - Name 115 "Pos" - Name 121 "g_sSamp" - Name 124 "g_tTexcdf4" - Name 127 "g_tTexcdi4" - Name 130 "g_tTexcdu4" - Name 133 "g_tTex1df4a" - Name 136 "g_tTex1di4a" - Name 139 "g_tTex1du4a" - Name 142 "g_tTex2df4a" - Name 145 "g_tTex2di4a" - Name 148 "g_tTex2du4a" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 158 "c1" - Name 159 "o1" - Name 160 "o2" - Name 161 "o3" - Name 162 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "VS_OUTPUT" + MemberName 114(VS_OUTPUT) 0 "Pos" + Name 116 "vsout" + Name 123 "Pos" + Name 129 "g_sSamp" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 27(g_tTex1di4) DescriptorSet 0 - Decorate 37(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex2df4) DescriptorSet 0 - Decorate 60(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3di4) DescriptorSet 0 - Decorate 99(g_tTex3du4) DescriptorSet 0 - Decorate 115(Pos) BuiltIn Position - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 127(g_tTexcdi4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 136(g_tTex1di4a) DescriptorSet 0 - Decorate 139(g_tTex1du4a) DescriptorSet 0 - Decorate 142(g_tTex2df4a) DescriptorSet 0 - Decorate 145(g_tTex2di4a) DescriptorSet 0 - Decorate 148(g_tTex2du4a) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 123(Pos) BuiltIn Position + Decorate 129(g_sSamp) DescriptorSet 0 + Decorate 129(g_sSamp) Binding 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -429,159 +535,162 @@ Shader version: 450 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 15(int) 1D sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4): 36(ptr) Variable UniformConstant - 43: TypeVector 15(int) 4 - 45: TypeImage 6(float) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4): 46(ptr) Variable UniformConstant - 49: TypeVector 11(int) 3 - 50: TypePointer UniformConstant 49(ivec3) - 51(c3): 50(ptr) Variable UniformConstant - 54: 15(int) Constant 2 - 58: TypeImage 11(int) 2D sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2di4): 59(ptr) Variable UniformConstant - 67: TypeImage 15(int) 2D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex2du4): 68(ptr) Variable UniformConstant - 76: TypeImage 6(float) 3D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex3df4): 77(ptr) Variable UniformConstant - 80: TypePointer UniformConstant 33(ivec4) - 81(c4): 80(ptr) Variable UniformConstant - 84: 15(int) Constant 3 - 88: TypeImage 11(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3di4): 89(ptr) Variable UniformConstant - 97: TypeImage 15(int) 3D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex3du4): 98(ptr) Variable UniformConstant - 106(VS_OUTPUT): TypeStruct 23(fvec4) - 107: TypePointer Function 106(VS_OUTPUT) - 109: 11(int) Constant 0 - 110: 6(float) Constant 0 - 111: 23(fvec4) ConstantComposite 110 110 110 110 - 112: TypePointer Function 23(fvec4) - 114: TypePointer Output 23(fvec4) - 115(Pos): 114(ptr) Variable Output - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdf4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdi4): 126(ptr) Variable UniformConstant - 128: TypeImage 15(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdu4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 15(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 15(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 15(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158(c1): 17(ptr) Variable UniformConstant - 159(o1): 17(ptr) Variable UniformConstant - 160(o2): 13(ptr) Variable UniformConstant - 161(o3): 50(ptr) Variable UniformConstant - 162(o4): 80(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(VS_OUTPUT): TypeStruct 27(fvec4) + 115: TypePointer Function 114(VS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 0 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Output 27(fvec4) + 123(Pos): 122(ptr) Variable Output + 127: TypeSampler + 128: TypePointer UniformConstant 127 + 129(g_sSamp): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 19(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 19(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 19(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 11(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 19(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 108(vsout): 107(ptr) Variable Function + 116(vsout): 115(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 19 Lod 22 - 28: 25 Load 27(g_tTex1di4) - 29: 17(ptr) AccessChain 14(c2) 16 - 30: 11(int) Load 29 - 31: 17(ptr) AccessChain 14(c2) 20 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4) - 39: 17(ptr) AccessChain 14(c2) 16 - 40: 11(int) Load 39 - 41: 17(ptr) AccessChain 14(c2) 20 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4) - 52: 49(ivec3) Load 51(c3) - 53: 12(ivec2) VectorShuffle 52 52 0 1 - 55: 17(ptr) AccessChain 51(c3) 54 - 56: 11(int) Load 55 - 57: 23(fvec4) ImageFetch 48 53 Lod 56 - 61: 58 Load 60(g_tTex2di4) - 62: 49(ivec3) Load 51(c3) - 63: 12(ivec2) VectorShuffle 62 62 0 1 - 64: 17(ptr) AccessChain 51(c3) 54 - 65: 11(int) Load 64 - 66: 33(ivec4) ImageFetch 61 63 Lod 65 - 70: 67 Load 69(g_tTex2du4) - 71: 49(ivec3) Load 51(c3) - 72: 12(ivec2) VectorShuffle 71 71 0 1 - 73: 17(ptr) AccessChain 51(c3) 54 - 74: 11(int) Load 73 - 75: 43(ivec4) ImageFetch 70 72 Lod 74 - 79: 76 Load 78(g_tTex3df4) - 82: 33(ivec4) Load 81(c4) - 83: 49(ivec3) VectorShuffle 82 82 0 1 2 - 85: 17(ptr) AccessChain 81(c4) 84 - 86: 11(int) Load 85 - 87: 23(fvec4) ImageFetch 79 83 Lod 86 - 91: 88 Load 90(g_tTex3di4) - 92: 33(ivec4) Load 81(c4) - 93: 49(ivec3) VectorShuffle 92 92 0 1 2 - 94: 17(ptr) AccessChain 81(c4) 84 - 95: 11(int) Load 94 - 96: 33(ivec4) ImageFetch 91 93 Lod 95 - 100: 97 Load 99(g_tTex3du4) - 101: 33(ivec4) Load 81(c4) - 102: 49(ivec3) VectorShuffle 101 101 0 1 2 - 103: 17(ptr) AccessChain 81(c4) 84 - 104: 11(int) Load 103 - 105: 43(ivec4) ImageFetch 100 102 Lod 104 - 113: 112(ptr) AccessChain 108(vsout) 109 - Store 113 111 - 116: 112(ptr) AccessChain 108(vsout) 109 - 117: 23(fvec4) Load 116 - Store 115(Pos) 117 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(vsout) 117 + Store 121 119 + 124: 120(ptr) AccessChain 116(vsout) 117 + 125: 27(fvec4) Load 124 + Store 123(Pos) 125 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 012af868..ea1b5df3 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -10,19 +10,28 @@ gl_FragCoord origin is upper left 0:28 'r00' (temp 4-component vector of float) 0:28 textureFetch (global 4-component vector of float) 0:28 'g_tTexbf4' (uniform samplerBuffer) -0:28 'c1' (uniform int) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) 0:29 textureFetch (global 4-component vector of int) 0:29 'g_tTexbi4' (uniform isamplerBuffer) -0:29 'c1' (uniform int) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) 0:30 textureFetch (global 4-component vector of uint) 0:30 'g_tTexbu4' (uniform usamplerBuffer) -0:30 'c1' (uniform int) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -60,16 +69,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexbf4' (uniform samplerBuffer) 0:? 'g_tTexbi4' (uniform isamplerBuffer) 0:? 'g_tTexbu4' (uniform usamplerBuffer) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -78,7 +80,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -86,19 +88,28 @@ gl_FragCoord origin is upper left 0:28 'r00' (temp 4-component vector of float) 0:28 textureFetch (global 4-component vector of float) 0:28 'g_tTexbf4' (uniform samplerBuffer) -0:28 'c1' (uniform int) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) 0:29 textureFetch (global 4-component vector of int) 0:29 'g_tTexbi4' (uniform isamplerBuffer) -0:29 'c1' (uniform int) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) 0:30 textureFetch (global 4-component vector of uint) 0:30 'g_tTexbu4' (uniform usamplerBuffer) -0:30 'c1' (uniform int) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -136,56 +147,61 @@ gl_FragCoord origin is upper left 0:? 'g_tTexbf4' (uniform samplerBuffer) 0:? 'g_tTexbi4' (uniform isamplerBuffer) 0:? 'g_tTexbu4' (uniform usamplerBuffer) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 76 +// Id's are bound by 71 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 59 + EntryPoint Fragment 4 "main" 62 66 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" Name 13 "g_tTexbf4" - Name 17 "c1" - Name 23 "r01" - Name 27 "g_tTexbi4" - Name 35 "r02" - Name 39 "g_tTexbu4" - Name 44 "PS_OUTPUT" - MemberName 44(PS_OUTPUT) 0 "Color" - MemberName 44(PS_OUTPUT) 1 "Depth" - Name 46 "psout" - Name 55 "Color" - Name 59 "Depth" - Name 63 "g_tTexbf4_test" - Name 66 "c2" - Name 69 "c3" - Name 71 "c4" - Name 72 "o1" - Name 73 "o2" - Name 74 "o3" - Name 75 "o4" + Name 19 "$Global" + MemberName 19($Global) 0 "c1" + MemberName 19($Global) 1 "c2" + MemberName 19($Global) 2 "c3" + MemberName 19($Global) 3 "c4" + MemberName 19($Global) 4 "o1" + MemberName 19($Global) 5 "o2" + MemberName 19($Global) 6 "o3" + MemberName 19($Global) 7 "o4" + Name 21 "" + Name 29 "r01" + Name 33 "g_tTexbi4" + Name 42 "r02" + Name 46 "g_tTexbu4" + Name 52 "PS_OUTPUT" + MemberName 52(PS_OUTPUT) 0 "Color" + MemberName 52(PS_OUTPUT) 1 "Depth" + Name 54 "psout" + Name 62 "Color" + Name 66 "Depth" + Name 70 "g_tTexbf4_test" Decorate 13(g_tTexbf4) DescriptorSet 0 - Decorate 27(g_tTexbi4) DescriptorSet 0 - Decorate 39(g_tTexbu4) DescriptorSet 0 - Decorate 55(Color) Location 0 - Decorate 59(Depth) BuiltIn FragDepth - Decorate 63(g_tTexbf4_test) DescriptorSet 0 - Decorate 63(g_tTexbf4_test) Binding 0 + MemberDecorate 19($Global) 0 Offset 0 + MemberDecorate 19($Global) 1 Offset 8 + MemberDecorate 19($Global) 2 Offset 16 + MemberDecorate 19($Global) 3 Offset 32 + MemberDecorate 19($Global) 4 Offset 48 + MemberDecorate 19($Global) 5 Offset 56 + MemberDecorate 19($Global) 6 Offset 64 + MemberDecorate 19($Global) 7 Offset 80 + Decorate 19($Global) Block + Decorate 21 DescriptorSet 0 + Decorate 33(g_tTexbi4) DescriptorSet 0 + Decorate 46(g_tTexbu4) DescriptorSet 0 + Decorate 62(Color) Location 0 + Decorate 66(Depth) BuiltIn FragDepth + Decorate 70(g_tTexbf4_test) DescriptorSet 0 + Decorate 70(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -196,75 +212,70 @@ gl_FragCoord origin is upper left 12: TypePointer UniformConstant 11 13(g_tTexbf4): 12(ptr) Variable UniformConstant 15: TypeInt 32 1 - 16: TypePointer UniformConstant 15(int) - 17(c1): 16(ptr) Variable UniformConstant - 21: TypeVector 15(int) 4 - 22: TypePointer Function 21(ivec4) - 24: TypeImage 15(int) Buffer sampled format:Unknown - 25: TypeSampledImage 24 - 26: TypePointer UniformConstant 25 - 27(g_tTexbi4): 26(ptr) Variable UniformConstant - 32: TypeInt 32 0 - 33: TypeVector 32(int) 4 - 34: TypePointer Function 33(ivec4) - 36: TypeImage 32(int) Buffer sampled format:Unknown - 37: TypeSampledImage 36 - 38: TypePointer UniformConstant 37 - 39(g_tTexbu4): 38(ptr) Variable UniformConstant - 44(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 45: TypePointer Function 44(PS_OUTPUT) - 47: 15(int) Constant 0 - 48: 6(float) Constant 1065353216 - 49: 7(fvec4) ConstantComposite 48 48 48 48 - 51: 15(int) Constant 1 - 52: TypePointer Function 6(float) - 54: TypePointer Output 7(fvec4) - 55(Color): 54(ptr) Variable Output - 58: TypePointer Output 6(float) - 59(Depth): 58(ptr) Variable Output -63(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 64: TypeVector 15(int) 2 - 65: TypePointer UniformConstant 64(ivec2) - 66(c2): 65(ptr) Variable UniformConstant - 67: TypeVector 15(int) 3 - 68: TypePointer UniformConstant 67(ivec3) - 69(c3): 68(ptr) Variable UniformConstant - 70: TypePointer UniformConstant 21(ivec4) - 71(c4): 70(ptr) Variable UniformConstant - 72(o1): 16(ptr) Variable UniformConstant - 73(o2): 65(ptr) Variable UniformConstant - 74(o3): 68(ptr) Variable UniformConstant - 75(o4): 70(ptr) Variable UniformConstant + 16: TypeVector 15(int) 2 + 17: TypeVector 15(int) 3 + 18: TypeVector 15(int) 4 + 19($Global): TypeStruct 15(int) 16(ivec2) 17(ivec3) 18(ivec4) 15(int) 16(ivec2) 17(ivec3) 18(ivec4) + 20: TypePointer Uniform 19($Global) + 21: 20(ptr) Variable Uniform + 22: 15(int) Constant 0 + 23: TypePointer Uniform 15(int) + 28: TypePointer Function 18(ivec4) + 30: TypeImage 15(int) Buffer sampled format:Unknown + 31: TypeSampledImage 30 + 32: TypePointer UniformConstant 31 + 33(g_tTexbi4): 32(ptr) Variable UniformConstant + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) Buffer sampled format:Unknown + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(g_tTexbu4): 45(ptr) Variable UniformConstant + 52(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 53: TypePointer Function 52(PS_OUTPUT) + 55: 6(float) Constant 1065353216 + 56: 7(fvec4) ConstantComposite 55 55 55 55 + 58: 15(int) Constant 1 + 59: TypePointer Function 6(float) + 61: TypePointer Output 7(fvec4) + 62(Color): 61(ptr) Variable Output + 65: TypePointer Output 6(float) + 66(Depth): 65(ptr) Variable Output +70(g_tTexbf4_test): 12(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function - 23(r01): 22(ptr) Variable Function - 35(r02): 34(ptr) Variable Function - 46(psout): 45(ptr) Variable Function + 29(r01): 28(ptr) Variable Function + 42(r02): 41(ptr) Variable Function + 54(psout): 53(ptr) Variable Function 14: 11 Load 13(g_tTexbf4) - 18: 15(int) Load 17(c1) - 19: 10 Image 14 - 20: 7(fvec4) ImageFetch 19 18 - Store 9(r00) 20 - 28: 25 Load 27(g_tTexbi4) - 29: 15(int) Load 17(c1) - 30: 24 Image 28 - 31: 21(ivec4) ImageFetch 30 29 - Store 23(r01) 31 - 40: 37 Load 39(g_tTexbu4) - 41: 15(int) Load 17(c1) - 42: 36 Image 40 - 43: 33(ivec4) ImageFetch 42 41 - Store 35(r02) 43 - 50: 8(ptr) AccessChain 46(psout) 47 - Store 50 49 - 53: 52(ptr) AccessChain 46(psout) 51 - Store 53 48 - 56: 8(ptr) AccessChain 46(psout) 47 - 57: 7(fvec4) Load 56 - Store 55(Color) 57 - 60: 52(ptr) AccessChain 46(psout) 51 - 61: 6(float) Load 60 - Store 59(Depth) 61 + 24: 23(ptr) AccessChain 21 22 + 25: 15(int) Load 24 + 26: 10 Image 14 + 27: 7(fvec4) ImageFetch 26 25 + Store 9(r00) 27 + 34: 31 Load 33(g_tTexbi4) + 35: 23(ptr) AccessChain 21 22 + 36: 15(int) Load 35 + 37: 30 Image 34 + 38: 18(ivec4) ImageFetch 37 36 + Store 29(r01) 38 + 47: 44 Load 46(g_tTexbu4) + 48: 23(ptr) AccessChain 21 22 + 49: 15(int) Load 48 + 50: 43 Image 47 + 51: 40(ivec4) ImageFetch 50 49 + Store 42(r02) 51 + 57: 8(ptr) AccessChain 54(psout) 22 + Store 57 56 + 60: 59(ptr) AccessChain 54(psout) 58 + Store 60 55 + 63: 8(ptr) AccessChain 54(psout) 22 + 64: 7(fvec4) Load 63 + Store 62(Color) 64 + 67: 59(ptr) AccessChain 54(psout) 58 + 68: 6(float) Load 67 + Store 66(Depth) 68 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 2110e6f4..8d711296 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,91 +2,148 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:52 'o1' (uniform int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) 0:53 textureFetchOffset (global 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:53 'o1' (uniform int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) 0:54 textureFetchOffset (global 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:54 'o1' (uniform int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) 0:57 textureFetchOffset (global 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:57 'o2' (uniform 2-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:58 textureFetchOffset (global 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:58 'o2' (uniform 2-component vector of int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:59 textureFetchOffset (global 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:62 textureFetchOffset (global 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -95,14 +152,23 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:62 'o3' (uniform 3-component vector of int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) 0:63 textureFetchOffset (global 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -111,14 +177,23 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:63 'o3' (uniform 3-component vector of int) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) 0:64 textureFetchOffset (global 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -127,10 +202,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) -0:64 'o3' (uniform 3-component vector of int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) 0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -186,16 +267,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -204,91 +278,148 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:52 'o1' (uniform int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) 0:53 textureFetchOffset (global 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:53 'o1' (uniform int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) 0:54 textureFetchOffset (global 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:54 'o1' (uniform int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) 0:57 textureFetchOffset (global 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:57 'o2' (uniform 2-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:58 textureFetchOffset (global 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:58 'o2' (uniform 2-component vector of int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:59 textureFetchOffset (global 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:62 textureFetchOffset (global 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -297,14 +428,23 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:62 'o3' (uniform 3-component vector of int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) 0:63 textureFetchOffset (global 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -313,14 +453,23 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:63 'o3' (uniform 3-component vector of int) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) 0:64 textureFetchOffset (global 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -329,10 +478,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) -0:64 'o3' (uniform 3-component vector of int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) 0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -388,20 +543,13 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 179 +// Id's are bound by 194 Capability Shader Capability ImageGatherExtended @@ -409,71 +557,83 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 134 + EntryPoint Fragment 4 "main" 147 151 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 23 "o1" - Name 29 "g_tTex1di4" - Name 40 "g_tTex1du4" - Name 51 "g_tTex2df4" - Name 55 "c3" - Name 61 "o2" - Name 66 "g_tTex2di4" - Name 76 "g_tTex2du4" - Name 86 "g_tTex3df4" - Name 89 "c4" - Name 95 "o3" - Name 100 "g_tTex3di4" - Name 110 "g_tTex3du4" - Name 118 "PS_OUTPUT" - MemberName 118(PS_OUTPUT) 0 "Color" - MemberName 118(PS_OUTPUT) 1 "Depth" - Name 120 "psout" - Name 130 "Color" - Name 134 "Depth" - Name 140 "g_sSamp" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" - Name 152 "g_tTex1df4a" - Name 155 "g_tTex1di4a" - Name 158 "g_tTex1du4a" - Name 161 "g_tTex2df4a" - Name 164 "g_tTex2di4a" - Name 167 "g_tTex2du4a" - Name 170 "g_tTexcdf4a" - Name 173 "g_tTexcdi4a" - Name 176 "g_tTexcdu4a" - Name 177 "c1" - Name 178 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 34 "g_tTex1di4" + Name 45 "g_tTex1du4" + Name 57 "g_tTex2df4" + Name 74 "g_tTex2di4" + Name 86 "g_tTex2du4" + Name 98 "g_tTex3df4" + Name 114 "g_tTex3di4" + Name 126 "g_tTex3du4" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + MemberName 136(PS_OUTPUT) 1 "Depth" + Name 138 "psout" + Name 147 "Color" + Name 151 "Depth" + Name 157 "g_sSamp" + Name 160 "g_tTexcdf4" + Name 163 "g_tTexcdi4" + Name 166 "g_tTexcdu4" + Name 169 "g_tTex1df4a" + Name 172 "g_tTex1di4a" + Name 175 "g_tTex1du4a" + Name 178 "g_tTex2df4a" + Name 181 "g_tTex2di4a" + Name 184 "g_tTex2du4a" + Name 187 "g_tTexcdf4a" + Name 190 "g_tTexcdi4a" + Name 193 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 100(g_tTex3di4) DescriptorSet 0 - Decorate 110(g_tTex3du4) DescriptorSet 0 - Decorate 130(Color) Location 0 - Decorate 134(Depth) BuiltIn FragDepth - Decorate 140(g_sSamp) DescriptorSet 0 - Decorate 140(g_sSamp) Binding 0 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 - Decorate 152(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1di4a) DescriptorSet 0 - Decorate 158(g_tTex1du4a) DescriptorSet 0 - Decorate 161(g_tTex2df4a) DescriptorSet 0 - Decorate 164(g_tTex2di4a) DescriptorSet 0 - Decorate 167(g_tTex2du4a) DescriptorSet 0 - Decorate 170(g_tTexcdf4a) DescriptorSet 0 - Decorate 173(g_tTexcdi4a) DescriptorSet 0 - Decorate 176(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 74(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 98(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 126(g_tTex3du4) DescriptorSet 0 + Decorate 147(Color) Location 0 + Decorate 151(Depth) BuiltIn FragDepth + Decorate 157(g_sSamp) DescriptorSet 0 + Decorate 157(g_sSamp) Binding 0 + Decorate 160(g_tTexcdf4) DescriptorSet 0 + Decorate 163(g_tTexcdi4) DescriptorSet 0 + Decorate 166(g_tTexcdu4) DescriptorSet 0 + Decorate 169(g_tTex1df4a) DescriptorSet 0 + Decorate 172(g_tTex1di4a) DescriptorSet 0 + Decorate 175(g_tTex1du4a) DescriptorSet 0 + Decorate 178(g_tTex2df4a) DescriptorSet 0 + Decorate 181(g_tTex2di4a) DescriptorSet 0 + Decorate 184(g_tTex2du4a) DescriptorSet 0 + Decorate 187(g_tTexcdf4a) DescriptorSet 0 + Decorate 190(g_tTexcdi4a) DescriptorSet 0 + Decorate 193(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -482,177 +642,192 @@ gl_FragCoord origin is upper left 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23(o1): 17(ptr) Variable UniformConstant - 25: TypeVector 6(float) 4 - 27: TypeImage 11(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 36: TypeVector 11(int) 4 - 38: TypeImage 15(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 47: TypeVector 15(int) 4 - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 53: TypeVector 11(int) 3 - 54: TypePointer UniformConstant 53(ivec3) - 55(c3): 54(ptr) Variable UniformConstant - 58: 15(int) Constant 2 - 61(o2): 13(ptr) Variable UniformConstant - 64: TypeImage 11(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 74: TypeImage 15(int) 2D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4): 75(ptr) Variable UniformConstant - 84: TypeImage 6(float) 3D sampled format:Unknown + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: 11(int) Constant 4 + 30: TypeVector 6(float) 4 + 32: TypeImage 11(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 43: TypeImage 19(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 53: TypeVector 19(int) 4 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 59: 11(int) Constant 2 + 60: TypePointer Uniform 13(ivec3) + 64: 19(int) Constant 2 + 67: 11(int) Constant 5 + 68: TypePointer Uniform 12(ivec2) + 72: TypeImage 11(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2di4): 73(ptr) Variable UniformConstant + 84: TypeImage 19(int) 2D sampled format:Unknown 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 88: TypePointer UniformConstant 36(ivec4) - 89(c4): 88(ptr) Variable UniformConstant - 92: 15(int) Constant 3 - 95(o3): 54(ptr) Variable UniformConstant - 98: TypeImage 11(int) 3D sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTex3di4): 99(ptr) Variable UniformConstant - 108: TypeImage 15(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3du4): 109(ptr) Variable UniformConstant - 118(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 119: TypePointer Function 118(PS_OUTPUT) - 121: 11(int) Constant 0 - 122: 6(float) Constant 1065353216 - 123: 25(fvec4) ConstantComposite 122 122 122 122 - 124: TypePointer Function 25(fvec4) - 126: 11(int) Constant 1 - 127: TypePointer Function 6(float) - 129: TypePointer Output 25(fvec4) - 130(Color): 129(ptr) Variable Output - 133: TypePointer Output 6(float) - 134(Depth): 133(ptr) Variable Output - 138: TypeSampler - 139: TypePointer UniformConstant 138 - 140(g_sSamp): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 11(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 15(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 1D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex1df4a): 151(ptr) Variable UniformConstant - 153: TypeImage 11(int) 1D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex1di4a): 154(ptr) Variable UniformConstant - 156: TypeImage 15(int) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1du4a): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 2D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex2df4a): 160(ptr) Variable UniformConstant - 162: TypeImage 11(int) 2D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex2di4a): 163(ptr) Variable UniformConstant - 165: TypeImage 15(int) 2D array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTex2du4a): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdf4a): 169(ptr) Variable UniformConstant - 171: TypeImage 11(int) Cube array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTexcdi4a): 172(ptr) Variable UniformConstant - 174: TypeImage 15(int) Cube array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTexcdu4a): 175(ptr) Variable UniformConstant - 177(c1): 17(ptr) Variable UniformConstant - 178(o4): 88(ptr) Variable UniformConstant + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 96: TypeImage 6(float) 3D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex3df4): 97(ptr) Variable UniformConstant + 100: 11(int) Constant 3 + 101: TypePointer Uniform 14(ivec4) + 105: 19(int) Constant 3 + 108: 11(int) Constant 6 + 112: TypeImage 11(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 124: TypeImage 19(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3du4): 125(ptr) Variable UniformConstant + 136(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 137: TypePointer Function 136(PS_OUTPUT) + 139: 11(int) Constant 0 + 140: 6(float) Constant 1065353216 + 141: 30(fvec4) ConstantComposite 140 140 140 140 + 142: TypePointer Function 30(fvec4) + 144: TypePointer Function 6(float) + 146: TypePointer Output 30(fvec4) + 147(Color): 146(ptr) Variable Output + 150: TypePointer Output 6(float) + 151(Depth): 150(ptr) Variable Output + 155: TypeSampler + 156: TypePointer UniformConstant 155 + 157(g_sSamp): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdf4): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTexcdi4): 162(ptr) Variable UniformConstant + 164: TypeImage 19(int) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdu4): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) 1D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex1df4a): 168(ptr) Variable UniformConstant + 170: TypeImage 11(int) 1D array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTex1di4a): 171(ptr) Variable UniformConstant + 173: TypeImage 19(int) 1D array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTex1du4a): 174(ptr) Variable UniformConstant + 176: TypeImage 6(float) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex2df4a): 177(ptr) Variable UniformConstant + 179: TypeImage 11(int) 2D array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTex2di4a): 180(ptr) Variable UniformConstant + 182: TypeImage 19(int) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2du4a): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) Cube array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTexcdf4a): 186(ptr) Variable UniformConstant + 188: TypeImage 11(int) Cube array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTexcdi4a): 189(ptr) Variable UniformConstant + 191: TypeImage 19(int) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdu4a): 192(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 120(psout): 119(ptr) Variable Function + 138(psout): 137(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 11(int) Load 23(o1) - 26: 25(fvec4) ImageFetch 10 19 Lod Offset 22 24 - 30: 27 Load 29(g_tTex1di4) - 31: 17(ptr) AccessChain 14(c2) 16 - 32: 11(int) Load 31 - 33: 17(ptr) AccessChain 14(c2) 20 - 34: 11(int) Load 33 - 35: 11(int) Load 23(o1) - 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 - 41: 38 Load 40(g_tTex1du4) - 42: 17(ptr) AccessChain 14(c2) 16 - 43: 11(int) Load 42 - 44: 17(ptr) AccessChain 14(c2) 20 - 45: 11(int) Load 44 - 46: 11(int) Load 23(o1) - 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 - 52: 49 Load 51(g_tTex2df4) - 56: 53(ivec3) Load 55(c3) - 57: 12(ivec2) VectorShuffle 56 56 0 1 - 59: 17(ptr) AccessChain 55(c3) 58 - 60: 11(int) Load 59 - 62: 12(ivec2) Load 61(o2) - 63: 25(fvec4) ImageFetch 52 57 Lod Offset 60 62 - 67: 64 Load 66(g_tTex2di4) - 68: 53(ivec3) Load 55(c3) - 69: 12(ivec2) VectorShuffle 68 68 0 1 - 70: 17(ptr) AccessChain 55(c3) 58 - 71: 11(int) Load 70 - 72: 12(ivec2) Load 61(o2) - 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 - 77: 74 Load 76(g_tTex2du4) - 78: 53(ivec3) Load 55(c3) - 79: 12(ivec2) VectorShuffle 78 78 0 1 - 80: 17(ptr) AccessChain 55(c3) 58 - 81: 11(int) Load 80 - 82: 12(ivec2) Load 61(o2) - 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 - 87: 84 Load 86(g_tTex3df4) - 90: 36(ivec4) Load 89(c4) - 91: 53(ivec3) VectorShuffle 90 90 0 1 2 - 93: 17(ptr) AccessChain 89(c4) 92 - 94: 11(int) Load 93 - 96: 53(ivec3) Load 95(o3) - 97: 25(fvec4) ImageFetch 87 91 Lod Offset 94 96 - 101: 98 Load 100(g_tTex3di4) - 102: 36(ivec4) Load 89(c4) - 103: 53(ivec3) VectorShuffle 102 102 0 1 2 - 104: 17(ptr) AccessChain 89(c4) 92 - 105: 11(int) Load 104 - 106: 53(ivec3) Load 95(o3) - 107: 36(ivec4) ImageFetch 101 103 Lod Offset 105 106 - 111: 108 Load 110(g_tTex3du4) - 112: 36(ivec4) Load 89(c4) - 113: 53(ivec3) VectorShuffle 112 112 0 1 2 - 114: 17(ptr) AccessChain 89(c4) 92 - 115: 11(int) Load 114 - 116: 53(ivec3) Load 95(o3) - 117: 47(ivec4) ImageFetch 111 113 Lod Offset 115 116 - 125: 124(ptr) AccessChain 120(psout) 121 - Store 125 123 - 128: 127(ptr) AccessChain 120(psout) 126 - Store 128 122 - 131: 124(ptr) AccessChain 120(psout) 121 - 132: 25(fvec4) Load 131 - Store 130(Color) 132 - 135: 127(ptr) AccessChain 120(psout) 126 - 136: 6(float) Load 135 - Store 134(Depth) 136 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 21(ptr) AccessChain 17 27 + 29: 11(int) Load 28 + 31: 30(fvec4) ImageFetch 10 23 Lod Offset 26 29 + 35: 32 Load 34(g_tTex1di4) + 36: 21(ptr) AccessChain 17 18 20 + 37: 11(int) Load 36 + 38: 21(ptr) AccessChain 17 18 24 + 39: 11(int) Load 38 + 40: 21(ptr) AccessChain 17 27 + 41: 11(int) Load 40 + 42: 14(ivec4) ImageFetch 35 37 Lod Offset 39 41 + 46: 43 Load 45(g_tTex1du4) + 47: 21(ptr) AccessChain 17 18 20 + 48: 11(int) Load 47 + 49: 21(ptr) AccessChain 17 18 24 + 50: 11(int) Load 49 + 51: 21(ptr) AccessChain 17 27 + 52: 11(int) Load 51 + 54: 53(ivec4) ImageFetch 46 48 Lod Offset 50 52 + 58: 55 Load 57(g_tTex2df4) + 61: 60(ptr) AccessChain 17 59 + 62: 13(ivec3) Load 61 + 63: 12(ivec2) VectorShuffle 62 62 0 1 + 65: 21(ptr) AccessChain 17 59 64 + 66: 11(int) Load 65 + 69: 68(ptr) AccessChain 17 67 + 70: 12(ivec2) Load 69 + 71: 30(fvec4) ImageFetch 58 63 Lod Offset 66 70 + 75: 72 Load 74(g_tTex2di4) + 76: 60(ptr) AccessChain 17 59 + 77: 13(ivec3) Load 76 + 78: 12(ivec2) VectorShuffle 77 77 0 1 + 79: 21(ptr) AccessChain 17 59 64 + 80: 11(int) Load 79 + 81: 68(ptr) AccessChain 17 67 + 82: 12(ivec2) Load 81 + 83: 14(ivec4) ImageFetch 75 78 Lod Offset 80 82 + 87: 84 Load 86(g_tTex2du4) + 88: 60(ptr) AccessChain 17 59 + 89: 13(ivec3) Load 88 + 90: 12(ivec2) VectorShuffle 89 89 0 1 + 91: 21(ptr) AccessChain 17 59 64 + 92: 11(int) Load 91 + 93: 68(ptr) AccessChain 17 67 + 94: 12(ivec2) Load 93 + 95: 53(ivec4) ImageFetch 87 90 Lod Offset 92 94 + 99: 96 Load 98(g_tTex3df4) + 102: 101(ptr) AccessChain 17 100 + 103: 14(ivec4) Load 102 + 104: 13(ivec3) VectorShuffle 103 103 0 1 2 + 106: 21(ptr) AccessChain 17 100 105 + 107: 11(int) Load 106 + 109: 60(ptr) AccessChain 17 108 + 110: 13(ivec3) Load 109 + 111: 30(fvec4) ImageFetch 99 104 Lod Offset 107 110 + 115: 112 Load 114(g_tTex3di4) + 116: 101(ptr) AccessChain 17 100 + 117: 14(ivec4) Load 116 + 118: 13(ivec3) VectorShuffle 117 117 0 1 2 + 119: 21(ptr) AccessChain 17 100 105 + 120: 11(int) Load 119 + 121: 60(ptr) AccessChain 17 108 + 122: 13(ivec3) Load 121 + 123: 14(ivec4) ImageFetch 115 118 Lod Offset 120 122 + 127: 124 Load 126(g_tTex3du4) + 128: 101(ptr) AccessChain 17 100 + 129: 14(ivec4) Load 128 + 130: 13(ivec3) VectorShuffle 129 129 0 1 2 + 131: 21(ptr) AccessChain 17 100 105 + 132: 11(int) Load 131 + 133: 60(ptr) AccessChain 17 108 + 134: 13(ivec3) Load 133 + 135: 53(ivec4) ImageFetch 127 130 Lod Offset 132 134 + 143: 142(ptr) AccessChain 138(psout) 139 + Store 143 141 + 145: 144(ptr) AccessChain 138(psout) 18 + Store 145 140 + 148: 142(ptr) AccessChain 138(psout) 139 + 149: 30(fvec4) Load 148 + Store 147(Color) 149 + 152: 144(ptr) AccessChain 138(psout) 18 + 153: 6(float) Load 152 + Store 151(Depth) 153 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index d5f66716..665fc47a 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,55 +2,85 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:52 'o1' (uniform int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) 0:53 textureFetchOffset (global 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:53 'o1' (uniform int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) 0:54 textureFetchOffset (global 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:54 'o1' (uniform int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) 0:57 textureFetchOffset (global 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -59,14 +89,23 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:57 'o2' (uniform 2-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:58 textureFetchOffset (global 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -75,14 +114,23 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:58 'o2' (uniform 2-component vector of int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:59 textureFetchOffset (global 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -91,10 +139,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -150,16 +204,9 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -168,55 +215,85 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset (global 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:52 'o1' (uniform int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) 0:53 textureFetchOffset (global 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:53 'o1' (uniform int) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) 0:54 textureFetchOffset (global 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:54 'o1' (uniform int) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) 0:57 textureFetchOffset (global 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -225,14 +302,23 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:57 'o2' (uniform 2-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:58 textureFetchOffset (global 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -241,14 +327,23 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:58 'o2' (uniform 2-component vector of int) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:59 textureFetchOffset (global 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -257,10 +352,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -316,20 +417,13 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 167 Capability Shader Capability ImageGatherExtended @@ -337,71 +431,83 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 100 + EntryPoint Fragment 4 "main" 111 115 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" - Name 14 "c3" - Name 23 "o1" - Name 29 "g_tTex1di4a" - Name 40 "g_tTex1du4a" - Name 51 "g_tTex2df4a" - Name 54 "c4" - Name 61 "o2" - Name 66 "g_tTex2di4a" - Name 76 "g_tTex2du4a" - Name 84 "PS_OUTPUT" - MemberName 84(PS_OUTPUT) 0 "Color" - MemberName 84(PS_OUTPUT) 1 "Depth" - Name 86 "psout" - Name 96 "Color" - Name 100 "Depth" - Name 106 "g_sSamp" - Name 109 "g_tTex1df4" - Name 112 "g_tTex1di4" - Name 115 "g_tTex1du4" - Name 118 "g_tTex2df4" - Name 121 "g_tTex2di4" - Name 124 "g_tTex2du4" - Name 127 "g_tTex3df4" - Name 130 "g_tTex3di4" - Name 133 "g_tTex3du4" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" - Name 152 "c1" - Name 153 "c2" - Name 154 "o3" - Name 155 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 35 "g_tTex1di4a" + Name 47 "g_tTex1du4a" + Name 60 "g_tTex2df4a" + Name 77 "g_tTex2di4a" + Name 89 "g_tTex2du4a" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "psout" + Name 111 "Color" + Name 115 "Depth" + Name 121 "g_sSamp" + Name 124 "g_tTex1df4" + Name 127 "g_tTex1di4" + Name 130 "g_tTex1du4" + Name 133 "g_tTex2df4" + Name 136 "g_tTex2di4" + Name 139 "g_tTex2du4" + Name 142 "g_tTex3df4" + Name 145 "g_tTex3di4" + Name 148 "g_tTex3du4" + Name 151 "g_tTexcdf4" + Name 154 "g_tTexcdi4" + Name 157 "g_tTexcdu4" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" Decorate 9(g_tTex1df4a) DescriptorSet 0 - Decorate 29(g_tTex1di4a) DescriptorSet 0 - Decorate 40(g_tTex1du4a) DescriptorSet 0 - Decorate 51(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2di4a) DescriptorSet 0 - Decorate 76(g_tTex2du4a) DescriptorSet 0 - Decorate 96(Color) Location 0 - Decorate 100(Depth) BuiltIn FragDepth - Decorate 106(g_sSamp) DescriptorSet 0 - Decorate 106(g_sSamp) Binding 0 - Decorate 109(g_tTex1df4) DescriptorSet 0 - Decorate 109(g_tTex1df4) Binding 0 - Decorate 112(g_tTex1di4) DescriptorSet 0 - Decorate 115(g_tTex1du4) DescriptorSet 0 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 121(g_tTex2di4) DescriptorSet 0 - Decorate 124(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTex3df4) DescriptorSet 0 - Decorate 130(g_tTex3di4) DescriptorSet 0 - Decorate 133(g_tTex3du4) DescriptorSet 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 47(g_tTex1du4a) DescriptorSet 0 + Decorate 60(g_tTex2df4a) DescriptorSet 0 + Decorate 77(g_tTex2di4a) DescriptorSet 0 + Decorate 89(g_tTex2du4a) DescriptorSet 0 + Decorate 111(Color) Location 0 + Decorate 115(Depth) BuiltIn FragDepth + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 + Decorate 124(g_tTex1df4) DescriptorSet 0 + Decorate 124(g_tTex1df4) Binding 0 + Decorate 127(g_tTex1di4) DescriptorSet 0 + Decorate 130(g_tTex1du4) DescriptorSet 0 + Decorate 133(g_tTex2df4) DescriptorSet 0 + Decorate 136(g_tTex2di4) DescriptorSet 0 + Decorate 139(g_tTex2du4) DescriptorSet 0 + Decorate 142(g_tTex3df4) DescriptorSet 0 + Decorate 145(g_tTex3di4) DescriptorSet 0 + Decorate 148(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTexcdf4) DescriptorSet 0 + Decorate 154(g_tTexcdi4) DescriptorSet 0 + Decorate 157(g_tTexcdu4) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -409,155 +515,166 @@ gl_FragCoord origin is upper left 8: TypePointer UniformConstant 7 9(g_tTex1df4a): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 - 12: TypeVector 11(int) 3 - 13: TypePointer UniformConstant 12(ivec3) - 14(c3): 13(ptr) Variable UniformConstant - 15: TypeVector 11(int) 2 - 18: TypeInt 32 0 - 19: 18(int) Constant 2 - 20: TypePointer UniformConstant 11(int) - 23(o1): 20(ptr) Variable UniformConstant - 25: TypeVector 6(float) 4 - 27: TypeImage 11(int) 1D array sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4a): 28(ptr) Variable UniformConstant - 36: TypeVector 11(int) 4 - 38: TypeImage 18(int) 1D array sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4a): 39(ptr) Variable UniformConstant - 47: TypeVector 18(int) 4 - 49: TypeImage 6(float) 2D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4a): 50(ptr) Variable UniformConstant - 53: TypePointer UniformConstant 36(ivec4) - 54(c4): 53(ptr) Variable UniformConstant - 57: 18(int) Constant 3 - 60: TypePointer UniformConstant 15(ivec2) - 61(o2): 60(ptr) Variable UniformConstant - 64: TypeImage 11(int) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4a): 65(ptr) Variable UniformConstant - 74: TypeImage 18(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4a): 75(ptr) Variable UniformConstant - 84(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 85: TypePointer Function 84(PS_OUTPUT) - 87: 11(int) Constant 0 - 88: 6(float) Constant 1065353216 - 89: 25(fvec4) ConstantComposite 88 88 88 88 - 90: TypePointer Function 25(fvec4) - 92: 11(int) Constant 1 - 93: TypePointer Function 6(float) - 95: TypePointer Output 25(fvec4) - 96(Color): 95(ptr) Variable Output - 99: TypePointer Output 6(float) - 100(Depth): 99(ptr) Variable Output - 104: TypeSampler - 105: TypePointer UniformConstant 104 - 106(g_sSamp): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 1D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex1df4): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1di4): 111(ptr) Variable UniformConstant - 113: TypeImage 18(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 2D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex2df4): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 2D sampled format:Unknown + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: 11(int) Constant 4 + 31: TypeVector 6(float) 4 + 33: TypeImage 11(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 45: TypeImage 23(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4a): 46(ptr) Variable UniformConstant + 56: TypeVector 23(int) 4 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4a): 59(ptr) Variable UniformConstant + 62: 11(int) Constant 3 + 63: TypePointer Uniform 14(ivec4) + 67: 23(int) Constant 3 + 70: 11(int) Constant 5 + 71: TypePointer Uniform 12(ivec2) + 75: TypeImage 11(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4a): 76(ptr) Variable UniformConstant + 87: TypeImage 23(int) 2D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex2du4a): 88(ptr) Variable UniformConstant + 99(PS_OUTPUT): TypeStruct 31(fvec4) 6(float) + 100: TypePointer Function 99(PS_OUTPUT) + 102: 11(int) Constant 0 + 103: 6(float) Constant 1065353216 + 104: 31(fvec4) ConstantComposite 103 103 103 103 + 105: TypePointer Function 31(fvec4) + 107: 11(int) Constant 1 + 108: TypePointer Function 6(float) + 110: TypePointer Output 31(fvec4) + 111(Color): 110(ptr) Variable Output + 114: TypePointer Output 6(float) + 115(Depth): 114(ptr) Variable Output + 119: TypeSampler 120: TypePointer UniformConstant 119 - 121(g_tTex2di4): 120(ptr) Variable UniformConstant - 122: TypeImage 18(int) 2D sampled format:Unknown + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 1D sampled format:Unknown 123: TypePointer UniformConstant 122 - 124(g_tTex2du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 3D sampled format:Unknown + 124(g_tTex1df4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) 1D sampled format:Unknown 126: TypePointer UniformConstant 125 - 127(g_tTex3df4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) 3D sampled format:Unknown + 127(g_tTex1di4): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D sampled format:Unknown 129: TypePointer UniformConstant 128 - 130(g_tTex3di4): 129(ptr) Variable UniformConstant - 131: TypeImage 18(int) 3D sampled format:Unknown + 130(g_tTex1du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 2D sampled format:Unknown 132: TypePointer UniformConstant 131 - 133(g_tTex3du4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown + 133(g_tTex2df4): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 2D sampled format:Unknown 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube sampled format:Unknown + 136(g_tTex2di4): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D sampled format:Unknown 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 18(int) Cube sampled format:Unknown + 139(g_tTex2du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 3D sampled format:Unknown 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown + 142(g_tTex3df4): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 3D sampled format:Unknown 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) Cube array sampled format:Unknown + 145(g_tTex3di4): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) 3D sampled format:Unknown 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 18(int) Cube array sampled format:Unknown + 148(g_tTex3du4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube sampled format:Unknown 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant - 152(c1): 20(ptr) Variable UniformConstant - 153(c2): 60(ptr) Variable UniformConstant - 154(o3): 13(ptr) Variable UniformConstant - 155(o4): 53(ptr) Variable UniformConstant + 151(g_tTexcdf4): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdi4): 153(ptr) Variable UniformConstant + 155: TypeImage 23(int) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdu4): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 23(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 86(psout): 85(ptr) Variable Function + 101(psout): 100(ptr) Variable Function 10: 7 Load 9(g_tTex1df4a) - 16: 12(ivec3) Load 14(c3) - 17: 15(ivec2) VectorShuffle 16 16 0 1 - 21: 20(ptr) AccessChain 14(c3) 19 - 22: 11(int) Load 21 - 24: 11(int) Load 23(o1) - 26: 25(fvec4) ImageFetch 10 17 Lod Offset 22 24 - 30: 27 Load 29(g_tTex1di4a) - 31: 12(ivec3) Load 14(c3) - 32: 15(ivec2) VectorShuffle 31 31 0 1 - 33: 20(ptr) AccessChain 14(c3) 19 - 34: 11(int) Load 33 - 35: 11(int) Load 23(o1) - 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 - 41: 38 Load 40(g_tTex1du4a) - 42: 12(ivec3) Load 14(c3) - 43: 15(ivec2) VectorShuffle 42 42 0 1 - 44: 20(ptr) AccessChain 14(c3) 19 - 45: 11(int) Load 44 - 46: 11(int) Load 23(o1) - 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 - 52: 49 Load 51(g_tTex2df4a) - 55: 36(ivec4) Load 54(c4) - 56: 12(ivec3) VectorShuffle 55 55 0 1 2 - 58: 20(ptr) AccessChain 54(c4) 57 - 59: 11(int) Load 58 - 62: 15(ivec2) Load 61(o2) - 63: 25(fvec4) ImageFetch 52 56 Lod Offset 59 62 - 67: 64 Load 66(g_tTex2di4a) - 68: 36(ivec4) Load 54(c4) - 69: 12(ivec3) VectorShuffle 68 68 0 1 2 - 70: 20(ptr) AccessChain 54(c4) 57 - 71: 11(int) Load 70 - 72: 15(ivec2) Load 61(o2) - 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 - 77: 74 Load 76(g_tTex2du4a) - 78: 36(ivec4) Load 54(c4) - 79: 12(ivec3) VectorShuffle 78 78 0 1 2 - 80: 20(ptr) AccessChain 54(c4) 57 - 81: 11(int) Load 80 - 82: 15(ivec2) Load 61(o2) - 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 - 91: 90(ptr) AccessChain 86(psout) 87 - Store 91 89 - 94: 93(ptr) AccessChain 86(psout) 92 - Store 94 88 - 97: 90(ptr) AccessChain 86(psout) 87 - 98: 25(fvec4) Load 97 - Store 96(Color) 98 - 101: 93(ptr) AccessChain 86(psout) 92 - 102: 6(float) Load 101 - Store 100(Depth) 102 + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 25(ptr) AccessChain 17 28 + 30: 11(int) Load 29 + 32: 31(fvec4) ImageFetch 10 22 Lod Offset 27 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 19(ptr) AccessChain 17 18 + 38: 13(ivec3) Load 37 + 39: 12(ivec2) VectorShuffle 38 38 0 1 + 40: 25(ptr) AccessChain 17 18 24 + 41: 11(int) Load 40 + 42: 25(ptr) AccessChain 17 28 + 43: 11(int) Load 42 + 44: 14(ivec4) ImageFetch 36 39 Lod Offset 41 43 + 48: 45 Load 47(g_tTex1du4a) + 49: 19(ptr) AccessChain 17 18 + 50: 13(ivec3) Load 49 + 51: 12(ivec2) VectorShuffle 50 50 0 1 + 52: 25(ptr) AccessChain 17 18 24 + 53: 11(int) Load 52 + 54: 25(ptr) AccessChain 17 28 + 55: 11(int) Load 54 + 57: 56(ivec4) ImageFetch 48 51 Lod Offset 53 55 + 61: 58 Load 60(g_tTex2df4a) + 64: 63(ptr) AccessChain 17 62 + 65: 14(ivec4) Load 64 + 66: 13(ivec3) VectorShuffle 65 65 0 1 2 + 68: 25(ptr) AccessChain 17 62 67 + 69: 11(int) Load 68 + 72: 71(ptr) AccessChain 17 70 + 73: 12(ivec2) Load 72 + 74: 31(fvec4) ImageFetch 61 66 Lod Offset 69 73 + 78: 75 Load 77(g_tTex2di4a) + 79: 63(ptr) AccessChain 17 62 + 80: 14(ivec4) Load 79 + 81: 13(ivec3) VectorShuffle 80 80 0 1 2 + 82: 25(ptr) AccessChain 17 62 67 + 83: 11(int) Load 82 + 84: 71(ptr) AccessChain 17 70 + 85: 12(ivec2) Load 84 + 86: 14(ivec4) ImageFetch 78 81 Lod Offset 83 85 + 90: 87 Load 89(g_tTex2du4a) + 91: 63(ptr) AccessChain 17 62 + 92: 14(ivec4) Load 91 + 93: 13(ivec3) VectorShuffle 92 92 0 1 2 + 94: 25(ptr) AccessChain 17 62 67 + 95: 11(int) Load 94 + 96: 71(ptr) AccessChain 17 70 + 97: 12(ivec2) Load 96 + 98: 56(ivec4) ImageFetch 90 93 Lod Offset 95 97 + 106: 105(ptr) AccessChain 101(psout) 102 + Store 106 104 + 109: 108(ptr) AccessChain 101(psout) 107 + Store 109 103 + 112: 105(ptr) AccessChain 101(psout) 102 + 113: 31(fvec4) Load 112 + Store 111(Color) 113 + 116: 108(ptr) AccessChain 101(psout) 107 + 117: 6(float) Load 116 + Store 115(Depth) 117 Return FunctionEnd diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 2d63460b..0066a1de 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -2,12 +2,7 @@ hlsl.matType.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) @@ -15,12 +10,7 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'f1' (global 1-component vector of float) -0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 4X1 matrix of float) -0:? 'fmat12' (global 1X2 matrix of float) -0:? 'dmat23' (global 2X3 matrix of double) -0:? 'int44' (global 4X4 matrix of int) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) Linked fragment stage: @@ -29,12 +19,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) @@ -42,16 +27,11 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'f1' (global 1-component vector of float) -0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 4X1 matrix of float) -0:? 'fmat12' (global 1X2 matrix of float) -0:? 'dmat23' (global 2X3 matrix of double) -0:? 'int44' (global 4X4 matrix of int) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 40 +// Id's are bound by 30 Capability Shader Capability Float64 @@ -63,49 +43,42 @@ gl_FragCoord origin is upper left Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" Name 10 "inScalar" - Name 14 "f1" - Name 22 "fmat11" - Name 25 "fmat41" - Name 29 "fmat12" - Name 34 "dmat23" - Name 39 "int44" + Name 27 "$Global" + MemberName 27($Global) 0 "f1" + MemberName 27($Global) 1 "fmat11" + MemberName 27($Global) 2 "fmat41" + MemberName 27($Global) 3 "fmat12" + MemberName 27($Global) 4 "dmat23" + MemberName 27($Global) 5 "int44" + Name 29 "" + Decorate 27($Global) Block + Decorate 29 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 13: TypePointer Private 6(float) - 14(f1): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 19: TypeVector 6(float) 1 - 20: TypeMatrix 19(fvec) 1 - 21: TypePointer Private 20 - 22(fmat11): 21(ptr) Variable Private - 23: TypeMatrix 19(fvec) 4 - 24: TypePointer Private 23 - 25(fmat41): 24(ptr) Variable Private - 26: TypeVector 6(float) 2 - 27: TypeMatrix 26(fvec2) 1 - 28: TypePointer Private 27 - 29(fmat12): 28(ptr) Variable Private - 30: TypeFloat 64 - 31: TypeVector 30(float) 3 - 32: TypeMatrix 31(fvec3) 2 - 33: TypePointer Private 32 - 34(dmat23): 33(ptr) Variable Private - 35: TypeInt 32 1 - 36: TypeVector 35(int) 4 - 37: TypeMatrix 36(ivec4) 4 - 38: TypePointer Private 37 - 39(int44): 38(ptr) Variable Private + 16: TypeVector 6(float) 1 + 17: TypeMatrix 16(fvec) 1 + 18: TypeMatrix 16(fvec) 4 + 19: TypeVector 6(float) 2 + 20: TypeMatrix 19(fvec2) 1 + 21: TypeFloat 64 + 22: TypeVector 21(float) 3 + 23: TypeMatrix 22(fvec3) 2 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypeMatrix 25(ivec4) 4 + 27($Global): TypeStruct 6(float) 17 18 20 23 26 + 28: TypePointer Uniform 27($Global) + 29: 28(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label - Store 14(f1) 15 FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter 10(inScalar): 7(ptr) FunctionParameter 12: Label - 16: 6(float) Load 9(inFloat1) - ReturnValue 16 + 13: 6(float) Load 9(inFloat1) + ReturnValue 13 FunctionEnd diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 7acaa717..7d49629d 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -2,7 +2,7 @@ hlsl.matrixindex.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:22 Sequence @@ -94,13 +94,22 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 'idx' (uniform int) +0:43 idx: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) 0:44 Sequence 0:44 move second child to first child (temp 2-component vector of float) 0:44 'r0c' (temp 2-component vector of float) -0:44 indirect index (temp 2-component vector of float) -0:44 'um' (uniform 3X2 matrix of float) -0:44 'idx' (uniform int) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) 0:47 'psout' (temp structure{temp 4-component vector of float Color}) @@ -118,9 +127,8 @@ gl_FragCoord origin is upper left 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects -0:? 'idx' (uniform int) -0:? 'um' (uniform 3X2 matrix of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) Linked fragment stage: @@ -129,7 +137,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:22 Sequence @@ -221,13 +229,22 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 'idx' (uniform int) +0:43 idx: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) 0:44 Sequence 0:44 move second child to first child (temp 2-component vector of float) 0:44 'r0c' (temp 2-component vector of float) -0:44 indirect index (temp 2-component vector of float) -0:44 'um' (uniform 3X2 matrix of float) -0:44 'idx' (uniform int) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) 0:47 'psout' (temp structure{temp 4-component vector of float Color}) @@ -245,18 +262,17 @@ gl_FragCoord origin is upper left 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects -0:? 'idx' (uniform int) -0:? 'um' (uniform 3X2 matrix of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 75 +// Id's are bound by 78 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 + EntryPoint Fragment 4 "main" 74 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "e1_00" @@ -275,15 +291,23 @@ gl_FragCoord origin is upper left Name 36 "r1a" Name 38 "r2a" Name 40 "r0b" - Name 48 "idx" - Name 51 "indexable" - Name 54 "r0c" - Name 56 "um" - Name 62 "PS_OUTPUT" - MemberName 62(PS_OUTPUT) 0 "Color" - Name 64 "psout" - Name 71 "Color" - Decorate 71(Color) Location 0 + Name 47 "$Global" + MemberName 47($Global) 0 "idx" + MemberName 47($Global) 1 "um" + Name 49 "" + Name 55 "indexable" + Name 58 "r0c" + Name 66 "PS_OUTPUT" + MemberName 66(PS_OUTPUT) 0 "Color" + Name 68 "psout" + Name 74 "Color" + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 RowMajor + MemberDecorate 47($Global) 1 Offset 16 + MemberDecorate 47($Global) 1 MatrixStride 16 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 + Decorate 74(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -311,19 +335,20 @@ gl_FragCoord origin is upper left 44: 32(fvec2) ConstantComposite 29 31 45: 41 ConstantComposite 42 43 44 46: TypeInt 32 1 - 47: TypePointer UniformConstant 46(int) - 48(idx): 47(ptr) Variable UniformConstant - 50: TypePointer Function 41 - 55: TypePointer UniformConstant 41 - 56(um): 55(ptr) Variable UniformConstant - 58: TypePointer UniformConstant 32(fvec2) - 61: TypeVector 6(float) 4 - 62(PS_OUTPUT): TypeStruct 61(fvec4) - 63: TypePointer Function 62(PS_OUTPUT) - 65: 46(int) Constant 0 - 68: TypePointer Function 61(fvec4) - 70: TypePointer Output 61(fvec4) - 71(Color): 70(ptr) Variable Output + 47($Global): TypeStruct 46(int) 41 + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform + 50: 46(int) Constant 0 + 51: TypePointer Uniform 46(int) + 54: TypePointer Function 41 + 59: 46(int) Constant 1 + 62: TypePointer Uniform 32(fvec2) + 65: TypeVector 6(float) 4 + 66(PS_OUTPUT): TypeStruct 65(fvec4) + 67: TypePointer Function 66(PS_OUTPUT) + 71: TypePointer Function 65(fvec4) + 73: TypePointer Output 65(fvec4) + 74(Color): 73(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(e1_00): 7(ptr) Variable Function @@ -342,9 +367,9 @@ gl_FragCoord origin is upper left 36(r1a): 33(ptr) Variable Function 38(r2a): 33(ptr) Variable Function 40(r0b): 33(ptr) Variable Function - 51(indexable): 50(ptr) Variable Function - 54(r0c): 33(ptr) Variable Function - 64(psout): 63(ptr) Variable Function + 55(indexable): 54(ptr) Variable Function + 58(r0c): 33(ptr) Variable Function + 68(psout): 67(ptr) Variable Function Store 8(e1_00) 9 Store 10(e1_01) 11 Store 12(e1_10) 13 @@ -360,21 +385,23 @@ gl_FragCoord origin is upper left Store 34(r0a) 35 Store 36(r1a) 37 Store 38(r2a) 39 - 49: 46(int) Load 48(idx) - Store 51(indexable) 45 - 52: 33(ptr) AccessChain 51(indexable) 49 - 53: 32(fvec2) Load 52 - Store 40(r0b) 53 - 57: 46(int) Load 48(idx) - 59: 58(ptr) AccessChain 56(um) 57 - 60: 32(fvec2) Load 59 - Store 54(r0c) 60 - 66: 6(float) Load 26(e2_11) - 67: 61(fvec4) CompositeConstruct 66 66 66 66 - 69: 68(ptr) AccessChain 64(psout) 65 - Store 69 67 - 72: 68(ptr) AccessChain 64(psout) 65 - 73: 61(fvec4) Load 72 - Store 71(Color) 73 + 52: 51(ptr) AccessChain 49 50 + 53: 46(int) Load 52 + Store 55(indexable) 45 + 56: 33(ptr) AccessChain 55(indexable) 53 + 57: 32(fvec2) Load 56 + Store 40(r0b) 57 + 60: 51(ptr) AccessChain 49 50 + 61: 46(int) Load 60 + 63: 62(ptr) AccessChain 49 59 61 + 64: 32(fvec2) Load 63 + Store 58(r0c) 64 + 69: 6(float) Load 26(e2_11) + 70: 65(fvec4) CompositeConstruct 69 69 69 69 + 72: 71(ptr) AccessChain 68(psout) 50 + Store 72 70 + 75: 71(ptr) AccessChain 68(psout) 50 + 76: 65(fvec4) Load 75 + Store 74(Color) 76 Return FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index d396be8b..53646bb1 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -2,7 +2,7 @@ hlsl.max.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) @@ -26,7 +26,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 35ecaf50..cec78986 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -1,7 +1,7 @@ hlsl.multiEntry.vert Shader version: 450 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'Index' (in uint) 0:? Sequence @@ -10,14 +10,14 @@ Shader version: 450 0:5 'Position' (uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) -0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Parameters: 0:9 'Index' (in uint VertexIndex) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects @@ -31,7 +31,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'Index' (in uint) 0:? Sequence @@ -40,14 +40,14 @@ Shader version: 450 0:5 'Position' (uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) -0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Parameters: 0:9 'Index' (in uint VertexIndex) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 168065bb..6d192c0a 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -77,7 +77,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 0e0f4707..4eed1a3f 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -2,349 +2,349 @@ hlsl.overload.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (temp void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (temp void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (temp void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (temp void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:6 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (temp void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:9 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (temp void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:10 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (temp void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:11 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (temp void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:12 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (temp void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:13 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (temp void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:16 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (temp void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:17 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (temp void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:18 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (temp void) 0:18 Function Parameters: 0:18 'b' (in int) -0:19 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (temp void) 0:19 Function Parameters: 0:19 'b' (in float) -0:20 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (temp void) 0:20 Function Parameters: 0:20 'b' (in double) -0:23 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (temp void) 0:23 Function Parameters: 0:23 '' (in float) -0:24 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (temp void) 0:24 Function Parameters: 0:24 '' (in double) -0:25 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (temp void) 0:25 Function Parameters: 0:25 '' (in int) -0:26 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (temp void) 0:26 Function Parameters: 0:26 '' (in uint) -0:27 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (temp void) 0:27 Function Parameters: 0:27 '' (in bool) -0:28 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (temp void) 0:28 Function Parameters: 0:28 '' (in int) -0:31 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (temp void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:32 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (temp void) 0:32 Function Parameters: 0:32 '' (in double) -0:33 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (temp void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:34 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (temp void) 0:34 Function Parameters: 0:34 '' (in uint) -0:35 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (temp void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:36 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (temp void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:37 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (temp void) 0:37 Function Parameters: 0:37 '' (in uint) -0:38 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (temp void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:41 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (temp void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:42 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (temp void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:43 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (temp void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:53 Function Call: foo1(d1;b1; (global void) +0:53 Function Call: foo1(d1;b1; (temp void) 0:53 'd' (temp double) 0:53 'b' (temp bool) -0:54 Function Call: foo1(d1;d1; (global void) +0:54 Function Call: foo1(d1;d1; (temp void) 0:54 'd' (temp double) 0:54 'd' (temp double) -0:55 Function Call: foo1(d1;u1; (global void) +0:55 Function Call: foo1(d1;u1; (temp void) 0:55 'd' (temp double) 0:55 'u' (temp uint) -0:56 Function Call: foo1(d1;i1; (global void) +0:56 Function Call: foo1(d1;i1; (temp void) 0:56 'd' (temp double) 0:56 'i' (temp int) -0:57 Function Call: foo1(d1;f1; (global void) +0:57 Function Call: foo1(d1;f1; (temp void) 0:57 'd' (temp double) 0:57 'f' (temp float) -0:59 Function Call: foo1(d1;b1; (global void) +0:59 Function Call: foo1(d1;b1; (temp void) 0:59 Convert float to double (temp double) 0:59 'f' (temp float) 0:59 'b' (temp bool) -0:60 Function Call: foo1(d1;d1; (global void) +0:60 Function Call: foo1(d1;d1; (temp void) 0:60 Convert float to double (temp double) 0:60 'f' (temp float) 0:60 'd' (temp double) -0:61 Function Call: foo1(d1;u1; (global void) +0:61 Function Call: foo1(d1;u1; (temp void) 0:61 Convert float to double (temp double) 0:61 'f' (temp float) 0:61 'u' (temp uint) -0:62 Function Call: foo1(d1;i1; (global void) +0:62 Function Call: foo1(d1;i1; (temp void) 0:62 Convert float to double (temp double) 0:62 'f' (temp float) 0:62 'i' (temp int) -0:63 Function Call: foo1(d1;f1; (global void) +0:63 Function Call: foo1(d1;f1; (temp void) 0:63 Convert float to double (temp double) 0:63 'f' (temp float) 0:63 'f' (temp float) -0:65 Function Call: foo1(d1;b1; (global void) +0:65 Function Call: foo1(d1;b1; (temp void) 0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) 0:65 'b' (temp bool) -0:66 Function Call: foo1(d1;d1; (global void) +0:66 Function Call: foo1(d1;d1; (temp void) 0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) 0:66 'd' (temp double) -0:67 Function Call: foo1(d1;u1; (global void) +0:67 Function Call: foo1(d1;u1; (temp void) 0:67 Convert uint to double (temp double) 0:67 'u' (temp uint) 0:67 'u' (temp uint) -0:68 Function Call: foo1(d1;i1; (global void) +0:68 Function Call: foo1(d1;i1; (temp void) 0:68 Convert uint to double (temp double) 0:68 'u' (temp uint) 0:68 'i' (temp int) -0:69 Function Call: foo1(d1;f1; (global void) +0:69 Function Call: foo1(d1;f1; (temp void) 0:69 Convert uint to double (temp double) 0:69 'u' (temp uint) 0:69 'f' (temp float) -0:71 Function Call: foo1(d1;b1; (global void) +0:71 Function Call: foo1(d1;b1; (temp void) 0:71 Convert int to double (temp double) 0:71 'i' (temp int) 0:71 'b' (temp bool) -0:72 Function Call: foo1(d1;d1; (global void) +0:72 Function Call: foo1(d1;d1; (temp void) 0:72 Convert int to double (temp double) 0:72 'i' (temp int) 0:72 'd' (temp double) -0:73 Function Call: foo1(d1;u1; (global void) +0:73 Function Call: foo1(d1;u1; (temp void) 0:73 Convert int to double (temp double) 0:73 'i' (temp int) 0:73 'u' (temp uint) -0:74 Function Call: foo1(d1;i1; (global void) +0:74 Function Call: foo1(d1;i1; (temp void) 0:74 Convert int to double (temp double) 0:74 'i' (temp int) 0:74 'i' (temp int) -0:75 Function Call: foo1(d1;f1; (global void) +0:75 Function Call: foo1(d1;f1; (temp void) 0:75 Convert int to double (temp double) 0:75 'i' (temp int) 0:75 'f' (temp float) -0:77 Function Call: foo2(i1;b1; (global void) +0:77 Function Call: foo2(i1;b1; (temp void) 0:77 Convert uint to int (temp int) 0:77 'u' (temp uint) 0:77 'b' (temp bool) -0:78 Function Call: foo2(i1;d1; (global void) +0:78 Function Call: foo2(i1;d1; (temp void) 0:78 Convert uint to int (temp int) 0:78 'u' (temp uint) 0:78 'd' (temp double) -0:79 Function Call: foo2(i1;u1; (global void) +0:79 Function Call: foo2(i1;u1; (temp void) 0:79 Convert uint to int (temp int) 0:79 'u' (temp uint) 0:79 'u' (temp uint) -0:80 Function Call: foo2(i1;i1; (global void) +0:80 Function Call: foo2(i1;i1; (temp void) 0:80 Convert uint to int (temp int) 0:80 'u' (temp uint) 0:80 'i' (temp int) -0:81 Function Call: foo2(i1;f1; (global void) +0:81 Function Call: foo2(i1;f1; (temp void) 0:81 Convert uint to int (temp int) 0:81 'u' (temp uint) 0:81 'f' (temp float) -0:83 Function Call: foo2(i1;b1; (global void) +0:83 Function Call: foo2(i1;b1; (temp void) 0:83 'i' (temp int) 0:83 'b' (temp bool) -0:84 Function Call: foo2(i1;d1; (global void) +0:84 Function Call: foo2(i1;d1; (temp void) 0:84 'i' (temp int) 0:84 'd' (temp double) -0:85 Function Call: foo2(i1;u1; (global void) +0:85 Function Call: foo2(i1;u1; (temp void) 0:85 'i' (temp int) 0:85 'u' (temp uint) -0:86 Function Call: foo2(i1;i1; (global void) +0:86 Function Call: foo2(i1;i1; (temp void) 0:86 'i' (temp int) 0:86 'i' (temp int) -0:87 Function Call: foo2(i1;f1; (global void) +0:87 Function Call: foo2(i1;f1; (temp void) 0:87 'i' (temp int) 0:87 'f' (temp float) -0:89 Function Call: foo3(b1; (global void) +0:89 Function Call: foo3(b1; (temp void) 0:89 'b' (temp bool) -0:90 Function Call: foo3(b1; (global void) +0:90 Function Call: foo3(b1; (temp void) 0:90 Convert double to bool (temp bool) 0:90 'd' (temp double) -0:91 Function Call: foo3(b1; (global void) +0:91 Function Call: foo3(b1; (temp void) 0:91 Convert uint to bool (temp bool) 0:91 'u' (temp uint) -0:92 Function Call: foo3(b1; (global void) +0:92 Function Call: foo3(b1; (temp void) 0:92 Convert int to bool (temp bool) 0:92 'i' (temp int) -0:93 Function Call: foo3(b1; (global void) +0:93 Function Call: foo3(b1; (temp void) 0:93 Convert float to bool (temp bool) 0:93 'f' (temp float) -0:95 Function Call: foo4(u1; (global void) +0:95 Function Call: foo4(u1; (temp void) 0:95 Convert bool to uint (temp uint) 0:95 'b' (temp bool) -0:96 Function Call: foo4(u1; (global void) +0:96 Function Call: foo4(u1; (temp void) 0:96 Convert double to uint (temp uint) 0:96 'd' (temp double) -0:97 Function Call: foo4(u1; (global void) +0:97 Function Call: foo4(u1; (temp void) 0:97 'u' (temp uint) -0:98 Function Call: foo4(u1; (global void) +0:98 Function Call: foo4(u1; (temp void) 0:98 Convert int to uint (temp uint) 0:98 'i' (temp int) -0:99 Function Call: foo4(u1; (global void) +0:99 Function Call: foo4(u1; (temp void) 0:99 Convert float to uint (temp uint) 0:99 'f' (temp float) -0:101 Function Call: foo5(i1; (global void) +0:101 Function Call: foo5(i1; (temp void) 0:101 Convert bool to int (temp int) 0:101 'b' (temp bool) -0:102 Function Call: foo5(i1; (global void) +0:102 Function Call: foo5(i1; (temp void) 0:102 Convert double to int (temp int) 0:102 'd' (temp double) -0:103 Function Call: foo5(i1; (global void) +0:103 Function Call: foo5(i1; (temp void) 0:103 Convert uint to int (temp int) 0:103 'u' (temp uint) -0:104 Function Call: foo5(i1; (global void) +0:104 Function Call: foo5(i1; (temp void) 0:104 'i' (temp int) -0:105 Function Call: foo5(i1; (global void) +0:105 Function Call: foo5(i1; (temp void) 0:105 Convert float to int (temp int) 0:105 'f' (temp float) -0:107 Function Call: foo6(f1; (global void) +0:107 Function Call: foo6(f1; (temp void) 0:107 Convert bool to float (temp float) 0:107 'b' (temp bool) -0:108 Function Call: foo6(f1; (global void) +0:108 Function Call: foo6(f1; (temp void) 0:108 Convert double to float (temp float) 0:108 'd' (temp double) -0:109 Function Call: foo6(f1; (global void) +0:109 Function Call: foo6(f1; (temp void) 0:109 Convert uint to float (temp float) 0:109 'u' (temp uint) -0:110 Function Call: foo6(f1; (global void) +0:110 Function Call: foo6(f1; (temp void) 0:110 Convert int to float (temp float) 0:110 'i' (temp int) -0:111 Function Call: foo6(f1; (global void) +0:111 Function Call: foo6(f1; (temp void) 0:111 'f' (temp float) -0:113 Function Call: foo7(d1; (global void) +0:113 Function Call: foo7(d1; (temp void) 0:113 Convert bool to double (temp double) 0:113 'b' (temp bool) -0:114 Function Call: foo7(d1; (global void) +0:114 Function Call: foo7(d1; (temp void) 0:114 'd' (temp double) -0:115 Function Call: foo7(d1; (global void) +0:115 Function Call: foo7(d1; (temp void) 0:115 Convert uint to double (temp double) 0:115 'u' (temp uint) -0:116 Function Call: foo7(d1; (global void) +0:116 Function Call: foo7(d1; (temp void) 0:116 Convert int to double (temp double) 0:116 'i' (temp int) -0:117 Function Call: foo7(d1; (global void) +0:117 Function Call: foo7(d1; (temp void) 0:117 Convert float to double (temp double) 0:117 'f' (temp float) -0:119 Function Call: foo8(f1; (global void) +0:119 Function Call: foo8(f1; (temp void) 0:119 Convert bool to float (temp float) 0:119 'b' (temp bool) -0:120 Function Call: foo8(f1; (global void) +0:120 Function Call: foo8(f1; (temp void) 0:120 Convert uint to float (temp float) 0:120 'u' (temp uint) -0:121 Function Call: foo8(f1; (global void) +0:121 Function Call: foo8(f1; (temp void) 0:121 Convert int to float (temp float) 0:121 'i' (temp int) -0:123 Function Call: foo9(i1; (global void) +0:123 Function Call: foo9(i1; (temp void) 0:123 Convert bool to int (temp int) 0:123 'b' (temp bool) -0:124 Function Call: foo9(u1; (global void) +0:124 Function Call: foo9(u1; (temp void) 0:124 Convert float to uint (temp uint) 0:124 'f' (temp float) -0:125 Function Call: foo9(u1; (global void) +0:125 Function Call: foo9(u1; (temp void) 0:125 Convert double to uint (temp uint) 0:125 'd' (temp double) -0:127 Function Call: foo10(i1; (global void) +0:127 Function Call: foo10(i1; (temp void) 0:127 Convert uint to int (temp int) 0:127 'u' (temp uint) -0:128 Function Call: foo10(i1; (global void) +0:128 Function Call: foo10(i1; (temp void) 0:128 Convert float to int (temp int) 0:128 'f' (temp float) -0:129 Function Call: foo10(i1; (global void) +0:129 Function Call: foo10(i1; (temp void) 0:129 Convert double to int (temp int) 0:129 'd' (temp double) -0:131 Function Call: foo11(u1; (global void) +0:131 Function Call: foo11(u1; (temp void) 0:131 Convert bool to uint (temp uint) 0:131 'b' (temp bool) -0:132 Function Call: foo11(d1; (global void) +0:132 Function Call: foo11(d1; (temp void) 0:132 Convert float to double (temp double) 0:132 'f' (temp float) -0:133 Function Call: foo12(vd3; (global void) +0:133 Function Call: foo12(vd3; (temp void) 0:133 Convert float to double (temp 3-component vector of double) 0:133 Construct vec3 (temp 3-component vector of float) 0:133 'f' (temp float) -0:134 Function Call: foo16(vu2; (global void) +0:134 Function Call: foo16(vu2; (temp void) 0:? Convert int to uint (temp 2-component vector of uint) 0:? Construct ivec2 (temp 2-component vector of int) 0:134 'i' (temp int) 0:134 'i' (temp int) -0:136 Function Call: foo13(vf3; (global void) +0:136 Function Call: foo13(vf3; (temp void) 0:136 Construct vec3 (in 3-component vector of float) 0:136 'f' (temp float) -0:137 Function Call: foo14(vi1; (global void) +0:137 Function Call: foo14(vi1; (temp void) 0:137 Construct int (in 1-component vector of int) 0:137 Construct ivec4 (temp 4-component vector of int) 0:137 'i' (temp int) -0:138 Function Call: foo15(vb1; (global void) +0:138 Function Call: foo15(vb1; (temp void) 0:138 Construct bool (in 1-component vector of bool) 0:138 'b' (temp bool) -0:139 Function Call: foo15(vb1; (global void) +0:139 Function Call: foo15(vb1; (temp void) 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) @@ -364,349 +364,349 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (temp void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (temp void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (temp void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (temp void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:6 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (temp void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:9 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (temp void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:10 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (temp void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:11 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (temp void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:12 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (temp void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:13 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (temp void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:16 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (temp void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:17 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (temp void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:18 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (temp void) 0:18 Function Parameters: 0:18 'b' (in int) -0:19 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (temp void) 0:19 Function Parameters: 0:19 'b' (in float) -0:20 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (temp void) 0:20 Function Parameters: 0:20 'b' (in double) -0:23 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (temp void) 0:23 Function Parameters: 0:23 '' (in float) -0:24 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (temp void) 0:24 Function Parameters: 0:24 '' (in double) -0:25 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (temp void) 0:25 Function Parameters: 0:25 '' (in int) -0:26 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (temp void) 0:26 Function Parameters: 0:26 '' (in uint) -0:27 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (temp void) 0:27 Function Parameters: 0:27 '' (in bool) -0:28 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (temp void) 0:28 Function Parameters: 0:28 '' (in int) -0:31 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (temp void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:32 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (temp void) 0:32 Function Parameters: 0:32 '' (in double) -0:33 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (temp void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:34 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (temp void) 0:34 Function Parameters: 0:34 '' (in uint) -0:35 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (temp void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:36 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (temp void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:37 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (temp void) 0:37 Function Parameters: 0:37 '' (in uint) -0:38 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (temp void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:41 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (temp void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:42 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (temp void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:43 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (temp void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:53 Function Call: foo1(d1;b1; (global void) +0:53 Function Call: foo1(d1;b1; (temp void) 0:53 'd' (temp double) 0:53 'b' (temp bool) -0:54 Function Call: foo1(d1;d1; (global void) +0:54 Function Call: foo1(d1;d1; (temp void) 0:54 'd' (temp double) 0:54 'd' (temp double) -0:55 Function Call: foo1(d1;u1; (global void) +0:55 Function Call: foo1(d1;u1; (temp void) 0:55 'd' (temp double) 0:55 'u' (temp uint) -0:56 Function Call: foo1(d1;i1; (global void) +0:56 Function Call: foo1(d1;i1; (temp void) 0:56 'd' (temp double) 0:56 'i' (temp int) -0:57 Function Call: foo1(d1;f1; (global void) +0:57 Function Call: foo1(d1;f1; (temp void) 0:57 'd' (temp double) 0:57 'f' (temp float) -0:59 Function Call: foo1(d1;b1; (global void) +0:59 Function Call: foo1(d1;b1; (temp void) 0:59 Convert float to double (temp double) 0:59 'f' (temp float) 0:59 'b' (temp bool) -0:60 Function Call: foo1(d1;d1; (global void) +0:60 Function Call: foo1(d1;d1; (temp void) 0:60 Convert float to double (temp double) 0:60 'f' (temp float) 0:60 'd' (temp double) -0:61 Function Call: foo1(d1;u1; (global void) +0:61 Function Call: foo1(d1;u1; (temp void) 0:61 Convert float to double (temp double) 0:61 'f' (temp float) 0:61 'u' (temp uint) -0:62 Function Call: foo1(d1;i1; (global void) +0:62 Function Call: foo1(d1;i1; (temp void) 0:62 Convert float to double (temp double) 0:62 'f' (temp float) 0:62 'i' (temp int) -0:63 Function Call: foo1(d1;f1; (global void) +0:63 Function Call: foo1(d1;f1; (temp void) 0:63 Convert float to double (temp double) 0:63 'f' (temp float) 0:63 'f' (temp float) -0:65 Function Call: foo1(d1;b1; (global void) +0:65 Function Call: foo1(d1;b1; (temp void) 0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) 0:65 'b' (temp bool) -0:66 Function Call: foo1(d1;d1; (global void) +0:66 Function Call: foo1(d1;d1; (temp void) 0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) 0:66 'd' (temp double) -0:67 Function Call: foo1(d1;u1; (global void) +0:67 Function Call: foo1(d1;u1; (temp void) 0:67 Convert uint to double (temp double) 0:67 'u' (temp uint) 0:67 'u' (temp uint) -0:68 Function Call: foo1(d1;i1; (global void) +0:68 Function Call: foo1(d1;i1; (temp void) 0:68 Convert uint to double (temp double) 0:68 'u' (temp uint) 0:68 'i' (temp int) -0:69 Function Call: foo1(d1;f1; (global void) +0:69 Function Call: foo1(d1;f1; (temp void) 0:69 Convert uint to double (temp double) 0:69 'u' (temp uint) 0:69 'f' (temp float) -0:71 Function Call: foo1(d1;b1; (global void) +0:71 Function Call: foo1(d1;b1; (temp void) 0:71 Convert int to double (temp double) 0:71 'i' (temp int) 0:71 'b' (temp bool) -0:72 Function Call: foo1(d1;d1; (global void) +0:72 Function Call: foo1(d1;d1; (temp void) 0:72 Convert int to double (temp double) 0:72 'i' (temp int) 0:72 'd' (temp double) -0:73 Function Call: foo1(d1;u1; (global void) +0:73 Function Call: foo1(d1;u1; (temp void) 0:73 Convert int to double (temp double) 0:73 'i' (temp int) 0:73 'u' (temp uint) -0:74 Function Call: foo1(d1;i1; (global void) +0:74 Function Call: foo1(d1;i1; (temp void) 0:74 Convert int to double (temp double) 0:74 'i' (temp int) 0:74 'i' (temp int) -0:75 Function Call: foo1(d1;f1; (global void) +0:75 Function Call: foo1(d1;f1; (temp void) 0:75 Convert int to double (temp double) 0:75 'i' (temp int) 0:75 'f' (temp float) -0:77 Function Call: foo2(i1;b1; (global void) +0:77 Function Call: foo2(i1;b1; (temp void) 0:77 Convert uint to int (temp int) 0:77 'u' (temp uint) 0:77 'b' (temp bool) -0:78 Function Call: foo2(i1;d1; (global void) +0:78 Function Call: foo2(i1;d1; (temp void) 0:78 Convert uint to int (temp int) 0:78 'u' (temp uint) 0:78 'd' (temp double) -0:79 Function Call: foo2(i1;u1; (global void) +0:79 Function Call: foo2(i1;u1; (temp void) 0:79 Convert uint to int (temp int) 0:79 'u' (temp uint) 0:79 'u' (temp uint) -0:80 Function Call: foo2(i1;i1; (global void) +0:80 Function Call: foo2(i1;i1; (temp void) 0:80 Convert uint to int (temp int) 0:80 'u' (temp uint) 0:80 'i' (temp int) -0:81 Function Call: foo2(i1;f1; (global void) +0:81 Function Call: foo2(i1;f1; (temp void) 0:81 Convert uint to int (temp int) 0:81 'u' (temp uint) 0:81 'f' (temp float) -0:83 Function Call: foo2(i1;b1; (global void) +0:83 Function Call: foo2(i1;b1; (temp void) 0:83 'i' (temp int) 0:83 'b' (temp bool) -0:84 Function Call: foo2(i1;d1; (global void) +0:84 Function Call: foo2(i1;d1; (temp void) 0:84 'i' (temp int) 0:84 'd' (temp double) -0:85 Function Call: foo2(i1;u1; (global void) +0:85 Function Call: foo2(i1;u1; (temp void) 0:85 'i' (temp int) 0:85 'u' (temp uint) -0:86 Function Call: foo2(i1;i1; (global void) +0:86 Function Call: foo2(i1;i1; (temp void) 0:86 'i' (temp int) 0:86 'i' (temp int) -0:87 Function Call: foo2(i1;f1; (global void) +0:87 Function Call: foo2(i1;f1; (temp void) 0:87 'i' (temp int) 0:87 'f' (temp float) -0:89 Function Call: foo3(b1; (global void) +0:89 Function Call: foo3(b1; (temp void) 0:89 'b' (temp bool) -0:90 Function Call: foo3(b1; (global void) +0:90 Function Call: foo3(b1; (temp void) 0:90 Convert double to bool (temp bool) 0:90 'd' (temp double) -0:91 Function Call: foo3(b1; (global void) +0:91 Function Call: foo3(b1; (temp void) 0:91 Convert uint to bool (temp bool) 0:91 'u' (temp uint) -0:92 Function Call: foo3(b1; (global void) +0:92 Function Call: foo3(b1; (temp void) 0:92 Convert int to bool (temp bool) 0:92 'i' (temp int) -0:93 Function Call: foo3(b1; (global void) +0:93 Function Call: foo3(b1; (temp void) 0:93 Convert float to bool (temp bool) 0:93 'f' (temp float) -0:95 Function Call: foo4(u1; (global void) +0:95 Function Call: foo4(u1; (temp void) 0:95 Convert bool to uint (temp uint) 0:95 'b' (temp bool) -0:96 Function Call: foo4(u1; (global void) +0:96 Function Call: foo4(u1; (temp void) 0:96 Convert double to uint (temp uint) 0:96 'd' (temp double) -0:97 Function Call: foo4(u1; (global void) +0:97 Function Call: foo4(u1; (temp void) 0:97 'u' (temp uint) -0:98 Function Call: foo4(u1; (global void) +0:98 Function Call: foo4(u1; (temp void) 0:98 Convert int to uint (temp uint) 0:98 'i' (temp int) -0:99 Function Call: foo4(u1; (global void) +0:99 Function Call: foo4(u1; (temp void) 0:99 Convert float to uint (temp uint) 0:99 'f' (temp float) -0:101 Function Call: foo5(i1; (global void) +0:101 Function Call: foo5(i1; (temp void) 0:101 Convert bool to int (temp int) 0:101 'b' (temp bool) -0:102 Function Call: foo5(i1; (global void) +0:102 Function Call: foo5(i1; (temp void) 0:102 Convert double to int (temp int) 0:102 'd' (temp double) -0:103 Function Call: foo5(i1; (global void) +0:103 Function Call: foo5(i1; (temp void) 0:103 Convert uint to int (temp int) 0:103 'u' (temp uint) -0:104 Function Call: foo5(i1; (global void) +0:104 Function Call: foo5(i1; (temp void) 0:104 'i' (temp int) -0:105 Function Call: foo5(i1; (global void) +0:105 Function Call: foo5(i1; (temp void) 0:105 Convert float to int (temp int) 0:105 'f' (temp float) -0:107 Function Call: foo6(f1; (global void) +0:107 Function Call: foo6(f1; (temp void) 0:107 Convert bool to float (temp float) 0:107 'b' (temp bool) -0:108 Function Call: foo6(f1; (global void) +0:108 Function Call: foo6(f1; (temp void) 0:108 Convert double to float (temp float) 0:108 'd' (temp double) -0:109 Function Call: foo6(f1; (global void) +0:109 Function Call: foo6(f1; (temp void) 0:109 Convert uint to float (temp float) 0:109 'u' (temp uint) -0:110 Function Call: foo6(f1; (global void) +0:110 Function Call: foo6(f1; (temp void) 0:110 Convert int to float (temp float) 0:110 'i' (temp int) -0:111 Function Call: foo6(f1; (global void) +0:111 Function Call: foo6(f1; (temp void) 0:111 'f' (temp float) -0:113 Function Call: foo7(d1; (global void) +0:113 Function Call: foo7(d1; (temp void) 0:113 Convert bool to double (temp double) 0:113 'b' (temp bool) -0:114 Function Call: foo7(d1; (global void) +0:114 Function Call: foo7(d1; (temp void) 0:114 'd' (temp double) -0:115 Function Call: foo7(d1; (global void) +0:115 Function Call: foo7(d1; (temp void) 0:115 Convert uint to double (temp double) 0:115 'u' (temp uint) -0:116 Function Call: foo7(d1; (global void) +0:116 Function Call: foo7(d1; (temp void) 0:116 Convert int to double (temp double) 0:116 'i' (temp int) -0:117 Function Call: foo7(d1; (global void) +0:117 Function Call: foo7(d1; (temp void) 0:117 Convert float to double (temp double) 0:117 'f' (temp float) -0:119 Function Call: foo8(f1; (global void) +0:119 Function Call: foo8(f1; (temp void) 0:119 Convert bool to float (temp float) 0:119 'b' (temp bool) -0:120 Function Call: foo8(f1; (global void) +0:120 Function Call: foo8(f1; (temp void) 0:120 Convert uint to float (temp float) 0:120 'u' (temp uint) -0:121 Function Call: foo8(f1; (global void) +0:121 Function Call: foo8(f1; (temp void) 0:121 Convert int to float (temp float) 0:121 'i' (temp int) -0:123 Function Call: foo9(i1; (global void) +0:123 Function Call: foo9(i1; (temp void) 0:123 Convert bool to int (temp int) 0:123 'b' (temp bool) -0:124 Function Call: foo9(u1; (global void) +0:124 Function Call: foo9(u1; (temp void) 0:124 Convert float to uint (temp uint) 0:124 'f' (temp float) -0:125 Function Call: foo9(u1; (global void) +0:125 Function Call: foo9(u1; (temp void) 0:125 Convert double to uint (temp uint) 0:125 'd' (temp double) -0:127 Function Call: foo10(i1; (global void) +0:127 Function Call: foo10(i1; (temp void) 0:127 Convert uint to int (temp int) 0:127 'u' (temp uint) -0:128 Function Call: foo10(i1; (global void) +0:128 Function Call: foo10(i1; (temp void) 0:128 Convert float to int (temp int) 0:128 'f' (temp float) -0:129 Function Call: foo10(i1; (global void) +0:129 Function Call: foo10(i1; (temp void) 0:129 Convert double to int (temp int) 0:129 'd' (temp double) -0:131 Function Call: foo11(u1; (global void) +0:131 Function Call: foo11(u1; (temp void) 0:131 Convert bool to uint (temp uint) 0:131 'b' (temp bool) -0:132 Function Call: foo11(d1; (global void) +0:132 Function Call: foo11(d1; (temp void) 0:132 Convert float to double (temp double) 0:132 'f' (temp float) -0:133 Function Call: foo12(vd3; (global void) +0:133 Function Call: foo12(vd3; (temp void) 0:133 Convert float to double (temp 3-component vector of double) 0:133 Construct vec3 (temp 3-component vector of float) 0:133 'f' (temp float) -0:134 Function Call: foo16(vu2; (global void) +0:134 Function Call: foo16(vu2; (temp void) 0:? Convert int to uint (temp 2-component vector of uint) 0:? Construct ivec2 (temp 2-component vector of int) 0:134 'i' (temp int) 0:134 'i' (temp int) -0:136 Function Call: foo13(vf3; (global void) +0:136 Function Call: foo13(vf3; (temp void) 0:136 Construct vec3 (in 3-component vector of float) 0:136 'f' (temp float) -0:137 Function Call: foo14(vi1; (global void) +0:137 Function Call: foo14(vi1; (temp void) 0:137 Construct int (in 1-component vector of int) 0:137 Construct ivec4 (temp 4-component vector of int) 0:137 'i' (temp int) -0:138 Function Call: foo15(vb1; (global void) +0:138 Function Call: foo15(vb1; (temp void) 0:138 Construct bool (in 1-component vector of bool) 0:138 'b' (temp bool) -0:139 Function Call: foo15(vb1; (global void) +0:139 Function Call: foo15(vb1; (temp void) 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 95a2f25a..281b680b 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index e6338470..1e18a405 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -2,7 +2,7 @@ hlsl.precedence.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) @@ -59,7 +59,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 7021837b..64cce2c7 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -2,7 +2,7 @@ hlsl.precedence2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) @@ -42,7 +42,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index d76dc3f0..40b6c4d9 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -2,11 +2,11 @@ hlsl.precise.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (temp void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) @@ -39,11 +39,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (temp void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 3f1c7886..25238beb 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -2,472 +2,748 @@ hlsl.promotions.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (temp void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (temp void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:21 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (temp void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:22 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (temp void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:23 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (temp void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence 0:26 move second child to first child (temp 3-component vector of float) 0:26 'p' (out 3-component vector of float) 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) -0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence 0:27 move second child to first child (temp 3-component vector of float) 0:27 'p' (out 3-component vector of float) 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) -0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence 0:28 move second child to first child (temp 3-component vector of float) 0:28 'p' (out 3-component vector of float) 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) -0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence 0:29 move second child to first child (temp 3-component vector of float) 0:29 'p' (out 3-component vector of float) 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) -0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence 0:31 move second child to first child (temp 3-component vector of int) 0:31 'p' (out 3-component vector of int) 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) -0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence 0:32 move second child to first child (temp 3-component vector of int) 0:32 'p' (out 3-component vector of int) 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) -0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence 0:33 move second child to first child (temp 3-component vector of int) 0:33 'p' (out 3-component vector of int) 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) -0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence 0:34 move second child to first child (temp 3-component vector of int) 0:34 'p' (out 3-component vector of int) 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) -0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child (temp 3-component vector of uint) 0:36 'p' (out 3-component vector of uint) 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) -0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child (temp 3-component vector of uint) 0:37 'p' (out 3-component vector of uint) 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) -0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child (temp 3-component vector of uint) 0:38 'p' (out 3-component vector of uint) 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) -0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child (temp 3-component vector of uint) 0:39 'p' (out 3-component vector of uint) 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) -0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child (temp 3-component vector of bool) 0:41 'p' (out 3-component vector of bool) 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) -0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child (temp 3-component vector of bool) 0:42 'p' (out 3-component vector of bool) 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) -0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child (temp 3-component vector of bool) 0:43 'p' (out 3-component vector of bool) 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) -0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child (temp 3-component vector of bool) 0:44 'p' (out 3-component vector of bool) 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) -0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence 0:46 move second child to first child (temp 3-component vector of double) 0:46 'p' (out 3-component vector of double) 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) -0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence 0:47 move second child to first child (temp 3-component vector of double) 0:47 'p' (out 3-component vector of double) 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) -0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence 0:48 move second child to first child (temp 3-component vector of double) 0:48 'p' (out 3-component vector of double) 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) -0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence 0:49 move second child to first child (temp 3-component vector of double) 0:49 'p' (out 3-component vector of double) 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child (temp 3-component vector of float) 0:54 'r00' (temp 3-component vector of float) 0:54 Convert int to float (temp 3-component vector of float) -0:54 'i3' (uniform 3-component vector of int) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child (temp 3-component vector of float) 0:55 'r01' (temp 3-component vector of float) 0:55 Convert bool to float (temp 3-component vector of float) -0:55 'b3' (uniform 3-component vector of bool) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child (temp 3-component vector of float) 0:56 'r02' (temp 3-component vector of float) 0:56 Convert uint to float (temp 3-component vector of float) -0:56 'u3' (uniform 3-component vector of uint) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child (temp 3-component vector of float) 0:57 'r03' (temp 3-component vector of float) 0:57 Convert double to float (temp 3-component vector of float) -0:57 'd3' (uniform 3-component vector of double) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child (temp 3-component vector of int) 0:59 'r10' (temp 3-component vector of int) 0:59 Convert bool to int (temp 3-component vector of int) -0:59 'b3' (uniform 3-component vector of bool) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child (temp 3-component vector of int) 0:60 'r11' (temp 3-component vector of int) 0:60 Convert uint to int (temp 3-component vector of int) -0:60 'u3' (uniform 3-component vector of uint) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child (temp 3-component vector of int) 0:61 'r12' (temp 3-component vector of int) 0:61 Convert float to int (temp 3-component vector of int) -0:61 'f3' (uniform 3-component vector of float) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child (temp 3-component vector of int) 0:62 'r13' (temp 3-component vector of int) 0:62 Convert double to int (temp 3-component vector of int) -0:62 'd3' (uniform 3-component vector of double) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child (temp 3-component vector of uint) 0:64 'r20' (temp 3-component vector of uint) 0:64 Convert bool to uint (temp 3-component vector of uint) -0:64 'b3' (uniform 3-component vector of bool) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child (temp 3-component vector of uint) 0:65 'r21' (temp 3-component vector of uint) 0:65 Convert int to uint (temp 3-component vector of uint) -0:65 'i3' (uniform 3-component vector of int) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child (temp 3-component vector of uint) 0:66 'r22' (temp 3-component vector of uint) 0:66 Convert float to uint (temp 3-component vector of uint) -0:66 'f3' (uniform 3-component vector of float) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child (temp 3-component vector of uint) 0:67 'r23' (temp 3-component vector of uint) 0:67 Convert double to uint (temp 3-component vector of uint) -0:67 'd3' (uniform 3-component vector of double) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child (temp 3-component vector of bool) 0:69 'r30' (temp 3-component vector of bool) 0:69 Convert int to bool (temp 3-component vector of bool) -0:69 'i3' (uniform 3-component vector of int) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child (temp 3-component vector of bool) 0:70 'r31' (temp 3-component vector of bool) 0:70 Convert uint to bool (temp 3-component vector of bool) -0:70 'u3' (uniform 3-component vector of uint) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child (temp 3-component vector of bool) 0:71 'r32' (temp 3-component vector of bool) 0:71 Convert float to bool (temp 3-component vector of bool) -0:71 'f3' (uniform 3-component vector of float) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child (temp 3-component vector of bool) 0:72 'r33' (temp 3-component vector of bool) 0:72 Convert double to bool (temp 3-component vector of bool) -0:72 'd3' (uniform 3-component vector of double) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child (temp 3-component vector of double) 0:74 'r40' (temp 3-component vector of double) 0:74 Convert int to double (temp 3-component vector of double) -0:74 'i3' (uniform 3-component vector of int) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child (temp 3-component vector of double) 0:75 'r41' (temp 3-component vector of double) 0:75 Convert uint to double (temp 3-component vector of double) -0:75 'u3' (uniform 3-component vector of uint) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child (temp 3-component vector of double) 0:76 'r42' (temp 3-component vector of double) 0:76 Convert float to double (temp 3-component vector of double) -0:76 'f3' (uniform 3-component vector of float) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child (temp 3-component vector of double) 0:77 'r43' (temp 3-component vector of double) 0:77 Convert bool to double (temp 3-component vector of double) -0:77 'b3' (uniform 3-component vector of bool) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) 0:80 multiply second child into first child (temp 3-component vector of float) 0:80 'r00' (temp 3-component vector of float) 0:80 Convert int to float (temp 3-component vector of float) -0:80 'i3' (uniform 3-component vector of int) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) 0:81 multiply second child into first child (temp 3-component vector of float) 0:81 'r01' (temp 3-component vector of float) 0:81 Convert bool to float (temp 3-component vector of float) -0:81 'b3' (uniform 3-component vector of bool) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) 0:82 multiply second child into first child (temp 3-component vector of float) 0:82 'r02' (temp 3-component vector of float) 0:82 Convert uint to float (temp 3-component vector of float) -0:82 'u3' (uniform 3-component vector of uint) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) 0:83 multiply second child into first child (temp 3-component vector of float) 0:83 'r03' (temp 3-component vector of float) 0:83 Convert double to float (temp 3-component vector of float) -0:83 'd3' (uniform 3-component vector of double) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) 0:85 multiply second child into first child (temp 3-component vector of int) 0:85 'r10' (temp 3-component vector of int) 0:85 Convert bool to int (temp 3-component vector of int) -0:85 'b3' (uniform 3-component vector of bool) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) 0:86 multiply second child into first child (temp 3-component vector of int) 0:86 'r11' (temp 3-component vector of int) 0:86 Convert uint to int (temp 3-component vector of int) -0:86 'u3' (uniform 3-component vector of uint) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) 0:87 multiply second child into first child (temp 3-component vector of int) 0:87 'r12' (temp 3-component vector of int) 0:87 Convert float to int (temp 3-component vector of int) -0:87 'f3' (uniform 3-component vector of float) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) 0:88 multiply second child into first child (temp 3-component vector of int) 0:88 'r13' (temp 3-component vector of int) 0:88 Convert double to int (temp 3-component vector of int) -0:88 'd3' (uniform 3-component vector of double) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) 0:90 multiply second child into first child (temp 3-component vector of uint) 0:90 'r20' (temp 3-component vector of uint) 0:90 Convert bool to uint (temp 3-component vector of uint) -0:90 'b3' (uniform 3-component vector of bool) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) 0:91 multiply second child into first child (temp 3-component vector of uint) 0:91 'r21' (temp 3-component vector of uint) 0:91 Convert int to uint (temp 3-component vector of uint) -0:91 'i3' (uniform 3-component vector of int) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) 0:92 multiply second child into first child (temp 3-component vector of uint) 0:92 'r22' (temp 3-component vector of uint) 0:92 Convert float to uint (temp 3-component vector of uint) -0:92 'f3' (uniform 3-component vector of float) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) 0:93 multiply second child into first child (temp 3-component vector of uint) 0:93 'r23' (temp 3-component vector of uint) 0:93 Convert double to uint (temp 3-component vector of uint) -0:93 'd3' (uniform 3-component vector of double) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) 0:97 multiply second child into first child (temp 3-component vector of double) 0:97 'r40' (temp 3-component vector of double) 0:97 Convert int to double (temp 3-component vector of double) -0:97 'i3' (uniform 3-component vector of int) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) 0:98 multiply second child into first child (temp 3-component vector of double) 0:98 'r41' (temp 3-component vector of double) 0:98 Convert uint to double (temp 3-component vector of double) -0:98 'u3' (uniform 3-component vector of uint) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) 0:99 multiply second child into first child (temp 3-component vector of double) 0:99 'r42' (temp 3-component vector of double) 0:99 Convert float to double (temp 3-component vector of double) -0:99 'f3' (uniform 3-component vector of float) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) 0:100 multiply second child into first child (temp 3-component vector of double) 0:100 'r43' (temp 3-component vector of double) 0:100 Convert bool to double (temp 3-component vector of double) -0:100 'b3' (uniform 3-component vector of bool) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) 0:103 vector scale second child into first child (temp 3-component vector of float) 0:103 'r00' (temp 3-component vector of float) 0:103 Convert int to float (temp float) -0:103 'is' (uniform int) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) 0:104 vector scale second child into first child (temp 3-component vector of float) 0:104 'r01' (temp 3-component vector of float) 0:104 Convert bool to float (temp float) -0:104 'bs' (uniform bool) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) 0:105 vector scale second child into first child (temp 3-component vector of float) 0:105 'r02' (temp 3-component vector of float) 0:105 Convert uint to float (temp float) -0:105 'us' (uniform uint) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) 0:106 vector scale second child into first child (temp 3-component vector of float) 0:106 'r03' (temp 3-component vector of float) 0:106 Convert double to float (temp float) -0:106 'ds' (uniform double) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) 0:108 vector scale second child into first child (temp 3-component vector of int) 0:108 'r10' (temp 3-component vector of int) 0:108 Convert bool to int (temp int) -0:108 'bs' (uniform bool) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) 0:109 vector scale second child into first child (temp 3-component vector of int) 0:109 'r11' (temp 3-component vector of int) 0:109 Convert uint to int (temp int) -0:109 'us' (uniform uint) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) 0:110 vector scale second child into first child (temp 3-component vector of int) 0:110 'r12' (temp 3-component vector of int) 0:110 Convert float to int (temp int) -0:110 'fs' (uniform float) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) 0:111 vector scale second child into first child (temp 3-component vector of int) 0:111 'r13' (temp 3-component vector of int) 0:111 Convert double to int (temp int) -0:111 'ds' (uniform double) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) 0:113 vector scale second child into first child (temp 3-component vector of uint) 0:113 'r20' (temp 3-component vector of uint) 0:113 Convert bool to uint (temp uint) -0:113 'bs' (uniform bool) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) 0:114 vector scale second child into first child (temp 3-component vector of uint) 0:114 'r21' (temp 3-component vector of uint) 0:114 Convert int to uint (temp uint) -0:114 'is' (uniform int) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) 0:115 vector scale second child into first child (temp 3-component vector of uint) 0:115 'r22' (temp 3-component vector of uint) 0:115 Convert float to uint (temp uint) -0:115 'fs' (uniform float) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) 0:116 vector scale second child into first child (temp 3-component vector of uint) 0:116 'r23' (temp 3-component vector of uint) 0:116 Convert double to uint (temp uint) -0:116 'ds' (uniform double) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) 0:120 vector scale second child into first child (temp 3-component vector of double) 0:120 'r40' (temp 3-component vector of double) 0:120 Convert int to double (temp double) -0:120 'is' (uniform int) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) 0:121 vector scale second child into first child (temp 3-component vector of double) 0:121 'r41' (temp 3-component vector of double) 0:121 Convert uint to double (temp double) -0:121 'us' (uniform uint) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) 0:122 vector scale second child into first child (temp 3-component vector of double) 0:122 'r42' (temp 3-component vector of double) 0:122 Convert float to double (temp double) -0:122 'fs' (uniform float) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) 0:123 vector scale second child into first child (temp 3-component vector of double) 0:123 'r43' (temp 3-component vector of double) 0:123 Convert bool to double (temp double) -0:123 'bs' (uniform bool) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child (temp int) 0:193 'c1' (temp int) @@ -506,16 +782,7 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'i3' (uniform 3-component vector of int) -0:? 'b3' (uniform 3-component vector of bool) -0:? 'f3' (uniform 3-component vector of float) -0:? 'u3' (uniform 3-component vector of uint) -0:? 'd3' (uniform 3-component vector of double) -0:? 'is' (uniform int) -0:? 'bs' (uniform bool) -0:? 'fs' (uniform float) -0:? 'us' (uniform uint) -0:? 'ds' (uniform double) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -525,472 +792,748 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (temp void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (temp void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:21 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (temp void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:22 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (temp void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:23 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (temp void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence 0:26 move second child to first child (temp 3-component vector of float) 0:26 'p' (out 3-component vector of float) 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) -0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence 0:27 move second child to first child (temp 3-component vector of float) 0:27 'p' (out 3-component vector of float) 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) -0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence 0:28 move second child to first child (temp 3-component vector of float) 0:28 'p' (out 3-component vector of float) 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) -0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence 0:29 move second child to first child (temp 3-component vector of float) 0:29 'p' (out 3-component vector of float) 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) -0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence 0:31 move second child to first child (temp 3-component vector of int) 0:31 'p' (out 3-component vector of int) 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) -0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence 0:32 move second child to first child (temp 3-component vector of int) 0:32 'p' (out 3-component vector of int) 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) -0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence 0:33 move second child to first child (temp 3-component vector of int) 0:33 'p' (out 3-component vector of int) 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) -0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence 0:34 move second child to first child (temp 3-component vector of int) 0:34 'p' (out 3-component vector of int) 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) -0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child (temp 3-component vector of uint) 0:36 'p' (out 3-component vector of uint) 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) -0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child (temp 3-component vector of uint) 0:37 'p' (out 3-component vector of uint) 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) -0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child (temp 3-component vector of uint) 0:38 'p' (out 3-component vector of uint) 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) -0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child (temp 3-component vector of uint) 0:39 'p' (out 3-component vector of uint) 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) -0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child (temp 3-component vector of bool) 0:41 'p' (out 3-component vector of bool) 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) -0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child (temp 3-component vector of bool) 0:42 'p' (out 3-component vector of bool) 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) -0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child (temp 3-component vector of bool) 0:43 'p' (out 3-component vector of bool) 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) -0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child (temp 3-component vector of bool) 0:44 'p' (out 3-component vector of bool) 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) -0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence 0:46 move second child to first child (temp 3-component vector of double) 0:46 'p' (out 3-component vector of double) 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) -0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence 0:47 move second child to first child (temp 3-component vector of double) 0:47 'p' (out 3-component vector of double) 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) -0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence 0:48 move second child to first child (temp 3-component vector of double) 0:48 'p' (out 3-component vector of double) 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) -0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence 0:49 move second child to first child (temp 3-component vector of double) 0:49 'p' (out 3-component vector of double) 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child (temp 3-component vector of float) 0:54 'r00' (temp 3-component vector of float) 0:54 Convert int to float (temp 3-component vector of float) -0:54 'i3' (uniform 3-component vector of int) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child (temp 3-component vector of float) 0:55 'r01' (temp 3-component vector of float) 0:55 Convert bool to float (temp 3-component vector of float) -0:55 'b3' (uniform 3-component vector of bool) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child (temp 3-component vector of float) 0:56 'r02' (temp 3-component vector of float) 0:56 Convert uint to float (temp 3-component vector of float) -0:56 'u3' (uniform 3-component vector of uint) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child (temp 3-component vector of float) 0:57 'r03' (temp 3-component vector of float) 0:57 Convert double to float (temp 3-component vector of float) -0:57 'd3' (uniform 3-component vector of double) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child (temp 3-component vector of int) 0:59 'r10' (temp 3-component vector of int) 0:59 Convert bool to int (temp 3-component vector of int) -0:59 'b3' (uniform 3-component vector of bool) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child (temp 3-component vector of int) 0:60 'r11' (temp 3-component vector of int) 0:60 Convert uint to int (temp 3-component vector of int) -0:60 'u3' (uniform 3-component vector of uint) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child (temp 3-component vector of int) 0:61 'r12' (temp 3-component vector of int) 0:61 Convert float to int (temp 3-component vector of int) -0:61 'f3' (uniform 3-component vector of float) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child (temp 3-component vector of int) 0:62 'r13' (temp 3-component vector of int) 0:62 Convert double to int (temp 3-component vector of int) -0:62 'd3' (uniform 3-component vector of double) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child (temp 3-component vector of uint) 0:64 'r20' (temp 3-component vector of uint) 0:64 Convert bool to uint (temp 3-component vector of uint) -0:64 'b3' (uniform 3-component vector of bool) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child (temp 3-component vector of uint) 0:65 'r21' (temp 3-component vector of uint) 0:65 Convert int to uint (temp 3-component vector of uint) -0:65 'i3' (uniform 3-component vector of int) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child (temp 3-component vector of uint) 0:66 'r22' (temp 3-component vector of uint) 0:66 Convert float to uint (temp 3-component vector of uint) -0:66 'f3' (uniform 3-component vector of float) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child (temp 3-component vector of uint) 0:67 'r23' (temp 3-component vector of uint) 0:67 Convert double to uint (temp 3-component vector of uint) -0:67 'd3' (uniform 3-component vector of double) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child (temp 3-component vector of bool) 0:69 'r30' (temp 3-component vector of bool) 0:69 Convert int to bool (temp 3-component vector of bool) -0:69 'i3' (uniform 3-component vector of int) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child (temp 3-component vector of bool) 0:70 'r31' (temp 3-component vector of bool) 0:70 Convert uint to bool (temp 3-component vector of bool) -0:70 'u3' (uniform 3-component vector of uint) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child (temp 3-component vector of bool) 0:71 'r32' (temp 3-component vector of bool) 0:71 Convert float to bool (temp 3-component vector of bool) -0:71 'f3' (uniform 3-component vector of float) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child (temp 3-component vector of bool) 0:72 'r33' (temp 3-component vector of bool) 0:72 Convert double to bool (temp 3-component vector of bool) -0:72 'd3' (uniform 3-component vector of double) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child (temp 3-component vector of double) 0:74 'r40' (temp 3-component vector of double) 0:74 Convert int to double (temp 3-component vector of double) -0:74 'i3' (uniform 3-component vector of int) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child (temp 3-component vector of double) 0:75 'r41' (temp 3-component vector of double) 0:75 Convert uint to double (temp 3-component vector of double) -0:75 'u3' (uniform 3-component vector of uint) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child (temp 3-component vector of double) 0:76 'r42' (temp 3-component vector of double) 0:76 Convert float to double (temp 3-component vector of double) -0:76 'f3' (uniform 3-component vector of float) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child (temp 3-component vector of double) 0:77 'r43' (temp 3-component vector of double) 0:77 Convert bool to double (temp 3-component vector of double) -0:77 'b3' (uniform 3-component vector of bool) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) 0:80 multiply second child into first child (temp 3-component vector of float) 0:80 'r00' (temp 3-component vector of float) 0:80 Convert int to float (temp 3-component vector of float) -0:80 'i3' (uniform 3-component vector of int) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) 0:81 multiply second child into first child (temp 3-component vector of float) 0:81 'r01' (temp 3-component vector of float) 0:81 Convert bool to float (temp 3-component vector of float) -0:81 'b3' (uniform 3-component vector of bool) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) 0:82 multiply second child into first child (temp 3-component vector of float) 0:82 'r02' (temp 3-component vector of float) 0:82 Convert uint to float (temp 3-component vector of float) -0:82 'u3' (uniform 3-component vector of uint) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) 0:83 multiply second child into first child (temp 3-component vector of float) 0:83 'r03' (temp 3-component vector of float) 0:83 Convert double to float (temp 3-component vector of float) -0:83 'd3' (uniform 3-component vector of double) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) 0:85 multiply second child into first child (temp 3-component vector of int) 0:85 'r10' (temp 3-component vector of int) 0:85 Convert bool to int (temp 3-component vector of int) -0:85 'b3' (uniform 3-component vector of bool) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) 0:86 multiply second child into first child (temp 3-component vector of int) 0:86 'r11' (temp 3-component vector of int) 0:86 Convert uint to int (temp 3-component vector of int) -0:86 'u3' (uniform 3-component vector of uint) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) 0:87 multiply second child into first child (temp 3-component vector of int) 0:87 'r12' (temp 3-component vector of int) 0:87 Convert float to int (temp 3-component vector of int) -0:87 'f3' (uniform 3-component vector of float) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) 0:88 multiply second child into first child (temp 3-component vector of int) 0:88 'r13' (temp 3-component vector of int) 0:88 Convert double to int (temp 3-component vector of int) -0:88 'd3' (uniform 3-component vector of double) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) 0:90 multiply second child into first child (temp 3-component vector of uint) 0:90 'r20' (temp 3-component vector of uint) 0:90 Convert bool to uint (temp 3-component vector of uint) -0:90 'b3' (uniform 3-component vector of bool) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) 0:91 multiply second child into first child (temp 3-component vector of uint) 0:91 'r21' (temp 3-component vector of uint) 0:91 Convert int to uint (temp 3-component vector of uint) -0:91 'i3' (uniform 3-component vector of int) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) 0:92 multiply second child into first child (temp 3-component vector of uint) 0:92 'r22' (temp 3-component vector of uint) 0:92 Convert float to uint (temp 3-component vector of uint) -0:92 'f3' (uniform 3-component vector of float) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) 0:93 multiply second child into first child (temp 3-component vector of uint) 0:93 'r23' (temp 3-component vector of uint) 0:93 Convert double to uint (temp 3-component vector of uint) -0:93 'd3' (uniform 3-component vector of double) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) 0:97 multiply second child into first child (temp 3-component vector of double) 0:97 'r40' (temp 3-component vector of double) 0:97 Convert int to double (temp 3-component vector of double) -0:97 'i3' (uniform 3-component vector of int) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) 0:98 multiply second child into first child (temp 3-component vector of double) 0:98 'r41' (temp 3-component vector of double) 0:98 Convert uint to double (temp 3-component vector of double) -0:98 'u3' (uniform 3-component vector of uint) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) 0:99 multiply second child into first child (temp 3-component vector of double) 0:99 'r42' (temp 3-component vector of double) 0:99 Convert float to double (temp 3-component vector of double) -0:99 'f3' (uniform 3-component vector of float) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) 0:100 multiply second child into first child (temp 3-component vector of double) 0:100 'r43' (temp 3-component vector of double) 0:100 Convert bool to double (temp 3-component vector of double) -0:100 'b3' (uniform 3-component vector of bool) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) 0:103 vector scale second child into first child (temp 3-component vector of float) 0:103 'r00' (temp 3-component vector of float) 0:103 Convert int to float (temp float) -0:103 'is' (uniform int) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) 0:104 vector scale second child into first child (temp 3-component vector of float) 0:104 'r01' (temp 3-component vector of float) 0:104 Convert bool to float (temp float) -0:104 'bs' (uniform bool) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) 0:105 vector scale second child into first child (temp 3-component vector of float) 0:105 'r02' (temp 3-component vector of float) 0:105 Convert uint to float (temp float) -0:105 'us' (uniform uint) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) 0:106 vector scale second child into first child (temp 3-component vector of float) 0:106 'r03' (temp 3-component vector of float) 0:106 Convert double to float (temp float) -0:106 'ds' (uniform double) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) 0:108 vector scale second child into first child (temp 3-component vector of int) 0:108 'r10' (temp 3-component vector of int) 0:108 Convert bool to int (temp int) -0:108 'bs' (uniform bool) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) 0:109 vector scale second child into first child (temp 3-component vector of int) 0:109 'r11' (temp 3-component vector of int) 0:109 Convert uint to int (temp int) -0:109 'us' (uniform uint) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) 0:110 vector scale second child into first child (temp 3-component vector of int) 0:110 'r12' (temp 3-component vector of int) 0:110 Convert float to int (temp int) -0:110 'fs' (uniform float) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) 0:111 vector scale second child into first child (temp 3-component vector of int) 0:111 'r13' (temp 3-component vector of int) 0:111 Convert double to int (temp int) -0:111 'ds' (uniform double) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) 0:113 vector scale second child into first child (temp 3-component vector of uint) 0:113 'r20' (temp 3-component vector of uint) 0:113 Convert bool to uint (temp uint) -0:113 'bs' (uniform bool) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) 0:114 vector scale second child into first child (temp 3-component vector of uint) 0:114 'r21' (temp 3-component vector of uint) 0:114 Convert int to uint (temp uint) -0:114 'is' (uniform int) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) 0:115 vector scale second child into first child (temp 3-component vector of uint) 0:115 'r22' (temp 3-component vector of uint) 0:115 Convert float to uint (temp uint) -0:115 'fs' (uniform float) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) 0:116 vector scale second child into first child (temp 3-component vector of uint) 0:116 'r23' (temp 3-component vector of uint) 0:116 Convert double to uint (temp uint) -0:116 'ds' (uniform double) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) 0:120 vector scale second child into first child (temp 3-component vector of double) 0:120 'r40' (temp 3-component vector of double) 0:120 Convert int to double (temp double) -0:120 'is' (uniform int) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) 0:121 vector scale second child into first child (temp 3-component vector of double) 0:121 'r41' (temp 3-component vector of double) 0:121 Convert uint to double (temp double) -0:121 'us' (uniform uint) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) 0:122 vector scale second child into first child (temp 3-component vector of double) 0:122 'r42' (temp 3-component vector of double) 0:122 Convert float to double (temp double) -0:122 'fs' (uniform float) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) 0:123 vector scale second child into first child (temp 3-component vector of double) 0:123 'r43' (temp 3-component vector of double) 0:123 Convert bool to double (temp double) -0:123 'bs' (uniform bool) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child (temp int) 0:193 'c1' (temp int) @@ -1029,27 +1572,18 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'i3' (uniform 3-component vector of int) -0:? 'b3' (uniform 3-component vector of bool) -0:? 'f3' (uniform 3-component vector of float) -0:? 'u3' (uniform 3-component vector of uint) -0:? 'd3' (uniform 3-component vector of double) -0:? 'is' (uniform int) -0:? 'bs' (uniform bool) -0:? 'fs' (uniform float) -0:? 'us' (uniform uint) -0:? 'ds' (uniform double) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 481 +// Id's are bound by 591 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 477 + EntryPoint Fragment 4 "main" 587 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1102,44 +1636,58 @@ gl_FragCoord origin is upper left Name 100 "p" Name 104 "Fn_R_D3F(vd3;" Name 103 "p" - Name 107 "i3" - Name 115 "u3" - Name 123 "b3" - Name 135 "d3" - Name 159 "f3" - Name 252 "r00" - Name 255 "r01" - Name 258 "r02" - Name 261 "r03" - Name 264 "r10" - Name 267 "r11" - Name 270 "r12" - Name 273 "r13" - Name 276 "r20" - Name 279 "r21" - Name 282 "r22" - Name 285 "r23" - Name 288 "r30" - Name 291 "r31" - Name 294 "r32" - Name 297 "r33" - Name 300 "r40" - Name 303 "r41" - Name 306 "r42" - Name 309 "r43" - Name 377 "is" - Name 383 "bs" - Name 389 "us" - Name 395 "ds" - Name 411 "fs" - Name 459 "c1" - Name 461 "c2" - Name 464 "outval" - Name 471 "PS_OUTPUT" - MemberName 471(PS_OUTPUT) 0 "Color" - Name 473 "psout" - Name 477 "Color" - Decorate 477(Color) Location 0 + Name 106 "$Global" + MemberName 106($Global) 0 "i3" + MemberName 106($Global) 1 "b3" + MemberName 106($Global) 2 "f3" + MemberName 106($Global) 3 "u3" + MemberName 106($Global) 4 "d3" + MemberName 106($Global) 5 "is" + MemberName 106($Global) 6 "bs" + MemberName 106($Global) 7 "fs" + MemberName 106($Global) 8 "us" + MemberName 106($Global) 9 "ds" + Name 108 "" + Name 300 "r00" + Name 304 "r01" + Name 309 "r02" + Name 313 "r03" + Name 317 "r10" + Name 322 "r11" + Name 326 "r12" + Name 330 "r13" + Name 334 "r20" + Name 339 "r21" + Name 343 "r22" + Name 347 "r23" + Name 351 "r30" + Name 355 "r31" + Name 359 "r32" + Name 363 "r33" + Name 367 "r40" + Name 371 "r41" + Name 375 "r42" + Name 379 "r43" + Name 570 "c1" + Name 571 "c2" + Name 574 "outval" + Name 581 "PS_OUTPUT" + MemberName 581(PS_OUTPUT) 0 "Color" + Name 583 "psout" + Name 587 "Color" + MemberDecorate 106($Global) 0 Offset 0 + MemberDecorate 106($Global) 1 Offset 16 + MemberDecorate 106($Global) 2 Offset 32 + MemberDecorate 106($Global) 3 Offset 48 + MemberDecorate 106($Global) 4 Offset 64 + MemberDecorate 106($Global) 5 Offset 88 + MemberDecorate 106($Global) 6 Offset 92 + MemberDecorate 106($Global) 7 Offset 96 + MemberDecorate 106($Global) 8 Offset 100 + MemberDecorate 106($Global) 9 Offset 104 + Decorate 106($Global) Block + Decorate 108 DescriptorSet 0 + Decorate 587(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1167,319 +1715,381 @@ gl_FragCoord origin is upper left 67: TypeFunction 21(ivec3) 22(ptr) 80: TypeFunction 28(bvec3) 29(ptr) 93: TypeFunction 35(fvec3) 36(ptr) - 106: TypePointer UniformConstant 14(ivec3) - 107(i3): 106(ptr) Variable UniformConstant - 114: TypePointer UniformConstant 21(ivec3) - 115(u3): 114(ptr) Variable UniformConstant - 122: TypePointer UniformConstant 28(bvec3) - 123(b3): 122(ptr) Variable UniformConstant - 125: 6(float) Constant 0 - 126: 6(float) Constant 1065353216 - 127: 7(fvec3) ConstantComposite 125 125 125 - 128: 7(fvec3) ConstantComposite 126 126 126 - 134: TypePointer UniformConstant 35(fvec3) - 135(d3): 134(ptr) Variable UniformConstant - 149: 13(int) Constant 0 - 150: 13(int) Constant 1 - 151: 14(ivec3) ConstantComposite 149 149 149 - 152: 14(ivec3) ConstantComposite 150 150 150 - 158: TypePointer UniformConstant 7(fvec3) - 159(f3): 158(ptr) Variable UniformConstant - 185: 20(int) Constant 0 - 186: 20(int) Constant 1 - 187: 21(ivec3) ConstantComposite 185 185 185 - 188: 21(ivec3) ConstantComposite 186 186 186 - 219: 34(float) Constant 0 0 - 220: 35(fvec3) ConstantComposite 219 219 219 - 239: 34(float) Constant 0 1072693248 - 240: 35(fvec3) ConstantComposite 239 239 239 - 376: TypePointer UniformConstant 13(int) - 377(is): 376(ptr) Variable UniformConstant - 382: TypePointer UniformConstant 27(bool) - 383(bs): 382(ptr) Variable UniformConstant - 388: TypePointer UniformConstant 20(int) - 389(us): 388(ptr) Variable UniformConstant - 394: TypePointer UniformConstant 34(float) - 395(ds): 394(ptr) Variable UniformConstant - 410: TypePointer UniformConstant 6(float) - 411(fs): 410(ptr) Variable UniformConstant - 458: TypePointer Function 13(int) - 460: 13(int) Constant 3 - 462: TypeVector 6(float) 4 - 463: TypePointer Function 462(fvec4) - 465: 6(float) Constant 1080452710 - 471(PS_OUTPUT): TypeStruct 462(fvec4) - 472: TypePointer Function 471(PS_OUTPUT) - 476: TypePointer Output 462(fvec4) - 477(Color): 476(ptr) Variable Output + 106($Global): TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(fvec3) 13(int) 20(int) 6(float) 20(int) 34(float) + 107: TypePointer Uniform 106($Global) + 108: 107(ptr) Variable Uniform + 109: 13(int) Constant 0 + 110: TypePointer Uniform 14(ivec3) + 119: 13(int) Constant 3 + 120: TypePointer Uniform 21(ivec3) + 129: 13(int) Constant 1 + 132: 20(int) Constant 0 + 133: 21(ivec3) ConstantComposite 132 132 132 + 135: 6(float) Constant 0 + 136: 6(float) Constant 1065353216 + 137: 7(fvec3) ConstantComposite 135 135 135 + 138: 7(fvec3) ConstantComposite 136 136 136 + 146: 13(int) Constant 4 + 147: TypePointer Uniform 35(fvec3) + 167: 14(ivec3) ConstantComposite 109 109 109 + 168: 14(ivec3) ConstantComposite 129 129 129 + 176: 13(int) Constant 2 + 177: TypePointer Uniform 7(fvec3) + 213: 20(int) Constant 1 + 214: 21(ivec3) ConstantComposite 213 213 213 + 256: 34(float) Constant 0 0 + 257: 35(fvec3) ConstantComposite 256 256 256 + 283: 34(float) Constant 0 1072693248 + 284: 35(fvec3) ConstantComposite 283 283 283 + 468: 13(int) Constant 5 + 469: TypePointer Uniform 13(int) + 475: 13(int) Constant 6 + 476: TypePointer Uniform 20(int) + 483: 13(int) Constant 8 + 489: 13(int) Constant 9 + 490: TypePointer Uniform 34(float) + 509: 13(int) Constant 7 + 510: TypePointer Uniform 6(float) + 569: TypePointer Function 13(int) + 572: TypeVector 6(float) 4 + 573: TypePointer Function 572(fvec4) + 575: 6(float) Constant 1080452710 + 581(PS_OUTPUT): TypeStruct 572(fvec4) + 582: TypePointer Function 581(PS_OUTPUT) + 586: TypePointer Output 572(fvec4) + 587(Color): 586(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 252(r00): 8(ptr) Variable Function - 255(r01): 8(ptr) Variable Function - 258(r02): 8(ptr) Variable Function - 261(r03): 8(ptr) Variable Function - 264(r10): 15(ptr) Variable Function - 267(r11): 15(ptr) Variable Function - 270(r12): 15(ptr) Variable Function - 273(r13): 15(ptr) Variable Function - 276(r20): 22(ptr) Variable Function - 279(r21): 22(ptr) Variable Function - 282(r22): 22(ptr) Variable Function - 285(r23): 22(ptr) Variable Function - 288(r30): 29(ptr) Variable Function - 291(r31): 29(ptr) Variable Function - 294(r32): 29(ptr) Variable Function - 297(r33): 29(ptr) Variable Function - 300(r40): 36(ptr) Variable Function - 303(r41): 36(ptr) Variable Function - 306(r42): 36(ptr) Variable Function - 309(r43): 36(ptr) Variable Function - 459(c1): 458(ptr) Variable Function - 461(c2): 458(ptr) Variable Function - 464(outval): 463(ptr) Variable Function - 473(psout): 472(ptr) Variable Function - 253: 14(ivec3) Load 107(i3) - 254: 7(fvec3) ConvertSToF 253 - Store 252(r00) 254 - 256: 28(bvec3) Load 123(b3) - 257: 7(fvec3) Select 256 128 127 - Store 255(r01) 257 - 259: 21(ivec3) Load 115(u3) - 260: 7(fvec3) ConvertUToF 259 - Store 258(r02) 260 - 262: 35(fvec3) Load 135(d3) - 263: 7(fvec3) FConvert 262 - Store 261(r03) 263 - 265: 28(bvec3) Load 123(b3) - 266: 14(ivec3) Select 265 152 151 - Store 264(r10) 266 - 268: 21(ivec3) Load 115(u3) - 269: 14(ivec3) Bitcast 268 - Store 267(r11) 269 - 271: 7(fvec3) Load 159(f3) - 272: 14(ivec3) ConvertFToS 271 - Store 270(r12) 272 - 274: 35(fvec3) Load 135(d3) - 275: 14(ivec3) ConvertFToS 274 - Store 273(r13) 275 - 277: 28(bvec3) Load 123(b3) - 278: 21(ivec3) Select 277 188 187 - Store 276(r20) 278 - 280: 14(ivec3) Load 107(i3) - 281: 21(ivec3) Bitcast 280 - Store 279(r21) 281 - 283: 7(fvec3) Load 159(f3) - 284: 21(ivec3) ConvertFToU 283 - Store 282(r22) 284 - 286: 35(fvec3) Load 135(d3) - 287: 21(ivec3) ConvertFToU 286 - Store 285(r23) 287 - 289: 14(ivec3) Load 107(i3) - 290: 28(bvec3) INotEqual 289 187 - Store 288(r30) 290 - 292: 21(ivec3) Load 115(u3) - 293: 28(bvec3) INotEqual 292 187 - Store 291(r31) 293 - 295: 7(fvec3) Load 159(f3) - 296: 28(bvec3) FOrdNotEqual 295 127 - Store 294(r32) 296 - 298: 35(fvec3) Load 135(d3) - 299: 28(bvec3) FOrdNotEqual 298 220 - Store 297(r33) 299 - 301: 14(ivec3) Load 107(i3) - 302: 35(fvec3) ConvertSToF 301 - Store 300(r40) 302 - 304: 21(ivec3) Load 115(u3) - 305: 35(fvec3) ConvertUToF 304 - Store 303(r41) 305 - 307: 7(fvec3) Load 159(f3) - 308: 35(fvec3) FConvert 307 - Store 306(r42) 308 - 310: 28(bvec3) Load 123(b3) - 311: 35(fvec3) Select 310 240 220 - Store 309(r43) 311 - 312: 14(ivec3) Load 107(i3) - 313: 7(fvec3) ConvertSToF 312 - 314: 7(fvec3) Load 252(r00) - 315: 7(fvec3) FMul 314 313 - Store 252(r00) 315 - 316: 28(bvec3) Load 123(b3) - 317: 7(fvec3) Select 316 128 127 - 318: 7(fvec3) Load 255(r01) - 319: 7(fvec3) FMul 318 317 - Store 255(r01) 319 - 320: 21(ivec3) Load 115(u3) - 321: 7(fvec3) ConvertUToF 320 - 322: 7(fvec3) Load 258(r02) - 323: 7(fvec3) FMul 322 321 - Store 258(r02) 323 - 324: 35(fvec3) Load 135(d3) - 325: 7(fvec3) FConvert 324 - 326: 7(fvec3) Load 261(r03) - 327: 7(fvec3) FMul 326 325 - Store 261(r03) 327 - 328: 28(bvec3) Load 123(b3) - 329: 14(ivec3) Select 328 152 151 - 330: 14(ivec3) Load 264(r10) - 331: 14(ivec3) IMul 330 329 - Store 264(r10) 331 - 332: 21(ivec3) Load 115(u3) - 333: 14(ivec3) Bitcast 332 - 334: 14(ivec3) Load 267(r11) - 335: 14(ivec3) IMul 334 333 - Store 267(r11) 335 - 336: 7(fvec3) Load 159(f3) - 337: 14(ivec3) ConvertFToS 336 - 338: 14(ivec3) Load 270(r12) - 339: 14(ivec3) IMul 338 337 - Store 270(r12) 339 - 340: 35(fvec3) Load 135(d3) - 341: 14(ivec3) ConvertFToS 340 - 342: 14(ivec3) Load 273(r13) - 343: 14(ivec3) IMul 342 341 - Store 273(r13) 343 - 344: 28(bvec3) Load 123(b3) - 345: 21(ivec3) Select 344 188 187 - 346: 21(ivec3) Load 276(r20) - 347: 21(ivec3) IMul 346 345 - Store 276(r20) 347 - 348: 14(ivec3) Load 107(i3) - 349: 21(ivec3) Bitcast 348 - 350: 21(ivec3) Load 279(r21) - 351: 21(ivec3) IMul 350 349 - Store 279(r21) 351 - 352: 7(fvec3) Load 159(f3) - 353: 21(ivec3) ConvertFToU 352 - 354: 21(ivec3) Load 282(r22) - 355: 21(ivec3) IMul 354 353 - Store 282(r22) 355 - 356: 35(fvec3) Load 135(d3) - 357: 21(ivec3) ConvertFToU 356 - 358: 21(ivec3) Load 285(r23) - 359: 21(ivec3) IMul 358 357 - Store 285(r23) 359 - 360: 14(ivec3) Load 107(i3) - 361: 35(fvec3) ConvertSToF 360 - 362: 35(fvec3) Load 300(r40) - 363: 35(fvec3) FMul 362 361 - Store 300(r40) 363 - 364: 21(ivec3) Load 115(u3) - 365: 35(fvec3) ConvertUToF 364 - 366: 35(fvec3) Load 303(r41) - 367: 35(fvec3) FMul 366 365 - Store 303(r41) 367 - 368: 7(fvec3) Load 159(f3) - 369: 35(fvec3) FConvert 368 - 370: 35(fvec3) Load 306(r42) - 371: 35(fvec3) FMul 370 369 - Store 306(r42) 371 - 372: 28(bvec3) Load 123(b3) - 373: 35(fvec3) Select 372 240 220 - 374: 35(fvec3) Load 309(r43) - 375: 35(fvec3) FMul 374 373 - Store 309(r43) 375 - 378: 13(int) Load 377(is) - 379: 6(float) ConvertSToF 378 - 380: 7(fvec3) Load 252(r00) - 381: 7(fvec3) VectorTimesScalar 380 379 - Store 252(r00) 381 - 384: 27(bool) Load 383(bs) - 385: 6(float) Select 384 126 125 - 386: 7(fvec3) Load 255(r01) - 387: 7(fvec3) VectorTimesScalar 386 385 - Store 255(r01) 387 - 390: 20(int) Load 389(us) - 391: 6(float) ConvertUToF 390 - 392: 7(fvec3) Load 258(r02) - 393: 7(fvec3) VectorTimesScalar 392 391 - Store 258(r02) 393 - 396: 34(float) Load 395(ds) - 397: 6(float) FConvert 396 - 398: 7(fvec3) Load 261(r03) - 399: 7(fvec3) VectorTimesScalar 398 397 - Store 261(r03) 399 - 400: 27(bool) Load 383(bs) - 401: 13(int) Select 400 150 149 - 402: 14(ivec3) Load 264(r10) - 403: 14(ivec3) CompositeConstruct 401 401 401 - 404: 14(ivec3) IMul 402 403 - Store 264(r10) 404 - 405: 20(int) Load 389(us) - 406: 13(int) Bitcast 405 - 407: 14(ivec3) Load 267(r11) - 408: 14(ivec3) CompositeConstruct 406 406 406 - 409: 14(ivec3) IMul 407 408 - Store 267(r11) 409 - 412: 6(float) Load 411(fs) - 413: 13(int) ConvertFToS 412 - 414: 14(ivec3) Load 270(r12) - 415: 14(ivec3) CompositeConstruct 413 413 413 - 416: 14(ivec3) IMul 414 415 - Store 270(r12) 416 - 417: 34(float) Load 395(ds) - 418: 13(int) ConvertFToS 417 - 419: 14(ivec3) Load 273(r13) - 420: 14(ivec3) CompositeConstruct 418 418 418 - 421: 14(ivec3) IMul 419 420 - Store 273(r13) 421 - 422: 27(bool) Load 383(bs) - 423: 20(int) Select 422 186 185 - 424: 21(ivec3) Load 276(r20) - 425: 21(ivec3) CompositeConstruct 423 423 423 - 426: 21(ivec3) IMul 424 425 - Store 276(r20) 426 - 427: 13(int) Load 377(is) - 428: 20(int) Bitcast 427 - 429: 21(ivec3) Load 279(r21) - 430: 21(ivec3) CompositeConstruct 428 428 428 - 431: 21(ivec3) IMul 429 430 - Store 279(r21) 431 - 432: 6(float) Load 411(fs) - 433: 20(int) ConvertFToU 432 - 434: 21(ivec3) Load 282(r22) - 435: 21(ivec3) CompositeConstruct 433 433 433 - 436: 21(ivec3) IMul 434 435 - Store 282(r22) 436 - 437: 34(float) Load 395(ds) - 438: 20(int) ConvertFToU 437 - 439: 21(ivec3) Load 285(r23) - 440: 21(ivec3) CompositeConstruct 438 438 438 - 441: 21(ivec3) IMul 439 440 - Store 285(r23) 441 - 442: 13(int) Load 377(is) - 443: 34(float) ConvertSToF 442 - 444: 35(fvec3) Load 300(r40) - 445: 35(fvec3) VectorTimesScalar 444 443 - Store 300(r40) 445 - 446: 20(int) Load 389(us) - 447: 34(float) ConvertUToF 446 - 448: 35(fvec3) Load 303(r41) - 449: 35(fvec3) VectorTimesScalar 448 447 - Store 303(r41) 449 - 450: 6(float) Load 411(fs) - 451: 34(float) FConvert 450 - 452: 35(fvec3) Load 306(r42) - 453: 35(fvec3) VectorTimesScalar 452 451 - Store 306(r42) 453 - 454: 27(bool) Load 383(bs) - 455: 34(float) Select 454 239 219 - 456: 35(fvec3) Load 309(r43) - 457: 35(fvec3) VectorTimesScalar 456 455 - Store 309(r43) 457 - Store 459(c1) 460 - Store 461(c2) 460 - 466: 13(int) Load 459(c1) - 467: 6(float) ConvertSToF 466 - 468: 13(int) Load 461(c2) - 469: 6(float) ConvertSToF 468 - 470: 462(fvec4) CompositeConstruct 465 465 467 469 - Store 464(outval) 470 - 474: 462(fvec4) Load 464(outval) - 475: 463(ptr) AccessChain 473(psout) 149 - Store 475 474 - 478: 463(ptr) AccessChain 473(psout) 149 - 479: 462(fvec4) Load 478 - Store 477(Color) 479 + 300(r00): 8(ptr) Variable Function + 304(r01): 8(ptr) Variable Function + 309(r02): 8(ptr) Variable Function + 313(r03): 8(ptr) Variable Function + 317(r10): 15(ptr) Variable Function + 322(r11): 15(ptr) Variable Function + 326(r12): 15(ptr) Variable Function + 330(r13): 15(ptr) Variable Function + 334(r20): 22(ptr) Variable Function + 339(r21): 22(ptr) Variable Function + 343(r22): 22(ptr) Variable Function + 347(r23): 22(ptr) Variable Function + 351(r30): 29(ptr) Variable Function + 355(r31): 29(ptr) Variable Function + 359(r32): 29(ptr) Variable Function + 363(r33): 29(ptr) Variable Function + 367(r40): 36(ptr) Variable Function + 371(r41): 36(ptr) Variable Function + 375(r42): 36(ptr) Variable Function + 379(r43): 36(ptr) Variable Function + 570(c1): 569(ptr) Variable Function + 571(c2): 569(ptr) Variable Function + 574(outval): 573(ptr) Variable Function + 583(psout): 582(ptr) Variable Function + 301: 110(ptr) AccessChain 108 109 + 302: 14(ivec3) Load 301 + 303: 7(fvec3) ConvertSToF 302 + Store 300(r00) 303 + 305: 120(ptr) AccessChain 108 129 + 306: 21(ivec3) Load 305 + 307: 28(bvec3) INotEqual 306 133 + 308: 7(fvec3) Select 307 138 137 + Store 304(r01) 308 + 310: 120(ptr) AccessChain 108 119 + 311: 21(ivec3) Load 310 + 312: 7(fvec3) ConvertUToF 311 + Store 309(r02) 312 + 314: 147(ptr) AccessChain 108 146 + 315: 35(fvec3) Load 314 + 316: 7(fvec3) FConvert 315 + Store 313(r03) 316 + 318: 120(ptr) AccessChain 108 129 + 319: 21(ivec3) Load 318 + 320: 28(bvec3) INotEqual 319 133 + 321: 14(ivec3) Select 320 168 167 + Store 317(r10) 321 + 323: 120(ptr) AccessChain 108 119 + 324: 21(ivec3) Load 323 + 325: 14(ivec3) Bitcast 324 + Store 322(r11) 325 + 327: 177(ptr) AccessChain 108 176 + 328: 7(fvec3) Load 327 + 329: 14(ivec3) ConvertFToS 328 + Store 326(r12) 329 + 331: 147(ptr) AccessChain 108 146 + 332: 35(fvec3) Load 331 + 333: 14(ivec3) ConvertFToS 332 + Store 330(r13) 333 + 335: 120(ptr) AccessChain 108 129 + 336: 21(ivec3) Load 335 + 337: 28(bvec3) INotEqual 336 133 + 338: 21(ivec3) Select 337 214 133 + Store 334(r20) 338 + 340: 110(ptr) AccessChain 108 109 + 341: 14(ivec3) Load 340 + 342: 21(ivec3) Bitcast 341 + Store 339(r21) 342 + 344: 177(ptr) AccessChain 108 176 + 345: 7(fvec3) Load 344 + 346: 21(ivec3) ConvertFToU 345 + Store 343(r22) 346 + 348: 147(ptr) AccessChain 108 146 + 349: 35(fvec3) Load 348 + 350: 21(ivec3) ConvertFToU 349 + Store 347(r23) 350 + 352: 110(ptr) AccessChain 108 109 + 353: 14(ivec3) Load 352 + 354: 28(bvec3) INotEqual 353 133 + Store 351(r30) 354 + 356: 120(ptr) AccessChain 108 119 + 357: 21(ivec3) Load 356 + 358: 28(bvec3) INotEqual 357 133 + Store 355(r31) 358 + 360: 177(ptr) AccessChain 108 176 + 361: 7(fvec3) Load 360 + 362: 28(bvec3) FOrdNotEqual 361 137 + Store 359(r32) 362 + 364: 147(ptr) AccessChain 108 146 + 365: 35(fvec3) Load 364 + 366: 28(bvec3) FOrdNotEqual 365 257 + Store 363(r33) 366 + 368: 110(ptr) AccessChain 108 109 + 369: 14(ivec3) Load 368 + 370: 35(fvec3) ConvertSToF 369 + Store 367(r40) 370 + 372: 120(ptr) AccessChain 108 119 + 373: 21(ivec3) Load 372 + 374: 35(fvec3) ConvertUToF 373 + Store 371(r41) 374 + 376: 177(ptr) AccessChain 108 176 + 377: 7(fvec3) Load 376 + 378: 35(fvec3) FConvert 377 + Store 375(r42) 378 + 380: 120(ptr) AccessChain 108 129 + 381: 21(ivec3) Load 380 + 382: 28(bvec3) INotEqual 381 133 + 383: 35(fvec3) Select 382 284 257 + Store 379(r43) 383 + 384: 110(ptr) AccessChain 108 109 + 385: 14(ivec3) Load 384 + 386: 7(fvec3) ConvertSToF 385 + 387: 7(fvec3) Load 300(r00) + 388: 7(fvec3) FMul 387 386 + Store 300(r00) 388 + 389: 120(ptr) AccessChain 108 129 + 390: 21(ivec3) Load 389 + 391: 28(bvec3) INotEqual 390 133 + 392: 7(fvec3) Select 391 138 137 + 393: 7(fvec3) Load 304(r01) + 394: 7(fvec3) FMul 393 392 + Store 304(r01) 394 + 395: 120(ptr) AccessChain 108 119 + 396: 21(ivec3) Load 395 + 397: 7(fvec3) ConvertUToF 396 + 398: 7(fvec3) Load 309(r02) + 399: 7(fvec3) FMul 398 397 + Store 309(r02) 399 + 400: 147(ptr) AccessChain 108 146 + 401: 35(fvec3) Load 400 + 402: 7(fvec3) FConvert 401 + 403: 7(fvec3) Load 313(r03) + 404: 7(fvec3) FMul 403 402 + Store 313(r03) 404 + 405: 120(ptr) AccessChain 108 129 + 406: 21(ivec3) Load 405 + 407: 28(bvec3) INotEqual 406 133 + 408: 14(ivec3) Select 407 168 167 + 409: 14(ivec3) Load 317(r10) + 410: 14(ivec3) IMul 409 408 + Store 317(r10) 410 + 411: 120(ptr) AccessChain 108 119 + 412: 21(ivec3) Load 411 + 413: 14(ivec3) Bitcast 412 + 414: 14(ivec3) Load 322(r11) + 415: 14(ivec3) IMul 414 413 + Store 322(r11) 415 + 416: 177(ptr) AccessChain 108 176 + 417: 7(fvec3) Load 416 + 418: 14(ivec3) ConvertFToS 417 + 419: 14(ivec3) Load 326(r12) + 420: 14(ivec3) IMul 419 418 + Store 326(r12) 420 + 421: 147(ptr) AccessChain 108 146 + 422: 35(fvec3) Load 421 + 423: 14(ivec3) ConvertFToS 422 + 424: 14(ivec3) Load 330(r13) + 425: 14(ivec3) IMul 424 423 + Store 330(r13) 425 + 426: 120(ptr) AccessChain 108 129 + 427: 21(ivec3) Load 426 + 428: 28(bvec3) INotEqual 427 133 + 429: 21(ivec3) Select 428 214 133 + 430: 21(ivec3) Load 334(r20) + 431: 21(ivec3) IMul 430 429 + Store 334(r20) 431 + 432: 110(ptr) AccessChain 108 109 + 433: 14(ivec3) Load 432 + 434: 21(ivec3) Bitcast 433 + 435: 21(ivec3) Load 339(r21) + 436: 21(ivec3) IMul 435 434 + Store 339(r21) 436 + 437: 177(ptr) AccessChain 108 176 + 438: 7(fvec3) Load 437 + 439: 21(ivec3) ConvertFToU 438 + 440: 21(ivec3) Load 343(r22) + 441: 21(ivec3) IMul 440 439 + Store 343(r22) 441 + 442: 147(ptr) AccessChain 108 146 + 443: 35(fvec3) Load 442 + 444: 21(ivec3) ConvertFToU 443 + 445: 21(ivec3) Load 347(r23) + 446: 21(ivec3) IMul 445 444 + Store 347(r23) 446 + 447: 110(ptr) AccessChain 108 109 + 448: 14(ivec3) Load 447 + 449: 35(fvec3) ConvertSToF 448 + 450: 35(fvec3) Load 367(r40) + 451: 35(fvec3) FMul 450 449 + Store 367(r40) 451 + 452: 120(ptr) AccessChain 108 119 + 453: 21(ivec3) Load 452 + 454: 35(fvec3) ConvertUToF 453 + 455: 35(fvec3) Load 371(r41) + 456: 35(fvec3) FMul 455 454 + Store 371(r41) 456 + 457: 177(ptr) AccessChain 108 176 + 458: 7(fvec3) Load 457 + 459: 35(fvec3) FConvert 458 + 460: 35(fvec3) Load 375(r42) + 461: 35(fvec3) FMul 460 459 + Store 375(r42) 461 + 462: 120(ptr) AccessChain 108 129 + 463: 21(ivec3) Load 462 + 464: 28(bvec3) INotEqual 463 133 + 465: 35(fvec3) Select 464 284 257 + 466: 35(fvec3) Load 379(r43) + 467: 35(fvec3) FMul 466 465 + Store 379(r43) 467 + 470: 469(ptr) AccessChain 108 468 + 471: 13(int) Load 470 + 472: 6(float) ConvertSToF 471 + 473: 7(fvec3) Load 300(r00) + 474: 7(fvec3) VectorTimesScalar 473 472 + Store 300(r00) 474 + 477: 476(ptr) AccessChain 108 475 + 478: 20(int) Load 477 + 479: 27(bool) INotEqual 478 132 + 480: 6(float) Select 479 136 135 + 481: 7(fvec3) Load 304(r01) + 482: 7(fvec3) VectorTimesScalar 481 480 + Store 304(r01) 482 + 484: 476(ptr) AccessChain 108 483 + 485: 20(int) Load 484 + 486: 6(float) ConvertUToF 485 + 487: 7(fvec3) Load 309(r02) + 488: 7(fvec3) VectorTimesScalar 487 486 + Store 309(r02) 488 + 491: 490(ptr) AccessChain 108 489 + 492: 34(float) Load 491 + 493: 6(float) FConvert 492 + 494: 7(fvec3) Load 313(r03) + 495: 7(fvec3) VectorTimesScalar 494 493 + Store 313(r03) 495 + 496: 476(ptr) AccessChain 108 475 + 497: 20(int) Load 496 + 498: 27(bool) INotEqual 497 132 + 499: 13(int) Select 498 129 109 + 500: 14(ivec3) Load 317(r10) + 501: 14(ivec3) CompositeConstruct 499 499 499 + 502: 14(ivec3) IMul 500 501 + Store 317(r10) 502 + 503: 476(ptr) AccessChain 108 483 + 504: 20(int) Load 503 + 505: 13(int) Bitcast 504 + 506: 14(ivec3) Load 322(r11) + 507: 14(ivec3) CompositeConstruct 505 505 505 + 508: 14(ivec3) IMul 506 507 + Store 322(r11) 508 + 511: 510(ptr) AccessChain 108 509 + 512: 6(float) Load 511 + 513: 13(int) ConvertFToS 512 + 514: 14(ivec3) Load 326(r12) + 515: 14(ivec3) CompositeConstruct 513 513 513 + 516: 14(ivec3) IMul 514 515 + Store 326(r12) 516 + 517: 490(ptr) AccessChain 108 489 + 518: 34(float) Load 517 + 519: 13(int) ConvertFToS 518 + 520: 14(ivec3) Load 330(r13) + 521: 14(ivec3) CompositeConstruct 519 519 519 + 522: 14(ivec3) IMul 520 521 + Store 330(r13) 522 + 523: 476(ptr) AccessChain 108 475 + 524: 20(int) Load 523 + 525: 27(bool) INotEqual 524 132 + 526: 20(int) Select 525 213 132 + 527: 21(ivec3) Load 334(r20) + 528: 21(ivec3) CompositeConstruct 526 526 526 + 529: 21(ivec3) IMul 527 528 + Store 334(r20) 529 + 530: 469(ptr) AccessChain 108 468 + 531: 13(int) Load 530 + 532: 20(int) Bitcast 531 + 533: 21(ivec3) Load 339(r21) + 534: 21(ivec3) CompositeConstruct 532 532 532 + 535: 21(ivec3) IMul 533 534 + Store 339(r21) 535 + 536: 510(ptr) AccessChain 108 509 + 537: 6(float) Load 536 + 538: 20(int) ConvertFToU 537 + 539: 21(ivec3) Load 343(r22) + 540: 21(ivec3) CompositeConstruct 538 538 538 + 541: 21(ivec3) IMul 539 540 + Store 343(r22) 541 + 542: 490(ptr) AccessChain 108 489 + 543: 34(float) Load 542 + 544: 20(int) ConvertFToU 543 + 545: 21(ivec3) Load 347(r23) + 546: 21(ivec3) CompositeConstruct 544 544 544 + 547: 21(ivec3) IMul 545 546 + Store 347(r23) 547 + 548: 469(ptr) AccessChain 108 468 + 549: 13(int) Load 548 + 550: 34(float) ConvertSToF 549 + 551: 35(fvec3) Load 367(r40) + 552: 35(fvec3) VectorTimesScalar 551 550 + Store 367(r40) 552 + 553: 476(ptr) AccessChain 108 483 + 554: 20(int) Load 553 + 555: 34(float) ConvertUToF 554 + 556: 35(fvec3) Load 371(r41) + 557: 35(fvec3) VectorTimesScalar 556 555 + Store 371(r41) 557 + 558: 510(ptr) AccessChain 108 509 + 559: 6(float) Load 558 + 560: 34(float) FConvert 559 + 561: 35(fvec3) Load 375(r42) + 562: 35(fvec3) VectorTimesScalar 561 560 + Store 375(r42) 562 + 563: 476(ptr) AccessChain 108 475 + 564: 20(int) Load 563 + 565: 27(bool) INotEqual 564 132 + 566: 34(float) Select 565 283 256 + 567: 35(fvec3) Load 379(r43) + 568: 35(fvec3) VectorTimesScalar 567 566 + Store 379(r43) 568 + Store 570(c1) 119 + Store 571(c2) 119 + 576: 13(int) Load 570(c1) + 577: 6(float) ConvertSToF 576 + 578: 13(int) Load 571(c2) + 579: 6(float) ConvertSToF 578 + 580: 572(fvec4) CompositeConstruct 575 575 577 579 + Store 574(outval) 580 + 584: 572(fvec4) Load 574(outval) + 585: 573(ptr) AccessChain 583(psout) 109 + Store 585 584 + 588: 573(ptr) AccessChain 583(psout) 109 + 589: 572(fvec4) Load 588 + Store 587(Color) 589 Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 @@ -1510,200 +2120,248 @@ gl_FragCoord origin is upper left 43(Fn_R_F3I(vf3;): 7(fvec3) Function None 41 42(p): 8(ptr) FunctionParameter 44: Label - 108: 14(ivec3) Load 107(i3) - 109: 7(fvec3) ConvertSToF 108 - Store 42(p) 109 - 110: 14(ivec3) Load 107(i3) - 111: 7(fvec3) ConvertSToF 110 - ReturnValue 111 + 111: 110(ptr) AccessChain 108 109 + 112: 14(ivec3) Load 111 + 113: 7(fvec3) ConvertSToF 112 + Store 42(p) 113 + 114: 110(ptr) AccessChain 108 109 + 115: 14(ivec3) Load 114 + 116: 7(fvec3) ConvertSToF 115 + ReturnValue 116 FunctionEnd 46(Fn_R_F3U(vf3;): 7(fvec3) Function None 41 45(p): 8(ptr) FunctionParameter 47: Label - 116: 21(ivec3) Load 115(u3) - 117: 7(fvec3) ConvertUToF 116 - Store 45(p) 117 - 118: 21(ivec3) Load 115(u3) - 119: 7(fvec3) ConvertUToF 118 - ReturnValue 119 + 121: 120(ptr) AccessChain 108 119 + 122: 21(ivec3) Load 121 + 123: 7(fvec3) ConvertUToF 122 + Store 45(p) 123 + 124: 120(ptr) AccessChain 108 119 + 125: 21(ivec3) Load 124 + 126: 7(fvec3) ConvertUToF 125 + ReturnValue 126 FunctionEnd 49(Fn_R_F3B(vf3;): 7(fvec3) Function None 41 48(p): 8(ptr) FunctionParameter 50: Label - 124: 28(bvec3) Load 123(b3) - 129: 7(fvec3) Select 124 128 127 - Store 48(p) 129 - 130: 28(bvec3) Load 123(b3) - 131: 7(fvec3) Select 130 128 127 - ReturnValue 131 + 130: 120(ptr) AccessChain 108 129 + 131: 21(ivec3) Load 130 + 134: 28(bvec3) INotEqual 131 133 + 139: 7(fvec3) Select 134 138 137 + Store 48(p) 139 + 140: 120(ptr) AccessChain 108 129 + 141: 21(ivec3) Load 140 + 142: 28(bvec3) INotEqual 141 133 + 143: 7(fvec3) Select 142 138 137 + ReturnValue 143 FunctionEnd 52(Fn_R_F3D(vf3;): 7(fvec3) Function None 41 51(p): 8(ptr) FunctionParameter 53: Label - 136: 35(fvec3) Load 135(d3) - 137: 7(fvec3) FConvert 136 - Store 51(p) 137 - 138: 35(fvec3) Load 135(d3) - 139: 7(fvec3) FConvert 138 - ReturnValue 139 + 148: 147(ptr) AccessChain 108 146 + 149: 35(fvec3) Load 148 + 150: 7(fvec3) FConvert 149 + Store 51(p) 150 + 151: 147(ptr) AccessChain 108 146 + 152: 35(fvec3) Load 151 + 153: 7(fvec3) FConvert 152 + ReturnValue 153 FunctionEnd 56(Fn_R_I3U(vi3;): 14(ivec3) Function None 54 55(p): 15(ptr) FunctionParameter 57: Label - 142: 21(ivec3) Load 115(u3) - 143: 14(ivec3) Bitcast 142 - Store 55(p) 143 - 144: 21(ivec3) Load 115(u3) - 145: 14(ivec3) Bitcast 144 - ReturnValue 145 + 156: 120(ptr) AccessChain 108 119 + 157: 21(ivec3) Load 156 + 158: 14(ivec3) Bitcast 157 + Store 55(p) 158 + 159: 120(ptr) AccessChain 108 119 + 160: 21(ivec3) Load 159 + 161: 14(ivec3) Bitcast 160 + ReturnValue 161 FunctionEnd 59(Fn_R_I3B(vi3;): 14(ivec3) Function None 54 58(p): 15(ptr) FunctionParameter 60: Label - 148: 28(bvec3) Load 123(b3) - 153: 14(ivec3) Select 148 152 151 - Store 58(p) 153 - 154: 28(bvec3) Load 123(b3) - 155: 14(ivec3) Select 154 152 151 - ReturnValue 155 + 164: 120(ptr) AccessChain 108 129 + 165: 21(ivec3) Load 164 + 166: 28(bvec3) INotEqual 165 133 + 169: 14(ivec3) Select 166 168 167 + Store 58(p) 169 + 170: 120(ptr) AccessChain 108 129 + 171: 21(ivec3) Load 170 + 172: 28(bvec3) INotEqual 171 133 + 173: 14(ivec3) Select 172 168 167 + ReturnValue 173 FunctionEnd 62(Fn_R_I3F(vi3;): 14(ivec3) Function None 54 61(p): 15(ptr) FunctionParameter 63: Label - 160: 7(fvec3) Load 159(f3) - 161: 14(ivec3) ConvertFToS 160 - Store 61(p) 161 - 162: 7(fvec3) Load 159(f3) - 163: 14(ivec3) ConvertFToS 162 - ReturnValue 163 + 178: 177(ptr) AccessChain 108 176 + 179: 7(fvec3) Load 178 + 180: 14(ivec3) ConvertFToS 179 + Store 61(p) 180 + 181: 177(ptr) AccessChain 108 176 + 182: 7(fvec3) Load 181 + 183: 14(ivec3) ConvertFToS 182 + ReturnValue 183 FunctionEnd 65(Fn_R_I3D(vi3;): 14(ivec3) Function None 54 64(p): 15(ptr) FunctionParameter 66: Label - 166: 35(fvec3) Load 135(d3) - 167: 14(ivec3) ConvertFToS 166 - Store 64(p) 167 - 168: 35(fvec3) Load 135(d3) - 169: 14(ivec3) ConvertFToS 168 - ReturnValue 169 + 186: 147(ptr) AccessChain 108 146 + 187: 35(fvec3) Load 186 + 188: 14(ivec3) ConvertFToS 187 + Store 64(p) 188 + 189: 147(ptr) AccessChain 108 146 + 190: 35(fvec3) Load 189 + 191: 14(ivec3) ConvertFToS 190 + ReturnValue 191 FunctionEnd 69(Fn_R_U3I(vu3;): 21(ivec3) Function None 67 68(p): 22(ptr) FunctionParameter 70: Label - 172: 14(ivec3) Load 107(i3) - 173: 21(ivec3) Bitcast 172 - Store 68(p) 173 - 174: 14(ivec3) Load 107(i3) - 175: 21(ivec3) Bitcast 174 - ReturnValue 175 + 194: 110(ptr) AccessChain 108 109 + 195: 14(ivec3) Load 194 + 196: 21(ivec3) Bitcast 195 + Store 68(p) 196 + 197: 110(ptr) AccessChain 108 109 + 198: 14(ivec3) Load 197 + 199: 21(ivec3) Bitcast 198 + ReturnValue 199 FunctionEnd 72(Fn_R_U3F(vu3;): 21(ivec3) Function None 67 71(p): 22(ptr) FunctionParameter 73: Label - 178: 7(fvec3) Load 159(f3) - 179: 21(ivec3) ConvertFToU 178 - Store 71(p) 179 - 180: 7(fvec3) Load 159(f3) - 181: 21(ivec3) ConvertFToU 180 - ReturnValue 181 + 202: 177(ptr) AccessChain 108 176 + 203: 7(fvec3) Load 202 + 204: 21(ivec3) ConvertFToU 203 + Store 71(p) 204 + 205: 177(ptr) AccessChain 108 176 + 206: 7(fvec3) Load 205 + 207: 21(ivec3) ConvertFToU 206 + ReturnValue 207 FunctionEnd 75(Fn_R_U3B(vu3;): 21(ivec3) Function None 67 74(p): 22(ptr) FunctionParameter 76: Label - 184: 28(bvec3) Load 123(b3) - 189: 21(ivec3) Select 184 188 187 - Store 74(p) 189 - 190: 28(bvec3) Load 123(b3) - 191: 21(ivec3) Select 190 188 187 - ReturnValue 191 + 210: 120(ptr) AccessChain 108 129 + 211: 21(ivec3) Load 210 + 212: 28(bvec3) INotEqual 211 133 + 215: 21(ivec3) Select 212 214 133 + Store 74(p) 215 + 216: 120(ptr) AccessChain 108 129 + 217: 21(ivec3) Load 216 + 218: 28(bvec3) INotEqual 217 133 + 219: 21(ivec3) Select 218 214 133 + ReturnValue 219 FunctionEnd 78(Fn_R_U3D(vu3;): 21(ivec3) Function None 67 77(p): 22(ptr) FunctionParameter 79: Label - 194: 35(fvec3) Load 135(d3) - 195: 21(ivec3) ConvertFToU 194 - Store 77(p) 195 - 196: 35(fvec3) Load 135(d3) - 197: 21(ivec3) ConvertFToU 196 - ReturnValue 197 + 222: 147(ptr) AccessChain 108 146 + 223: 35(fvec3) Load 222 + 224: 21(ivec3) ConvertFToU 223 + Store 77(p) 224 + 225: 147(ptr) AccessChain 108 146 + 226: 35(fvec3) Load 225 + 227: 21(ivec3) ConvertFToU 226 + ReturnValue 227 FunctionEnd 82(Fn_R_B3I(vb3;): 28(bvec3) Function None 80 81(p): 29(ptr) FunctionParameter 83: Label - 200: 14(ivec3) Load 107(i3) - 201: 28(bvec3) INotEqual 200 187 - Store 81(p) 201 - 202: 14(ivec3) Load 107(i3) - 203: 28(bvec3) INotEqual 202 187 - ReturnValue 203 + 230: 110(ptr) AccessChain 108 109 + 231: 14(ivec3) Load 230 + 232: 28(bvec3) INotEqual 231 133 + Store 81(p) 232 + 233: 110(ptr) AccessChain 108 109 + 234: 14(ivec3) Load 233 + 235: 28(bvec3) INotEqual 234 133 + ReturnValue 235 FunctionEnd 85(Fn_R_B3U(vb3;): 28(bvec3) Function None 80 84(p): 29(ptr) FunctionParameter 86: Label - 206: 21(ivec3) Load 115(u3) - 207: 28(bvec3) INotEqual 206 187 - Store 84(p) 207 - 208: 21(ivec3) Load 115(u3) - 209: 28(bvec3) INotEqual 208 187 - ReturnValue 209 + 238: 120(ptr) AccessChain 108 119 + 239: 21(ivec3) Load 238 + 240: 28(bvec3) INotEqual 239 133 + Store 84(p) 240 + 241: 120(ptr) AccessChain 108 119 + 242: 21(ivec3) Load 241 + 243: 28(bvec3) INotEqual 242 133 + ReturnValue 243 FunctionEnd 88(Fn_R_B3F(vb3;): 28(bvec3) Function None 80 87(p): 29(ptr) FunctionParameter 89: Label - 212: 7(fvec3) Load 159(f3) - 213: 28(bvec3) FOrdNotEqual 212 127 - Store 87(p) 213 - 214: 7(fvec3) Load 159(f3) - 215: 28(bvec3) FOrdNotEqual 214 127 - ReturnValue 215 + 246: 177(ptr) AccessChain 108 176 + 247: 7(fvec3) Load 246 + 248: 28(bvec3) FOrdNotEqual 247 137 + Store 87(p) 248 + 249: 177(ptr) AccessChain 108 176 + 250: 7(fvec3) Load 249 + 251: 28(bvec3) FOrdNotEqual 250 137 + ReturnValue 251 FunctionEnd 91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 90(p): 29(ptr) FunctionParameter 92: Label - 218: 35(fvec3) Load 135(d3) - 221: 28(bvec3) FOrdNotEqual 218 220 - Store 90(p) 221 - 222: 35(fvec3) Load 135(d3) - 223: 28(bvec3) FOrdNotEqual 222 220 - ReturnValue 223 + 254: 147(ptr) AccessChain 108 146 + 255: 35(fvec3) Load 254 + 258: 28(bvec3) FOrdNotEqual 255 257 + Store 90(p) 258 + 259: 147(ptr) AccessChain 108 146 + 260: 35(fvec3) Load 259 + 261: 28(bvec3) FOrdNotEqual 260 257 + ReturnValue 261 FunctionEnd 95(Fn_R_D3I(vd3;): 35(fvec3) Function None 93 94(p): 36(ptr) FunctionParameter 96: Label - 226: 14(ivec3) Load 107(i3) - 227: 35(fvec3) ConvertSToF 226 - Store 94(p) 227 - 228: 14(ivec3) Load 107(i3) - 229: 35(fvec3) ConvertSToF 228 - ReturnValue 229 + 264: 110(ptr) AccessChain 108 109 + 265: 14(ivec3) Load 264 + 266: 35(fvec3) ConvertSToF 265 + Store 94(p) 266 + 267: 110(ptr) AccessChain 108 109 + 268: 14(ivec3) Load 267 + 269: 35(fvec3) ConvertSToF 268 + ReturnValue 269 FunctionEnd 98(Fn_R_D3U(vd3;): 35(fvec3) Function None 93 97(p): 36(ptr) FunctionParameter 99: Label - 232: 21(ivec3) Load 115(u3) - 233: 35(fvec3) ConvertUToF 232 - Store 97(p) 233 - 234: 21(ivec3) Load 115(u3) - 235: 35(fvec3) ConvertUToF 234 - ReturnValue 235 + 272: 120(ptr) AccessChain 108 119 + 273: 21(ivec3) Load 272 + 274: 35(fvec3) ConvertUToF 273 + Store 97(p) 274 + 275: 120(ptr) AccessChain 108 119 + 276: 21(ivec3) Load 275 + 277: 35(fvec3) ConvertUToF 276 + ReturnValue 277 FunctionEnd 101(Fn_R_D3B(vd3;): 35(fvec3) Function None 93 100(p): 36(ptr) FunctionParameter 102: Label - 238: 28(bvec3) Load 123(b3) - 241: 35(fvec3) Select 238 240 220 - Store 100(p) 241 - 242: 28(bvec3) Load 123(b3) - 243: 35(fvec3) Select 242 240 220 - ReturnValue 243 + 280: 120(ptr) AccessChain 108 129 + 281: 21(ivec3) Load 280 + 282: 28(bvec3) INotEqual 281 133 + 285: 35(fvec3) Select 282 284 257 + Store 100(p) 285 + 286: 120(ptr) AccessChain 108 129 + 287: 21(ivec3) Load 286 + 288: 28(bvec3) INotEqual 287 133 + 289: 35(fvec3) Select 288 284 257 + ReturnValue 289 FunctionEnd 104(Fn_R_D3F(vd3;): 35(fvec3) Function None 93 103(p): 36(ptr) FunctionParameter 105: Label - 246: 7(fvec3) Load 159(f3) - 247: 35(fvec3) FConvert 246 - Store 103(p) 247 - 248: 7(fvec3) Load 159(f3) - 249: 35(fvec3) FConvert 248 - ReturnValue 249 + 292: 177(ptr) AccessChain 108 176 + 293: 7(fvec3) Load 292 + 294: 35(fvec3) FConvert 293 + Store 103(p) 294 + 295: 177(ptr) AccessChain 108 176 + 296: 7(fvec3) Load 295 + 297: 35(fvec3) FConvert 296 + ReturnValue 297 FunctionEnd diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out index 466b2a6f..4ed4ddf6 100644 --- a/Test/baseResults/hlsl.reflection.vert.out +++ b/Test/baseResults/hlsl.reflection.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: Uniform reflection: anonMember3: offset 80, type 8b52, size 1, index 0 -s.a: offset -1, type 1404, size 1, index -1 +s.a: offset 0, type 1404, size 1, index 1 scalar: offset 12, type 1404, size 1, index 0 m23: offset 16, type 8b67, size 1, index 0 scalarAfterm23: offset 48, type 1404, size 1, index 0 @@ -20,60 +20,57 @@ memf2: offset 60, type 8b56, size 1, index 0 memf3: offset 64, type 1404, size 1, index 0 memfloat2a: offset 72, type 8b50, size 1, index 0 m22: offset 80, type 8b5a, size 7, index 0 -dm22: offset -1, type 8b5a, size 4, index -1 +dm22: offset 32, type 8b5a, size 4, index 1 foo.n1.a: offset 0, type 1406, size 1, index 0 foo.n2.b: offset 16, type 1406, size 1, index 0 foo.n2.c: offset 20, type 1406, size 1, index 0 foo.n2.d: offset 24, type 1406, size 1, index 0 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepC[1].v3: offset -1, type 8b54, size 1, index -1 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1 +deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1 +deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1 +deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1 +deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1 +deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1 +deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1 +deepC.iv4: offset 1568, type 8b52, size 1, index 1 +deepC.d2.i: offset 1568, type 1404, size 1, index 1 +deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1 +deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1 +deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1 +deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1 +deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1 +deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1 +deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1 +deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1 +deepC.v3: offset 1568, type 8b54, size 1, index 1 +deepD[0].iv4: offset 2480, type 8b52, size 1, index 1 +deepD[0].d2.i: offset 2480, type 1404, size 1, index 1 +deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1 +deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1 +deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1 +deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1 +deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1 +deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1 +deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1 +deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1 +deepD[0].v3: offset 2480, type 8b54, size 1, index 1 +deepD[1].iv4: offset 2480, type 8b52, size 1, index 1 +deepD[1].d2.i: offset 2480, type 1404, size 1, index 1 +deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1 +deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1 +deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1 +deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1 +deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1 +deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1 +deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1 +deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1 +deepD[1].v3: offset 2480, type 8b54, size 1, index 1 foo: offset 0, type 1406, size 1, index 0 anonMember1: offset 0, type 8b51, size 1, index 0 -uf1: offset -1, type 1406, size 1, index -1 +uf1: offset 16, type 1406, size 1, index 1 Uniform block reflection: : offset -1, type ffffffff, size 496, index -1 +$Global: offset -1, type ffffffff, size 3088, index -1 Vertex attribute reflection: attributeFloat: offset 0, type 1406, size 0, index 0 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 54c3553a..701229e0 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -158,7 +158,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index dca7f774..2746f16f 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -273,7 +273,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index b8c7d5cc..48e3d85c 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -179,7 +179,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index b30a4e2d..4d64fa0b 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -134,7 +134,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 66f4629a..236889ba 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index faba4bef..408c5ffa 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -209,7 +209,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index e83058b0..ce7c4d33 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index a9e44041..2bad0c31 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 660db5b2..a968b749 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -196,7 +196,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 253a59e2..94986cfd 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -187,7 +187,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 3d744bd3..7e3d0de9 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -160,7 +160,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 2eb302e7..fab86ff3 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -166,7 +166,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 949f7f2b..adeb3cbc 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -214,7 +214,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 5f83499a..0492ae78 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -205,7 +205,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index ceb1415f..c50872f4 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -172,7 +172,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index ea32bcec..88f8d347 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence @@ -178,7 +178,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 16f575af..ca057fd7 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -212,7 +212,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index d0d275f1..326bd016 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -263,7 +263,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 5e95ae0d..ba56951e 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplegrad.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -247,7 +247,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index ffe88328..b000b538 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -233,7 +233,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 9e141760..8eee2b50 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -167,7 +167,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 766f6acb..4254e04b 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index ee53339b..44802a98 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence @@ -210,7 +210,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 9af7a9fc..e76a3955 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.samplelevel.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence @@ -193,7 +193,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index d669a999..043a04ca 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence @@ -197,7 +197,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index fd2673b6..bfc444da 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence @@ -146,7 +146,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 4218c4fb..81c1a844 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -2,7 +2,7 @@ hlsl.scope.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index a37991d8..43232161 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -2,11 +2,11 @@ hlsl.semicolons.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (global void) +0:8 Function Definition: MyFunc2( (temp void) 0:8 Function Parameters: -0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) @@ -38,11 +38,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (global void) +0:8 Function Definition: MyFunc2( (temp void) 0:8 Function Parameters: -0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index c7fdf8d0..9ea4f839 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -2,7 +2,7 @@ hlsl.shapeConv.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -117,7 +117,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index e4940ae6..0836a618 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -2,7 +2,7 @@ hlsl.sin.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -23,7 +23,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.string.frag.out b/Test/baseResults/hlsl.string.frag.out index 6016f52e..3d80ce53 100755 --- a/Test/baseResults/hlsl.string.frag.out +++ b/Test/baseResults/hlsl.string.frag.out @@ -2,7 +2,7 @@ hlsl.string.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (global float) +0:10 Function Definition: main(f1; (temp float) 0:10 Function Parameters: 0:10 'f' (layout(location=0 ) in float) 0:? Sequence @@ -22,7 +22,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (global float) +0:10 Function Definition: main(f1; (temp float) 0:10 Function Parameters: 0:10 'f' (layout(location=0 ) in float) 0:? Sequence diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 42885bcf..4fdfecce 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -2,7 +2,7 @@ hlsl.stringtoken.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) @@ -26,8 +26,8 @@ gl_FragCoord origin is upper left 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) -0:? 'TestUF' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) Linked fragment stage: @@ -36,7 +36,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) @@ -60,12 +60,12 @@ gl_FragCoord origin is upper left 0:19 Branch: Return 0:? Linker Objects 0:? 'TestTexture' (uniform texture2D) -0:? 'TestUF' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 29 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -78,9 +78,13 @@ gl_FragCoord origin is upper left Name 10 "psout" Name 19 "Color" Name 25 "TestTexture" - Name 27 "TestUF" + Name 26 "$Global" + MemberName 26($Global) 0 "TestUF" + Name 28 "" Decorate 19(Color) Location 0 Decorate 25(TestTexture) DescriptorSet 0 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -98,8 +102,9 @@ gl_FragCoord origin is upper left 23: TypeImage 6(float) 2D sampled format:Unknown 24: TypePointer UniformConstant 23 25(TestTexture): 24(ptr) Variable UniformConstant - 26: TypePointer UniformConstant 7(fvec4) - 27(TestUF): 26(ptr) Variable UniformConstant + 26($Global): TypeStruct 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 3a444953..04117d73 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -6,7 +6,7 @@ WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) @@ -16,7 +16,10 @@ gl_FragCoord origin is upper left 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:40 move second child to first child (temp 4-component vector of float) 0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) @@ -26,11 +29,8 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) -0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -48,7 +48,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) @@ -58,7 +58,10 @@ gl_FragCoord origin is upper left 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:40 move second child to first child (temp 4-component vector of float) 0:40 i: direct index for structure (temp 4-component vector of float) -0:40 's2' (global structure{temp 4-component vector of float i}) +0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) @@ -68,11 +71,8 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) -0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -85,98 +85,104 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 52 +// Id's are bound by 49 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 41 43 45 48 49 50 51 + EntryPoint Fragment 4 "PixelShaderFunction" 29 34 35 38 40 42 45 46 47 48 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" MemberName 8(FS) 0 "b3" Name 10 "s3" - Name 19 "" - MemberName 19 0 "i" - Name 21 "s2" - Name 25 "ff4" - Name 30 "@entryPointOutput" - Name 31 "input" - Name 34 "myS" - MemberName 34(myS) 0 "b" - MemberName 34(myS) 1 "c" - MemberName 34(myS) 2 "a" - MemberName 34(myS) 3 "d" - Name 36 "s1" - Name 39 "ff5" - Name 40 "ff6" - Name 41 "a" - Name 43 "b" - Name 45 "c" - Name 48 "d" - Name 49 "ff1" - Name 50 "ff2" - Name 51 "ff3" - Decorate 25(ff4) Offset 4 - Decorate 25(ff4) Location 7 - Decorate 25(ff4) Binding 0 - Decorate 30(@entryPointOutput) Location 0 - Decorate 31(input) Location 0 - Decorate 39(ff5) Offset 20 - Decorate 39(ff5) Binding 5 - Decorate 40(ff6) Offset 36 - Decorate 40(ff6) Binding 8 - Decorate 41(a) Location 1 - Decorate 43(b) Flat - Decorate 43(b) Location 2 - Decorate 45(c) NoPerspective - Decorate 45(c) Centroid - Decorate 45(c) Location 3 - Decorate 48(d) Centroid - Decorate 48(d) Location 4 - Decorate 49(ff1) BuiltIn FrontFacing - Decorate 50(ff2) Offset 4 - Decorate 50(ff2) Location 5 - Decorate 51(ff3) Offset 4 - Decorate 51(ff3) Location 6 - Decorate 51(ff3) Binding 0 + Name 20 "myS" + MemberName 20(myS) 0 "b" + MemberName 20(myS) 1 "c" + MemberName 20(myS) 2 "a" + MemberName 20(myS) 3 "d" + Name 21 "" + MemberName 21 0 "i" + Name 22 "$Global" + MemberName 22($Global) 0 "s1" + MemberName 22($Global) 1 "s2" + MemberName 22($Global) 2 "ff5" + MemberName 22($Global) 3 "ff6" + Name 24 "" + Name 29 "ff4" + Name 34 "@entryPointOutput" + Name 35 "input" + Name 38 "a" + Name 40 "b" + Name 42 "c" + Name 45 "d" + Name 46 "ff1" + Name 47 "ff2" + Name 48 "ff3" + MemberDecorate 20(myS) 0 Offset 0 + MemberDecorate 20(myS) 1 Offset 4 + MemberDecorate 20(myS) 2 Offset 16 + MemberDecorate 20(myS) 3 Offset 32 + MemberDecorate 21 0 Offset 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 48 + MemberDecorate 22($Global) 2 Offset 1620 + MemberDecorate 22($Global) 3 Offset 1636 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 29(ff4) Offset 4 + Decorate 29(ff4) Location 7 + Decorate 29(ff4) Binding 0 + Decorate 34(@entryPointOutput) Location 0 + Decorate 35(input) Location 0 + Decorate 38(a) Location 1 + Decorate 40(b) Flat + Decorate 40(b) Location 2 + Decorate 42(c) NoPerspective + Decorate 42(c) Centroid + Decorate 42(c) Location 3 + Decorate 45(d) Centroid + Decorate 45(d) Location 4 + Decorate 46(ff1) BuiltIn FrontFacing + Decorate 47(ff2) Offset 4 + Decorate 47(ff2) Location 5 + Decorate 48(ff3) Offset 4 + Decorate 48(ff3) Location 6 + Decorate 48(ff3) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool 7: TypeVector 6(bool) 3 8(FS): TypeStruct 7(bvec3) 9: TypePointer Function 8(FS) - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeStruct 18(fvec4) - 20: TypePointer Private 19(struct) - 21(s2): 20(ptr) Variable Private - 22: TypeInt 32 1 - 23: 22(int) Constant 0 - 24: TypePointer Input 18(fvec4) - 25(ff4): 24(ptr) Variable Input - 27: TypePointer Private 18(fvec4) - 29: TypePointer Output 18(fvec4) -30(@entryPointOutput): 29(ptr) Variable Output - 31(input): 24(ptr) Variable Input - 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 35: TypePointer Private 34(myS) - 36(s1): 35(ptr) Variable Private - 37: TypeVector 17(float) 3 - 38: TypePointer Private 37(fvec3) - 39(ff5): 38(ptr) Variable Private - 40(ff6): 38(ptr) Variable Private - 41(a): 24(ptr) Variable Input - 42: TypePointer Input 6(bool) - 43(b): 42(ptr) Variable Input - 44: TypePointer Input 17(float) - 45(c): 44(ptr) Variable Input - 46: TypeVector 17(float) 2 - 47: TypePointer Input 46(fvec2) - 48(d): 47(ptr) Variable Input - 49(ff1): 42(ptr) Variable Input - 50(ff2): 42(ptr) Variable Input - 51(ff3): 42(ptr) Variable Input + 17: TypeInt 32 0 + 18: TypeFloat 32 + 19: TypeVector 18(float) 4 + 20(myS): TypeStruct 17(int) 17(int) 19(fvec4) 19(fvec4) + 21: TypeStruct 19(fvec4) + 22($Global): TypeStruct 20(myS) 21(struct) 18(float) 18(float) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 1 + 27: 25(int) Constant 0 + 28: TypePointer Input 19(fvec4) + 29(ff4): 28(ptr) Variable Input + 31: TypePointer Uniform 19(fvec4) + 33: TypePointer Output 19(fvec4) +34(@entryPointOutput): 33(ptr) Variable Output + 35(input): 28(ptr) Variable Input + 38(a): 28(ptr) Variable Input + 39: TypePointer Input 6(bool) + 40(b): 39(ptr) Variable Input + 41: TypePointer Input 18(float) + 42(c): 41(ptr) Variable Input + 43: TypeVector 18(float) 2 + 44: TypePointer Input 43(fvec2) + 45(d): 44(ptr) Variable Input + 46(ff1): 39(ptr) Variable Input + 47(ff2): 39(ptr) Variable Input + 48(ff3): 39(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -186,10 +192,10 @@ gl_FragCoord origin is upper left 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - 26: 18(fvec4) Load 25(ff4) - 28: 27(ptr) AccessChain 21(s2) 23 - Store 28 26 - 32: 18(fvec4) Load 31(input) - Store 30(@entryPointOutput) 32 + 30: 19(fvec4) Load 29(ff4) + 32: 31(ptr) AccessChain 24 26 27 + Store 32 30 + 36: 19(fvec4) Load 35(input) + Store 34(@entryPointOutput) 36 Return FunctionEnd diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index b27f210b..193ccc1c 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -1,7 +1,7 @@ hlsl.structin.vert Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) @@ -69,7 +69,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index abf777ab..af516e2c 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -2,7 +2,7 @@ hlsl.switch.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) @@ -137,7 +137,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index 0bc4bd06..16951a34 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index f5260869..c5c73ecb 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -2,7 +2,7 @@ hlsl.templatetypes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence @@ -255,7 +255,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index 0600873f..e8bda1af 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -2,7 +2,7 @@ hlsl.typedef.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) 0:10 'a1' (temp 4-component vector of float) -0:10 Construct vec4 (global 4-component vector of float) +0:10 Construct vec4 (uniform 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 add (temp int) 0:10 'i' (temp int) @@ -43,7 +43,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) 0:10 'a1' (temp 4-component vector of float) -0:10 Construct vec4 (global 4-component vector of float) +0:10 Construct vec4 (uniform 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 add (temp int) 0:10 'i' (temp int) diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 3715166f..6faa388a 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -2,16 +2,16 @@ hlsl.void.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global void) +0:5 Function Definition: PixelShaderFunction(vf4; (temp void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (global void) -0:7 Function Call: foo2( (global void) +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) 0:8 Branch: Return 0:? Linker Objects 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -23,16 +23,16 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global void) +0:5 Function Definition: PixelShaderFunction(vf4; (temp void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (global void) -0:7 Function Call: foo2( (global void) +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) 0:8 Branch: Return 0:? Linker Objects 0:? 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 63e14dcc..28e326d2 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -2,7 +2,7 @@ hlsl.whileLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -44,7 +44,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out index c2cd59a3..faf20cdd 100644 --- a/Test/baseResults/spv.register.autoassign.frag.out +++ b/Test/baseResults/spv.register.autoassign.frag.out @@ -5,13 +5,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main_ep" 143 + EntryPoint Fragment 4 "main_ep" 145 ExecutionMode 4 OriginUpperLeft Name 4 "main_ep" Name 9 "Func1(" @@ -31,19 +31,21 @@ Linked fragment stage: MemberName 93(MyStruct_t) 0 "a" MemberName 93(MyStruct_t) 1 "b" MemberName 93(MyStruct_t) 2 "c" - Name 95 "mystruct" - Name 117 "g_tTex_unused1" - Name 119 "g_sSamp_unused1" - Name 124 "g_tTex_unused2" - Name 126 "g_sSamp_unused2" - Name 134 "PS_OUTPUT" - MemberName 134(PS_OUTPUT) 0 "Color" - Name 136 "psout" - Name 143 "Color" - Name 147 "g_tTex_unused3" - Name 149 "myfloat4_a" - Name 150 "myfloat4_b" - Name 153 "myint4_a" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" Decorate 17(g_tTex1) DescriptorSet 0 Decorate 17(g_tTex1) Binding 11 Decorate 21(g_sSamp1) DescriptorSet 0 @@ -64,15 +66,24 @@ Linked fragment stage: Decorate 84(g_tTex5) Binding 6 Decorate 86(g_sSamp5) DescriptorSet 0 Decorate 86(g_sSamp5) Binding 8 - Decorate 95(mystruct) Binding 19 - Decorate 117(g_tTex_unused1) DescriptorSet 0 - Decorate 117(g_tTex_unused1) Binding 10 - Decorate 119(g_sSamp_unused1) DescriptorSet 0 - Decorate 124(g_tTex_unused2) DescriptorSet 0 - Decorate 124(g_tTex_unused2) Binding 12 - Decorate 126(g_sSamp_unused2) DescriptorSet 0 - Decorate 143(Color) Location 0 - Decorate 147(g_tTex_unused3) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 9 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -115,39 +126,35 @@ Linked fragment stage: 89: 6(float) Constant 1056964608 92: TypeVector 6(float) 3 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypePointer UniformConstant 93(MyStruct_t) - 95(mystruct): 94(ptr) Variable UniformConstant - 96: 35(int) Constant 1 - 97: TypePointer UniformConstant 6(float) -117(g_tTex_unused1): 16(ptr) Variable UniformConstant -119(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 122: 6(float) Constant 1066192077 -124(g_tTex_unused2): 16(ptr) Variable UniformConstant -126(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 129: 6(float) Constant 1067030938 - 134(PS_OUTPUT): TypeStruct 7(fvec4) - 135: TypePointer Function 134(PS_OUTPUT) - 140: TypePointer Function 7(fvec4) - 142: TypePointer Output 7(fvec4) - 143(Color): 142(ptr) Variable Output -147(g_tTex_unused3): 16(ptr) Variable UniformConstant - 148: TypePointer UniformConstant 7(fvec4) - 149(myfloat4_a): 148(ptr) Variable UniformConstant - 150(myfloat4_b): 148(ptr) Variable UniformConstant - 151: TypeVector 40(int) 4 - 152: TypePointer UniformConstant 151(ivec4) - 153(myint4_a): 152(ptr) Variable UniformConstant + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant 4(main_ep): 2 Function None 3 5: Label - 136(psout): 135(ptr) Variable Function - 137: 7(fvec4) FunctionCall 9(Func1() - 138: 7(fvec4) FunctionCall 11(Func2() - 139: 7(fvec4) FAdd 137 138 - 141: 140(ptr) AccessChain 136(psout) 41 - Store 141 139 - 144: 140(ptr) AccessChain 136(psout) 41 - 145: 7(fvec4) Load 144 - Store 143(Color) 145 + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 Return FunctionEnd 9(Func1(): 7(fvec4) Function None 8 @@ -194,37 +201,37 @@ Linked fragment stage: 88: 23 SampledImage 85 87 90: 7(fvec4) ImageSampleImplicitLod 88 89 91: 7(fvec4) FAdd 83 90 - 98: 97(ptr) AccessChain 95(mystruct) 76 96 - 99: 6(float) Load 98 - 100: 7(fvec4) CompositeConstruct 99 99 99 99 - 101: 7(fvec4) FAdd 91 100 - ReturnValue 101 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 FunctionEnd 11(Func2(): 7(fvec4) Function None 8 12: Label - 104: 15 Load 17(g_tTex1) - 105: 19 Load 21(g_sSamp1) - 106: 23 SampledImage 104 105 - 107: 7(fvec4) ImageSampleImplicitLod 106 25 - 108: 16(ptr) AccessChain 39(g_tTex3) 53 - 109: 15 Load 108 - 110: 20(ptr) AccessChain 46(g_sSamp3) 53 - 111: 19 Load 110 - 112: 23 SampledImage 109 111 - 113: 7(fvec4) ImageSampleImplicitLod 112 50 - 114: 7(fvec4) FAdd 107 113 - ReturnValue 114 + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 FunctionEnd 13(Func2_unused(): 7(fvec4) Function None 8 14: Label - 118: 15 Load 117(g_tTex_unused1) - 120: 19 Load 119(g_sSamp_unused1) - 121: 23 SampledImage 118 120 - 123: 7(fvec4) ImageSampleImplicitLod 121 122 - 125: 15 Load 124(g_tTex_unused2) - 127: 19 Load 126(g_sSamp_unused2) - 128: 23 SampledImage 125 127 - 130: 7(fvec4) ImageSampleImplicitLod 128 129 - 131: 7(fvec4) FAdd 123 130 - ReturnValue 131 + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 FunctionEnd diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out index 3a8ab1a3..ad476eeb 100644 --- a/Test/baseResults/spv.register.noautoassign.frag.out +++ b/Test/baseResults/spv.register.noautoassign.frag.out @@ -5,13 +5,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 154 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main_ep" 143 + EntryPoint Fragment 4 "main_ep" 145 ExecutionMode 4 OriginUpperLeft Name 4 "main_ep" Name 9 "Func1(" @@ -31,19 +31,21 @@ Linked fragment stage: MemberName 93(MyStruct_t) 0 "a" MemberName 93(MyStruct_t) 1 "b" MemberName 93(MyStruct_t) 2 "c" - Name 95 "mystruct" - Name 117 "g_tTex_unused1" - Name 119 "g_sSamp_unused1" - Name 124 "g_tTex_unused2" - Name 126 "g_sSamp_unused2" - Name 134 "PS_OUTPUT" - MemberName 134(PS_OUTPUT) 0 "Color" - Name 136 "psout" - Name 143 "Color" - Name 147 "g_tTex_unused3" - Name 149 "myfloat4_a" - Name 150 "myfloat4_b" - Name 153 "myint4_a" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" Decorate 17(g_tTex1) DescriptorSet 0 Decorate 17(g_tTex1) Binding 11 Decorate 21(g_sSamp1) DescriptorSet 0 @@ -58,15 +60,23 @@ Linked fragment stage: Decorate 69(g_sSamp4) DescriptorSet 0 Decorate 84(g_tTex5) DescriptorSet 0 Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 95(mystruct) Binding 19 - Decorate 117(g_tTex_unused1) DescriptorSet 0 - Decorate 117(g_tTex_unused1) Binding 10 - Decorate 119(g_sSamp_unused1) DescriptorSet 0 - Decorate 124(g_tTex_unused2) DescriptorSet 0 - Decorate 124(g_tTex_unused2) Binding 12 - Decorate 126(g_sSamp_unused2) DescriptorSet 0 - Decorate 143(Color) Location 0 - Decorate 147(g_tTex_unused3) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -109,39 +119,35 @@ Linked fragment stage: 89: 6(float) Constant 1056964608 92: TypeVector 6(float) 3 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) - 94: TypePointer UniformConstant 93(MyStruct_t) - 95(mystruct): 94(ptr) Variable UniformConstant - 96: 35(int) Constant 1 - 97: TypePointer UniformConstant 6(float) -117(g_tTex_unused1): 16(ptr) Variable UniformConstant -119(g_sSamp_unused1): 20(ptr) Variable UniformConstant - 122: 6(float) Constant 1066192077 -124(g_tTex_unused2): 16(ptr) Variable UniformConstant -126(g_sSamp_unused2): 20(ptr) Variable UniformConstant - 129: 6(float) Constant 1067030938 - 134(PS_OUTPUT): TypeStruct 7(fvec4) - 135: TypePointer Function 134(PS_OUTPUT) - 140: TypePointer Function 7(fvec4) - 142: TypePointer Output 7(fvec4) - 143(Color): 142(ptr) Variable Output -147(g_tTex_unused3): 16(ptr) Variable UniformConstant - 148: TypePointer UniformConstant 7(fvec4) - 149(myfloat4_a): 148(ptr) Variable UniformConstant - 150(myfloat4_b): 148(ptr) Variable UniformConstant - 151: TypeVector 40(int) 4 - 152: TypePointer UniformConstant 151(ivec4) - 153(myint4_a): 152(ptr) Variable UniformConstant + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant 4(main_ep): 2 Function None 3 5: Label - 136(psout): 135(ptr) Variable Function - 137: 7(fvec4) FunctionCall 9(Func1() - 138: 7(fvec4) FunctionCall 11(Func2() - 139: 7(fvec4) FAdd 137 138 - 141: 140(ptr) AccessChain 136(psout) 41 - Store 141 139 - 144: 140(ptr) AccessChain 136(psout) 41 - 145: 7(fvec4) Load 144 - Store 143(Color) 145 + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 Return FunctionEnd 9(Func1(): 7(fvec4) Function None 8 @@ -188,37 +194,37 @@ Linked fragment stage: 88: 23 SampledImage 85 87 90: 7(fvec4) ImageSampleImplicitLod 88 89 91: 7(fvec4) FAdd 83 90 - 98: 97(ptr) AccessChain 95(mystruct) 76 96 - 99: 6(float) Load 98 - 100: 7(fvec4) CompositeConstruct 99 99 99 99 - 101: 7(fvec4) FAdd 91 100 - ReturnValue 101 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 FunctionEnd 11(Func2(): 7(fvec4) Function None 8 12: Label - 104: 15 Load 17(g_tTex1) - 105: 19 Load 21(g_sSamp1) - 106: 23 SampledImage 104 105 - 107: 7(fvec4) ImageSampleImplicitLod 106 25 - 108: 16(ptr) AccessChain 39(g_tTex3) 53 - 109: 15 Load 108 - 110: 20(ptr) AccessChain 46(g_sSamp3) 53 - 111: 19 Load 110 - 112: 23 SampledImage 109 111 - 113: 7(fvec4) ImageSampleImplicitLod 112 50 - 114: 7(fvec4) FAdd 107 113 - ReturnValue 114 + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 FunctionEnd 13(Func2_unused(): 7(fvec4) Function None 8 14: Label - 118: 15 Load 117(g_tTex_unused1) - 120: 19 Load 119(g_sSamp_unused1) - 121: 23 SampledImage 118 120 - 123: 7(fvec4) ImageSampleImplicitLod 121 122 - 125: 15 Load 124(g_tTex_unused2) - 127: 19 Load 126(g_sSamp_unused2) - 128: 23 SampledImage 125 127 - 130: 7(fvec4) ImageSampleImplicitLod 128 129 - 131: 7(fvec4) FAdd 123 130 - ReturnValue 131 + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 FunctionEnd diff --git a/Test/hlsl.array.flatten.frag b/Test/hlsl.array.flatten.frag index b243bec2..987ce1bf 100644 --- a/Test/hlsl.array.flatten.frag +++ b/Test/hlsl.array.flatten.frag @@ -23,7 +23,7 @@ float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) return l_tex[2].Sample(l_samp[2], 0.2); } -int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; +static int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; struct PS_OUTPUT { float4 color : SV_Target0; }; diff --git a/Test/hlsl.float1.frag b/Test/hlsl.float1.frag index 6247e77b..f9c0a6e0 100644 --- a/Test/hlsl.float1.frag +++ b/Test/hlsl.float1.frag @@ -1,5 +1,5 @@ -float1 f1 = float1(1.0); -float scalar = 2.0; +static float1 f1 = float1(1.0); +static float scalar = 2.0; float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 { diff --git a/Test/hlsl.float4.frag b/Test/hlsl.float4.frag index 5ae70db0..b541f5d3 100644 --- a/Test/hlsl.float4.frag +++ b/Test/hlsl.float4.frag @@ -1,9 +1,9 @@ float4 AmbientColor = float4(1, 0.5, 0, 1); bool ff1 : SV_IsFrontFace; -float4 ff2 : packoffset(c0.y); -float4 ff3 : packoffset(c0.y) : register(ps_5_0, s0) ; -float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s1) ; +float ff2 : packoffset(c1.y); +float4 ff3 : packoffset(c2) : register(ps_5_0, s0) ; +float4 ff4 : VPOS : packoffset(c3) : register(ps_5_0, s1) ; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag index c233d127..a3f6f0e7 100644 --- a/Test/hlsl.init.frag +++ b/Test/hlsl.init.frag @@ -1,21 +1,21 @@ -float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); -float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; -float a2 = 0.2, b2; -float a3, b3 = 0.3; -float a4, b4 = 0.4, c4; -float a5 = 0.5, b5, c5 = 1.5; +static float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); +static float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; +static float a2 = 0.2, b2; +static float a3, b3 = 0.3; +static float a4, b4 = 0.4, c4; +static float a5 = 0.5, b5, c5 = 1.5; struct Single1 { int f; }; -Single1 single1 = { 10 }; +static Single1 single1 = { 10 }; struct Single2 { uint2 v; }; -Single2 single2 = { { 1, 2 } }; +static Single2 single2 = { { 1, 2 } }; struct Single3 { Single1 s1; }; -Single3 single3 = { { 3 } }; +static Single3 single3 = { { 3 } }; struct Single4 { Single2 s1; }; -Single4 single4 = { { { 4u, 5u } } }; +static Single4 single4 = { { { 4u, 5u } } }; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp index 642a0fc6..12b7caab 100644 --- a/Test/hlsl.intrinsics.comp +++ b/Test/hlsl.intrinsics.comp @@ -1,5 +1,5 @@ -#define gs // TODO: define as groupshared when available in the grammar +#define gs static // TODO: define as groupshared when available in the grammar gs uint gs_ua; gs uint gs_ub; gs uint gs_uc; diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index c04acaed..90387ccc 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -1,5 +1,5 @@ -#define gs // TODO: define as groupshared when available in the grammar +#define gs static // TODO: define as groupshared when available in the grammar gs uint gs_ua; gs uint gs_ub; gs uint gs_uc; diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index fcfb761a..6224b25e 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -1,15 +1,15 @@ -uint gs_ua; -uint gs_ub; -uint gs_uc; -uint2 gs_ua2; -uint2 gs_ub2; -uint2 gs_uc2; -uint3 gs_ua3; -uint3 gs_ub3; -uint3 gs_uc3; -uint4 gs_ua4; -uint4 gs_ub4; -uint4 gs_uc4; +static uint gs_ua; +static uint gs_ub; +static uint gs_uc; +static uint2 gs_ua2; +static uint2 gs_ub2; +static uint2 gs_uc2; +static uint3 gs_ua3; +static uint3 gs_ub3; +static uint3 gs_uc3; +static uint4 gs_ua4; +static uint4 gs_ub4; +static uint4 gs_uc4; float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { diff --git a/Test/hlsl.precise.frag b/Test/hlsl.precise.frag index 7518de54..77454e07 100644 --- a/Test/hlsl.precise.frag +++ b/Test/hlsl.precise.frag @@ -1,7 +1,7 @@ struct PS_OUTPUT { precise float4 color : SV_Target0; }; -precise float precisefloat; +static precise float precisefloat; void MyFunction(in precise float myfloat, out precise float3 myfloat3) { } diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 58cd524b..2c511a6e 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -27,8 +27,8 @@ struct IN_S { float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) ; }; -float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]); -float3 ff6 : packoffset(c2.y) : register(s3[5]); +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 { diff --git a/Test/hlsl.swizzle.frag b/Test/hlsl.swizzle.frag index 231430a9..9e87c6d7 100644 --- a/Test/hlsl.swizzle.frag +++ b/Test/hlsl.swizzle.frag @@ -1,4 +1,4 @@ -float4 AmbientColor = float4(1, 0.5, 0, 1); +static float4 AmbientColor = float4(1, 0.5, 0, 1); float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index fb515df0..7c9a47a5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1524" +#define GLSLANG_REVISION "Overload400-PrecQual.1525" #define GLSLANG_DATE "27-Sep-2016" From 21e7e3212646013e46f7c9367c613b1d403677ed Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 29 Sep 2016 10:27:57 -0600 Subject: [PATCH 158/217] HLSL: Fix merge conflict. --- .../hlsl.array.implicit-size.frag.out | 277 +++++++++--------- Test/hlsl.array.implicit-size.frag | 6 +- glslang/Include/revision.h | 4 +- 3 files changed, 143 insertions(+), 144 deletions(-) diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out index 6345c89c..d8e0ed86 100644 --- a/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -2,7 +2,35 @@ hlsl.array.implicit-size.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:3 Sequence +0:3 move second child to first child (temp 5-element array of float) +0:3 'g_array' (global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child (temp 7-element array of float) +0:6 'g_array_unused' (global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f}) +0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) 0:26 Function Parameters: 0:26 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence @@ -24,21 +52,11 @@ gl_FragCoord origin is upper left 0:30 add (temp float) 0:30 add (temp float) 0:30 direct index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 Constant: 0:30 0 (const int) 0:30 direct index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 Constant: 0:30 4 (const int) 0:30 direct index (temp float) @@ -47,43 +65,18 @@ gl_FragCoord origin is upper left 0:30 1 (const int) 0:30 f: direct index for structure (temp float) 0:30 direct index (temp structure{temp int i, temp float f}) -0:30 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) -0:30 1 (const int) -0:30 2.000000 -0:30 3 (const int) -0:30 4.000000 +0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 indirect index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 'idx' (temp void) 0:? Linker Objects -0:? 'g_array' (uniform 5-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 5.000000 -0:? 'g_array_unused' (uniform 7-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 5.000000 -0:? 6.000000 -0:? 7.000000 -0:? 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) -0:? 1 (const int) -0:? 2.000000 -0:? 3 (const int) -0:? 4.000000 +0:? 'g_array' (global 5-element array of float) +0:? 'g_array_unused' (global 7-element array of float) +0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) Linked fragment stage: @@ -92,7 +85,35 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (global void) +0:3 Sequence +0:3 move second child to first child (temp 5-element array of float) +0:3 'g_array' (global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child (temp 7-element array of float) +0:6 'g_array_unused' (global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f}) +0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) 0:26 Function Parameters: 0:26 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence @@ -114,21 +135,11 @@ gl_FragCoord origin is upper left 0:30 add (temp float) 0:30 add (temp float) 0:30 direct index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 Constant: 0:30 0 (const int) 0:30 direct index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 Constant: 0:30 4 (const int) 0:30 direct index (temp float) @@ -137,47 +148,22 @@ gl_FragCoord origin is upper left 0:30 1 (const int) 0:30 f: direct index for structure (temp float) 0:30 direct index (temp structure{temp int i, temp float f}) -0:30 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) -0:30 1 (const int) -0:30 2.000000 -0:30 3 (const int) -0:30 4.000000 +0:30 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 indirect index (temp float) -0:30 'g_array' (uniform 5-element array of float) -0:30 1.000000 -0:30 2.000000 -0:30 3.000000 -0:30 4.000000 -0:30 5.000000 +0:30 'g_array' (global 5-element array of float) 0:30 'idx' (temp void) 0:? Linker Objects -0:? 'g_array' (uniform 5-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 5.000000 -0:? 'g_array_unused' (uniform 7-element array of float) -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:? 4.000000 -0:? 5.000000 -0:? 6.000000 -0:? 7.000000 -0:? 'g_mystruct' (uniform 2-element array of structure{temp int i, temp float f}) -0:? 1 (const int) -0:? 2.000000 -0:? 3 (const int) -0:? 4.000000 +0:? 'g_array' (global 5-element array of float) +0:? 'g_array_unused' (global 7-element array of float) +0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 62 +// Id's are bound by 72 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -189,14 +175,14 @@ gl_FragCoord origin is upper left MemberName 8(PS_OUTPUT) 0 "color" Name 12 "main(struct-PS_OUTPUT-vf41;" Name 11 "ps_output" - Name 18 "l_array" - Name 28 "g_array" - Name 41 "mystruct" - MemberName 41(mystruct) 0 "i" - MemberName 41(mystruct) 1 "f" - Name 45 "g_mystruct" - Name 50 "idx" - Name 61 "g_array_unused" + Name 18 "g_array" + Name 28 "g_array_unused" + Name 33 "mystruct" + MemberName 33(mystruct) 0 "i" + MemberName 33(mystruct) 1 "f" + Name 37 "g_mystruct" + Name 46 "l_array" + Name 64 "idx" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -205,60 +191,73 @@ gl_FragCoord origin is upper left 9: TypePointer Function 8(PS_OUTPUT) 10: TypeFunction 2 9(ptr) 14: TypeInt 32 0 - 15: 14(int) Constant 3 + 15: 14(int) Constant 5 16: TypeArray 6(float) 15 - 17: TypePointer Function 16 + 17: TypePointer Private 16 + 18(g_array): 17(ptr) Variable Private 19: 6(float) Constant 1065353216 20: 6(float) Constant 1073741824 21: 6(float) Constant 1077936128 - 22: 16 ConstantComposite 19 20 21 - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 25: 14(int) Constant 5 + 22: 6(float) Constant 1082130432 + 23: 6(float) Constant 1084227584 + 24: 16 ConstantComposite 19 20 21 22 23 + 25: 14(int) Constant 7 26: TypeArray 6(float) 25 - 27: TypePointer UniformConstant 26 - 28(g_array): 27(ptr) Variable UniformConstant - 29: TypePointer UniformConstant 6(float) - 32: 23(int) Constant 4 - 36: 23(int) Constant 1 - 37: TypePointer Function 6(float) - 41(mystruct): TypeStruct 23(int) 6(float) - 42: 14(int) Constant 2 - 43: TypeArray 41(mystruct) 42 - 44: TypePointer UniformConstant 43 - 45(g_mystruct): 44(ptr) Variable UniformConstant - 49: TypePointer Function 2 - 56: TypePointer Function 7(fvec4) - 58: 14(int) Constant 7 - 59: TypeArray 6(float) 58 - 60: TypePointer UniformConstant 59 -61(g_array_unused): 60(ptr) Variable UniformConstant + 27: TypePointer Private 26 +28(g_array_unused): 27(ptr) Variable Private + 29: 6(float) Constant 1086324736 + 30: 6(float) Constant 1088421888 + 31: 26 ConstantComposite 19 20 21 22 23 29 30 + 32: TypeInt 32 1 + 33(mystruct): TypeStruct 32(int) 6(float) + 34: 14(int) Constant 2 + 35: TypeArray 33(mystruct) 34 + 36: TypePointer Private 35 + 37(g_mystruct): 36(ptr) Variable Private + 38: 32(int) Constant 1 + 39:33(mystruct) ConstantComposite 38 20 + 40: 32(int) Constant 3 + 41:33(mystruct) ConstantComposite 40 22 + 42: 35 ConstantComposite 39 41 + 43: 14(int) Constant 3 + 44: TypeArray 6(float) 43 + 45: TypePointer Function 44 + 47: 44 ConstantComposite 19 20 21 + 48: 32(int) Constant 0 + 49: TypePointer Private 6(float) + 52: 32(int) Constant 4 + 56: TypePointer Function 6(float) + 63: TypePointer Function 2 + 70: TypePointer Function 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label + Store 18(g_array) 24 + Store 28(g_array_unused) 31 + Store 37(g_mystruct) 42 FunctionEnd 12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 11(ps_output): 9(ptr) FunctionParameter 13: Label - 18(l_array): 17(ptr) Variable Function - 50(idx): 49(ptr) Variable Function - Store 18(l_array) 22 - 30: 29(ptr) AccessChain 28(g_array) 24 - 31: 6(float) Load 30 - 33: 29(ptr) AccessChain 28(g_array) 32 - 34: 6(float) Load 33 - 35: 6(float) FAdd 31 34 - 38: 37(ptr) AccessChain 18(l_array) 36 - 39: 6(float) Load 38 - 40: 6(float) FAdd 35 39 - 46: 29(ptr) AccessChain 45(g_mystruct) 24 36 - 47: 6(float) Load 46 - 48: 6(float) FAdd 40 47 - 51: 2 Load 50(idx) - 52: 29(ptr) AccessChain 28(g_array) 51 - 53: 6(float) Load 52 - 54: 6(float) FAdd 48 53 - 55: 7(fvec4) CompositeConstruct 54 54 54 54 - 57: 56(ptr) AccessChain 11(ps_output) 24 - Store 57 55 + 46(l_array): 45(ptr) Variable Function + 64(idx): 63(ptr) Variable Function + Store 46(l_array) 47 + 50: 49(ptr) AccessChain 18(g_array) 48 + 51: 6(float) Load 50 + 53: 49(ptr) AccessChain 18(g_array) 52 + 54: 6(float) Load 53 + 55: 6(float) FAdd 51 54 + 57: 56(ptr) AccessChain 46(l_array) 38 + 58: 6(float) Load 57 + 59: 6(float) FAdd 55 58 + 60: 49(ptr) AccessChain 37(g_mystruct) 48 38 + 61: 6(float) Load 60 + 62: 6(float) FAdd 59 61 + 65: 2 Load 64(idx) + 66: 49(ptr) AccessChain 18(g_array) 65 + 67: 6(float) Load 66 + 68: 6(float) FAdd 62 67 + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 71: 70(ptr) AccessChain 11(ps_output) 48 + Store 71 69 Return FunctionEnd diff --git a/Test/hlsl.array.implicit-size.frag b/Test/hlsl.array.implicit-size.frag index 11f93b5e..29e2c1ba 100644 --- a/Test/hlsl.array.implicit-size.frag +++ b/Test/hlsl.array.implicit-size.frag @@ -1,12 +1,12 @@ // implicit sized array -uniform float g_array [ ] = { 1, 2, 3, 4, 5 }; +static float g_array [ ] = { 1, 2, 3, 4, 5 }; // Unused implicit sized array -uniform float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; +static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; // Test implicit size arrayed structs -uniform struct mystruct { +static struct mystruct { int i; float f; } g_mystruct[] = { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 7c9a47a5..24002550 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1525" -#define GLSLANG_DATE "27-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1527" +#define GLSLANG_DATE "29-Sep-2016" From bc9b7656b77afe3053d00b6ebfdc0d114d167aa2 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 29 Sep 2016 08:43:22 -0600 Subject: [PATCH 159/217] Restrict uniform array flattening to sampler and texture arrays. Previously the uniform array flattening feature would trigger on loose uniform arrays of any basic type (e.g, floats). This PR restricts it to sampler and texture arrays. Other arrays would end up in their own uniform block (anonymous or otherwise). (Atomic counter arrays might be an exception, but those are not currently flattened). --- StandAlone/StandAlone.cpp | 2 +- hlsl/hlslParseHelper.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 30af4fe4..5d30ac2b 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -941,7 +941,7 @@ void usage() " explicit bindings.\n" " --amb synonym for --auto-map-bindings\n" "\n" - " --flatten-uniform-arrays flatten uniform array references to scalars\n" + " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n" " --fua synonym for --flatten-uniform-arrays\n" ); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 65f7aa26..44a4230b 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -736,7 +736,9 @@ bool HlslParseContext::shouldFlattenUniform(const TType& type) const return type.isArray() && intermediate.getFlattenUniformArrays() && - qualifier == EvqUniform; + qualifier == EvqUniform && + // Testing the EbtSampler basic type covers samplers and textures + type.getBasicType() == EbtSampler; } void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) From 0b3b6e17bd4b0ea6c04b838997111375b83e0cb3 Mon Sep 17 00:00:00 2001 From: Anny Date: Thu, 29 Sep 2016 16:29:58 -0700 Subject: [PATCH 160/217] Updated README.md Added an alternative link for cloning the repo in the build instructions --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 63ffdee1..9cfdce18 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,10 @@ Building ```bash cd +# If using SSH git clone git@github.com:KhronosGroup/glslang.git +# Or if using HTTPS +git clone https://github.com/KhronosGroup/glslang.git ``` #### 2) Check-Out External Projects From df98cc26d583fb443bf82f8eb25f3da2e7c50022 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 29 Sep 2016 23:58:30 -0600 Subject: [PATCH 161/217] Add amend ability for anonymous blocks, so they can grow between function bodies. --- Test/baseResults/hlsl.amend.frag.out | 207 ++++++++++++++++++ Test/hlsl.amend.frag | 28 +++ glslang/Include/revision.h | 2 +- .../MachineIndependent/ParseContextBase.cpp | 29 ++- glslang/MachineIndependent/ParseHelper.h | 3 +- glslang/MachineIndependent/SymbolTable.h | 62 ++++-- gtests/Hlsl.FromFile.cpp | 1 + 7 files changed, 298 insertions(+), 34 deletions(-) create mode 100755 Test/baseResults/hlsl.amend.frag.out create mode 100755 Test/hlsl.amend.frag diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out new file mode 100755 index 00000000..1be59064 --- /dev/null +++ b/Test/baseResults/hlsl.amend.frag.out @@ -0,0 +1,207 @@ +hlsl.amend.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "f1" + ExecutionMode 4 OriginUpperLeft + Name 4 "f1" + Name 6 "f2(" + Name 8 "f3(" + Name 10 "f4(" + Name 16 "$Global" + MemberName 16($Global) 0 "a" + MemberName 16($Global) 1 "b" + MemberName 16($Global) 2 "c" + MemberName 16($Global) 3 "d" + MemberName 16($Global) 4 "e" + Name 18 "" + MemberDecorate 16($Global) 0 Offset 0 + MemberDecorate 16($Global) 1 Offset 16 + MemberDecorate 16($Global) 2 Offset 32 + MemberDecorate 16($Global) 3 Offset 44 + MemberDecorate 16($Global) 4 Offset 48 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 12: TypeFloat 32 + 13: TypeVector 12(float) 4 + 14: TypeVector 12(float) 3 + 15: TypeInt 32 1 + 16($Global): TypeStruct 13(fvec4) 12(float) 14(fvec3) 15(int) 15(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: 15(int) Constant 0 + 20: TypePointer Uniform 13(fvec4) + 23: 15(int) Constant 1 + 24: TypePointer Uniform 12(float) + 28: TypeInt 32 0 + 29: 28(int) Constant 0 + 35: 15(int) Constant 2 + 39: 15(int) Constant 3 + 40: TypePointer Uniform 15(int) + 4(f1): 2 Function None 3 + 5: Label + 21: 20(ptr) AccessChain 18 19 + 22: 13(fvec4) Load 21 + 25: 24(ptr) AccessChain 18 23 + 26: 12(float) Load 25 + 27: 13(fvec4) VectorTimesScalar 22 26 + Return + FunctionEnd + 6(f2(): 2 Function None 3 + 7: Label + 30: 24(ptr) AccessChain 18 19 29 + 31: 12(float) Load 30 + 32: 24(ptr) AccessChain 18 23 + 33: 12(float) Load 32 + 34: 12(float) FAdd 31 33 + 36: 24(ptr) AccessChain 18 35 29 + 37: 12(float) Load 36 + 38: 12(float) FAdd 34 37 + Return + FunctionEnd + 8(f3(): 2 Function None 3 + 9: Label + Return + FunctionEnd + 10(f4(): 2 Function None 3 + 11: Label + 41: 40(ptr) AccessChain 18 39 + 42: 15(int) Load 41 + 43: 12(float) ConvertSToF 42 + 44: 20(ptr) AccessChain 18 19 + 45: 13(fvec4) Load 44 + 46: 13(fvec4) VectorTimesScalar 45 43 + Return + FunctionEnd diff --git a/Test/hlsl.amend.frag b/Test/hlsl.amend.frag new file mode 100755 index 00000000..c9fd69bd --- /dev/null +++ b/Test/hlsl.amend.frag @@ -0,0 +1,28 @@ +float4 a; +float b; + +void f1() +{ + a * b; +} + +float3 c; + +void f2() +{ + a.x + b + c.x; +} + +void f3() +{ + c; +} + +int d; + +void f4() +{ + d * a; +} + +int e; \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 24002550..2d79b424 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1527" +#define GLSLANG_REVISION "Overload400-PrecQual.1528" #define GLSLANG_DATE "29-Sep-2016" diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index 54715ce1..a8e83d01 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -196,7 +196,7 @@ void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberTyp TType blockType(new TTypeList, blockName, blockQualifier); TString* instanceName = NewPoolTString(""); globalUniformBlock = new TVariable(instanceName, blockType, true); - globalUniformBlockAdded = false; + firstNewMember = 0; } // add the requested member as a member to the block @@ -205,7 +205,6 @@ void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberTyp type->setFieldName(memberName); TTypeLoc typeLoc = {type, loc}; globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); - globalUniformBlockChanged = true; } // @@ -218,17 +217,25 @@ bool TParseContextBase::insertGlobalUniformBlock() if (globalUniformBlock == nullptr) return true; - if (globalUniformBlockAdded) - return ! globalUniformBlockChanged; - - globalUniformBlockChanged = false; - globalUniformBlockAdded = symbolTable.insert(*globalUniformBlock); - if (globalUniformBlockAdded) { - intermediate.addSymbolLinkageNode(linkage, *globalUniformBlock); - finalizeGlobalUniformBlockLayout(*globalUniformBlock); + int numMembers = globalUniformBlock->getType().getStruct()->size(); + bool inserted; + if (firstNewMember == 0) { + // This is the first request; we need a normal symbol table insert + inserted = symbolTable.insert(*globalUniformBlock); + if (inserted) + intermediate.addSymbolLinkageNode(linkage, *globalUniformBlock); + } else if (firstNewMember <= numMembers) { + // This is a follow-on request; we need to amend the first insert + inserted = symbolTable.amend(*globalUniformBlock, firstNewMember); } - return globalUniformBlockAdded; + if (inserted) { + finalizeGlobalUniformBlockLayout(*globalUniformBlock); + firstNewMember = numMembers; + } + + return inserted; + } } // end namespace glslang diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index b007ebbb..e377501d 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -158,8 +158,7 @@ protected: // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) TVariable* globalUniformBlock; // the actual block, inserted into the symbol table - bool globalUniformBlockAdded; // true once inserted into the symbol table - bool globalUniformBlockChanged; // true if members have changed + int firstNewMember; // the index of the first member not yet inserted into the symbol table // override this to set the language-specific name virtual const char* getGlobalUniformBlockName() { return ""; } virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h index 97c3d6b5..aeec34fc 100644 --- a/glslang/MachineIndependent/SymbolTable.h +++ b/glslang/MachineIndependent/SymbolTable.h @@ -147,7 +147,8 @@ public: TVariable(const TString *name, const TType& t, bool uT = false ) : TSymbol(name), userType(uT), - constSubtree(nullptr) { type.shallowCopy(t); } + constSubtree(nullptr), + anonId(-1) { type.shallowCopy(t); } virtual TVariable* clone() const; virtual ~TVariable() { } @@ -161,6 +162,8 @@ public: virtual void setConstArray(const TConstUnionArray& array) { constArray = array; } virtual void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } virtual TIntermTyped* getConstSubtree() const { return constSubtree; } + virtual void setAnonId(int i) { anonId = i; } + virtual int getAnonId() const { return anonId; } virtual void dump(TInfoSink &infoSink) const; @@ -178,6 +181,7 @@ protected: // constant, or neither, but never both. TConstUnionArray constArray; // for compile-time constant value TIntermTyped* constSubtree; // for specialization constant computation + int anonId; // the ID used for anonymous blocks: TODO: see if uniqueId could serve a dual purpose }; // @@ -305,27 +309,16 @@ public: // // returning true means symbol was added to the table with no semantic errors // - tInsertResult result; const TString& name = symbol.getName(); if (name == "") { + symbol.getAsVariable()->setAnonId(anonId++); // An empty name means an anonymous container, exposing its members to the external scope. // Give it a name and insert its members in the symbol table, pointing to the container. char buf[20]; - snprintf(buf, 20, "%s%d", AnonymousPrefix, anonId); + snprintf(buf, 20, "%s%d", AnonymousPrefix, symbol.getAsVariable()->getAnonId()); symbol.changeName(NewPoolTString(buf)); - bool isOkay = true; - const TTypeList& types = *symbol.getAsVariable()->getType().getStruct(); - for (unsigned int m = 0; m < types.size(); ++m) { - TAnonMember* member = new TAnonMember(&types[m].type->getFieldName(), m, *symbol.getAsVariable(), anonId); - result = level.insert(tLevelPair(member->getMangledName(), member)); - if (! result.second) - isOkay = false; - } - - ++anonId; - - return isOkay; + return insertAnonymousMembers(symbol, 0); } else { // Check for redefinition errors: // - STL itself will tell us if there is a direct name collision, with name mangling, at this level @@ -340,14 +333,35 @@ public: level.insert(tLevelPair(insertName, &symbol)); return true; - } else { - result = level.insert(tLevelPair(insertName, &symbol)); - - return result.second; - } + } else + return level.insert(tLevelPair(insertName, &symbol)).second; } } + // Add more members to an already inserted aggregate object + bool amend(TSymbol& symbol, int firstNewMember) + { + // See insert() for comments on basic explanation of insert. + // This operates similarly, but more simply. + // Only supporting amend of anonymous blocks so far. + if (IsAnonymous(symbol.getName())) + return insertAnonymousMembers(symbol, firstNewMember); + else + return false; + } + + bool insertAnonymousMembers(TSymbol& symbol, int firstMember) + { + const TTypeList& types = *symbol.getAsVariable()->getType().getStruct(); + for (unsigned int m = firstMember; m < types.size(); ++m) { + TAnonMember* member = new TAnonMember(&types[m].type->getFieldName(), m, *symbol.getAsVariable(), symbol.getAsVariable()->getAnonId()); + if (! level.insert(tLevelPair(member->getMangledName(), member)).second) + return false; + } + + return true; + } + TSymbol* find(const TString& name) const { tLevel::const_iterator it = level.find(name); @@ -546,6 +560,14 @@ public: return table[currentLevel()]->insert(symbol, separateNameSpaces); } + // Add more members to an already inserted aggregate object + bool amend(TSymbol& symbol, int firstNewMember) + { + // See insert() for comments on basic explanation of insert. + // This operates similarly, but more simply. + return table[currentLevel()]->amend(symbol, firstNewMember); + } + // // To allocate an internal temporary, which will need to be uniquely // identified by the consumer of the AST, but never need to diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2e191ba2..7467eb79 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -80,6 +80,7 @@ TEST_P(HlslCompileAndFlattenTest, FromFile) INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ + {"hlsl.amend.frag", "f1"}, {"hlsl.array.frag", "PixelShaderFunction"}, {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, From c9e3c3c941b4f56cd0abc6ee944b1b285ce593cb Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 29 Jul 2016 16:00:05 +0800 Subject: [PATCH 162/217] Parser: Implement extension GL_AMD_gpu_shader_half_float. - Add built-in types: float16_t, f16vec, f16mat. - Add support of half float constant: hf, HF. - Extend built-in floating-point operators: +, -, *, /, ++, --, +=, -=, *=, /=, ==, !=, >=, <=, >, <. - Add support of type conversions: float16_t -> XXX, XXX -> float16_t. - Add new built-in functions. --- SPIRV/CMakeLists.txt | 7 +- SPIRV/GLSL.ext.AMD.h | 5 +- SPIRV/GlslangToSpv.cpp | 106 +- SPIRV/SpvBuilder.cpp | 34 + SPIRV/SpvBuilder.h | 3 + SPIRV/bitutils.h | 81 + SPIRV/hex_float.h | 1076 ++ Test/baseResults/spv.float16.frag.out | 837 ++ Test/spv.float16.frag | 306 + glslang/Include/BaseTypes.h | 3 + glslang/Include/Types.h | 12 +- glslang/Include/intermediate.h | 35 + glslang/MachineIndependent/Constant.cpp | 9 + glslang/MachineIndependent/Initialize.cpp | 441 +- glslang/MachineIndependent/Intermediate.cpp | 172 +- glslang/MachineIndependent/ParseHelper.cpp | 26 + glslang/MachineIndependent/Scan.cpp | 52 +- glslang/MachineIndependent/SymbolTable.cpp | 3 + glslang/MachineIndependent/Versions.cpp | 15 + glslang/MachineIndependent/Versions.h | 9 +- glslang/MachineIndependent/gl_types.h | 18 + glslang/MachineIndependent/glslang.y | 141 +- glslang/MachineIndependent/glslang_tab.cpp | 8748 +++++++++-------- glslang/MachineIndependent/glslang_tab.cpp.h | 612 +- glslang/MachineIndependent/intermOut.cpp | 38 + glslang/MachineIndependent/linkValidate.cpp | 3 + glslang/MachineIndependent/parseVersions.h | 3 + .../MachineIndependent/preprocessor/Pp.cpp | 6 + .../preprocessor/PpScanner.cpp | 33 + .../preprocessor/PpTokens.cpp | 9 + .../preprocessor/PpTokens.h | 3 + glslang/MachineIndependent/reflection.cpp | 32 + gtests/CMakeLists.txt | 1 + gtests/HexFloat.cpp | 1232 +++ gtests/Spv.FromFile.cpp | 24 + 35 files changed, 9765 insertions(+), 4370 deletions(-) create mode 100644 SPIRV/bitutils.h create mode 100644 SPIRV/hex_float.h create mode 100644 Test/baseResults/spv.float16.frag.out create mode 100644 Test/spv.float16.frag create mode 100644 gtests/HexFloat.cpp diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index ad72276f..2c65d71a 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -11,10 +11,12 @@ set(SPVREMAP_SOURCES doc.cpp) set(HEADERS + bitutils.h spirv.hpp GLSL.std.450.h GLSL.ext.KHR.h GlslangToSpv.h + hex_float.h Logger.h SpvBuilder.h spvIR.h @@ -26,8 +28,9 @@ set(SPVREMAP_HEADERS doc.h) if(ENABLE_AMD_EXTENSIONS) - set(HEADERS - GLSL.ext.AMD.h) + list(APPEND + HEADERS + GLSL.ext.AMD.h) endif(ENABLE_AMD_EXTENSIONS) add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) diff --git a/SPIRV/GLSL.ext.AMD.h b/SPIRV/GLSL.ext.AMD.h index 633cea0c..d2098cc1 100644 --- a/SPIRV/GLSL.ext.AMD.h +++ b/SPIRV/GLSL.ext.AMD.h @@ -32,7 +32,7 @@ enum Decoration; enum Op; static const int GLSLextAMDVersion = 100; -static const int GLSLextAMDRevision = 1; +static const int GLSLextAMDRevision = 2; // SPV_AMD_shader_ballot static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; @@ -110,4 +110,7 @@ enum GcnShaderAMD { GcnShaderCountAMD }; +// SPV_AMD_gpu_shader_half_float +static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; + #endif // #ifndef GLSLextAMD_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index c79b6c21..6e18b2b6 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -1215,6 +1215,10 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI one = builder.makeFloatConstant(1.0F); else if (node->getBasicType() == glslang::EbtDouble) one = builder.makeDoubleConstant(1.0); +#ifdef AMD_EXTENSIONS + else if (node->getBasicType() == glslang::EbtFloat16) + one = builder.makeFloat16Constant(1.0F); +#endif else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) one = builder.makeInt64Constant(1); else @@ -1388,6 +1392,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDMat4x2: case glslang::EOpConstructDMat4x3: case glslang::EOpConstructDMat4x4: +#ifdef AMD_EXTENSIONS + case glslang::EOpConstructF16Mat2x2: + case glslang::EOpConstructF16Mat2x3: + case glslang::EOpConstructF16Mat2x4: + case glslang::EOpConstructF16Mat3x2: + case glslang::EOpConstructF16Mat3x3: + case glslang::EOpConstructF16Mat3x4: + case glslang::EOpConstructF16Mat4x2: + case glslang::EOpConstructF16Mat4x3: + case glslang::EOpConstructF16Mat4x4: +#endif isMatrix = true; // fall through case glslang::EOpConstructFloat: @@ -1398,6 +1413,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDVec2: case glslang::EOpConstructDVec3: case glslang::EOpConstructDVec4: +#ifdef AMD_EXTENSIONS + case glslang::EOpConstructFloat16: + case glslang::EOpConstructF16Vec2: + case glslang::EOpConstructF16Vec3: + case glslang::EOpConstructF16Vec4: +#endif case glslang::EOpConstructBool: case glslang::EOpConstructBVec2: case glslang::EOpConstructBVec3: @@ -1901,7 +1922,6 @@ spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle); } - // Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V. void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector& swizzle) { @@ -1936,6 +1956,13 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtDouble: spvType = builder.makeFloatType(64); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); + builder.addCapability(spv::CapabilityFloat16); + spvType = builder.makeFloatType(16); + break; +#endif case glslang::EbtBool: // "transparent" bool doesn't exist in SPIR-V. The GLSL convention is // a 32-bit int where non-0 means true. @@ -3040,7 +3067,11 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv glslang::TBasicType typeProxy, bool reduceComparison) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif bool isBool = typeProxy == glslang::EbtBool; spv::Op binOp = spv::OpNop; @@ -3366,7 +3397,11 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: int extBuiltins = -1; int libCall = -1; bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif switch (op) { case glslang::EOpNegative: @@ -3550,6 +3585,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: unaryOp = spv::OpBitcast; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpPackFloat2x16: + case glslang::EOpUnpackFloat2x16: + unaryOp = spv::OpBitcast; + break; +#endif + case glslang::EOpDPdx: unaryOp = spv::OpDPdx; break; @@ -3746,22 +3788,40 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToBool: + zero = builder.makeFloat16Constant(0.0F); + zero = makeSmearedConstant(zero, vectorSize); + return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#endif + case glslang::EOpConvBoolToFloat: convOp = spv::OpSelect; - zero = builder.makeFloatConstant(0.0); - one = builder.makeFloatConstant(1.0); + zero = builder.makeFloatConstant(0.0F); + one = builder.makeFloatConstant(1.0F); break; + case glslang::EOpConvBoolToDouble: convOp = spv::OpSelect; zero = builder.makeDoubleConstant(0.0); one = builder.makeDoubleConstant(1.0); break; + +#ifdef AMD_EXTENSIONS + case glslang::EOpConvBoolToFloat16: + convOp = spv::OpSelect; + zero = builder.makeFloat16Constant(0.0F); + one = builder.makeFloat16Constant(1.0F); + break; +#endif + case glslang::EOpConvBoolToInt: case glslang::EOpConvBoolToInt64: zero = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(0) : builder.makeIntConstant(0); one = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(1) : builder.makeIntConstant(1); convOp = spv::OpSelect; break; + case glslang::EOpConvBoolToUint: case glslang::EOpConvBoolToUint64: zero = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); @@ -3773,6 +3833,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvIntToDouble: case glslang::EOpConvInt64ToFloat: case glslang::EOpConvInt64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvIntToFloat16: + case glslang::EOpConvInt64ToFloat16: +#endif convOp = spv::OpConvertSToF; break; @@ -3780,11 +3844,21 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvUintToDouble: case glslang::EOpConvUint64ToFloat: case glslang::EOpConvUint64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvUintToFloat16: + case glslang::EOpConvUint64ToFloat16: +#endif convOp = spv::OpConvertUToF; break; case glslang::EOpConvDoubleToFloat: case glslang::EOpConvFloatToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvDoubleToFloat16: + case glslang::EOpConvFloat16ToDouble: + case glslang::EOpConvFloatToFloat16: + case glslang::EOpConvFloat16ToFloat: +#endif convOp = spv::OpFConvert; if (builder.isMatrixType(destType)) return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy); @@ -3794,6 +3868,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvDoubleToInt: case glslang::EOpConvFloatToInt64: case glslang::EOpConvDoubleToInt64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToInt: + case glslang::EOpConvFloat16ToInt64: +#endif convOp = spv::OpConvertFToS; break; @@ -3818,6 +3896,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvDoubleToUint: case glslang::EOpConvFloatToUint64: case glslang::EOpConvDoubleToUint64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToUint: + case glslang::EOpConvFloat16ToUint64: +#endif convOp = spv::OpConvertFToU; break; @@ -3987,7 +4069,11 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif spv::Op opCode = spv::OpNop; @@ -4185,7 +4271,11 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif spv::Op opCode = spv::OpNop; int extBuiltins = -1; @@ -4715,6 +4805,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst())); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst())); + break; +#endif case glslang::EbtBool: spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst())); break; @@ -4747,6 +4842,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); + break; +#endif case glslang::EbtBool: scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant); break; diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 7aaa51f9..c19f3683 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -46,6 +46,10 @@ #include "SpvBuilder.h" +#ifdef AMD_EXTENSIONS + #include "hex_float.h" +#endif + #ifndef _WIN32 #include #endif @@ -785,6 +789,36 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) return c->getResultId(); } +#ifdef AMD_EXTENSIONS +Id Builder::makeFloat16Constant(float f16, bool specConstant) +{ + Op opcode = specConstant ? OpSpecConstant : OpConstant; + Id typeId = makeFloatType(16); + + spvutils::HexFloat> fVal(f16); + spvutils::HexFloat> f16Val(0); + fVal.castTo(f16Val, spvutils::round_direction::kToZero); + + unsigned value = f16Val.value().getAsFloat().get_value(); + + // See if we already made it. Applies only to regular constants, because specialization constants + // must remain distinct for the purpose of applying a SpecId decoration. + if (!specConstant) { + Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); + if (existing) + return existing; + } + + Instruction* c = new Instruction(getUniqueId(), typeId, opcode); + c->addImmediateOperand(value); + constantsTypesGlobals.push_back(std::unique_ptr(c)); + groupedConstants[OpTypeFloat].push_back(c); + module.mapInstruction(c); + + return c->getResultId(); +} +#endif + Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const { Instruction* constant = 0; diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 6e709eaa..0e8d9cae 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -191,6 +191,9 @@ public: Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); } Id makeFloatConstant(float f, bool specConstant = false); Id makeDoubleConstant(double d, bool specConstant = false); +#ifdef AMD_EXTENSIONS + Id makeFloat16Constant(float f16, bool specConstant = false); +#endif // Turn the array of constants into a proper spv constant of the requested type. Id makeCompositeConstant(Id type, std::vector& comps, bool specConst = false); diff --git a/SPIRV/bitutils.h b/SPIRV/bitutils.h new file mode 100644 index 00000000..31288ab6 --- /dev/null +++ b/SPIRV/bitutils.h @@ -0,0 +1,81 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LIBSPIRV_UTIL_BITUTILS_H_ +#define LIBSPIRV_UTIL_BITUTILS_H_ + +#include +#include + +namespace spvutils { + +// Performs a bitwise copy of source to the destination type Dest. +template +Dest BitwiseCast(Src source) { + Dest dest; + static_assert(sizeof(source) == sizeof(dest), + "BitwiseCast: Source and destination must have the same size"); + std::memcpy(&dest, &source, sizeof(dest)); + return dest; +} + +// SetBits returns an integer of type with bits set +// for position through , counting from the least +// significant bit. In particular when Num == 0, no positions are set to 1. +// A static assert will be triggered if First + Num > sizeof(T) * 8, that is, +// a bit that will not fit in the underlying type is set. +template +struct SetBits { + static_assert(First < sizeof(T) * 8, + "Tried to set a bit that is shifted too far."); + const static T get = (T(1) << First) | SetBits::get; +}; + +template +struct SetBits { + const static T get = T(0); +}; + +// This is all compile-time so we can put our tests right here. +static_assert(SetBits::get == uint32_t(0x00000000), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0x00000001), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0x80000000), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0x00000006), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0xc0000000), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0x7FFFFFFF), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0xFFFFFFFF), + "SetBits failed"); +static_assert(SetBits::get == uint32_t(0xFFFF0000), + "SetBits failed"); + +static_assert(SetBits::get == uint64_t(0x0000000000000001LL), + "SetBits failed"); +static_assert(SetBits::get == uint64_t(0x8000000000000000LL), + "SetBits failed"); +static_assert(SetBits::get == uint64_t(0xc000000000000000LL), + "SetBits failed"); +static_assert(SetBits::get == uint64_t(0x0000000080000000LL), + "SetBits failed"); +static_assert(SetBits::get == uint64_t(0x00000000FFFF0000LL), + "SetBits failed"); + +} // namespace spvutils + +#endif // LIBSPIRV_UTIL_BITUTILS_H_ diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h new file mode 100644 index 00000000..ac7e0027 --- /dev/null +++ b/SPIRV/hex_float.h @@ -0,0 +1,1076 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LIBSPIRV_UTIL_HEX_FLOAT_H_ +#define LIBSPIRV_UTIL_HEX_FLOAT_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include "bitutils.h" + +namespace spvutils { + +class Float16 { + public: + Float16(uint16_t v) : val(v) {} + Float16() = default; + static bool isNan(const Float16& val) { + return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) != 0); + } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(const Float16& val) { + return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) == 0); + } + Float16(const Float16& other) { val = other.val; } + uint16_t get_value() const { return val; } + + // Returns the maximum normal value. + static Float16 max() { return Float16(0x7bff); } + // Returns the lowest normal value. + static Float16 lowest() { return Float16(0xfbff); } + + private: + uint16_t val; +}; + +// To specialize this type, you must override uint_type to define +// an unsigned integer that can fit your floating point type. +// You must also add a isNan function that returns true if +// a value is Nan. +template +struct FloatProxyTraits { + using uint_type = void; +}; + +template <> +struct FloatProxyTraits { + using uint_type = uint32_t; + static bool isNan(float f) { return std::isnan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(float f) { return std::isinf(f); } + // Returns the maximum normal value. + static float max() { return std::numeric_limits::max(); } + // Returns the lowest normal value. + static float lowest() { return std::numeric_limits::lowest(); } +}; + +template <> +struct FloatProxyTraits { + using uint_type = uint64_t; + static bool isNan(double f) { return std::isnan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(double f) { return std::isinf(f); } + // Returns the maximum normal value. + static double max() { return std::numeric_limits::max(); } + // Returns the lowest normal value. + static double lowest() { return std::numeric_limits::lowest(); } +}; + +template <> +struct FloatProxyTraits { + using uint_type = uint16_t; + static bool isNan(Float16 f) { return Float16::isNan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(Float16 f) { return Float16::isInfinity(f); } + // Returns the maximum normal value. + static Float16 max() { return Float16::max(); } + // Returns the lowest normal value. + static Float16 lowest() { return Float16::lowest(); } +}; + +// Since copying a floating point number (especially if it is NaN) +// does not guarantee that bits are preserved, this class lets us +// store the type and use it as a float when necessary. +template +class FloatProxy { + public: + using uint_type = typename FloatProxyTraits::uint_type; + + // Since this is to act similar to the normal floats, + // do not initialize the data by default. + FloatProxy() = default; + + // Intentionally non-explicit. This is a proxy type so + // implicit conversions allow us to use it more transparently. + FloatProxy(T val) { data_ = BitwiseCast(val); } + + // Intentionally non-explicit. This is a proxy type so + // implicit conversions allow us to use it more transparently. + FloatProxy(uint_type val) { data_ = val; } + + // This is helpful to have and is guaranteed not to stomp bits. + FloatProxy operator-() const { + return static_cast(data_ ^ + (uint_type(0x1) << (sizeof(T) * 8 - 1))); + } + + // Returns the data as a floating point value. + T getAsFloat() const { return BitwiseCast(data_); } + + // Returns the raw data. + uint_type data() const { return data_; } + + // Returns true if the value represents any type of NaN. + bool isNan() { return FloatProxyTraits::isNan(getAsFloat()); } + // Returns true if the value represents any type of infinity. + bool isInfinity() { return FloatProxyTraits::isInfinity(getAsFloat()); } + + // Returns the maximum normal value. + static FloatProxy max() { + return FloatProxy(FloatProxyTraits::max()); + } + // Returns the lowest normal value. + static FloatProxy lowest() { + return FloatProxy(FloatProxyTraits::lowest()); + } + + private: + uint_type data_; +}; + +template +bool operator==(const FloatProxy& first, const FloatProxy& second) { + return first.data() == second.data(); +} + +// Reads a FloatProxy value as a normal float from a stream. +template +std::istream& operator>>(std::istream& is, FloatProxy& value) { + T float_val; + is >> float_val; + value = FloatProxy(float_val); + return is; +} + +// This is an example traits. It is not meant to be used in practice, but will +// be the default for any non-specialized type. +template +struct HexFloatTraits { + // Integer type that can store this hex-float. + using uint_type = void; + // Signed integer type that can store this hex-float. + using int_type = void; + // The numerical type that this HexFloat represents. + using underlying_type = void; + // The type needed to construct the underlying type. + using native_type = void; + // The number of bits that are actually relevant in the uint_type. + // This allows us to deal with, for example, 24-bit values in a 32-bit + // integer. + static const uint32_t num_used_bits = 0; + // Number of bits that represent the exponent. + static const uint32_t num_exponent_bits = 0; + // Number of bits that represent the fractional part. + static const uint32_t num_fraction_bits = 0; + // The bias of the exponent. (How much we need to subtract from the stored + // value to get the correct value.) + static const uint32_t exponent_bias = 0; +}; + +// Traits for IEEE float. +// 1 sign bit, 8 exponent bits, 23 fractional bits. +template <> +struct HexFloatTraits> { + using uint_type = uint32_t; + using int_type = int32_t; + using underlying_type = FloatProxy; + using native_type = float; + static const uint_type num_used_bits = 32; + static const uint_type num_exponent_bits = 8; + static const uint_type num_fraction_bits = 23; + static const uint_type exponent_bias = 127; +}; + +// Traits for IEEE double. +// 1 sign bit, 11 exponent bits, 52 fractional bits. +template <> +struct HexFloatTraits> { + using uint_type = uint64_t; + using int_type = int64_t; + using underlying_type = FloatProxy; + using native_type = double; + static const uint_type num_used_bits = 64; + static const uint_type num_exponent_bits = 11; + static const uint_type num_fraction_bits = 52; + static const uint_type exponent_bias = 1023; +}; + +// Traits for IEEE half. +// 1 sign bit, 5 exponent bits, 10 fractional bits. +template <> +struct HexFloatTraits> { + using uint_type = uint16_t; + using int_type = int16_t; + using underlying_type = uint16_t; + using native_type = uint16_t; + static const uint_type num_used_bits = 16; + static const uint_type num_exponent_bits = 5; + static const uint_type num_fraction_bits = 10; + static const uint_type exponent_bias = 15; +}; + +enum class round_direction { + kToZero, + kToNearestEven, + kToPositiveInfinity, + kToNegativeInfinity, + max = kToNegativeInfinity +}; + +// Template class that houses a floating pointer number. +// It exposes a number of constants based on the provided traits to +// assist in interpreting the bits of the value. +template > +class HexFloat { + public: + using uint_type = typename Traits::uint_type; + using int_type = typename Traits::int_type; + using underlying_type = typename Traits::underlying_type; + using native_type = typename Traits::native_type; + + explicit HexFloat(T f) : value_(f) {} + + T value() const { return value_; } + void set_value(T f) { value_ = f; } + + // These are all written like this because it is convenient to have + // compile-time constants for all of these values. + + // Pass-through values to save typing. + static const uint32_t num_used_bits = Traits::num_used_bits; + static const uint32_t exponent_bias = Traits::exponent_bias; + static const uint32_t num_exponent_bits = Traits::num_exponent_bits; + static const uint32_t num_fraction_bits = Traits::num_fraction_bits; + + // Number of bits to shift left to set the highest relevant bit. + static const uint32_t top_bit_left_shift = num_used_bits - 1; + // How many nibbles (hex characters) the fractional part takes up. + static const uint32_t fraction_nibbles = (num_fraction_bits + 3) / 4; + // If the fractional part does not fit evenly into a hex character (4-bits) + // then we have to left-shift to get rid of leading 0s. This is the amount + // we have to shift (might be 0). + static const uint32_t num_overflow_bits = + fraction_nibbles * 4 - num_fraction_bits; + + // The representation of the fraction, not the actual bits. This + // includes the leading bit that is usually implicit. + static const uint_type fraction_represent_mask = + spvutils::SetBits::get; + + // The topmost bit in the nibble-aligned fraction. + static const uint_type fraction_top_bit = + uint_type(1) << (num_fraction_bits + num_overflow_bits - 1); + + // The least significant bit in the exponent, which is also the bit + // immediately to the left of the significand. + static const uint_type first_exponent_bit = uint_type(1) + << (num_fraction_bits); + + // The mask for the encoded fraction. It does not include the + // implicit bit. + static const uint_type fraction_encode_mask = + spvutils::SetBits::get; + + // The bit that is used as a sign. + static const uint_type sign_mask = uint_type(1) << top_bit_left_shift; + + // The bits that represent the exponent. + static const uint_type exponent_mask = + spvutils::SetBits::get; + + // How far left the exponent is shifted. + static const uint32_t exponent_left_shift = num_fraction_bits; + + // How far from the right edge the fraction is shifted. + static const uint32_t fraction_right_shift = + static_cast(sizeof(uint_type) * 8) - num_fraction_bits; + + // The maximum representable unbiased exponent. + static const int_type max_exponent = + (exponent_mask >> num_fraction_bits) - exponent_bias; + // The minimum representable exponent for normalized numbers. + static const int_type min_exponent = -static_cast(exponent_bias); + + // Returns the bits associated with the value. + uint_type getBits() const { return spvutils::BitwiseCast(value_); } + + // Returns the bits associated with the value, without the leading sign bit. + uint_type getUnsignedBits() const { + return static_cast(spvutils::BitwiseCast(value_) & + ~sign_mask); + } + + // Returns the bits associated with the exponent, shifted to start at the + // lsb of the type. + const uint_type getExponentBits() const { + return static_cast((getBits() & exponent_mask) >> + num_fraction_bits); + } + + // Returns the exponent in unbiased form. This is the exponent in the + // human-friendly form. + const int_type getUnbiasedExponent() const { + return static_cast(getExponentBits() - exponent_bias); + } + + // Returns just the significand bits from the value. + const uint_type getSignificandBits() const { + return getBits() & fraction_encode_mask; + } + + // If the number was normalized, returns the unbiased exponent. + // If the number was denormal, normalize the exponent first. + const int_type getUnbiasedNormalizedExponent() const { + if ((getBits() & ~sign_mask) == 0) { // special case if everything is 0 + return 0; + } + int_type exp = getUnbiasedExponent(); + if (exp == min_exponent) { // We are in denorm land. + uint_type significand_bits = getSignificandBits(); + while ((significand_bits & (first_exponent_bit >> 1)) == 0) { + significand_bits = static_cast(significand_bits << 1); + exp = static_cast(exp - 1); + } + significand_bits &= fraction_encode_mask; + } + return exp; + } + + // Returns the signficand after it has been normalized. + const uint_type getNormalizedSignificand() const { + int_type unbiased_exponent = getUnbiasedNormalizedExponent(); + uint_type significand = getSignificandBits(); + for (int_type i = unbiased_exponent; i <= min_exponent; ++i) { + significand = static_cast(significand << 1); + } + significand &= fraction_encode_mask; + return significand; + } + + // Returns true if this number represents a negative value. + bool isNegative() const { return (getBits() & sign_mask) != 0; } + + // Sets this HexFloat from the individual components. + // Note this assumes EVERY significand is normalized, and has an implicit + // leading one. This means that the only way that this method will set 0, + // is if you set a number so denormalized that it underflows. + // Do not use this method with raw bits extracted from a subnormal number, + // since subnormals do not have an implicit leading 1 in the significand. + // The significand is also expected to be in the + // lowest-most num_fraction_bits of the uint_type. + // The exponent is expected to be unbiased, meaning an exponent of + // 0 actually means 0. + // If underflow_round_up is set, then on underflow, if a number is non-0 + // and would underflow, we round up to the smallest denorm. + void setFromSignUnbiasedExponentAndNormalizedSignificand( + bool negative, int_type exponent, uint_type significand, + bool round_denorm_up) { + bool significand_is_zero = significand == 0; + + if (exponent <= min_exponent) { + // If this was denormalized, then we have to shift the bit on, meaning + // the significand is not zero. + significand_is_zero = false; + significand |= first_exponent_bit; + significand = static_cast(significand >> 1); + } + + while (exponent < min_exponent) { + significand = static_cast(significand >> 1); + ++exponent; + } + + if (exponent == min_exponent) { + if (significand == 0 && !significand_is_zero && round_denorm_up) { + significand = static_cast(0x1); + } + } + + uint_type new_value = 0; + if (negative) { + new_value = static_cast(new_value | sign_mask); + } + exponent = static_cast(exponent + exponent_bias); + assert(exponent >= 0); + + // put it all together + exponent = static_cast((exponent << exponent_left_shift) & + exponent_mask); + significand = static_cast(significand & fraction_encode_mask); + new_value = static_cast(new_value | (exponent | significand)); + value_ = BitwiseCast(new_value); + } + + // Increments the significand of this number by the given amount. + // If this would spill the significand into the implicit bit, + // carry is set to true and the significand is shifted to fit into + // the correct location, otherwise carry is set to false. + // All significands and to_increment are assumed to be within the bounds + // for a valid significand. + static uint_type incrementSignificand(uint_type significand, + uint_type to_increment, bool* carry) { + significand = static_cast(significand + to_increment); + *carry = false; + if (significand & first_exponent_bit) { + *carry = true; + // The implicit 1-bit will have carried, so we should zero-out the + // top bit and shift back. + significand = static_cast(significand & ~first_exponent_bit); + significand = static_cast(significand >> 1); + } + return significand; + } + + // These exist because MSVC throws warnings on negative right-shifts + // even if they are not going to be executed. Eg: + // constant_number < 0? 0: constant_number + // These convert the negative left-shifts into right shifts. + + template + struct negatable_left_shift { + static uint_type val(uint_type val) { + return static_cast(val >> -N); + } + }; + + template + struct negatable_left_shift= 0>::type> { + static uint_type val(uint_type val) { + return static_cast(val << N); + } + }; + + template + struct negatable_right_shift { + static uint_type val(uint_type val) { + return static_cast(val << -N); + } + }; + + template + struct negatable_right_shift= 0>::type> { + static uint_type val(uint_type val) { + return static_cast(val >> N); + } + }; + + // Returns the significand, rounded to fit in a significand in + // other_T. This is shifted so that the most significant + // bit of the rounded number lines up with the most significant bit + // of the returned significand. + template + typename other_T::uint_type getRoundedNormalizedSignificand( + round_direction dir, bool* carry_bit) { + using other_uint_type = typename other_T::uint_type; + static const int_type num_throwaway_bits = + static_cast(num_fraction_bits) - + static_cast(other_T::num_fraction_bits); + + static const uint_type last_significant_bit = + (num_throwaway_bits < 0) + ? 0 + : negatable_left_shift::val(1u); + static const uint_type first_rounded_bit = + (num_throwaway_bits < 1) + ? 0 + : negatable_left_shift::val(1u); + + static const uint_type throwaway_mask_bits = + num_throwaway_bits > 0 ? num_throwaway_bits : 0; + static const uint_type throwaway_mask = + spvutils::SetBits::get; + + *carry_bit = false; + other_uint_type out_val = 0; + uint_type significand = getNormalizedSignificand(); + // If we are up-casting, then we just have to shift to the right location. + if (num_throwaway_bits <= 0) { + out_val = static_cast(significand); + uint_type shift_amount = static_cast(-num_throwaway_bits); + out_val = static_cast(out_val << shift_amount); + return out_val; + } + + // If every non-representable bit is 0, then we don't have any casting to + // do. + if ((significand & throwaway_mask) == 0) { + return static_cast( + negatable_right_shift::val(significand)); + } + + bool round_away_from_zero = false; + // We actually have to narrow the significand here, so we have to follow the + // rounding rules. + switch (dir) { + case round_direction::kToZero: + break; + case round_direction::kToPositiveInfinity: + round_away_from_zero = !isNegative(); + break; + case round_direction::kToNegativeInfinity: + round_away_from_zero = isNegative(); + break; + case round_direction::kToNearestEven: + // Have to round down, round bit is 0 + if ((first_rounded_bit & significand) == 0) { + break; + } + if (((significand & throwaway_mask) & ~first_rounded_bit) != 0) { + // If any subsequent bit of the rounded portion is non-0 then we round + // up. + round_away_from_zero = true; + break; + } + // We are exactly half-way between 2 numbers, pick even. + if ((significand & last_significant_bit) != 0) { + // 1 for our last bit, round up. + round_away_from_zero = true; + break; + } + break; + } + + if (round_away_from_zero) { + return static_cast( + negatable_right_shift::val(incrementSignificand( + significand, last_significant_bit, carry_bit))); + } else { + return static_cast( + negatable_right_shift::val(significand)); + } + } + + // Casts this value to another HexFloat. If the cast is widening, + // then round_dir is ignored. If the cast is narrowing, then + // the result is rounded in the direction specified. + // This number will retain Nan and Inf values. + // It will also saturate to Inf if the number overflows, and + // underflow to (0 or min depending on rounding) if the number underflows. + template + void castTo(other_T& other, round_direction round_dir) { + other = other_T(static_cast(0)); + bool negate = isNegative(); + if (getUnsignedBits() == 0) { + if (negate) { + other.set_value(-other.value()); + } + return; + } + uint_type significand = getSignificandBits(); + bool carried = false; + typename other_T::uint_type rounded_significand = + getRoundedNormalizedSignificand(round_dir, &carried); + + int_type exponent = getUnbiasedExponent(); + if (exponent == min_exponent) { + // If we are denormal, normalize the exponent, so that we can encode + // easily. + exponent = static_cast(exponent + 1); + for (uint_type check_bit = first_exponent_bit >> 1; check_bit != 0; + check_bit = static_cast(check_bit >> 1)) { + exponent = static_cast(exponent - 1); + if (check_bit & significand) break; + } + } + + bool is_nan = + (getBits() & exponent_mask) == exponent_mask && significand != 0; + bool is_inf = + !is_nan && + ((exponent + carried) > static_cast(other_T::exponent_bias) || + (significand == 0 && (getBits() & exponent_mask) == exponent_mask)); + + // If we are Nan or Inf we should pass that through. + if (is_inf) { + other.set_value(BitwiseCast( + static_cast( + (negate ? other_T::sign_mask : 0) | other_T::exponent_mask))); + return; + } + if (is_nan) { + typename other_T::uint_type shifted_significand; + shifted_significand = static_cast( + negatable_left_shift< + static_cast(other_T::num_fraction_bits) - + static_cast(num_fraction_bits)>::val(significand)); + + // We are some sort of Nan. We try to keep the bit-pattern of the Nan + // as close as possible. If we had to shift off bits so we are 0, then we + // just set the last bit. + other.set_value(BitwiseCast( + static_cast( + (negate ? other_T::sign_mask : 0) | other_T::exponent_mask | + (shifted_significand == 0 ? 0x1 : shifted_significand)))); + return; + } + + bool round_underflow_up = + isNegative() ? round_dir == round_direction::kToNegativeInfinity + : round_dir == round_direction::kToPositiveInfinity; + using other_int_type = typename other_T::int_type; + // setFromSignUnbiasedExponentAndNormalizedSignificand will + // zero out any underflowing value (but retain the sign). + other.setFromSignUnbiasedExponentAndNormalizedSignificand( + negate, static_cast(exponent), rounded_significand, + round_underflow_up); + return; + } + + private: + T value_; + + static_assert(num_used_bits == + Traits::num_exponent_bits + Traits::num_fraction_bits + 1, + "The number of bits do not fit"); + static_assert(sizeof(T) == sizeof(uint_type), "The type sizes do not match"); +}; + +// Returns 4 bits represented by the hex character. +inline uint8_t get_nibble_from_character(int character) { + const char* dec = "0123456789"; + const char* lower = "abcdef"; + const char* upper = "ABCDEF"; + const char* p = nullptr; + if ((p = strchr(dec, character))) { + return static_cast(p - dec); + } else if ((p = strchr(lower, character))) { + return static_cast(p - lower + 0xa); + } else if ((p = strchr(upper, character))) { + return static_cast(p - upper + 0xa); + } + + assert(false && "This was called with a non-hex character"); + return 0; +} + +// Outputs the given HexFloat to the stream. +template +std::ostream& operator<<(std::ostream& os, const HexFloat& value) { + using HF = HexFloat; + using uint_type = typename HF::uint_type; + using int_type = typename HF::int_type; + + static_assert(HF::num_used_bits != 0, + "num_used_bits must be non-zero for a valid float"); + static_assert(HF::num_exponent_bits != 0, + "num_exponent_bits must be non-zero for a valid float"); + static_assert(HF::num_fraction_bits != 0, + "num_fractin_bits must be non-zero for a valid float"); + + const uint_type bits = spvutils::BitwiseCast(value.value()); + const char* const sign = (bits & HF::sign_mask) ? "-" : ""; + const uint_type exponent = static_cast( + (bits & HF::exponent_mask) >> HF::num_fraction_bits); + + uint_type fraction = static_cast((bits & HF::fraction_encode_mask) + << HF::num_overflow_bits); + + const bool is_zero = exponent == 0 && fraction == 0; + const bool is_denorm = exponent == 0 && !is_zero; + + // exponent contains the biased exponent we have to convert it back into + // the normal range. + int_type int_exponent = static_cast(exponent - HF::exponent_bias); + // If the number is all zeros, then we actually have to NOT shift the + // exponent. + int_exponent = is_zero ? 0 : int_exponent; + + // If we are denorm, then start shifting, and decreasing the exponent until + // our leading bit is 1. + + if (is_denorm) { + while ((fraction & HF::fraction_top_bit) == 0) { + fraction = static_cast(fraction << 1); + int_exponent = static_cast(int_exponent - 1); + } + // Since this is denormalized, we have to consume the leading 1 since it + // will end up being implicit. + fraction = static_cast(fraction << 1); // eat the leading 1 + fraction &= HF::fraction_represent_mask; + } + + uint_type fraction_nibbles = HF::fraction_nibbles; + // We do not have to display any trailing 0s, since this represents the + // fractional part. + while (fraction_nibbles > 0 && (fraction & 0xF) == 0) { + // Shift off any trailing values; + fraction = static_cast(fraction >> 4); + --fraction_nibbles; + } + + const auto saved_flags = os.flags(); + const auto saved_fill = os.fill(); + + os << sign << "0x" << (is_zero ? '0' : '1'); + if (fraction_nibbles) { + // Make sure to keep the leading 0s in place, since this is the fractional + // part. + os << "." << std::setw(static_cast(fraction_nibbles)) + << std::setfill('0') << std::hex << fraction; + } + os << "p" << std::dec << (int_exponent >= 0 ? "+" : "") << int_exponent; + + os.flags(saved_flags); + os.fill(saved_fill); + + return os; +} + +// Returns true if negate_value is true and the next character on the +// input stream is a plus or minus sign. In that case we also set the fail bit +// on the stream and set the value to the zero value for its type. +template +inline bool RejectParseDueToLeadingSign(std::istream& is, bool negate_value, + HexFloat& value) { + if (negate_value) { + auto next_char = is.peek(); + if (next_char == '-' || next_char == '+') { + // Fail the parse. Emulate standard behaviour by setting the value to + // the zero value, and set the fail bit on the stream. + value = HexFloat(typename HexFloat::uint_type{0}); + is.setstate(std::ios_base::failbit); + return true; + } + } + return false; +} + +// Parses a floating point number from the given stream and stores it into the +// value parameter. +// If negate_value is true then the number may not have a leading minus or +// plus, and if it successfully parses, then the number is negated before +// being stored into the value parameter. +// If the value cannot be correctly parsed or overflows the target floating +// point type, then set the fail bit on the stream. +// TODO(dneto): Promise C++11 standard behavior in how the value is set in +// the error case, but only after all target platforms implement it correctly. +// In particular, the Microsoft C++ runtime appears to be out of spec. +template +inline std::istream& ParseNormalFloat(std::istream& is, bool negate_value, + HexFloat& value) { + if (RejectParseDueToLeadingSign(is, negate_value, value)) { + return is; + } + T val; + is >> val; + if (negate_value) { + val = -val; + } + value.set_value(val); + // In the failure case, map -0.0 to 0.0. + if (is.fail() && value.getUnsignedBits() == 0u) { + value = HexFloat(typename HexFloat::uint_type{0}); + } + if (val.isInfinity()) { + // Fail the parse. Emulate standard behaviour by setting the value to + // the closest normal value, and set the fail bit on the stream. + value.set_value((value.isNegative() | negate_value) ? T::lowest() + : T::max()); + is.setstate(std::ios_base::failbit); + } + return is; +} + +// Specialization of ParseNormalFloat for FloatProxy values. +// This will parse the float as it were a 32-bit floating point number, +// and then round it down to fit into a Float16 value. +// The number is rounded towards zero. +// If negate_value is true then the number may not have a leading minus or +// plus, and if it successfully parses, then the number is negated before +// being stored into the value parameter. +// If the value cannot be correctly parsed or overflows the target floating +// point type, then set the fail bit on the stream. +// TODO(dneto): Promise C++11 standard behavior in how the value is set in +// the error case, but only after all target platforms implement it correctly. +// In particular, the Microsoft C++ runtime appears to be out of spec. +template <> +inline std::istream& +ParseNormalFloat, HexFloatTraits>>( + std::istream& is, bool negate_value, + HexFloat, HexFloatTraits>>& value) { + // First parse as a 32-bit float. + HexFloat> float_val(0.0f); + ParseNormalFloat(is, negate_value, float_val); + + // Then convert to 16-bit float, saturating at infinities, and + // rounding toward zero. + float_val.castTo(value, round_direction::kToZero); + + // Overflow on 16-bit behaves the same as for 32- and 64-bit: set the + // fail bit and set the lowest or highest value. + if (Float16::isInfinity(value.value().getAsFloat())) { + value.set_value(value.isNegative() ? Float16::lowest() : Float16::max()); + is.setstate(std::ios_base::failbit); + } + return is; +} + +// Reads a HexFloat from the given stream. +// If the float is not encoded as a hex-float then it will be parsed +// as a regular float. +// This may fail if your stream does not support at least one unget. +// Nan values can be encoded with "0x1.p+exponent_bias". +// This would normally overflow a float and round to +// infinity but this special pattern is the exact representation for a NaN, +// and therefore is actually encoded as the correct NaN. To encode inf, +// either 0x0p+exponent_bias can be specified or any exponent greater than +// exponent_bias. +// Examples using IEEE 32-bit float encoding. +// 0x1.0p+128 (+inf) +// -0x1.0p-128 (-inf) +// +// 0x1.1p+128 (+Nan) +// -0x1.1p+128 (-Nan) +// +// 0x1p+129 (+inf) +// -0x1p+129 (-inf) +template +std::istream& operator>>(std::istream& is, HexFloat& value) { + using HF = HexFloat; + using uint_type = typename HF::uint_type; + using int_type = typename HF::int_type; + + value.set_value(static_cast(0.f)); + + if (is.flags() & std::ios::skipws) { + // If the user wants to skip whitespace , then we should obey that. + while (std::isspace(is.peek())) { + is.get(); + } + } + + auto next_char = is.peek(); + bool negate_value = false; + + if (next_char != '-' && next_char != '0') { + return ParseNormalFloat(is, negate_value, value); + } + + if (next_char == '-') { + negate_value = true; + is.get(); + next_char = is.peek(); + } + + if (next_char == '0') { + is.get(); // We may have to unget this. + auto maybe_hex_start = is.peek(); + if (maybe_hex_start != 'x' && maybe_hex_start != 'X') { + is.unget(); + return ParseNormalFloat(is, negate_value, value); + } else { + is.get(); // Throw away the 'x'; + } + } else { + return ParseNormalFloat(is, negate_value, value); + } + + // This "looks" like a hex-float so treat it as one. + bool seen_p = false; + bool seen_dot = false; + uint_type fraction_index = 0; + + uint_type fraction = 0; + int_type exponent = HF::exponent_bias; + + // Strip off leading zeros so we don't have to special-case them later. + while ((next_char = is.peek()) == '0') { + is.get(); + } + + bool is_denorm = + true; // Assume denorm "representation" until we hear otherwise. + // NB: This does not mean the value is actually denorm, + // it just means that it was written 0. + bool bits_written = false; // Stays false until we write a bit. + while (!seen_p && !seen_dot) { + // Handle characters that are left of the fractional part. + if (next_char == '.') { + seen_dot = true; + } else if (next_char == 'p') { + seen_p = true; + } else if (::isxdigit(next_char)) { + // We know this is not denormalized since we have stripped all leading + // zeroes and we are not a ".". + is_denorm = false; + int number = get_nibble_from_character(next_char); + for (int i = 0; i < 4; ++i, number <<= 1) { + uint_type write_bit = (number & 0x8) ? 0x1 : 0x0; + if (bits_written) { + // If we are here the bits represented belong in the fractional + // part of the float, and we have to adjust the exponent accordingly. + fraction = static_cast( + fraction | + static_cast( + write_bit << (HF::top_bit_left_shift - fraction_index++))); + exponent = static_cast(exponent + 1); + } + bits_written |= write_bit != 0; + } + } else { + // We have not found our exponent yet, so we have to fail. + is.setstate(std::ios::failbit); + return is; + } + is.get(); + next_char = is.peek(); + } + bits_written = false; + while (seen_dot && !seen_p) { + // Handle only fractional parts now. + if (next_char == 'p') { + seen_p = true; + } else if (::isxdigit(next_char)) { + int number = get_nibble_from_character(next_char); + for (int i = 0; i < 4; ++i, number <<= 1) { + uint_type write_bit = (number & 0x8) ? 0x01 : 0x00; + bits_written |= write_bit != 0; + if (is_denorm && !bits_written) { + // Handle modifying the exponent here this way we can handle + // an arbitrary number of hex values without overflowing our + // integer. + exponent = static_cast(exponent - 1); + } else { + fraction = static_cast( + fraction | + static_cast( + write_bit << (HF::top_bit_left_shift - fraction_index++))); + } + } + } else { + // We still have not found our 'p' exponent yet, so this is not a valid + // hex-float. + is.setstate(std::ios::failbit); + return is; + } + is.get(); + next_char = is.peek(); + } + + bool seen_sign = false; + int8_t exponent_sign = 1; + int_type written_exponent = 0; + while (true) { + if ((next_char == '-' || next_char == '+')) { + if (seen_sign) { + is.setstate(std::ios::failbit); + return is; + } + seen_sign = true; + exponent_sign = (next_char == '-') ? -1 : 1; + } else if (::isdigit(next_char)) { + // Hex-floats express their exponent as decimal. + written_exponent = static_cast(written_exponent * 10); + written_exponent = + static_cast(written_exponent + (next_char - '0')); + } else { + break; + } + is.get(); + next_char = is.peek(); + } + + written_exponent = static_cast(written_exponent * exponent_sign); + exponent = static_cast(exponent + written_exponent); + + bool is_zero = is_denorm && (fraction == 0); + if (is_denorm && !is_zero) { + fraction = static_cast(fraction << 1); + exponent = static_cast(exponent - 1); + } else if (is_zero) { + exponent = 0; + } + + if (exponent <= 0 && !is_zero) { + fraction = static_cast(fraction >> 1); + fraction |= static_cast(1) << HF::top_bit_left_shift; + } + + fraction = (fraction >> HF::fraction_right_shift) & HF::fraction_encode_mask; + + const int_type max_exponent = + SetBits::get; + + // Handle actual denorm numbers + while (exponent < 0 && !is_zero) { + fraction = static_cast(fraction >> 1); + exponent = static_cast(exponent + 1); + + fraction &= HF::fraction_encode_mask; + if (fraction == 0) { + // We have underflowed our fraction. We should clamp to zero. + is_zero = true; + exponent = 0; + } + } + + // We have overflowed so we should be inf/-inf. + if (exponent > max_exponent) { + exponent = max_exponent; + fraction = 0; + } + + uint_type output_bits = static_cast( + static_cast(negate_value ? 1 : 0) << HF::top_bit_left_shift); + output_bits |= fraction; + + uint_type shifted_exponent = static_cast( + static_cast(exponent << HF::exponent_left_shift) & + HF::exponent_mask); + output_bits |= shifted_exponent; + + T output_float = spvutils::BitwiseCast(output_bits); + value.set_value(output_float); + + return is; +} + +// Writes a FloatProxy value to a stream. +// Zero and normal numbers are printed in the usual notation, but with +// enough digits to fully reproduce the value. Other values (subnormal, +// NaN, and infinity) are printed as a hex float. +template +std::ostream& operator<<(std::ostream& os, const FloatProxy& value) { + auto float_val = value.getAsFloat(); + switch (std::fpclassify(float_val)) { + case FP_ZERO: + case FP_NORMAL: { + auto saved_precision = os.precision(); + os.precision(std::numeric_limits::digits10); + os << float_val; + os.precision(saved_precision); + } break; + default: + os << HexFloat>(value); + break; + } + return os; +} + +template <> +inline std::ostream& operator<<(std::ostream& os, + const FloatProxy& value) { + os << HexFloat>(value); + return os; +} +} + +#endif // LIBSPIRV_UTIL_HEX_FLOAT_H_ diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out new file mode 100644 index 00000000..3c5b7815 --- /dev/null +++ b/Test/baseResults/spv.float16.frag.out @@ -0,0 +1,837 @@ +spv.float16.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 535 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability DerivativeControl + Capability InterpolationFunction + Extension "SPV_AMD_gpu_shader_half_float" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 465 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinAngleTrigFuncs(" + Name 14 "builtinExpFuncs(" + Name 16 "builtinCommonFuncs(" + Name 18 "builtinPackUnpackFuncs(" + Name 20 "builtinGeometryFuncs(" + Name 22 "builtinMatrixFuncs(" + Name 24 "builtinVecRelFuncs(" + Name 26 "builtinFragProcFuncs(" + Name 31 "f16v" + Name 42 "f16v" + Name 64 "f16m" + Name 87 "f16" + Name 111 "b" + Name 153 "f16v" + Name 156 "bv" + Name 167 "fv" + Name 175 "dv" + Name 186 "iv" + Name 193 "uv" + Name 201 "i64v" + Name 209 "u64v" + Name 216 "f16v2" + Name 217 "f16v1" + Name 249 "f16v2" + Name 250 "f16v1" + Name 266 "f16v2" + Name 267 "f16v1" + Name 288 "f16" + Name 292 "f16v3" + Name 332 "bv" + Name 353 "b" + Name 363 "iv" + Name 364 "ResType" + Name 372 "u" + Name 373 "f16v" + Name 378 "f16" + Name 379 "f16v1" + Name 383 "f16v2" + Name 389 "f16v3" + Name 408 "f16m3" + Name 409 "f16m1" + Name 411 "f16m2" + Name 420 "f16v1" + Name 422 "f16v2" + Name 427 "f16m4" + Name 430 "f16" + Name 433 "f16m5" + Name 438 "f16m6" + Name 439 "f16m7" + Name 442 "bv" + Name 443 "f16v1" + Name 445 "f16v2" + Name 463 "f16v" + Name 465 "if16v" + Name 515 "S" + MemberName 515(S) 0 "x" + MemberName 515(S) 1 "y" + MemberName 515(S) 2 "z" + Name 517 "B1" + MemberName 517(B1) 0 "a" + MemberName 517(B1) 1 "b" + MemberName 517(B1) 2 "c" + MemberName 517(B1) 3 "d" + MemberName 517(B1) 4 "e" + MemberName 517(B1) 5 "f" + MemberName 517(B1) 6 "g" + MemberName 517(B1) 7 "h" + Name 519 "" + Name 522 "S" + MemberName 522(S) 0 "x" + MemberName 522(S) 1 "y" + MemberName 522(S) 2 "z" + Name 524 "B2" + MemberName 524(B2) 0 "o" + MemberName 524(B2) 1 "p" + MemberName 524(B2) 2 "q" + MemberName 524(B2) 3 "r" + MemberName 524(B2) 4 "s" + MemberName 524(B2) 5 "t" + MemberName 524(B2) 6 "u" + MemberName 524(B2) 7 "v" + Name 526 "" + Decorate 513 ArrayStride 16 + Decorate 514 ArrayStride 32 + MemberDecorate 515(S) 0 Offset 0 + MemberDecorate 515(S) 1 Offset 4 + MemberDecorate 515(S) 2 Offset 8 + Decorate 516 ArrayStride 16 + MemberDecorate 517(B1) 0 Offset 0 + MemberDecorate 517(B1) 1 Offset 4 + MemberDecorate 517(B1) 2 Offset 8 + MemberDecorate 517(B1) 3 Offset 16 + MemberDecorate 517(B1) 4 ColMajor + MemberDecorate 517(B1) 4 Offset 48 + MemberDecorate 517(B1) 4 MatrixStride 16 + MemberDecorate 517(B1) 5 ColMajor + MemberDecorate 517(B1) 5 Offset 80 + MemberDecorate 517(B1) 5 MatrixStride 16 + MemberDecorate 517(B1) 6 Offset 144 + MemberDecorate 517(B1) 7 Offset 160 + Decorate 517(B1) Block + Decorate 519 DescriptorSet 0 + Decorate 520 ArrayStride 2 + Decorate 521 ArrayStride 12 + MemberDecorate 522(S) 0 Offset 0 + MemberDecorate 522(S) 1 Offset 4 + MemberDecorate 522(S) 2 Offset 8 + Decorate 523 ArrayStride 16 + MemberDecorate 524(B2) 0 Offset 0 + MemberDecorate 524(B2) 1 Offset 4 + MemberDecorate 524(B2) 2 Offset 8 + MemberDecorate 524(B2) 3 Offset 14 + MemberDecorate 524(B2) 4 RowMajor + MemberDecorate 524(B2) 4 Offset 20 + MemberDecorate 524(B2) 4 MatrixStride 4 + MemberDecorate 524(B2) 5 RowMajor + MemberDecorate 524(B2) 5 Offset 32 + MemberDecorate 524(B2) 5 MatrixStride 4 + MemberDecorate 524(B2) 6 Offset 56 + MemberDecorate 524(B2) 7 Offset 72 + Decorate 524(B2) BufferBlock + Decorate 526 DescriptorSet 0 + Decorate 527 SpecId 100 + Decorate 528 SpecId 101 + Decorate 529 SpecId 102 + 2: TypeVoid + 3: TypeFunction 2 + 28: TypeFloat 16 + 29: TypeVector 28(float) 2 + 30: TypePointer Function 29(fvec2) + 32: 28(float) Constant 16 + 33: TypeInt 32 0 + 34: 33(int) Constant 0 + 35: TypePointer Function 28(float) + 37: 28(float) Constant 46080 + 38: 28(float) Constant 10158 + 39: 29(fvec2) ConstantComposite 37 38 + 56: 28(float) Constant 15360 + 62: TypeMatrix 29(fvec2) 2 + 63: TypePointer Function 62 + 90: 33(int) Constant 1 + 109: TypeBool + 110: TypePointer Function 109(bool) + 151: TypeVector 28(float) 3 + 152: TypePointer Function 151(fvec3) + 154: TypeVector 109(bool) 3 + 155: TypePointer Function 154(bvec3) + 158: 28(float) Constant 0 + 159: 151(fvec3) ConstantComposite 158 158 158 + 160: 151(fvec3) ConstantComposite 56 56 56 + 164: TypeFloat 32 + 165: TypeVector 164(float) 3 + 166: TypePointer Function 165(fvec3) + 172: TypeFloat 64 + 173: TypeVector 172(float) 3 + 174: TypePointer Function 173(fvec3) + 183: TypeInt 32 1 + 184: TypeVector 183(int) 3 + 185: TypePointer Function 184(ivec3) + 191: TypeVector 33(int) 3 + 192: TypePointer Function 191(ivec3) + 198: TypeInt 64 1 + 199: TypeVector 198(int) 3 + 200: TypePointer Function 199(ivec3) + 206: TypeInt 64 0 + 207: TypeVector 206(int) 3 + 208: TypePointer Function 207(ivec3) + 214: TypeVector 28(float) 4 + 215: TypePointer Function 214(fvec4) + 364(ResType): TypeStruct 151(fvec3) 184(ivec3) + 371: TypePointer Function 33(int) + 406: TypeMatrix 151(fvec3) 2 + 407: TypePointer Function 406 + 425: TypeMatrix 29(fvec2) 3 + 426: TypePointer Function 425 + 431: TypeMatrix 151(fvec3) 3 + 432: TypePointer Function 431 + 436: TypeMatrix 214(fvec4) 4 + 437: TypePointer Function 436 + 464: TypePointer Input 151(fvec3) + 465(if16v): 464(ptr) Variable Input + 466: TypePointer Input 28(float) + 503: 183(int) Constant 1 + 508: TypeVector 164(float) 2 + 509: 164(float) Constant 1056964608 + 510: 508(fvec2) ConstantComposite 509 509 + 512: 33(int) Constant 2 + 513: TypeArray 28(float) 512 + 514: TypeArray 406 512 + 515(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 516: TypeArray 515(S) 512 + 517(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 513 406 514 515(S) 516 + 518: TypePointer Uniform 517(B1) + 519: 518(ptr) Variable Uniform + 520: TypeArray 28(float) 512 + 521: TypeArray 406 512 + 522(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 523: TypeArray 522(S) 512 + 524(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 520 406 521 522(S) 523 + 525: TypePointer Uniform 524(B2) + 526: 525(ptr) Variable Uniform + 527: 28(float) SpecConstant 12288 + 528: 164(float) SpecConstant 1048576000 + 529: 172(float) SpecConstant 0 1071644672 + 530: 164(float) SpecConstantOp 115 527 + 531: 164(float) SpecConstantOp 115 527 + 532: 172(float) SpecConstantOp 115 531 + 533: 28(float) SpecConstantOp 115 528 + 534: 28(float) SpecConstantOp 115 529 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 31(f16v): 30(ptr) Variable Function + 36: 35(ptr) AccessChain 31(f16v) 34 + Store 36 32 + 40: 29(fvec2) Load 31(f16v) + 41: 29(fvec2) FAdd 40 39 + Store 31(f16v) 41 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 42(f16v): 30(ptr) Variable Function + 64(f16m): 63(ptr) Variable Function + 87(f16): 35(ptr) Variable Function + 111(b): 110(ptr) Variable Function + 43: 29(fvec2) Load 42(f16v) + 44: 29(fvec2) Load 42(f16v) + 45: 29(fvec2) FAdd 44 43 + Store 42(f16v) 45 + 46: 29(fvec2) Load 42(f16v) + 47: 29(fvec2) Load 42(f16v) + 48: 29(fvec2) FSub 47 46 + Store 42(f16v) 48 + 49: 29(fvec2) Load 42(f16v) + 50: 29(fvec2) Load 42(f16v) + 51: 29(fvec2) FMul 50 49 + Store 42(f16v) 51 + 52: 29(fvec2) Load 42(f16v) + 53: 29(fvec2) Load 42(f16v) + 54: 29(fvec2) FDiv 53 52 + Store 42(f16v) 54 + 55: 29(fvec2) Load 42(f16v) + 57: 29(fvec2) CompositeConstruct 56 56 + 58: 29(fvec2) FAdd 55 57 + Store 42(f16v) 58 + 59: 29(fvec2) Load 42(f16v) + 60: 29(fvec2) CompositeConstruct 56 56 + 61: 29(fvec2) FSub 59 60 + Store 42(f16v) 61 + 65: 62 Load 64(f16m) + 66: 29(fvec2) CompositeConstruct 56 56 + 67: 29(fvec2) CompositeExtract 65 0 + 68: 29(fvec2) FAdd 67 66 + 69: 29(fvec2) CompositeExtract 65 1 + 70: 29(fvec2) FAdd 69 66 + 71: 62 CompositeConstruct 68 70 + Store 64(f16m) 71 + 72: 62 Load 64(f16m) + 73: 29(fvec2) CompositeConstruct 56 56 + 74: 29(fvec2) CompositeExtract 72 0 + 75: 29(fvec2) FSub 74 73 + 76: 29(fvec2) CompositeExtract 72 1 + 77: 29(fvec2) FSub 76 73 + 78: 62 CompositeConstruct 75 77 + Store 64(f16m) 78 + 79: 29(fvec2) Load 42(f16v) + 80: 29(fvec2) FNegate 79 + Store 42(f16v) 80 + 81: 62 Load 64(f16m) + 82: 29(fvec2) CompositeExtract 81 0 + 83: 29(fvec2) FNegate 82 + 84: 29(fvec2) CompositeExtract 81 1 + 85: 29(fvec2) FNegate 84 + 86: 62 CompositeConstruct 83 85 + Store 64(f16m) 86 + 88: 35(ptr) AccessChain 42(f16v) 34 + 89: 28(float) Load 88 + 91: 35(ptr) AccessChain 42(f16v) 90 + 92: 28(float) Load 91 + 93: 28(float) FAdd 89 92 + Store 87(f16) 93 + 94: 35(ptr) AccessChain 42(f16v) 34 + 95: 28(float) Load 94 + 96: 35(ptr) AccessChain 42(f16v) 90 + 97: 28(float) Load 96 + 98: 28(float) FSub 95 97 + Store 87(f16) 98 + 99: 35(ptr) AccessChain 42(f16v) 34 + 100: 28(float) Load 99 + 101: 35(ptr) AccessChain 42(f16v) 90 + 102: 28(float) Load 101 + 103: 28(float) FMul 100 102 + Store 87(f16) 103 + 104: 35(ptr) AccessChain 42(f16v) 34 + 105: 28(float) Load 104 + 106: 35(ptr) AccessChain 42(f16v) 90 + 107: 28(float) Load 106 + 108: 28(float) FDiv 105 107 + Store 87(f16) 108 + 112: 35(ptr) AccessChain 42(f16v) 34 + 113: 28(float) Load 112 + 114: 28(float) Load 87(f16) + 115: 109(bool) FOrdNotEqual 113 114 + Store 111(b) 115 + 116: 35(ptr) AccessChain 42(f16v) 90 + 117: 28(float) Load 116 + 118: 28(float) Load 87(f16) + 119: 109(bool) FOrdEqual 117 118 + Store 111(b) 119 + 120: 35(ptr) AccessChain 42(f16v) 34 + 121: 28(float) Load 120 + 122: 28(float) Load 87(f16) + 123: 109(bool) FOrdGreaterThan 121 122 + Store 111(b) 123 + 124: 35(ptr) AccessChain 42(f16v) 90 + 125: 28(float) Load 124 + 126: 28(float) Load 87(f16) + 127: 109(bool) FOrdLessThan 125 126 + Store 111(b) 127 + 128: 35(ptr) AccessChain 42(f16v) 34 + 129: 28(float) Load 128 + 130: 28(float) Load 87(f16) + 131: 109(bool) FOrdGreaterThanEqual 129 130 + Store 111(b) 131 + 132: 35(ptr) AccessChain 42(f16v) 90 + 133: 28(float) Load 132 + 134: 28(float) Load 87(f16) + 135: 109(bool) FOrdLessThanEqual 133 134 + Store 111(b) 135 + 136: 29(fvec2) Load 42(f16v) + 137: 28(float) Load 87(f16) + 138: 29(fvec2) VectorTimesScalar 136 137 + Store 42(f16v) 138 + 139: 62 Load 64(f16m) + 140: 28(float) Load 87(f16) + 141: 62 MatrixTimesScalar 139 140 + Store 64(f16m) 141 + 142: 62 Load 64(f16m) + 143: 29(fvec2) Load 42(f16v) + 144: 29(fvec2) MatrixTimesVector 142 143 + Store 42(f16v) 144 + 145: 29(fvec2) Load 42(f16v) + 146: 62 Load 64(f16m) + 147: 29(fvec2) VectorTimesMatrix 145 146 + Store 42(f16v) 147 + 148: 62 Load 64(f16m) + 149: 62 Load 64(f16m) + 150: 62 MatrixTimesMatrix 148 149 + Store 64(f16m) 150 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 153(f16v): 152(ptr) Variable Function + 156(bv): 155(ptr) Variable Function + 167(fv): 166(ptr) Variable Function + 175(dv): 174(ptr) Variable Function + 186(iv): 185(ptr) Variable Function + 193(uv): 192(ptr) Variable Function + 201(i64v): 200(ptr) Variable Function + 209(u64v): 208(ptr) Variable Function + 157: 154(bvec3) Load 156(bv) + 161: 151(fvec3) Select 157 160 159 + Store 153(f16v) 161 + 162: 151(fvec3) Load 153(f16v) + 163: 154(bvec3) FOrdNotEqual 162 159 + Store 156(bv) 163 + 168: 165(fvec3) Load 167(fv) + 169: 151(fvec3) FConvert 168 + Store 153(f16v) 169 + 170: 151(fvec3) Load 153(f16v) + 171: 165(fvec3) FConvert 170 + Store 167(fv) 171 + 176: 173(fvec3) Load 175(dv) + 177: 151(fvec3) FConvert 176 + Store 153(f16v) 177 + 178: 173(fvec3) Load 175(dv) + 179: 172(float) CompositeExtract 178 0 + 180: 172(float) CompositeExtract 178 1 + 181: 172(float) CompositeExtract 178 2 + 182: 173(fvec3) CompositeConstruct 179 180 181 + Store 175(dv) 182 + 187: 184(ivec3) Load 186(iv) + 188: 151(fvec3) ConvertSToF 187 + Store 153(f16v) 188 + 189: 151(fvec3) Load 153(f16v) + 190: 184(ivec3) ConvertFToS 189 + Store 186(iv) 190 + 194: 191(ivec3) Load 193(uv) + 195: 151(fvec3) ConvertUToF 194 + Store 153(f16v) 195 + 196: 151(fvec3) Load 153(f16v) + 197: 191(ivec3) ConvertFToU 196 + Store 193(uv) 197 + 202: 199(ivec3) Load 201(i64v) + 203: 151(fvec3) ConvertSToF 202 + Store 153(f16v) 203 + 204: 151(fvec3) Load 153(f16v) + 205: 199(ivec3) ConvertFToS 204 + Store 201(i64v) 205 + 210: 207(ivec3) Load 209(u64v) + 211: 151(fvec3) ConvertUToF 210 + Store 153(f16v) 211 + 212: 151(fvec3) Load 153(f16v) + 213: 207(ivec3) ConvertFToU 212 + Store 209(u64v) 213 + Return + FunctionEnd +12(builtinAngleTrigFuncs(): 2 Function None 3 + 13: Label + 216(f16v2): 215(ptr) Variable Function + 217(f16v1): 215(ptr) Variable Function + 218: 214(fvec4) Load 217(f16v1) + 219: 214(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 + Store 216(f16v2) 219 + 220: 214(fvec4) Load 217(f16v1) + 221: 214(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + Store 216(f16v2) 221 + 222: 214(fvec4) Load 217(f16v1) + 223: 214(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 + Store 216(f16v2) 223 + 224: 214(fvec4) Load 217(f16v1) + 225: 214(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 + Store 216(f16v2) 225 + 226: 214(fvec4) Load 217(f16v1) + 227: 214(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 + Store 216(f16v2) 227 + 228: 214(fvec4) Load 217(f16v1) + 229: 214(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 + Store 216(f16v2) 229 + 230: 214(fvec4) Load 217(f16v1) + 231: 214(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 + Store 216(f16v2) 231 + 232: 214(fvec4) Load 217(f16v1) + 233: 214(fvec4) Load 216(f16v2) + 234: 214(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 + Store 216(f16v2) 234 + 235: 214(fvec4) Load 217(f16v1) + 236: 214(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + Store 216(f16v2) 236 + 237: 214(fvec4) Load 217(f16v1) + 238: 214(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 + Store 216(f16v2) 238 + 239: 214(fvec4) Load 217(f16v1) + 240: 214(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 + Store 216(f16v2) 240 + 241: 214(fvec4) Load 217(f16v1) + 242: 214(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 + Store 216(f16v2) 242 + 243: 214(fvec4) Load 217(f16v1) + 244: 214(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 + Store 216(f16v2) 244 + 245: 214(fvec4) Load 217(f16v1) + 246: 214(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 + Store 216(f16v2) 246 + 247: 214(fvec4) Load 217(f16v1) + 248: 214(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 + Store 216(f16v2) 248 + Return + FunctionEnd +14(builtinExpFuncs(): 2 Function None 3 + 15: Label + 249(f16v2): 30(ptr) Variable Function + 250(f16v1): 30(ptr) Variable Function + 251: 29(fvec2) Load 250(f16v1) + 252: 29(fvec2) Load 249(f16v2) + 253: 29(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 + Store 249(f16v2) 253 + 254: 29(fvec2) Load 250(f16v1) + 255: 29(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + Store 249(f16v2) 255 + 256: 29(fvec2) Load 250(f16v1) + 257: 29(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 256 + Store 249(f16v2) 257 + 258: 29(fvec2) Load 250(f16v1) + 259: 29(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 + Store 249(f16v2) 259 + 260: 29(fvec2) Load 250(f16v1) + 261: 29(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 + Store 249(f16v2) 261 + 262: 29(fvec2) Load 250(f16v1) + 263: 29(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 + Store 249(f16v2) 263 + 264: 29(fvec2) Load 250(f16v1) + 265: 29(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 + Store 249(f16v2) 265 + Return + FunctionEnd +16(builtinCommonFuncs(): 2 Function None 3 + 17: Label + 266(f16v2): 152(ptr) Variable Function + 267(f16v1): 152(ptr) Variable Function + 288(f16): 35(ptr) Variable Function + 292(f16v3): 152(ptr) Variable Function + 332(bv): 155(ptr) Variable Function + 353(b): 110(ptr) Variable Function + 363(iv): 185(ptr) Variable Function + 268: 151(fvec3) Load 267(f16v1) + 269: 151(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 + Store 266(f16v2) 269 + 270: 151(fvec3) Load 267(f16v1) + 271: 151(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 + Store 266(f16v2) 271 + 272: 151(fvec3) Load 267(f16v1) + 273: 151(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 + Store 266(f16v2) 273 + 274: 151(fvec3) Load 267(f16v1) + 275: 151(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 + Store 266(f16v2) 275 + 276: 151(fvec3) Load 267(f16v1) + 277: 151(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 276 + Store 266(f16v2) 277 + 278: 151(fvec3) Load 267(f16v1) + 279: 151(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 + Store 266(f16v2) 279 + 280: 151(fvec3) Load 267(f16v1) + 281: 151(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 + Store 266(f16v2) 281 + 282: 151(fvec3) Load 267(f16v1) + 283: 151(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 + Store 266(f16v2) 283 + 284: 151(fvec3) Load 267(f16v1) + 285: 151(fvec3) Load 266(f16v2) + 286: 151(fvec3) FMod 284 285 + Store 266(f16v2) 286 + 287: 151(fvec3) Load 267(f16v1) + 289: 28(float) Load 288(f16) + 290: 151(fvec3) CompositeConstruct 289 289 289 + 291: 151(fvec3) FMod 287 290 + Store 266(f16v2) 291 + 293: 151(fvec3) Load 267(f16v1) + 294: 151(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) + Store 292(f16v3) 294 + 295: 151(fvec3) Load 267(f16v1) + 296: 151(fvec3) Load 266(f16v2) + 297: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + Store 292(f16v3) 297 + 298: 151(fvec3) Load 267(f16v1) + 299: 28(float) Load 288(f16) + 300: 151(fvec3) CompositeConstruct 299 299 299 + 301: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 + Store 292(f16v3) 301 + 302: 151(fvec3) Load 267(f16v1) + 303: 151(fvec3) Load 266(f16v2) + 304: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + Store 292(f16v3) 304 + 305: 151(fvec3) Load 267(f16v1) + 306: 28(float) Load 288(f16) + 307: 151(fvec3) CompositeConstruct 306 306 306 + 308: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 + Store 292(f16v3) 308 + 309: 151(fvec3) Load 267(f16v1) + 310: 28(float) Load 288(f16) + 311: 35(ptr) AccessChain 266(f16v2) 34 + 312: 28(float) Load 311 + 313: 151(fvec3) CompositeConstruct 310 310 310 + 314: 151(fvec3) CompositeConstruct 312 312 312 + 315: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 + Store 292(f16v3) 315 + 316: 151(fvec3) Load 267(f16v1) + 317: 151(fvec3) Load 266(f16v2) + 318: 28(float) Load 288(f16) + 319: 151(fvec3) CompositeConstruct 318 318 318 + 320: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 + Store 292(f16v3) 320 + 321: 151(fvec3) Load 267(f16v1) + 322: 151(fvec3) Load 266(f16v2) + 323: 28(float) Load 288(f16) + 324: 151(fvec3) CompositeConstruct 323 323 323 + 325: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 + Store 292(f16v3) 325 + 326: 151(fvec3) Load 267(f16v1) + 327: 151(fvec3) Load 266(f16v2) + 328: 151(fvec3) Load 292(f16v3) + 329: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 + Store 292(f16v3) 329 + 330: 151(fvec3) Load 267(f16v1) + 331: 151(fvec3) Load 266(f16v2) + 333: 154(bvec3) Load 332(bv) + 334: 151(fvec3) Select 333 331 330 + Store 292(f16v3) 334 + 335: 151(fvec3) Load 267(f16v1) + 336: 151(fvec3) Load 266(f16v2) + 337: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 + Store 292(f16v3) 337 + 338: 28(float) Load 288(f16) + 339: 151(fvec3) Load 292(f16v3) + 340: 151(fvec3) CompositeConstruct 338 338 338 + 341: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 + Store 292(f16v3) 341 + 342: 151(fvec3) Load 267(f16v1) + 343: 151(fvec3) Load 266(f16v2) + 344: 151(fvec3) Load 292(f16v3) + 345: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 + Store 292(f16v3) 345 + 346: 28(float) Load 288(f16) + 347: 35(ptr) AccessChain 267(f16v1) 34 + 348: 28(float) Load 347 + 349: 151(fvec3) Load 266(f16v2) + 350: 151(fvec3) CompositeConstruct 346 346 346 + 351: 151(fvec3) CompositeConstruct 348 348 348 + 352: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 + Store 292(f16v3) 352 + 354: 28(float) Load 288(f16) + 355: 109(bool) IsNan 354 + Store 353(b) 355 + 356: 151(fvec3) Load 267(f16v1) + 357: 154(bvec3) IsInf 356 + Store 332(bv) 357 + 358: 151(fvec3) Load 267(f16v1) + 359: 151(fvec3) Load 266(f16v2) + 360: 151(fvec3) Load 292(f16v3) + 361: 151(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 + Store 292(f16v3) 361 + 362: 151(fvec3) Load 267(f16v1) + 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 + 366: 184(ivec3) CompositeExtract 365 1 + Store 363(iv) 366 + 367: 151(fvec3) CompositeExtract 365 0 + Store 266(f16v2) 367 + 368: 151(fvec3) Load 267(f16v1) + 369: 184(ivec3) Load 363(iv) + 370: 151(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + Store 266(f16v2) 370 + Return + FunctionEnd +18(builtinPackUnpackFuncs(): 2 Function None 3 + 19: Label + 372(u): 371(ptr) Variable Function + 373(f16v): 30(ptr) Variable Function + 374: 29(fvec2) Load 373(f16v) + 375: 33(int) Bitcast 374 + Store 372(u) 375 + 376: 33(int) Load 372(u) + 377: 29(fvec2) Bitcast 376 + Store 373(f16v) 377 + Return + FunctionEnd +20(builtinGeometryFuncs(): 2 Function None 3 + 21: Label + 378(f16): 35(ptr) Variable Function + 379(f16v1): 152(ptr) Variable Function + 383(f16v2): 152(ptr) Variable Function + 389(f16v3): 152(ptr) Variable Function + 380: 151(fvec3) Load 379(f16v1) + 381: 28(float) ExtInst 1(GLSL.std.450) 66(Length) 380 + Store 378(f16) 381 + 382: 151(fvec3) Load 379(f16v1) + 384: 151(fvec3) Load 383(f16v2) + 385: 28(float) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 + Store 378(f16) 385 + 386: 151(fvec3) Load 379(f16v1) + 387: 151(fvec3) Load 383(f16v2) + 388: 28(float) Dot 386 387 + Store 378(f16) 388 + 390: 151(fvec3) Load 379(f16v1) + 391: 151(fvec3) Load 383(f16v2) + 392: 151(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 + Store 389(f16v3) 392 + 393: 151(fvec3) Load 379(f16v1) + 394: 151(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 + Store 383(f16v2) 394 + 395: 151(fvec3) Load 379(f16v1) + 396: 151(fvec3) Load 383(f16v2) + 397: 151(fvec3) Load 389(f16v3) + 398: 151(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 + Store 389(f16v3) 398 + 399: 151(fvec3) Load 379(f16v1) + 400: 151(fvec3) Load 383(f16v2) + 401: 151(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 + Store 389(f16v3) 401 + 402: 151(fvec3) Load 379(f16v1) + 403: 151(fvec3) Load 383(f16v2) + 404: 28(float) Load 378(f16) + 405: 151(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 + Store 389(f16v3) 405 + Return + FunctionEnd +22(builtinMatrixFuncs(): 2 Function None 3 + 23: Label + 408(f16m3): 407(ptr) Variable Function + 409(f16m1): 407(ptr) Variable Function + 411(f16m2): 407(ptr) Variable Function + 420(f16v1): 152(ptr) Variable Function + 422(f16v2): 30(ptr) Variable Function + 427(f16m4): 426(ptr) Variable Function + 430(f16): 35(ptr) Variable Function + 433(f16m5): 432(ptr) Variable Function + 438(f16m6): 437(ptr) Variable Function + 439(f16m7): 437(ptr) Variable Function + 410: 406 Load 409(f16m1) + 412: 406 Load 411(f16m2) + 413: 151(fvec3) CompositeExtract 410 0 + 414: 151(fvec3) CompositeExtract 412 0 + 415: 151(fvec3) FMul 413 414 + 416: 151(fvec3) CompositeExtract 410 1 + 417: 151(fvec3) CompositeExtract 412 1 + 418: 151(fvec3) FMul 416 417 + 419: 406 CompositeConstruct 415 418 + Store 408(f16m3) 419 + 421: 151(fvec3) Load 420(f16v1) + 423: 29(fvec2) Load 422(f16v2) + 424: 406 OuterProduct 421 423 + Store 409(f16m1) 424 + 428: 406 Load 409(f16m1) + 429: 425 Transpose 428 + Store 427(f16m4) 429 + 434: 431 Load 433(f16m5) + 435: 28(float) ExtInst 1(GLSL.std.450) 33(Determinant) 434 + Store 430(f16) 435 + 440: 436 Load 439(f16m7) + 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 + Store 438(f16m6) 441 + Return + FunctionEnd +24(builtinVecRelFuncs(): 2 Function None 3 + 25: Label + 442(bv): 155(ptr) Variable Function + 443(f16v1): 152(ptr) Variable Function + 445(f16v2): 152(ptr) Variable Function + 444: 151(fvec3) Load 443(f16v1) + 446: 151(fvec3) Load 445(f16v2) + 447: 154(bvec3) FOrdLessThan 444 446 + Store 442(bv) 447 + 448: 151(fvec3) Load 443(f16v1) + 449: 151(fvec3) Load 445(f16v2) + 450: 154(bvec3) FOrdLessThanEqual 448 449 + Store 442(bv) 450 + 451: 151(fvec3) Load 443(f16v1) + 452: 151(fvec3) Load 445(f16v2) + 453: 154(bvec3) FOrdGreaterThan 451 452 + Store 442(bv) 453 + 454: 151(fvec3) Load 443(f16v1) + 455: 151(fvec3) Load 445(f16v2) + 456: 154(bvec3) FOrdGreaterThanEqual 454 455 + Store 442(bv) 456 + 457: 151(fvec3) Load 443(f16v1) + 458: 151(fvec3) Load 445(f16v2) + 459: 154(bvec3) FOrdEqual 457 458 + Store 442(bv) 459 + 460: 151(fvec3) Load 443(f16v1) + 461: 151(fvec3) Load 445(f16v2) + 462: 154(bvec3) FOrdNotEqual 460 461 + Store 442(bv) 462 + Return + FunctionEnd +26(builtinFragProcFuncs(): 2 Function None 3 + 27: Label + 463(f16v): 152(ptr) Variable Function + 467: 466(ptr) AccessChain 465(if16v) 34 + 468: 28(float) Load 467 + 469: 28(float) DPdx 468 + 470: 35(ptr) AccessChain 463(f16v) 34 + Store 470 469 + 471: 466(ptr) AccessChain 465(if16v) 90 + 472: 28(float) Load 471 + 473: 28(float) DPdy 472 + 474: 35(ptr) AccessChain 463(f16v) 90 + Store 474 473 + 475: 151(fvec3) Load 465(if16v) + 476: 29(fvec2) VectorShuffle 475 475 0 1 + 477: 29(fvec2) DPdxFine 476 + 478: 151(fvec3) Load 463(f16v) + 479: 151(fvec3) VectorShuffle 478 477 3 4 2 + Store 463(f16v) 479 + 480: 151(fvec3) Load 465(if16v) + 481: 29(fvec2) VectorShuffle 480 480 0 1 + 482: 29(fvec2) DPdyFine 481 + 483: 151(fvec3) Load 463(f16v) + 484: 151(fvec3) VectorShuffle 483 482 3 4 2 + Store 463(f16v) 484 + 485: 151(fvec3) Load 465(if16v) + 486: 151(fvec3) DPdxCoarse 485 + Store 463(f16v) 486 + 487: 151(fvec3) Load 465(if16v) + 488: 151(fvec3) DPdxCoarse 487 + Store 463(f16v) 488 + 489: 466(ptr) AccessChain 465(if16v) 34 + 490: 28(float) Load 489 + 491: 28(float) Fwidth 490 + 492: 35(ptr) AccessChain 463(f16v) 34 + Store 492 491 + 493: 151(fvec3) Load 465(if16v) + 494: 29(fvec2) VectorShuffle 493 493 0 1 + 495: 29(fvec2) FwidthFine 494 + 496: 151(fvec3) Load 463(f16v) + 497: 151(fvec3) VectorShuffle 496 495 3 4 2 + Store 463(f16v) 497 + 498: 151(fvec3) Load 465(if16v) + 499: 151(fvec3) FwidthCoarse 498 + Store 463(f16v) 499 + 500: 466(ptr) AccessChain 465(if16v) 34 + 501: 28(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 + 502: 35(ptr) AccessChain 463(f16v) 34 + Store 502 501 + 504: 151(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 + 505: 29(fvec2) VectorShuffle 504 504 0 1 + 506: 151(fvec3) Load 463(f16v) + 507: 151(fvec3) VectorShuffle 506 505 3 4 2 + Store 463(f16v) 507 + 511: 151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 510 + Store 463(f16v) 511 + Return + FunctionEnd diff --git a/Test/spv.float16.frag b/Test/spv.float16.frag new file mode 100644 index 00000000..a88e2f1c --- /dev/null +++ b/Test/spv.float16.frag @@ -0,0 +1,306 @@ +#version 450 core + +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_ARB_gpu_shader_int64: enable + +void main() +{ +} + +// Half float literals +void literal() +{ + const float16_t f16c = 0.000001hf; + const f16vec2 f16cv = f16vec2(-0.25HF, 0.03HF); + + f16vec2 f16v; + f16v.x = f16c; + f16v += f16cv; +} + +// Block memory layout +struct S +{ + float16_t x; // rule 1: align = 2, takes offsets 0-1 + f16vec2 y; // rule 2: align = 4, takes offsets 4-7 + f16vec3 z; // rule 3: align = 8, takes offsets 8-13 +}; + +layout(column_major, std140) uniform B1 +{ + float16_t a; // rule 1: align = 2, takes offsets 0-1 + f16vec2 b; // rule 2: align = 4, takes offsets 4-7 + f16vec3 c; // rule 3: align = 8, takes offsets 8-15 + float16_t d[2]; // rule 4: align = 16, array stride = 16, + // takes offsets 16-47 + f16mat2x3 e; // rule 5: align = 16, matrix stride = 16, + // takes offsets 48-79 + f16mat2x3 f[2]; // rule 6: align = 16, matrix stride = 16, + // array stride = 32, f[0] takes + // offsets 80-111, f[1] takes offsets + // 112-143 + S g; // rule 9: align = 16, g.x takes offsets + // 144-145, g.y takes offsets 148-151, + // g.z takes offsets 152-159 + S h[2]; // rule 10: align = 16, array stride = 16, h[0] + // takes offsets 160-175, h[1] takes + // offsets 176-191 +}; + +layout(row_major, std430) buffer B2 +{ + float16_t o; // rule 1: align = 2, takes offsets 0-1 + f16vec2 p; // rule 2: align = 4, takes offsets 4-7 + f16vec3 q; // rule 3: align = 8, takes offsets 8-13 + float16_t r[2]; // rule 4: align = 2, array stride = 2, takes + // offsets 14-17 + f16mat2x3 s; // rule 7: align = 4, matrix stride = 4, takes + // offsets 20-31 + f16mat2x3 t[2]; // rule 8: align = 4, matrix stride = 4, array + // stride = 12, t[0] takes offsets + // 32-43, t[1] takes offsets 44-55 + S u; // rule 9: align = 8, u.x takes offsets + // 56-57, u.y takes offsets 60-63, u.z + // takes offsets 64-69 + S v[2]; // rule 10: align = 8, array stride = 16, v[0] + // takes offsets 72-87, v[1] takes + // offsets 88-103 +}; + +// Specialization constant +layout(constant_id = 100) const float16_t sf16 = 0.125hf; +layout(constant_id = 101) const float sf = 0.25; +layout(constant_id = 102) const double sd = 0.5lf; + +const float f16_to_f = float(sf16); +const double f16_to_d = float(sf16); + +const float16_t f_to_f16 = float16_t(sf); +const float16_t d_to_f16 = float16_t(sd); + +void operators() +{ + float16_t f16; + f16vec2 f16v; + f16mat2x2 f16m; + bool b; + + // Arithmetic + f16v += f16v; + f16v -= f16v; + f16v *= f16v; + f16v /= f16v; + f16v++; + f16v--; + ++f16m; + --f16m; + f16v = -f16v; + f16m = -f16m; + + f16 = f16v.x + f16v.y; + f16 = f16v.x - f16v.y; + f16 = f16v.x * f16v.y; + f16 = f16v.x / f16v.y; + + // Relational + b = (f16v.x != f16); + b = (f16v.y == f16); + b = (f16v.x > f16); + b = (f16v.y < f16); + b = (f16v.x >= f16); + b = (f16v.y <= f16); + + // Vector/matrix operations + f16v = f16v * f16; + f16m = f16m * f16; + f16v = f16m * f16v; + f16v = f16v * f16m; + f16m = f16m * f16m; +} + +void typeCast() +{ + bvec3 bv; + vec3 fv; + dvec3 dv; + ivec3 iv; + uvec3 uv; + i64vec3 i64v; + u64vec3 u64v; + + f16vec3 f16v; + + f16v = f16vec3(bv); // bool -> float16 + bv = bvec3(f16v); // float16 -> bool + + f16v = f16vec3(fv); // float -> float16 + fv = vec3(f16v); // float16 -> float + + f16v = f16vec3(dv); // double -> float16 + dv = dvec3(dv); // float16 -> double + + f16v = f16vec3(iv); // int -> float16 + iv = ivec3(f16v); // float16 -> int + + f16v = f16vec3(uv); // uint -> float16 + uv = uvec3(f16v); // float16 -> uint + + f16v = f16vec3(i64v); // int64 -> float16 + i64v = i64vec3(f16v); // float16 -> int64 + + f16v = f16vec3(u64v); // uint64 -> float16 + u64v = u64vec3(f16v); // float16 -> uint64 +} + +void builtinAngleTrigFuncs() +{ + f16vec4 f16v1, f16v2; + + f16v2 = radians(f16v1); + f16v2 = degrees(f16v1); + f16v2 = sin(f16v1); + f16v2 = cos(f16v1); + f16v2 = tan(f16v1); + f16v2 = asin(f16v1); + f16v2 = acos(f16v1); + f16v2 = atan(f16v1, f16v2); + f16v2 = atan(f16v1); + f16v2 = sinh(f16v1); + f16v2 = cosh(f16v1); + f16v2 = tanh(f16v1); + f16v2 = asinh(f16v1); + f16v2 = acosh(f16v1); + f16v2 = atanh(f16v1); +} + +void builtinExpFuncs() +{ + f16vec2 f16v1, f16v2; + + f16v2 = pow(f16v1, f16v2); + f16v2 = exp(f16v1); + f16v2 = log(f16v1); + f16v2 = exp2(f16v1); + f16v2 = log2(f16v1); + f16v2 = sqrt(f16v1); + f16v2 = inversesqrt(f16v1); +} + +void builtinCommonFuncs() +{ + f16vec3 f16v1, f16v2, f16v3; + float16_t f16; + bool b; + bvec3 bv; + ivec3 iv; + + f16v2 = abs(f16v1); + f16v2 = sign(f16v1); + f16v2 = floor(f16v1); + f16v2 = trunc(f16v1); + f16v2 = round(f16v1); + f16v2 = roundEven(f16v1); + f16v2 = ceil(f16v1); + f16v2 = fract(f16v1); + f16v2 = mod(f16v1, f16v2); + f16v2 = mod(f16v1, f16); + f16v3 = modf(f16v1, f16v2); + f16v3 = min(f16v1, f16v2); + f16v3 = min(f16v1, f16); + f16v3 = max(f16v1, f16v2); + f16v3 = max(f16v1, f16); + f16v3 = clamp(f16v1, f16, f16v2.x); + f16v3 = clamp(f16v1, f16v2, f16vec3(f16)); + f16v3 = mix(f16v1, f16v2, f16); + f16v3 = mix(f16v1, f16v2, f16v3); + f16v3 = mix(f16v1, f16v2, bv); + f16v3 = step(f16v1, f16v2); + f16v3 = step(f16, f16v3); + f16v3 = smoothstep(f16v1, f16v2, f16v3); + f16v3 = smoothstep(f16, f16v1.x, f16v2); + b = isnan(f16); + bv = isinf(f16v1); + f16v3 = fma(f16v1, f16v2, f16v3); + f16v2 = frexp(f16v1, iv); + f16v2 = ldexp(f16v1, iv); +} + +void builtinPackUnpackFuncs() +{ + uint u; + f16vec2 f16v; + + u = packFloat2x16(f16v); + f16v = unpackFloat2x16(u); +} + +void builtinGeometryFuncs() +{ + float16_t f16; + f16vec3 f16v1, f16v2, f16v3; + + f16 = length(f16v1); + f16 = distance(f16v1, f16v2); + f16 = dot(f16v1, f16v2); + f16v3 = cross(f16v1, f16v2); + f16v2 = normalize(f16v1); + f16v3 = faceforward(f16v1, f16v2, f16v3); + f16v3 = reflect(f16v1, f16v2); + f16v3 = refract(f16v1, f16v2, f16); +} + +void builtinMatrixFuncs() +{ + f16mat2x3 f16m1, f16m2, f16m3; + f16mat3x2 f16m4; + f16mat3 f16m5; + f16mat4 f16m6, f16m7; + + f16vec3 f16v1; + f16vec2 f16v2; + + float16_t f16; + + f16m3 = matrixCompMult(f16m1, f16m2); + f16m1 = outerProduct(f16v1, f16v2); + f16m4 = transpose(f16m1); + f16 = determinant(f16m5); + f16m6 = inverse(f16m7); +} + +void builtinVecRelFuncs() +{ + f16vec3 f16v1, f16v2; + bvec3 bv; + + bv = lessThan(f16v1, f16v2); + bv = lessThanEqual(f16v1, f16v2); + bv = greaterThan(f16v1, f16v2); + bv = greaterThanEqual(f16v1, f16v2); + bv = equal(f16v1, f16v2); + bv = notEqual(f16v1, f16v2); +} + +in f16vec3 if16v; + +void builtinFragProcFuncs() +{ + f16vec3 f16v; + + // Derivative + f16v.x = dFdx(if16v.x); + f16v.y = dFdy(if16v.y); + f16v.xy = dFdxFine(if16v.xy); + f16v.xy = dFdyFine(if16v.xy); + f16v = dFdxCoarse(if16v); + f16v = dFdxCoarse(if16v); + + f16v.x = fwidth(if16v.x); + f16v.xy = fwidthFine(if16v.xy); + f16v = fwidthCoarse(if16v); + + // Interpolation + f16v.x = interpolateAtCentroid(if16v.x); + f16v.xy = interpolateAtSample(if16v.xy, 1); + f16v = interpolateAtOffset(if16v, vec2(0.5)); +} diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index 64ef80c9..f7074406 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -46,6 +46,9 @@ enum TBasicType { EbtVoid, EbtFloat, EbtDouble, +#ifdef AMD_EXTENSIONS + EbtFloat16, +#endif EbtInt, EbtUint, EbtInt64, diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 6c2ded8e..5aa59c67 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -185,8 +185,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler, case EbtFloat: break; case EbtInt: s.append("i"); break; case EbtUint: s.append("u"); break; - case EbtInt64: s.append("i64"); break; - case EbtUint64: s.append("u64"); break; default: break; // some compilers want this } if (image) { @@ -1277,7 +1275,11 @@ public: virtual bool isImplicitlySizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage != EvqBuffer; } virtual bool isRuntimeSizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage == EvqBuffer; } virtual bool isStruct() const { return structure != nullptr; } +#ifdef AMD_EXTENSIONS + virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; } +#else virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; } +#endif virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } @@ -1359,6 +1361,9 @@ public: case EbtVoid: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif case EbtInt: case EbtUint: case EbtInt64: @@ -1451,6 +1456,9 @@ public: case EbtVoid: return "void"; case EbtFloat: return "float"; case EbtDouble: return "double"; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return "float16_t"; +#endif case EbtInt: return "int"; case EbtUint: return "uint"; case EbtInt64: return "int64_t"; diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 5166e3d5..27c798d1 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -119,6 +119,22 @@ enum TOperator { EOpConvFloatToUint64, EOpConvDoubleToUint64, EOpConvInt64ToUint64, +#ifdef AMD_EXTENSIONS + EOpConvBoolToFloat16, + EOpConvIntToFloat16, + EOpConvUintToFloat16, + EOpConvFloatToFloat16, + EOpConvDoubleToFloat16, + EOpConvInt64ToFloat16, + EOpConvUint64ToFloat16, + EOpConvFloat16ToBool, + EOpConvFloat16ToInt, + EOpConvFloat16ToUint, + EOpConvFloat16ToFloat, + EOpConvFloat16ToDouble, + EOpConvFloat16ToInt64, + EOpConvFloat16ToUint64, +#endif // // binary operations @@ -236,6 +252,10 @@ enum TOperator { EOpUnpackInt2x32, EOpPackUint2x32, EOpUnpackUint2x32, +#ifdef AMD_EXTENSIONS + EOpPackFloat2x16, + EOpUnpackFloat2x16, +#endif EOpLength, EOpDistance, @@ -396,6 +416,21 @@ enum TOperator { EOpConstructDMat4x2, EOpConstructDMat4x3, EOpConstructDMat4x4, +#ifdef AMD_EXTENSIONS + EOpConstructFloat16, + EOpConstructF16Vec2, + EOpConstructF16Vec3, + EOpConstructF16Vec4, + EOpConstructF16Mat2x2, + EOpConstructF16Mat2x3, + EOpConstructF16Mat2x4, + EOpConstructF16Mat3x2, + EOpConstructF16Mat3x3, + EOpConstructF16Mat3x4, + EOpConstructF16Mat4x2, + EOpConstructF16Mat4x3, + EOpConstructF16Mat4x4, +#endif EOpConstructStruct, EOpConstructTextureSampler, EOpConstructGuardEnd, diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp index 4adfd470..804626fa 100644 --- a/glslang/MachineIndependent/Constant.cpp +++ b/glslang/MachineIndependent/Constant.cpp @@ -176,6 +176,9 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right switch (getType().getBasicType()) { case EbtDouble: case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif newConstArray[i].setDConst(leftUnionArray[i].getDConst() / rightUnionArray[i].getDConst()); break; @@ -450,6 +453,9 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpNegative: switch (getType().getBasicType()) { case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break; case EbtInt: newConstArray[i].setIConst(-unionArray[i].getIConst()); break; case EbtUint: newConstArray[i].setUConst(static_cast(-static_cast(unionArray[i].getUConst()))); break; @@ -688,6 +694,9 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) // Second, do the actual folding bool isFloatingPoint = children[0]->getAsTyped()->getBasicType() == EbtFloat || +#ifdef AMD_EXTENSIONS + children[0]->getAsTyped()->getBasicType() == EbtFloat16 || +#endif children[0]->getAsTyped()->getBasicType() == EbtDouble; bool isSigned = children[0]->getAsTyped()->getBasicType() == EbtInt || children[0]->getAsTyped()->getBasicType() == EbtInt64; diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 9578d454..0cead64e 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -85,8 +85,6 @@ TBuiltIns::TBuiltIns() prefixes[EbtFloat] = ""; prefixes[EbtInt] = "i"; prefixes[EbtUint] = "u"; - prefixes[EbtInt64] = "i64"; - prefixes[EbtUint64] = "u64"; postfixes[2] = "2"; postfixes[3] = "3"; postfixes[4] = "4"; @@ -875,6 +873,21 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 mid3(uvec3, uvec3, uvec3);" "uvec4 mid3(uvec4, uvec4, uvec4);" + "float16_t min3(float16_t, float16_t, float16_t);" + "f16vec2 min3(f16vec2, f16vec2, f16vec2);" + "f16vec3 min3(f16vec3, f16vec3, f16vec3);" + "f16vec4 min3(f16vec4, f16vec4, f16vec4);" + + "float16_t max3(float16_t, float16_t, float16_t);" + "f16vec2 max3(f16vec2, f16vec2, f16vec2);" + "f16vec3 max3(f16vec3, f16vec3, f16vec3);" + "f16vec4 max3(f16vec4, f16vec4, f16vec4);" + + "float16_t mid3(float16_t, float16_t, float16_t);" + "f16vec2 mid3(f16vec2, f16vec2, f16vec2);" + "f16vec3 mid3(f16vec3, f16vec3, f16vec3);" + "f16vec4 mid3(f16vec4, f16vec4, f16vec4);" + "\n" ); } @@ -1709,6 +1722,354 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + + // GL_AMD_gpu_shader_half_float + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "float16_t radians(float16_t);" + "f16vec2 radians(f16vec2);" + "f16vec3 radians(f16vec3);" + "f16vec4 radians(f16vec4);" + + "float16_t degrees(float16_t);" + "f16vec2 degrees(f16vec2);" + "f16vec3 degrees(f16vec3);" + "f16vec4 degrees(f16vec4);" + + "float16_t sin(float16_t);" + "f16vec2 sin(f16vec2);" + "f16vec3 sin(f16vec3);" + "f16vec4 sin(f16vec4);" + + "float16_t cos(float16_t);" + "f16vec2 cos(f16vec2);" + "f16vec3 cos(f16vec3);" + "f16vec4 cos(f16vec4);" + + "float16_t tan(float16_t);" + "f16vec2 tan(f16vec2);" + "f16vec3 tan(f16vec3);" + "f16vec4 tan(f16vec4);" + + "float16_t asin(float16_t);" + "f16vec2 asin(f16vec2);" + "f16vec3 asin(f16vec3);" + "f16vec4 asin(f16vec4);" + + "float16_t acos(float16_t);" + "f16vec2 acos(f16vec2);" + "f16vec3 acos(f16vec3);" + "f16vec4 acos(f16vec4);" + + "float16_t atan(float16_t, float16_t);" + "f16vec2 atan(f16vec2, f16vec2);" + "f16vec3 atan(f16vec3, f16vec3);" + "f16vec4 atan(f16vec4, f16vec4);" + + "float16_t atan(float16_t);" + "f16vec2 atan(f16vec2);" + "f16vec3 atan(f16vec3);" + "f16vec4 atan(f16vec4);" + + "float16_t sinh(float16_t);" + "f16vec2 sinh(f16vec2);" + "f16vec3 sinh(f16vec3);" + "f16vec4 sinh(f16vec4);" + + "float16_t cosh(float16_t);" + "f16vec2 cosh(f16vec2);" + "f16vec3 cosh(f16vec3);" + "f16vec4 cosh(f16vec4);" + + "float16_t tanh(float16_t);" + "f16vec2 tanh(f16vec2);" + "f16vec3 tanh(f16vec3);" + "f16vec4 tanh(f16vec4);" + + "float16_t asinh(float16_t);" + "f16vec2 asinh(f16vec2);" + "f16vec3 asinh(f16vec3);" + "f16vec4 asinh(f16vec4);" + + "float16_t acosh(float16_t);" + "f16vec2 acosh(f16vec2);" + "f16vec3 acosh(f16vec3);" + "f16vec4 acosh(f16vec4);" + + "float16_t atanh(float16_t);" + "f16vec2 atanh(f16vec2);" + "f16vec3 atanh(f16vec3);" + "f16vec4 atanh(f16vec4);" + + "float16_t pow(float16_t, float16_t);" + "f16vec2 pow(f16vec2, f16vec2);" + "f16vec3 pow(f16vec3, f16vec3);" + "f16vec4 pow(f16vec4, f16vec4);" + + "float16_t exp(float16_t);" + "f16vec2 exp(f16vec2);" + "f16vec3 exp(f16vec3);" + "f16vec4 exp(f16vec4);" + + "float16_t log(float16_t);" + "f16vec2 log(f16vec2);" + "f16vec3 log(f16vec3);" + "f16vec4 log(f16vec4);" + + "float16_t exp2(float16_t);" + "f16vec2 exp2(f16vec2);" + "f16vec3 exp2(f16vec3);" + "f16vec4 exp2(f16vec4);" + + "float16_t log2(float16_t);" + "f16vec2 log2(f16vec2);" + "f16vec3 log2(f16vec3);" + "f16vec4 log2(f16vec4);" + + "float16_t sqrt(float16_t);" + "f16vec2 sqrt(f16vec2);" + "f16vec3 sqrt(f16vec3);" + "f16vec4 sqrt(f16vec4);" + + "float16_t inversesqrt(float16_t);" + "f16vec2 inversesqrt(f16vec2);" + "f16vec3 inversesqrt(f16vec3);" + "f16vec4 inversesqrt(f16vec4);" + + "float16_t abs(float16_t);" + "f16vec2 abs(f16vec2);" + "f16vec3 abs(f16vec3);" + "f16vec4 abs(f16vec4);" + + "float16_t sign(float16_t);" + "f16vec2 sign(f16vec2);" + "f16vec3 sign(f16vec3);" + "f16vec4 sign(f16vec4);" + + "float16_t floor(float16_t);" + "f16vec2 floor(f16vec2);" + "f16vec3 floor(f16vec3);" + "f16vec4 floor(f16vec4);" + + "float16_t trunc(float16_t);" + "f16vec2 trunc(f16vec2);" + "f16vec3 trunc(f16vec3);" + "f16vec4 trunc(f16vec4);" + + "float16_t round(float16_t);" + "f16vec2 round(f16vec2);" + "f16vec3 round(f16vec3);" + "f16vec4 round(f16vec4);" + + "float16_t roundEven(float16_t);" + "f16vec2 roundEven(f16vec2);" + "f16vec3 roundEven(f16vec3);" + "f16vec4 roundEven(f16vec4);" + + "float16_t ceil(float16_t);" + "f16vec2 ceil(f16vec2);" + "f16vec3 ceil(f16vec3);" + "f16vec4 ceil(f16vec4);" + + "float16_t fract(float16_t);" + "f16vec2 fract(f16vec2);" + "f16vec3 fract(f16vec3);" + "f16vec4 fract(f16vec4);" + + "float16_t mod(float16_t, float16_t);" + "f16vec2 mod(f16vec2, float16_t);" + "f16vec3 mod(f16vec3, float16_t);" + "f16vec4 mod(f16vec4, float16_t);" + "f16vec2 mod(f16vec2, f16vec2);" + "f16vec3 mod(f16vec3, f16vec3);" + "f16vec4 mod(f16vec4, f16vec4);" + + "float16_t modf(float16_t, out float16_t);" + "f16vec2 modf(f16vec2, out f16vec2);" + "f16vec3 modf(f16vec3, out f16vec3);" + "f16vec4 modf(f16vec4, out f16vec4);" + + "float16_t min(float16_t, float16_t);" + "f16vec2 min(f16vec2, float16_t);" + "f16vec3 min(f16vec3, float16_t);" + "f16vec4 min(f16vec4, float16_t);" + "f16vec2 min(f16vec2, f16vec2);" + "f16vec3 min(f16vec3, f16vec3);" + "f16vec4 min(f16vec4, f16vec4);" + + "float16_t max(float16_t, float16_t);" + "f16vec2 max(f16vec2, float16_t);" + "f16vec3 max(f16vec3, float16_t);" + "f16vec4 max(f16vec4, float16_t);" + "f16vec2 max(f16vec2, f16vec2);" + "f16vec3 max(f16vec3, f16vec3);" + "f16vec4 max(f16vec4, f16vec4);" + + "float16_t clamp(float16_t, float16_t, float16_t);" + "f16vec2 clamp(f16vec2, float16_t, float16_t);" + "f16vec3 clamp(f16vec3, float16_t, float16_t);" + "f16vec4 clamp(f16vec4, float16_t, float16_t);" + "f16vec2 clamp(f16vec2, f16vec2, f16vec2);" + "f16vec3 clamp(f16vec3, f16vec3, f16vec3);" + "f16vec4 clamp(f16vec4, f16vec4, f16vec4);" + + "float16_t mix(float16_t, float16_t, float16_t);" + "f16vec2 mix(f16vec2, f16vec2, float16_t);" + "f16vec3 mix(f16vec3, f16vec3, float16_t);" + "f16vec4 mix(f16vec4, f16vec4, float16_t);" + "f16vec2 mix(f16vec2, f16vec2, f16vec2);" + "f16vec3 mix(f16vec3, f16vec3, f16vec3);" + "f16vec4 mix(f16vec4, f16vec4, f16vec4);" + "float16_t mix(float16_t, float16_t, bool);" + "f16vec2 mix(f16vec2, f16vec2, bvec2);" + "f16vec3 mix(f16vec3, f16vec3, bvec3);" + "f16vec4 mix(f16vec4, f16vec4, bvec4);" + + "float16_t step(float16_t, float16_t);" + "f16vec2 step(f16vec2, f16vec2);" + "f16vec3 step(f16vec3, f16vec3);" + "f16vec4 step(f16vec4, f16vec4);" + "f16vec2 step(float16_t, f16vec2);" + "f16vec3 step(float16_t, f16vec3);" + "f16vec4 step(float16_t, f16vec4);" + + "float16_t smoothstep(float16_t, float16_t, float16_t);" + "f16vec2 smoothstep(f16vec2, f16vec2, f16vec2);" + "f16vec3 smoothstep(f16vec3, f16vec3, f16vec3);" + "f16vec4 smoothstep(f16vec4, f16vec4, f16vec4);" + "f16vec2 smoothstep(float16_t, float16_t, f16vec2);" + "f16vec3 smoothstep(float16_t, float16_t, f16vec3);" + "f16vec4 smoothstep(float16_t, float16_t, f16vec4);" + + "bool isnan(float16_t);" + "bvec2 isnan(f16vec2);" + "bvec3 isnan(f16vec3);" + "bvec4 isnan(f16vec4);" + + "bool isinf(float16_t);" + "bvec2 isinf(f16vec2);" + "bvec3 isinf(f16vec3);" + "bvec4 isinf(f16vec4);" + + "float16_t fma(float16_t, float16_t, float16_t);" + "f16vec2 fma(f16vec2, f16vec2, f16vec2);" + "f16vec3 fma(f16vec3, f16vec3, f16vec3);" + "f16vec4 fma(f16vec4, f16vec4, f16vec4);" + + "float16_t frexp(float16_t, out int);" + "f16vec2 frexp(f16vec2, out ivec2);" + "f16vec3 frexp(f16vec3, out ivec3);" + "f16vec4 frexp(f16vec4, out ivec4);" + + "float16_t ldexp(float16_t, in int);" + "f16vec2 ldexp(f16vec2, in ivec2);" + "f16vec3 ldexp(f16vec3, in ivec3);" + "f16vec4 ldexp(f16vec4, in ivec4);" + + "uint packFloat2x16(f16vec2);" + "f16vec2 unpackFloat2x16(uint);" + + "float16_t length(float16_t);" + "float16_t length(f16vec2);" + "float16_t length(f16vec3);" + "float16_t length(f16vec4);" + + "float16_t distance(float16_t, float16_t);" + "float16_t distance(f16vec2, f16vec2);" + "float16_t distance(f16vec3, f16vec3);" + "float16_t distance(f16vec4, f16vec4);" + + "float16_t dot(float16_t, float16_t);" + "float16_t dot(f16vec2, f16vec2);" + "float16_t dot(f16vec3, f16vec3);" + "float16_t dot(f16vec4, f16vec4);" + + "f16vec3 cross(f16vec3, f16vec3);" + + "float16_t normalize(float16_t);" + "f16vec2 normalize(f16vec2);" + "f16vec3 normalize(f16vec3);" + "f16vec4 normalize(f16vec4);" + + "float16_t faceforward(float16_t, float16_t, float16_t);" + "f16vec2 faceforward(f16vec2, f16vec2, f16vec2);" + "f16vec3 faceforward(f16vec3, f16vec3, f16vec3);" + "f16vec4 faceforward(f16vec4, f16vec4, f16vec4);" + + "float16_t reflect(float16_t, float16_t);" + "f16vec2 reflect(f16vec2, f16vec2);" + "f16vec3 reflect(f16vec3, f16vec3);" + "f16vec4 reflect(f16vec4, f16vec4);" + + "float16_t refract(float16_t, float16_t, float16_t);" + "f16vec2 refract(f16vec2, f16vec2, float16_t);" + "f16vec3 refract(f16vec3, f16vec3, float16_t);" + "f16vec4 refract(f16vec4, f16vec4, float16_t);" + + "f16mat2 matrixCompMult(f16mat2, f16mat2);" + "f16mat3 matrixCompMult(f16mat3, f16mat3);" + "f16mat4 matrixCompMult(f16mat4, f16mat4);" + "f16mat2x3 matrixCompMult(f16mat2x3, f16mat2x3);" + "f16mat2x4 matrixCompMult(f16mat2x4, f16mat2x4);" + "f16mat3x2 matrixCompMult(f16mat3x2, f16mat3x2);" + "f16mat3x4 matrixCompMult(f16mat3x4, f16mat3x4);" + "f16mat4x2 matrixCompMult(f16mat4x2, f16mat4x2);" + "f16mat4x3 matrixCompMult(f16mat4x3, f16mat4x3);" + + "f16mat2 outerProduct(f16vec2, f16vec2);" + "f16mat3 outerProduct(f16vec3, f16vec3);" + "f16mat4 outerProduct(f16vec4, f16vec4);" + "f16mat2x3 outerProduct(f16vec3, f16vec2);" + "f16mat3x2 outerProduct(f16vec2, f16vec3);" + "f16mat2x4 outerProduct(f16vec4, f16vec2);" + "f16mat4x2 outerProduct(f16vec2, f16vec4);" + "f16mat3x4 outerProduct(f16vec4, f16vec3);" + "f16mat4x3 outerProduct(f16vec3, f16vec4);" + + "f16mat2 transpose(f16mat2);" + "f16mat3 transpose(f16mat3);" + "f16mat4 transpose(f16mat4);" + "f16mat2x3 transpose(f16mat3x2);" + "f16mat3x2 transpose(f16mat2x3);" + "f16mat2x4 transpose(f16mat4x2);" + "f16mat4x2 transpose(f16mat2x4);" + "f16mat3x4 transpose(f16mat4x3);" + "f16mat4x3 transpose(f16mat3x4);" + + "float16_t determinant(f16mat2);" + "float16_t determinant(f16mat3);" + "float16_t determinant(f16mat4);" + + "f16mat2 inverse(f16mat2);" + "f16mat3 inverse(f16mat3);" + "f16mat4 inverse(f16mat4);" + + "bvec2 lessThan(f16vec2, f16vec2);" + "bvec3 lessThan(f16vec3, f16vec3);" + "bvec4 lessThan(f16vec4, f16vec4);" + + "bvec2 lessThanEqual(f16vec2, f16vec2);" + "bvec3 lessThanEqual(f16vec3, f16vec3);" + "bvec4 lessThanEqual(f16vec4, f16vec4);" + + "bvec2 greaterThan(f16vec2, f16vec2);" + "bvec3 greaterThan(f16vec3, f16vec3);" + "bvec4 greaterThan(f16vec4, f16vec4);" + + "bvec2 greaterThanEqual(f16vec2, f16vec2);" + "bvec3 greaterThanEqual(f16vec3, f16vec3);" + "bvec4 greaterThanEqual(f16vec4, f16vec4);" + + "bvec2 equal(f16vec2, f16vec2);" + "bvec3 equal(f16vec3, f16vec3);" + "bvec4 equal(f16vec4, f16vec4);" + + "bvec2 notEqual(f16vec2, f16vec2);" + "bvec3 notEqual(f16vec3, f16vec3);" + "bvec4 notEqual(f16vec4, f16vec4);" + + "\n"); + } #endif //============================================================================ @@ -1975,6 +2336,77 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 interpolateAtVertexAMD(uvec3, uint);" "uvec4 interpolateAtVertexAMD(uvec4, uint);" + "uint interpolateAtVertexAMD(float16_t, uint);" + "uvec2 interpolateAtVertexAMD(f16vec2, uint);" + "uvec3 interpolateAtVertexAMD(f16vec3, uint);" + "uvec4 interpolateAtVertexAMD(f16vec4, uint);" + + "\n"); + } + + // GL_AMD_gpu_shader_half_float + if (profile != EEsProfile && version >= 450) { + stageBuiltins[EShLangFragment].append( + "float16_t dFdx(float16_t);" + "f16vec2 dFdx(f16vec2);" + "f16vec3 dFdx(f16vec3);" + "f16vec4 dFdx(f16vec4);" + + "float16_t dFdy(float16_t);" + "f16vec2 dFdy(f16vec2);" + "f16vec3 dFdy(f16vec3);" + "f16vec4 dFdy(f16vec4);" + + "float16_t dFdxFine(float16_t);" + "f16vec2 dFdxFine(f16vec2);" + "f16vec3 dFdxFine(f16vec3);" + "f16vec4 dFdxFine(f16vec4);" + + "float16_t dFdyFine(float16_t);" + "f16vec2 dFdyFine(f16vec2);" + "f16vec3 dFdyFine(f16vec3);" + "f16vec4 dFdyFine(f16vec4);" + + "float16_t dFdxCoarse(float16_t);" + "f16vec2 dFdxCoarse(f16vec2);" + "f16vec3 dFdxCoarse(f16vec3);" + "f16vec4 dFdxCoarse(f16vec4);" + + "float16_t dFdyCoarse(float16_t);" + "f16vec2 dFdyCoarse(f16vec2);" + "f16vec3 dFdyCoarse(f16vec3);" + "f16vec4 dFdyCoarse(f16vec4);" + + "float16_t fwidth(float16_t);" + "f16vec2 fwidth(f16vec2);" + "f16vec3 fwidth(f16vec3);" + "f16vec4 fwidth(f16vec4);" + + "float16_t fwidthFine(float16_t);" + "f16vec2 fwidthFine(f16vec2);" + "f16vec3 fwidthFine(f16vec3);" + "f16vec4 fwidthFine(f16vec4);" + + "float16_t fwidthCoarse(float16_t);" + "f16vec2 fwidthCoarse(f16vec2);" + "f16vec3 fwidthCoarse(f16vec3);" + "f16vec4 fwidthCoarse(f16vec4);" + + "float16_t interpolateAtCentroid(float16_t);" + "f16vec2 interpolateAtCentroid(f16vec2);" + "f16vec3 interpolateAtCentroid(f16vec3);" + "f16vec4 interpolateAtCentroid(f16vec4);" + + "float16_t interpolateAtSample(float16_t, int);" + "f16vec2 interpolateAtSample(f16vec2, int);" + "f16vec3 interpolateAtSample(f16vec3, int);" + "f16vec4 interpolateAtSample(f16vec4, int);" + + "float16_t interpolateAtOffset(float16_t, vec2);" + "f16vec2 interpolateAtOffset(f16vec2, vec2);" + "f16vec3 interpolateAtOffset(f16vec3, vec2);" + "f16vec4 interpolateAtOffset(f16vec4, vec2);" + "\n"); } #endif @@ -4369,6 +4801,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); +#ifdef AMD_EXTENSIONS + symbolTable.relateToOperator("packFloat2x16", EOpPackFloat2x16); + symbolTable.relateToOperator("unpackFloat2x16", EOpUnpackFloat2x16); +#endif + symbolTable.relateToOperator("length", EOpLength); symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index a0bee74e..cababc35 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -268,6 +268,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: newType = EbtBool; break; case EOpConstructFloat: newType = EbtFloat; break; case EOpConstructDouble: newType = EbtDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: newType = EbtFloat16; break; +#endif default: break; // some compilers want this } @@ -293,6 +296,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: case EOpConstructFloat: case EOpConstructDouble: +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: +#endif return child; default: break; // some compilers want this } @@ -471,6 +477,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpConstructDouble: promoteTo = EbtDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: + promoteTo = EbtFloat16; + break; +#endif case EOpConstructInt: promoteTo = EbtInt; break; @@ -585,6 +596,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtUint: newOp = EOpConvUintToDouble; break; case EbtBool: newOp = EOpConvBoolToDouble; break; case EbtFloat: newOp = EOpConvFloatToDouble; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; +#endif case EbtInt64: newOp = EOpConvInt64ToDouble; break; case EbtUint64: newOp = EOpConvUint64ToDouble; break; default: @@ -597,18 +611,39 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtUint: newOp = EOpConvUintToFloat; break; case EbtBool: newOp = EOpConvBoolToFloat; break; case EbtDouble: newOp = EOpConvDoubleToFloat; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; +#endif case EbtInt64: newOp = EOpConvInt64ToFloat; break; case EbtUint64: newOp = EOpConvUint64ToFloat; break; default: return 0; } break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToFloat16; break; + case EbtUint: newOp = EOpConvUintToFloat16; break; + case EbtBool: newOp = EOpConvBoolToFloat16; break; + case EbtFloat: newOp = EOpConvFloatToFloat16; break; + case EbtDouble: newOp = EOpConvDoubleToFloat16; break; + case EbtInt64: newOp = EOpConvInt64ToFloat16; break; + case EbtUint64: newOp = EOpConvUint64ToFloat16; break; + default: + return 0; + } + break; +#endif case EbtBool: switch (node->getBasicType()) { case EbtInt: newOp = EOpConvIntToBool; break; case EbtUint: newOp = EOpConvUintToBool; break; case EbtFloat: newOp = EOpConvFloatToBool; break; case EbtDouble: newOp = EOpConvDoubleToBool; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToBool; break; +#endif case EbtInt64: newOp = EOpConvInt64ToBool; break; case EbtUint64: newOp = EOpConvUint64ToBool; break; default: @@ -621,6 +656,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToInt; break; case EbtFloat: newOp = EOpConvFloatToInt; break; case EbtDouble: newOp = EOpConvDoubleToInt; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt; break; +#endif case EbtInt64: newOp = EOpConvInt64ToInt; break; case EbtUint64: newOp = EOpConvUint64ToInt; break; default: @@ -633,6 +671,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToUint; break; case EbtFloat: newOp = EOpConvFloatToUint; break; case EbtDouble: newOp = EOpConvDoubleToUint; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint; break; +#endif case EbtInt64: newOp = EOpConvInt64ToUint; break; case EbtUint64: newOp = EOpConvUint64ToUint; break; default: @@ -646,6 +687,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToInt64; break; case EbtFloat: newOp = EOpConvFloatToInt64; break; case EbtDouble: newOp = EOpConvDoubleToInt64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; +#endif case EbtUint64: newOp = EOpConvUint64ToInt64; break; default: return 0; @@ -658,6 +702,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToUint64; break; case EbtFloat: newOp = EOpConvFloatToUint64; break; case EbtDouble: newOp = EOpConvDoubleToUint64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; +#endif case EbtInt64: newOp = EOpConvInt64ToUint64; break; default: return 0; @@ -779,6 +826,9 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtUint64: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif return true; default: return false; @@ -788,6 +838,9 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtInt: case EbtUint: case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif return true; default: return false; @@ -923,6 +976,47 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat2x2; break; + case 3: op = EOpConstructF16Mat2x3; break; + case 4: op = EOpConstructF16Mat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat3x2; break; + case 3: op = EOpConstructF16Mat3x3; break; + case 4: op = EOpConstructF16Mat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat4x2; break; + case 3: op = EOpConstructF16Mat4x3; break; + case 4: op = EOpConstructF16Mat4x4; break; + default: break; // some compilers want this + } + break; + } + } + else { + switch (type.getVectorSize()) { + case 1: op = EOpConstructFloat16; break; + case 2: op = EOpConstructF16Vec2; break; + case 3: op = EOpConstructF16Vec3; break; + case 4: op = EOpConstructF16Vec4; break; + default: break; // some compilers want this + } + } + break; +#endif case EbtInt: switch(type.getVectorSize()) { case 1: op = EOpConstructInt; break; @@ -1196,7 +1290,11 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(bool b, const TSourceLoc& TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseType, const TSourceLoc& loc, bool literal) const { +#ifdef AMD_EXTENSIONS + assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16); +#else assert(baseType == EbtFloat || baseType == EbtDouble); +#endif TConstUnionArray unionArray(1); unionArray[0].setDConst(d); @@ -1451,6 +1549,12 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpVectorSwizzle: case EOpConvFloatToDouble: case EOpConvDoubleToFloat: +#ifdef AMD_EXTENSIONS + case EOpConvFloat16ToFloat: + case EOpConvFloatToFloat16: + case EOpConvFloat16ToDouble: + case EOpConvDoubleToFloat16: +#endif return true; default: return false; @@ -1607,6 +1711,9 @@ bool TIntermUnary::promote() operand->getBasicType() != EbtInt64 && operand->getBasicType() != EbtUint64 && operand->getBasicType() != EbtFloat && +#ifdef AMD_EXTENSIONS + operand->getBasicType() != EbtFloat16 && +#endif operand->getBasicType() != EbtDouble) return false; @@ -1626,7 +1733,11 @@ bool TIntermUnary::promote() void TIntermUnary::updatePrecision() { +#ifdef AMD_EXTENSIONS + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif if (operand->getQualifier().precision > getQualifier().precision) getQualifier().precision = operand->getQualifier().precision; } @@ -1955,7 +2066,11 @@ bool TIntermBinary::promote() void TIntermBinary::updatePrecision() { +#ifdef AMD_EXTENSIONS + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); if (getQualifier().precision != EpqNone) { left->propagatePrecision(getQualifier().precision); @@ -1966,7 +2081,11 @@ void TIntermBinary::updatePrecision() void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision) { +#ifdef AMD_EXTENSIONS + if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat && getBasicType() != EbtFloat16)) +#else if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat)) +#endif return; getQualifier().precision = newPrecision; @@ -2040,10 +2159,11 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getBConst())); break; case EbtFloat: - leftUnionArray[i] = rightUnionArray[i]; - break; case EbtDouble: - leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getDConst())); +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + leftUnionArray[i] = rightUnionArray[i]; break; default: return node; @@ -2068,12 +2188,43 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i] = rightUnionArray[i]; break; default: return node; } break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (node->getType().getBasicType()) { + case EbtInt: + leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getIConst())); + break; + case EbtUint: + leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getUConst())); + break; + case EbtInt64: + leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getI64Const())); + break; + case EbtUint64: + leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getU64Const())); + break; + case EbtBool: + leftUnionArray[i].setDConst(static_cast(rightUnionArray[i].getBConst())); + break; + case EbtFloat: + case EbtDouble: + case EbtFloat16: + leftUnionArray[i] = rightUnionArray[i]; + break; + default: + return node; + } + break; +#endif case EbtInt: switch (node->getType().getBasicType()) { case EbtInt: @@ -2093,6 +2244,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setIConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2118,6 +2272,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setUConst(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2143,6 +2300,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setBConst(rightUnionArray[i].getDConst() != 0.0); break; default: @@ -2168,6 +2328,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setI64Const(static_cast(rightUnionArray[i].getDConst())); break; default: @@ -2193,6 +2356,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setU64Const(static_cast(rightUnionArray[i].getDConst())); break; default: diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 3c9caf13..a24a92d6 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4559,6 +4559,11 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) // containing a double, the offset must also be a multiple of 8..." if (type.containsBasicType(EbtDouble) && ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 8)) error(loc, "type contains double; xfb_offset must be a multiple of 8", "xfb_offset", ""); +#ifdef AMD_EXTENSIONS + // ..., if applied to an aggregate containing a float16_t, the offset must also be a multiple of 2..." + else if (type.containsBasicType(EbtFloat16) && !IsMultipleOfPow2(qualifier.layoutXfbOffset, 2)) + error(loc, "type contains half float; xfb_offset must be a multiple of 2", "xfb_offset", ""); +#endif else if (! IsMultipleOfPow2(qualifier.layoutXfbOffset, 4)) error(loc, "must be a multiple of size of first component", "xfb_offset", ""); } @@ -4662,6 +4667,9 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) case EbtBool: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif break; default: error(loc, "cannot be applied to this type", "constant_id", ""); @@ -5561,6 +5569,24 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructF16Vec2: + case EOpConstructF16Vec3: + case EOpConstructF16Vec4: + case EOpConstructF16Mat2x2: + case EOpConstructF16Mat2x3: + case EOpConstructF16Mat2x4: + case EOpConstructF16Mat3x2: + case EOpConstructF16Mat3x3: + case EOpConstructF16Mat3x4: + case EOpConstructF16Mat4x2: + case EOpConstructF16Mat4x3: + case EOpConstructF16Mat4x4: + case EOpConstructFloat16: + basicOp = EOpConstructFloat16; + break; +#endif + case EOpConstructIVec2: case EOpConstructIVec3: case EOpConstructIVec4: diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index ee0dbb40..37506454 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -463,6 +463,25 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["u64vec3"] = U64VEC3; (*KeywordMap)["u64vec4"] = U64VEC4; +#ifdef AMD_EXTENSIONS + (*KeywordMap)["float16_t"] = FLOAT16_T; + (*KeywordMap)["f16vec2"] = F16VEC2; + (*KeywordMap)["f16vec3"] = F16VEC3; + (*KeywordMap)["f16vec4"] = F16VEC4; + (*KeywordMap)["f16mat2"] = F16MAT2; + (*KeywordMap)["f16mat3"] = F16MAT3; + (*KeywordMap)["f16mat4"] = F16MAT4; + (*KeywordMap)["f16mat2x2"] = F16MAT2X2; + (*KeywordMap)["f16mat2x3"] = F16MAT2X3; + (*KeywordMap)["f16mat2x4"] = F16MAT2X4; + (*KeywordMap)["f16mat3x2"] = F16MAT3X2; + (*KeywordMap)["f16mat3x3"] = F16MAT3X3; + (*KeywordMap)["f16mat3x4"] = F16MAT3X4; + (*KeywordMap)["f16mat4x2"] = F16MAT4X2; + (*KeywordMap)["f16mat4x3"] = F16MAT4X3; + (*KeywordMap)["f16mat4x4"] = F16MAT4X4; +#endif + (*KeywordMap)["sampler2D"] = SAMPLER2D; (*KeywordMap)["samplerCube"] = SAMPLERCUBE; (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY; @@ -687,6 +706,9 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; +#endif case PpAtomIdentifier: { int token = tokenizeIdentifier(); @@ -938,10 +960,38 @@ int TScanContext::tokenizeIdentifier() case U64VEC2: case U64VEC3: case U64VEC4: - if (parseContext.profile != EEsProfile && parseContext.version >= 450) + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) return keyword; return identifierOrType(); +#ifdef AMD_EXTENSIONS + case FLOAT16_T: + case F16VEC2: + case F16VEC3: + case F16VEC4: + case F16MAT2: + case F16MAT3: + case F16MAT4: + case F16MAT2X2: + case F16MAT2X3: + case F16MAT2X4: + case F16MAT3X2: + case F16MAT3X3: + case F16MAT3X4: + case F16MAT4X2: + case F16MAT4X3: + case F16MAT4X4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); +#endif + case SAMPLERCUBEARRAY: case SAMPLERCUBEARRAYSHADOW: case ISAMPLERCUBEARRAY: diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index 2068f26b..fb09fdf9 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -60,6 +60,9 @@ void TType::buildMangledName(TString& mangledName) switch (basicType) { case EbtFloat: mangledName += 'f'; break; case EbtDouble: mangledName += 'd'; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: mangledName += "f16"; break; +#endif case EbtInt: mangledName += 'i'; break; case EbtUint: mangledName += 'u'; break; case EbtInt64: mangledName += "i64"; break; diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 52d205da..8a29cb37 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -192,6 +192,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_AMD_shader_trinary_minmax] = EBhDisable; extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; + extensionBehavior[E_GL_AMD_gpu_shader_half_float] = EBhDisable; #endif // AEP @@ -299,6 +300,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_AMD_shader_trinary_minmax 1\n" "#define GL_AMD_shader_explicit_vertex_parameter 1\n" "#define GL_AMD_gcn_shader 1\n" + "#define GL_AMD_gpu_shader_half_float 1\n" #endif ; } @@ -663,6 +665,19 @@ void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) profileRequires(loc, ECompatibilityProfile, 400, nullptr, op); } +#ifdef AMD_EXTENSIONS +// Call for any operation needing GLSL float16 data-type support. +void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (!builtIn) { + requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float, "shader half float"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} +#endif + // Call for any operation needing GLSL 64-bit integer data-type support. void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool builtIn) { diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 6fd08b05..17baf3b1 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -136,10 +136,11 @@ const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive"; #ifdef AMD_EXTENSIONS -const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; -const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; -const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; -const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; +const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; +const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; +const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; +const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; +const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float"; #endif // AEP diff --git a/glslang/MachineIndependent/gl_types.h b/glslang/MachineIndependent/gl_types.h index 9e877d37..d7cb31fe 100644 --- a/glslang/MachineIndependent/gl_types.h +++ b/glslang/MachineIndependent/gl_types.h @@ -76,6 +76,24 @@ #define GL_DOUBLE_MAT4x2 0x8F4D #define GL_DOUBLE_MAT4x3 0x8F4E +#ifdef AMD_EXTENSIONS +// Those constants are borrowed from extension NV_gpu_shader5 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB + +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD +#endif + #define GL_SAMPLER_1D 0x8B5D #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_3D 0x8B5F diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index a1628f61..060ffdd6 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -119,13 +119,14 @@ extern int yylex(YYSTYPE*, TParseContext&); %expect 1 // One shift reduce conflict because of if | else %token ATTRIBUTE VARYING -%token CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T +%token CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T FLOAT16_T %token BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT SUBROUTINE %token BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 I64VEC2 I64VEC3 I64VEC4 UVEC2 UVEC3 UVEC4 U64VEC2 U64VEC3 U64VEC4 VEC2 VEC3 VEC4 %token MAT2 MAT3 MAT4 CENTROID IN OUT INOUT %token UNIFORM PATCH SAMPLE BUFFER SHARED %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY %token DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 +%token F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4 %token NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD %token MAT2X2 MAT2X3 MAT2X4 @@ -134,6 +135,9 @@ extern int yylex(YYSTYPE*, TParseContext&); %token DMAT2X2 DMAT2X3 DMAT2X4 %token DMAT3X2 DMAT3X3 DMAT3X4 %token DMAT4X2 DMAT4X3 DMAT4X4 +%token F16MAT2X2 F16MAT2X3 F16MAT2X4 +%token F16MAT3X2 F16MAT3X3 F16MAT3X4 +%token F16MAT4X2 F16MAT4X3 F16MAT4X4 %token ATOMIC_UINT // combined image/sampler @@ -182,7 +186,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token STRUCT VOID WHILE %token IDENTIFIER TYPE_NAME -%token FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT +%token FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT %token LEFT_OP RIGHT_OP %token INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP %token AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN @@ -274,6 +278,12 @@ primary_expression parseContext.doubleCheck($1.loc, "double literal"); $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); } + | FLOAT16CONSTANT { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float literal"); + $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); +#endif + } | BOOLCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); } @@ -1324,6 +1334,13 @@ type_specifier_nonarray $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; } + | FLOAT16_T { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; +#endif + } | INT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtInt; @@ -1380,6 +1397,30 @@ type_specifier_nonarray $$.basicType = EbtDouble; $$.setVector(4); } + | F16VEC2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(2); +#endif + } + | F16VEC3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(3); +#endif + } + | F16VEC4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(4); +#endif + } | BVEC2 { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtBool; @@ -1596,6 +1637,102 @@ type_specifier_nonarray $$.basicType = EbtDouble; $$.setMatrix(4, 4); } + | F16MAT2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 2); +#endif + } + | F16MAT3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 3); +#endif + } + | F16MAT4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 4); +#endif + } + | F16MAT2X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 2); +#endif + } + | F16MAT2X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 3); +#endif + } + | F16MAT2X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 4); +#endif + } + | F16MAT3X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 2); +#endif + } + | F16MAT3X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 3); +#endif + } + | F16MAT3X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 4); +#endif + } + | F16MAT4X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 2); +#endif + } + | F16MAT4X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 3); +#endif + } + | F16MAT4X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 4); +#endif + } | ATOMIC_UINT { parseContext.vulkanRemoved($1.loc, "atomic counter types"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 3d7dc8e5..3507c04e 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "2.7" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,7 +62,8 @@ /* Copy the first part of user declarations. */ -#line 41 "MachineIndependent/glslang.y" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 41 "glslang.y" /* Based on: @@ -87,13 +88,14 @@ Jutta Degener, 1995 using namespace glslang; -#line 91 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 93 "glslang_tab.cpp" -# ifndef YY_NULLPTR +# ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# define YY_NULL nullptr # else -# define YY_NULLPTR 0 +# define YY_NULL 0 # endif # endif @@ -107,9 +109,9 @@ using namespace glslang; /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -117,288 +119,306 @@ using namespace glslang; extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:355 */ +/* Line 387 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -432,22 +452,35 @@ union YYSTYPE }; } interm; -#line 436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 387 of yacc.c */ +#line 458 "glslang_tab.cpp" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 100 "MachineIndependent/glslang.y" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 100 "glslang.y" /* windows only pragma */ @@ -463,7 +496,8 @@ int yyparse (glslang::TParseContext* pParseContext); extern int yylex(YYSTYPE*, TParseContext&); -#line 467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 501 "glslang_tab.cpp" #ifdef short # undef short @@ -477,8 +511,11 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#else +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; +#else +typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -498,7 +535,8 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -520,33 +558,6 @@ typedef short int yytype_int16; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -#endif - -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -554,25 +565,23 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(N) (N) #else -# define YY_INITIAL_VALUE(Value) Value +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; #endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END +{ + return yyi; +} #endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - #if ! defined yyoverflow || YYERROR_VERBOSE @@ -591,7 +600,8 @@ typedef short int yytype_int16; # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -603,8 +613,8 @@ typedef short int yytype_int16; # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -620,7 +630,7 @@ typedef short int yytype_int16; # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -628,13 +638,15 @@ typedef short int yytype_int16; # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -644,7 +656,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -669,16 +681,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) #endif @@ -697,35 +709,33 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 249 +#define YYFINAL 265 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5966 +#define YYLAST 6373 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 271 +#define YYNTOKENS 288 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 422 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 554 +#define YYNRULES 439 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 571 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 525 +#define YYMAXUTOK 542 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -780,56 +790,224 @@ static const yytype_uint16 yytranslate[] = 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270 + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287 }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 27, 29, 34, 36, 40, 43, 46, + 48, 50, 52, 55, 58, 61, 63, 66, 70, 73, + 75, 77, 79, 82, 85, 88, 90, 92, 94, 96, + 98, 102, 106, 110, 112, 116, 120, 122, 126, 130, + 132, 136, 140, 144, 148, 150, 154, 158, 160, 164, + 166, 170, 172, 176, 178, 182, 184, 188, 190, 194, + 196, 197, 204, 206, 210, 212, 214, 216, 218, 220, + 222, 224, 226, 228, 230, 232, 234, 238, 240, 243, + 246, 251, 254, 258, 263, 266, 270, 275, 276, 283, + 286, 290, 293, 295, 297, 300, 304, 308, 311, 315, + 318, 320, 323, 325, 327, 329, 333, 338, 345, 351, + 353, 356, 360, 366, 371, 373, 376, 378, 380, 382, + 384, 386, 391, 393, 397, 399, 403, 405, 407, 409, + 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, + 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, + 452, 454, 456, 458, 460, 465, 467, 471, 473, 476, + 479, 483, 487, 492, 494, 496, 498, 500, 502, 504, + 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, + 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, + 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, + 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, + 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, + 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, + 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, + 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, + 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, + 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, + 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, + 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, + 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, + 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, + 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, + 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, + 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, + 866, 868, 870, 872, 873, 880, 881, 887, 889, 892, + 896, 901, 903, 907, 909, 912, 914, 918, 923, 925, + 929, 931, 933, 935, 937, 939, 941, 943, 945, 947, + 949, 952, 953, 954, 960, 962, 964, 965, 968, 969, + 972, 975, 979, 981, 984, 986, 989, 995, 999, 1001, + 1003, 1008, 1009, 1018, 1019, 1021, 1025, 1028, 1029, 1036, + 1037, 1046, 1047, 1055, 1057, 1059, 1061, 1062, 1065, 1069, + 1072, 1075, 1078, 1082, 1085, 1087, 1090, 1092, 1094, 1095 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 384, 0, -1, 224, -1, 289, -1, 228, -1, 229, + -1, 230, -1, 231, -1, 226, -1, 227, -1, 233, + -1, 232, -1, 255, 317, 256, -1, 290, -1, 291, + 257, 292, 258, -1, 293, -1, 291, 261, 224, -1, + 291, 236, -1, 291, 237, -1, 317, -1, 294, -1, + 295, -1, 297, 256, -1, 296, 256, -1, 298, 222, + -1, 298, -1, 298, 315, -1, 297, 262, 315, -1, + 299, 255, -1, 343, -1, 291, -1, 291, -1, 236, + 300, -1, 237, 300, -1, 301, 300, -1, 269, -1, + 267, -1, 266, -1, 268, -1, 300, -1, 302, 270, + 300, -1, 302, 271, 300, -1, 302, 272, 300, -1, + 302, -1, 303, 269, 302, -1, 303, 267, 302, -1, + 303, -1, 304, 234, 303, -1, 304, 235, 303, -1, + 304, -1, 305, 273, 304, -1, 305, 274, 304, -1, + 305, 238, 304, -1, 305, 239, 304, -1, 305, -1, + 306, 240, 305, -1, 306, 241, 305, -1, 306, -1, + 307, 277, 306, -1, 307, -1, 308, 276, 307, -1, + 308, -1, 309, 275, 308, -1, 309, -1, 310, 242, + 309, -1, 310, -1, 311, 244, 310, -1, 311, -1, + 312, 243, 311, -1, 312, -1, -1, 312, 278, 314, + 317, 263, 315, -1, 313, -1, 300, 316, 315, -1, + 264, -1, 245, -1, 246, -1, 248, -1, 247, -1, + 254, -1, 249, -1, 250, -1, 251, -1, 252, -1, + 253, -1, 315, -1, 317, 262, 315, -1, 313, -1, + 323, 265, -1, 330, 265, -1, 284, 346, 343, 265, + -1, 320, 265, -1, 320, 224, 265, -1, 320, 224, + 344, 265, -1, 339, 265, -1, 339, 224, 265, -1, + 339, 224, 322, 265, -1, -1, 339, 224, 259, 321, + 350, 260, -1, 262, 224, -1, 322, 262, 224, -1, + 324, 256, -1, 326, -1, 325, -1, 326, 328, -1, + 325, 262, 328, -1, 332, 224, 255, -1, 343, 224, + -1, 343, 224, 344, -1, 339, 327, -1, 327, -1, + 339, 329, -1, 329, -1, 343, -1, 331, -1, 330, + 262, 224, -1, 330, 262, 224, 344, -1, 330, 262, + 224, 344, 264, 354, -1, 330, 262, 224, 264, 354, + -1, 332, -1, 332, 224, -1, 332, 224, 344, -1, + 332, 224, 344, 264, 354, -1, 332, 224, 264, 354, + -1, 343, -1, 339, 343, -1, 279, -1, 75, -1, + 74, -1, 73, -1, 77, -1, 76, 255, 336, 256, + -1, 337, -1, 336, 262, 337, -1, 224, -1, 224, + 264, 318, -1, 55, -1, 280, -1, 340, -1, 339, + 340, -1, 341, -1, 335, -1, 346, -1, 334, -1, + 333, -1, 338, -1, 5, -1, 3, -1, 4, -1, + 50, -1, 48, -1, 49, -1, 47, -1, 52, -1, + 53, -1, 51, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 25, -1, + 25, 255, 342, 256, -1, 225, -1, 342, 262, 225, + -1, 345, -1, 345, 344, -1, 257, 258, -1, 257, + 313, 258, -1, 344, 257, 258, -1, 344, 257, 313, + 258, -1, 222, -1, 7, -1, 8, -1, 13, -1, + 9, -1, 10, -1, 11, -1, 12, -1, 6, -1, + 41, -1, 42, -1, 43, -1, 61, -1, 62, -1, + 63, -1, 67, -1, 68, -1, 69, -1, 26, -1, + 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, + 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, + 37, -1, 38, -1, 39, -1, 40, -1, 44, -1, + 45, -1, 46, -1, 78, -1, 79, -1, 80, -1, + 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, + 86, -1, 64, -1, 65, -1, 66, -1, 87, -1, + 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, + 93, -1, 94, -1, 95, -1, 70, -1, 71, -1, + 72, -1, 96, -1, 97, -1, 98, -1, 99, -1, + 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, + 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, + 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, + 115, -1, 116, -1, 136, -1, 137, -1, 117, -1, + 118, -1, 119, -1, 120, -1, 121, -1, 122, -1, + 138, -1, 123, -1, 124, -1, 125, -1, 126, -1, + 127, -1, 128, -1, 139, -1, 129, -1, 130, -1, + 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, + 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, + 145, -1, 147, -1, 148, -1, 149, -1, 150, -1, + 151, -1, 152, -1, 153, -1, 154, -1, 173, -1, + 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, + 160, -1, 174, -1, 161, -1, 162, -1, 163, -1, + 164, -1, 165, -1, 166, -1, 175, -1, 167, -1, + 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, + 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, + 181, -1, 188, -1, 189, -1, 190, -1, 191, -1, + 192, -1, 193, -1, 194, -1, 195, -1, 196, -1, + 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, + 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, + 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, + 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, + 217, -1, 218, -1, 219, -1, 220, -1, 146, -1, + 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, + 187, -1, 347, -1, 225, -1, 281, -1, 282, -1, + 283, -1, -1, 221, 224, 259, 348, 350, 260, -1, + -1, 221, 259, 349, 350, 260, -1, 351, -1, 350, + 351, -1, 343, 352, 265, -1, 339, 343, 352, 265, + -1, 353, -1, 352, 262, 353, -1, 224, -1, 224, + 344, -1, 315, -1, 259, 355, 260, -1, 259, 355, + 262, 260, -1, 354, -1, 355, 262, 354, -1, 319, + -1, 359, -1, 358, -1, 356, -1, 368, -1, 369, + -1, 372, -1, 375, -1, 376, -1, 383, -1, 259, + 260, -1, -1, -1, 259, 360, 367, 361, 260, -1, + 366, -1, 358, -1, -1, 364, 359, -1, -1, 365, + 358, -1, 259, 260, -1, 259, 367, 260, -1, 357, + -1, 367, 357, -1, 265, -1, 317, 265, -1, 19, + 255, 317, 256, 370, -1, 363, 17, 363, -1, 363, + -1, 317, -1, 332, 224, 264, 354, -1, -1, 22, + 255, 317, 256, 373, 259, 374, 260, -1, -1, 367, + -1, 23, 317, 263, -1, 24, 263, -1, -1, 223, + 255, 377, 371, 256, 362, -1, -1, 16, 378, 357, + 223, 255, 317, 256, 265, -1, -1, 18, 255, 379, + 380, 382, 256, 362, -1, 368, -1, 356, -1, 371, + -1, -1, 381, 265, -1, 381, 265, 317, -1, 15, + 265, -1, 14, 265, -1, 21, 265, -1, 21, 317, + 265, -1, 20, 265, -1, 385, -1, 384, 385, -1, + 386, -1, 319, -1, -1, 323, 387, 366, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 246, 246, 252, 255, 258, 262, 266, 270, 273, - 277, 280, 288, 291, 294, 297, 300, 305, 313, 320, - 327, 333, 337, 344, 347, 353, 360, 370, 378, 383, - 413, 419, 423, 427, 447, 448, 449, 450, 456, 457, - 462, 467, 476, 477, 482, 490, 491, 497, 506, 507, - 512, 517, 522, 530, 531, 539, 550, 551, 560, 561, - 570, 571, 580, 581, 589, 590, 598, 599, 607, 608, - 608, 626, 627, 642, 646, 650, 654, 659, 663, 667, - 671, 675, 679, 683, 690, 693, 704, 711, 716, 721, - 729, 733, 737, 741, 746, 751, 760, 760, 771, 775, - 782, 789, 792, 799, 807, 827, 845, 860, 883, 894, - 904, 914, 924, 933, 936, 940, 944, 949, 957, 962, - 967, 972, 977, 986, 997, 1024, 1033, 1040, 1047, 1054, - 1066, 1072, 1075, 1082, 1086, 1090, 1098, 1107, 1110, 1121, - 1124, 1127, 1131, 1135, 1139, 1146, 1150, 1162, 1176, 1181, - 1187, 1193, 1200, 1206, 1211, 1216, 1221, 1228, 1232, 1236, - 1240, 1244, 1248, 1254, 1266, 1269, 1274, 1278, 1287, 1292, - 1300, 1304, 1314, 1318, 1322, 1327, 1331, 1336, 1341, 1346, - 1350, 1355, 1360, 1365, 1371, 1377, 1383, 1388, 1393, 1398, - 1403, 1408, 1413, 1419, 1425, 1431, 1437, 1443, 1449, 1455, - 1461, 1467, 1472, 1477, 1482, 1487, 1492, 1497, 1502, 1507, - 1512, 1517, 1522, 1527, 1533, 1539, 1545, 1551, 1557, 1563, - 1569, 1575, 1581, 1587, 1593, 1599, 1604, 1609, 1614, 1619, - 1624, 1629, 1634, 1639, 1644, 1649, 1654, 1659, 1664, 1669, - 1674, 1679, 1684, 1689, 1694, 1699, 1704, 1709, 1714, 1719, - 1724, 1729, 1734, 1739, 1744, 1749, 1754, 1759, 1764, 1769, - 1774, 1779, 1784, 1789, 1794, 1799, 1804, 1809, 1814, 1819, - 1824, 1829, 1834, 1839, 1844, 1849, 1854, 1859, 1864, 1869, - 1874, 1879, 1884, 1889, 1894, 1899, 1904, 1909, 1914, 1919, - 1924, 1929, 1934, 1939, 1944, 1949, 1954, 1959, 1964, 1969, - 1974, 1979, 1984, 1989, 1994, 1999, 2004, 2009, 2014, 2019, - 2024, 2029, 2034, 2039, 2044, 2049, 2054, 2059, 2064, 2069, - 2074, 2079, 2084, 2089, 2094, 2099, 2104, 2109, 2114, 2119, - 2124, 2129, 2134, 2139, 2144, 2150, 2156, 2162, 2168, 2174, - 2180, 2186, 2191, 2207, 2212, 2217, 2225, 2225, 2236, 2236, - 2246, 2249, 2262, 2280, 2304, 2308, 2314, 2319, 2330, 2333, - 2339, 2348, 2351, 2357, 2361, 2362, 2368, 2369, 2370, 2371, - 2372, 2373, 2374, 2378, 2379, 2383, 2379, 2395, 2396, 2400, - 2400, 2407, 2407, 2421, 2424, 2432, 2440, 2451, 2452, 2456, - 2463, 2467, 2475, 2479, 2492, 2492, 2512, 2515, 2521, 2533, - 2545, 2545, 2560, 2560, 2576, 2576, 2597, 2600, 2606, 2609, - 2615, 2619, 2626, 2631, 2636, 2643, 2646, 2655, 2659, 2666, - 2669, 2675, 2675 + 0, 250, 250, 256, 259, 262, 266, 270, 274, 277, + 281, 287, 290, 298, 301, 304, 307, 310, 315, 323, + 330, 337, 343, 347, 354, 357, 363, 370, 380, 388, + 393, 423, 429, 433, 437, 457, 458, 459, 460, 466, + 467, 472, 477, 486, 487, 492, 500, 501, 507, 516, + 517, 522, 527, 532, 540, 541, 549, 560, 561, 570, + 571, 580, 581, 590, 591, 599, 600, 608, 609, 617, + 618, 618, 636, 637, 652, 656, 660, 664, 669, 673, + 677, 681, 685, 689, 693, 700, 703, 714, 721, 726, + 731, 739, 743, 747, 751, 756, 761, 770, 770, 781, + 785, 792, 799, 802, 809, 817, 837, 855, 870, 893, + 904, 914, 924, 934, 943, 946, 950, 954, 959, 967, + 972, 977, 982, 987, 996, 1007, 1034, 1043, 1050, 1057, + 1064, 1076, 1082, 1085, 1092, 1096, 1100, 1108, 1117, 1120, + 1131, 1134, 1137, 1141, 1145, 1149, 1156, 1160, 1172, 1186, + 1191, 1197, 1203, 1210, 1216, 1221, 1226, 1231, 1238, 1242, + 1246, 1250, 1254, 1258, 1264, 1276, 1279, 1284, 1288, 1297, + 1302, 1310, 1314, 1324, 1328, 1332, 1337, 1344, 1348, 1353, + 1358, 1363, 1367, 1372, 1377, 1382, 1388, 1394, 1400, 1408, + 1416, 1424, 1429, 1434, 1439, 1444, 1449, 1454, 1460, 1466, + 1472, 1478, 1484, 1490, 1496, 1502, 1508, 1513, 1518, 1523, + 1528, 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1568, 1574, + 1580, 1586, 1592, 1598, 1604, 1610, 1616, 1622, 1628, 1634, + 1640, 1648, 1656, 1664, 1672, 1680, 1688, 1696, 1704, 1712, + 1720, 1728, 1736, 1741, 1746, 1751, 1756, 1761, 1766, 1771, + 1776, 1781, 1786, 1791, 1796, 1801, 1806, 1811, 1816, 1821, + 1826, 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, + 1876, 1881, 1886, 1891, 1896, 1901, 1906, 1911, 1916, 1921, + 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1961, 1966, 1971, + 1976, 1981, 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021, + 2026, 2031, 2036, 2041, 2046, 2051, 2056, 2061, 2066, 2071, + 2076, 2081, 2086, 2091, 2096, 2101, 2106, 2111, 2116, 2121, + 2126, 2131, 2136, 2141, 2146, 2151, 2156, 2161, 2166, 2171, + 2176, 2181, 2186, 2191, 2196, 2201, 2206, 2211, 2216, 2221, + 2226, 2231, 2236, 2241, 2246, 2251, 2256, 2261, 2266, 2271, + 2276, 2281, 2287, 2293, 2299, 2305, 2311, 2317, 2323, 2328, + 2344, 2349, 2354, 2362, 2362, 2373, 2373, 2383, 2386, 2399, + 2417, 2441, 2445, 2451, 2456, 2467, 2470, 2476, 2485, 2488, + 2494, 2498, 2499, 2505, 2506, 2507, 2508, 2509, 2510, 2511, + 2515, 2516, 2520, 2516, 2532, 2533, 2537, 2537, 2544, 2544, + 2558, 2561, 2569, 2577, 2588, 2589, 2593, 2600, 2604, 2612, + 2616, 2629, 2629, 2649, 2652, 2658, 2670, 2682, 2682, 2697, + 2697, 2713, 2713, 2734, 2737, 2743, 2746, 2752, 2756, 2763, + 2768, 2773, 2780, 2783, 2792, 2796, 2803, 2806, 2812, 2812 }; #endif @@ -839,31 +1017,34 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "CONST", "BOOL", - "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "BREAK", - "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH", - "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", - "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", "UVEC3", - "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", "VEC4", "MAT2", - "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH", - "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", "RESTRICT", - "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", - "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", + "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "FLOAT16_T", + "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", + "SWITCH", "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", + "IVEC2", "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", + "UVEC3", "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", + "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", + "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", + "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", + "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", + "F16MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", - "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", - "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", - "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", - "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", - "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", - "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", - "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", - "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", - "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", - "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", - "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", - "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", - "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", + "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", + "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "ATOMIC_UINT", + "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", + "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", + "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", + "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", + "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", + "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", + "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", + "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", + "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", + "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", + "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", + "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", + "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", @@ -882,11 +1063,11 @@ static const char *const yytname[] = "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", - "UINT64CONSTANT", "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", - "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", - "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", - "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", - "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", + "UINT64CONSTANT", "BOOLCONSTANT", "FLOAT16CONSTANT", "LEFT_OP", + "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", + "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", + "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", + "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", @@ -925,13 +1106,13 @@ static const char *const yytname[] = "switch_statement_list", "case_label", "iteration_statement", "$@10", "$@11", "$@12", "for_init_statement", "conditionopt", "for_rest_statement", "jump_statement", "translation_unit", - "external_declaration", "function_definition", "$@13", YY_NULLPTR + "external_declaration", "function_definition", "$@13", YY_NULL }; #endif # ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -961,448 +1142,363 @@ static const yytype_uint16 yytoknum[] = 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525 + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542 }; # endif -#define YYPACT_NINF -495 - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-495))) - -#define YYTABLE_NINF -380 - -#define yytable_value_is_error(Yytable_value) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = { - 2402, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -216, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -198, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -190, -495, -495, -495, -495, -495, -495, -495, - -127, -495, -189, -193, -158, -149, 3885, -207, -495, -98, - -495, -495, -495, -495, 2910, -495, -495, -495, -106, -495, - -495, 547, -495, -495, -62, -45, -90, -495, 5757, -217, - -495, -495, -86, -495, 3885, -495, -495, -495, 3885, -51, - -50, -495, -208, -155, -495, -495, -495, 4339, -81, -495, - -495, -495, -185, -495, -87, -157, -495, -495, 3885, -83, - -495, -204, 812, -495, -495, -495, -495, -106, -183, -495, - 4575, -162, -495, -47, -495, -119, -495, -495, -495, -495, - -495, -495, -495, -495, 5291, 5291, 5291, -495, -495, -495, - -495, -495, -495, -495, -195, -495, -495, -495, -77, -150, - 5524, -72, -495, 5291, -111, -144, -167, -194, -147, -93, - -91, -89, -55, -56, -213, -69, -495, 4822, -495, -36, - 5291, -495, -45, 3885, 3885, -34, 3156, -495, -495, -495, - -73, -71, -495, -60, -59, -66, 5058, -54, 5291, -70, - -49, -58, -495, -495, -163, -495, -495, -118, -495, -193, - -46, -495, -495, -495, -495, 1077, -495, -495, -495, -495, - -495, -495, -81, 4575, -161, 4575, -495, -495, 4575, 3885, - -495, -25, -495, -495, -495, -145, -495, -495, 5291, -21, - -495, -495, 5291, -48, -495, -495, -495, 5291, 5291, 5291, - 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, - 5291, 5291, 5291, 5291, 5291, 5291, -495, -495, -495, -44, - -495, -495, -495, -495, 3399, -34, -106, -117, -495, -495, - -495, -495, -495, 1342, -495, 5291, -495, -495, -113, 5291, - -154, -495, -495, -495, 1342, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, 5291, 5291, -495, -495, - -495, -495, 4575, -495, -92, -495, 3642, -495, -495, -43, - -57, -495, -495, -495, -495, -495, -111, -111, -144, -144, - -167, -167, -167, -167, -194, -194, -147, -93, -91, -89, - -55, -56, 5291, -495, -495, -112, -81, -34, -495, -14, - 2137, -136, -495, -134, -495, 2646, 1342, -495, -495, -495, - -495, 4092, -495, -495, -131, -495, -495, -42, -495, -495, - 2646, -39, -495, -57, -9, 3885, -35, -38, -495, -495, - 5291, 5291, -495, -41, -31, 184, -32, 1872, -495, -30, - -29, 1607, -495, -495, -132, 5291, 1607, -39, -495, -495, - 1342, 4575, -495, -495, -495, -37, -57, -495, -495, 1342, - -27, -495, -495, -495 + 0, 288, 289, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 291, 291, 291, 291, 291, 291, 292, + 293, 294, 295, 295, 296, 296, 297, 297, 298, 299, + 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, + 302, 302, 302, 303, 303, 303, 304, 304, 304, 305, + 305, 305, 305, 305, 306, 306, 306, 307, 307, 308, + 308, 309, 309, 310, 310, 311, 311, 312, 312, 313, + 314, 313, 315, 315, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 317, 317, 318, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 321, 320, 322, + 322, 323, 324, 324, 325, 325, 326, 327, 327, 328, + 328, 328, 328, 329, 330, 330, 330, 330, 330, 331, + 331, 331, 331, 331, 332, 332, 333, 334, 334, 334, + 334, 335, 336, 336, 337, 337, 337, 338, 339, 339, + 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 342, 342, 343, 343, 344, + 344, 344, 344, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 348, 347, 349, 347, 350, 350, 351, + 351, 352, 352, 353, 353, 354, 354, 354, 355, 355, + 356, 357, 357, 358, 358, 358, 358, 358, 358, 358, + 359, 360, 361, 359, 362, 362, 364, 363, 365, 363, + 366, 366, 367, 367, 368, 368, 369, 370, 370, 371, + 371, 373, 372, 374, 374, 375, 375, 377, 376, 378, + 376, 379, 376, 380, 380, 381, 381, 382, 382, 383, + 383, 383, 383, 383, 384, 384, 385, 385, 387, 386 }; - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, + 1, 1, 2, 2, 2, 1, 2, 3, 2, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, + 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, + 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, + 4, 2, 3, 4, 2, 3, 4, 0, 6, 2, + 3, 2, 1, 1, 2, 3, 3, 2, 3, 2, + 1, 2, 1, 1, 1, 3, 4, 6, 5, 1, + 2, 3, 5, 4, 1, 2, 1, 1, 1, 1, + 1, 4, 1, 3, 1, 3, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 4, 1, 3, 1, 2, 2, + 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, + 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, + 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, + 4, 0, 8, 0, 1, 3, 2, 0, 6, 0, + 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, + 2, 2, 3, 2, 1, 2, 1, 1, 0, 3 +}; + +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 146, 147, 145, 179, 173, 174, 175, 176, 177, - 178, 162, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 180, 181, 182, - 201, 202, 203, 151, 149, 150, 148, 154, 152, 153, - 155, 156, 157, 158, 159, 160, 161, 183, 184, 185, - 213, 214, 215, 128, 127, 126, 0, 129, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 239, 240, - 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, - 253, 254, 255, 256, 257, 258, 259, 237, 238, 245, - 252, 260, 261, 262, 263, 264, 265, 334, 266, 267, - 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, - 279, 280, 282, 283, 284, 285, 286, 287, 289, 290, - 291, 292, 293, 294, 274, 281, 288, 295, 296, 297, - 298, 299, 300, 335, 336, 337, 338, 339, 340, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 172, 342, 125, 136, 343, 344, 345, - 0, 420, 0, 421, 0, 102, 101, 0, 113, 118, - 143, 142, 140, 144, 0, 137, 139, 123, 166, 141, - 341, 0, 417, 419, 0, 0, 0, 348, 0, 0, - 90, 87, 0, 100, 0, 109, 103, 111, 0, 112, - 0, 88, 119, 0, 93, 138, 124, 0, 167, 1, - 418, 164, 0, 135, 133, 0, 131, 346, 0, 0, - 91, 0, 0, 422, 104, 108, 110, 106, 114, 105, - 0, 120, 96, 0, 94, 0, 2, 8, 9, 4, - 5, 6, 7, 10, 0, 0, 0, 168, 36, 35, - 37, 34, 3, 12, 30, 14, 19, 20, 0, 0, - 24, 0, 38, 0, 42, 45, 48, 53, 56, 58, - 60, 62, 64, 66, 68, 0, 28, 0, 163, 0, - 0, 130, 0, 0, 0, 0, 0, 350, 89, 92, - 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, - 0, 374, 383, 387, 38, 71, 84, 0, 363, 0, - 123, 366, 385, 365, 364, 0, 367, 368, 369, 370, - 371, 372, 107, 0, 115, 0, 358, 122, 0, 0, - 98, 0, 95, 31, 32, 0, 16, 17, 0, 0, - 22, 21, 0, 172, 25, 27, 33, 0, 0, 0, + 0, 147, 148, 146, 181, 174, 175, 177, 178, 179, + 180, 176, 163, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 182, 183, + 184, 206, 207, 208, 152, 150, 151, 149, 155, 153, + 154, 156, 157, 158, 159, 160, 161, 162, 185, 186, + 187, 218, 219, 220, 188, 189, 190, 230, 231, 232, + 129, 128, 127, 0, 130, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 256, 257, 258, 259, 260, 261, + 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, + 274, 275, 276, 254, 255, 262, 269, 277, 278, 279, + 280, 281, 282, 351, 283, 284, 285, 286, 287, 288, + 289, 290, 292, 293, 294, 295, 296, 297, 299, 300, + 301, 302, 303, 304, 306, 307, 308, 309, 310, 311, + 291, 298, 305, 312, 313, 314, 315, 316, 317, 352, + 353, 354, 355, 356, 357, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 0, 173, + 359, 126, 137, 360, 361, 362, 0, 437, 0, 438, + 0, 103, 102, 0, 114, 119, 144, 143, 141, 145, + 0, 138, 140, 124, 167, 142, 358, 0, 434, 436, + 0, 0, 0, 365, 0, 0, 91, 88, 0, 101, + 0, 110, 104, 112, 0, 113, 0, 89, 120, 0, + 94, 139, 125, 0, 168, 1, 435, 165, 0, 136, + 134, 0, 132, 363, 0, 0, 92, 0, 0, 439, + 105, 109, 111, 107, 115, 106, 0, 121, 97, 0, + 95, 0, 2, 8, 9, 4, 5, 6, 7, 11, + 10, 0, 0, 0, 169, 37, 36, 38, 35, 3, + 13, 31, 15, 20, 21, 0, 0, 25, 0, 39, + 0, 43, 46, 49, 54, 57, 59, 61, 63, 65, + 67, 69, 0, 29, 0, 164, 0, 0, 131, 0, + 0, 0, 0, 0, 367, 90, 93, 0, 0, 419, + 0, 0, 0, 0, 0, 0, 0, 0, 391, 400, + 404, 39, 72, 85, 0, 380, 0, 124, 383, 402, + 382, 381, 0, 384, 385, 386, 387, 388, 389, 108, + 0, 116, 0, 375, 123, 0, 0, 99, 0, 96, + 32, 33, 0, 17, 18, 0, 0, 23, 22, 0, + 173, 26, 28, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 169, 170, 0, - 165, 86, 134, 132, 0, 0, 356, 0, 354, 349, - 351, 413, 412, 0, 404, 0, 416, 414, 0, 0, - 0, 399, 400, 373, 0, 74, 75, 77, 76, 79, - 80, 81, 82, 83, 78, 73, 0, 0, 388, 384, - 386, 117, 0, 361, 0, 121, 0, 99, 11, 0, - 18, 15, 26, 39, 40, 41, 44, 43, 46, 47, - 51, 52, 49, 50, 54, 55, 57, 59, 61, 63, - 65, 67, 0, 171, 347, 0, 357, 0, 352, 0, - 0, 0, 415, 0, 398, 0, 375, 72, 85, 116, - 359, 0, 97, 13, 0, 353, 355, 0, 407, 406, - 409, 381, 394, 392, 0, 0, 0, 0, 360, 362, - 0, 0, 408, 0, 0, 391, 0, 0, 389, 0, - 0, 0, 376, 70, 0, 410, 0, 381, 380, 382, - 396, 0, 378, 401, 377, 0, 411, 405, 390, 397, - 0, 393, 403, 395 + 0, 0, 0, 70, 170, 171, 0, 166, 87, 135, + 133, 0, 0, 373, 0, 371, 366, 368, 430, 429, + 0, 421, 0, 433, 431, 0, 0, 0, 416, 417, + 390, 0, 75, 76, 78, 77, 80, 81, 82, 83, + 84, 79, 74, 0, 0, 405, 401, 403, 118, 0, + 378, 0, 122, 0, 100, 12, 0, 19, 16, 27, + 40, 41, 42, 45, 44, 47, 48, 52, 53, 50, + 51, 55, 56, 58, 60, 62, 64, 66, 68, 0, + 172, 364, 0, 374, 0, 369, 0, 0, 0, 432, + 0, 415, 0, 392, 73, 86, 117, 376, 0, 98, + 14, 0, 370, 372, 0, 424, 423, 426, 398, 411, + 409, 0, 0, 0, 0, 377, 379, 0, 0, 425, + 0, 0, 408, 0, 0, 406, 0, 0, 0, 393, + 71, 0, 427, 0, 398, 397, 399, 413, 0, 395, + 418, 394, 0, 428, 422, 407, 414, 0, 410, 420, + 412 }; - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -53, -495, -271, -252, -272, -244, -187, -184, - -182, -181, -179, -186, -495, -237, -495, -266, -495, -280, - -495, 3, -495, -495, -495, 5, -495, -495, -495, -15, - -7, -5, -495, -495, -475, -495, -495, -495, -495, -85, - -495, -205, -212, -495, -495, 0, -221, -495, 29, -495, - -495, -495, -308, -310, -176, -251, -351, -495, -250, -348, - -494, -284, -495, -495, -293, -292, -495, -495, 12, -423, - -243, -495, -495, -264, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, 27, -495, -495 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ +/* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 292, 293, 294, 459, 295, 296, 297, 298, 299, - 300, 301, 344, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 345, 482, 346, 446, 347, - 412, 348, 202, 369, 275, 349, 204, 205, 206, 235, - 236, 237, 207, 208, 209, 210, 211, 212, 255, 256, - 213, 214, 215, 216, 252, 316, 248, 218, 219, 220, - 323, 258, 326, 327, 417, 418, 367, 454, 351, 352, - 353, 354, 434, 517, 543, 525, 526, 527, 544, 355, - 356, 357, 528, 516, 358, 529, 550, 359, 360, 495, - 423, 490, 510, 523, 524, 361, 221, 222, 223, 232 + -1, 309, 310, 311, 476, 312, 313, 314, 315, 316, + 317, 318, 361, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 362, 499, 363, 463, 364, + 429, 365, 218, 386, 291, 366, 220, 221, 222, 251, + 252, 253, 223, 224, 225, 226, 227, 228, 271, 272, + 229, 230, 231, 232, 268, 333, 264, 234, 235, 236, + 340, 274, 343, 344, 434, 435, 384, 471, 368, 369, + 370, 371, 451, 534, 560, 542, 543, 544, 561, 372, + 373, 374, 545, 533, 375, 546, 567, 376, 377, 512, + 440, 507, 527, 540, 541, 378, 237, 238, 239, 248 }; - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -512 +static const yytype_int16 yypact[] = +{ + 2538, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -235, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -201, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -203, -512, + -512, -512, -512, -512, -512, -512, -153, -512, -210, -220, + -152, -189, 4119, -160, -512, -128, -512, -512, -512, -512, + 3079, -512, -512, -512, -122, -512, -512, 564, -512, -512, + -72, -46, -105, -512, 6148, -216, -512, -512, -102, -512, + 4119, -512, -512, -512, 4119, -68, -66, -512, -225, -187, + -512, -512, -512, 4606, -98, -512, -512, -512, -179, -512, + -104, -172, -512, -512, 4119, -101, -512, -186, 846, -512, + -512, -512, -512, -122, -233, -512, 4870, -217, -512, -63, + -512, -151, -512, -512, -512, -512, -512, -512, -512, -512, + -512, 5648, 5648, 5648, -512, -512, -512, -512, -512, -512, + -512, -209, -512, -512, -512, -94, -170, 5898, -92, -512, + 5648, -139, -133, -109, -223, -103, -111, -108, -106, -71, + -74, -218, -86, -512, 5134, -512, -52, 5648, -512, -46, + 4119, 4119, -50, 3342, -512, -512, -512, -90, -89, -512, + -78, -76, -85, 5398, -70, 5648, -80, -69, -64, -512, + -512, -184, -512, -512, -150, -512, -220, -67, -512, -512, + -512, -512, 1128, -512, -512, -512, -512, -512, -512, -98, + 4870, -183, 4870, -512, -512, 4870, 4119, -512, -40, -512, + -512, -512, -169, -512, -512, 5648, -35, -512, -512, 5648, + -65, -512, -512, -512, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, -512, -512, -512, -61, -512, -512, -512, + -512, 3601, -50, -122, -144, -512, -512, -512, -512, -512, + 1410, -512, 5648, -512, -512, -142, 5648, -123, -512, -512, + -512, 1410, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, 5648, 5648, -512, -512, -512, -512, 4870, + -512, -226, -512, 3860, -512, -512, -60, -62, -512, -512, + -512, -512, -512, -139, -139, -133, -133, -109, -109, -109, + -109, -223, -223, -103, -111, -108, -106, -71, -74, 5648, + -512, -512, -138, -98, -50, -512, -33, 2256, -168, -512, + -167, -512, 2798, 1410, -512, -512, -512, -512, 4342, -512, + -512, -121, -512, -512, -56, -512, -512, 2798, -58, -512, + -62, -32, 4119, -49, -51, -512, -512, 5648, 5648, -512, + -57, -45, 177, -55, 1974, -512, -47, -44, 1692, -512, + -512, -165, 5648, 1692, -58, -512, -512, 1410, 4870, -512, + -512, -512, -48, -62, -512, -512, 1410, -42, -512, -512, + -512 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -96, -512, -263, -262, -304, -264, -204, -199, + -205, -197, -206, -196, -512, -252, -512, -282, -512, -296, + -512, 3, -512, -512, -512, 6, -512, -512, -512, -29, + -23, -26, -512, -512, -489, -512, -512, -512, -512, -118, + -512, -221, -228, -512, -512, 0, -240, -512, 13, -512, + -512, -512, -328, -330, -200, -271, -363, -512, -273, -364, + -511, -308, -512, -512, -314, -309, -512, -512, -2, -441, + -260, -512, -512, -279, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, 12, -512, -512 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -397 static const yytype_int16 yytable[] = { - 217, 238, 245, 201, 366, 203, 375, 450, 261, 253, - 315, 496, 451, 405, 453, 414, 420, 455, 226, 229, - 514, 271, 224, 247, 376, 377, 245, 394, 395, 238, - 269, 260, 247, 539, 384, 514, 317, 542, 240, 270, - 225, 241, 542, -29, 329, 378, 362, 364, 406, 379, - 392, 393, 227, 324, 318, 231, 428, 247, 430, 230, - 319, 456, 396, 397, 363, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 489, 398, 399, 317, 317, - 409, 233, 321, 411, 445, 368, 452, 272, 322, 381, - 273, 447, 494, 274, 458, 382, 234, 366, 460, 366, - 447, 499, 366, 511, 420, 512, 390, 545, 391, 447, - 242, 447, 245, 447, 447, 520, 462, 549, 324, 466, - 467, 324, 470, 471, 472, 473, 371, 447, 487, 372, - 448, 488, 447, 487, 247, 492, 505, 197, 198, 199, - 468, 469, 387, 388, 389, 491, 420, 251, 450, 493, - 519, 500, 257, 501, 474, 475, 262, 267, 268, 317, - 320, 370, 380, 254, 324, 328, 385, 400, 401, 402, - 403, 404, 407, 410, 416, 421, 431, 422, 424, 425, - 497, 498, 426, 457, 429, 433, 366, 461, 447, 432, - 551, -23, -28, 507, 302, 486, 521, 483, 503, 530, - 537, 450, 504, -379, 531, 532, 239, 535, 536, 324, - 341, 552, 540, 476, 246, 513, 553, 477, 541, 481, - 478, 217, 479, 265, 201, 480, 203, 264, 259, 228, - 513, 373, 374, 266, 239, 366, 506, 413, 239, 485, - 508, 534, 538, 547, 263, 548, 522, 509, 250, 0, - 386, 324, 0, 0, 533, 546, 0, 0, 325, 0, - 0, 0, 350, 0, 302, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, + 233, 254, 261, 217, 383, 277, 219, 392, 467, 269, + 513, 332, 431, 437, 245, 411, 412, 468, 287, 470, + 240, 242, 472, 531, 263, 422, 261, 393, 394, 254, + 285, 380, 263, 556, 517, 401, 518, 559, 531, 286, + 334, 263, 559, 379, 381, 247, -30, 385, 395, 276, + 413, 414, 396, 341, 241, 246, 243, 445, 473, 447, + 423, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 334, 288, 250, 334, 289, 506, 335, 290, 346, + 462, 469, 426, 336, 338, 428, 398, 475, 528, 529, + 339, 562, 399, 464, 464, 464, 258, 464, 383, 477, + 383, 437, 256, 383, 249, 257, 516, 487, 488, 489, + 490, 388, 464, 261, 389, 465, 566, 479, 504, 341, + 464, 505, 341, 509, 504, 409, 410, 522, 213, 214, + 215, 404, 405, 406, 407, 263, 408, 415, 416, 464, + 511, 464, 537, 437, 483, 484, 508, 485, 486, 467, + 510, 491, 492, 267, 273, 536, 283, 278, 284, 334, + 337, 387, 397, 402, 345, 341, 417, 319, 418, 419, + 421, 420, 424, 427, 433, 438, 439, 441, 270, 442, + 443, 514, 515, 448, 474, 446, 449, 383, -29, 478, + 524, -24, 547, 503, 554, 568, 450, 500, 520, 538, + 464, -396, 467, 521, 358, 390, 391, 548, 552, 549, + 341, 553, 557, 493, 495, 497, 530, 569, 570, 494, + 558, 430, 255, 496, 403, 281, 498, 280, 282, 244, + 262, 530, 502, 523, 525, 555, 383, 233, 319, 564, + 217, 319, 551, 219, 275, 565, 279, 526, 539, 266, + 255, 0, 341, 0, 255, 550, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 515, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 383, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 325, 415, 0, 325, 0, 0, 0, - 0, 0, 0, 0, 463, 464, 465, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 0, 0, 350, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, + 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 261, 0, 532, 0, 480, 481, + 482, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 342, 432, 0, 342, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, + 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, + 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, + 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 350, 0, 0, 0, 0, 350, 350, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 350, 0, 0, 0, 0, 246, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 0, 0, - 0, 350, 0, 0, 0, 0, 350, 0, 0, 0, - 350, 0, 0, 0, 0, 0, 0, 249, 0, 350, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 0, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 367, 367, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 367, 0, 0, 0, 367, 0, + 0, 0, 0, 367, 0, 0, 0, 367, 0, 0, + 0, 0, 0, 0, 265, 0, 367, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 341, 342, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, - 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 341, - 449, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 341, 0, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, - 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 262, - 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, @@ -1420,15 +1516,45 @@ static const yytype_int16 yytable[] = 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 0, 276, 194, 277, 278, 279, 280, - 281, 282, 283, 0, 0, 284, 285, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 357, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 288, 289, 290, 291, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 196, - 197, 198, 199, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 13, 14, 15, 16, + 0, 303, 0, 0, 0, 358, 359, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 357, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 358, 466, 0, + 0, 0, 0, 360, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, @@ -1446,14 +1572,74 @@ static const yytype_int16 yytable[] = 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 0, 243, 194, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 357, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 358, + 0, 0, 0, 0, 0, 360, 305, 306, 307, 308, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 216, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 357, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 278, 0, 0, 0, 0, 0, 360, 305, 306, + 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 216, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 357, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, + 305, 306, 307, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, - 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, @@ -1471,13 +1657,71 @@ static const yytype_int16 yytable[] = 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 0, 0, 194, 0, 0, 0, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, - 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 0, 195, 196, - 197, 198, 199, 11, 12, 13, 14, 15, 16, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, @@ -1495,13 +1739,15 @@ static const yytype_int16 yytable[] = 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 0, 0, 194, 0, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 259, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 0, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 195, 196, 197, 198, 199, 11, 12, 13, 14, + 0, 0, 0, 0, 260, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, @@ -1519,14 +1765,415 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 502, 0, 0, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 436, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 501, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 519, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 0, 210, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, + 213, 214, 215, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 382, 535, 0, 0, 0, 0, 0, 305, 306, + 307, 308, 4, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, + 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 304, 0, 0, 0, 0, 0, + 0, 0, 305, 306, 307, 308, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 0, 0, 0, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 382, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, + 305, 306, 307, 308, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 444, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 400, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210 +}; + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-512))) + +#define yytable_value_is_error(Yytable_value) \ + YYID (0) + +static const yytype_int16 yycheck[] = +{ + 0, 222, 230, 0, 286, 245, 0, 303, 372, 55, + 451, 263, 340, 343, 224, 238, 239, 380, 258, 382, + 255, 224, 385, 512, 257, 243, 254, 236, 237, 250, + 255, 264, 257, 544, 260, 317, 262, 548, 527, 264, + 257, 257, 553, 283, 284, 265, 255, 264, 257, 265, + 273, 274, 261, 274, 255, 265, 259, 353, 386, 355, + 278, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 257, 259, 262, 257, 262, 440, 256, 265, 265, + 264, 264, 334, 262, 256, 337, 256, 256, 256, 256, + 262, 256, 262, 262, 262, 262, 224, 262, 380, 395, + 382, 431, 262, 385, 256, 265, 469, 411, 412, 413, + 414, 262, 262, 341, 265, 265, 557, 399, 262, 340, + 262, 265, 343, 265, 262, 234, 235, 265, 281, 282, + 283, 270, 271, 272, 267, 257, 269, 240, 241, 262, + 263, 262, 263, 473, 407, 408, 442, 409, 410, 513, + 446, 415, 416, 225, 259, 518, 224, 259, 224, 257, + 264, 224, 256, 255, 265, 386, 277, 263, 276, 275, + 244, 242, 258, 225, 224, 265, 265, 255, 224, 255, + 265, 463, 464, 263, 224, 255, 255, 469, 255, 224, + 223, 256, 224, 433, 17, 558, 260, 258, 258, 255, + 262, 259, 566, 499, 259, 301, 302, 256, 265, 260, + 431, 256, 259, 417, 419, 421, 512, 265, 260, 418, + 264, 339, 222, 420, 320, 254, 422, 250, 254, 216, + 230, 527, 432, 504, 507, 543, 518, 237, 334, 553, + 237, 337, 538, 237, 244, 554, 248, 507, 527, 237, + 250, -1, 473, -1, 254, 537, 552, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 274, -1, 558, -1, 278, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 532, -1, 527, -1, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 340, 341, -1, 343, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, + 440, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, + -1, -1, 512, 513, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, + -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, 548, -1, + -1, -1, -1, 553, -1, -1, -1, 557, -1, -1, + -1, -1, -1, -1, 0, -1, 566, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, 225, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, 259, 260, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, @@ -1544,492 +2191,18 @@ static const yytype_int16 yytable[] = 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 0, 0, 194, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 195, 196, 197, - 198, 199, 47, 48, 49, 50, 51, 52, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 365, 518, 0, 0, 0, 0, - 0, 288, 289, 290, 291, 4, 5, 6, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 0, 276, 194, 277, - 278, 279, 280, 281, 282, 283, 0, 0, 284, 285, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, - 287, 4, 5, 6, 7, 8, 9, 10, 288, 289, - 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 48, 49, 50, 51, - 52, 0, 0, 0, 0, 0, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 0, 276, 194, 277, 278, 279, 280, 281, - 282, 283, 0, 0, 284, 285, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 286, 0, 0, 0, 365, 0, 0, - 0, 0, 0, 0, 288, 289, 290, 291, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47, 48, 49, 50, 51, 52, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 408, 4, 5, 6, 7, 8, 9, - 10, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, - 49, 50, 51, 52, 0, 0, 0, 0, 0, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 0, 276, 194, 277, 278, - 279, 280, 281, 282, 283, 0, 0, 284, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 286, 4, 5, 6, - 7, 8, 9, 10, 0, 0, 427, 288, 289, 290, - 291, 0, 0, 0, 0, 0, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 48, 49, 50, 51, 52, 0, 0, 0, - 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 0, 276, - 194, 277, 278, 279, 280, 281, 282, 283, 0, 0, - 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, - 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, - 288, 289, 290, 291, 0, 0, 0, 0, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, - 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 383, 0, 276, 194, 277, 278, 279, 280, 281, 282, - 283, 0, 0, 284, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 286, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 288, 289, 290, 291, 0, 0, 0, - 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, -1, -1, -1, 259, 260, -1, + -1, -1, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 48, 49, - 50, 51, 52, 0, 0, 0, 0, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 0, 194 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 206, 214, 0, 270, 0, 286, 355, 229, 54, - 247, 434, 363, 226, 365, 323, 326, 368, 208, 208, - 495, 242, 238, 240, 219, 220, 238, 221, 222, 234, - 238, 248, 240, 527, 300, 510, 240, 531, 245, 247, - 238, 248, 536, 238, 248, 240, 267, 268, 261, 244, - 217, 218, 242, 258, 239, 248, 336, 240, 338, 248, - 245, 369, 256, 257, 247, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 423, 223, 224, 240, 240, - 317, 239, 239, 320, 247, 247, 247, 242, 245, 239, - 245, 245, 246, 248, 239, 245, 245, 363, 378, 365, - 245, 452, 368, 239, 414, 239, 250, 239, 252, 245, - 208, 245, 324, 245, 245, 246, 382, 540, 323, 390, - 391, 326, 394, 395, 396, 397, 245, 245, 245, 248, - 248, 248, 245, 245, 240, 248, 248, 264, 265, 266, - 392, 393, 253, 254, 255, 425, 456, 209, 496, 429, - 501, 243, 242, 245, 398, 399, 242, 208, 208, 240, - 247, 208, 239, 208, 369, 248, 238, 260, 259, 258, - 225, 227, 241, 209, 208, 248, 246, 248, 238, 238, - 446, 447, 248, 208, 238, 243, 452, 208, 245, 238, - 541, 239, 238, 207, 247, 416, 238, 241, 241, 208, - 16, 549, 482, 242, 239, 243, 206, 248, 239, 414, - 242, 248, 242, 400, 214, 495, 243, 401, 247, 405, - 402, 221, 403, 238, 221, 404, 221, 234, 228, 200, - 510, 284, 285, 238, 234, 501, 487, 322, 238, 415, - 490, 521, 526, 536, 232, 537, 510, 490, 221, -1, - 303, 456, -1, -1, 520, 535, -1, -1, 258, -1, - -1, -1, 262, -1, 317, -1, -1, 320, -1, -1, - -1, -1, -1, -1, -1, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 515, -1, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, -1, 326, -1, -1, -1, - -1, -1, -1, -1, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, -1, -1, 355, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 369, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, -1, -1, -1, -1, -1, - -1, -1, -1, 423, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 434, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 490, -1, -1, -1, -1, 495, 496, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 510, -1, -1, -1, -1, 515, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, - -1, 531, -1, -1, -1, -1, 536, -1, -1, -1, - 540, -1, -1, -1, -1, -1, -1, 0, -1, 549, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, -1, 209, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, - 243, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, -1, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, - -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, - 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 238, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 249, 250, 251, 252, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, - 264, 265, 266, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, @@ -2047,62 +2220,17 @@ static const yytype_int16 yycheck[] = 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 248, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, 262, 263, 264, 265, 266, -1, -1, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, -1, -1, 209, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 243, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, 262, 263, - 264, 265, 266, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, -1, -1, 209, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 243, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, 262, 263, 264, 265, 266, 24, 25, 26, 27, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, 265, 266, 267, 268, 269, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, @@ -2120,182 +2248,22 @@ static const yytype_int16 yycheck[] = 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 243, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, -1, -1, 209, -1, -1, -1, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, 263, 264, - 265, 266, 60, 61, 62, 63, 64, 65, -1, -1, - -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, - -1, 249, 250, 251, 252, 6, 7, 8, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 64, 65, -1, -1, -1, -1, -1, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, -1, -1, 219, 220, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, - 241, 6, 7, 8, 9, 10, 11, 12, 249, 250, - 251, 252, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, 62, 63, 64, - 65, -1, -1, -1, -1, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 238, -1, -1, -1, 242, -1, -1, - -1, -1, -1, -1, 249, 250, 251, 252, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, 61, 62, 63, 64, 65, -1, -1, - -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, 241, 6, 7, 8, 9, 10, 11, - 12, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, - 62, 63, 64, 65, -1, -1, -1, -1, -1, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, -1, -1, 219, 220, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 238, 6, 7, 8, - 9, 10, 11, 12, -1, -1, 248, 249, 250, 251, - 252, -1, -1, -1, -1, -1, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, 61, 62, 63, 64, 65, -1, -1, -1, - -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, 215, 216, -1, -1, - 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - 249, 250, 251, 252, -1, -1, -1, -1, -1, 25, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, -1, -1, -1, -1, -1, 265, 266, 267, + 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 284, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, - -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, @@ -2309,38 +2277,434 @@ static const yytype_int16 yycheck[] = 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, + 266, 267, 268, 269, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 238, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, 249, 250, 251, 252, -1, -1, -1, - -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, - 63, 64, 65, -1, -1, -1, -1, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, -1, 209 + -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, 224, 225, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 265, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, 279, 280, + 281, 282, 283, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, 225, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + 279, 280, 281, 282, 283, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, 225, -1, -1, -1, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, 260, -1, -1, -1, -1, -1, 266, 267, + 268, 269, 6, 7, 8, 9, 10, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + -1, -1, -1, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, 258, -1, -1, -1, -1, -1, + -1, -1, 266, 267, 268, 269, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, -1, 266, 267, 268, 269, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, + 266, 267, 268, 269, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225 }; - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, @@ -2358,151 +2722,71 @@ static const yytype_uint16 yystos[] = 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 209, 262, 263, 264, 265, 266, - 267, 302, 303, 306, 307, 308, 309, 313, 314, 315, - 316, 317, 318, 321, 322, 323, 324, 326, 328, 329, - 330, 367, 368, 369, 238, 238, 208, 242, 329, 208, - 248, 248, 370, 239, 245, 310, 311, 312, 322, 326, - 245, 248, 208, 208, 248, 323, 326, 240, 327, 0, - 368, 209, 325, 54, 208, 319, 320, 242, 332, 326, - 248, 327, 242, 349, 311, 310, 312, 208, 208, 238, - 247, 327, 242, 245, 248, 305, 208, 210, 211, 212, - 213, 214, 215, 216, 219, 220, 238, 241, 249, 250, - 251, 252, 272, 273, 274, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 326, 240, 239, 245, - 247, 239, 245, 331, 322, 326, 333, 334, 248, 248, - 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, - 207, 242, 243, 248, 283, 296, 298, 300, 302, 306, - 326, 339, 340, 341, 342, 350, 351, 352, 355, 358, - 359, 366, 327, 247, 327, 242, 298, 337, 247, 304, - 208, 245, 248, 283, 283, 300, 219, 220, 240, 244, - 239, 239, 245, 206, 298, 238, 283, 253, 254, 255, - 250, 252, 217, 218, 221, 222, 256, 257, 223, 224, - 260, 259, 258, 225, 227, 226, 261, 241, 241, 296, - 209, 296, 301, 320, 333, 326, 208, 335, 336, 243, - 334, 248, 248, 361, 238, 238, 248, 248, 300, 238, - 300, 246, 238, 243, 343, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 247, 299, 245, 248, 243, - 340, 337, 247, 337, 338, 337, 333, 208, 239, 275, - 300, 208, 298, 283, 283, 283, 285, 285, 286, 286, - 287, 287, 287, 287, 288, 288, 289, 290, 291, 292, - 293, 294, 297, 241, 243, 335, 327, 245, 248, 340, - 362, 300, 248, 300, 246, 360, 350, 298, 298, 337, - 243, 245, 243, 241, 300, 248, 336, 207, 339, 351, - 363, 239, 239, 300, 315, 322, 354, 344, 243, 337, - 246, 238, 354, 364, 365, 346, 347, 348, 353, 356, - 208, 239, 243, 298, 300, 248, 239, 16, 342, 341, - 242, 247, 341, 345, 349, 239, 300, 345, 346, 350, - 357, 337, 248, 243 + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 225, 279, 280, 281, 282, 283, 284, 319, 320, 323, + 324, 325, 326, 330, 331, 332, 333, 334, 335, 338, + 339, 340, 341, 343, 345, 346, 347, 384, 385, 386, + 255, 255, 224, 259, 346, 224, 265, 265, 387, 256, + 262, 327, 328, 329, 339, 343, 262, 265, 224, 224, + 265, 340, 343, 257, 344, 0, 385, 225, 342, 55, + 224, 336, 337, 259, 349, 343, 265, 344, 259, 366, + 328, 327, 329, 224, 224, 255, 264, 344, 259, 262, + 265, 322, 224, 226, 227, 228, 229, 230, 231, 232, + 233, 236, 237, 255, 258, 266, 267, 268, 269, 289, + 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 343, 257, 256, 262, 264, 256, 262, + 348, 339, 343, 350, 351, 265, 265, 14, 15, 16, + 18, 19, 20, 21, 22, 23, 24, 223, 259, 260, + 265, 300, 313, 315, 317, 319, 323, 343, 356, 357, + 358, 359, 367, 368, 369, 372, 375, 376, 383, 344, + 264, 344, 259, 315, 354, 264, 321, 224, 262, 265, + 300, 300, 317, 236, 237, 257, 261, 256, 256, 262, + 222, 315, 255, 300, 270, 271, 272, 267, 269, 234, + 235, 238, 239, 273, 274, 240, 241, 277, 276, 275, + 242, 244, 243, 278, 258, 258, 313, 225, 313, 318, + 337, 350, 343, 224, 352, 353, 260, 351, 265, 265, + 378, 255, 255, 265, 265, 317, 255, 317, 263, 255, + 260, 360, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 264, 316, 262, 265, 260, 357, 354, 264, + 354, 355, 354, 350, 224, 256, 292, 317, 224, 315, + 300, 300, 300, 302, 302, 303, 303, 304, 304, 304, + 304, 305, 305, 306, 307, 308, 309, 310, 311, 314, + 258, 260, 352, 344, 262, 265, 357, 379, 317, 265, + 317, 263, 377, 367, 315, 315, 354, 260, 262, 260, + 258, 317, 265, 353, 223, 356, 368, 380, 256, 256, + 317, 332, 339, 371, 361, 260, 354, 263, 255, 371, + 381, 382, 363, 364, 365, 370, 373, 224, 256, 260, + 315, 317, 265, 256, 17, 359, 358, 259, 264, 358, + 362, 366, 256, 317, 362, 363, 367, 374, 354, 265, + 260 }; - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 271, 272, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 274, 274, 274, 274, 274, 274, 275, 276, - 277, 278, 278, 279, 279, 280, 280, 281, 282, 282, - 283, 283, 283, 283, 284, 284, 284, 284, 285, 285, - 285, 285, 286, 286, 286, 287, 287, 287, 288, 288, - 288, 288, 288, 289, 289, 289, 290, 290, 291, 291, - 292, 292, 293, 293, 294, 294, 295, 295, 296, 297, - 296, 298, 298, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 300, 300, 301, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 304, 303, 305, 305, - 306, 307, 307, 308, 308, 309, 310, 310, 311, 311, - 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, - 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, - 318, 319, 319, 320, 320, 320, 321, 322, 322, 323, - 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 325, 325, 326, 326, 327, 327, - 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 329, 329, 329, 331, 330, 332, 330, - 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, - 337, 338, 338, 339, 340, 340, 341, 341, 341, 341, - 341, 341, 341, 342, 343, 344, 342, 345, 345, 347, - 346, 348, 346, 349, 349, 350, 350, 351, 351, 352, - 353, 353, 354, 354, 356, 355, 357, 357, 358, 358, - 360, 359, 361, 359, 362, 359, 363, 363, 364, 364, - 365, 365, 366, 366, 366, 366, 366, 367, 367, 368, - 368, 370, 369 -}; +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, - 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, - 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, - 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, - 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, - 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, - 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, - 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 1, 3, 1, 2, 2, 3, - 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, - 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, - 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, - 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, - 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, - 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, - 1, 0, 3 -}; +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2519,15 +2803,27 @@ do \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) + YYERROR; \ + } \ +while (YYID (0)) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, parseContext) +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2537,47 +2833,58 @@ while (0) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { FILE *yyo = yyoutput; YYUSE (yyo); - YYUSE (pParseContext); if (!yyvaluep) return; + YYUSE (pParseContext); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); # endif - YYUSE (yytype); + switch (yytype) + { + default: + break; + } } @@ -2585,11 +2892,23 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue | Print this symbol on YYOUTPUT. | `--------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { - YYFPRINTF (yyoutput, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); @@ -2600,8 +2919,16 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, gls | TOP (included). | `------------------------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2612,42 +2939,50 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +#else +static void +yy_reduce_print (yyvsp, yyrule, pParseContext) + YYSTYPE *yyvsp; + int yyrule; + glslang::TParseContext* pParseContext; +#endif { - unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; + unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ -} while (0) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, pParseContext); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2661,7 +2996,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2684,8 +3019,15 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -2701,8 +3043,16 @@ yystrlen (const char *yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2732,27 +3082,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -2775,11 +3125,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; + const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -2787,6 +3137,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + + for details. YYERROR is fine as it does not invoke this + function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -2836,7 +3190,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -2903,18 +3257,33 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, pParseContext) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + glslang::TParseContext* pParseContext; +#endif { YYUSE (yyvaluep); YYUSE (pParseContext); + if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END + switch (yytype) + { + + default: + break; + } } @@ -2924,18 +3293,56 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseCon | yyparse. | `----------*/ +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (glslang::TParseContext* pParseContext) +#else +int +yyparse (pParseContext) + glslang::TParseContext* pParseContext; +#endif +#endif { /* The lookahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -YY_INITIAL_VALUE (static YYSTYPE yyval_default;) -YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); +static YYSTYPE yyval_default; +# define YY_INITIAL_VALUE(Value) = Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -2945,8 +3352,8 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); int yyerrstatus; /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + `yyss': related to states. + `yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3014,23 +3421,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3038,22 +3445,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3062,10 +3469,10 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3094,7 +3501,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (&yylval, parseContext); + yychar = YYLEX; } if (yychar <= YYEOF) @@ -3159,7 +3566,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. + `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3173,247 +3580,259 @@ yyreduce: switch (yyn) { case 2: -#line 246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 250 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); } -#line 3181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -#line 252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 256 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -#line 255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 259 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -#line 258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 262 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -#line 262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 266 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -#line 266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 270 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -#line 270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 274 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -#line 273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 277 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -#line 277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 281 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat16, (yyvsp[(1) - (1)].lex).loc, true); +#endif } -#line 3249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -#line 280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 287 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -#line 288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 290 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) + (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 3267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -#line 291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 298 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -#line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 301 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); } -#line 3283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -#line 297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 304 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -#line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 307 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); } -#line 3301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -#line 305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 310 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 315 "glslang.y" { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -#line 320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 323 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); - delete (yyvsp[0].interm).function; + parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -#line 327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 330 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); + delete (yyvsp[(1) - (1)].interm).function; } -#line 3337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 337 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -#line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 343 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 347 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 354 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); } -#line 3371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -#line 353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 357 "glslang.y" { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-1].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-1].interm).function; - (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -#line 360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 363 "glslang.y" { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-2].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-2].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (2)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; + (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); } -#line 3395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -#line 370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 370 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (3)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); } -#line 3403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -#line 378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 380 "glslang.y" { - // Constructor - (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); + (yyval.interm) = (yyvsp[(1) - (2)].interm); } -#line 3413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: -#line 383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 388 "glslang.y" + { + // Constructor + (yyval.interm).intermNode = 0; + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); + } + break; + + case 30: +/* Line 1792 of yacc.c */ +#line 393 "glslang.y" { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -3421,18 +3840,18 @@ yyreduce: (yyval.interm).function = 0; (yyval.interm).intermNode = 0; - TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); + TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { - TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); + TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { @@ -3441,3709 +3860,3916 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } -#line 3445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 30: -#line 413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); - } -#line 3456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: -#line 419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 423 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 3465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: -#line 423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 429 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); } -#line 3474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: -#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 433 "glslang.y" { - if ((yyvsp[-1].interm).op != EOpNull) { + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); + } + break; + + case 34: +/* Line 1792 of yacc.c */ +#line 437 "glslang.y" + { + if ((yyvsp[(1) - (2)].interm).op != EOpNull) { char errorOp[2] = {0, 0}; - switch((yyvsp[-1].interm).op) { + switch((yyvsp[(1) - (2)].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); } else { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 34: -#line 447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 3501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: -#line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 3507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 457 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } break; case 36: -#line 449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 458 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } break; case 37: -#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 3520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 459 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } break; case 38: -#line 456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 460 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } break; case 39: -#line 457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 466 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 40: -#line 462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 467 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -#line 467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 472 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -#line 476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 477 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 43: -#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 486 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 44: -#line 482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 487 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -#line 490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 492 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 46: -#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 500 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 47: -#line 497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 501 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -#line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 507 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 49: -#line 507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 3627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 516 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 50: -#line 512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 517 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -#line 517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 522 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 527 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 532 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 54: -#line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 3676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 540 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 55: -#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 541 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 549 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 57: -#line 551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 560 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 58: -#line 560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 561 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 59: -#line 561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 570 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 60: -#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 571 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 61: -#line 571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 580 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 62: -#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 581 "glslang.y" + { + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } break; case 63: -#line 581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 3756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 590 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 64: -#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 591 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 65: -#line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 3772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 599 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 66: -#line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 600 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 67: -#line 599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); - } -#line 3788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 608 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 68: -#line 607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 609 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 69: -#line 608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - ++parseContext.controlFlowNestingLevel; - } -#line 3802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 617 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 70: -#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 618 "glslang.y" { - --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } + ++parseContext.controlFlowNestingLevel; } -#line 3819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: -#line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 621 "glslang.y" + { + --parseContext.controlFlowNestingLevel; + parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); + } + } break; case 72: -#line 627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } - } -#line 3842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 636 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 73: -#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 637 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAssign; + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } } -#line 3851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -#line 646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 652 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpMulAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAssign; } -#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -#line 650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 656 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpDivAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpMulAssign; } -#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -#line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 660 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpModAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpDivAssign; } -#line 3879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -#line 659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 664 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAddAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpModAssign; } -#line 3888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -#line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 669 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpSubAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAddAssign; } -#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -#line 667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 673 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpSubAssign; } -#line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 677 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 3915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -#line 675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 681 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 3924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 685 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 3933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 689 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 3942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -#line 690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 693 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 3950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -#line 693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 700 "glslang.y" { - parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -#line 704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 703 "glslang.y" { - parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.samplerConstructorLocationCheck((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); + } } -#line 3972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -#line 711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 714 "glslang.y" { - parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); - (yyval.interm.intermNode) = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature + parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -#line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 721 "glslang.y" { - if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) - (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; + parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); + (yyval.interm.intermNode) = 0; + // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 3992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -#line 721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 726 "glslang.y" { - parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); - - // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope - parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); - (yyval.interm.intermNode) = 0; + if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) + (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; } -#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -#line 729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 731 "glslang.y" { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); + + // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope + parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); + parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 4014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -#line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 739 "glslang.y" { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); + parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -#line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 743 "glslang.y" { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); + parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -#line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 747 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); + parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -#line 746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 751 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); (yyval.interm.intermNode) = 0; } -#line 4052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 756 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); - parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 761 "glslang.y" + { + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); + parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); + (yyval.interm.intermNode) = 0; + } break; case 97: -#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[-4].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[-5].interm.type).loc; - (yyval.interm).typeList = (yyvsp[-1].interm.typeList); - } -#line 4083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" + { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } break; case 98: -#line 771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" { - (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + --parseContext.structNestingLevel; + parseContext.blockName = (yyvsp[(2) - (6)].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; + (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); } -#line 4092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -#line 775 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 781 "glslang.y" { - (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + (yyval.interm.identifierList) = new TIdentifierList; + (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); } -#line 4101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -#line 782 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 785 "glslang.y" { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); } -#line 4110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -#line 789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 792 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -#line 792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 799 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); } -#line 4126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -#line 799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 802 "glslang.y" { - // Add the parameter - (yyval.interm.function) = (yyvsp[-1].interm.function); - if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); - else - delete (yyvsp[0].interm).param.type; + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); } -#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: -#line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 809 "glslang.y" + { + // Add the parameter + (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); + if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); + else + delete (yyvsp[(2) - (2)].interm).param.type; + } + break; + + case 105: +/* Line 1792 of yacc.c */ +#line 817 "glslang.y" { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // - if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { + if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // - parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[0].interm).param.type; + parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[(3) - (3)].interm).param.type; } else { // Add the parameter - (yyval.interm.function) = (yyvsp[-2].interm.function); - (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); + (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); + (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); } } -#line 4161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 105: -#line 827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); - } - if ((yyvsp[-2].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - - // Add the function as a prototype after parsing it (we do not support recursion) - TFunction *function; - TType type((yyvsp[-2].interm.type)); - function = new TFunction((yyvsp[-1].lex).string, type); - (yyval.interm.function) = function; - } -#line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: -#line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 837 "glslang.y" { - if ((yyvsp[-1].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); + if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); } - if ((yyvsp[-1].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); - } - parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); - TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).param = param; + // Add the function as a prototype after parsing it (we do not support recursion) + TFunction *function; + TType type((yyvsp[(1) - (3)].interm.type)); + function = new TFunction((yyvsp[(2) - (3)].lex).string, type); + (yyval.interm.function) = function; } -#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: -#line 860 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 855 "glslang.y" { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + if ((yyvsp[(1) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); } - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.type).arraySizes, (yyvsp[0].interm).arraySizes); + if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); + } + parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); - parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); - - (yyvsp[-2].interm.type).arraySizes = (yyvsp[0].interm).arraySizes; - - TParameter param = { (yyvsp[-1].lex).string, new TType((yyvsp[-2].interm.type))}; - (yyval.interm).loc = (yyvsp[-1].lex).loc; + TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; (yyval.interm).param = param; } -#line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: -#line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 870 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + } + parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); + (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; + + TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; + (yyval.interm).param = param; } -#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: -#line 894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 893 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); + } -#line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -#line 904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 904 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + (yyval.interm) = (yyvsp[(1) - (1)].interm); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -#line 914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 914 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -#line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 924 "glslang.y" { - TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; - (yyval.interm).param = param; - if ((yyvsp[0].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); + (yyval.interm) = (yyvsp[(1) - (1)].interm); + + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -#line 933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 934 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; + (yyval.interm).param = param; + if ((yyvsp[(1) - (1)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); } -#line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -#line 936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 943 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -#line 940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 946 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); + (yyval.interm) = (yyvsp[(1) - (3)].interm); + parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); } -#line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -#line 944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 950 "glslang.y" { - (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm) = (yyvsp[(1) - (4)].interm); + parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); } -#line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -#line 949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 954 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); } -#line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -#line 957 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 959 "glslang.y" { - (yyval.interm).type = (yyvsp[0].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); + (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 967 "glslang.y" { - (yyval.interm).type = (yyvsp[-1].interm.type); + (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 4354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -#line 967 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 972 "glslang.y" { - (yyval.interm).type = (yyvsp[-2].interm.type); + (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); } -#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -#line 972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 977 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); } -#line 4374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -#line 977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 982 "glslang.y" { - (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -#line 986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 987 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); + } + break; - parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + case 124: +/* Line 1792 of yacc.c */ +#line 996 "glslang.y" + { + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); + + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[(1) - (1)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 124: -#line 997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 125: +/* Line 1792 of yacc.c */ +#line 1007 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[(2) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } - if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) - (yyvsp[0].interm.type).arraySizes = 0; + if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) + (yyvsp[(2) - (2)].interm.type).arraySizes = 0; - parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 4429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 125: -#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); - parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.invariant = true; - } -#line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -#line 1033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1034 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.smooth = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); + parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.invariant = true; } -#line 4452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -#line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1043 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.flat = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.smooth = true; } -#line 4464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1050 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); - parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nopersp = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.flat = true; } -#line 4476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -#line 1054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1057 "glslang.y" { -#ifdef AMD_EXTENSIONS - parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.explicitInterp = true; -#endif + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); + parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.nopersp = true; } -#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1064 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); +#ifdef AMD_EXTENSIONS + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.explicitInterp = true; +#endif } -#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1076 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); } -#line 4506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -#line 1075 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1082 "glslang.y" { - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -#line 1082 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1085 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); + (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); } -#line 4525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -#line 1086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1092 "glslang.y" { - (yyval.interm.type).init((yyvsp[-2].lex).loc); - parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); } -#line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -#line 1090 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[0].lex).loc); - TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); +/* Line 1792 of yacc.c */ +#line 1096 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); } -#line 4544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -#line 1098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.noContraction = true; +/* Line 1792 of yacc.c */ +#line 1100 "glslang.y" + { // because "shared" is both an identifier and a keyword + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + TString strShared("shared"); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); } -#line 4555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -#line 1107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1108 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.noContraction = true; } -#line 4563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1117 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1120 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + if ((yyval.interm.type).basicType == EbtVoid) + (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; + + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); } -#line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1131 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1134 "glslang.y" { - parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1137 "glslang.y" { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + parseContext.checkPrecisionQualifier((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier.precision); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1141 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1145 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1149 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1156 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); - - parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); - - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqVaryingIn; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 4654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: -#line 1162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1160 "glslang.y" { - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); - parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqVaryingIn; + } + break; + + case 148: +/* Line 1792 of yacc.c */ +#line 1172 "glslang.y" + { + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); + + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); + + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 148: -#line 1176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqInOut; - } -#line 4683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: -#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1186 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqIn; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: -#line 1187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1191 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later - (yyval.interm.type).qualifier.storage = EvqOut; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqIn; } -#line 4705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1197 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.centroid = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later + (yyval.interm.type).qualifier.storage = EvqOut; } -#line 4717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: -#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1203 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.patch = true; + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.centroid = true; } -#line 4728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: -#line 1206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1210 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.sample = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.patch = true; } -#line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: -#line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1216 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.sample = true; } -#line 4748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: -#line 1216 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1221 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqBuffer; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: -#line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1226 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); - parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqShared; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: -#line 1228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1231 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.coherent = true; + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqShared; } -#line 4779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: -#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1238 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.volatil = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.coherent = true; } -#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: -#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1242 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.restrict = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.volatil = true; } -#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: -#line 1240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1246 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.readonly = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.restrict = true; } -#line 4806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: -#line 1244 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1250 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.writeonly = true; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.readonly = true; } -#line 4815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: -#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1254 "glslang.y" { - parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqUniform; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.writeonly = true; } -#line 4826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: -#line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1258 "glslang.y" { - parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[-3].lex).loc); + parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqUniform; + } + break; + + case 164: +/* Line 1792 of yacc.c */ +#line 1264 "glslang.y" + { + parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 164: -#line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - // TODO: 4.0 functionality: subroutine type to list - } -#line 4848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: -#line 1269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1276 "glslang.y" { + // TODO: 4.0 functionality: subroutine type to list } -#line 4855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: -#line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1279 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); - (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 4864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: -#line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1284 "glslang.y" { - parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0); - (yyval.interm.type) = (yyvsp[-1].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: -#line 1287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1288 "glslang.y" { - (yyval.interm).loc = (yyvsp[-1].lex).loc; - (yyval.interm).arraySizes = new TArraySizes; - (yyval.interm).arraySizes->addInnerSize(); + parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); + (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; } -#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: -#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1297 "glslang.y" { - (yyval.interm).loc = (yyvsp[-2].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; (yyval.interm).arraySizes = new TArraySizes; - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); + (yyval.interm).arraySizes->addInnerSize(); } -#line 4898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: -#line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1302 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); - (yyval.interm).arraySizes->addInnerSize(); + (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; + (yyval.interm).arraySizes = new TArraySizes; + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } -#line 4907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: -#line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1310 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); - - TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); - (yyval.interm).arraySizes->addInnerSize(size); + (yyval.interm) = (yyvsp[(1) - (3)].interm); + (yyval.interm).arraySizes->addInnerSize(); } -#line 4919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: -#line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1314 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtVoid; + (yyval.interm) = (yyvsp[(1) - (4)].interm); + + TArraySize size; + parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); + (yyval.interm).arraySizes->addInnerSize(size); } -#line 4928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: -#line 1318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1324 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtVoid; } -#line 4937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: -#line 1322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1328 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; } -#line 4947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: -#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1332 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; } -#line 4956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: -#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1337 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; +#endif } -#line 4966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: -#line 1336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1344 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; } -#line 4976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: -#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1348 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; } -#line 4986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: -#line 1346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1353 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; } -#line 4995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: -#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1358 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(2); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; } -#line 5005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: -#line 1355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1363 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; } -#line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: -#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1367 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(2); } -#line 5025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: -#line 1365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1372 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(3); } -#line 5036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: -#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1377 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setVector(4); } -#line 5047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: -#line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1382 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setVector(4); + (yyval.interm.type).setVector(2); } -#line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: -#line 1383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1388 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(2); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(3); } -#line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: -#line 1388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1394 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(3); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setVector(4); } -#line 5078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: -#line 1393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1400 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtBool; - (yyval.interm.type).setVector(4); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(2); +#endif } -#line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: -#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1408 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(2); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(3); +#endif } -#line 5098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: -#line 1403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1416 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(3); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(4); +#endif } -#line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: -#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1424 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt; - (yyval.interm.type).setVector(4); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(2); } -#line 5118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: -#line 1413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1429 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(3); } -#line 5129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: -#line 1419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1434 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtBool; + (yyval.interm.type).setVector(4); } -#line 5140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: -#line 1425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1439 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtInt64; - (yyval.interm.type).setVector(4); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(2); } -#line 5151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: -#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1444 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(3); } -#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: -#line 1437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1449 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt; + (yyval.interm.type).setVector(4); } -#line 5173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: -#line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1454 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint; - (yyval.interm.type).setVector(4); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(2); } -#line 5184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: -#line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1460 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(2); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(3); } -#line 5195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: -#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1466 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(3); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtInt64; + (yyval.interm.type).setVector(4); } -#line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: -#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1472 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(4); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(2); } -#line 5217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: -#line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1478 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(3); } -#line 5227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: -#line 1472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1484 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint; + (yyval.interm.type).setVector(4); } -#line 5237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: -#line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1490 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(2); } -#line 5247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: -#line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1496 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 2); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(3); } -#line 5257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: -#line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1502 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 3); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(4); } -#line 5267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: -#line 1492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1508 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(2, 4); + (yyval.interm.type).setMatrix(2, 2); } -#line 5277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: -#line 1497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1513 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 2); + (yyval.interm.type).setMatrix(3, 3); } -#line 5287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: -#line 1502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1518 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).setMatrix(4, 4); } -#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: -#line 1507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1523 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(3, 4); + (yyval.interm.type).setMatrix(2, 2); } -#line 5307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: -#line 1512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1528 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 2); + (yyval.interm.type).setMatrix(2, 3); } -#line 5317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: -#line 1517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1533 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 3); + (yyval.interm.type).setMatrix(2, 4); } -#line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: -#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1538 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).setMatrix(3, 2); } -#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: -#line 1527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1543 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); } -#line 5348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: -#line 1533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1548 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 4); } -#line 5359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: -#line 1539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1553 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 4); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 2); } -#line 5370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: -#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1558 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 3); } -#line 5381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: -#line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1563 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } -#line 5392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: -#line 1557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1568 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(2, 4); + (yyval.interm.type).setMatrix(2, 2); } -#line 5403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: -#line 1563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1574 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 2); - } -#line 5414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 220: -#line 1569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 221: -#line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 220: +/* Line 1792 of yacc.c */ +#line 1580 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(3, 4); - } -#line 5436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 222: -#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 2); - } -#line 5447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 223: -#line 1587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; - (yyval.interm.type).setMatrix(4, 3); - } -#line 5458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 224: -#line 1593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 221: +/* Line 1792 of yacc.c */ +#line 1586 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 222: +/* Line 1792 of yacc.c */ +#line 1592 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 223: +/* Line 1792 of yacc.c */ +#line 1598 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 224: +/* Line 1792 of yacc.c */ +#line 1604 "glslang.y" + { + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 2); + } break; case 225: -#line 1599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1610 "glslang.y" { - parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtAtomicUint; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 3); } -#line 5479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: -#line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1616 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(3, 4); } -#line 5489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: -#line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1622 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 2); } -#line 5499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: -#line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1628 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd3D); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 3); } -#line 5509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: -#line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1634 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; + (yyval.interm.type).setMatrix(4, 4); } -#line 5519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: -#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1640 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); +#endif } -#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: -#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1648 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); +#endif } -#line 5539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: -#line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1656 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); +#endif } -#line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: -#line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1664 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 2); +#endif } -#line 5559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: -#line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1672 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 3); +#endif } -#line 5569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: -#line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1680 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(2, 4); +#endif } -#line 5579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: -#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1688 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 2); +#endif } -#line 5589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: -#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1696 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 3); +#endif } -#line 5599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: -#line 1664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1704 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(3, 4); +#endif } -#line 5609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: -#line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1712 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 2); +#endif } -#line 5619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: -#line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1720 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 3); +#endif } -#line 5629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: -#line 1679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1728 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd3D); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setMatrix(4, 4); +#endif } -#line 5639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: -#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1736 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube); + parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtAtomicUint; } -#line 5649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: -#line 1689 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1741 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 5659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: -#line 1694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1746 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 5669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: -#line 1699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1751 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 5679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: -#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1756 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: -#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1761 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: -#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1766 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 5709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: -#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1771 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: -#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1776 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: -#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1781 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 5739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: -#line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1786 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 5749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: -#line 1739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1791 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 5759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: -#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1796 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: -#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1801 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdRect); + (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 5779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: -#line 1754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1806 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdRect); + (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 5789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: -#line 1759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1811 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 5799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: -#line 1764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1816 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 5809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: -#line 1769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1821 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 5819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: -#line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1826 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 5829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: -#line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1831 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 5839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: -#line 1784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1836 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 5849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: -#line 1789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1841 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 5859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: -#line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1846 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 5869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: -#line 1799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1851 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 5879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: -#line 1804 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1856 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(false); + (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: -#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1861 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setPureSampler(true); + (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 5899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: -#line 1814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1866 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 5909 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: -#line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1871 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); + (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 5919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: -#line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1876 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 5929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: -#line 1829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1881 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); + (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 5939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: -#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1886 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 5949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: -#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1891 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 5959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: -#line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1896 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 5969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: -#line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1901 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); + (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 5979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: -#line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1906 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); + (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 5989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: -#line 1859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1911 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 5999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: -#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1916 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 6009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: -#line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1921 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 6019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: -#line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1926 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: -#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1931 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: -#line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1936 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); + (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 6049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: -#line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1941 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); + (yyval.interm.type).sampler.setPureSampler(false); } -#line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: -#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1946 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); + (yyval.interm.type).sampler.setPureSampler(true); } -#line 6069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: -#line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1951 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 6079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: -#line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1956 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: -#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1961 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 6099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: -#line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1966 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 6109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: -#line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1971 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 6119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: -#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1976 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 6129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: -#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1981 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 6139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: -#line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1986 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 6149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: -#line 1939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1991 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 6159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: -#line 1944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1996 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 6169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: -#line 1949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2001 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 6179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: -#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2006 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 6189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: -#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2011 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 6199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: -#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2016 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 6209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: -#line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2021 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 6219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: -#line 1974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2026 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 6229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: -#line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2031 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 6239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: -#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2036 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: -#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2041 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: -#line 1994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2046 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: -#line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2051 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: -#line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2056 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: -#line 2009 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2061 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: -#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2066 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: -#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2071 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); + (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 6319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: -#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2076 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 6329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: -#line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2081 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 6339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: -#line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2086 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 6349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: -#line 2039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2091 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: -#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2096 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: -#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2101 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); + (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 6379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: -#line 2054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2106 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 6389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: -#line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2111 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 6399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: -#line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2116 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 6409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: -#line 2069 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2121 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 6419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: -#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2126 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 6429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: -#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2131 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 6439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: -#line 2084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2136 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 6449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: -#line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2141 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 6459 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: -#line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2146 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: -#line 2099 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2151 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: -#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2156 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 6489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: -#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2161 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 6499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: -#line 2114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2166 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 6509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: -#line 2119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2171 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 6519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: -#line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2176 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: -#line 2129 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2181 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 6539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: -#line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2186 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 6549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: -#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2191 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; - (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 6559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: -#line 2144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2196 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); + } + break; + + case 335: +/* Line 1792 of yacc.c */ +#line 2201 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); + } + break; + + case 336: +/* Line 1792 of yacc.c */ +#line 2206 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); + } + break; + + case 337: +/* Line 1792 of yacc.c */ +#line 2211 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); + } + break; + + case 338: +/* Line 1792 of yacc.c */ +#line 2216 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); + } + break; + + case 339: +/* Line 1792 of yacc.c */ +#line 2221 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); + } + break; + + case 340: +/* Line 1792 of yacc.c */ +#line 2226 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); + } + break; + + case 341: +/* Line 1792 of yacc.c */ +#line 2231 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); + } + break; + + case 342: +/* Line 1792 of yacc.c */ +#line 2236 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); + } + break; + + case 343: +/* Line 1792 of yacc.c */ +#line 2241 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); + } + break; + + case 344: +/* Line 1792 of yacc.c */ +#line 2246 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); + } + break; + + case 345: +/* Line 1792 of yacc.c */ +#line 2251 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); + } + break; + + case 346: +/* Line 1792 of yacc.c */ +#line 2256 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); + } + break; + + case 347: +/* Line 1792 of yacc.c */ +#line 2261 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); + } + break; + + case 348: +/* Line 1792 of yacc.c */ +#line 2266 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); + } + break; + + case 349: +/* Line 1792 of yacc.c */ +#line 2271 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); + } + break; + + case 350: +/* Line 1792 of yacc.c */ +#line 2276 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtSampler; + (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); + } + break; + + case 351: +/* Line 1792 of yacc.c */ +#line 2281 "glslang.y" { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 6570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 335: -#line 2150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 352: +/* Line 1792 of yacc.c */ +#line 2287 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 6581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 336: -#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 353: +/* Line 1792 of yacc.c */ +#line 2293 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 6592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 337: -#line 2162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 354: +/* Line 1792 of yacc.c */ +#line 2299 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 338: -#line 2168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 355: +/* Line 1792 of yacc.c */ +#line 2305 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 6614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 339: -#line 2174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 356: +/* Line 1792 of yacc.c */ +#line 2311 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 6625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 340: -#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 357: +/* Line 1792 of yacc.c */ +#line 2317 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 6636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 341: -#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 358: +/* Line 1792 of yacc.c */ +#line 2323 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 6646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 342: -#line 2191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 359: +/* Line 1792 of yacc.c */ +#line 2328 "glslang.y" { // // This is for user defined type names. The lexical phase looked up the // type. // - if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { + if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else - parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); + parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); } -#line 6664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 343: -#line 2207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); - } -#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 344: -#line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); - } -#line 6684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 345: -#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); - } -#line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 346: -#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 6700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 347: -#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); - parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); - if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[-5].lex).loc); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = structure; - --parseContext.structNestingLevel; - } -#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 348: -#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 349: -#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[-4].lex).loc); - (yyval.interm.type).basicType = EbtStruct; - (yyval.interm.type).userDef = structure; - --parseContext.structNestingLevel; - } -#line 6734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 350: -#line 2246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); - } -#line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 351: -#line 2249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { - for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); - } - (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); - } - } -#line 6757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 352: -#line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); - - for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-2].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); - } - } -#line 6780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 353: -#line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier); - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); - } - - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); - - for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-3].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); - } - } -#line 6806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 354: -#line 2304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 6815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 355: -#line 2308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); - } -#line 6823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 356: -#line 2314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); - } -#line 6833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 357: -#line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0); - - (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); - (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); - } -#line 6846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 358: -#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } -#line 6854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 359: -#line 2333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - } -#line 6865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: -#line 2339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2344 "glslang.y" { - const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 6876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: -#line 2348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2349 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 6884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: -#line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2354 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 6892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: -#line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } break; case 364: -#line 2361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { + TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); + parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); + if (! parseContext.symbolTable.insert(*userTypeDef)) + parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = structure; + --parseContext.structNestingLevel; + } break; case 365: -#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } break; case 366: -#line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { + TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); + (yyval.interm.type).basicType = EbtStruct; + (yyval.interm.type).userDef = structure; + --parseContext.structNestingLevel; + } break; case 367: -#line 2369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2383 "glslang.y" + { + (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); + } break; case 368: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2386 "glslang.y" + { + (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { + for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); + } + (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); + } + } break; case 369: -#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2399 "glslang.y" + { + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if (parseContext.profile == EEsProfile) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); + } + + (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); + + parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); + + for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { + parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); + } + } break; case 370: -#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2417 "glslang.y" + { + parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); + if ((yyvsp[(2) - (4)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if (parseContext.profile == EEsProfile) + parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); + } + + (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); + + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); + + for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { + parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); + } + } break; case 371: -#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2441 "glslang.y" + { + (yyval.interm.typeList) = new TTypeList; + (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); + } break; case 372: -#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2445 "glslang.y" + { + (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); + } break; case 373: -#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = 0; } -#line 6958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2451 "glslang.y" + { + (yyval.interm.typeLine).type = new TType(EbtVoid); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); + } break; case 374: -#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2456 "glslang.y" { - parseContext.symbolTable.push(); - ++parseContext.statementNestingLevel; + parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + + (yyval.interm.typeLine).type = new TType(EbtVoid); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); + (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); } -#line 6967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: -#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 2467 "glslang.y" + { + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + } + break; + + case 376: +/* Line 1792 of yacc.c */ +#line 2470 "glslang.y" + { + const char* initFeature = "{ } style initializers"; + parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + } + break; + + case 377: +/* Line 1792 of yacc.c */ +#line 2476 "glslang.y" + { + const char* initFeature = "{ } style initializers"; + parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); + } + break; + + case 378: +/* Line 1792 of yacc.c */ +#line 2485 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); + } + break; + + case 379: +/* Line 1792 of yacc.c */ +#line 2488 "glslang.y" + { + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + } + break; + + case 380: +/* Line 1792 of yacc.c */ +#line 2494 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 381: +/* Line 1792 of yacc.c */ +#line 2498 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 382: +/* Line 1792 of yacc.c */ +#line 2499 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 383: +/* Line 1792 of yacc.c */ +#line 2505 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 384: +/* Line 1792 of yacc.c */ +#line 2506 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 385: +/* Line 1792 of yacc.c */ +#line 2507 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 386: +/* Line 1792 of yacc.c */ +#line 2508 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 387: +/* Line 1792 of yacc.c */ +#line 2509 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 388: +/* Line 1792 of yacc.c */ +#line 2510 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 389: +/* Line 1792 of yacc.c */ +#line 2511 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } + break; + + case 390: +/* Line 1792 of yacc.c */ +#line 2515 "glslang.y" + { (yyval.interm.intermNode) = 0; } + break; + + case 391: +/* Line 1792 of yacc.c */ +#line 2516 "glslang.y" + { + parseContext.symbolTable.push(); + ++parseContext.statementNestingLevel; + } + break; + + case 392: +/* Line 1792 of yacc.c */ +#line 2520 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 6976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 376: -#line 2387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 393: +/* Line 1792 of yacc.c */ +#line 2524 "glslang.y" { - if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) - (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); + if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) + (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); } -#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 377: -#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 394: +/* Line 1792 of yacc.c */ +#line 2532 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 378: -#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 395: +/* Line 1792 of yacc.c */ +#line 2533 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 379: -#line 2400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 396: +/* Line 1792 of yacc.c */ +#line 2537 "glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 380: -#line 2403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 397: +/* Line 1792 of yacc.c */ +#line 2540 "glslang.y" { --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } -#line 7015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 398: +/* Line 1792 of yacc.c */ +#line 2544 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 382: -#line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 399: +/* Line 1792 of yacc.c */ +#line 2549 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } -#line 7036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 383: -#line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 400: +/* Line 1792 of yacc.c */ +#line 2558 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 384: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 401: +/* Line 1792 of yacc.c */ +#line 2561 "glslang.y" { - if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) - (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); + if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) + (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); } -#line 7054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 385: -#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 402: +/* Line 1792 of yacc.c */ +#line 2569 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); + if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 386: -#line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 403: +/* Line 1792 of yacc.c */ +#line 2577 "glslang.y" { - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); + if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); } -#line 7080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 387: -#line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 404: +/* Line 1792 of yacc.c */ +#line 2588 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 388: -#line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 7092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 405: +/* Line 1792 of yacc.c */ +#line 2589 "glslang.y" + { (yyval.interm.intermNode) = static_cast((yyvsp[(1) - (2)].interm.intermTypedNode)); } break; - case 389: -#line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 406: +/* Line 1792 of yacc.c */ +#line 2593 "glslang.y" { - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); + parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); } -#line 7101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 390: -#line 2463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 407: +/* Line 1792 of yacc.c */ +#line 2600 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); } -#line 7110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 391: -#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 408: +/* Line 1792 of yacc.c */ +#line 2604 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 7119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 392: -#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 409: +/* Line 1792 of yacc.c */ +#line 2612 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); } -#line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 393: -#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 410: +/* Line 1792 of yacc.c */ +#line 2616 "glslang.y" { - parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); + parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); - TType type((yyvsp[-3].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + TType type((yyvsp[(1) - (4)].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } -#line 7143 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 411: +/* Line 1792 of yacc.c */ +#line 2629 "glslang.y" { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7152,13 +7778,13 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 7156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 395: -#line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 412: +/* Line 1792 of yacc.c */ +#line 2637 "glslang.y" { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); @@ -7166,287 +7792,287 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 396: -#line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 413: +/* Line 1792 of yacc.c */ +#line 2649 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 397: -#line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 414: +/* Line 1792 of yacc.c */ +#line 2652 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 398: -#line 2521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 415: +/* Line 1792 of yacc.c */ +#line 2658 "glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); else { - parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); + parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); } } -#line 7203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 399: -#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 416: +/* Line 1792 of yacc.c */ +#line 2670 "glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); } -#line 7217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 400: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 417: +/* Line 1792 of yacc.c */ +#line 2682 "glslang.y" { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 418: +/* Line 1792 of yacc.c */ +#line 2690 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 402: -#line 2560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 419: +/* Line 1792 of yacc.c */ +#line 2697 "glslang.y" { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 403: -#line 2565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 420: +/* Line 1792 of yacc.c */ +#line 2702 "glslang.y" { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); + parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); - parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); + parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 404: -#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 421: +/* Line 1792 of yacc.c */ +#line 2713 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 405: -#line 2582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 422: +/* Line 1792 of yacc.c */ +#line 2719 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); + parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 406: -#line 2597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 423: +/* Line 1792 of yacc.c */ +#line 2734 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 407: -#line 2600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 424: +/* Line 1792 of yacc.c */ +#line 2737 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 408: -#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 425: +/* Line 1792 of yacc.c */ +#line 2743 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 409: -#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 426: +/* Line 1792 of yacc.c */ +#line 2746 "glslang.y" { (yyval.interm.intermTypedNode) = 0; } -#line 7328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 410: -#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 427: +/* Line 1792 of yacc.c */ +#line 2752 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 411: -#line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 428: +/* Line 1792 of yacc.c */ +#line 2756 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); } -#line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 412: -#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 429: +/* Line 1792 of yacc.c */ +#line 2763 "glslang.y" { if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); } -#line 7356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 413: -#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 430: +/* Line 1792 of yacc.c */ +#line 2768 "glslang.y" { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); } -#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 414: -#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 431: +/* Line 1792 of yacc.c */ +#line 2773 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) parseContext.postMainReturn = true; } -#line 7378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 415: -#line 2643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 432: +/* Line 1792 of yacc.c */ +#line 2780 "glslang.y" { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); } -#line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 416: -#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 433: +/* Line 1792 of yacc.c */ +#line 2783 "glslang.y" { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); + parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); } -#line 7395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 417: -#line 2655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 434: +/* Line 1792 of yacc.c */ +#line 2792 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 418: -#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 435: +/* Line 1792 of yacc.c */ +#line 2796 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 419: -#line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 436: +/* Line 1792 of yacc.c */ +#line 2803 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 420: -#line 2669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 437: +/* Line 1792 of yacc.c */ +#line 2806 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 421: -#line 2675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 438: +/* Line 1792 of yacc.c */ +#line 2812 "glslang.y" { - (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); - (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); + (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); + (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); } -#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 422: -#line 2679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 439: +/* Line 1792 of yacc.c */ +#line 2816 "glslang.y" { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); + parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree @@ -7454,11 +8080,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 8088 "glslang_tab.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7480,7 +8106,7 @@ yyreduce: *++yyvsp = yyval; - /* Now 'shift' the result of the reduction. Determine what state + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -7495,9 +8121,9 @@ yyreduce: goto yynewstate; -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -7548,20 +8174,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -7580,7 +8206,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7593,29 +8219,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); + yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -7666,14 +8292,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); + yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow @@ -7684,7 +8310,11 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - return yyresult; + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 2696 "MachineIndependent/glslang.y" /* yacc.c:1906 */ + + +/* Line 2055 of yacc.c */ +#line 2833 "glslang.y" diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index 2d8276af..b6d27993 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,288 +40,306 @@ extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:1909 */ +/* Line 2058 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -355,16 +373,28 @@ union YYSTYPE }; } interm; -#line 359 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 2058 of yacc.c */ +#line 379 "glslang_tab.cpp.h" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 0ef37c47..bd64f199 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -304,6 +304,11 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPackUint2x32: out.debug << "packUint2x32"; break; case EOpUnpackUint2x32: out.debug << "unpackUint2x32"; break; +#ifdef AMD_EXTENSIONS + case EOpPackFloat2x16: out.debug << "packFloat2x16"; break; + case EOpUnpackFloat2x16: out.debug << "unpackFloat2x16"; break; +#endif + case EOpLength: out.debug << "length"; break; case EOpNormalize: out.debug << "normalize"; break; case EOpDPdx: out.debug << "dPdx"; break; @@ -373,6 +378,21 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; + + case EOpConvBoolToFloat16: out.debug << "Convert bool to float16"; break; + case EOpConvIntToFloat16: out.debug << "Convert int to float16"; break; + case EOpConvUintToFloat16: out.debug << "Convert uint to float16"; break; + case EOpConvFloatToFloat16: out.debug << "Convert float to float16"; break; + case EOpConvDoubleToFloat16: out.debug << "Convert double to float16"; break; + case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16"; break; + case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16"; break; + case EOpConvFloat16ToBool: out.debug << "Convert float16 to bool"; break; + case EOpConvFloat16ToInt: out.debug << "Convert float16 to int"; break; + case EOpConvFloat16ToUint: out.debug << "Convert float16 to uint"; break; + case EOpConvFloat16ToFloat: out.debug << "Convert float16 to float"; break; + case EOpConvFloat16ToDouble: out.debug << "Convert float16 to double"; break; + case EOpConvFloat16ToInt64: out.debug << "Convert float16 to int64"; break; + case EOpConvFloat16ToUint64: out.debug << "Convert float16 to uint64"; break; #endif default: out.debug.message(EPrefixError, "Bad unary op"); @@ -447,6 +467,21 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructDMat4x2: out.debug << "Construct dmat4x2"; break; case EOpConstructDMat4x3: out.debug << "Construct dmat4x3"; break; case EOpConstructDMat4x4: out.debug << "Construct dmat4"; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: out.debug << "Construct float16_t"; break; + case EOpConstructF16Vec2: out.debug << "Construct f16vec2"; break; + case EOpConstructF16Vec3: out.debug << "Construct f16vec3"; break; + case EOpConstructF16Vec4: out.debug << "Construct f16vec4"; break; + case EOpConstructF16Mat2x2: out.debug << "Construct f16mat2"; break; + case EOpConstructF16Mat2x3: out.debug << "Construct f16mat2x3"; break; + case EOpConstructF16Mat2x4: out.debug << "Construct f16mat2x4"; break; + case EOpConstructF16Mat3x2: out.debug << "Construct f16mat3x2"; break; + case EOpConstructF16Mat3x3: out.debug << "Construct f16mat3"; break; + case EOpConstructF16Mat3x4: out.debug << "Construct f16mat3x4"; break; + case EOpConstructF16Mat4x2: out.debug << "Construct f16mat4x2"; break; + case EOpConstructF16Mat4x3: out.debug << "Construct f16mat4x3"; break; + case EOpConstructF16Mat4x4: out.debug << "Construct f16mat4"; break; +#endif case EOpConstructStruct: out.debug << "Construct structure"; break; case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break; @@ -636,6 +671,9 @@ static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif { const double value = constUnion[i].getDConst(); // Print infinity in a portable way, for test stability. diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index f213dd6c..2e101347 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -950,6 +950,9 @@ int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) case EbtInt64: case EbtUint64: case EbtDouble: size = 8; return 8; +#ifdef AMD_EXTENSIONS + case EbtFloat16: size = 2; return 2; +#endif default: size = 4; return 4; } } diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index dc51682b..967d352a 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -76,6 +76,9 @@ public: virtual void updateExtensionBehavior(int line, const char* const extension, const char* behavior); virtual void fullIntegerCheck(const TSourceLoc&, const char* op); virtual void doubleCheck(const TSourceLoc&, const char* op); +#ifdef AMD_EXTENSIONS + virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); +#endif virtual void int64Check(const TSourceLoc&, const char* op, bool builtIn = false); virtual void spvRemoved(const TSourceLoc&, const char* op); virtual void vulkanRemoved(const TSourceLoc&, const char* op); diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index d28e7beb..3c6d0122 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -705,6 +705,9 @@ int TPpContext::CPPerror(TPpToken* ppToken) while (token != '\n' && token != EndOfInput) { if (token == PpAtomConstInt || token == PpAtomConstUint || token == PpAtomConstInt64 || token == PpAtomConstUint64 || +#ifdef AMD_EXTENSIONS + token == PpAtomConstFloat16 || +#endif token == PpAtomConstFloat || token == PpAtomConstDouble) { message.append(ppToken->name); } else if (token == PpAtomIdentifier || token == PpAtomConstString) { @@ -739,6 +742,9 @@ int TPpContext::CPPpragma(TPpToken* ppToken) case PpAtomConstUint64: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif tokens.push_back(ppToken->name); break; default: diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 7daebb3d..518dbdee 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -117,6 +117,10 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) int declen; int str_len; int isDouble = 0; +#ifdef AMD_EXTENSIONS + int isFloat16 = 0; + bool enableFloat16 = parseContext.version >= 450 && parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float); +#endif declen = 0; @@ -200,6 +204,28 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) len = 1,str_len=1; } } +#ifdef AMD_EXTENSIONS + } else if (enableFloat16 && (ch == 'h' || ch == 'H')) { + parseContext.float16Check(ppToken->loc, "half floating-point suffix"); + if (!HasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + int ch2 = getChar(); + if (ch2 != 'f' && ch2 != 'F') { + ungetChar(); + ungetChar(); + } + else { + if (len < MaxTokenLength) { + str[len++] = (char)ch; + str[len++] = (char)ch2; + isFloat16 = 1; + } + else { + parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1, str_len = 1; + } + } +#endif } else if (ch == 'f' || ch == 'F') { parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); if (! parseContext.relaxedErrors()) @@ -222,6 +248,10 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) if (isDouble) return PpAtomConstDouble; +#ifdef AMD_EXTENSIONS + else if (isFloat16) + return PpAtomConstFloat16; +#endif else return PpAtomConstFloat; } @@ -744,6 +774,9 @@ const char* TPpContext::tokenize(TPpToken* ppToken) case PpAtomConstInt64: case PpAtomConstUint64: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif tokenString = ppToken->name; break; case PpAtomConstString: diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index f5a0513c..48e2e7a3 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -144,6 +144,9 @@ void TPpContext::RecordToken(TokenStream *pTok, int token, TPpToken* ppToken) case PpAtomConstUint64: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif str = ppToken->name; while (*str) { lAddByte(pTok, (unsigned char) *str); @@ -195,6 +198,9 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) case PpAtomIdentifier: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif case PpAtomConstInt: case PpAtomConstUint: case PpAtomConstInt64: @@ -221,6 +227,9 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) break; case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif ppToken->dval = atof(ppToken->name); break; case PpAtomConstInt: diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.h b/glslang/MachineIndependent/preprocessor/PpTokens.h index fd4d4076..c84431d3 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.h +++ b/glslang/MachineIndependent/preprocessor/PpTokens.h @@ -123,6 +123,9 @@ enum EFixedAtoms { PpAtomConstUint64, PpAtomConstFloat, PpAtomConstDouble, +#ifdef AMD_EXTENSIONS + PpAtomConstFloat16, +#endif PpAtomConstString, // Identifiers diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index d5577656..ca81458b 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -529,6 +529,9 @@ public: switch (type.getBasicType()) { case EbtFloat: return GL_FLOAT_VEC2 + offset; case EbtDouble: return GL_DOUBLE_VEC2 + offset; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return GL_FLOAT16_VEC2_NV + offset; +#endif case EbtInt: return GL_INT_VEC2 + offset; case EbtUint: return GL_UNSIGNED_INT_VEC2 + offset; case EbtInt64: return GL_INT64_ARB + offset; @@ -588,6 +591,32 @@ public: default: return 0; } } +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT2_AMD; + case 3: return GL_FLOAT16_MAT2x3_AMD; + case 4: return GL_FLOAT16_MAT2x4_AMD; + default: return 0; + } + case 3: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT3x2_AMD; + case 3: return GL_FLOAT16_MAT3_AMD; + case 4: return GL_FLOAT16_MAT3x4_AMD; + default: return 0; + } + case 4: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT4x2_AMD; + case 3: return GL_FLOAT16_MAT4x3_AMD; + case 4: return GL_FLOAT16_MAT4_AMD; + default: return 0; + } + } +#endif default: return 0; } @@ -596,6 +625,9 @@ public: switch (type.getBasicType()) { case EbtFloat: return GL_FLOAT; case EbtDouble: return GL_DOUBLE; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return GL_FLOAT16_NV; +#endif case EbtInt: return GL_INT; case EbtUint: return GL_UNSIGNED_INT; case EbtInt64: return GL_INT64_ARB; diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index 8a91eef3..a7cba22b 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -14,6 +14,7 @@ if (TARGET gmock) ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp diff --git a/gtests/HexFloat.cpp b/gtests/HexFloat.cpp new file mode 100644 index 00000000..248513c4 --- /dev/null +++ b/gtests/HexFloat.cpp @@ -0,0 +1,1232 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include +#include +#include +#include +#include + +#include +#include "SPIRV/hex_float.h" + +namespace { +using ::testing::Eq; +using spvutils::BitwiseCast; +using spvutils::Float16; +using spvutils::FloatProxy; +using spvutils::HexFloat; +using spvutils::ParseNormalFloat; + +// In this file "encode" means converting a number into a string, +// and "decode" means converting a string into a number. + +using HexFloatTest = + ::testing::TestWithParam, std::string>>; +using DecodeHexFloatTest = + ::testing::TestWithParam>>; +using HexDoubleTest = + ::testing::TestWithParam, std::string>>; +using DecodeHexDoubleTest = + ::testing::TestWithParam>>; + +// Hex-encodes a float value. +template +std::string EncodeViaHexFloat(const T& value) { + std::stringstream ss; + ss << spvutils::HexFloat(value); + return ss.str(); +} + +// The following two tests can't be DRY because they take different parameter +// types. + +TEST_P(HexFloatTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(HexDoubleTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +// Decodes a hex-float string. +template +FloatProxy Decode(const std::string& str) { + spvutils::HexFloat> decoded(0.f); + EXPECT_TRUE((std::stringstream(str) >> decoded).eof()); + return decoded.value(); +} + +TEST_P(HexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); +} + +TEST_P(HexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, HexFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + {0.f, "0x0p+0"}, + {1.f, "0x1p+0"}, + {2.f, "0x1p+1"}, + {3.f, "0x1.8p+1"}, + {0.5f, "0x1p-1"}, + {0.25f, "0x1p-2"}, + {0.75f, "0x1.8p-1"}, + {-0.f, "-0x0p+0"}, + {-1.f, "-0x1p+0"}, + {-0.5f, "-0x1p-1"}, + {-0.25f, "-0x1p-2"}, + {-0.75f, "-0x1.8p-1"}, + + // Larger numbers + {512.f, "0x1p+9"}, + {-512.f, "-0x1p+9"}, + {1024.f, "0x1p+10"}, + {-1024.f, "-0x1p+10"}, + {1024.f + 8.f, "0x1.02p+10"}, + {-1024.f - 8.f, "-0x1.02p+10"}, + + // Small numbers + {1.0f / 512.f, "0x1p-9"}, + {1.0f / -512.f, "-0x1p-9"}, + {1.0f / 1024.f, "0x1p-10"}, + {1.0f / -1024.f, "-0x1p-10"}, + {1.0f / 1024.f + 1.0f / 8.f, "0x1.02p-3"}, + {1.0f / -1024.f - 1.0f / 8.f, "-0x1.02p-3"}, + + // lowest non-denorm + {float(ldexp(1.0f, -126)), "0x1p-126"}, + {float(ldexp(-1.0f, -126)), "-0x1p-126"}, + + // Denormalized values + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.0f, -127) / 2.0f), "0x1p-128"}, + {float(ldexp(1.0f, -127) / 4.0f), "0x1p-129"}, + {float(ldexp(1.0f, -127) / 8.0f), "0x1p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -127) / 2.0f), "-0x1p-128"}, + {float(ldexp(-1.0f, -127) / 4.0f), "-0x1p-129"}, + {float(ldexp(-1.0f, -127) / 8.0f), "-0x1p-130"}, + + {float(ldexp(1.0, -127) + (ldexp(1.0, -127) / 2.0f)), "0x1.8p-127"}, + {float(ldexp(1.0, -127) / 2.0 + (ldexp(1.0, -127) / 4.0f)), + "0x1.8p-128"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float32NanTests, HexFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + // Various NAN and INF cases + {uint32_t(0xFF800000), "-0x1p+128"}, // -inf + {uint32_t(0x7F800000), "0x1p+128"}, // inf + {uint32_t(0xFFC00000), "-0x1.8p+128"}, // -nan + {uint32_t(0xFF800100), "-0x1.0002p+128"}, // -nan + {uint32_t(0xFF800c00), "-0x1.0018p+128"}, // -nan + {uint32_t(0xFF80F000), "-0x1.01ep+128"}, // -nan + {uint32_t(0xFFFFFFFF), "-0x1.fffffep+128"}, // -nan + {uint32_t(0x7FC00000), "0x1.8p+128"}, // +nan + {uint32_t(0x7F800100), "0x1.0002p+128"}, // +nan + {uint32_t(0x7f800c00), "0x1.0018p+128"}, // +nan + {uint32_t(0x7F80F000), "0x1.01ep+128"}, // +nan + {uint32_t(0x7FFFFFFF), "0x1.fffffep+128"}, // +nan + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, HexDoubleTest, + ::testing::ValuesIn( + std::vector, std::string>>({ + {0., "0x0p+0"}, + {1., "0x1p+0"}, + {2., "0x1p+1"}, + {3., "0x1.8p+1"}, + {0.5, "0x1p-1"}, + {0.25, "0x1p-2"}, + {0.75, "0x1.8p-1"}, + {-0., "-0x0p+0"}, + {-1., "-0x1p+0"}, + {-0.5, "-0x1p-1"}, + {-0.25, "-0x1p-2"}, + {-0.75, "-0x1.8p-1"}, + + // Larger numbers + {512., "0x1p+9"}, + {-512., "-0x1p+9"}, + {1024., "0x1p+10"}, + {-1024., "-0x1p+10"}, + {1024. + 8., "0x1.02p+10"}, + {-1024. - 8., "-0x1.02p+10"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "0x1p+128"}, + {ldexp(1.0, 129), "0x1p+129"}, + {ldexp(-1.0, 128), "-0x1p+128"}, + {ldexp(-1.0, 129), "-0x1p+129"}, + {ldexp(1.0, 128) + ldexp(1.0, 90), "0x1.0000000004p+128"}, + {ldexp(1.0, 129) + ldexp(1.0, 120), "0x1.008p+129"}, + {ldexp(-1.0, 128) + ldexp(1.0, 90), "-0x1.fffffffff8p+127"}, + {ldexp(-1.0, 129) + ldexp(1.0, 120), "-0x1.ffp+128"}, + + // Small numbers + {1.0 / 512., "0x1p-9"}, + {1.0 / -512., "-0x1p-9"}, + {1.0 / 1024., "0x1p-10"}, + {1.0 / -1024., "-0x1p-10"}, + {1.0 / 1024. + 1.0 / 8., "0x1.02p-3"}, + {1.0 / -1024. - 1.0 / 8., "-0x1.02p-3"}, + + // Small outside the range of normal floats + {ldexp(1.0, -128), "0x1p-128"}, + {ldexp(1.0, -129), "0x1p-129"}, + {ldexp(-1.0, -128), "-0x1p-128"}, + {ldexp(-1.0, -129), "-0x1p-129"}, + {ldexp(1.0, -128) + ldexp(1.0, -90), "0x1.0000000004p-90"}, + {ldexp(1.0, -129) + ldexp(1.0, -120), "0x1.008p-120"}, + {ldexp(-1.0, -128) + ldexp(1.0, -90), "0x1.fffffffff8p-91"}, + {ldexp(-1.0, -129) + ldexp(1.0, -120), "0x1.ffp-121"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "0x1p-1022"}, + {ldexp(-1.0, -1022), "-0x1p-1022"}, + + // Denormalized values + {ldexp(1.0, -1023), "0x1p-1023"}, + {ldexp(1.0, -1023) / 2.0, "0x1p-1024"}, + {ldexp(1.0, -1023) / 4.0, "0x1p-1025"}, + {ldexp(1.0, -1023) / 8.0, "0x1p-1026"}, + {ldexp(-1.0, -1024), "-0x1p-1024"}, + {ldexp(-1.0, -1024) / 2.0, "-0x1p-1025"}, + {ldexp(-1.0, -1024) / 4.0, "-0x1p-1026"}, + {ldexp(-1.0, -1024) / 8.0, "-0x1p-1027"}, + + {ldexp(1.0, -1023) + (ldexp(1.0, -1023) / 2.0), "0x1.8p-1023"}, + {ldexp(1.0, -1023) / 2.0 + (ldexp(1.0, -1023) / 4.0), + "0x1.8p-1024"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float64NanTests, HexDoubleTest, + ::testing::ValuesIn(std::vector< + std::pair, std::string>>({ + // Various NAN and INF cases + {uint64_t(0xFFF0000000000000LL), "-0x1p+1024"}, //-inf + {uint64_t(0x7FF0000000000000LL), "0x1p+1024"}, //+inf + {uint64_t(0xFFF8000000000000LL), "-0x1.8p+1024"}, // -nan + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // -nan + {uint64_t(0xFFF0000000000001LL), "-0x1.0000000000001p+1024"}, // -nan + {uint64_t(0xFFF0000300000000LL), "-0x1.00003p+1024"}, // -nan + {uint64_t(0xFFFFFFFFFFFFFFFFLL), "-0x1.fffffffffffffp+1024"}, // -nan + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, // +nan + {uint64_t(0x7FF0F00000000000LL), "0x1.0fp+1024"}, // +nan + {uint64_t(0x7FF0000000000001LL), "0x1.0000000000001p+1024"}, // -nan + {uint64_t(0x7FF0000300000000LL), "0x1.00003p+1024"}, // -nan + {uint64_t(0x7FFFFFFFFFFFFFFFLL), "0x1.fffffffffffffp+1024"}, // -nan + })),); + +TEST(HexFloatStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy(uint32_t(0xFF800100)) << " " << std::setw(4) << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 -0x1.0002p+128 xx11"))); +} + +TEST(HexDoubleStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy(uint64_t(0x7FF0F00000000000LL)) << " " << std::setw(4) + << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 0x1.0fp+1024 xx11"))); +} + +TEST_P(DecodeHexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(DecodeHexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32DecodeTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector>>({ + {"0x0p+000", 0.f}, + {"0x0p0", 0.f}, + {"0x0p-0", 0.f}, + + // flush to zero cases + {"0x1p-500", 0.f}, // Exponent underflows. + {"-0x1p-500", -0.f}, + {"0x0.00000000001p-126", 0.f}, // Fraction causes underflow. + {"-0x0.0000000001p-127", -0.f}, + {"-0x0.01p-142", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-142", 0.f}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.f}, + {"0xFFp+0", 255.f}, + {"0x0.8p+0", 0.5f}, + {"0x0.4p+0", 0.25f}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float32DecodeInfTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector>>({ + // inf cases + {"-0x1p+128", uint32_t(0xFF800000)}, // -inf + {"0x32p+127", uint32_t(0x7F800000)}, // inf + {"0x32p+500", uint32_t(0x7F800000)}, // inf + {"-0x32p+127", uint32_t(0xFF800000)}, // -inf + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector>>({ + {"0x0p+000", 0.}, + {"0x0p0", 0.}, + {"0x0p-0", 0.}, + + // flush to zero cases + {"0x1p-5000", 0.}, // Exponent underflows. + {"-0x1p-5000", -0.}, + {"0x0.0000000000000001p-1023", 0.}, // Fraction causes underflow. + {"-0x0.000000000000001p-1024", -0.}, + {"-0x0.01p-1090", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-1090", 0.}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.}, + {"0xFFp+0", 255.}, + {"0x0.8p+0", 0.5}, + {"0x0.4p+0", 0.25}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeInfTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector>>({ + // inf cases + {"-0x1p+1024", uint64_t(0xFFF0000000000000)}, // -inf + {"0x32p+1023", uint64_t(0x7FF0000000000000)}, // inf + {"0x32p+5000", uint64_t(0x7FF0000000000000)}, // inf + {"-0x32p+1023", uint64_t(0xFFF0000000000000)}, // -inf + })),); + +TEST(FloatProxy, ValidConversion) { + EXPECT_THAT(FloatProxy(1.f).getAsFloat(), Eq(1.0f)); + EXPECT_THAT(FloatProxy(32.f).getAsFloat(), Eq(32.0f)); + EXPECT_THAT(FloatProxy(-1.f).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT(FloatProxy(0.f).getAsFloat(), Eq(0.0f)); + EXPECT_THAT(FloatProxy(-0.f).getAsFloat(), Eq(-0.0f)); + EXPECT_THAT(FloatProxy(1.2e32f).getAsFloat(), Eq(1.2e32f)); + + EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0xFF800000)).getAsFloat())); + EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0x7F800000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFFFFFFF)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7f800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FFFFFFF)).getAsFloat())); + + EXPECT_THAT(FloatProxy(uint32_t(0xFF800000)).data(), Eq(0xFF800000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F800000)).data(), Eq(0x7F800000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFFC00000)).data(), Eq(0xFFC00000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF800100)).data(), Eq(0xFF800100u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF800c00)).data(), Eq(0xFF800c00u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFF80F000)).data(), Eq(0xFF80F000u)); + EXPECT_THAT(FloatProxy(uint32_t(0xFFFFFFFF)).data(), Eq(0xFFFFFFFFu)); + EXPECT_THAT(FloatProxy(uint32_t(0x7FC00000)).data(), Eq(0x7FC00000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F800100)).data(), Eq(0x7F800100u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7f800c00)).data(), Eq(0x7f800c00u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7F80F000)).data(), Eq(0x7F80F000u)); + EXPECT_THAT(FloatProxy(uint32_t(0x7FFFFFFF)).data(), Eq(0x7FFFFFFFu)); +} + +TEST(FloatProxy, Nan) { + EXPECT_TRUE(FloatProxy(uint32_t(0xFFC00000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF800100)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF800c00)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFF80F000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0xFFFFFFFF)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7FC00000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7F800100)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7f800c00)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7F80F000)).isNan()); + EXPECT_TRUE(FloatProxy(uint32_t(0x7FFFFFFF)).isNan()); +} + +TEST(FloatProxy, Negation) { + EXPECT_THAT((-FloatProxy(1.f)).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT((-FloatProxy(0.f)).getAsFloat(), Eq(-0.0f)); + + EXPECT_THAT((-FloatProxy(-1.f)).getAsFloat(), Eq(1.0f)); + EXPECT_THAT((-FloatProxy(-0.f)).getAsFloat(), Eq(0.0f)); + + EXPECT_THAT((-FloatProxy(32.f)).getAsFloat(), Eq(-32.0f)); + EXPECT_THAT((-FloatProxy(-32.f)).getAsFloat(), Eq(32.0f)); + + EXPECT_THAT((-FloatProxy(1.2e32f)).getAsFloat(), Eq(-1.2e32f)); + EXPECT_THAT((-FloatProxy(-1.2e32f)).getAsFloat(), Eq(1.2e32f)); + + EXPECT_THAT( + (-FloatProxy(std::numeric_limits::infinity())).getAsFloat(), + Eq(-std::numeric_limits::infinity())); + EXPECT_THAT((-FloatProxy(-std::numeric_limits::infinity())) + .getAsFloat(), + Eq(std::numeric_limits::infinity())); +} + +// Test conversion of FloatProxy values to strings. +// +// In previous cases, we always wrapped the FloatProxy value in a HexFloat +// before conversion to a string. In the following cases, the FloatProxy +// decides for itself whether to print as a regular number or as a hex float. + +using FloatProxyFloatTest = + ::testing::TestWithParam, std::string>>; +using FloatProxyDoubleTest = + ::testing::TestWithParam, std::string>>; + +// Converts a float value to a string via a FloatProxy. +template +std::string EncodeViaFloatProxy(const T& value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +// Converts a floating point string so that the exponent prefix +// is 'e', and the exponent value does not have leading zeros. +// The Microsoft runtime library likes to write things like "2.5E+010". +// Convert that to "2.5e+10". +// We don't care what happens to strings that are not floating point +// strings. +std::string NormalizeExponentInFloatString(std::string in) { + std::string result; + // Reserve one spot for the terminating null, even when the sscanf fails. + std::vector prefix(in.size() + 1); + char e; + char plus_or_minus; + int exponent; // in base 10 + if ((4 == std::sscanf(in.c_str(), "%[-+.0123456789]%c%c%d", prefix.data(), &e, + &plus_or_minus, &exponent)) && + (e == 'e' || e == 'E') && + (plus_or_minus == '-' || plus_or_minus == '+')) { + // It looks like a floating point value with exponent. + std::stringstream out; + out << prefix.data() << 'e' << plus_or_minus << exponent; + result = out.str(); + } else { + result = in; + } + return result; +} + +TEST(NormalizeFloat, Sample) { + EXPECT_THAT(NormalizeExponentInFloatString(""), Eq("")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-12"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1E+14"), Eq("1e+14")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-0012"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1.263E+014"), Eq("1.263e+14")); +} + +// The following two tests can't be DRY because they take different parameter +// types. +TEST_P(FloatProxyFloatTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +TEST_P(FloatProxyDoubleTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, FloatProxyFloatTest, + ::testing::ValuesIn(std::vector, std::string>>({ + // Zero + {0.f, "0"}, + // Normal numbers + {1.f, "1"}, + {-0.25f, "-0.25"}, + {1000.0f, "1000"}, + + // Still normal numbers, but with large magnitude exponents. + {float(ldexp(1.f, 126)), "8.50706e+37"}, + {float(ldexp(-1.f, -126)), "-1.17549e-38"}, + + // denormalized values are printed as hex floats. + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.5f, -128)), "0x1.8p-128"}, + {float(ldexp(1.25, -129)), "0x1.4p-129"}, + {float(ldexp(1.125, -130)), "0x1.2p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -128)), "-0x1p-128"}, + {float(ldexp(-1.0f, -129)), "-0x1p-129"}, + {float(ldexp(-1.5f, -130)), "-0x1.8p-130"}, + + // NaNs + {FloatProxy(uint32_t(0xFFC00000)), "-0x1.8p+128"}, + {FloatProxy(uint32_t(0xFF800100)), "-0x1.0002p+128"}, + + {std::numeric_limits::infinity(), "0x1p+128"}, + {-std::numeric_limits::infinity(), "-0x1p+128"}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, FloatProxyDoubleTest, + ::testing::ValuesIn( + std::vector, std::string>>({ + {0., "0"}, + {1., "1"}, + {-0.25, "-0.25"}, + {1000.0, "1000"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "3.40282366920938e+38"}, + {ldexp(1.5, 129), "1.02084710076282e+39"}, + {ldexp(-1.0, 128), "-3.40282366920938e+38"}, + {ldexp(-1.5, 129), "-1.02084710076282e+39"}, + + // Small outside the range of normal floats + {ldexp(1.5, -129), "2.20405190779179e-39"}, + {ldexp(-1.5, -129), "-2.20405190779179e-39"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "2.2250738585072e-308"}, + {ldexp(-1.0, -1022), "-2.2250738585072e-308"}, + + // Denormalized values + {ldexp(1.125, -1023), "0x1.2p-1023"}, + {ldexp(-1.375, -1024), "-0x1.6p-1024"}, + + // NaNs + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, + + // Infinity + {std::numeric_limits::infinity(), "0x1p+1024"}, + {-std::numeric_limits::infinity(), "-0x1p+1024"}, + + })),); + +// double is used so that unbiased_exponent can be used with the output +// of ldexp directly. +int32_t unbiased_exponent(double f) { + return spvutils::HexFloat>( + static_cast(f)).getUnbiasedNormalizedExponent(); +} + +int16_t unbiased_half_exponent(uint16_t f) { + return spvutils::HexFloat>(f) + .getUnbiasedNormalizedExponent(); +} + +TEST(HexFloatOperationTest, UnbiasedExponent) { + // Float cases + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, 0))); + EXPECT_EQ(-32, unbiased_exponent(ldexp(1.0f, -32))); + EXPECT_EQ(42, unbiased_exponent(ldexp(1.0f, 42))); + EXPECT_EQ(125, unbiased_exponent(ldexp(1.0f, 125))); + // Saturates to 128 + EXPECT_EQ(128, unbiased_exponent(ldexp(1.0f, 256))); + + EXPECT_EQ(-100, unbiased_exponent(ldexp(1.0f, -100))); + EXPECT_EQ(-127, unbiased_exponent(ldexp(1.0f, -127))); // First denorm + EXPECT_EQ(-128, unbiased_exponent(ldexp(1.0f, -128))); + EXPECT_EQ(-129, unbiased_exponent(ldexp(1.0f, -129))); + EXPECT_EQ(-140, unbiased_exponent(ldexp(1.0f, -140))); + // Smallest representable number + EXPECT_EQ(-126 - 23, unbiased_exponent(ldexp(1.0f, -126 - 23))); + // Should get rounded to 0 first. + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, -127 - 23))); + + // Float16 cases + // The exponent is represented in the bits 0x7C00 + // The offset is -15 + EXPECT_EQ(0, unbiased_half_exponent(0x3C00)); + EXPECT_EQ(3, unbiased_half_exponent(0x4800)); + EXPECT_EQ(-1, unbiased_half_exponent(0x3800)); + EXPECT_EQ(-14, unbiased_half_exponent(0x0400)); + EXPECT_EQ(16, unbiased_half_exponent(0x7C00)); + EXPECT_EQ(10, unbiased_half_exponent(0x6400)); + + // Smallest representable number + EXPECT_EQ(-24, unbiased_half_exponent(0x0001)); +} + +// Creates a float that is the sum of 1/(2 ^ fractions[i]) for i in factions +float float_fractions(const std::vector& fractions) { + float f = 0; + for(int32_t i: fractions) { + f += std::ldexp(1.0f, -i); + } + return f; +} + +// Returns the normalized significand of a HexFloat> +// that was created by calling float_fractions with the input fractions, +// raised to the power of exp. +uint32_t normalized_significand(const std::vector& fractions, uint32_t exp) { + return spvutils::HexFloat>( + static_cast(ldexp(float_fractions(fractions), exp))) + .getNormalizedSignificand(); +} + +// Sets the bits from MSB to LSB of the significand part of a float. +// For example 0 would set the bit 23 (counting from LSB to MSB), +// and 1 would set the 22nd bit. +uint32_t bits_set(const std::vector& bits) { + const uint32_t top_bit = 1u << 22u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return val; +} + +// The same as bits_set but for a Float16 value instead of 32-bit floating +// point. +uint16_t half_bits_set(const std::vector& bits) { + const uint32_t top_bit = 1u << 9u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return static_cast(val); +} + +TEST(HexFloatOperationTest, NormalizedSignificand) { + // For normalized numbers (the following) it should be a simple matter + // of getting rid of the top implicit bit + EXPECT_EQ(bits_set({}), normalized_significand({0}, 0)); + EXPECT_EQ(bits_set({0}), normalized_significand({0, 1}, 0)); + EXPECT_EQ(bits_set({0, 1}), normalized_significand({0, 1, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 32)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 126)); + + // For denormalized numbers we expect the normalized significand to + // shift as if it were normalized. This means, in practice that the + // top_most set bit will be cut off. Looks very similar to above (on purpose) + EXPECT_EQ(bits_set({}), normalized_significand({0}, -127)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -128)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -127)); + EXPECT_EQ(bits_set({}), normalized_significand({22}, -127)); + EXPECT_EQ(bits_set({0}), normalized_significand({21, 22}, -127)); +} + +// Returns the 32-bit floating point value created by +// calling setFromSignUnbiasedExponentAndNormalizedSignificand +// on a HexFloat> +float set_from_sign(bool negative, int32_t unbiased_exponent, + uint32_t significand, bool round_denorm_up) { + spvutils::HexFloat> f(0.f); + f.setFromSignUnbiasedExponentAndNormalizedSignificand( + negative, unbiased_exponent, significand, round_denorm_up); + return f.value().getAsFloat(); +} + +TEST(HexFloatOperationTests, + SetFromSignUnbiasedExponentAndNormalizedSignificand) { + + EXPECT_EQ(1.f, set_from_sign(false, 0, 0, false)); + + // Tests insertion of various denormalized numbers with and without round up. + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, false)); + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, true)); + EXPECT_EQ(0.f, set_from_sign(false, -150, 1, false)); + EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -150, 1, true)); + + EXPECT_EQ(ldexp(1.0f, -127), set_from_sign(false, -127, 0, false)); + EXPECT_EQ(ldexp(1.0f, -128), set_from_sign(false, -128, 0, false)); + EXPECT_EQ(float_fractions({0, 1, 2, 5}), + set_from_sign(false, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(false, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(false, -128, bits_set({0, 1, 4}), false)); + + // The negative cases from above. + EXPECT_EQ(-1.f, set_from_sign(true, 0, 0, false)); + EXPECT_EQ(-ldexp(1.0, -127), set_from_sign(true, -127, 0, false)); + EXPECT_EQ(-ldexp(1.0, -128), set_from_sign(true, -128, 0, false)); + EXPECT_EQ(-float_fractions({0, 1, 2, 5}), + set_from_sign(true, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(true, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(true, -128, bits_set({0, 1, 4}), false)); +} + +TEST(HexFloatOperationTests, NonRounding) { + // Rounding from 32-bit hex-float to 32-bit hex-float should be trivial, + // except in the denorm case which is a bit more complex. + using HF = spvutils::HexFloat>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::round_direction::kToZero, + spvutils::round_direction::kToNearestEven, + spvutils::round_direction::kToPositiveInfinity, + spvutils::round_direction::kToNegativeInfinity}; + + // Everything fits, so this should be straight-forward + for (spvutils::round_direction round : rounding) { + EXPECT_EQ(bits_set({}), HF(0.f).getRoundedNormalizedSignificand( + round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({0}), + HF(float_fractions({0, 1})) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({1, 3}), + HF(float_fractions({0, 2, 4})) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4}), + HF(static_cast(-ldexp(float_fractions({0, 1, 2, 5}), -128))) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4, 22}), + HF(static_cast(float_fractions({0, 1, 2, 5, 23}))) + .getRoundedNormalizedSignificand(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + } +} + +using RD = spvutils::round_direction; +struct RoundSignificandCase { + float source_float; + std::pair expected_results; + spvutils::round_direction round; +}; + +using HexFloatRoundTest = + ::testing::TestWithParam; + +TEST_P(HexFloatRoundTest, RoundDownToFP16) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + + HF input_value(GetParam().source_float); + bool carry_bit = false; + EXPECT_EQ(GetParam().expected_results.first, + input_value.getRoundedNormalizedSignificand( + GetParam().round, &carry_bit)); + EXPECT_EQ(carry_bit, GetParam().expected_results.second); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest, + ::testing::ValuesIn(std::vector( + { + {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToZero}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNearestEven}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToPositiveInfinity}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNearestEven}, + + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToZero}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToPositiveInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToNearestEven}, + + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToPositiveInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + + // Carries + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToZero}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToPositiveInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToNegativeInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToNearestEven}, + + // Cases where original number was denorm. Note: this should have no effect + // the number is pre-normalized. + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + })),); +// clang-format on + +struct UpCastSignificandCase { + uint16_t source_half; + uint32_t expected_result; +}; + +using HexFloatRoundUpSignificandTest = + ::testing::TestWithParam; +TEST_P(HexFloatRoundUpSignificandTest, Widening) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::round_direction::kToZero, + spvutils::round_direction::kToNearestEven, + spvutils::round_direction::kToPositiveInfinity, + spvutils::round_direction::kToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + carry_bit = false; + HF16 input_value(GetParam().source_half); + EXPECT_EQ( + GetParam().expected_result, + input_value.getRoundedNormalizedSignificand(round, &carry_bit)) + << std::hex << "0x" + << input_value.getRoundedNormalizedSignificand(round, &carry_bit) + << " 0x" << GetParam().expected_result; + EXPECT_FALSE(carry_bit); + } +} + +INSTANTIATE_TEST_CASE_P(F16toF32, HexFloatRoundUpSignificandTest, + // 0xFC00 of the source 16-bit hex value cover the sign and the exponent. + // They are ignored for this test. + ::testing::ValuesIn(std::vector( + { + {0x3F00, 0x600000}, + {0x0F00, 0x600000}, + {0x0F01, 0x602000}, + {0x0FFF, 0x7FE000}, + })),); + +struct DownCastTest { + float source_float; + uint16_t expected_half; + std::vector directions; +}; + +std::string get_round_text(spvutils::round_direction direction) { +#define CASE(round_direction) \ + case round_direction: \ + return #round_direction + + switch (direction) { + CASE(spvutils::round_direction::kToZero); + CASE(spvutils::round_direction::kToPositiveInfinity); + CASE(spvutils::round_direction::kToNegativeInfinity); + CASE(spvutils::round_direction::kToNearestEven); + } +#undef CASE + return ""; +} + +using HexFloatFP32To16Tests = ::testing::TestWithParam; + +TEST_P(HexFloatFP32To16Tests, NarrowingCasts) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + HF f(GetParam().source_float); + for (auto round : GetParam().directions) { + HF16 half(0); + f.castTo(half, round); + EXPECT_EQ(GetParam().expected_half, half.value().getAsFloat().get_value()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast(GetParam().source_float) + << " cast to: " << half.value().getAsFloat().get_value(); + } +} + +const uint16_t positive_infinity = 0x7C00; +const uint16_t negative_infinity = 0xFC00; + +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatFP32To16Tests, + ::testing::ValuesIn(std::vector( + { + // Exactly representable as half. + {0.f, 0x0, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {-0.f, 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {1.0f, 0x3C00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {-1.0f, 0xBC00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + + {float_fractions({0, 1, 10}) , 0x3E01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {-float_fractions({0, 1, 10}) , 0xBE01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + + + // Underflow + {static_cast(ldexp(1.0f, -25)), 0x0, {RD::kToZero, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(1.0f, -25)), 0x1, {RD::kToPositiveInfinity}}, + {static_cast(-ldexp(1.0f, -25)), 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNearestEven}}, + {static_cast(-ldexp(1.0f, -25)), 0x8001, {RD::kToNegativeInfinity}}, + {static_cast(ldexp(1.0f, -24)), 0x1, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + + // Overflow + {static_cast(ldexp(1.0f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(1.0f, 18)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(1.3f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(-ldexp(1.0f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(-ldexp(1.0f, 18)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(-ldexp(1.3f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + + // Transfer of Infinities + {std::numeric_limits::infinity(), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {-std::numeric_limits::infinity(), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + + // Nans are below because we cannot test for equality. + })),); + +struct UpCastCase{ + uint16_t source_half; + float expected_float; +}; + +using HexFloatFP16To32Tests = ::testing::TestWithParam; +TEST_P(HexFloatFP16To32Tests, WideningCasts) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + HF16 f(GetParam().source_half); + + spvutils::round_direction rounding[] = { + spvutils::round_direction::kToZero, + spvutils::round_direction::kToNearestEven, + spvutils::round_direction::kToPositiveInfinity, + spvutils::round_direction::kToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF flt(0.f); + f.castTo(flt, round); + EXPECT_EQ(GetParam().expected_float, flt.value().getAsFloat()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast(GetParam().source_half) + << " cast to: " << flt.value().getAsFloat(); + } +} + +INSTANTIATE_TEST_CASE_P(F16ToF32, HexFloatFP16To32Tests, + ::testing::ValuesIn(std::vector( + { + {0x0000, 0.f}, + {0x8000, -0.f}, + {0x3C00, 1.0f}, + {0xBC00, -1.0f}, + {0x3F00, float_fractions({0, 1, 2})}, + {0xBF00, -float_fractions({0, 1, 2})}, + {0x3F01, float_fractions({0, 1, 2, 10})}, + {0xBF01, -float_fractions({0, 1, 2, 10})}, + + // denorm + {0x0001, static_cast(ldexp(1.0, -24))}, + {0x0002, static_cast(ldexp(1.0, -23))}, + {0x8001, static_cast(-ldexp(1.0, -24))}, + {0x8011, static_cast(-ldexp(1.0, -20) + -ldexp(1.0, -24))}, + + // inf + {0x7C00, std::numeric_limits::infinity()}, + {0xFC00, -std::numeric_limits::infinity()}, + })),); + +TEST(HexFloatOperationTests, NanTests) { + using HF = spvutils::HexFloat>; + using HF16 = spvutils::HexFloat>; + spvutils::round_direction rounding[] = { + spvutils::round_direction::kToZero, + spvutils::round_direction::kToNearestEven, + spvutils::round_direction::kToPositiveInfinity, + spvutils::round_direction::kToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF16 f16(0); + HF f(0.f); + HF(std::numeric_limits::quiet_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + HF(std::numeric_limits::signaling_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + + HF16(0x7C01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C11).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFC01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C10).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFF00).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + } +} + +// A test case for parsing good and bad HexFloat> literals. +template +struct FloatParseCase { + std::string literal; + bool negate_value; + bool expect_success; + HexFloat> expected_value; +}; + +using ParseNormalFloatTest = ::testing::TestWithParam>; + +TEST_P(ParseNormalFloatTest, Samples) { + std::stringstream input(GetParam().literal); + HexFloat> parsed_value(0.0f); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +// Returns a FloatParseCase with expected failure. +template +FloatParseCase BadFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat> proxy_expected_value(expected_value); + return FloatParseCase{literal, negate_value, false, proxy_expected_value}; +} + +// Returns a FloatParseCase that should successfully parse to a given value. +template +FloatParseCase GoodFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat> proxy_expected_value(expected_value); + return FloatParseCase{literal, negate_value, true, proxy_expected_value}; +} + +INSTANTIATE_TEST_CASE_P( + FloatParse, ParseNormalFloatTest, + ::testing::ValuesIn(std::vector>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase("abc", false, 0.0f), + BadFloatParseCase("abc", true, 0.0f), + + // Valid cases. + GoodFloatParseCase("0", false, 0.0f), + GoodFloatParseCase("0.0", false, 0.0f), + GoodFloatParseCase("-0.0", false, -0.0f), + GoodFloatParseCase("2.0", false, 2.0f), + GoodFloatParseCase("-2.0", false, -2.0f), + GoodFloatParseCase("+2.0", false, 2.0f), + // Cases with negate_value being true. + GoodFloatParseCase("0.0", true, -0.0f), + GoodFloatParseCase("2.0", true, -2.0f), + + // When negate_value is true, we should not accept a + // leading minus or plus. + BadFloatParseCase("-0.0", true, 0.0f), + BadFloatParseCase("-2.0", true, 0.0f), + BadFloatParseCase("+0.0", true, 0.0f), + BadFloatParseCase("+2.0", true, 0.0f), + + // Overflow is an error for 32-bit float parsing. + BadFloatParseCase("1e40", false, FLT_MAX), + BadFloatParseCase("1e40", true, -FLT_MAX), + BadFloatParseCase("-1e40", false, -FLT_MAX), + // We can't have -1e40 and negate_value == true since + // that represents an original case of "--1e40" which + // is invalid. + }),); + +using ParseNormalFloat16Test = + ::testing::TestWithParam>; + +TEST_P(ParseNormalFloat16Test, Samples) { + std::stringstream input(GetParam().literal); + HexFloat> parsed_value(0); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Parse, ParseNormalFloat16Test, + ::testing::ValuesIn(std::vector>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase("abc", false, uint16_t{0}), + BadFloatParseCase("abc", true, uint16_t{0}), + + // Valid cases. + GoodFloatParseCase("0", false, uint16_t{0}), + GoodFloatParseCase("0.0", false, uint16_t{0}), + GoodFloatParseCase("-0.0", false, uint16_t{0x8000}), + GoodFloatParseCase("2.0", false, uint16_t{0x4000}), + GoodFloatParseCase("-2.0", false, uint16_t{0xc000}), + GoodFloatParseCase("+2.0", false, uint16_t{0x4000}), + // Cases with negate_value being true. + GoodFloatParseCase("0.0", true, uint16_t{0x8000}), + GoodFloatParseCase("2.0", true, uint16_t{0xc000}), + + // When negate_value is true, we should not accept a leading minus or + // plus. + BadFloatParseCase("-0.0", true, uint16_t{0}), + BadFloatParseCase("-2.0", true, uint16_t{0}), + BadFloatParseCase("+0.0", true, uint16_t{0}), + BadFloatParseCase("+2.0", true, uint16_t{0}), + }),); + +// A test case for detecting infinities. +template +struct OverflowParseCase { + std::string input; + bool expect_success; + T expected_value; +}; + +using FloatProxyParseOverflowFloatTest = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowFloatTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0.0f); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), GetParam().expected_value); + } +} + +INSTANTIATE_TEST_CASE_P( + FloatOverflow, FloatProxyParseOverflowFloatTest, + ::testing::ValuesIn(std::vector>({ + {"0", true, 0.0f}, + {"0.0", true, 0.0f}, + {"1.0", true, 1.0f}, + {"1e38", true, 1e38f}, + {"-1e38", true, -1e38f}, + {"1e40", false, FLT_MAX}, + {"-1e40", false, -FLT_MAX}, + {"1e400", false, FLT_MAX}, + {"-1e400", false, -FLT_MAX}, + })),); + +using FloatProxyParseOverflowDoubleTest = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowDoubleTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0.0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), Eq(GetParam().expected_value)); + } +} + +INSTANTIATE_TEST_CASE_P( + DoubleOverflow, FloatProxyParseOverflowDoubleTest, + ::testing::ValuesIn(std::vector>({ + {"0", true, 0.0}, + {"0.0", true, 0.0}, + {"1.0", true, 1.0}, + {"1e38", true, 1e38}, + {"-1e38", true, -1e38}, + {"1e40", true, 1e40}, + {"-1e40", true, -1e40}, + {"1e400", false, DBL_MAX}, + {"-1e400", false, -DBL_MAX}, + })),); + +using FloatProxyParseOverflowFloat16Test = + ::testing::TestWithParam>; + +TEST_P(FloatProxyParseOverflowFloat16Test, Sample) { + std::istringstream input(GetParam().input); + HexFloat> value(0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " + << GetParam().input; + if (GetParam().expect_success) { + EXPECT_THAT(value.value().data(), Eq(GetParam().expected_value)) + << " literal: " << GetParam().input; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Overflow, FloatProxyParseOverflowFloat16Test, + ::testing::ValuesIn(std::vector>({ + {"0", true, uint16_t{0}}, + {"0.0", true, uint16_t{0}}, + {"1.0", true, uint16_t{0x3c00}}, + // Overflow for 16-bit float is an error, and returns max or + // lowest value. + {"1e38", false, uint16_t{0x7bff}}, + {"1e40", false, uint16_t{0x7bff}}, + {"1e400", false, uint16_t{0x7bff}}, + {"-1e38", false, uint16_t{0xfbff}}, + {"-1e40", false, uint16_t{0xfbff}}, + {"-1e400", false, uint16_t{0xfbff}}, + })),); + +TEST(FloatProxy, Max) { + EXPECT_THAT(FloatProxy::max().getAsFloat().get_value(), + Eq(uint16_t{0x7bff})); + EXPECT_THAT(FloatProxy::max().getAsFloat(), + Eq(std::numeric_limits::max())); + EXPECT_THAT(FloatProxy::max().getAsFloat(), + Eq(std::numeric_limits::max())); +} + +TEST(FloatProxy, Lowest) { + EXPECT_THAT(FloatProxy::lowest().getAsFloat().get_value(), + Eq(uint16_t{0xfbff})); + EXPECT_THAT(FloatProxy::lowest().getAsFloat(), + Eq(std::numeric_limits::lowest())); + EXPECT_THAT(FloatProxy::lowest().getAsFloat(), + Eq(std::numeric_limits::lowest())); +} + +// TODO(awoloszyn): Add fp16 tests and HexFloatTraits. +} // anonymous namespace diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 749daa06..25caa7ed 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -67,6 +67,9 @@ using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; using HlslIoMap = GlslangTest<::testing::TestWithParam>; using GlslIoMap = GlslangTest<::testing::TestWithParam>; +#ifdef AMD_EXTENSIONS +using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam>; +#endif // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate SPIR-V. @@ -138,6 +141,17 @@ TEST_P(GlslIoMap, FromFile) GetParam().flattenUniforms); } +#ifdef AMD_EXTENSIONS +// Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled). +// Expected to successfully generate SPIR-V. +TEST_P(CompileVulkanToSpirvTestAMD, FromFile) +{ + loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + Source::GLSL, Semantics::Vulkan, + Target::Spv); +} +#endif + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileVulkanToSpirvTest, @@ -324,6 +338,16 @@ INSTANTIATE_TEST_CASE_P( })), FileNameAsCustomTestSuffix ); + +#ifdef AMD_EXTENSIONS +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkanToSpirvTestAMD, + ::testing::ValuesIn(std::vector({ + "spv.float16.frag", + })), + FileNameAsCustomTestSuffix +); +#endif // clang-format on } // anonymous namespace From e4fe8b5c445ac3ed327f077b5b48aa452922747e Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 30 Sep 2016 14:26:34 -0600 Subject: [PATCH 163/217] Add a test for buffer auto-binding assignment. --- .../spv.buffer.autoassign.frag.out | 89 +++++++++++++++++++ Test/spv.buffer.autoassign.frag | 28 ++++++ gtests/Spv.FromFile.cpp | 1 + 3 files changed, 118 insertions(+) create mode 100644 Test/baseResults/spv.buffer.autoassign.frag.out create mode 100644 Test/spv.buffer.autoassign.frag diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out new file mode 100644 index 00000000..c5f91541 --- /dev/null +++ b/Test/baseResults/spv.buffer.autoassign.frag.out @@ -0,0 +1,89 @@ +spv.buffer.autoassign.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "psout" + Name 13 "" + MemberName 13 0 "g_a" + MemberName 13 1 "g_b" + Name 15 "" + Name 25 "" + MemberName 25 0 "g_c" + Name 27 "" + Name 31 "" + MemberName 31 0 "g_d" + Name 33 "" + Name 41 "Color" + MemberDecorate 13 0 Offset 0 + MemberDecorate 13 1 Offset 4 + Decorate 13 Block + Decorate 15 DescriptorSet 0 + Decorate 15 Binding 20 + MemberDecorate 25 0 Offset 0 + Decorate 25 Block + Decorate 27 DescriptorSet 0 + Decorate 27 Binding 1 + MemberDecorate 31 0 Offset 0 + Decorate 31 Block + Decorate 33 DescriptorSet 0 + Decorate 33 Binding 2 + Decorate 41(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13: TypeStruct 6(float) 11(int) + 14: TypePointer Uniform 13(struct) + 15: 14(ptr) Variable Uniform + 16: TypePointer Uniform 6(float) + 19: 11(int) Constant 1 + 20: TypePointer Uniform 11(int) + 25: TypeStruct 6(float) + 26: TypePointer Uniform 25(struct) + 27: 26(ptr) Variable Uniform + 31: TypeStruct 6(float) + 32: TypePointer Uniform 31(struct) + 33: 32(ptr) Variable Uniform + 38: TypePointer Function 7(fvec4) + 40: TypePointer Output 7(fvec4) + 41(Color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(psout): 9(ptr) Variable Function + 17: 16(ptr) AccessChain 15 12 + 18: 6(float) Load 17 + 21: 20(ptr) AccessChain 15 19 + 22: 11(int) Load 21 + 23: 6(float) ConvertSToF 22 + 24: 6(float) FAdd 18 23 + 28: 16(ptr) AccessChain 27 12 + 29: 6(float) Load 28 + 30: 6(float) FAdd 24 29 + 34: 16(ptr) AccessChain 33 12 + 35: 6(float) Load 34 + 36: 6(float) FAdd 30 35 + 37: 7(fvec4) CompositeConstruct 36 36 36 36 + 39: 38(ptr) AccessChain 10(psout) 12 + Store 39 37 + 42: 38(ptr) AccessChain 10(psout) 12 + 43: 7(fvec4) Load 42 + Store 41(Color) 43 + Return + FunctionEnd diff --git a/Test/spv.buffer.autoassign.frag b/Test/spv.buffer.autoassign.frag new file mode 100644 index 00000000..46442609 --- /dev/null +++ b/Test/spv.buffer.autoassign.frag @@ -0,0 +1,28 @@ + +cbuffer MyUB1 : register(b5) // explicitly assigned & offsetted +{ + float g_a; + int g_b; +}; + +cbuffer MyUB2 // implicitly assigned +{ + float g_c; +}; + +cbuffer MyUB3 // implicitly assigned +{ + float g_d; +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = g_a + g_b + g_c + g_d; + return psout; +} diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 25caa7ed..2fe3c4da 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -284,6 +284,7 @@ INSTANTIATE_TEST_CASE_P( { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false }, { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true }, + { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true }, }), FileNameAsCustomTestSuffixIoMap ); From 088c59d7ea43af1a07c3e9a5b798cb083b78d796 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 1 Oct 2016 11:27:43 -0600 Subject: [PATCH 164/217] Change binding auto-map to use provided offsets. Previously, the binding auto-mapping facility was free to use any unused binding. This change makes auto-bindings use the same offset value as explicit bindings. --- Test/baseResults/spv.buffer.autoassign.frag.out | 4 ++-- .../spv.glsl.register.autoassign.frag.out | 14 +++++++------- Test/baseResults/spv.register.autoassign.frag.out | 14 +++++++------- glslang/MachineIndependent/iomapper.cpp | 9 +++------ gtests/Spv.FromFile.cpp | 4 ++-- 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out index c5f91541..4f5d5a60 100644 --- a/Test/baseResults/spv.buffer.autoassign.frag.out +++ b/Test/baseResults/spv.buffer.autoassign.frag.out @@ -35,11 +35,11 @@ Linked fragment stage: MemberDecorate 25 0 Offset 0 Decorate 25 Block Decorate 27 DescriptorSet 0 - Decorate 27 Binding 1 + Decorate 27 Binding 15 MemberDecorate 31 0 Offset 0 Decorate 31 Block Decorate 33 DescriptorSet 0 - Decorate 33 Binding 2 + Decorate 33 Binding 16 Decorate 41(Color) Location 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out index a96b904b..a9c1bda9 100644 --- a/Test/baseResults/spv.glsl.register.autoassign.frag.out +++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -51,21 +51,21 @@ Linked fragment stage: Decorate 21(g_sSamp1) DescriptorSet 0 Decorate 21(g_sSamp1) Binding 5 Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 27(g_tTex2) Binding 1 + Decorate 27(g_tTex2) Binding 14 Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 29(g_sSamp2) Binding 2 + Decorate 29(g_sSamp2) Binding 6 Decorate 39(g_tTex3) DescriptorSet 0 Decorate 39(g_tTex3) Binding 13 Decorate 46(g_sSamp3) DescriptorSet 0 Decorate 46(g_sSamp3) Binding 7 Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 64(g_tTex4) Binding 3 + Decorate 64(g_tTex4) Binding 15 Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 69(g_sSamp4) Binding 4 + Decorate 69(g_sSamp4) Binding 8 Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 84(g_tTex5) Binding 6 + Decorate 84(g_tTex5) Binding 16 Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 86(g_sSamp5) Binding 8 + Decorate 86(g_sSamp5) Binding 9 MemberDecorate 93(MyStruct_t) 0 Offset 0 MemberDecorate 93(MyStruct_t) 1 Offset 4 MemberDecorate 93(MyStruct_t) 2 Offset 16 @@ -75,7 +75,7 @@ Linked fragment stage: MemberDecorate 95(myblock) 3 Offset 64 Decorate 95(myblock) Block Decorate 97 DescriptorSet 0 - Decorate 97 Binding 19 + Decorate 97 Binding 24 Decorate 119(g_tTex_unused1) DescriptorSet 0 Decorate 119(g_tTex_unused1) Binding 10 Decorate 121(g_sSamp_unused1) DescriptorSet 0 diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out index faf20cdd..708f4750 100644 --- a/Test/baseResults/spv.register.autoassign.frag.out +++ b/Test/baseResults/spv.register.autoassign.frag.out @@ -51,21 +51,21 @@ Linked fragment stage: Decorate 21(g_sSamp1) DescriptorSet 0 Decorate 21(g_sSamp1) Binding 5 Decorate 27(g_tTex2) DescriptorSet 0 - Decorate 27(g_tTex2) Binding 1 + Decorate 27(g_tTex2) Binding 14 Decorate 29(g_sSamp2) DescriptorSet 0 - Decorate 29(g_sSamp2) Binding 2 + Decorate 29(g_sSamp2) Binding 6 Decorate 39(g_tTex3) DescriptorSet 0 Decorate 39(g_tTex3) Binding 13 Decorate 46(g_sSamp3) DescriptorSet 0 Decorate 46(g_sSamp3) Binding 7 Decorate 64(g_tTex4) DescriptorSet 0 - Decorate 64(g_tTex4) Binding 3 + Decorate 64(g_tTex4) Binding 15 Decorate 69(g_sSamp4) DescriptorSet 0 - Decorate 69(g_sSamp4) Binding 4 + Decorate 69(g_sSamp4) Binding 8 Decorate 84(g_tTex5) DescriptorSet 0 - Decorate 84(g_tTex5) Binding 6 + Decorate 84(g_tTex5) Binding 16 Decorate 86(g_sSamp5) DescriptorSet 0 - Decorate 86(g_sSamp5) Binding 8 + Decorate 86(g_sSamp5) Binding 9 MemberDecorate 93(MyStruct_t) 0 Offset 0 MemberDecorate 93(MyStruct_t) 1 Offset 4 MemberDecorate 93(MyStruct_t) 2 Offset 16 @@ -75,7 +75,7 @@ Linked fragment stage: MemberDecorate 95($Global) 3 Offset 64 Decorate 95($Global) Block Decorate 97 DescriptorSet 0 - Decorate 97 Binding 9 + Decorate 97 Binding 20 Decorate 119(g_tTex_unused1) DescriptorSet 0 Decorate 119(g_tTex_unused1) Binding 10 Decorate 121(g_sSamp_unused1) DescriptorSet 0 diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index 22d97c29..d69cc134 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -151,8 +151,7 @@ class TIoMappingTraverser : public TBindingTraverser { public: TIoMappingTraverser(TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, bool traverseDeadCode) : - TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode), - nextBinding(1) + TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode) { } protected: @@ -172,7 +171,7 @@ protected: if (intermediate.getAutoMapBindings()) { // Otherwise, find a free spot for it. - const int freeBinding = getFreeBinding(base.getType()); + const int freeBinding = getFreeBinding(base.getType(), getBindingBase(base.getType())); markBinding(base, freeBinding); base.getWritableType().getQualifier().layoutBinding = freeBinding; @@ -190,14 +189,12 @@ protected: } // Find a free binding spot - int getFreeBinding(const TType&) { + int getFreeBinding(const TType&, int nextBinding) { while (!hasNFreeSlots(nextBinding, 1)) ++nextBinding; return nextBinding; } - - int nextBinding; }; // Map I/O variables to provided offsets, and make bindings for diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 2fe3c4da..ee27db2b 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -281,7 +281,7 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, HlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.register.autoassign.frag", "main_ep", 5, 10, 15, true, false }, + { "spv.register.autoassign.frag", "main_ep", 5, 10, 20, true, false }, { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true }, { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true }, @@ -293,7 +293,7 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, GlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.glsl.register.autoassign.frag", "main", 5, 10, 15, true, false }, + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 20, true, false }, { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 15, false, false }, }), FileNameAsCustomTestSuffixIoMap From f571d0c037d8f1168d6106739a5fe459e01353e8 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 12:35:01 -0600 Subject: [PATCH 165/217] Non-functional: Use isOpaque() instead of compare against EbtSampler. --- glslang/Include/revision.h | 4 ++-- hlsl/hlslGrammar.cpp | 2 +- hlsl/hlslParseHelper.cpp | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2d79b424..44f6a14f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1528" -#define GLSLANG_DATE "29-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1541" +#define GLSLANG_DATE "01-Oct-2016" diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 9652129c..b41618c2 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -366,7 +366,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) else if (variableType.getBasicType() == EbtBlock) parseContext.declareBlock(idToken.loc, variableType, idToken.string); else { - if (variableType.getQualifier().storage == EvqUniform && variableType.getBasicType() != EbtSampler) { + if (variableType.getQualifier().storage == EvqUniform && ! variableType.isOpaque()) { // this isn't really an individual variable, but a member of the $Global buffer parseContext.growGlobalUniformBlock(idToken.loc, variableType, *idToken.string); } else { diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 44a4230b..47c6fd67 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -737,8 +737,7 @@ bool HlslParseContext::shouldFlattenUniform(const TType& type) const return type.isArray() && intermediate.getFlattenUniformArrays() && qualifier == EvqUniform && - // Testing the EbtSampler basic type covers samplers and textures - type.getBasicType() == EbtSampler; + type.isOpaque(); } void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) From ba56e23e8a13f2e61da75d9210bb945bb41be408 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 12:36:19 -0600 Subject: [PATCH 166/217] Fix typo in error message. --- Test/baseResults/300.frag.out | 2 +- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index 2a3341ac..6ec58aa1 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -28,7 +28,7 @@ ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es -ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es +ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es ERROR: 0:119: '==' : can't use with samplers or structs containing samplers ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers ERROR: 0:121: '==' : can't use with samplers or structs containing samplers diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 44f6a14f..295d610a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1541" +#define GLSLANG_REVISION "Overload400-PrecQual.1542" #define GLSLANG_DATE "01-Oct-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index a24a92d6..8e8e7da0 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -558,7 +558,7 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn // input/output blocks either don't exist or can be variable indexed } } else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) - requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader ouput array"); + requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array"); else if (base->getBasicType() == EbtSampler && version >= 130) { const char* explanation = "variable indexing sampler array"; requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); From c86d38bb2bbb6e66782e19796cdb0ea1bd5b55d8 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 13:30:37 -0600 Subject: [PATCH 167/217] Non-functional: Better use of .isParamOutput() and some other methods. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 10 +++++----- hlsl/hlslParseHelper.cpp | 17 +++++++++-------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 295d610a..589c8812 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1542" +#define GLSLANG_REVISION "Overload400-PrecQual.1543" #define GLSLANG_DATE "01-Oct-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 8e8e7da0..63140a00 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1168,7 +1168,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction // means take 'arguments' itself as the one argument. TIntermNode* arg = fnCandidate->getParamCount() == 1 ? arguments : (aggregate ? aggregate->getSequence()[i] : arguments); TQualifier& formalQualifier = (*fnCandidate)[i].type->getQualifier(); - if (formalQualifier.storage == EvqOut || formalQualifier.storage == EvqInOut) { + if (formalQualifier.isParamOutput()) { if (lValueErrorCheck(arguments->getLoc(), "assign", arg->getAsTyped())) error(arguments->getLoc(), "Non-L-value cannot be passed for 'out' or 'inout' parameters.", "out", ""); } @@ -1499,7 +1499,7 @@ TIntermTyped* TParseContext::addOutputArgumentConversions(const TFunction& funct // Will there be any output conversions? bool outputConversions = false; for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().storage == EvqOut) { + if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().isParamOutput()) { outputConversions = true; break; } @@ -3003,7 +3003,7 @@ void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType ba void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier qualifier, const TType& type) { - if ((qualifier == EvqOut || qualifier == EvqInOut) && (type.getBasicType() == EbtSampler || type.getBasicType() == EbtAtomicUint)) + if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque()) error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), ""); } @@ -3716,7 +3716,7 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali if (qualifier.invariant) error(loc, "cannot use invariant qualifier on a function parameter", "", ""); if (qualifier.noContraction) { - if (qualifier.storage == EvqOut || qualifier.storage == EvqInOut) + if (qualifier.isParamOutput()) type.getQualifier().noContraction = true; else warn(loc, "qualifier has no effect on non-output parameters", "precise", ""); @@ -4582,7 +4582,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) // an array of size N, all elements of the array from binding through binding + N - 1 must be within this // range." // - if (type.getBasicType() != EbtSampler && type.getBasicType() != EbtBlock && type.getBasicType() != EbtAtomicUint) + if (! type.isOpaque() && type.getBasicType() != EbtBlock) error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", ""); if (type.getBasicType() == EbtSampler) { int lastBinding = qualifier.layoutBinding; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 47c6fd67..42b57b91 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2384,18 +2384,19 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // Process each argument's conversion for (int i = 0; i < function.getParamCount(); ++i) { + if (! function[i].type->getQualifier().isParamInput()) + continue; + // At this early point there is a slight ambiguity between whether an aggregate 'arguments' // is the single argument itself or its children are the arguments. Only one argument // means take 'arguments' itself as the one argument. TIntermTyped* arg = function.getParamCount() == 1 ? arguments->getAsTyped() : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); if (*function[i].type != arg->getType()) { - if (function[i].type->getQualifier().isParamInput()) { - // In-qualified arguments just need an extra node added above the argument to - // convert to the correct type. - arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); - arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); - setArg(i, arg); - } + // In-qualified arguments just need an extra node added above the argument to + // convert to the correct type. + arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); + arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); + setArg(i, arg); } else { if (shouldFlatten(arg->getType())) { // Will make a two-level subtree. @@ -2436,7 +2437,7 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu // Will there be any output conversions? bool outputConversions = false; for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().storage == EvqOut) { + if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().isParamOutput()) { outputConversions = true; break; } From d8fe2ca8e584ff7170f3cbd9a08ca8f636815872 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 17:11:21 -0600 Subject: [PATCH 168/217] HLSL: Handle flattened I/O structs passed to function *out* parameters. --- Test/baseResults/hlsl.entry-out.frag.out | 397 +++++++++++++---------- Test/hlsl.entry-out.frag | 8 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 60 ++-- 4 files changed, 270 insertions(+), 197 deletions(-) diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index d15741f7..ad7518e3 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -2,60 +2,83 @@ hlsl.entry-out.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void) 0:7 Function Parameters: -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (layout(location=1 ) out 4-component vector of float) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:8 move second child to first child (temp 2-component vector of float) +0:8 v: direct index for structure (temp 2-component vector of float) +0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child (temp 2-component vector of int) +0:9 i: direct index for structure (temp 2-component vector of int) +0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) 0:9 Constant: -0:9 2.000000 -0:9 2.000000 -0:10 move second child to first child (temp 2-component vector of int) +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) 0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:10 Constant: -0:10 3 (const int) -0:10 3 (const int) -0:12 move second child to first child (temp 2-component vector of float) -0:12 v: direct index for structure (temp 2-component vector of float) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 12.000000 -0:12 12.000000 -0:13 move second child to first child (temp 2-component vector of int) -0:13 i: direct index for structure (temp 2-component vector of int) -0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 13 (const int) -0:13 13 (const int) -0:? Sequence -0:14 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:14 v: direct index for structure (temp 2-component vector of float) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:14 i: direct index for structure (temp 2-component vector of int) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 1 (const int) -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:16 'out1' (layout(location=1 ) out 4-component vector of float) -0:16 Branch: Return +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -72,60 +95,83 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void) 0:7 Function Parameters: -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (layout(location=1 ) out 4-component vector of float) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:8 move second child to first child (temp 2-component vector of float) +0:8 v: direct index for structure (temp 2-component vector of float) +0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child (temp 2-component vector of int) +0:9 i: direct index for structure (temp 2-component vector of int) +0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) 0:9 Constant: -0:9 2.000000 -0:9 2.000000 -0:10 move second child to first child (temp 2-component vector of int) +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) 0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:10 Constant: -0:10 3 (const int) -0:10 3 (const int) -0:12 move second child to first child (temp 2-component vector of float) -0:12 v: direct index for structure (temp 2-component vector of float) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 12.000000 -0:12 12.000000 -0:13 move second child to first child (temp 2-component vector of int) -0:13 i: direct index for structure (temp 2-component vector of int) -0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 13 (const int) -0:13 13 (const int) -0:? Sequence -0:14 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:14 v: direct index for structure (temp 2-component vector of float) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:14 i: direct index for structure (temp 2-component vector of int) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 1 (const int) -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:16 'out1' (layout(location=1 ) out 4-component vector of float) -0:16 Branch: Return +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -137,82 +183,105 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 15 21 37 40 43 + EntryPoint Fragment 4 "PixelShaderFunction" 28 30 33 37 51 54 57 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "out1" - Name 11 "input" - Name 15 "v" - Name 21 "i" - Name 24 "OutParam" - MemberName 24(OutParam) 0 "v" - MemberName 24(OutParam) 1 "i" - Name 26 "local" - Name 37 "v" - Name 40 "i" - Name 43 "@entryPointOutput" - Decorate 9(out1) Location 1 - Decorate 11(input) Location 0 - Decorate 15(v) Location 2 - Decorate 21(i) Location 3 - Decorate 37(v) Location 4 - Decorate 40(i) Location 5 - Decorate 43(@entryPointOutput) Location 0 + Name 10 "OutParam" + MemberName 10(OutParam) 0 "v" + MemberName 10(OutParam) 1 "i" + Name 14 "fun(struct-OutParam-vf2-vi21;" + Name 13 "op" + Name 28 "out1" + Name 30 "input" + Name 33 "v" + Name 37 "i" + Name 40 "local" + Name 47 "tempArg" + Name 48 "param" + Name 51 "v" + Name 54 "i" + Name 57 "@entryPointOutput" + Decorate 28(out1) Location 1 + Decorate 30(input) Location 0 + Decorate 33(v) Location 2 + Decorate 37(i) Location 3 + Decorate 51(v) Location 4 + Decorate 54(i) Location 5 + Decorate 57(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(out1): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input): 10(ptr) Variable Input - 13: TypeVector 6(float) 2 - 14: TypePointer Output 13(fvec2) - 15(v): 14(ptr) Variable Output - 16: 6(float) Constant 1073741824 - 17: 13(fvec2) ConstantComposite 16 16 - 18: TypeInt 32 1 - 19: TypeVector 18(int) 2 - 20: TypePointer Output 19(ivec2) - 21(i): 20(ptr) Variable Output - 22: 18(int) Constant 3 - 23: 19(ivec2) ConstantComposite 22 22 - 24(OutParam): TypeStruct 13(fvec2) 19(ivec2) - 25: TypePointer Function 24(OutParam) - 27: 18(int) Constant 0 - 28: 6(float) Constant 1094713344 - 29: 13(fvec2) ConstantComposite 28 28 - 30: TypePointer Function 13(fvec2) - 32: 18(int) Constant 1 - 33: 18(int) Constant 13 - 34: 19(ivec2) ConstantComposite 33 33 - 35: TypePointer Function 19(ivec2) - 37(v): 14(ptr) Variable Output - 40(i): 20(ptr) Variable Output -43(@entryPointOutput): 8(ptr) Variable Output + 7: TypeVector 6(float) 2 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 2 + 10(OutParam): TypeStruct 7(fvec2) 9(ivec2) + 11: TypePointer Function 10(OutParam) + 12: TypeFunction 2 11(ptr) + 16: 8(int) Constant 0 + 17: 6(float) Constant 1053609165 + 18: 7(fvec2) ConstantComposite 17 17 + 19: TypePointer Function 7(fvec2) + 21: 8(int) Constant 1 + 22: 8(int) Constant 7 + 23: 9(ivec2) ConstantComposite 22 22 + 24: TypePointer Function 9(ivec2) + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(out1): 27(ptr) Variable Output + 29: TypePointer Input 26(fvec4) + 30(input): 29(ptr) Variable Input + 32: TypePointer Output 7(fvec2) + 33(v): 32(ptr) Variable Output + 34: 6(float) Constant 1073741824 + 35: 7(fvec2) ConstantComposite 34 34 + 36: TypePointer Output 9(ivec2) + 37(i): 36(ptr) Variable Output + 38: 8(int) Constant 3 + 39: 9(ivec2) ConstantComposite 38 38 + 41: 6(float) Constant 1094713344 + 42: 7(fvec2) ConstantComposite 41 41 + 44: 8(int) Constant 13 + 45: 9(ivec2) ConstantComposite 44 44 + 51(v): 32(ptr) Variable Output + 54(i): 36(ptr) Variable Output +57(@entryPointOutput): 27(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label - 26(local): 25(ptr) Variable Function - 12: 7(fvec4) Load 11(input) - Store 9(out1) 12 - Store 15(v) 17 - Store 21(i) 23 - 31: 30(ptr) AccessChain 26(local) 27 - Store 31 29 - 36: 35(ptr) AccessChain 26(local) 32 - Store 36 34 - 38: 30(ptr) AccessChain 26(local) 27 - 39: 13(fvec2) Load 38 - Store 37(v) 39 - 41: 35(ptr) AccessChain 26(local) 32 - 42: 19(ivec2) Load 41 - Store 40(i) 42 - 44: 7(fvec4) Load 9(out1) - Store 43(@entryPointOutput) 44 + 40(local): 11(ptr) Variable Function + 47(tempArg): 11(ptr) Variable Function + 48(param): 11(ptr) Variable Function + 31: 26(fvec4) Load 30(input) + Store 28(out1) 31 + Store 33(v) 35 + Store 37(i) 39 + 43: 19(ptr) AccessChain 40(local) 16 + Store 43 42 + 46: 24(ptr) AccessChain 40(local) 21 + Store 46 45 + 49: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 48(param) + 50:10(OutParam) Load 48(param) + Store 47(tempArg) 50 + 52: 19(ptr) AccessChain 47(tempArg) 16 + 53: 7(fvec2) Load 52 + Store 51(v) 53 + 55: 24(ptr) AccessChain 47(tempArg) 21 + 56: 9(ivec2) Load 55 + Store 54(i) 56 + 58: 26(fvec4) Load 28(out1) + Store 57(@entryPointOutput) 58 + Return + FunctionEnd +14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12 + 13(op): 11(ptr) FunctionParameter + 15: Label + 20: 19(ptr) AccessChain 13(op) 16 + Store 20 18 + 25: 24(ptr) AccessChain 13(op) 21 + Store 25 23 Return FunctionEnd diff --git a/Test/hlsl.entry-out.frag b/Test/hlsl.entry-out.frag index 14f0e459..27b4dd64 100644 --- a/Test/hlsl.entry-out.frag +++ b/Test/hlsl.entry-out.frag @@ -3,6 +3,12 @@ struct OutParam { int2 i; }; +void fun(out OutParam op) +{ + op.v = float2(0.4); + op.i = int2(7); +} + float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam out3) : COLOR0 { out1 = input; @@ -11,7 +17,7 @@ float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam local; local.v = 12.0; local.i = 13; - out3 = local; + fun(out3); return out1; } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 589c8812..0db44dca 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1543" +#define GLSLANG_REVISION "Overload400-PrecQual.1544" #define GLSLANG_DATE "01-Oct-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 42b57b91..63d9c3d7 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2246,21 +2246,9 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); - if (arguments) { - // Make sure qualifications work for these arguments. - //TIntermAggregate* aggregate = arguments->getAsAggregate(); - //for (int i = 0; i < fnCandidate->getParamCount(); ++i) { - // // At this early point there is a slight ambiguity between whether an aggregate 'arguments' - // // is the single argument itself or its children are the arguments. Only one argument - // // means take 'arguments' itself as the one argument. - // TIntermNode* arg = fnCandidate->getParamCount() == 1 ? arguments : (aggregate ? aggregate->getSequence()[i] : arguments); - // TQualifier& formalQualifier = (*fnCandidate)[i].type->getQualifier(); - // TQualifier& argQualifier = arg->getAsTyped()->getQualifier(); - //} - - // Convert 'in' arguments - addInputArgumentConversions(*fnCandidate, arguments); // arguments may be modified if it's just a single argument node - } + // Convert 'in' arguments + if (arguments) + addInputArgumentConversions(*fnCandidate, arguments); op = fnCandidate->getBuiltInOp(); if (builtIn && op != EOpNull) { @@ -2390,7 +2378,9 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // At this early point there is a slight ambiguity between whether an aggregate 'arguments' // is the single argument itself or its children are the arguments. Only one argument // means take 'arguments' itself as the one argument. - TIntermTyped* arg = function.getParamCount() == 1 ? arguments->getAsTyped() : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); + TIntermTyped* arg = function.getParamCount() == 1 + ? arguments->getAsTyped() + : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); if (*function[i].type != arg->getType()) { // In-qualified arguments just need an extra node added above the argument to // convert to the correct type. @@ -2401,9 +2391,9 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI if (shouldFlatten(arg->getType())) { // Will make a two-level subtree. // The deepest will copy member-by-member to build the structure to pass. - // The level above that will be an two-operand EOpComma sequence that follows the copy by the + // The level above that will be a two-operand EOpComma sequence that follows the copy by the // object itself. - TSourceLoc dummyLoc; + TSourceLoc dummyLoc; // ?? fix these everywhere to be arguments[i]->getLoc()? dummyLoc.init(); TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); internalAggregate->getWritableType().getQualifier().makeTemporary(); @@ -2433,11 +2423,16 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const { TIntermSequence& arguments = intermNode.getSequence(); + const auto needsConversion = [&](int argNum) { + return function[argNum].type->getQualifier().isParamOutput() && + (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() || + shouldFlatten(arguments[argNum]->getAsTyped()->getType())); + }; // Will there be any output conversions? bool outputConversions = false; for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().isParamOutput()) { + if (needsConversion(i)) { outputConversions = true; break; } @@ -2468,18 +2463,21 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu // Process each argument's conversion for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType()) { - if (function[i].type->getQualifier().isParamOutput()) { - // Out-qualified arguments need to use the topology set up above. - // do the " ...(tempArg, ...), arg = tempArg" bit from above - TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); - tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - TIntermTyped* tempAssign = intermediate.addAssign(EOpAssign, arguments[i]->getAsTyped(), tempArgNode, arguments[i]->getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); - // replace the argument with another node for the same tempArg variable - arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - } + if (needsConversion(i)) { + // Out-qualified arguments needing conversion need to use the topology setup above. + // Do the " ...(tempArg, ...), arg = tempArg" bit from above. + + // Make a temporary for what the function expects the argument to look like. + TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); + tempArg->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); + + // This makes the deepest level, the member-wise copy + TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode)->getAsAggregate(); + conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); + + // replace the argument with another node for the same tempArg variable + arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc()); } } From a08c929d8e512c63edb86be4ee247a3ee92a23b0 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 17:17:55 -0600 Subject: [PATCH 169/217] HLSL: Line numbers only: Set locations (line numbers) on synthesized flattening code. --- Test/baseResults/hlsl.array.flatten.frag.out | 152 +++++++++--------- .../hlsl.calculatelod.dx10.frag.out | 8 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 8 +- Test/baseResults/hlsl.constructexpr.frag.out | 8 +- Test/baseResults/hlsl.entry-in.frag.out | 76 ++++----- Test/baseResults/hlsl.entry-out.frag.out | 4 +- .../hlsl.gather.array.dx10.frag.out | 8 +- .../hlsl.gather.basic.dx10.frag.out | 8 +- .../hlsl.gather.basic.dx10.vert.out | 8 +- .../hlsl.gather.offset.dx10.frag.out | 8 +- .../hlsl.gather.offsetarray.dx10.frag.out | 8 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 8 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 8 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 8 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 8 +- .../hlsl.getdimensions.dx10.frag.out | 8 +- .../hlsl.getdimensions.dx10.vert.out | 8 +- .../hlsl.getsampleposition.dx10.frag.out | 8 +- Test/baseResults/hlsl.init2.frag.out | 8 +- Test/baseResults/hlsl.inoutquals.frag.out | 8 +- Test/baseResults/hlsl.intrinsics.frag.out | 8 +- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 8 +- .../baseResults/hlsl.load.array.dx10.frag.out | 8 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 8 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 8 +- .../hlsl.load.buffer.dx10.frag.out | 8 +- .../hlsl.load.offset.dx10.frag.out | 8 +- .../hlsl.load.offsetarray.dx10.frag.out | 8 +- Test/baseResults/hlsl.matrixindex.frag.out | 8 +- .../baseResults/hlsl.numericsuffixes.frag.out | 8 +- Test/baseResults/hlsl.pp.line.frag.out | 8 +- Test/baseResults/hlsl.precise.frag.out | 8 +- Test/baseResults/hlsl.promotions.frag.out | 8 +- .../hlsl.sample.array.dx10.frag.out | 8 +- .../hlsl.sample.basic.dx10.frag.out | 8 +- .../hlsl.sample.offset.dx10.frag.out | 8 +- .../hlsl.sample.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplebias.array.dx10.frag.out | 8 +- .../hlsl.samplebias.basic.dx10.frag.out | 8 +- .../hlsl.samplebias.offset.dx10.frag.out | 8 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplecmp.array.dx10.frag.out | 8 +- .../hlsl.samplecmp.basic.dx10.frag.out | 8 +- .../hlsl.samplecmp.offset.dx10.frag.out | 8 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 8 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 8 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 8 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 8 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplegrad.array.dx10.frag.out | 8 +- .../hlsl.samplegrad.basic.dx10.frag.out | 8 +- .../hlsl.samplegrad.basic.dx10.vert.out | 8 +- .../hlsl.samplegrad.offset.dx10.frag.out | 8 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplelevel.array.dx10.frag.out | 8 +- .../hlsl.samplelevel.basic.dx10.frag.out | 8 +- .../hlsl.samplelevel.basic.dx10.vert.out | 8 +- .../hlsl.samplelevel.offset.dx10.frag.out | 8 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 8 +- Test/baseResults/hlsl.semicolons.frag.out | 8 +- Test/baseResults/hlsl.stringtoken.frag.out | 8 +- Test/baseResults/hlsl.structin.vert.out | 8 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 13 +- 64 files changed, 359 insertions(+), 360 deletions(-) diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index e7487598..185c2cc6 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:31 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence 0:33 Sequence -0:? Sequence +0:33 Sequence 0:33 move second child to first child (temp sampler) 0:33 direct index (temp sampler) 0:33 'local_sampler_array' (temp 3-element array of sampler) @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left 0:33 2 (const int) 0:? 'g_samp[2]' (uniform sampler) 0:34 Sequence -0:? Sequence +0:34 Sequence 0:34 move second child to first child (temp texture1D) 0:34 direct index (temp texture1D) 0:34 'local_texture_array' (temp 3-element array of texture1D) @@ -95,48 +95,48 @@ gl_FragCoord origin is upper left 0:37 add (temp 4-component vector of float) 0:37 Function Call: TestFn1( (temp 4-component vector of float) 0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) -0:? Comma (temp 3-element array of texture1D) -0:? Sequence -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 0 (const int) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) 0:? 'g_tex[0]' (uniform texture1D) -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 1 (const int) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) 0:? 'g_tex[1]' (uniform texture1D) -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 2 (const int) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) 0:? 'g_tex[2]' (uniform texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Comma (temp 3-element array of sampler) -0:? Sequence -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 0 (const int) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) 0:? 'g_samp[0]' (uniform sampler) -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 1 (const int) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) 0:? 'g_samp[1]' (uniform sampler) -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 2 (const int) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) 0:? 'g_samp[2]' (uniform sampler) -0:? 'aggShadow' (temp 3-element array of sampler) +0:37 'aggShadow' (temp 3-element array of sampler) 0:? Linker Objects 0:? 'g_tex[0]' (uniform texture1D) 0:? 'g_tex[1]' (uniform texture1D) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:31 'ps_output' (out structure{temp 4-component vector of float color}) 0:? Sequence 0:33 Sequence -0:? Sequence +0:33 Sequence 0:33 move second child to first child (temp sampler) 0:33 direct index (temp sampler) 0:33 'local_sampler_array' (temp 3-element array of sampler) @@ -223,7 +223,7 @@ gl_FragCoord origin is upper left 0:33 2 (const int) 0:? 'g_samp[2]' (uniform sampler) 0:34 Sequence -0:? Sequence +0:34 Sequence 0:34 move second child to first child (temp texture1D) 0:34 direct index (temp texture1D) 0:34 'local_texture_array' (temp 3-element array of texture1D) @@ -254,48 +254,48 @@ gl_FragCoord origin is upper left 0:37 add (temp 4-component vector of float) 0:37 Function Call: TestFn1( (temp 4-component vector of float) 0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) -0:? Comma (temp 3-element array of texture1D) -0:? Sequence -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 0 (const int) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) 0:? 'g_tex[0]' (uniform texture1D) -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 1 (const int) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) 0:? 'g_tex[1]' (uniform texture1D) -0:? move second child to first child (temp texture1D) -0:? direct index (temp texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Constant: -0:? 2 (const int) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) 0:? 'g_tex[2]' (uniform texture1D) -0:? 'aggShadow' (temp 3-element array of texture1D) -0:? Comma (temp 3-element array of sampler) -0:? Sequence -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 0 (const int) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) 0:? 'g_samp[0]' (uniform sampler) -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 1 (const int) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) 0:? 'g_samp[1]' (uniform sampler) -0:? move second child to first child (temp sampler) -0:? direct index (temp sampler) -0:? 'aggShadow' (temp 3-element array of sampler) -0:? Constant: -0:? 2 (const int) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) 0:? 'g_samp[2]' (uniform sampler) -0:? 'aggShadow' (temp 3-element array of sampler) +0:37 'aggShadow' (temp 3-element array of sampler) 0:? Linker Objects 0:? 'g_tex[0]' (uniform texture1D) 0:? 'g_tex[1]' (uniform texture1D) diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 30af5920..9d061d29 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 92d84f92..ecd1f0d1 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -151,8 +151,8 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -325,8 +325,8 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 1595a08d..e6ed6e13 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -34,8 +34,8 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:? Sequence -0:? Sequence +0:16 Sequence +0:16 Sequence 0:16 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:16 color: direct index for structure (temp 4-component vector of float) @@ -85,8 +85,8 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:? Sequence -0:? Sequence +0:16 Sequence +0:16 Sequence 0:16 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:16 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index b2ab8cbe..04e3935d 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence -0:? Sequence +0:15 Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) 0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) @@ -54,27 +54,27 @@ gl_FragCoord origin is upper left 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) 0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) -0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Sequence -0:? move second child to first child (temp 2-component vector of float) -0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 0 (const int) +0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 1 (const int) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? move second child to first child (temp 2-component vector of int) -0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 2 (const int) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence -0:? Sequence +0:15 Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) 0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) @@ -152,27 +152,27 @@ gl_FragCoord origin is upper left 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) 0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) -0:? Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Sequence -0:? move second child to first child (temp 2-component vector of float) -0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 0 (const int) +0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 1 (const int) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? move second child to first child (temp 2-component vector of int) -0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 2 (const int) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index ad7518e3..86fde14c 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:20 Comma (temp void) 0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) 0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:? Sequence +0:20 Sequence 0:20 move second child to first child (temp 2-component vector of float) 0:? 'v' (layout(location=4 ) out 2-component vector of float) 0:20 v: direct index for structure (temp 2-component vector of float) @@ -154,7 +154,7 @@ gl_FragCoord origin is upper left 0:20 Comma (temp void) 0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) 0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:? Sequence +0:20 Sequence 0:20 move second child to first child (temp 2-component vector of float) 0:? 'v' (layout(location=4 ) out 2-component vector of float) 0:20 v: direct index for structure (temp 2-component vector of float) diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index a686c11b..a09b87ce 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -91,8 +91,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -217,8 +217,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index e28ad34a..467ccf4c 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -85,8 +85,8 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:? Sequence -0:? Sequence +0:47 Sequence +0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) @@ -209,8 +209,8 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:? Sequence -0:? Sequence +0:47 Sequence +0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 92672356..d08a57e7 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -77,8 +77,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:45 Sequence +0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:45 Pos: direct index for structure (temp 4-component vector of float) @@ -186,8 +186,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:45 Sequence +0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:45 Pos: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 86a201cc..ff7eb398 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -61,8 +61,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 2bda352c..dc64a807 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -64,8 +64,8 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:? Sequence -0:? Sequence +0:35 Sequence +0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:? Sequence -0:? Sequence +0:35 Sequence +0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index c9f6bbd7..4e78cdaf 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -334,8 +334,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -704,8 +704,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 5cdf912e..ef1e7e05 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -334,8 +334,8 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:? Sequence -0:? Sequence +0:76 Sequence +0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) @@ -708,8 +708,8 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:? Sequence -0:? Sequence +0:76 Sequence +0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index a04010f3..f178c3b3 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -586,8 +586,8 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:? Sequence -0:? Sequence +0:115 Sequence +0:115 Sequence 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) @@ -1212,8 +1212,8 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:? Sequence -0:? Sequence +0:115 Sequence +0:115 Sequence 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 1a5df38e..f565379f 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -586,8 +586,8 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:? Sequence -0:? Sequence +0:109 Sequence +0:109 Sequence 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) @@ -1208,8 +1208,8 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:? Sequence -0:? Sequence +0:109 Sequence +0:109 Sequence 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 8aba16ae..3a55d682 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1060,8 +1060,8 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:? Sequence -0:? Sequence +0:279 Sequence +0:279 Sequence 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) @@ -2172,8 +2172,8 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:? Sequence -0:? Sequence +0:279 Sequence +0:279 Sequence 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 1d72e873..3a05bca8 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -36,8 +36,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:26 Sequence +0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:26 Pos: direct index for structure (temp 4-component vector of float) @@ -91,8 +91,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:26 Sequence +0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:26 Pos: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 41f6ca2d..9465c62b 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -43,8 +43,8 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:? Sequence -0:? Sequence +0:22 Sequence +0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) @@ -108,8 +108,8 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:? Sequence -0:? Sequence +0:22 Sequence +0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 9ba8b118..9b53e304 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -43,8 +43,8 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:? Sequence -0:? Sequence +0:31 Sequence +0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:31 color: direct index for structure (temp 4-component vector of float) @@ -103,8 +103,8 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:? Sequence -0:? Sequence +0:31 Sequence +0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:31 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index b3b3d8fd..83fe24bd 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -55,8 +55,8 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:? Sequence -0:? Sequence +0:24 Sequence +0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) @@ -135,8 +135,8 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:? Sequence -0:? Sequence +0:24 Sequence +0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 09f88a86..4009d8da 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2772,8 +2772,8 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:? Sequence -0:? Sequence +0:492 Sequence +0:492 Sequence 0:492 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:492 color: direct index for structure (temp 4-component vector of float) @@ -5573,8 +5573,8 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:? Sequence -0:? Sequence +0:492 Sequence +0:492 Sequence 0:492 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:492 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 0048d9ad..77f4fe84 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:? Sequence -0:? Sequence +0:54 Sequence +0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) @@ -316,8 +316,8 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:? Sequence -0:? Sequence +0:54 Sequence +0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index fada58a9..57e479a0 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -142,8 +142,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -331,8 +331,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 20b7456d..90f7e496 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -193,8 +193,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -433,8 +433,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 4e1efadb..4649f291 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -185,8 +185,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:69 Sequence +0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:69 Pos: direct index for structure (temp 4-component vector of float) @@ -410,8 +410,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:69 Sequence +0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:69 Pos: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index ea1b5df3..ded93824 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -49,8 +49,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:? Sequence -0:? Sequence +0:37 Sequence +0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) @@ -127,8 +127,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:? Sequence -0:? Sequence +0:37 Sequence +0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 8d711296..6eaa6f7d 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -229,8 +229,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -505,8 +505,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 665fc47a..776cd835 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -166,8 +166,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:? Sequence -0:? Sequence +0:68 Sequence +0:68 Sequence 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) @@ -379,8 +379,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:? Sequence -0:? Sequence +0:68 Sequence +0:68 Sequence 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 7d49629d..8c637c14 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -117,8 +117,8 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -252,8 +252,8 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 6d192c0a..e8d3630e 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -58,8 +58,8 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:19 color: direct index for structure (temp 4-component vector of float) @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:19 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 281b680b..6bbbee64 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -31,8 +31,8 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:? Sequence -0:? Sequence +0:129 Sequence +0:129 Sequence 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) @@ -86,8 +86,8 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:? Sequence -0:? Sequence +0:129 Sequence +0:129 Sequence 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index 40b6c4d9..e9205cfe 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -19,8 +19,8 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:? Sequence -0:? Sequence +0:12 Sequence +0:12 Sequence 0:12 move second child to first child (noContraction temp 4-component vector of float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) 0:12 color: direct index for structure (noContraction temp 4-component vector of float) @@ -56,8 +56,8 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:? Sequence -0:? Sequence +0:12 Sequence +0:12 Sequence 0:12 move second child to first child (noContraction temp 4-component vector of float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) 0:12 color: direct index for structure (noContraction temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 25238beb..e3df54ff 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -772,8 +772,8 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:? Sequence -0:? Sequence +0:200 Sequence +0:200 Sequence 0:200 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:200 Color: direct index for structure (temp 4-component vector of float) @@ -1562,8 +1562,8 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:? Sequence -0:? Sequence +0:200 Sequence +0:200 Sequence 0:200 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:200 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 701229e0..bb2962d9 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -121,8 +121,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -277,8 +277,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index 2746f16f..b6cc8c6d 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -231,8 +231,8 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:? Sequence -0:? Sequence +0:89 Sequence +0:89 Sequence 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) @@ -500,8 +500,8 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:? Sequence -0:? Sequence +0:89 Sequence +0:89 Sequence 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 48e3d85c..9de5f49b 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -316,8 +316,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 4d64fa0b..f4646d44 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -100,8 +100,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -232,8 +232,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 236889ba..539855e0 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 408c5ffa..9fb8b1a0 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -376,8 +376,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index ce7c4d33..643e0039 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -352,8 +352,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 2bad0c31..3ab84b9a 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index a968b749..05f53c70 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -148,8 +148,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -342,8 +342,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 94986cfd..d7a6b2f3 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 7e3d0de9..021e08f6 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -270,8 +270,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index fab86ff3..73a2a89b 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -118,8 +118,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -282,8 +282,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index adeb3cbc..c5009ff3 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -166,8 +166,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -378,8 +378,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 0492ae78..b8f55b8e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -360,8 +360,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index c50872f4..b30a252e 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -124,8 +124,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -294,8 +294,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 88f8d347..19d262ad 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -130,8 +130,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -306,8 +306,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index ca057fd7..1513492a 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -175,8 +175,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -385,8 +385,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 326bd016..92c0c342 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -223,8 +223,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -484,8 +484,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index ba56951e..e8909345 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -215,8 +215,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -461,8 +461,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index b000b538..9145aa4d 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -193,8 +193,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -424,8 +424,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 8eee2b50..e964ff93 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -130,8 +130,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:? Sequence -0:? Sequence +0:38 Sequence +0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) @@ -295,8 +295,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:? Sequence -0:? Sequence +0:38 Sequence +0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 4254e04b..d031665f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 44802a98..4a937502 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:? Sequence -0:? Sequence +0:51 Sequence +0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) @@ -377,8 +377,8 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:? Sequence -0:? Sequence +0:51 Sequence +0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index e76a3955..c18fa89b 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -161,8 +161,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -353,8 +353,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 043a04ca..4d816499 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -352,8 +352,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index bfc444da..ef3dcf19 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index 43232161..a9f92768 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -19,8 +19,8 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:? Sequence -0:? Sequence +0:17 Sequence +0:17 Sequence 0:17 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:17 color: direct index for structure (temp 4-component vector of float) @@ -55,8 +55,8 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:? Sequence -0:? Sequence +0:17 Sequence +0:17 Sequence 0:17 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:17 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 4fdfecce..8593db62 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -15,8 +15,8 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) @@ -49,8 +49,8 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index 193ccc1c..f3e56b6a 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -32,8 +32,8 @@ Shader version: 450 0:11 0 (const int) 0:11 'd' (layout(location=0 ) in 4-component vector of float) 0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:? Sequence -0:? Sequence +0:13 Sequence +0:13 Sequence 0:13 move second child to first child (temp 2-element array of 4-component vector of float) 0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) 0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) @@ -100,8 +100,8 @@ Shader version: 450 0:11 0 (const int) 0:11 'd' (layout(location=0 ) in 4-component vector of float) 0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:? Sequence -0:? Sequence +0:13 Sequence +0:13 Sequence 0:13 move second child to first child (temp 2-element array of 4-component vector of float) 0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) 0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 0db44dca..c003acd9 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1544" +#define GLSLANG_REVISION "Overload400-PrecQual.1545" #define GLSLANG_DATE "01-Oct-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 63d9c3d7..2fa892f4 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1115,7 +1115,7 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT entryPointOutput->getType()); TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, converted); returnSequence = intermediate.makeAggregate(returnSequence); - returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc)); + returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc), loc); returnSequence->getAsAggregate()->setOperator(EOpSequence); return returnSequence; @@ -1183,7 +1183,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op EOpIndexDirectStruct, *members[member].type); TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, EOpIndexDirectStruct, *members[member].type); - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); } } @@ -1201,7 +1201,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, EOpIndexDirect, dereferencedType); - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); } } @@ -2393,18 +2393,17 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // The deepest will copy member-by-member to build the structure to pass. // The level above that will be a two-operand EOpComma sequence that follows the copy by the // object itself. - TSourceLoc dummyLoc; // ?? fix these everywhere to be arguments[i]->getLoc()? - dummyLoc.init(); TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); internalAggregate->getWritableType().getQualifier().makeTemporary(); TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), internalAggregate->getName(), internalAggregate->getType()); + internalSymbolNode->setLoc(arg->getLoc()); // This makes the deepest level, the member-wise copy - TIntermAggregate* assignAgg = handleAssign(dummyLoc, EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + TIntermAggregate* assignAgg = handleAssign(arg->getLoc(), EOpAssign, internalSymbolNode, arg)->getAsAggregate(); // Now, pair that with the resulting aggregate. - assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode); + assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode, arg->getLoc()); assignAgg->setOperator(EOpComma); assignAgg->setType(internalAggregate->getType()); setArg(i, assignAgg); From 273060c2d3da1e4aeab4923306ffc5c80c462da4 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 17:47:40 -0600 Subject: [PATCH 170/217] Non-functional: Rationalizing parse helper hierarchy, step 1 (effected memory of HLSL keyword map). --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/ShaderLang.cpp | 3 +++ hlsl/hlslParseHelper.cpp | 30 ----------------------- 3 files changed, 4 insertions(+), 31 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index c003acd9..797c2f2f 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1545" +#define GLSLANG_REVISION "Overload400-PrecQual.1546" #define GLSLANG_DATE "01-Oct-2016" diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index ffd6b00c..d6ff7825 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -51,6 +51,7 @@ #include "../../hlsl/hlslParseables.h" #include "Scan.h" #include "ScanContext.h" +#include "../../hlsl/hlslScanContext.h" #include "../Include/ShHandle.h" #include "../../OGLCompilersDLL/InitializeDll.h" @@ -1049,6 +1050,7 @@ int ShInitialize() PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); + glslang::HlslScanContext::fillInKeywordMap(); return 1; } @@ -1141,6 +1143,7 @@ int __fastcall ShFinalize() } glslang::TScanContext::deleteKeywordMap(); + glslang::HlslScanContext::deleteKeywordMap(); return 1; } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2fa892f4..f1294ef1 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -117,8 +117,6 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& currentScanner = &input; ppContext.setInput(input, versionWillBeError); - HlslScanContext::fillInKeywordMap(); // TODO: right place, and include the delete too - HlslScanContext scanContext(*this, ppContext); HlslGrammar grammar(scanContext, *this); if (!grammar.parse()) { @@ -4774,34 +4772,6 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS if (arraySizes) blockType.newArraySizes(*arraySizes); - // - // Don't make a user-defined type out of block name; that will cause an error - // if the same block name gets reused in a different interface. - // - // "Block names have no other use within a shader - // beyond interface matching; it is a compile-time error to use a block name at global scope for anything - // other than as a block name (e.g., use of a block name for a global variable name or function name is - // currently reserved)." - // - // Use the symbol table to prevent normal reuse of the block's name, as a variable entry, - // whose type is EbtBlock, but without all the structure; that will come from the type - // the instances point to. - // - //??TType blockNameType(EbtBlock, blockType.getQualifier().storage); - //??TVariable* blockNameVar = new TVariable(blockName, blockNameType); - //if (! symbolTable.insert(*blockNameVar)) { - // TSymbol* existingName = symbolTable.find(*blockName); - // if (existingName->getType().getBasicType() == EbtBlock) { - // if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { - // error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); - // return; - // } - // } else { - // error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - // return; - // } - //} - // Add the variable, as anonymous or named instanceName. // Make an anonymous variable if no name was provided. if (! instanceName) From a2a5dd474e0cef73a28f73555a98efd7f80afffc Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 18:07:57 -0600 Subject: [PATCH 171/217] Non-functional: Rationalizing parse helper hierarchy, step 2 (effected error messaging and cascading errors). --- glslang/Include/revision.h | 2 +- .../MachineIndependent/ParseContextBase.cpp | 72 +++++++++++++++++- glslang/MachineIndependent/ParseHelper.cpp | 76 ------------------- glslang/MachineIndependent/ParseHelper.h | 26 +++---- gtests/TestFixture.cpp | 2 +- hlsl/hlslParseHelper.cpp | 64 ---------------- hlsl/hlslParseHelper.h | 9 --- 7 files changed, 86 insertions(+), 165 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 797c2f2f..72d7d687 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1546" +#define GLSLANG_REVISION "Overload400-PrecQual.1547" #define GLSLANG_DATE "01-Oct-2016" diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index a8e83d01..2d78714d 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -36,12 +36,83 @@ // Implement the TParseContextBase class. +#include + #include "ParseHelper.h" extern int yyparse(glslang::TParseContext*); namespace glslang { +// +// Used to output syntax, parsing, and semantic errors. +// + +void TParseContextBase::outputMessage(const TSourceLoc& loc, const char* szReason, + const char* szToken, + const char* szExtraInfoFormat, + TPrefixType prefix, va_list args) +{ + const int maxSize = MaxTokenLength + 200; + char szExtraInfo[maxSize]; + + safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); + + infoSink.info.prefix(prefix); + infoSink.info.location(loc); + infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; + + if (prefix == EPrefixError) { + ++numErrors; + } +} + +void C_DECL TParseContextBase::error(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + if (messages & EShMsgOnlyPreprocessor) + return; + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); + va_end(args); + + if ((messages & EShMsgCascadingErrors) == 0) + currentScanner->setEndOfInput(); +} + +void C_DECL TParseContextBase::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + if (suppressWarnings()) + return; + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); + va_end(args); +} + +void C_DECL TParseContextBase::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); + va_end(args); + + if ((messages & EShMsgCascadingErrors) == 0) + currentScanner->setEndOfInput(); +} + +void C_DECL TParseContextBase::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); + va_end(args); +} + // Select the best matching function for 'call' from 'candidateList'. // // Assumptions @@ -235,7 +306,6 @@ bool TParseContextBase::insertGlobalUniformBlock() } return inserted; - } } // end namespace glslang diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 63140a00..dd58ef14 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -39,7 +39,6 @@ #include "Scan.h" #include "../OSDependent/osinclude.h" -#include #include #include "preprocessor/PpContext.h" @@ -362,81 +361,6 @@ bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& comp return true; } -/////////////////////////////////////////////////////////////////////// -// -// Errors -// -//////////////////////////////////////////////////////////////////////// - -// -// Used to output syntax, parsing, and semantic errors. -// - -void TParseContext::outputMessage(const TSourceLoc& loc, const char* szReason, - const char* szToken, - const char* szExtraInfoFormat, - TPrefixType prefix, va_list args) -{ - const int maxSize = MaxTokenLength + 200; - char szExtraInfo[maxSize]; - - safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); - - infoSink.info.prefix(prefix); - infoSink.info.location(loc); - infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; - - if (prefix == EPrefixError) { - ++numErrors; - } -} - -void C_DECL TParseContext::error(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (messages & EShMsgOnlyPreprocessor) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContext::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (suppressWarnings()) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -void C_DECL TParseContext::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContext::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - // // Handle seeing a variable identifier in the grammar. // diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index e377501d..fba09eeb 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -82,8 +82,17 @@ public: globalUniformBlock(nullptr) { } virtual ~TParseContextBase() { } + void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void setLimits(const TBuiltInResource&) = 0; - + EShLanguage getLanguage() const { return language; } TIntermAggregate*& getLinkage() { return linkage; } void setScanContext(TScanContext* c) { scanContext = c; } @@ -162,6 +171,9 @@ protected: // override this to set the language-specific name virtual const char* getGlobalUniformBlockName() { return ""; } virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } + void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, TPrefixType prefix, + va_list args); }; // @@ -216,15 +228,6 @@ public: bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); void parserError(const char* s); // for bison's yyerror - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void reservedErrorCheck(const TSourceLoc&, const TString&); void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op); bool lineContinuationCheck(const TSourceLoc&, bool endOfComment); @@ -366,9 +369,6 @@ protected: TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); void finalErrorCheck(); - void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, TPrefixType prefix, - va_list args); public: // diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp index 1dff65ac..7d27b3b1 100644 --- a/gtests/TestFixture.cpp +++ b/gtests/TestFixture.cpp @@ -74,7 +74,7 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target) case Source::GLSL: break; case Source::HLSL: - result = EShMsgReadHlsl; + result = static_cast(result | EShMsgReadHlsl); break; } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index f1294ef1..be1e23c1 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -43,7 +43,6 @@ #include "../glslang/OSDependent/osinclude.h" -#include #include namespace glslang { @@ -234,69 +233,6 @@ bool HlslParseContext::parseVectorFields(const TSourceLoc& loc, const TString& c return true; } -// -// Used to output syntax, parsing, and semantic errors. -// - -void HlslParseContext::outputMessage(const TSourceLoc& loc, const char* szReason, - const char* szToken, - const char* szExtraInfoFormat, - TPrefixType prefix, va_list args) -{ - const int maxSize = MaxTokenLength + 200; - char szExtraInfo[maxSize]; - - safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); - - infoSink.info.prefix(prefix); - infoSink.info.location(loc); - infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; - - if (prefix == EPrefixError) { - ++numErrors; - } -} - -void C_DECL HlslParseContext::error(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (messages & EShMsgOnlyPreprocessor) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); -} - -void C_DECL HlslParseContext::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (suppressWarnings()) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -void C_DECL HlslParseContext::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); -} - -void C_DECL HlslParseContext::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - // // Handle seeing a variable identifier in the grammar. // diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 657858a6..c7568b2a 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -53,15 +53,6 @@ public: bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); virtual const char* getGlobalUniformBlockName() { return "$Global"; } - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) { } bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) { return true; } bool lineDirectiveShouldSetNextLine() const { return true; } From de97fe0ad433d71f699834fcf45a329d6f41679a Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 1 Oct 2016 18:44:38 -0600 Subject: [PATCH 172/217] Non-functional: Rationalizing parse helper hierarchy, step 3 (effected editable symbols and IO resize). --- glslang/Include/revision.h | 2 +- .../MachineIndependent/ParseContextBase.cpp | 32 +++ glslang/MachineIndependent/ParseHelper.cpp | 32 +-- glslang/MachineIndependent/ParseHelper.h | 25 +-- hlsl/hlslParseHelper.cpp | 185 ------------------ hlsl/hlslParseHelper.h | 12 -- 6 files changed, 51 insertions(+), 237 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 72d7d687..21914247 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1547" +#define GLSLANG_REVISION "Overload400-PrecQual.1548" #define GLSLANG_DATE "01-Oct-2016" diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index 2d78714d..b92effce 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -113,6 +113,38 @@ void C_DECL TParseContextBase::ppWarn(const TSourceLoc& loc, const char* szReaso va_end(args); } +// Make a shared symbol have a non-shared version that can be edited by the current +// compile, such that editing its type will not change the shared version and will +// effect all nodes sharing it. +void TParseContextBase::makeEditable(TSymbol*& symbol) +{ + // copyUp() does a deep copy of the type. + symbol = symbolTable.copyUp(symbol); + + // Save it in the AST for linker use. + intermediate.addSymbolLinkageNode(linkage, *symbol); +} + +// Return a writable version of the variable 'name'. +// +// Return nullptr if 'name' is not found. This should mean +// something is seriously wrong (e.g., compiler asking self for +// built-in that doesn't exist). +TVariable* TParseContextBase::getEditableVariable(const char* name) +{ + bool builtIn; + TSymbol* symbol = symbolTable.find(name, &builtIn); + + assert(symbol != nullptr); + if (symbol == nullptr) + return nullptr; + + if (builtIn) + makeEditable(symbol); + + return symbol->getAsVariable(); +} + // Select the best matching function for 'call' from 'candidateList'. // // Assumptions diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index dd58ef14..13f277d7 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -381,7 +381,9 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // If this is a variable or a block, check it and all it contains, but if this // is a member of an anonymous block, check the whole block, as the whole block // will need to be copied up if it contains an implicitly-sized array. - if (symbol->getType().containsImplicitlySizedArray() || (symbol->getAsAnonMember() && symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) + if (symbol->getType().containsImplicitlySizedArray() || + (symbol->getAsAnonMember() && + symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) makeEditable(symbol); } @@ -564,35 +566,11 @@ void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* b // effect all nodes sharing it. void TParseContext::makeEditable(TSymbol*& symbol) { - // copyUp() does a deep copy of the type. - symbol = symbolTable.copyUp(symbol); + TParseContextBase::makeEditable(symbol); - // Also, see if it's tied to IO resizing + // See if it's tied to IO resizing if (isIoResizeArray(symbol->getType())) ioArraySymbolResizeList.push_back(symbol); - - // Also, save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *symbol); -} - -// Return a writable version of the variable 'name'. -// -// Return nullptr if 'name' is not found. This should mean -// something is seriously wrong (e.g., compiler asking self for -// built-in that doesn't exist). -TVariable* TParseContext::getEditableVariable(const char* name) -{ - bool builtIn; - TSymbol* symbol = symbolTable.find(name, &builtIn); - - assert(symbol != nullptr); - if (symbol == nullptr) - return nullptr; - - if (builtIn) - makeEditable(symbol); - - return symbol->getAsVariable(); } // Return true if this is a geometry shader input array or tessellation control output array. diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index fba09eeb..eab78359 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -82,14 +82,14 @@ public: globalUniformBlock(nullptr) { } virtual ~TParseContextBase() { } - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); + virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); virtual void setLimits(const TBuiltInResource&) = 0; @@ -171,9 +171,11 @@ protected: // override this to set the language-specific name virtual const char* getGlobalUniformBlockName() { return ""; } virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } - void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, TPrefixType prefix, - va_list args); + virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, TPrefixType prefix, + va_list args); + virtual void makeEditable(TSymbol*&); + virtual TVariable* getEditableVariable(const char* name); }; // @@ -241,7 +243,6 @@ public: void handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void makeEditable(TSymbol*&); - TVariable* getEditableVariable(const char* name); bool isIoResizeArray(const TType&) const; void fixIoArraySize(const TSourceLoc&, TType&); void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index be1e23c1..b462e92f 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -249,19 +249,6 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s if (symbol && symbol->getNumExtensions()) requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); - if (symbol && symbol->isReadOnly()) { - // All shared things containing an implicitly sized array must be copied up - // on first use, so that all future references will share its array structure, - // so that editing the implicit size will effect all nodes consuming it, - // and so that editing the implicit size won't change the shared one. - // - // If this is a variable or a block, check it and all it contains, but if this - // is a member of an anonymous block, check the whole block, as the whole block - // will need to be copied up if it contains an implicitly-sized array. - if (symbol->getType().containsImplicitlySizedArray() || (symbol->getAsAnonMember() && symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) - makeEditable(symbol); - } - const TVariable* variable; const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; TIntermTyped* node = nullptr; @@ -335,9 +322,6 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, else { // at least one of base and index is variable... - if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) - handleIoResizeArrayAccess(loc, base); - if (base->getAsSymbolNode() && shouldFlatten(base->getType())) { if (index->getQualifier().storage != EvqConst) error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); @@ -381,125 +365,6 @@ void HlslParseContext::checkIndex(const TSourceLoc& /*loc*/, const TType& /*type // HLSL todo: any rules for index fixups? } -// Make a shared symbol have a non-shared version that can be edited by the current -// compile, such that editing its type will not change the shared version and will -// effect all nodes sharing it. -void HlslParseContext::makeEditable(TSymbol*& symbol) -{ - // copyUp() does a deep copy of the type. - symbol = symbolTable.copyUp(symbol); - - // Also, see if it's tied to IO resizing - if (isIoResizeArray(symbol->getType())) - ioArraySymbolResizeList.push_back(symbol); - - // Also, save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *symbol); -} - -TVariable* HlslParseContext::getEditableVariable(const char* name) -{ - bool builtIn; - TSymbol* symbol = symbolTable.find(name, &builtIn); - if (builtIn) - makeEditable(symbol); - - return symbol->getAsVariable(); -} - -// Return true if this is a geometry shader input array or tessellation control output array. -bool HlslParseContext::isIoResizeArray(const TType& type) const -{ - return type.isArray() && - ((language == EShLangGeometry && type.getQualifier().storage == EvqVaryingIn) || - (language == EShLangTessControl && type.getQualifier().storage == EvqVaryingOut && ! type.getQualifier().patch)); -} - -// If an array is not isIoResizeArray() but is an io array, make sure it has the right size -void HlslParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) -{ - if (! type.isArray() || type.getQualifier().patch || symbolTable.atBuiltInLevel()) - return; - - assert(! isIoResizeArray(type)); - - if (type.getQualifier().storage != EvqVaryingIn || type.getQualifier().patch) - return; - - if (language == EShLangTessControl || language == EShLangTessEvaluation) { - if (type.getOuterArraySize() != resources.maxPatchVertices) { - if (type.isExplicitlySizedArray()) - error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", ""); - type.changeOuterArraySize(resources.maxPatchVertices); - } - } -} - -// Handle a dereference of a geometry shader input array or tessellation control output array. -// See ioArraySymbolResizeList comment in ParseHelper.h. -// -void HlslParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TIntermTyped* base) -{ - TIntermSymbol* symbolNode = base->getAsSymbolNode(); - assert(symbolNode); - if (! symbolNode) - return; - - // fix array size, if it can be fixed and needs to be fixed (will allow variable indexing) - if (symbolNode->getType().isImplicitlySizedArray()) { - int newSize = getIoArrayImplicitSize(); - if (newSize > 0) - symbolNode->getWritableType().changeOuterArraySize(newSize); - } -} - -// If there has been an input primitive declaration (geometry shader) or an output -// number of vertices declaration(tessellation shader), make sure all input array types -// match it in size. Types come either from nodes in the AST or symbols in the -// symbol table. -// -// Types without an array size will be given one. -// Types already having a size that is wrong will get an error. -// -void HlslParseContext::checkIoArraysConsistency(const TSourceLoc& loc, bool tailOnly) -{ - int requiredSize = getIoArrayImplicitSize(); - if (requiredSize == 0) - return; - - const char* feature; - if (language == EShLangGeometry) - feature = TQualifier::getGeometryString(intermediate.getInputPrimitive()); - else if (language == EShLangTessControl) - feature = "vertices"; - else - feature = "unknown"; - - if (tailOnly) { - checkIoArrayConsistency(loc, requiredSize, feature, ioArraySymbolResizeList.back()->getWritableType(), ioArraySymbolResizeList.back()->getName()); - return; - } - - for (size_t i = 0; i < ioArraySymbolResizeList.size(); ++i) - checkIoArrayConsistency(loc, requiredSize, feature, ioArraySymbolResizeList[i]->getWritableType(), ioArraySymbolResizeList[i]->getName()); -} - -int HlslParseContext::getIoArrayImplicitSize() const -{ - if (language == EShLangGeometry) - return TQualifier::mapGeometryToSize(intermediate.getInputPrimitive()); - else if (language == EShLangTessControl) - return intermediate.getVertices() != TQualifier::layoutNotSet ? intermediate.getVertices() : 0; - else - return 0; -} - -void HlslParseContext::checkIoArrayConsistency(const TSourceLoc& /*loc*/, int requiredSize, const char* /*feature*/, TType& type, const TString& /*name*/) -{ - if (type.isImplicitlySizedArray()) - type.changeOuterArraySize(requiredSize); -} - // Handle seeing a binary node with a math operation. TIntermTyped* HlslParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right) { @@ -2253,22 +2118,6 @@ TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunct if (type.isRuntimeSizedArray()) { // Create a unary op and let the back end handle it return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - } else if (type.isImplicitlySizedArray()) { - if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) { - // We could be between a layout declaration that gives a built-in io array implicit size and - // a user redeclaration of that array, meaning we have to substitute its implicit size here - // without actually redeclaring the array. (It is an error to use a member before the - // redeclaration, but not an error to use the array name itself.) - const TString& name = intermNode->getAsSymbolNode()->getName(); - if (name == "gl_in" || name == "gl_out") - length = getIoArrayImplicitSize(); - } - if (length == 0) { - if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) - error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier"); - else - error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); - } } else length = type.getOuterArraySize(); } else if (type.isMatrix()) @@ -3294,14 +3143,6 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, symbolTable.insert(*symbol); newDeclaration = true; - if (! symbolTable.atBuiltInLevel()) { - if (isIoResizeArray(type)) { - ioArraySymbolResizeList.push_back(symbol); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, symbol->getWritableType()); - } - return; } if (symbol->getAsAnonMember()) { @@ -3326,15 +3167,10 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, if (existingType.isExplicitlySizedArray()) { // be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size - if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize())) - error(loc, "redeclaration of array with size", identifier.c_str(), ""); return; } existingType.updateArraySizes(type); - - if (isIoResizeArray(type)) - checkIoArraysConsistency(loc); } void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) @@ -3519,13 +3355,6 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n symbolTable.insert(*block); - // Tracking for implicit sizing of array - if (isIoResizeArray(block->getType())) { - ioArraySymbolResizeList.push_back(block); - checkIoArraysConsistency(loc, true); - } else if (block->getType().isArray()) - fixIoArraySize(loc, block->getWritableType()); - // Save it in the AST for linker use. intermediate.addSymbolLinkageNode(linkage, *block); } @@ -4723,12 +4552,6 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS return; } - if (isIoResizeArray(blockType)) { - ioArraySymbolResizeList.push_back(&variable); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, variable.getWritableType()); - // Save it in the AST for linker use. intermediate.addSymbolLinkageNode(linkage, variable); } @@ -4933,9 +4756,6 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) { assert(language == EShLangTessControl || language == EShLangGeometry); // const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; - - if (language == EShLangTessControl) - checkIoArraysConsistency(loc); } if (publicType.shaderQualifiers.invocations != TQualifier::layoutNotSet) { if (! intermediate.setInvocations(publicType.shaderQualifiers.invocations)) @@ -4951,11 +4771,6 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, case ElgTrianglesAdjacency: case ElgQuads: case ElgIsolines: - if (intermediate.setInputPrimitive(publicType.shaderQualifiers.geometry)) { - if (language == EShLangGeometry) - checkIoArraysConsistency(loc); - } else - error(loc, "cannot change previously set input primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); break; default: error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index c7568b2a..c8ebdbe8 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -63,15 +63,6 @@ public: TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void checkIndex(const TSourceLoc&, const TType&, int& index); - void makeEditable(TSymbol*&); - TVariable* getEditableVariable(const char* name); - bool isIoResizeArray(const TType&) const; - void fixIoArraySize(const TSourceLoc&, TType&); - void handleIoResizeArrayAccess(const TSourceLoc&, TIntermTyped* base); - void checkIoArraysConsistency(const TSourceLoc&, bool tailOnly = false); - int getIoArrayImplicitSize() const; - void checkIoArrayConsistency(const TSourceLoc&, int requiredSize, const char* feature, TType&, const TString&); - TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); @@ -168,9 +159,6 @@ protected: TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); - void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, TPrefixType prefix, - va_list args); // Array and struct flattening bool shouldFlatten(const TType& type) const { return shouldFlattenIO(type) || shouldFlattenUniform(type); } From 8ffc36aecc3e8eb5d97bdef904c7f1d2644d0096 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 21 Sep 2016 14:19:40 -0600 Subject: [PATCH 173/217] add reflection queries to return a TType. Fix minor issue with interface names. - Add new queries: TProgram::getUniformTType and getUniformBlockTType, which return a const TType*, or nullptr on a bad index. These are valid for any source language. - Interface name for HLSL cbuffers is taken from the (only) available declaration name, whereas before it was always an empty string, which caused some troubles with reflection mapping them all to the same index slot. This also makes it appear in the SPIR-V binary instead of an empty string. - Print the binding as part of the reflection textual dump. - TType::clone becomes const. Needed to call it from a const method, and anyway it doesn't change the object it's called on. - Because the TObjectReflection constructor is called with a TType *reference* (not pointer) so that it's guaranteed to pass in a type, and the "badReflection" value should use a nullptr there, that now has a dedicated static method to obtain the bad value. It uses a private constructor, so external users can't create one with a nullptr type. --- .gitignore | 2 + Test/baseResults/hlsl.buffer.frag.out | 88 ++++----- Test/baseResults/hlsl.layout.frag.out | 36 ++-- .../hlsl.reflection.binding.frag.out | 23 +++ .../hlsl.reflection.binding.vert.out | 15 ++ Test/baseResults/hlsl.reflection.vert.out | 147 +++++++------- Test/baseResults/reflection.vert.out | 182 +++++++++--------- .../spv.buffer.autoassign.frag.out | 40 ++-- Test/hlsl.reflection.binding.frag | 34 ++++ Test/runtests | 3 + glslang/Include/Types.h | 2 +- glslang/MachineIndependent/ShaderLang.cpp | 28 +-- glslang/MachineIndependent/reflection.cpp | 19 +- glslang/MachineIndependent/reflection.h | 32 ++- glslang/Public/ShaderLang.h | 33 ++-- hlsl/hlslParseHelper.cpp | 6 +- 16 files changed, 407 insertions(+), 283 deletions(-) create mode 100644 Test/baseResults/hlsl.reflection.binding.frag.out create mode 100644 Test/baseResults/hlsl.reflection.binding.vert.out create mode 100644 Test/hlsl.reflection.binding.frag diff --git a/.gitignore b/.gitignore index 0faf59c0..30889ac7 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ build/ Test/localResults/ Test/multiThread.out Test/singleThread.out +Test/vert.spv +Test/frag.spv External/googletest diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 97ea9a5b..2eb1f9ce 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -101,23 +101,23 @@ gl_FragCoord origin is upper left Name 22 "" MemberName 22 0 "v2" Name 24 "" - Name 28 "" - MemberName 28 0 "v3" - MemberName 28 1 "i3" + Name 28 "cbufName" + MemberName 28(cbufName) 0 "v3" + MemberName 28(cbufName) 1 "i3" Name 30 "" - Name 35 "" - MemberName 35 0 "v4" - MemberName 35 1 "i4" - MemberName 35 2 "f1" - MemberName 35 3 "f3" - MemberName 35 4 "f4" - MemberName 35 5 "f5" - MemberName 35 6 "f6" - MemberName 35 7 "f7" - MemberName 35 8 "m1" - MemberName 35 9 "m2" - MemberName 35 10 "m3" - MemberName 35 11 "m4" + Name 35 "tbufName" + MemberName 35(tbufName) 0 "v4" + MemberName 35(tbufName) 1 "i4" + MemberName 35(tbufName) 2 "f1" + MemberName 35(tbufName) 3 "f3" + MemberName 35(tbufName) 4 "f4" + MemberName 35(tbufName) 5 "f5" + MemberName 35(tbufName) 6 "f6" + MemberName 35(tbufName) 7 "f7" + MemberName 35(tbufName) 8 "m1" + MemberName 35(tbufName) 9 "m2" + MemberName 35(tbufName) 10 "m3" + MemberName 35(tbufName) 11 "m4" Name 37 "" Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 @@ -127,32 +127,32 @@ gl_FragCoord origin is upper left MemberDecorate 22 0 Offset 0 Decorate 22 BufferBlock Decorate 24 DescriptorSet 0 - MemberDecorate 28 0 Offset 0 - MemberDecorate 28 1 Offset 20 - Decorate 28 Block + MemberDecorate 28(cbufName) 0 Offset 0 + MemberDecorate 28(cbufName) 1 Offset 20 + Decorate 28(cbufName) Block Decorate 30 DescriptorSet 10 Decorate 30 Binding 2 - MemberDecorate 35 0 Offset 16 - MemberDecorate 35 1 Offset 48 - MemberDecorate 35 2 Offset 60 - MemberDecorate 35 3 Offset 64 - MemberDecorate 35 4 Offset 68 - MemberDecorate 35 5 Offset 72 - MemberDecorate 35 6 Offset 76 - MemberDecorate 35 7 Offset 80 - MemberDecorate 35 8 RowMajor - MemberDecorate 35 8 Offset 96 - MemberDecorate 35 8 MatrixStride 16 - MemberDecorate 35 9 ColMajor - MemberDecorate 35 9 Offset 160 - MemberDecorate 35 9 MatrixStride 16 - MemberDecorate 35 10 RowMajor - MemberDecorate 35 10 Offset 208 - MemberDecorate 35 10 MatrixStride 16 - MemberDecorate 35 11 RowMajor - MemberDecorate 35 11 Offset 272 - MemberDecorate 35 11 MatrixStride 16 - Decorate 35 BufferBlock + MemberDecorate 35(tbufName) 0 Offset 16 + MemberDecorate 35(tbufName) 1 Offset 48 + MemberDecorate 35(tbufName) 2 Offset 60 + MemberDecorate 35(tbufName) 3 Offset 64 + MemberDecorate 35(tbufName) 4 Offset 68 + MemberDecorate 35(tbufName) 5 Offset 72 + MemberDecorate 35(tbufName) 6 Offset 76 + MemberDecorate 35(tbufName) 7 Offset 80 + MemberDecorate 35(tbufName) 8 RowMajor + MemberDecorate 35(tbufName) 8 Offset 96 + MemberDecorate 35(tbufName) 8 MatrixStride 16 + MemberDecorate 35(tbufName) 9 ColMajor + MemberDecorate 35(tbufName) 9 Offset 160 + MemberDecorate 35(tbufName) 9 MatrixStride 16 + MemberDecorate 35(tbufName) 10 RowMajor + MemberDecorate 35(tbufName) 10 Offset 208 + MemberDecorate 35(tbufName) 10 MatrixStride 16 + MemberDecorate 35(tbufName) 11 RowMajor + MemberDecorate 35(tbufName) 11 Offset 272 + MemberDecorate 35(tbufName) 11 MatrixStride 16 + Decorate 35(tbufName) BufferBlock Decorate 37 DescriptorSet 0 Decorate 37 Binding 8 2: TypeVoid @@ -172,12 +172,12 @@ gl_FragCoord origin is upper left 22: TypeStruct 7(fvec4) 23: TypePointer Uniform 22(struct) 24: 23(ptr) Variable Uniform - 28: TypeStruct 7(fvec4) 16(int) - 29: TypePointer Uniform 28(struct) + 28(cbufName): TypeStruct 7(fvec4) 16(int) + 29: TypePointer Uniform 28(cbufName) 30: 29(ptr) Variable Uniform 34: TypeMatrix 7(fvec4) 3 - 35: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 - 36: TypePointer Uniform 35(struct) + 35(tbufName): TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 + 36: TypePointer Uniform 35(tbufName) 37: 36(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index ef096f35..e8fab995 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -77,23 +77,23 @@ gl_FragCoord origin is upper left Name 4 "main" Name 11 "PixelShaderFunction(vf4;" Name 10 "input" - Name 14 "" - MemberName 14 0 "v1" + Name 14 "tbufName" + MemberName 14(tbufName) 0 "v1" Name 16 "" - Name 23 "" - MemberName 23 0 "v5" + Name 23 "tbufName2" + MemberName 23(tbufName2) 0 "v5" Name 25 "" - Name 30 "" - MemberName 30 0 "v1PostLayout" + Name 30 "tbufName2" + MemberName 30(tbufName2) 0 "v1PostLayout" Name 32 "" - MemberDecorate 14 0 Offset 16 - Decorate 14 BufferBlock + MemberDecorate 14(tbufName) 0 Offset 16 + Decorate 14(tbufName) BufferBlock Decorate 16 DescriptorSet 3 Decorate 16 Binding 5 - MemberDecorate 23 0 Offset 0 - Decorate 23 BufferBlock - MemberDecorate 30 0 Offset 16 - Decorate 30 BufferBlock + MemberDecorate 23(tbufName2) 0 Offset 0 + Decorate 23(tbufName2) BufferBlock + MemberDecorate 30(tbufName2) 0 Offset 16 + Decorate 30(tbufName2) BufferBlock Decorate 32 DescriptorSet 4 Decorate 32 Binding 7 Decorate 38 SpecId 17 @@ -103,18 +103,18 @@ gl_FragCoord origin is upper left 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeStruct 7(fvec4) - 15: TypePointer Uniform 14(struct) + 14(tbufName): TypeStruct 7(fvec4) + 15: TypePointer Uniform 14(tbufName) 16: 15(ptr) Variable Uniform 17: TypeInt 32 1 18: 17(int) Constant 0 19: TypePointer Uniform 7(fvec4) - 23: TypeStruct 7(fvec4) - 24: TypePointer PushConstant 23(struct) + 23(tbufName2): TypeStruct 7(fvec4) + 24: TypePointer PushConstant 23(tbufName2) 25: 24(ptr) Variable PushConstant 26: TypePointer PushConstant 7(fvec4) - 30: TypeStruct 7(fvec4) - 31: TypePointer Uniform 30(struct) + 30(tbufName2): TypeStruct 7(fvec4) + 31: TypePointer Uniform 30(tbufName2) 32: 31(ptr) Variable Uniform 38: 17(int) SpecConstant 10 4(main): 2 Function None 3 diff --git a/Test/baseResults/hlsl.reflection.binding.frag.out b/Test/baseResults/hlsl.reflection.binding.frag.out new file mode 100644 index 00000000..e26e0f6c --- /dev/null +++ b/Test/baseResults/hlsl.reflection.binding.frag.out @@ -0,0 +1,23 @@ +hlsl.reflection.binding.frag + +Linked fragment stage: + + +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 +c1_a: offset 0, type 8b52, size 1, index 0, binding -1 +c1_b: offset 16, type 1404, size 1, index 0, binding -1 +c1_c: offset 20, type 1406, size 1, index 0, binding -1 +c2_a: offset 0, type 8b52, size 1, index 1, binding -1 +c2_b: offset 16, type 1404, size 1, index 1, binding -1 +c2_c: offset 20, type 1406, size 1, index 1, binding -1 + +Uniform block reflection: +cbuff1: offset -1, type ffffffff, size 24, index -1, binding 2 +cbuff2: offset -1, type ffffffff, size 24, index -1, binding 3 + +Vertex attribute reflection: + diff --git a/Test/baseResults/hlsl.reflection.binding.vert.out b/Test/baseResults/hlsl.reflection.binding.vert.out new file mode 100644 index 00000000..f1368df9 --- /dev/null +++ b/Test/baseResults/hlsl.reflection.binding.vert.out @@ -0,0 +1,15 @@ +hlsl.reflection.binding.vert + +Linked vertex stage: + + +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 + +Uniform block reflection: + +Vertex attribute reflection: + diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out index 4ed4ddf6..cbce25ea 100644 --- a/Test/baseResults/hlsl.reflection.vert.out +++ b/Test/baseResults/hlsl.reflection.vert.out @@ -4,78 +4,85 @@ Linked vertex stage: Uniform reflection: -anonMember3: offset 80, type 8b52, size 1, index 0 -s.a: offset 0, type 1404, size 1, index 1 -scalar: offset 12, type 1404, size 1, index 0 -m23: offset 16, type 8b67, size 1, index 0 -scalarAfterm23: offset 48, type 1404, size 1, index 0 -c_m23: offset 16, type 8b67, size 1, index 0 -c_scalarAfterm23: offset 48, type 1404, size 1, index 0 -scalarBeforeArray: offset 96, type 1404, size 1, index 0 -floatArray: offset 112, type 1406, size 5, index 0 -scalarAfterArray: offset 192, type 1404, size 1, index 0 -memfloat2: offset 48, type 8b50, size 1, index 0 -memf1: offset 56, type 1406, size 1, index 0 -memf2: offset 60, type 8b56, size 1, index 0 -memf3: offset 64, type 1404, size 1, index 0 -memfloat2a: offset 72, type 8b50, size 1, index 0 -m22: offset 80, type 8b5a, size 7, index 0 -dm22: offset 32, type 8b5a, size 4, index 1 -foo.n1.a: offset 0, type 1406, size 1, index 0 -foo.n2.b: offset 16, type 1406, size 1, index 0 -foo.n2.c: offset 20, type 1406, size 1, index 0 -foo.n2.d: offset 24, type 1406, size 1, index 0 -deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1 -deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1 -deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1 -deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1 -deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1 -deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1 -deepC.iv4: offset 1568, type 8b52, size 1, index 1 -deepC.d2.i: offset 1568, type 1404, size 1, index 1 -deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1 -deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1 -deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1 -deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1 -deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1 -deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1 -deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1 -deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1 -deepC.v3: offset 1568, type 8b54, size 1, index 1 -deepD[0].iv4: offset 2480, type 8b52, size 1, index 1 -deepD[0].d2.i: offset 2480, type 1404, size 1, index 1 -deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1 -deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1 -deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1 -deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1 -deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1 -deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1 -deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1 -deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1 -deepD[0].v3: offset 2480, type 8b54, size 1, index 1 -deepD[1].iv4: offset 2480, type 8b52, size 1, index 1 -deepD[1].d2.i: offset 2480, type 1404, size 1, index 1 -deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1 -deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1 -deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1 -deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1 -deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1 -deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1 -deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1 -deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1 -deepD[1].v3: offset 2480, type 8b54, size 1, index 1 -foo: offset 0, type 1406, size 1, index 0 -anonMember1: offset 0, type 8b51, size 1, index 0 -uf1: offset 16, type 1406, size 1, index 1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset 0, type 1404, size 1, index 1, binding -1 +ablock.scalar: offset 12, type 1404, size 1, index 2, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 3, binding -1 +c_scalarAfterm23: offset 48, type 1404, size 1, index 3, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +ablock.memfloat2: offset 48, type 8b50, size 1, index 2, binding -1 +ablock.memf1: offset 56, type 1406, size 1, index 2, binding -1 +ablock.memf2: offset 60, type 8b56, size 1, index 2, binding -1 +ablock.memf3: offset 64, type 1404, size 1, index 2, binding -1 +ablock.memfloat2a: offset 72, type 8b50, size 1, index 2, binding -1 +ablock.m22: offset 80, type 8b5a, size 7, index 2, binding -1 +dm22: offset 32, type 8b5a, size 4, index 1, binding -1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nest.foo.n1.a: offset 0, type 1406, size 1, index 4, binding -1 +nest.foo.n2.b: offset 16, type 1406, size 1, index 4, binding -1 +nest.foo.n2.c: offset 20, type 1406, size 1, index 4, binding -1 +nest.foo.n2.d: offset 24, type 1406, size 1, index 4, binding -1 +deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1 +deepC.d2.i: offset 1568, type 1404, size 1, index 1, binding -1 +deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.v3: offset 1568, type 8b54, size 1, index 1, binding -1 +deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[0].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +deepD[1].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[1].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +arrBl.foo: offset 0, type 1406, size 1, index 5, binding -1 +arrBl2.foo: offset 0, type 1406, size 1, index 6, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset 16, type 1406, size 1, index 1, binding -1 Uniform block reflection: -: offset -1, type ffffffff, size 496, index -1 -$Global: offset -1, type ffffffff, size 3088, index -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +$Global: offset -1, type ffffffff, size 3088, index -1, binding -1 +ablock: offset -1, type ffffffff, size 304, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 +nest: offset -1, type ffffffff, size 32, index -1, binding -1 +arrBl: offset -1, type ffffffff, size 4, index -1, binding -1 +arrBl2: offset -1, type ffffffff, size 4, index -1, binding -1 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0 -attributeFloat2: offset 0, type 8b50, size 0, index 0 -attributeFloat3: offset 0, type 8b51, size 0, index 0 -attributeFloat4: offset 0, type 8b52, size 0, index 0 -attributeMat4: offset 0, type 8b5c, size 0, index 0 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 diff --git a/Test/baseResults/reflection.vert.out b/Test/baseResults/reflection.vert.out index 24ee7809..1e4c24fa 100644 --- a/Test/baseResults/reflection.vert.out +++ b/Test/baseResults/reflection.vert.out @@ -6,99 +6,99 @@ Linked vertex stage: Uniform reflection: -image_ui2D: offset -1, type 9063, size 1, index -1 -sampler_2D: offset -1, type 8b5e, size 1, index -1 -sampler_2DMSArray: offset -1, type 910b, size 1, index -1 -anonMember3: offset 80, type 8b52, size 1, index 0 -s.a: offset -1, type 1404, size 1, index -1 -named.scalar: offset 12, type 1404, size 1, index 1 -m23: offset 16, type 8b67, size 1, index 0 -scalarAfterm23: offset 48, type 1404, size 1, index 0 -c_m23: offset 16, type 8b67, size 1, index 2 -c_scalarAfterm23: offset 64, type 1404, size 1, index 2 -scalarBeforeArray: offset 96, type 1404, size 1, index 0 -floatArray: offset 112, type 1406, size 5, index 0 -scalarAfterArray: offset 192, type 1404, size 1, index 0 -named.memvec2: offset 48, type 8b50, size 1, index 1 -named.memf1: offset 56, type 1406, size 1, index 1 -named.memf2: offset 60, type 8b56, size 1, index 1 -named.memf3: offset 64, type 1404, size 1, index 1 -named.memvec2a: offset 72, type 8b50, size 1, index 1 -named.m22: offset 80, type 8b5a, size 7, index 1 -dm22: offset -1, type 8b5a, size 4, index -1 -m22: offset 208, type 8b5a, size 3, index 0 -nested.foo.n1.a: offset 0, type 1406, size 1, index 3 -nested.foo.n2.b: offset 16, type 1406, size 1, index 3 -nested.foo.n2.c: offset 20, type 1406, size 1, index 3 -nested.foo.n2.d: offset 24, type 1406, size 1, index 3 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepC[1].v3: offset -1, type 8b54, size 1, index -1 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1 -abl.foo: offset 0, type 1406, size 1, index 7 -abl2.foo: offset 0, type 1406, size 1, index 11 -anonMember1: offset 0, type 8b51, size 1, index 0 -uf1: offset -1, type 1406, size 1, index -1 -uf2: offset -1, type 1406, size 1, index -1 -named.member3: offset 32, type 8b52, size 1, index 1 +image_ui2D: offset -1, type 9063, size 1, index -1, binding -1 +sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1 +sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset -1, type 1404, size 1, index -1, binding -1 +named.scalar: offset 12, type 1404, size 1, index 1, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1 +c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1 +named.memf1: offset 56, type 1406, size 1, index 1, binding -1 +named.memf2: offset 60, type 8b56, size 1, index 1, binding -1 +named.memf3: offset 64, type 1404, size 1, index 1, binding -1 +named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1 +named.m22: offset 80, type 8b5a, size 7, index 1, binding -1 +dm22: offset -1, type 8b5a, size 4, index -1, binding -1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 +nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 +nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 +nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 +deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +abl.foo: offset 0, type 1406, size 1, index 7, binding -1 +abl2.foo: offset 0, type 1406, size 1, index 11, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset -1, type 1406, size 1, index -1, binding -1 +uf2: offset -1, type 1406, size 1, index -1, binding -1 +named.member3: offset 32, type 8b52, size 1, index 1, binding -1 Uniform block reflection: -nameless: offset -1, type ffffffff, size 496, index -1 -named: offset -1, type ffffffff, size 304, index -1 -c_nameless: offset -1, type ffffffff, size 112, index -1 -nested: offset -1, type ffffffff, size 32, index -1 -abl[0]: offset -1, type ffffffff, size 4, index -1 -abl[1]: offset -1, type ffffffff, size 4, index -1 -abl[2]: offset -1, type ffffffff, size 4, index -1 -abl[3]: offset -1, type ffffffff, size 4, index -1 -abl2[0]: offset -1, type ffffffff, size 4, index -1 -abl2[1]: offset -1, type ffffffff, size 4, index -1 -abl2[2]: offset -1, type ffffffff, size 4, index -1 -abl2[3]: offset -1, type ffffffff, size 4, index -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +named: offset -1, type ffffffff, size 304, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1 +nested: offset -1, type ffffffff, size 32, index -1, binding -1 +abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0 -attributeFloat2: offset 0, type 8b50, size 0, index 0 -attributeFloat3: offset 0, type 8b51, size 0, index 0 -attributeFloat4: offset 0, type 8b52, size 0, index 0 -attributeMat4: offset 0, type 8b5c, size 0, index 0 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out index 4f5d5a60..1d94707c 100644 --- a/Test/baseResults/spv.buffer.autoassign.frag.out +++ b/Test/baseResults/spv.buffer.autoassign.frag.out @@ -16,28 +16,28 @@ Linked fragment stage: Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "psout" - Name 13 "" - MemberName 13 0 "g_a" - MemberName 13 1 "g_b" + Name 13 "MyUB1" + MemberName 13(MyUB1) 0 "g_a" + MemberName 13(MyUB1) 1 "g_b" Name 15 "" - Name 25 "" - MemberName 25 0 "g_c" + Name 25 "MyUB2" + MemberName 25(MyUB2) 0 "g_c" Name 27 "" - Name 31 "" - MemberName 31 0 "g_d" + Name 31 "MyUB3" + MemberName 31(MyUB3) 0 "g_d" Name 33 "" Name 41 "Color" - MemberDecorate 13 0 Offset 0 - MemberDecorate 13 1 Offset 4 - Decorate 13 Block + MemberDecorate 13(MyUB1) 0 Offset 0 + MemberDecorate 13(MyUB1) 1 Offset 4 + Decorate 13(MyUB1) Block Decorate 15 DescriptorSet 0 Decorate 15 Binding 20 - MemberDecorate 25 0 Offset 0 - Decorate 25 Block + MemberDecorate 25(MyUB2) 0 Offset 0 + Decorate 25(MyUB2) Block Decorate 27 DescriptorSet 0 Decorate 27 Binding 15 - MemberDecorate 31 0 Offset 0 - Decorate 31 Block + MemberDecorate 31(MyUB3) 0 Offset 0 + Decorate 31(MyUB3) Block Decorate 33 DescriptorSet 0 Decorate 33 Binding 16 Decorate 41(Color) Location 0 @@ -49,17 +49,17 @@ Linked fragment stage: 9: TypePointer Function 8(PS_OUTPUT) 11: TypeInt 32 1 12: 11(int) Constant 0 - 13: TypeStruct 6(float) 11(int) - 14: TypePointer Uniform 13(struct) + 13(MyUB1): TypeStruct 6(float) 11(int) + 14: TypePointer Uniform 13(MyUB1) 15: 14(ptr) Variable Uniform 16: TypePointer Uniform 6(float) 19: 11(int) Constant 1 20: TypePointer Uniform 11(int) - 25: TypeStruct 6(float) - 26: TypePointer Uniform 25(struct) + 25(MyUB2): TypeStruct 6(float) + 26: TypePointer Uniform 25(MyUB2) 27: 26(ptr) Variable Uniform - 31: TypeStruct 6(float) - 32: TypePointer Uniform 31(struct) + 31(MyUB3): TypeStruct 6(float) + 32: TypePointer Uniform 31(MyUB3) 33: 32(ptr) Variable Uniform 38: TypePointer Function 7(fvec4) 40: TypePointer Output 7(fvec4) diff --git a/Test/hlsl.reflection.binding.frag b/Test/hlsl.reflection.binding.frag new file mode 100644 index 00000000..25b22c97 --- /dev/null +++ b/Test/hlsl.reflection.binding.frag @@ -0,0 +1,34 @@ + +uniform float u1 : register(b2); + +uniform SamplerState s1 : register(s5); +uniform SamplerState s1a[3] : register(s6); + +uniform Texture1D t1 : register(t15); +uniform Texture1D t1a[3] : register(t16); + +cbuffer cbuff1 : register(b2) { + float4 c1_a; + int c1_b; + float c1_c; +}; + +cbuffer cbuff2 : register(b3) { + float4 c2_a; + int c2_b; + float c2_c; +}; + +struct PS_OUTPUT +{ + float4 Color : Sv_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = + t1.Sample(s1, 0.3) + + t1a[0].Sample(s1a[0], 0.3) + + c1_a + c1_b + c1_c + + c2_a + c2_b + c2_c; +} diff --git a/Test/runtests b/Test/runtests index 18513380..06403912 100755 --- a/Test/runtests +++ b/Test/runtests @@ -33,6 +33,9 @@ $EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 $EXE -D -e flizv -l -q -C -V hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 +$EXE -D -e main -l -q -C -V hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out +diff -b $BASEDIR/hlsl.reflection.binding.frag.out $TARGETDIR/hlsl.reflection.binding.frag.out || HASERROR=1 + # # multi-threaded test diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 5aa59c67..85a37df2 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1202,7 +1202,7 @@ public: typeName = NewPoolTString(copyOf.typeName->c_str()); } - TType* clone() + TType* clone() const { TType *newType = new TType(); newType->deepCopy(*this); diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index d6ff7825..e00638b6 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1694,19 +1694,21 @@ bool TProgram::buildReflection() return true; } -int TProgram::getNumLiveUniformVariables() { return reflection->getNumUniforms(); } -int TProgram::getNumLiveUniformBlocks() { return reflection->getNumUniformBlocks(); } -const char* TProgram::getUniformName(int index) { return reflection->getUniform(index).name.c_str(); } -const char* TProgram::getUniformBlockName(int index) { return reflection->getUniformBlock(index).name.c_str(); } -int TProgram::getUniformBlockSize(int index) { return reflection->getUniformBlock(index).size; } -int TProgram::getUniformIndex(const char* name) { return reflection->getIndex(name); } -int TProgram::getUniformBlockIndex(int index) { return reflection->getUniform(index).index; } -int TProgram::getUniformType(int index) { return reflection->getUniform(index).glDefineType; } -int TProgram::getUniformBufferOffset(int index) { return reflection->getUniform(index).offset; } -int TProgram::getUniformArraySize(int index) { return reflection->getUniform(index).size; } -int TProgram::getNumLiveAttributes() { return reflection->getNumAttributes(); } -const char* TProgram::getAttributeName(int index) { return reflection->getAttribute(index).name.c_str(); } -int TProgram::getAttributeType(int index) { return reflection->getAttribute(index).glDefineType; } +int TProgram::getNumLiveUniformVariables() const { return reflection->getNumUniforms(); } +int TProgram::getNumLiveUniformBlocks() const { return reflection->getNumUniformBlocks(); } +const char* TProgram::getUniformName(int index) const { return reflection->getUniform(index).name.c_str(); } +const char* TProgram::getUniformBlockName(int index) const { return reflection->getUniformBlock(index).name.c_str(); } +int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; } +int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); } +int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; } +int TProgram::getUniformType(int index) const { return reflection->getUniform(index).glDefineType; } +int TProgram::getUniformBufferOffset(int index) const { return reflection->getUniform(index).offset; } +int TProgram::getUniformArraySize(int index) const { return reflection->getUniform(index).size; } +int TProgram::getNumLiveAttributes() const { return reflection->getNumAttributes(); } +const char* TProgram::getAttributeName(int index) const { return reflection->getAttribute(index).name.c_str(); } +int TProgram::getAttributeType(int index) const { return reflection->getAttribute(index).glDefineType; } +const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); } +const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); } void TProgram::dumpReflection() { reflection->dump(); } diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index ca81458b..31bd1725 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -109,7 +109,7 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToAttribute.size(); - reflection.indexToAttribute.push_back(TObjectReflection(name, 0, mapToGlType(type), 0, 0)); + reflection.indexToAttribute.push_back(TObjectReflection(name, type, 0, mapToGlType(type), 0, 0)); } } } @@ -245,7 +245,8 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToUniform.size(); - reflection.indexToUniform.push_back(TObjectReflection(name, offset, mapToGlType(*terminalType), arraySize, blockIndex)); + reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, mapToGlType(*terminalType), + arraySize, blockIndex)); } else if (arraySize > 1) { int& reflectedArraySize = reflection.indexToUniform[it->second].size; reflectedArraySize = std::max(arraySize, reflectedArraySize); @@ -296,12 +297,18 @@ public: if (block) { offset = 0; anonymous = IsAnonymous(base->getName()); + + const TString& blockName = base->getType().getTypeName(); + if (base->getType().isArray()) { + TType derefType(base->getType(), 0); + assert(! anonymous); for (int e = 0; e < base->getType().getCumulativeArraySize(); ++e) - blockIndex = addBlockName(base->getType().getTypeName() + "[" + String(e) + "]", getBlockSize(base->getType())); + blockIndex = addBlockName(blockName + "[" + String(e) + "]", derefType, + getBlockSize(base->getType())); } else - blockIndex = addBlockName(base->getType().getTypeName(), getBlockSize(base->getType())); + blockIndex = addBlockName(blockName, base->getType(), getBlockSize(base->getType())); } // Process the dereference chain, backward, accumulating the pieces for later forward traversal. @@ -334,14 +341,14 @@ public: blowUpActiveAggregate(base->getType(), baseName, derefs, derefs.begin(), offset, blockIndex, arraySize); } - int addBlockName(const TString& name, int size) + int addBlockName(const TString& name, const TType& type, int size) { int blockIndex; TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (reflection.nameToIndex.find(name) == reflection.nameToIndex.end()) { blockIndex = (int)reflection.indexToUniformBlock.size(); reflection.nameToIndex[name] = blockIndex; - reflection.indexToUniformBlock.push_back(TObjectReflection(name, -1, -1, size, -1)); + reflection.indexToUniformBlock.push_back(TObjectReflection(name, type, -1, -1, size, -1)); } else blockIndex = it->second; diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h index 8880602c..13f5177c 100644 --- a/glslang/MachineIndependent/reflection.h +++ b/glslang/MachineIndependent/reflection.h @@ -1,5 +1,5 @@ // -//Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // //All rights reserved. // @@ -37,6 +37,7 @@ #define _REFLECTION_INCLUDED #include "../Public/ShaderLang.h" +#include "../Include/Types.h" #include #include @@ -54,20 +55,41 @@ class TReflectionTraverser; // Data needed for just a single object at the granularity exchanged by the reflection API class TObjectReflection { public: - TObjectReflection(const TString& pName, int pOffset, int pGLDefineType, int pSize, int pIndex) : - name(pName), offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } - void dump() const { printf("%s: offset %d, type %x, size %d, index %d\n", name.c_str(), offset, glDefineType, size, index); } + TObjectReflection(const TString& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex) : + name(pName), type(pType.clone()), + offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } + + void dump() const { + printf("%s: offset %d, type %x, size %d, index %d, binding %d\n", + name.c_str(), offset, glDefineType, size, index, getBinding() ); + } + + const TType* const getType() const { return type; } + TString name; int offset; int glDefineType; int size; // data size in bytes for a block, array size for a (non-block) object that's an array int index; + + static TObjectReflection badReflection() { return TObjectReflection(); } + +protected: + int getBinding() const { + if (type == nullptr || type->getQualifier().layoutBinding == TQualifier::layoutBindingEnd) + return -1; + return type->getQualifier().layoutBinding; + } + + TObjectReflection() : type(nullptr), offset(-1), glDefineType(-1), size(-1), index(-1) { } + + const TType* type; }; // The full reflection database class TReflection { public: - TReflection() : badReflection("__bad__", -1, -1, -1, -1) {} + TReflection() : badReflection(TObjectReflection::badReflection()) { } virtual ~TReflection() {} // grow the reflection stage by stage diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 496e6d4d..6b894c19 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -1,5 +1,7 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013-2016 LunarG, Inc. +// //All rights reserved. // //Redistribution and use in source and binary forms, with or without @@ -101,6 +103,8 @@ typedef enum { namespace glslang { +class TType; + typedef enum { EShSourceNone, EShSourceGlsl, @@ -461,19 +465,22 @@ public: // Reflection Interface bool buildReflection(); // call first, to do liveness analysis, index mapping, etc.; returns false on failure - int getNumLiveUniformVariables(); // can be used for glGetProgramiv(GL_ACTIVE_UNIFORMS) - int getNumLiveUniformBlocks(); // can be used for glGetProgramiv(GL_ACTIVE_UNIFORM_BLOCKS) - const char* getUniformName(int index); // can be used for "name" part of glGetActiveUniform() - const char* getUniformBlockName(int blockIndex); // can be used for glGetActiveUniformBlockName() - int getUniformBlockSize(int blockIndex); // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) - int getUniformIndex(const char* name); // can be used for glGetUniformIndices() - int getUniformBlockIndex(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) - int getUniformType(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) - int getUniformBufferOffset(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) - int getUniformArraySize(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) - int getNumLiveAttributes(); // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) - const char *getAttributeName(int index); // can be used for glGetActiveAttrib() - int getAttributeType(int index); // can be used for glGetActiveAttrib() + int getNumLiveUniformVariables() const; // can be used for glGetProgramiv(GL_ACTIVE_UNIFORMS) + int getNumLiveUniformBlocks() const; // can be used for glGetProgramiv(GL_ACTIVE_UNIFORM_BLOCKS) + const char* getUniformName(int index) const; // can be used for "name" part of glGetActiveUniform() + const char* getUniformBlockName(int blockIndex) const; // can be used for glGetActiveUniformBlockName() + int getUniformBlockSize(int blockIndex) const; // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) + int getUniformIndex(const char* name) const; // can be used for glGetUniformIndices() + int getUniformBlockIndex(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) + int getUniformType(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) + int getUniformBufferOffset(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) + int getUniformArraySize(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) + int getNumLiveAttributes() const; // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) + const char *getAttributeName(int index) const; // can be used for glGetActiveAttrib() + int getAttributeType(int index) const; // can be used for glGetActiveAttrib() + const TType* getUniformTType(int index) const; // returns a TType* + const TType* getUniformBlockTType(int index) const; // returns a TType* + void dumpReflection(); // I/O mapping: apply base offsets and map live unbound variables diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b462e92f..082a4960 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4532,8 +4532,10 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS // Build and add the interface block as a new type named 'blockName' // - //?? need the block name to be a typename? - TType blockType(&typeList, "" /* *blockName */, type.getQualifier()); + // Use the instance name as the interface name if one exists, else the block name. + const TString& interfaceName = (instanceName && !instanceName->empty()) ? *instanceName : type.getTypeName(); + + TType blockType(&typeList, interfaceName, type.getQualifier()); if (arraySizes) blockType.newArraySizes(*arraySizes); From 2199c2404ba37816ad664a0b9d460602052f686a Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sun, 2 Oct 2016 22:13:22 -0600 Subject: [PATCH 174/217] HLSL: fix for flattening assignments from non-symbol R-values. If a member-wise assignment from a non-flattened struct to a flattened struct sees a complex R-value (not a symbol), it now creates a temporary to hold that value, to avoid repeating the R-value. This avoids, e.g, duplicating a whole function call. Also, it avoids re-using the AST node, making a new one for each member inside the member loop. The latter (re-use of AST node) was also an issue in the GetDimensions intrinsic decomposition, so this PR fixes that one too. --- Test/baseResults/hlsl.flatten.return.frag.out | 187 ++++++++++++++++++ Test/hlsl.flatten.return.frag | 18 ++ glslang/MachineIndependent/Intermediate.cpp | 10 + .../MachineIndependent/localintermediate.h | 1 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 68 ++++++- 6 files changed, 277 insertions(+), 8 deletions(-) create mode 100644 Test/baseResults/hlsl.flatten.return.frag.out create mode 100644 Test/hlsl.flatten.return.frag diff --git a/Test/baseResults/hlsl.flatten.return.frag.out b/Test/baseResults/hlsl.flatten.return.frag.out new file mode 100644 index 00000000..39fbf0ef --- /dev/null +++ b/Test/baseResults/hlsl.flatten.return.frag.out @@ -0,0 +1,187 @@ +hlsl.flatten.return.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 24 31 36 40 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + MemberName 8(PS_OUTPUT) 1 "other_struct_member1" + MemberName 8(PS_OUTPUT) 2 "other_struct_member2" + MemberName 8(PS_OUTPUT) 3 "other_struct_member3" + Name 10 "Func1(" + Name 21 "flattenTemp" + Name 24 "color" + Name 31 "other_struct_member1" + Name 36 "other_struct_member2" + Name 40 "other_struct_member3" + Decorate 24(color) Location 0 + Decorate 31(other_struct_member1) Location 1 + Decorate 36(other_struct_member2) Location 2 + Decorate 40(other_struct_member3) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: 6(float) Constant 1065353216 + 13: 7(fvec4) ConstantComposite 12 12 12 12 + 14: 6(float) Constant 1073741824 + 15: 6(float) Constant 1077936128 + 16: 6(float) Constant 1082130432 + 17:8(PS_OUTPUT) ConstantComposite 13 14 15 16 + 20: TypePointer Function 8(PS_OUTPUT) + 23: TypePointer Output 7(fvec4) + 24(color): 23(ptr) Variable Output + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypePointer Function 7(fvec4) + 30: TypePointer Output 6(float) +31(other_struct_member1): 30(ptr) Variable Output + 32: 25(int) Constant 1 + 33: TypePointer Function 6(float) +36(other_struct_member2): 30(ptr) Variable Output + 37: 25(int) Constant 2 +40(other_struct_member3): 30(ptr) Variable Output + 41: 25(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 21(flattenTemp): 20(ptr) Variable Function + 22:8(PS_OUTPUT) FunctionCall 10(Func1() + Store 21(flattenTemp) 22 + 28: 27(ptr) AccessChain 21(flattenTemp) 26 + 29: 7(fvec4) Load 28 + Store 24(color) 29 + 34: 33(ptr) AccessChain 21(flattenTemp) 32 + 35: 6(float) Load 34 + Store 31(other_struct_member1) 35 + 38: 33(ptr) AccessChain 21(flattenTemp) 37 + 39: 6(float) Load 38 + Store 36(other_struct_member2) 39 + 42: 33(ptr) AccessChain 21(flattenTemp) 41 + 43: 6(float) Load 42 + Store 40(other_struct_member3) 43 + Return + FunctionEnd + 10(Func1():8(PS_OUTPUT) Function None 9 + 11: Label + ReturnValue 17 + FunctionEnd diff --git a/Test/hlsl.flatten.return.frag b/Test/hlsl.flatten.return.frag new file mode 100644 index 00000000..c633e679 --- /dev/null +++ b/Test/hlsl.flatten.return.frag @@ -0,0 +1,18 @@ + +struct PS_OUTPUT +{ + float4 color : SV_Target0; + float other_struct_member1; + float other_struct_member2; + float other_struct_member3; +}; + +PS_OUTPUT Func1() +{ + return PS_OUTPUT(float4(1), 2, 3, 4); +} + +PS_OUTPUT main() +{ + return Func1(); +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index cababc35..97556202 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -73,6 +73,16 @@ TIntermSymbol* TIntermediate::addSymbol(int id, const TString& name, const TType return node; } +TIntermSymbol* TIntermediate::addSymbol(const TIntermSymbol& intermSymbol) +{ + return addSymbol(intermSymbol.getId(), + intermSymbol.getName(), + intermSymbol.getType(), + intermSymbol.getConstArray(), + intermSymbol.getConstSubtree(), + intermSymbol.getLoc()); +} + TIntermSymbol* TIntermediate::addSymbol(const TVariable& variable) { glslang::TSourceLoc loc; // just a null location diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 14b8a00a..acfafb1e 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -201,6 +201,7 @@ public: TIntermSymbol* addSymbol(const TVariable&); TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&); TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); + TIntermSymbol* addSymbol(const TIntermSymbol&); TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const; TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*); TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 7467eb79..51be19dd 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -99,6 +99,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.entry-out.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.flatten.return.frag", "main"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.gather.array.dx10.frag", "main"}, {"hlsl.gather.basic.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 082a4960..08ffd580 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -952,10 +952,53 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op const TVector* leftVariables = nullptr; const TVector* rightVariables = nullptr; + // A temporary to store the right node's value, so we don't keep indirecting into it + // if it's not a simple symbol. + TVariable* rhsTempVar = nullptr; + + // If the RHS is a simple symbol node, we'll copy it for each member. + TIntermSymbol* cloneSymNode = nullptr; + + // Array structs are not yet handled in flattening. (Compilation error upstream, so + // this should never fire). + assert(!(left->getType().isStruct() && left->getType().isArray())); + + int memberCount = 0; + + // Track how many items there are to copy. + if (left->getType().isStruct()) + memberCount = left->getType().getStruct()->size(); + if (left->getType().isArray()) + memberCount = left->getType().getCumulativeArraySize(); + if (flattenLeft) leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second; - if (flattenRight) + + if (flattenRight) { rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second; + } else { + // The RHS is not flattened. There are several cases: + // 1. 1 item to copy: Use the RHS directly. + // 2. >1 item, simple symbol RHS: we'll create a new TIntermSymbol node for each, but no assign to temp. + // 3. >1 item, complex RHS: assign it to a new temp variable, and create a TIntermSymbol for each member. + + if (memberCount <= 1) { + // case 1: we'll use the symbol directly below. Nothing to do. + } else { + if (right->getAsSymbolNode() != nullptr) { + // case 2: we'll copy the symbol per iteration below. + cloneSymNode = right->getAsSymbolNode(); + } else { + // case 3: assign to a temp, and indirect into that. + rhsTempVar = makeInternalVariable("flattenTemp", right->getType()); + rhsTempVar->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); + + // Add this to the aggregate being built. + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, noFlattenRHS, right, loc), loc); + } + } + } const auto getMember = [&](bool flatten, TIntermTyped* node, const TVector& memberVariables, int member, @@ -971,6 +1014,14 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op return subTree; }; + // Return the proper RHS node: a new symbol from a TVariable, copy + // of an TIntermSymbol node, or sometimes the right node directly. + const auto getRHS = [&]() { + return rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) : + cloneSymNode ? intermediate.addSymbol(*cloneSymNode) : + right; + }; + // Handle struct assignment if (left->getType().isStruct()) { // If we get here, we are assigning to or from a whole struct that must be @@ -978,7 +1029,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op const auto& members = *left->getType().getStruct(); for (int member = 0; member < (int)members.size(); ++member) { - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member, + TIntermTyped* subRight = getMember(flattenRight, getRHS(), *rightVariables, member, EOpIndexDirectStruct, *members[member].type); TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, EOpIndexDirectStruct, *members[member].type); @@ -992,10 +1043,10 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op // flattened, so have to do member-by-member assignment: const TType dereferencedType(left->getType(), 0); - const int size = left->getType().getCumulativeArraySize(); - for (int element=0; element < size; ++element) { - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element, + for (int element=0; element < memberCount; ++element) { + // Add a new AST symbol node if we have a temp variable holding a complex RHS. + TIntermTyped* subRight = getMember(flattenRight, getRHS(), *rightVariables, element, EOpIndexDirect, dereferencedType); TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, EOpIndexDirect, dereferencedType); @@ -1235,9 +1286,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // Return value from size query TVariable* tempArg = makeInternalVariable("sizeQueryTemp", sizeQuery->getType()); tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); - - TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, sizeQueryReturn, sizeQuery, loc); + TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, + intermediate.addSymbol(*tempArg, loc), + sizeQuery, loc); // Compound statement for assigning outputs TIntermAggregate* compoundStatement = intermediate.makeAggregate(sizeQueryAssign, loc); @@ -1246,6 +1297,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType for (int compNum = 0; compNum < numDims; ++compNum) { TIntermTyped* indexedOut = nullptr; + TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); if (numDims > 1) { TIntermTyped* component = intermediate.addConstantUnion(compNum, loc, true); From 1d3a966106bf7d4077cab88b7421f902bc357c85 Mon Sep 17 00:00:00 2001 From: David Neto Date: Wed, 5 Oct 2016 10:25:09 -0400 Subject: [PATCH 175/217] Gtests can be run on another source tree The gtest executable accepts a --test-root option to specify a root directory for test files. It defaults to the Test directory in the source tree from which the executable is built. For example, this lets us run test exectuables built with MinGW on Linux on a Windows machine with its own copy of the source tree. --- gtests/AST.FromFile.cpp | 2 +- gtests/BuiltInResource.FromFile.cpp | 2 +- gtests/CMakeLists.txt | 9 +++++++-- gtests/Config.FromFile.cpp | 6 +++--- gtests/Hlsl.FromFile.cpp | 4 ++-- gtests/Link.FromFile.cpp | 4 ++-- gtests/Pp.FromFile.cpp | 2 +- gtests/Remap.FromFile.cpp | 6 +++--- gtests/Settings.cpp | 12 +++++++++++- gtests/Settings.h | 4 ++++ gtests/Spv.FromFile.cpp | 16 ++++++++-------- gtests/TestFixture.h | 8 -------- gtests/main.cpp | 15 +++++++++++++-- 13 files changed, 56 insertions(+), 34 deletions(-) diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 7c31df01..a2e961e8 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -43,7 +43,7 @@ using CompileToAstTest = GlslangTest<::testing::TestWithParam>; TEST_P(CompileToAstTest, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::OpenGL, Target::AST); } diff --git a/gtests/BuiltInResource.FromFile.cpp b/gtests/BuiltInResource.FromFile.cpp index 4d68d873..da81fe98 100644 --- a/gtests/BuiltInResource.FromFile.cpp +++ b/gtests/BuiltInResource.FromFile.cpp @@ -46,7 +46,7 @@ using DefaultResourceTest = GlslangTest<::testing::Test>; TEST_F(DefaultResourceTest, FromFile) { - const std::string path = GLSLANG_TEST_DIRECTORY "/baseResults/test.conf"; + const std::string path = GlobalTestSettings.testRoot + "/baseResults/test.conf"; std::string expectedConfig; tryLoadFile(path, "expected resource limit", &expectedConfig); const std::string realConfig = glslang::GetDefaultTBuiltInResourceString(); diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index a7cba22b..268caff7 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -29,8 +29,12 @@ if (TARGET gmock) install(TARGETS glslangtests RUNTIME DESTINATION bin) + set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") + # Supply a default test root directory, so that manual testing + # doesn't have to specify the --test-root option in the normal + # case that you want to use the tests from the same source tree. target_compile_definitions(glslangtests - PRIVATE GLSLANG_TEST_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/../Test") + PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}") target_include_directories(glslangtests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} @@ -39,5 +43,6 @@ if (TARGET gmock) target_link_libraries(glslangtests PRIVATE SPVRemapper glslang OSDependent OGLCompiler HLSL glslang SPIRV glslang-default-resource-limits gmock) - add_test(NAME glslang-gtests COMMAND glslangtests) + add_test(NAME glslang-gtests + COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") endif() diff --git a/gtests/Config.FromFile.cpp b/gtests/Config.FromFile.cpp index 7bc6a70e..a6e93dcf 100644 --- a/gtests/Config.FromFile.cpp +++ b/gtests/Config.FromFile.cpp @@ -54,8 +54,8 @@ TEST_P(ConfigTest, FromFile) // Get the contents for input shader and limit configurations. std::string shaderContents, configContents; - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + testCase.input, "input", &shaderContents); - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + testCase.config, "limits config", &configContents); + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.input, "input", &shaderContents); + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.config, "limits config", &configContents); // Decode limit configurations. TBuiltInResource resources = {}; @@ -86,7 +86,7 @@ TEST_P(ConfigTest, FromFile) // Check with expected results. const std::string expectedOutputFname = - GLSLANG_TEST_DIRECTORY "/baseResults/" + testCase.output; + GlobalTestSettings.testRoot + "/baseResults/" + testCase.output; std::string expectedOutput; tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 51be19dd..b587b0d6 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -64,14 +64,14 @@ using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam> shaders; for (size_t i = 0; i < fileCount; ++i) { std::string contents; - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + fileNames[i], + tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], "input", &contents); shaders.emplace_back( new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); @@ -77,7 +77,7 @@ TEST_P(LinkTest, FromFile) // Check with expected results. const std::string expectedOutputFname = - GLSLANG_TEST_DIRECTORY "/baseResults/" + fileNames.front() + ".out"; + GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; std::string expectedOutput; tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); diff --git a/gtests/Pp.FromFile.cpp b/gtests/Pp.FromFile.cpp index 04ac3f75..13daac0d 100644 --- a/gtests/Pp.FromFile.cpp +++ b/gtests/Pp.FromFile.cpp @@ -43,7 +43,7 @@ using PreprocessingTest = GlslangTest<::testing::TestWithParam>; TEST_P(PreprocessingTest, FromFile) { - loadFilePreprocessAndCheck(GLSLANG_TEST_DIRECTORY, GetParam()); + loadFilePreprocessAndCheck(GlobalTestSettings.testRoot, GetParam()); } // clang-format off diff --git a/gtests/Remap.FromFile.cpp b/gtests/Remap.FromFile.cpp index cd246ea2..9f25a6f2 100644 --- a/gtests/Remap.FromFile.cpp +++ b/gtests/Remap.FromFile.cpp @@ -60,17 +60,17 @@ std::string FileNameAsCustomTestSuffix( using RemapTest = GlslangTest<::testing::TestWithParam>; -// Remapping SPIR-V modules. +// Remapping SPIR-V modules. TEST_P(RemapTest, FromFile) { if (GetSuffix(GetParam().fileName) == "spv") { - loadFileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + loadFileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, GetParam().remapOpts); } else { - loadFileCompileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + loadFileCompileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, diff --git a/gtests/Settings.cpp b/gtests/Settings.cpp index 4ba7989b..0ac58449 100644 --- a/gtests/Settings.cpp +++ b/gtests/Settings.cpp @@ -36,6 +36,16 @@ namespace glslangtest { -GTestSettings GlobalTestSettings = {nullptr, false}; +// We need CMake to provide us the absolute path to the directory containing +// test files, so we are certain to find those files no matter where the test +// harness binary is generated. This provides out-of-source build capability. +// This will be used as the default test root, but can be overridden with +// the --test-root argument. +#ifndef GLSLANG_TEST_DIRECTORY +#error \ + "GLSLANG_TEST_DIRECTORY needs to be defined for gtest to locate test files." +#endif + +GTestSettings GlobalTestSettings = {nullptr, false, GLSLANG_TEST_DIRECTORY}; } // namespace glslangtest diff --git a/gtests/Settings.h b/gtests/Settings.h index 30056a7b..c38474cc 100644 --- a/gtests/Settings.h +++ b/gtests/Settings.h @@ -35,6 +35,8 @@ #ifndef GLSLANG_GTESTS_SETTINGS_H #define GLSLANG_GTESTS_SETTINGS_H +#include + namespace glslangtest { class GlslangInitializer; @@ -45,6 +47,8 @@ struct GTestSettings { // An indicator of whether GTest should write real output to the file for // the expected output. bool updateMode; + // The root directory for test files. + std::string testRoot; }; extern GTestSettings GlobalTestSettings; diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index ee27db2b..533733df 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -75,7 +75,7 @@ using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam +#include #include @@ -49,9 +50,19 @@ int main(int argc, char** argv) glslangtest::GlobalTestSettings.initializer = initializer.get(); for (int i = 1; i < argc; ++i) { - if (!strncmp("--update-mode", argv[i], 13)) { + if (std::string("--update-mode") == argv[i]) { glslangtest::GlobalTestSettings.updateMode = true; - break; + } + if (std::string("--test-root") == argv[i]) { + // Allow the user set the tets root directory. This is useful + // for testing with files from another source tree. + if (i + 1 < argc) { + glslangtest::GlobalTestSettings.testRoot = argv[i + 1]; + i++; + } else { + printf("error: --test-root requires an argument\n"); + return 1; + } } } From c056adcddddfea0a903a0b6f2af2d8e53d1d2186 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 5 Oct 2016 12:31:24 -0600 Subject: [PATCH 176/217] Allow for larger binding numbers. 65K instead of 255. --- glslang/Include/Types.h | 4 ++-- glslang/Include/revision.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 85a37df2..35b48312 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -621,8 +621,8 @@ public: unsigned int layoutSet : 7; static const unsigned int layoutSetEnd = 0x3F; - unsigned int layoutBinding : 8; - static const unsigned int layoutBindingEnd = 0xFF; + unsigned int layoutBinding : 16; + static const unsigned int layoutBindingEnd = 0xFFFF; unsigned int layoutIndex : 8; static const unsigned int layoutIndexEnd = 0xFF; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 21914247..304acc34 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1548" -#define GLSLANG_DATE "01-Oct-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1553" +#define GLSLANG_DATE "05-Oct-2016" From 9ae34742cf70231241f05f1e4cec8fee9d7dfb59 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 5 Oct 2016 13:40:13 -0600 Subject: [PATCH 177/217] Check for out-of-range bindings during IO mapping. --- StandAlone/StandAlone.cpp | 10 +++-- ...spv.register.autoassign.rangetest.frag.out | 12 ++++++ Test/spv.register.autoassign.rangetest.frag | 15 ++++++++ glslang/MachineIndependent/ShaderLang.cpp | 2 +- glslang/MachineIndependent/iomapper.cpp | 38 +++++++++++++++---- glslang/MachineIndependent/iomapper.h | 4 +- gtests/Spv.FromFile.cpp | 4 ++ 7 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 Test/baseResults/spv.register.autoassign.rangetest.frag.out create mode 100644 Test/spv.register.autoassign.rangetest.frag diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 5d30ac2b..f0a4f93c 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -584,6 +584,12 @@ void CompileAndLinkShaderUnits(std::vector compUnits) if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages)) LinkFailed = true; + // Map IO + if (Options & EOptionSpv) { + if (!program.mapIO()) + LinkFailed = true; + } + // Report if (! (Options & EOptionSuppressInfolog) && ! (Options & EOptionMemoryLeakMode)) { @@ -591,10 +597,6 @@ void CompileAndLinkShaderUnits(std::vector compUnits) PutsIfNonEmpty(program.getInfoDebugLog()); } - // Map IO - if (Options & EOptionSpv) - program.mapIO(); - // Reflect if (Options & EOptionDumpReflection) { program.buildReflection(); diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out new file mode 100644 index 00000000..a521a13b --- /dev/null +++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out @@ -0,0 +1,12 @@ +spv.register.autoassign.rangetest.frag + +Linked fragment stage: + +INTERNAL ERROR: mapped binding out of range: g_tScene +INTERNAL ERROR: mapped binding out of range: g_tSamp +INTERNAL ERROR: mapped binding out of range: g_tScene +INTERNAL ERROR: mapped binding out of range: g_tSamp +INTERNAL ERROR: mapped binding out of range: g_tSamp +INTERNAL ERROR: mapped binding out of range: g_tScene + +SPIR-V is not generated for failed compile or link diff --git a/Test/spv.register.autoassign.rangetest.frag b/Test/spv.register.autoassign.rangetest.frag new file mode 100644 index 00000000..c81c3959 --- /dev/null +++ b/Test/spv.register.autoassign.rangetest.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s5); + +Texture2D g_tScene[2] : register(t5); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) + + g_tScene[1].Sample(g_tSamp, 0.3); +} diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index e00638b6..5333af45 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1724,7 +1724,7 @@ bool TProgram::mapIO() for (int s = 0; s < EShLangCount; ++s) { if (intermediate[s]) { - if (! ioMapper->addStage((EShLanguage)s, *intermediate[s])) + if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink)) return false; } } diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index d69cc134..15847ddb 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -34,6 +34,7 @@ // #include "../Include/Common.h" +#include "../Include/InfoSink.h" #include "iomapper.h" #include "LiveTraverser.h" #include "localintermediate.h" @@ -150,11 +151,30 @@ protected: class TIoMappingTraverser : public TBindingTraverser { public: TIoMappingTraverser(TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, - bool traverseDeadCode) : - TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode) + TInfoSink& infoSink, bool traverseDeadCode) : + TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode), + infoSink(infoSink), + assignError(false) { } + bool success() const { return !assignError; } + protected: + unsigned checkBindingRange(const TIntermSymbol& base, unsigned binding) + { + if (binding >= TQualifier::layoutBindingEnd) { + TString err = "mapped binding out of range: "; + err += base.getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + assignError = true; + + return 0; + } + + return binding; + } + void addUniform(TIntermSymbol& base) override { // Skip things we don't intend to bind. @@ -165,7 +185,7 @@ protected: // Apply existing binding, if we were given one or already made one up. if (existingBinding != -1) { - base.getWritableType().getQualifier().layoutBinding = existingBinding; + base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, existingBinding); return; } @@ -174,7 +194,7 @@ protected: const int freeBinding = getFreeBinding(base.getType(), getBindingBase(base.getType())); markBinding(base, freeBinding); - base.getWritableType().getQualifier().layoutBinding = freeBinding; + base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, freeBinding); } } @@ -195,13 +215,17 @@ protected: return nextBinding; } + +private: + bool assignError; // true if there was an error assigning the bindings + TInfoSink& infoSink; }; // Map I/O variables to provided offsets, and make bindings for // unbound but live variables. // // Returns false if the input is too malformed to do this. -bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate) +bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& infoSink) { // Trivial return if there is nothing to do. if (intermediate.getShiftSamplerBinding() == 0 && @@ -223,7 +247,7 @@ bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate) TBindingTraverser it_binding_all(intermediate, bindingMap, usedBindings, true); TBindingTraverser it_binding_live(intermediate, bindingMap, usedBindings, false); - TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, true); + TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, infoSink, true); // Traverse all (live+dead) code to find explicit bindings, so we can avoid those. root->traverse(&it_binding_all); @@ -240,7 +264,7 @@ bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate) // Bind everything that needs a binding and doesn't have one. root->traverse(&it_iomap); - return true; + return it_iomap.success(); } } // end namespace glslang diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h index 69ed4c5b..68dec776 100644 --- a/glslang/MachineIndependent/iomapper.h +++ b/glslang/MachineIndependent/iomapper.h @@ -42,6 +42,8 @@ // A reflection database and its interface, consistent with the OpenGL API reflection queries. // +class TInfoSink; + namespace glslang { class TIntermediate; @@ -53,7 +55,7 @@ public: virtual ~TIoMapper() {} // grow the reflection stage by stage - bool addStage(EShLanguage, TIntermediate&); + bool addStage(EShLanguage, TIntermediate&, TInfoSink&); }; } // end namespace glslang diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index ee27db2b..d0296f85 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -285,6 +285,10 @@ INSTANTIATE_TEST_CASE_P( { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true }, { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true }, + { "spv.register.autoassign.rangetest.frag", "main", + glslang::TQualifier::layoutBindingEnd-2, + glslang::TQualifier::layoutBindingEnd+5, + 20, true, false }, }), FileNameAsCustomTestSuffixIoMap ); From 87a83d684142b14086be25c074eaf7395645ca21 Mon Sep 17 00:00:00 2001 From: Josh Gargus Date: Wed, 5 Oct 2016 18:32:51 -0700 Subject: [PATCH 178/217] Use pthread_mutex for global lock on Linux. --- glslang/OSDependent/Unix/ossource.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp index 8e583ea7..0e6d7307 100644 --- a/glslang/OSDependent/Unix/ossource.cpp +++ b/glslang/OSDependent/Unix/ossource.cpp @@ -165,11 +165,12 @@ bool OS_FreeTLSIndex(OS_TLSIndex nIndex) return false; } -// TODO: non-windows: if we need these on linux, flesh them out -void InitGlobalLock() { } -void GetGlobalLock() { } -void ReleaseGlobalLock() { } +static pthread_mutex_t gMutex; +void InitGlobalLock() { pthread_mutex_init(&gMutex, NULL); } +void GetGlobalLock() { pthread_mutex_lock(&gMutex); } +void ReleaseGlobalLock() { pthread_mutex_unlock(&gMutex); } +// TODO: non-windows: if we need these on linux, flesh them out void* OS_CreateThread(TThreadEntrypoint /*entry*/) { return 0; From bb0183f8178689876d33188428e909ee91563120 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 4 Oct 2016 16:58:14 -0600 Subject: [PATCH 179/217] HLSL: phase 1: add RWTexture and RWBuffer There's a lot to do for RWTexture and RWBuffer, so it will be broken up into several PRs. This is #1. This adds RWTexture and RWBuffer support, with the following limitations: * Only 4 component formats supported * No operator[] yet Those will be added in other PRs. This PR supports declarations and the Load & GetDimensions methods. New tests are added. --- .../hlsl.getdimensions.rw.dx10.frag.out | 1082 +++++++++++++++++ .../hlsl.load.rwbuffer.dx10.frag.out | 200 +++ .../hlsl.load.rwtexture.array.dx10.frag.out | 383 ++++++ .../hlsl.load.rwtexture.dx10.frag.out | 432 +++++++ Test/hlsl.getdimensions.rw.dx10.frag | 96 ++ Test/hlsl.load.rwbuffer.dx10.frag | 32 + Test/hlsl.load.rwtexture.array.dx10.frag | 57 + Test/hlsl.load.rwtexture.dx10.frag | 62 + gtests/Hlsl.FromFile.cpp | 4 + hlsl/hlslGrammar.cpp | 61 +- hlsl/hlslParseHelper.cpp | 23 +- hlsl/hlslParseables.cpp | 70 +- hlsl/hlslScanContext.cpp | 13 + hlsl/hlslTokens.h | 7 + 14 files changed, 2483 insertions(+), 39 deletions(-) create mode 100644 Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out create mode 100644 Test/baseResults/hlsl.load.rwtexture.dx10.frag.out create mode 100644 Test/hlsl.getdimensions.rw.dx10.frag create mode 100644 Test/hlsl.load.rwbuffer.dx10.frag create mode 100644 Test/hlsl.load.rwtexture.array.dx10.frag create mode 100644 Test/hlsl.load.rwtexture.dx10.frag diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out new file mode 100644 index 00000000..717c376a --- /dev/null +++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -0,0 +1,1082 @@ +hlsl.getdimensions.rw.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 225 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 210 214 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 21 "g_tTex1di4" + Name 25 "sizeQueryTemp" + Name 28 "g_tTex1du4" + Name 32 "sizeQueryTemp" + Name 35 "g_tBuffF" + Name 39 "sizeQueryTemp" + Name 42 "g_tBuffI" + Name 46 "sizeQueryTemp" + Name 49 "g_tBuffU" + Name 55 "sizeQueryTemp" + Name 58 "g_tTex1df4a" + Name 65 "ElementsU" + Name 69 "sizeQueryTemp" + Name 72 "g_tTex1di4a" + Name 79 "sizeQueryTemp" + Name 82 "g_tTex1du4a" + Name 89 "sizeQueryTemp" + Name 92 "g_tTex2df4" + Name 97 "HeightU" + Name 100 "sizeQueryTemp" + Name 103 "g_tTex2di4" + Name 110 "sizeQueryTemp" + Name 113 "g_tTex2du4" + Name 122 "sizeQueryTemp" + Name 125 "g_tTex2df4a" + Name 136 "sizeQueryTemp" + Name 139 "g_tTex2di4a" + Name 148 "sizeQueryTemp" + Name 151 "g_tTex2du4a" + Name 160 "sizeQueryTemp" + Name 163 "g_tTex3df4" + Name 170 "DepthU" + Name 173 "sizeQueryTemp" + Name 176 "g_tTex3di4" + Name 185 "sizeQueryTemp" + Name 188 "g_tTex3du4" + Name 198 "PS_OUTPUT" + MemberName 198(PS_OUTPUT) 0 "Color" + MemberName 198(PS_OUTPUT) 1 "Depth" + Name 200 "psout" + Name 210 "Color" + Name 214 "Depth" + Name 220 "g_sSamp" + Name 222 "$Global" + MemberName 222($Global) 0 "c1" + MemberName 222($Global) 1 "c2" + MemberName 222($Global) 2 "c3" + MemberName 222($Global) 3 "c4" + MemberName 222($Global) 4 "o1" + MemberName 222($Global) 5 "o2" + MemberName 222($Global) 6 "o3" + MemberName 222($Global) 7 "o4" + Name 224 "" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 21(g_tTex1di4) DescriptorSet 0 + Decorate 28(g_tTex1du4) DescriptorSet 0 + Decorate 35(g_tBuffF) DescriptorSet 0 + Decorate 42(g_tBuffI) DescriptorSet 0 + Decorate 49(g_tBuffU) DescriptorSet 0 + Decorate 58(g_tTex1df4a) DescriptorSet 0 + Decorate 72(g_tTex1di4a) DescriptorSet 0 + Decorate 82(g_tTex1du4a) DescriptorSet 0 + Decorate 92(g_tTex2df4) DescriptorSet 0 + Decorate 103(g_tTex2di4) DescriptorSet 0 + Decorate 113(g_tTex2du4) DescriptorSet 0 + Decorate 125(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 151(g_tTex2du4a) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 176(g_tTex3di4) DescriptorSet 0 + Decorate 188(g_tTex3du4) DescriptorSet 0 + Decorate 210(Color) Location 0 + Decorate 214(Depth) BuiltIn FragDepth + Decorate 220(g_sSamp) DescriptorSet 0 + Decorate 220(g_sSamp) Binding 0 + Decorate 222($Global) Block + Decorate 224 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D nonsampled format:Rgba32f + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 19: TypeImage 14(int) 1D nonsampled format:Rgba32i + 20: TypePointer UniformConstant 19 + 21(g_tTex1di4): 20(ptr) Variable UniformConstant + 26: TypeImage 6(int) 1D nonsampled format:Rgba32ui + 27: TypePointer UniformConstant 26 + 28(g_tTex1du4): 27(ptr) Variable UniformConstant + 33: TypeImage 9(float) Buffer nonsampled format:Rgba32f + 34: TypePointer UniformConstant 33 + 35(g_tBuffF): 34(ptr) Variable UniformConstant + 40: TypeImage 14(int) Buffer nonsampled format:Rgba32i + 41: TypePointer UniformConstant 40 + 42(g_tBuffI): 41(ptr) Variable UniformConstant + 47: TypeImage 6(int) Buffer nonsampled format:Rgba32ui + 48: TypePointer UniformConstant 47 + 49(g_tBuffU): 48(ptr) Variable UniformConstant + 53: TypeVector 6(int) 2 + 54: TypePointer Function 53(ivec2) + 56: TypeImage 9(float) 1D array nonsampled format:Rgba32f + 57: TypePointer UniformConstant 56 + 58(g_tTex1df4a): 57(ptr) Variable UniformConstant + 60: TypeVector 14(int) 2 + 62: 6(int) Constant 0 + 66: 6(int) Constant 1 + 70: TypeImage 14(int) 1D array nonsampled format:Rgba32i + 71: TypePointer UniformConstant 70 + 72(g_tTex1di4a): 71(ptr) Variable UniformConstant + 80: TypeImage 6(int) 1D array nonsampled format:Rgba32ui + 81: TypePointer UniformConstant 80 + 82(g_tTex1du4a): 81(ptr) Variable UniformConstant + 90: TypeImage 9(float) 2D nonsampled format:Rgba32f + 91: TypePointer UniformConstant 90 + 92(g_tTex2df4): 91(ptr) Variable UniformConstant + 101: TypeImage 14(int) 2D nonsampled format:Rgba32i + 102: TypePointer UniformConstant 101 + 103(g_tTex2di4): 102(ptr) Variable UniformConstant + 111: TypeImage 6(int) 2D nonsampled format:Rgba32ui + 112: TypePointer UniformConstant 111 + 113(g_tTex2du4): 112(ptr) Variable UniformConstant + 120: TypeVector 6(int) 3 + 121: TypePointer Function 120(ivec3) + 123: TypeImage 9(float) 2D array nonsampled format:Rgba32f + 124: TypePointer UniformConstant 123 +125(g_tTex2df4a): 124(ptr) Variable UniformConstant + 127: TypeVector 14(int) 3 + 133: 6(int) Constant 2 + 137: TypeImage 14(int) 2D array nonsampled format:Rgba32i + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 149: TypeImage 6(int) 2D array nonsampled format:Rgba32ui + 150: TypePointer UniformConstant 149 +151(g_tTex2du4a): 150(ptr) Variable UniformConstant + 161: TypeImage 9(float) 3D nonsampled format:Rgba32f + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 174: TypeImage 14(int) 3D nonsampled format:Rgba32i + 175: TypePointer UniformConstant 174 + 176(g_tTex3di4): 175(ptr) Variable UniformConstant + 186: TypeImage 6(int) 3D nonsampled format:Rgba32ui + 187: TypePointer UniformConstant 186 + 188(g_tTex3du4): 187(ptr) Variable UniformConstant + 197: TypeVector 9(float) 4 + 198(PS_OUTPUT): TypeStruct 197(fvec4) 9(float) + 199: TypePointer Function 198(PS_OUTPUT) + 201: 14(int) Constant 0 + 202: 9(float) Constant 1065353216 + 203: 197(fvec4) ConstantComposite 202 202 202 202 + 204: TypePointer Function 197(fvec4) + 206: 14(int) Constant 1 + 207: TypePointer Function 9(float) + 209: TypePointer Output 197(fvec4) + 210(Color): 209(ptr) Variable Output + 213: TypePointer Output 9(float) + 214(Depth): 213(ptr) Variable Output + 218: TypeSampler + 219: TypePointer UniformConstant 218 + 220(g_sSamp): 219(ptr) Variable UniformConstant + 221: TypeVector 14(int) 4 + 222($Global): TypeStruct 14(int) 60(ivec2) 127(ivec3) 221(ivec4) 14(int) 60(ivec2) 127(ivec3) 221(ivec4) + 223: TypePointer Uniform 222($Global) + 224: 223(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +25(sizeQueryTemp): 7(ptr) Variable Function +32(sizeQueryTemp): 7(ptr) Variable Function +39(sizeQueryTemp): 7(ptr) Variable Function +46(sizeQueryTemp): 7(ptr) Variable Function +55(sizeQueryTemp): 54(ptr) Variable Function + 65(ElementsU): 7(ptr) Variable Function +69(sizeQueryTemp): 54(ptr) Variable Function +79(sizeQueryTemp): 54(ptr) Variable Function +89(sizeQueryTemp): 54(ptr) Variable Function + 97(HeightU): 7(ptr) Variable Function +100(sizeQueryTemp): 54(ptr) Variable Function +110(sizeQueryTemp): 54(ptr) Variable Function +122(sizeQueryTemp): 121(ptr) Variable Function +136(sizeQueryTemp): 121(ptr) Variable Function +148(sizeQueryTemp): 121(ptr) Variable Function +160(sizeQueryTemp): 121(ptr) Variable Function + 170(DepthU): 7(ptr) Variable Function +173(sizeQueryTemp): 121(ptr) Variable Function +185(sizeQueryTemp): 121(ptr) Variable Function + 200(psout): 199(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 22: 19 Load 21(g_tTex1di4) + 23: 14(int) ImageQuerySize 22 + Store 18(sizeQueryTemp) 23 + 24: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 24 + 29: 26 Load 28(g_tTex1du4) + 30: 14(int) ImageQuerySize 29 + Store 25(sizeQueryTemp) 30 + 31: 6(int) Load 25(sizeQueryTemp) + Store 16(WidthU) 31 + 36: 33 Load 35(g_tBuffF) + 37: 14(int) ImageQuerySize 36 + Store 32(sizeQueryTemp) 37 + 38: 6(int) Load 32(sizeQueryTemp) + Store 16(WidthU) 38 + 43: 40 Load 42(g_tBuffI) + 44: 14(int) ImageQuerySize 43 + Store 39(sizeQueryTemp) 44 + 45: 6(int) Load 39(sizeQueryTemp) + Store 16(WidthU) 45 + 50: 47 Load 49(g_tBuffU) + 51: 14(int) ImageQuerySize 50 + Store 46(sizeQueryTemp) 51 + 52: 6(int) Load 46(sizeQueryTemp) + Store 16(WidthU) 52 + 59: 56 Load 58(g_tTex1df4a) + 61: 60(ivec2) ImageQuerySize 59 + Store 55(sizeQueryTemp) 61 + 63: 7(ptr) AccessChain 55(sizeQueryTemp) 62 + 64: 6(int) Load 63 + Store 16(WidthU) 64 + 67: 7(ptr) AccessChain 55(sizeQueryTemp) 66 + 68: 6(int) Load 67 + Store 65(ElementsU) 68 + 73: 70 Load 72(g_tTex1di4a) + 74: 60(ivec2) ImageQuerySize 73 + Store 69(sizeQueryTemp) 74 + 75: 7(ptr) AccessChain 69(sizeQueryTemp) 62 + 76: 6(int) Load 75 + Store 16(WidthU) 76 + 77: 7(ptr) AccessChain 69(sizeQueryTemp) 66 + 78: 6(int) Load 77 + Store 65(ElementsU) 78 + 83: 80 Load 82(g_tTex1du4a) + 84: 60(ivec2) ImageQuerySize 83 + Store 79(sizeQueryTemp) 84 + 85: 7(ptr) AccessChain 79(sizeQueryTemp) 62 + 86: 6(int) Load 85 + Store 16(WidthU) 86 + 87: 7(ptr) AccessChain 79(sizeQueryTemp) 66 + 88: 6(int) Load 87 + Store 65(ElementsU) 88 + 93: 90 Load 92(g_tTex2df4) + 94: 60(ivec2) ImageQuerySize 93 + Store 89(sizeQueryTemp) 94 + 95: 7(ptr) AccessChain 89(sizeQueryTemp) 62 + 96: 6(int) Load 95 + Store 16(WidthU) 96 + 98: 7(ptr) AccessChain 89(sizeQueryTemp) 66 + 99: 6(int) Load 98 + Store 97(HeightU) 99 + 104: 101 Load 103(g_tTex2di4) + 105: 60(ivec2) ImageQuerySize 104 + Store 100(sizeQueryTemp) 105 + 106: 7(ptr) AccessChain 100(sizeQueryTemp) 62 + 107: 6(int) Load 106 + Store 16(WidthU) 107 + 108: 7(ptr) AccessChain 100(sizeQueryTemp) 66 + 109: 6(int) Load 108 + Store 97(HeightU) 109 + 114: 111 Load 113(g_tTex2du4) + 115: 60(ivec2) ImageQuerySize 114 + Store 110(sizeQueryTemp) 115 + 116: 7(ptr) AccessChain 110(sizeQueryTemp) 62 + 117: 6(int) Load 116 + Store 16(WidthU) 117 + 118: 7(ptr) AccessChain 110(sizeQueryTemp) 66 + 119: 6(int) Load 118 + Store 97(HeightU) 119 + 126: 123 Load 125(g_tTex2df4a) + 128: 127(ivec3) ImageQuerySize 126 + Store 122(sizeQueryTemp) 128 + 129: 7(ptr) AccessChain 122(sizeQueryTemp) 62 + 130: 6(int) Load 129 + Store 16(WidthU) 130 + 131: 7(ptr) AccessChain 122(sizeQueryTemp) 66 + 132: 6(int) Load 131 + Store 97(HeightU) 132 + 134: 7(ptr) AccessChain 122(sizeQueryTemp) 133 + 135: 6(int) Load 134 + Store 65(ElementsU) 135 + 140: 137 Load 139(g_tTex2di4a) + 141: 127(ivec3) ImageQuerySize 140 + Store 136(sizeQueryTemp) 141 + 142: 7(ptr) AccessChain 136(sizeQueryTemp) 62 + 143: 6(int) Load 142 + Store 16(WidthU) 143 + 144: 7(ptr) AccessChain 136(sizeQueryTemp) 66 + 145: 6(int) Load 144 + Store 97(HeightU) 145 + 146: 7(ptr) AccessChain 136(sizeQueryTemp) 133 + 147: 6(int) Load 146 + Store 65(ElementsU) 147 + 152: 149 Load 151(g_tTex2du4a) + 153: 127(ivec3) ImageQuerySize 152 + Store 148(sizeQueryTemp) 153 + 154: 7(ptr) AccessChain 148(sizeQueryTemp) 62 + 155: 6(int) Load 154 + Store 16(WidthU) 155 + 156: 7(ptr) AccessChain 148(sizeQueryTemp) 66 + 157: 6(int) Load 156 + Store 97(HeightU) 157 + 158: 7(ptr) AccessChain 148(sizeQueryTemp) 133 + 159: 6(int) Load 158 + Store 65(ElementsU) 159 + 164: 161 Load 163(g_tTex3df4) + 165: 127(ivec3) ImageQuerySize 164 + Store 160(sizeQueryTemp) 165 + 166: 7(ptr) AccessChain 160(sizeQueryTemp) 62 + 167: 6(int) Load 166 + Store 16(WidthU) 167 + 168: 7(ptr) AccessChain 160(sizeQueryTemp) 66 + 169: 6(int) Load 168 + Store 97(HeightU) 169 + 171: 7(ptr) AccessChain 160(sizeQueryTemp) 133 + 172: 6(int) Load 171 + Store 170(DepthU) 172 + 177: 174 Load 176(g_tTex3di4) + 178: 127(ivec3) ImageQuerySize 177 + Store 173(sizeQueryTemp) 178 + 179: 7(ptr) AccessChain 173(sizeQueryTemp) 62 + 180: 6(int) Load 179 + Store 16(WidthU) 180 + 181: 7(ptr) AccessChain 173(sizeQueryTemp) 66 + 182: 6(int) Load 181 + Store 97(HeightU) 182 + 183: 7(ptr) AccessChain 173(sizeQueryTemp) 133 + 184: 6(int) Load 183 + Store 170(DepthU) 184 + 189: 186 Load 188(g_tTex3du4) + 190: 127(ivec3) ImageQuerySize 189 + Store 185(sizeQueryTemp) 190 + 191: 7(ptr) AccessChain 185(sizeQueryTemp) 62 + 192: 6(int) Load 191 + Store 16(WidthU) 192 + 193: 7(ptr) AccessChain 185(sizeQueryTemp) 66 + 194: 6(int) Load 193 + Store 97(HeightU) 194 + 195: 7(ptr) AccessChain 185(sizeQueryTemp) 133 + 196: 6(int) Load 195 + Store 170(DepthU) 196 + 205: 204(ptr) AccessChain 200(psout) 201 + Store 205 203 + 208: 207(ptr) AccessChain 200(psout) 206 + Store 208 202 + 211: 204(ptr) AccessChain 200(psout) 201 + 212: 197(fvec4) Load 211 + Store 210(Color) 212 + 215: 207(ptr) AccessChain 200(psout) 206 + 216: 9(float) Load 215 + Store 214(Depth) 216 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out new file mode 100644 index 00000000..78b48040 --- /dev/null +++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -0,0 +1,200 @@ +hlsl.load.rwbuffer.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (global 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (global 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (global 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (global 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (global 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (global 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tBuffF" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tBuffU" + Name 35 "g_tBuffI" + Name 40 "PS_OUTPUT" + MemberName 40(PS_OUTPUT) 0 "Color" + Name 42 "psout" + Name 48 "Color" + Decorate 9(g_tBuffF) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tBuffU) DescriptorSet 0 + Decorate 35(g_tBuffI) DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tBuffF): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeInt 32 0 + 25: TypeImage 24(int) Buffer nonsampled format:Rgba32ui + 26: TypePointer UniformConstant 25 + 27(g_tBuffU): 26(ptr) Variable UniformConstant + 31: TypeVector 24(int) 4 + 33: TypeImage 11(int) Buffer nonsampled format:Rgba32i + 34: TypePointer UniformConstant 33 + 35(g_tBuffI): 34(ptr) Variable UniformConstant + 40(PS_OUTPUT): TypeStruct 22(fvec4) + 41: TypePointer Function 40(PS_OUTPUT) + 43: 6(float) Constant 1065353216 + 44: 22(fvec4) ConstantComposite 43 43 43 43 + 45: TypePointer Function 22(fvec4) + 47: TypePointer Output 22(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 42(psout): 41(ptr) Variable Function + 10: 7 Load 9(g_tBuffF) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 28: 25 Load 27(g_tBuffU) + 29: 19(ptr) AccessChain 17 18 + 30: 11(int) Load 29 + 32: 31(ivec4) ImageRead 28 30 + 36: 33 Load 35(g_tBuffI) + 37: 19(ptr) AccessChain 17 18 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageRead 36 38 + 46: 45(ptr) AccessChain 42(psout) 18 + Store 46 44 + 49: 45(ptr) AccessChain 42(psout) 18 + 50: 22(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out new file mode 100644 index 00000000..353f769c --- /dev/null +++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -0,0 +1,383 @@ +hlsl.load.rwtexture.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (global 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (global 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (global 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (global 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (global 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (global 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (global 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (global 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (global 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (global 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (global 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (global 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 112 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 78 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4a" + Name 34 "g_tTex1du4a" + Name 42 "g_tTex2df4a" + Name 51 "g_tTex2di4a" + Name 58 "g_tTex2du4a" + Name 63 "PS_OUTPUT" + MemberName 63(PS_OUTPUT) 0 "Color" + MemberName 63(PS_OUTPUT) 1 "Depth" + Name 65 "psout" + Name 74 "Color" + Name 78 "Depth" + Name 84 "g_sSamp" + Name 87 "g_tTex1df4" + Name 90 "g_tTex1di4" + Name 93 "g_tTex1du4" + Name 96 "g_tTex2df4" + Name 99 "g_tTex2di4" + Name 102 "g_tTex2du4" + Name 105 "g_tTex3df4" + Name 108 "g_tTex3di4" + Name 111 "g_tTex3du4" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4a) DescriptorSet 0 + Decorate 34(g_tTex1du4a) DescriptorSet 0 + Decorate 42(g_tTex2df4a) DescriptorSet 0 + Decorate 51(g_tTex2di4a) DescriptorSet 0 + Decorate 58(g_tTex2du4a) DescriptorSet 0 + Decorate 74(Color) Location 0 + Decorate 78(Depth) BuiltIn FragDepth + Decorate 84(g_sSamp) DescriptorSet 0 + Decorate 84(g_sSamp) Binding 0 + Decorate 87(g_tTex1df4) DescriptorSet 0 + Decorate 87(g_tTex1df4) Binding 0 + Decorate 90(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 96(g_tTex2df4) DescriptorSet 0 + Decorate 99(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 105(g_tTex3df4) DescriptorSet 0 + Decorate 108(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4a): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4a): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4a): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 2 + 45: TypePointer Uniform 13(ivec3) + 49: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4a): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4a): 57(ptr) Variable UniformConstant + 63(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 64: TypePointer Function 63(PS_OUTPUT) + 66: 11(int) Constant 0 + 67: 6(float) Constant 1065353216 + 68: 22(fvec4) ConstantComposite 67 67 67 67 + 69: TypePointer Function 22(fvec4) + 71: TypePointer Function 6(float) + 73: TypePointer Output 22(fvec4) + 74(Color): 73(ptr) Variable Output + 77: TypePointer Output 6(float) + 78(Depth): 77(ptr) Variable Output + 82: TypeSampler + 83: TypePointer UniformConstant 82 + 84(g_sSamp): 83(ptr) Variable UniformConstant + 85: TypeImage 6(float) 1D nonsampled format:Rgba32f + 86: TypePointer UniformConstant 85 + 87(g_tTex1df4): 86(ptr) Variable UniformConstant + 88: TypeImage 11(int) 1D nonsampled format:Rgba32i + 89: TypePointer UniformConstant 88 + 90(g_tTex1di4): 89(ptr) Variable UniformConstant + 91: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 94: TypeImage 6(float) 2D nonsampled format:Rgba32f + 95: TypePointer UniformConstant 94 + 96(g_tTex2df4): 95(ptr) Variable UniformConstant + 97: TypeImage 11(int) 2D nonsampled format:Rgba32i + 98: TypePointer UniformConstant 97 + 99(g_tTex2di4): 98(ptr) Variable UniformConstant + 100: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 103: TypeImage 6(float) 3D nonsampled format:Rgba32f + 104: TypePointer UniformConstant 103 + 105(g_tTex3df4): 104(ptr) Variable UniformConstant + 106: TypeImage 11(int) 3D nonsampled format:Rgba32i + 107: TypePointer UniformConstant 106 + 108(g_tTex3di4): 107(ptr) Variable UniformConstant + 109: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 65(psout): 64(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4a) + 28: 19(ptr) AccessChain 17 18 + 29: 12(ivec2) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4a) + 36: 19(ptr) AccessChain 17 18 + 37: 12(ivec2) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4a) + 46: 45(ptr) AccessChain 17 44 + 47: 13(ivec3) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4a) + 53: 45(ptr) AccessChain 17 44 + 54: 13(ivec3) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4a) + 60: 45(ptr) AccessChain 17 44 + 61: 13(ivec3) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 70: 69(ptr) AccessChain 65(psout) 66 + Store 70 68 + 72: 71(ptr) AccessChain 65(psout) 18 + Store 72 67 + 75: 69(ptr) AccessChain 65(psout) 66 + 76: 22(fvec4) Load 75 + Store 74(Color) 76 + 79: 71(ptr) AccessChain 65(psout) 18 + 80: 6(float) Load 79 + Store 78(Depth) 80 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out new file mode 100644 index 00000000..60c54000 --- /dev/null +++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -0,0 +1,432 @@ +hlsl.load.rwtexture.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (global 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (global 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (global 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (global 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (global 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (global 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (global 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (global 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (global 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (global 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (global 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (global 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (global 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (global 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (global 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (global 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (global 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (global 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 100 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4" + Name 34 "g_tTex1du4" + Name 42 "g_tTex2df4" + Name 51 "g_tTex2di4" + Name 58 "g_tTex2du4" + Name 65 "g_tTex3df4" + Name 74 "g_tTex3di4" + Name 81 "g_tTex3du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4a" + Name 112 "g_tTex1di4a" + Name 115 "g_tTex1du4a" + Name 118 "g_tTex2df4a" + Name 121 "g_tTex2di4a" + Name 124 "g_tTex2du4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4) DescriptorSet 0 + Decorate 34(g_tTex1du4) DescriptorSet 0 + Decorate 42(g_tTex2df4) DescriptorSet 0 + Decorate 51(g_tTex2di4) DescriptorSet 0 + Decorate 58(g_tTex2du4) DescriptorSet 0 + Decorate 65(g_tTex3df4) DescriptorSet 0 + Decorate 74(g_tTex3di4) DescriptorSet 0 + Decorate 81(g_tTex3du4) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4a) DescriptorSet 0 + Decorate 112(g_tTex1di4a) DescriptorSet 0 + Decorate 115(g_tTex1du4a) DescriptorSet 0 + Decorate 118(g_tTex2df4a) DescriptorSet 0 + Decorate 121(g_tTex2di4a) DescriptorSet 0 + Decorate 124(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 1 + 45: TypePointer Uniform 12(ivec2) + 49: TypeImage 11(int) 2D nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4): 57(ptr) Variable UniformConstant + 63: TypeImage 6(float) 3D nonsampled format:Rgba32f + 64: TypePointer UniformConstant 63 + 65(g_tTex3df4): 64(ptr) Variable UniformConstant + 67: 11(int) Constant 2 + 68: TypePointer Uniform 13(ivec3) + 72: TypeImage 11(int) 3D nonsampled format:Rgba32i + 73: TypePointer UniformConstant 72 + 74(g_tTex3di4): 73(ptr) Variable UniformConstant + 79: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 80: TypePointer UniformConstant 79 + 81(g_tTex3du4): 80(ptr) Variable UniformConstant + 86(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: 22(fvec4) ConstantComposite 89 89 89 89 + 91: TypePointer Function 22(fvec4) + 93: TypePointer Function 6(float) + 95: TypePointer Output 22(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler + 105: TypePointer UniformConstant 104 + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 111: TypePointer UniformConstant 110 +112(g_tTex1di4a): 111(ptr) Variable UniformConstant + 113: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 114: TypePointer UniformConstant 113 +115(g_tTex1du4a): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 117: TypePointer UniformConstant 116 +118(g_tTex2df4a): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 120: TypePointer UniformConstant 119 +121(g_tTex2di4a): 120(ptr) Variable UniformConstant + 122: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 123: TypePointer UniformConstant 122 +124(g_tTex2du4a): 123(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 88(psout): 87(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4) + 28: 19(ptr) AccessChain 17 18 + 29: 11(int) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4) + 36: 19(ptr) AccessChain 17 18 + 37: 11(int) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4) + 46: 45(ptr) AccessChain 17 44 + 47: 12(ivec2) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4) + 53: 45(ptr) AccessChain 17 44 + 54: 12(ivec2) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4) + 60: 45(ptr) AccessChain 17 44 + 61: 12(ivec2) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 66: 63 Load 65(g_tTex3df4) + 69: 68(ptr) AccessChain 17 67 + 70: 13(ivec3) Load 69 + 71: 22(fvec4) ImageRead 66 70 + 75: 72 Load 74(g_tTex3di4) + 76: 68(ptr) AccessChain 17 67 + 77: 13(ivec3) Load 76 + 78: 14(ivec4) ImageRead 75 77 + 82: 79 Load 81(g_tTex3du4) + 83: 68(ptr) AccessChain 17 67 + 84: 13(ivec3) Load 83 + 85: 38(ivec4) ImageRead 82 84 + 92: 91(ptr) AccessChain 88(psout) 18 + Store 92 90 + 94: 93(ptr) AccessChain 88(psout) 44 + Store 94 89 + 97: 91(ptr) AccessChain 88(psout) 18 + 98: 22(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 88(psout) 44 + 102: 6(float) Load 101 + Store 100(Depth) 102 + Return + FunctionEnd diff --git a/Test/hlsl.getdimensions.rw.dx10.frag b/Test/hlsl.getdimensions.rw.dx10.frag new file mode 100644 index 00000000..957a8082 --- /dev/null +++ b/Test/hlsl.getdimensions.rw.dx10.frag @@ -0,0 +1,96 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + float WidthF; + float HeightF; + float ElementsF; + float DepthF; + float NumberOfLevelsF; + float NumberOfSamplesF; + + // 1D, float/int/uint, uint params + g_tTex1df4.GetDimensions(WidthU); + g_tTex1di4.GetDimensions(WidthU); + g_tTex1du4.GetDimensions(WidthU); + + // buffer, float/int/uint, uint params + g_tBuffF.GetDimensions(WidthU); + g_tBuffI.GetDimensions(WidthU); + g_tBuffU.GetDimensions(WidthU); + + // 1DArray, float/int/uint, uint params + g_tTex1df4a.GetDimensions(WidthU, ElementsU); + g_tTex1di4a.GetDimensions(WidthU, ElementsU); + g_tTex1du4a.GetDimensions(WidthU, ElementsU); + + // 2D, float/int/uint, uint params + g_tTex2df4.GetDimensions(WidthU, HeightU); + g_tTex2di4.GetDimensions(WidthU, HeightU); + g_tTex2du4.GetDimensions(WidthU, HeightU); + + // 2DArray, float/int/uint, uint params + g_tTex2df4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2di4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2du4a.GetDimensions(WidthU, HeightU, ElementsU); + + // 3D, float/int/uint, uint params + g_tTex3df4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3di4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3du4.GetDimensions(WidthU, HeightU, DepthU); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwbuffer.dx10.frag b/Test/hlsl.load.rwbuffer.dx10.frag new file mode 100644 index 00000000..accd5f0c --- /dev/null +++ b/Test/hlsl.load.rwbuffer.dx10.frag @@ -0,0 +1,32 @@ + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + g_tBuffF.Load(c1); + g_tBuffU.Load(c1); + g_tBuffI.Load(c1); + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwtexture.array.dx10.frag b/Test/hlsl.load.rwtexture.array.dx10.frag new file mode 100644 index 00000000..38e29096 --- /dev/null +++ b/Test/hlsl.load.rwtexture.array.dx10.frag @@ -0,0 +1,57 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4a.Load(c2); + g_tTex1di4a.Load(c2); + g_tTex1du4a.Load(c2); + + // 2D + g_tTex2df4a.Load(c3); + g_tTex2di4a.Load(c3); + g_tTex2du4a.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwtexture.dx10.frag b/Test/hlsl.load.rwtexture.dx10.frag new file mode 100644 index 00000000..c0950776 --- /dev/null +++ b/Test/hlsl.load.rwtexture.dx10.frag @@ -0,0 +1,62 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c1); + g_tTex1di4.Load(c1); + g_tTex1du4.Load(c1); + + // 2D + g_tTex2df4.Load(c2); + g_tTex2di4.Load(c2); + g_tTex2du4.Load(c2); + + // 3D + g_tTex3df4.Load(c3); + g_tTex3di4.Load(c3); + g_tTex3du4.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b587b0d6..90b62d15 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -111,6 +111,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.gatherRGBA.offset.dx10.frag", "main"}, {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.frag", "main"}, + {"hlsl.getdimensions.rw.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.getsampleposition.dx10.frag", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, @@ -133,6 +134,9 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.buffer.dx10.frag", "main"}, + {"hlsl.load.rwbuffer.dx10.frag", "main"}, + {"hlsl.load.rwtexture.dx10.frag", "main"}, + {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index b41618c2..626d2991 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -460,8 +460,14 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) // further, it can create an anonymous instance of the block if (peekTokenClass(EHTokSemicolon)) parseContext.declareBlock(loc, type); - } else + } else { + // Some qualifiers are set when parsing the type. Merge those with + // whatever comes from acceptQualifier. + assert(qualifier.layoutFormat == ElfNone); + qualifier.layoutFormat = type.getQualifier().layoutFormat; + type.getQualifier() = qualifier; + } return true; } @@ -827,6 +833,13 @@ bool HlslGrammar::acceptSamplerType(TType& type) // | TEXTURECUBEARRAY // | TEXTURE2DMS // | TEXTURE2DMSARRAY +// | RWBUFFER +// | RWTEXTURE1D +// | RWTEXTURE1DARRAY +// | RWTEXTURE2D +// | RWTEXTURE2DARRAY +// | RWTEXTURE3D + bool HlslGrammar::acceptTextureType(TType& type) { const EHlslTokenClass textureType = peek(); @@ -834,6 +847,7 @@ bool HlslGrammar::acceptTextureType(TType& type) TSamplerDim dim = EsdNone; bool array = false; bool ms = false; + bool image = false; switch (textureType) { case EHTokBuffer: dim = EsdBuffer; break; @@ -846,6 +860,12 @@ bool HlslGrammar::acceptTextureType(TType& type) case EHTokTextureCubearray: dim = EsdCube; array = true; break; case EHTokTexture2DMS: dim = Esd2D; ms = true; break; case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; + case EHTokRWBuffer: dim = EsdBuffer; image=true; break; + case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; + case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; + case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; + case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; + case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; default: return false; // not a texture declaration } @@ -856,7 +876,7 @@ bool HlslGrammar::acceptTextureType(TType& type) TIntermTyped* msCount = nullptr; - // texture type: required for multisample types! + // texture type: required for multisample types and RWBuffer/RWTextures! if (acceptTokenClass(EHTokLeftAngle)) { if (! acceptType(txType)) { expected("scalar or vector type"); @@ -911,22 +931,45 @@ bool HlslGrammar::acceptTextureType(TType& type) } else if (ms) { expected("texture type for multisample"); return false; + } else if (image) { + expected("type for RWTexture/RWBuffer"); + return false; } TArraySizes* arraySizes = nullptr; - const bool shadow = txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1); + const bool shadow = !image && (txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1)); TSampler sampler; + TLayoutFormat format = ElfNone; - // Buffers are combined. - if (dim == EsdBuffer) { + // RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. + if (image) { + if (txType.getVectorSize() != 4) + expected("4 component image"); + + switch (txType.getBasicType()) { + case EbtFloat: format = ElfRgba32f; break; + case EbtInt: format = ElfRgba32i; break; + case EbtUint: format = ElfRgba32ui; break; + default: + expected("unknown basic type in image format"); + } + } + + // Non-image Buffers are combined + if (dim == EsdBuffer && !image) { sampler.set(txType.getBasicType(), dim, array); } else { // DX10 textures are separated. TODO: DX9. - sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + if (image) { + sampler.setImage(txType.getBasicType(), dim, array, shadow, ms); + } else { + sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + } } type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + type.getQualifier().layoutFormat = format; return true; } @@ -966,6 +1009,12 @@ bool HlslGrammar::acceptType(TType& type) case EHTokTextureCubearray: // ... case EHTokTexture2DMS: // ... case EHTokTexture2DMSarray: // ... + case EHTokRWTexture1d: // ... + case EHTokRWTexture1darray: // ... + case EHTokRWTexture2d: // ... + case EHTokRWTexture2darray: // ... + case EHTokRWTexture3d: // ... + case EHTokRWBuffer: // ... return acceptTextureType(type); break; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 08ffd580..d02d193e 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1252,15 +1252,17 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const TSampler& texSampler = texType.getSampler(); const TSamplerDim dim = texSampler.dim; + const bool isImage = texSampler.isImage(); const int numArgs = (int)argAggregate->getSequence().size(); int numDims = 0; switch (dim) { - case Esd1D: numDims = 1; break; // W - case Esd2D: numDims = 2; break; // W, H - case Esd3D: numDims = 3; break; // W, H, D - case EsdCube: numDims = 2; break; // W, H (cube) + case Esd1D: numDims = 1; break; // W + case Esd2D: numDims = 2; break; // W, H + case Esd3D: numDims = 3; break; // W, H, D + case EsdCube: numDims = 2; break; // W, H (cube) + case EsdBuffer: numDims = 1; break; // buffers default: assert(0 && "unhandled texture dimension"); } @@ -1273,7 +1275,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample()); // AST assumes integer return. Will be converted to float if required. - TIntermAggregate* sizeQuery = new TIntermAggregate(EOpTextureQuerySize); + TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize); sizeQuery->getSequence().push_back(argTex); // If we're querying an explicit LOD, add the LOD, which is always arg #1 if (mipQuery) { @@ -1419,11 +1421,12 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const bool isMS = argTex->getType().getSampler().isMultiSample(); const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer; + const bool isImage = argTex->getType().getSampler().isImage(); const TBasicType coordBaseType = argCoord->getType().getBasicType(); // Last component of coordinate is the mip level, for non-MS. we separate them here: - if (isMS || isBuffer) { - // MS and Buffer have no LOD + if (isMS || isBuffer || isImage) { + // MS, Buffer, and Image have no LOD coordSwizzle = argCoord; } else { // Extract coordinate @@ -1443,7 +1446,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); // Create texel fetch - const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); + const TOperator fetchOp = (isImage ? EOpImageLoad : + hasOffset ? EOpTextureFetchOffset : + EOpTextureFetch); TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); // Build up the fetch @@ -1456,6 +1461,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argSampleIdx); } else if (isBuffer) { // Nothing else to do for buffers. + } else if (isImage) { + // Nothing else to do for images. } else { // 2DMS and buffer have no LOD, but everything else does. txfetch->getSequence().push_back(lodComponent); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 3f725997..a2d500f2 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -67,20 +67,21 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } -bool IsTextureArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&'; } -bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } -bool IsBuffer(const char argOrder) { return argOrder == '*'; } +bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } +bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } +bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } +bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } +bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } bool IsTextureType(const char argOrder) { - return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder); + return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder) | IsImage(argOrder); } // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { - const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isArrayed = IsArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); const bool isBuffer = IsBuffer(*argOrder); @@ -153,9 +154,9 @@ int CoordinateArgPos(const glslang::TString& name, bool isTexture) } // Some texture methods use an addition coordinate dimension for the mip -bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer) +bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer, bool isImage) { - return name == "Load" && !isMS && !isBuffer; + return name == "Load" && !isMS && !isBuffer && !isImage; } // LOD calculations don't pass the array level in the coordinate. @@ -219,10 +220,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons { const bool isTranspose = (argOrder[0] == '^'); const bool isTexture = IsTextureType(argOrder[0]); - const bool isArrayed = IsTextureArrayed(argOrder[0]); + const bool isArrayed = IsArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); const bool isMS = IsTextureMS(argOrder[0]); const bool isBuffer = IsBuffer(argOrder[0]); + const bool isImage = IsImage(argOrder[0]); char type = *argType; @@ -253,9 +255,15 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons case 'B': s += "bool"; break; case 'S': s += "sampler"; break; case 's': s += "SamplerComparisonState"; break; - case 'T': s += (isBuffer ? "Buffer" : "Texture"); break; - case 'i': s += (isBuffer ? "Buffer " : "Texture "); break; - case 'u': s += (isBuffer ? "Buffer " : "Texture "); break; + case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'i': s += ((isBuffer && isImage) ? "RWBuffer " : + isBuffer ? "Buffer " : + isImage ? "RWTexture " : "Texture "); break; + case 'u': s += ((isBuffer && isImage) ? "RWBuffer " : + isBuffer ? "Buffer " : + isImage ? "RWTexture " : "Texture ");break; default: s += "UNKNOWN_TYPE"; break; } } else { @@ -274,7 +282,10 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (type != 'T') // create itexture, utexture, etc s += type; - s += (isBuffer ? "samplerBuffer" : "texture"); + s += ((isImage && isBuffer) ? "imageBuffer" : + isImage ? "image" : + isBuffer ? "samplerBuffer" : + "texture"); break; default: s += "UNKNOWN_TYPE"; break; @@ -507,6 +518,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '@' as first letter of order creates arrayed texture of given type // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures // '*' as first letter of order creates buffer object + // '!' as first letter of order creates image object + // '#' as first letter of order creates arrayed image object + // '~' as first letter of order creates an image buffer object static const struct { const char* name; // intrinsic name @@ -699,6 +713,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, + // RWTexture loads + { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll }, + // RWBuffer loads + { "Load", "V4", nullptr, "~1,V", "FIU,I", EShLangAll }, + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, @@ -710,36 +729,36 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels - { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll }, // UINT Width, UINT Elements // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // UINT Width, UINT Height, UINT Depth // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels - { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll }, @@ -836,10 +855,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); - const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isArrayed = IsArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); const bool isBuffer = IsBuffer(*argOrder); - const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer); + const bool isImage = IsImage(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer, isImage); const int fixedVecSize = FixedVecSize(argOrder); const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index cf83ef39..f25bdd8c 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -258,6 +258,13 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; + (*KeywordMap)["RWTexture1D"] = EHTokRWTexture1d; + (*KeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; + (*KeywordMap)["RWTexture2D"] = EHTokRWTexture2d; + (*KeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; + (*KeywordMap)["RWTexture3D"] = EHTokRWTexture3d; + (*KeywordMap)["RWBuffer"] = EHTokRWBuffer; + (*KeywordMap)["struct"] = EHTokStruct; (*KeywordMap)["cbuffer"] = EHTokCBuffer; @@ -581,6 +588,12 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokTextureCubearray: case EHTokTexture2DMS: case EHTokTexture2DMSarray: + case EHTokRWTexture1d: + case EHTokRWTexture1darray: + case EHTokRWTexture2d: + case EHTokRWTexture2darray: + case EHTokRWTexture3d: + case EHTokRWBuffer: return keyword; // variable, user type, ... diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index e38cb9a6..2994001d 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -209,6 +209,13 @@ enum EHlslTokenClass { EHTokTextureCubearray, EHTokTexture2DMS, EHTokTexture2DMSarray, + EHTokRWTexture1d, + EHTokRWTexture1darray, + EHTokRWTexture2d, + EHTokRWTexture2darray, + EHTokRWTexture3d, + EHTokRWBuffer, + // variable, user type, ... EHTokIdentifier, From ed33e057628ff29215a298d1ce96ee365eaaea76 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 6 Oct 2016 12:59:51 -0600 Subject: [PATCH 180/217] HLSL: Do structure conversion for return type struct-punning on non-entry-point functions. --- SPIRV/GlslangToSpv.cpp | 26 ++-- Test/baseResults/hlsl.multiReturn.frag.out | 113 ++++++++++++++++++ ...map.hlsl.templatetypes.everything.frag.out | 15 +-- .../remap.hlsl.templatetypes.none.frag.out | 5 +- Test/hlsl.multiReturn.frag | 19 +++ Test/remap.hlsl.templatetypes.everything.frag | 2 +- Test/remap.hlsl.templatetypes.none.frag | 2 +- glslang/Include/revision.h | 4 +- gtests/Hlsl.FromFile.cpp | 1 + 9 files changed, 167 insertions(+), 20 deletions(-) create mode 100755 Test/baseResults/hlsl.multiReturn.frag.out create mode 100755 Test/hlsl.multiReturn.frag diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 40ff9b4e..5ecb6ab9 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -172,6 +172,7 @@ protected: spv::Id getExtBuiltins(const char* name); spv::Function* shaderEntry; + spv::Function* currentFunction; spv::Instruction* entryPoint; int sequenceDepth; @@ -733,7 +734,8 @@ bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifie // TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* glslangIntermediate, spv::SpvBuildLogger* buildLogger) - : TIntermTraverser(true, false, true), shaderEntry(0), sequenceDepth(0), logger(buildLogger), + : TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr), + sequenceDepth(0), logger(buildLogger), builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger), inMain(false), mainTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) @@ -1351,6 +1353,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt if (isShaderEntryPoint(node)) { inMain = true; builder.setBuildPoint(shaderEntry->getLastBlock()); + currentFunction = shaderEntry; } else { handleFunctionEntry(node); } @@ -1858,9 +1861,18 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T builder.createLoopContinue(); break; case glslang::EOpReturn: - if (node->getExpression()) - builder.makeReturn(false, accessChainLoad(node->getExpression()->getType())); - else + if (node->getExpression()) { + const glslang::TType& glslangReturnType = node->getExpression()->getType(); + spv::Id returnId = accessChainLoad(glslangReturnType); + if (builder.getTypeId(returnId) != currentFunction->getReturnType()) { + builder.clearAccessChain(); + spv::Id copyId = builder.createVariable(spv::StorageClassFunction, currentFunction->getReturnType()); + builder.setAccessChainLValue(copyId); + multiTypeStore(glslangReturnType, returnId); + returnId = builder.createLoad(copyId); + } + builder.makeReturn(false, returnId); + } else builder.makeReturn(false); builder.clearAccessChain(); @@ -2332,7 +2344,7 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I // SPIR-V level. // // This especially happens when a single glslang type expands to multiple -// SPIR-V types, like a struct that is used in an member-undecorated way as well +// SPIR-V types, like a struct that is used in a member-undecorated way as well // as in a member-decorated way. // // NOTE: This function can handle any store request; if it's not special it @@ -2599,8 +2611,8 @@ void TGlslangToSpvTraverser::handleFunctionEntry(const glslang::TIntermAggregate { // SPIR-V functions should already be in the functionMap from the prepass // that called makeFunctions(). - spv::Function* function = functionMap[node->getName().c_str()]; - spv::Block* functionBlock = function->getEntryBlock(); + currentFunction = functionMap[node->getName().c_str()]; + spv::Block* functionBlock = currentFunction->getEntryBlock(); builder.setBuildPoint(functionBlock); } diff --git a/Test/baseResults/hlsl.multiReturn.frag.out b/Test/baseResults/hlsl.multiReturn.frag.out new file mode 100755 index 00000000..80d7f166 --- /dev/null +++ b/Test/baseResults/hlsl.multiReturn.frag.out @@ -0,0 +1,113 @@ +hlsl.multiReturn.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "f" + MemberName 9(S) 1 "v" + MemberName 9(S) 2 "m" + Name 11 "foo(" + Name 13 "S" + MemberName 13(S) 0 "f" + MemberName 13(S) 1 "v" + MemberName 13(S) 2 "m" + Name 14 "bufName" + MemberName 14(bufName) 0 "s" + Name 16 "" + MemberDecorate 13(S) 0 Offset 0 + MemberDecorate 13(S) 1 Offset 16 + MemberDecorate 13(S) 2 RowMajor + MemberDecorate 13(S) 2 Offset 32 + MemberDecorate 13(S) 2 MatrixStride 16 + MemberDecorate 14(bufName) 0 Offset 0 + Decorate 14(bufName) Block + Decorate 16 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9(S): TypeStruct 6(float) 7(fvec3) 8 + 10: TypeFunction 9(S) + 13(S): TypeStruct 6(float) 7(fvec3) 8 + 14(bufName): TypeStruct 13(S) + 15: TypePointer Uniform 14(bufName) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 13(S) + 22: TypePointer Function 9(S) + 25: TypePointer Function 6(float) + 28: 17(int) Constant 1 + 29: TypePointer Function 7(fvec3) + 32: 17(int) Constant 2 + 33: TypePointer Function 8 + 4(main): 2 Function None 3 + 5: Label + 38: 9(S) FunctionCall 11(foo() + Return + FunctionEnd + 11(foo(): 9(S) Function None 10 + 12: Label + 23: 22(ptr) Variable Function + 20: 19(ptr) AccessChain 16 18 + 21: 13(S) Load 20 + 24: 6(float) CompositeExtract 21 0 + 26: 25(ptr) AccessChain 23 18 + Store 26 24 + 27: 7(fvec3) CompositeExtract 21 1 + 30: 29(ptr) AccessChain 23 28 + Store 30 27 + 31: 8 CompositeExtract 21 2 + 34: 33(ptr) AccessChain 23 32 + Store 34 31 + 35: 9(S) Load 23 + ReturnValue 35 + FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index 7a40f944..63eb6cbb 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 16123 +// Id's are bound by 9012 Capability Shader Capability Float64 @@ -20,11 +20,12 @@ Linked fragment stage: 13: TypeFloat 32 29: TypeVector 13(float) 4 2572: 13(float) Constant 0 - 666: TypePointer Output 29(fvec4) - 4045: 666(ptr) Variable Output - 667: TypePointer Input 29(fvec4) - 4872: 667(ptr) Variable Input + 650: TypePointer Output 13(float) + 4045: 650(ptr) Variable Output + 666: TypePointer Input 29(fvec4) + 4872: 666(ptr) Variable Input 5663: 8 Function None 1282 - 16122: Label - ReturnValue 2572 + 9011: Label + Store 4045 2572 + Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 340198b3..df0dcf55 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -159,7 +159,7 @@ Linked fragment stage: 142: 69(fvec3) ConstantComposite 109 111 112 143: 69(fvec3) ConstantComposite 113 114 116 144: 139 ConstantComposite 72 126 142 143 - 145: TypePointer Output 7(fvec4) + 145: TypePointer Output 6(float) 146(@entryPointOutput): 145(ptr) Variable Output 147: TypePointer Input 7(fvec4) 148(input): 147(ptr) Variable Input @@ -221,5 +221,6 @@ Linked fragment stage: Store 130(r62) 133 Store 136(r65) 138 Store 141(r66) 144 - ReturnValue 106 + Store 146(@entryPointOutput) 106 + Return FunctionEnd diff --git a/Test/hlsl.multiReturn.frag b/Test/hlsl.multiReturn.frag new file mode 100755 index 00000000..fdab7721 --- /dev/null +++ b/Test/hlsl.multiReturn.frag @@ -0,0 +1,19 @@ +struct S { + float f; + float3 v; + float3x3 m; +}; + +cbuffer bufName { + S s; +}; + +S foo() +{ + return s; +} + +void main() +{ + foo(); +} diff --git a/Test/remap.hlsl.templatetypes.everything.frag b/Test/remap.hlsl.templatetypes.everything.frag index bacd6f56..f48c98a7 100644 --- a/Test/remap.hlsl.templatetypes.everything.frag +++ b/Test/remap.hlsl.templatetypes.everything.frag @@ -1,5 +1,5 @@ -float4 main(float4 input) : COLOR0 +float main(float4 input) : COLOR0 { vector r00 = float4(1,2,3,4); // vector means float4 float4 r01 = vector(2,3,4,5); // vector means float4 diff --git a/Test/remap.hlsl.templatetypes.none.frag b/Test/remap.hlsl.templatetypes.none.frag index bacd6f56..f48c98a7 100644 --- a/Test/remap.hlsl.templatetypes.none.frag +++ b/Test/remap.hlsl.templatetypes.none.frag @@ -1,5 +1,5 @@ -float4 main(float4 input) : COLOR0 +float main(float4 input) : COLOR0 { vector r00 = float4(1,2,3,4); // vector means float4 float4 r01 = vector(2,3,4,5); // vector means float4 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 304acc34..4b7b8a2e 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1553" -#define GLSLANG_DATE "05-Oct-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1556" +#define GLSLANG_DATE "06-Oct-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 90b62d15..6d2a9545 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -140,6 +140,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, + {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.overload.frag", "PixelShaderFunction"}, From 087a454af2ffedbb7bdf4656e1ea0ca05025f7dd Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 6 Oct 2016 16:56:54 -0600 Subject: [PATCH 181/217] HLSL: Add shape conversions for return values. --- Test/baseResults/hlsl.shapeConvRet.frag.out | 94 +++++++++++++++++++++ Test/hlsl.shapeConvRet.frag | 9 ++ glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 1 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 13 ++- 6 files changed, 112 insertions(+), 8 deletions(-) create mode 100755 Test/baseResults/hlsl.shapeConvRet.frag.out create mode 100755 Test/hlsl.shapeConvRet.frag diff --git a/Test/baseResults/hlsl.shapeConvRet.frag.out b/Test/baseResults/hlsl.shapeConvRet.frag.out new file mode 100755 index 00000000..c2137870 --- /dev/null +++ b/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -0,0 +1,94 @@ +hlsl.shapeConvRet.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 18 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "foo(" + Name 18 "@entryPointOutput" + Name 20 "f" + Decorate 18(@entryPointOutput) Location 0 + Decorate 20(f) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypeFunction 7(ivec3) + 11: 6(int) Constant 13 + 12: 7(ivec3) ConstantComposite 11 11 11 + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Output 16(fvec4) +18(@entryPointOutput): 17(ptr) Variable Output + 19: TypePointer Input 15(float) + 20(f): 19(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 21: 15(float) Load 20(f) + 22: 16(fvec4) CompositeConstruct 21 21 21 21 + Store 18(@entryPointOutput) 22 + Return + FunctionEnd + 9(foo(): 7(ivec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/Test/hlsl.shapeConvRet.frag b/Test/hlsl.shapeConvRet.frag new file mode 100755 index 00000000..7d775582 --- /dev/null +++ b/Test/hlsl.shapeConvRet.frag @@ -0,0 +1,9 @@ +int3 foo() +{ + return 13; +} + +float4 main(float f) +{ + return f; +} diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4b7b8a2e..4224a0a6 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1556" +#define GLSLANG_REVISION "Overload400-PrecQual.1559" #define GLSLANG_DATE "06-Oct-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 97556202..58bc8a5b 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -768,6 +768,7 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, case EOpEqual: case EOpNotEqual: case EOpFunctionCall: + case EOpReturn: break; default: return node; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 6d2a9545..7b642171 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -175,6 +175,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, + {"hlsl.shapeConvRet.frag", "main"}, {"hlsl.stringtoken.frag", "main"}, {"hlsl.string.frag", "main"}, {"hlsl.structin.vert", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index d02d193e..066426d4 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -888,18 +888,17 @@ void HlslParseContext::remapNonEntryPointIO(TFunction& function) TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { functionReturnsValue = true; - TIntermTyped* converted = value; if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { - converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); - if (converted) { - return intermediate.addBranch(EOpReturn, converted, loc); - } else { + value = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + if (value && *currentFunctionType != value->getType()) + value = intermediate.addShapeConversion(EOpReturn, *currentFunctionType, value); + if (value == nullptr) { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - converted = value; + return value; } } @@ -912,7 +911,7 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT assert(entryPointOutput != nullptr); // should have been error tested at the beginning TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), entryPointOutput->getType()); - TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, converted); + TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, value); returnSequence = intermediate.makeAggregate(returnSequence); returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc), loc); returnSequence->getAsAggregate()->setOperator(EOpSequence); From 19bdf90eba71390f04bb85226337517df65d73e2 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 7 Oct 2016 11:50:25 -0600 Subject: [PATCH 182/217] SPV: Distinguish between SPV and non-SPV rules for member overlap. --- Test/baseResults/spv.offsets.frag.out | 59 ++++++++++++++++++++++ Test/spv.offsets.frag | 17 +++++++ glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 23 ++++++--- gtests/Spv.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 5 -- 6 files changed, 94 insertions(+), 15 deletions(-) create mode 100755 Test/baseResults/spv.offsets.frag.out create mode 100755 Test/spv.offsets.frag diff --git a/Test/baseResults/spv.offsets.frag.out b/Test/baseResults/spv.offsets.frag.out new file mode 100755 index 00000000..b0091eaa --- /dev/null +++ b/Test/baseResults/spv.offsets.frag.out @@ -0,0 +1,59 @@ +spv.offsets.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 7 "n1" + MemberName 7(n1) 0 "a" + MemberName 7(n1) 1 "b" + MemberName 7(n1) 2 "c" + MemberName 7(n1) 3 "d" + Name 9 "i1" + Name 12 "n2" + MemberName 12(n2) 0 "e" + MemberName 12(n2) 1 "f" + MemberName 12(n2) 2 "g" + MemberName 12(n2) 3 "h" + Name 14 "i2" + MemberDecorate 7(n1) 0 Offset 8 + MemberDecorate 7(n1) 1 Offset 4 + MemberDecorate 7(n1) 2 Offset 0 + MemberDecorate 7(n1) 3 Offset 12 + Decorate 7(n1) Block + Decorate 9(i1) DescriptorSet 0 + Decorate 9(i1) Binding 0 + MemberDecorate 12(n2) 0 Offset 32 + MemberDecorate 12(n2) 1 Offset 48 + MemberDecorate 12(n2) 2 Offset 16 + MemberDecorate 12(n2) 3 Offset 0 + Decorate 12(n2) BufferBlock + Decorate 14(i2) DescriptorSet 0 + Decorate 14(i2) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(n1): TypeStruct 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Uniform 7(n1) + 9(i1): 8(ptr) Variable Uniform + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12(n2): TypeStruct 11(fvec3) 11(fvec3) 11(fvec3) 11(fvec3) + 13: TypePointer Uniform 12(n2) + 14(i2): 13(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/spv.offsets.frag b/Test/spv.offsets.frag new file mode 100755 index 00000000..0a1c008c --- /dev/null +++ b/Test/spv.offsets.frag @@ -0,0 +1,17 @@ +#version 450 + +layout(set = 0, binding = 0, std140) uniform n1 { + layout(offset = 8) int a; + layout(offset = 4) int b; + layout(offset = 0) int c; + layout(offset = 12) int d; +} i1; + +layout(set = 0, binding = 1, std430) buffer n2 { + layout(offset = 32) vec3 e; + vec3 f; + layout(offset = 16) vec3 g; + layout(offset = 0) vec3 h; +} i2; + +void main() {} \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4224a0a6..0521e2e8 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1559" -#define GLSLANG_DATE "06-Oct-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1560" +#define GLSLANG_DATE "07-Oct-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 13f277d7..68d070c7 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -5946,16 +5946,23 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ if (! IsMultipleOfPow2(memberQualifier.layoutOffset, memberAlignment)) error(memberLoc, "must be a multiple of the member's alignment", "offset", ""); - // "It is a compile-time error to specify an offset that is smaller than the offset of the previous + // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous // member in the block or that lies within the previous member of the block" - if (memberQualifier.layoutOffset < offset) - error(memberLoc, "cannot lie in previous members", "offset", ""); + if (spvVersion.spv == 0) { + if (memberQualifier.layoutOffset < offset) + error(memberLoc, "cannot lie in previous members", "offset", ""); - // "The offset qualifier forces the qualified member to start at or after the specified - // integral-constant expression, which will be its byte offset from the beginning of the buffer. - // "The actual offset of a member is computed as - // follows: If offset was declared, start with that offset, otherwise start with the next available offset." - offset = std::max(offset, memberQualifier.layoutOffset); + // "The offset qualifier forces the qualified member to start at or after the specified + // integral-constant expression, which will be its byte offset from the beginning of the buffer. + // "The actual offset of a member is computed as + // follows: If offset was declared, start with that offset, otherwise start with the next available offset." + offset = std::max(offset, memberQualifier.layoutOffset); + } else { + // TODO: Vulkan: "It is a compile-time error to have any offset, explicit or assigned, + // that lies within another member of the block." + + offset = memberQualifier.layoutOffset; + } } // "The actual alignment of a member will be the greater of the specified align alignment and the standard diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 533733df..f109911e 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -230,6 +230,7 @@ INSTANTIATE_TEST_CASE_P( "spv.newTexture.frag", "spv.noDeadDecorations.vert", "spv.nonSquare.vert", + "spv.offsets.frag", "spv.Operations.frag", "spv.intOps.vert", "spv.precision.frag", diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 066426d4..1fe40929 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4731,11 +4731,6 @@ void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TType if (! IsMultipleOfPow2(memberQualifier.layoutOffset, memberAlignment)) error(memberLoc, "must be a multiple of the member's alignment", "offset", ""); - // "It is a compile-time error to specify an offset that is smaller than the offset of the previous - // member in the block or that lies within the previous member of the block" - if (memberQualifier.layoutOffset < offset) - error(memberLoc, "cannot lie in previous members", "offset", ""); - // "The offset qualifier forces the qualified member to start at or after the specified // integral-constant expression, which will be its byte offset from the beginning of the buffer. // "The actual offset of a member is computed as From 49ad2b72a1826801ca1f1ab240b4286b23e23925 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 8 Oct 2016 22:07:20 -0300 Subject: [PATCH 183/217] Address some compiler warnings. - Add explicit casts from long to int. - Comment out method argument names that are unused. - Always initialize a boolean variable before it's read. --- glslang/Include/InfoSink.h | 2 +- glslang/MachineIndependent/ParseContextBase.cpp | 4 ++-- glslang/MachineIndependent/ParseHelper.cpp | 2 +- glslang/MachineIndependent/preprocessor/PpTokens.cpp | 4 ++-- glslang/MachineIndependent/propagateNoContraction.cpp | 2 +- hlsl/hlslParseHelper.cpp | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/glslang/Include/InfoSink.h b/glslang/Include/InfoSink.h index aa02f914..ee605ab3 100644 --- a/glslang/Include/InfoSink.h +++ b/glslang/Include/InfoSink.h @@ -74,7 +74,7 @@ public: TInfoSinkBase& operator<<(const char* s) { append(s); return *this; } TInfoSinkBase& operator<<(int n) { append(String(n)); return *this; } TInfoSinkBase& operator<<(unsigned int n) { append(String(n)); return *this; } - TInfoSinkBase& operator<<(long unsigned int n) { append(String(n)); return *this; } + TInfoSinkBase& operator<<(long unsigned int n) { append(String((int)n)); return *this; } TInfoSinkBase& operator<<(float n) { const int size = 40; char buf[size]; snprintf(buf, size, (fabs(n) > 1e-8 && fabs(n) < 1e8) || n == 0.0f ? "%f" : "%g", n); append(buf); diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index b92effce..fe2b8e6b 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -320,8 +320,8 @@ bool TParseContextBase::insertGlobalUniformBlock() if (globalUniformBlock == nullptr) return true; - int numMembers = globalUniformBlock->getType().getStruct()->size(); - bool inserted; + int numMembers = (int)globalUniformBlock->getType().getStruct()->size(); + bool inserted = false; if (firstNewMember == 0) { // This is the first request; we need a normal symbol table insert inserted = symbolTable.insert(*globalUniformBlock); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 68d070c7..949ba007 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1813,7 +1813,7 @@ TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPu } // Handle seeing a precision qualifier in the grammar. -void TParseContext::handlePrecisionQualifier(const TSourceLoc& loc, TQualifier& qualifier, TPrecisionQualifier precision) +void TParseContext::handlePrecisionQualifier(const TSourceLoc& /*loc*/, TQualifier& qualifier, TPrecisionQualifier precision) { if (obeyPrecisionQualifiers()) qualifier.precision = precision; diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index 48e2e7a3..23b617d3 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -235,9 +235,9 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) case PpAtomConstInt: if (len > 0 && tokenText[0] == '0') { if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->ival = strtol(ppToken->name, 0, 16); + ppToken->ival = (int)strtol(ppToken->name, 0, 16); else - ppToken->ival = strtol(ppToken->name, 0, 8); + ppToken->ival = (int)strtol(ppToken->name, 0, 8); } else ppToken->ival = atoi(ppToken->name); break; diff --git a/glslang/MachineIndependent/propagateNoContraction.cpp b/glslang/MachineIndependent/propagateNoContraction.cpp index e599f4d9..caa6e200 100644 --- a/glslang/MachineIndependent/propagateNoContraction.cpp +++ b/glslang/MachineIndependent/propagateNoContraction.cpp @@ -670,7 +670,7 @@ protected: // Gets the struct dereference index that leads to 'precise' object. ObjectAccessChain precise_accesschain_index_str = getFrontElement(remained_accesschain_); - unsigned precise_accesschain_index = strtoul(precise_accesschain_index_str.c_str(), nullptr, 10); + unsigned precise_accesschain_index = (unsigned)strtoul(precise_accesschain_index_str.c_str(), nullptr, 10); // Gets the node pointed by the access chain index extracted before. glslang::TIntermTyped* potential_precise_node = node->getSequence()[precise_accesschain_index]->getAsTyped(); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 1fe40929..4eda44d7 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -966,7 +966,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op // Track how many items there are to copy. if (left->getType().isStruct()) - memberCount = left->getType().getStruct()->size(); + memberCount = (int)left->getType().getStruct()->size(); if (left->getType().isArray()) memberCount = left->getType().getCumulativeArraySize(); @@ -3980,7 +3980,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes) +void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* /*arraySizes*/) { TType type; type.deepCopy(parseType); From 4c25709f457e68f521d55f593edc2815e3dfc878 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Mon, 10 Oct 2016 15:38:15 +0800 Subject: [PATCH 184/217] Parser: Some function prototypes of interpolateAtXXX are incorrect. --- Test/baseResults/spv.float16.frag.out | 197 +++++++++++----------- Test/spv.float16.frag | 2 +- glslang/MachineIndependent/Initialize.cpp | 16 +- 3 files changed, 107 insertions(+), 108 deletions(-) diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out index 3c5b7815..f1fe6e4e 100644 --- a/Test/baseResults/spv.float16.frag.out +++ b/Test/baseResults/spv.float16.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 535 +// Id's are bound by 534 Capability Shader Capability Float16 @@ -81,77 +81,77 @@ Linked fragment stage: Name 445 "f16v2" Name 463 "f16v" Name 465 "if16v" - Name 515 "S" - MemberName 515(S) 0 "x" - MemberName 515(S) 1 "y" - MemberName 515(S) 2 "z" - Name 517 "B1" - MemberName 517(B1) 0 "a" - MemberName 517(B1) 1 "b" - MemberName 517(B1) 2 "c" - MemberName 517(B1) 3 "d" - MemberName 517(B1) 4 "e" - MemberName 517(B1) 5 "f" - MemberName 517(B1) 6 "g" - MemberName 517(B1) 7 "h" - Name 519 "" - Name 522 "S" - MemberName 522(S) 0 "x" - MemberName 522(S) 1 "y" - MemberName 522(S) 2 "z" - Name 524 "B2" - MemberName 524(B2) 0 "o" - MemberName 524(B2) 1 "p" - MemberName 524(B2) 2 "q" - MemberName 524(B2) 3 "r" - MemberName 524(B2) 4 "s" - MemberName 524(B2) 5 "t" - MemberName 524(B2) 6 "u" - MemberName 524(B2) 7 "v" - Name 526 "" - Decorate 513 ArrayStride 16 - Decorate 514 ArrayStride 32 - MemberDecorate 515(S) 0 Offset 0 - MemberDecorate 515(S) 1 Offset 4 - MemberDecorate 515(S) 2 Offset 8 - Decorate 516 ArrayStride 16 - MemberDecorate 517(B1) 0 Offset 0 - MemberDecorate 517(B1) 1 Offset 4 - MemberDecorate 517(B1) 2 Offset 8 - MemberDecorate 517(B1) 3 Offset 16 - MemberDecorate 517(B1) 4 ColMajor - MemberDecorate 517(B1) 4 Offset 48 - MemberDecorate 517(B1) 4 MatrixStride 16 - MemberDecorate 517(B1) 5 ColMajor - MemberDecorate 517(B1) 5 Offset 80 - MemberDecorate 517(B1) 5 MatrixStride 16 - MemberDecorate 517(B1) 6 Offset 144 - MemberDecorate 517(B1) 7 Offset 160 - Decorate 517(B1) Block - Decorate 519 DescriptorSet 0 - Decorate 520 ArrayStride 2 - Decorate 521 ArrayStride 12 - MemberDecorate 522(S) 0 Offset 0 - MemberDecorate 522(S) 1 Offset 4 - MemberDecorate 522(S) 2 Offset 8 - Decorate 523 ArrayStride 16 - MemberDecorate 524(B2) 0 Offset 0 - MemberDecorate 524(B2) 1 Offset 4 - MemberDecorate 524(B2) 2 Offset 8 - MemberDecorate 524(B2) 3 Offset 14 - MemberDecorate 524(B2) 4 RowMajor - MemberDecorate 524(B2) 4 Offset 20 - MemberDecorate 524(B2) 4 MatrixStride 4 - MemberDecorate 524(B2) 5 RowMajor - MemberDecorate 524(B2) 5 Offset 32 - MemberDecorate 524(B2) 5 MatrixStride 4 - MemberDecorate 524(B2) 6 Offset 56 - MemberDecorate 524(B2) 7 Offset 72 - Decorate 524(B2) BufferBlock - Decorate 526 DescriptorSet 0 - Decorate 527 SpecId 100 - Decorate 528 SpecId 101 - Decorate 529 SpecId 102 + Name 514 "S" + MemberName 514(S) 0 "x" + MemberName 514(S) 1 "y" + MemberName 514(S) 2 "z" + Name 516 "B1" + MemberName 516(B1) 0 "a" + MemberName 516(B1) 1 "b" + MemberName 516(B1) 2 "c" + MemberName 516(B1) 3 "d" + MemberName 516(B1) 4 "e" + MemberName 516(B1) 5 "f" + MemberName 516(B1) 6 "g" + MemberName 516(B1) 7 "h" + Name 518 "" + Name 521 "S" + MemberName 521(S) 0 "x" + MemberName 521(S) 1 "y" + MemberName 521(S) 2 "z" + Name 523 "B2" + MemberName 523(B2) 0 "o" + MemberName 523(B2) 1 "p" + MemberName 523(B2) 2 "q" + MemberName 523(B2) 3 "r" + MemberName 523(B2) 4 "s" + MemberName 523(B2) 5 "t" + MemberName 523(B2) 6 "u" + MemberName 523(B2) 7 "v" + Name 525 "" + Decorate 512 ArrayStride 16 + Decorate 513 ArrayStride 32 + MemberDecorate 514(S) 0 Offset 0 + MemberDecorate 514(S) 1 Offset 4 + MemberDecorate 514(S) 2 Offset 8 + Decorate 515 ArrayStride 16 + MemberDecorate 516(B1) 0 Offset 0 + MemberDecorate 516(B1) 1 Offset 4 + MemberDecorate 516(B1) 2 Offset 8 + MemberDecorate 516(B1) 3 Offset 16 + MemberDecorate 516(B1) 4 ColMajor + MemberDecorate 516(B1) 4 Offset 48 + MemberDecorate 516(B1) 4 MatrixStride 16 + MemberDecorate 516(B1) 5 ColMajor + MemberDecorate 516(B1) 5 Offset 80 + MemberDecorate 516(B1) 5 MatrixStride 16 + MemberDecorate 516(B1) 6 Offset 144 + MemberDecorate 516(B1) 7 Offset 160 + Decorate 516(B1) Block + Decorate 518 DescriptorSet 0 + Decorate 519 ArrayStride 2 + Decorate 520 ArrayStride 12 + MemberDecorate 521(S) 0 Offset 0 + MemberDecorate 521(S) 1 Offset 4 + MemberDecorate 521(S) 2 Offset 8 + Decorate 522 ArrayStride 16 + MemberDecorate 523(B2) 0 Offset 0 + MemberDecorate 523(B2) 1 Offset 4 + MemberDecorate 523(B2) 2 Offset 8 + MemberDecorate 523(B2) 3 Offset 14 + MemberDecorate 523(B2) 4 RowMajor + MemberDecorate 523(B2) 4 Offset 20 + MemberDecorate 523(B2) 4 MatrixStride 4 + MemberDecorate 523(B2) 5 RowMajor + MemberDecorate 523(B2) 5 Offset 32 + MemberDecorate 523(B2) 5 MatrixStride 4 + MemberDecorate 523(B2) 6 Offset 56 + MemberDecorate 523(B2) 7 Offset 72 + Decorate 523(B2) BufferBlock + Decorate 525 DescriptorSet 0 + Decorate 526 SpecId 100 + Decorate 527 SpecId 101 + Decorate 528 SpecId 102 2: TypeVoid 3: TypeFunction 2 28: TypeFloat 16 @@ -210,32 +210,31 @@ Linked fragment stage: 465(if16v): 464(ptr) Variable Input 466: TypePointer Input 28(float) 503: 183(int) Constant 1 - 508: TypeVector 164(float) 2 - 509: 164(float) Constant 1056964608 - 510: 508(fvec2) ConstantComposite 509 509 - 512: 33(int) Constant 2 - 513: TypeArray 28(float) 512 - 514: TypeArray 406 512 - 515(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) - 516: TypeArray 515(S) 512 - 517(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 513 406 514 515(S) 516 - 518: TypePointer Uniform 517(B1) - 519: 518(ptr) Variable Uniform - 520: TypeArray 28(float) 512 - 521: TypeArray 406 512 - 522(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) - 523: TypeArray 522(S) 512 - 524(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 520 406 521 522(S) 523 - 525: TypePointer Uniform 524(B2) - 526: 525(ptr) Variable Uniform - 527: 28(float) SpecConstant 12288 - 528: 164(float) SpecConstant 1048576000 - 529: 172(float) SpecConstant 0 1071644672 - 530: 164(float) SpecConstantOp 115 527 - 531: 164(float) SpecConstantOp 115 527 - 532: 172(float) SpecConstantOp 115 531 + 508: 28(float) Constant 14336 + 509: 29(fvec2) ConstantComposite 508 508 + 511: 33(int) Constant 2 + 512: TypeArray 28(float) 511 + 513: TypeArray 406 511 + 514(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 515: TypeArray 514(S) 511 + 516(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 512 406 513 514(S) 515 + 517: TypePointer Uniform 516(B1) + 518: 517(ptr) Variable Uniform + 519: TypeArray 28(float) 511 + 520: TypeArray 406 511 + 521(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 522: TypeArray 521(S) 511 + 523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522 + 524: TypePointer Uniform 523(B2) + 525: 524(ptr) Variable Uniform + 526: 28(float) SpecConstant 12288 + 527: 164(float) SpecConstant 1048576000 + 528: 172(float) SpecConstant 0 1071644672 + 529: 164(float) SpecConstantOp 115 526 + 530: 164(float) SpecConstantOp 115 526 + 531: 172(float) SpecConstantOp 115 530 + 532: 28(float) SpecConstantOp 115 527 533: 28(float) SpecConstantOp 115 528 - 534: 28(float) SpecConstantOp 115 529 4(main): 2 Function None 3 5: Label Return @@ -831,7 +830,7 @@ Linked fragment stage: 506: 151(fvec3) Load 463(f16v) 507: 151(fvec3) VectorShuffle 506 505 3 4 2 Store 463(f16v) 507 - 511: 151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 510 - Store 463(f16v) 511 + 510: 151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 + Store 463(f16v) 510 Return FunctionEnd diff --git a/Test/spv.float16.frag b/Test/spv.float16.frag index a88e2f1c..7c94a515 100644 --- a/Test/spv.float16.frag +++ b/Test/spv.float16.frag @@ -302,5 +302,5 @@ void builtinFragProcFuncs() // Interpolation f16v.x = interpolateAtCentroid(if16v.x); f16v.xy = interpolateAtSample(if16v.xy, 1); - f16v = interpolateAtOffset(if16v, vec2(0.5)); + f16v = interpolateAtOffset(if16v, f16vec2(0.5hf)); } diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 0cead64e..c8739535 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -2336,10 +2336,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 interpolateAtVertexAMD(uvec3, uint);" "uvec4 interpolateAtVertexAMD(uvec4, uint);" - "uint interpolateAtVertexAMD(float16_t, uint);" - "uvec2 interpolateAtVertexAMD(f16vec2, uint);" - "uvec3 interpolateAtVertexAMD(f16vec3, uint);" - "uvec4 interpolateAtVertexAMD(f16vec4, uint);" + "float16_t interpolateAtVertexAMD(float16_t, uint);" + "f16vec2 interpolateAtVertexAMD(f16vec2, uint);" + "f16vec3 interpolateAtVertexAMD(f16vec3, uint);" + "f16vec4 interpolateAtVertexAMD(f16vec4, uint);" "\n"); } @@ -2402,10 +2402,10 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "f16vec3 interpolateAtSample(f16vec3, int);" "f16vec4 interpolateAtSample(f16vec4, int);" - "float16_t interpolateAtOffset(float16_t, vec2);" - "f16vec2 interpolateAtOffset(f16vec2, vec2);" - "f16vec3 interpolateAtOffset(f16vec3, vec2);" - "f16vec4 interpolateAtOffset(f16vec4, vec2);" + "float16_t interpolateAtOffset(float16_t, f16vec2);" + "f16vec2 interpolateAtOffset(f16vec2, f16vec2);" + "f16vec3 interpolateAtOffset(f16vec3, f16vec2);" + "f16vec4 interpolateAtOffset(f16vec4, f16vec2);" "\n"); } From f3b27471f8e28bfcff8c8783679fd2638d6ef3bf Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 22 Jul 2016 18:15:31 +0800 Subject: [PATCH 185/217] SPV: Implement extension SPV_KHR_shader_draw_parameters. --- SPIRV/GLSL.ext.KHR.h | 21 +--- SPIRV/GlslangToSpv.cpp | 14 ++- SPIRV/doc.cpp | 6 +- SPIRV/spirv.hpp | 16 ++- .../baseResults/spv.shaderDrawParams.vert.out | 108 ++++++++++++++++++ Test/spv.shaderDrawParams.vert | 16 +++ gtests/Spv.FromFile.cpp | 1 + 7 files changed, 158 insertions(+), 24 deletions(-) create mode 100644 Test/baseResults/spv.shaderDrawParams.vert.out create mode 100644 Test/spv.shaderDrawParams.vert diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h index 7ce795f4..344dd398 100644 --- a/SPIRV/GLSL.ext.KHR.h +++ b/SPIRV/GLSL.ext.KHR.h @@ -27,25 +27,10 @@ #ifndef GLSLextKHR_H #define GLSLextKHR_H -enum BuiltIn; -enum Op; -enum Capability; - -static const int GLSLextKHRVersion = 100; -static const int GLSLextKHRRevision = 1; - // SPV_KHR_shader_ballot -static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; +static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; -static const BuiltIn BuiltInSubgroupEqMaskKHR = static_cast(4416); -static const BuiltIn BuiltInSubgroupGeMaskKHR = static_cast(4417); -static const BuiltIn BuiltInSubgroupGtMaskKHR = static_cast(4418); -static const BuiltIn BuiltInSubgroupLeMaskKHR = static_cast(4419); -static const BuiltIn BuiltInSubgroupLtMaskKHR = static_cast(4420); - -static const Op OpSubgroupBallotKHR = static_cast(4421); -static const Op OpSubgroupFirstInvocationKHR = static_cast(4422); - -static const Capability CapabilitySubgroupBallotKHR = static_cast(4423); +// SPV_KHR_shader_draw_parameters +static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters"; #endif // #ifndef GLSLextKHR_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 5ecb6ab9..9c8b8b93 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -498,13 +498,21 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvInstanceId: return spv::BuiltInInstanceId; case glslang::EbvVertexIndex: return spv::BuiltInVertexIndex; case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; + case glslang::EbvBaseVertex: + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInBaseVertex; + case glslang::EbvBaseInstance: + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInBaseInstance; case glslang::EbvDrawId: - // TODO: Add SPIR-V builtin ID. - logger->missingFunctionality("shader draw parameters"); - return spv::BuiltInMax; + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInDrawIndex; case glslang::EbvPrimitiveId: if (glslangIntermediate->getStage() == EShLangFragment) diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index d2161dd8..0e68c7ef 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -48,7 +48,6 @@ namespace spv { extern "C" { // Include C-based headers that don't have a namespace - #include "GLSL.ext.KHR.h" #ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" #endif @@ -319,6 +318,10 @@ const char* BuiltInString(int builtIn) case 4419: return "SubgroupLeMaskKHR"; case 4420: return "SubgroupLtMaskKHR"; + case 4424: return "BaseVertex"; + case 4425: return "BaseInstance"; + case 4426: return "DrawIndex"; + #ifdef AMD_EXTENSIONS case 4992: return "BaryCoordNoPerspAMD"; case 4993: return "BaryCoordNoPerspCentroidAMD"; @@ -808,6 +811,7 @@ const char* CapabilityString(int info) default: return "Bad"; case 4423: return "SubgroupBallotKHR"; + case 4427: return "DrawParameters"; } } diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp index e3d13425..bb3c3f4c 100755 --- a/SPIRV/spirv.hpp +++ b/SPIRV/spirv.hpp @@ -47,11 +47,11 @@ namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10000 -#define SPV_REVISION 6 +#define SPV_REVISION 8 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010000; -static const unsigned int Revision = 6; +static const unsigned int Revision = 8; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; @@ -420,6 +420,14 @@ enum BuiltIn { BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, + BuiltInSubgroupEqMaskKHR = 4416, + BuiltInSubgroupGeMaskKHR = 4417, + BuiltInSubgroupGtMaskKHR = 4418, + BuiltInSubgroupLeMaskKHR = 4419, + BuiltInSubgroupLtMaskKHR = 4420, + BuiltInBaseVertex = 4424, + BuiltInBaseInstance = 4425, + BuiltInDrawIndex = 4426, BuiltInMax = 0x7fffffff, }; @@ -595,6 +603,8 @@ enum Capability { CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, + CapabilitySubgroupBallotKHR = 4423, + CapabilityDrawParameters = 4427, CapabilityMax = 0x7fffffff, }; @@ -893,6 +903,8 @@ enum Op { OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, + OpSubgroupBallotKHR = 4421, + OpSubgroupFirstInvocationKHR = 4422, OpMax = 0x7fffffff, }; diff --git a/Test/baseResults/spv.shaderDrawParams.vert.out b/Test/baseResults/spv.shaderDrawParams.vert.out new file mode 100644 index 00000000..ad538107 --- /dev/null +++ b/Test/baseResults/spv.shaderDrawParams.vert.out @@ -0,0 +1,108 @@ +spv.shaderDrawParams.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 53 + + Capability Shader + Capability DrawParameters + Extension "SPV_KHR_shader_draw_parameters" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 16 29 37 + Source GLSL 450 + SourceExtension "GL_ARB_shader_draw_parameters" + Name 4 "main" + Name 9 "gl_BaseVertexARB" + Name 16 "gl_BaseInstanceARB" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 27(gl_PerVertex) 3 "gl_CullDistance" + Name 29 "" + Name 34 "Block" + MemberName 34(Block) 0 "pos" + Name 36 "block" + Name 37 "gl_DrawIDARB" + Decorate 9(gl_BaseVertexARB) BuiltIn BaseVertex + Decorate 16(gl_BaseInstanceARB) BuiltIn BaseInstance + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 27(gl_PerVertex) Block + Decorate 31 ArrayStride 16 + Decorate 33 ArrayStride 64 + MemberDecorate 34(Block) 0 Offset 0 + Decorate 34(Block) Block + Decorate 36(block) DescriptorSet 0 + Decorate 36(block) Binding 0 + Decorate 37(gl_DrawIDARB) BuiltIn DrawIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypePointer Input 7(int) +9(gl_BaseVertexARB): 8(ptr) Variable Input + 11: 7(int) Constant 0 +16(gl_BaseInstanceARB): 8(ptr) Variable Input + 22: TypeFloat 32 + 23: TypeVector 22(float) 4 + 24: TypeInt 32 0 + 25: 24(int) Constant 1 + 26: TypeArray 22(float) 25 +27(gl_PerVertex): TypeStruct 23(fvec4) 22(float) 26 26 + 28: TypePointer Output 27(gl_PerVertex) + 29: 28(ptr) Variable Output + 30: 24(int) Constant 4 + 31: TypeArray 23(fvec4) 30 + 32: 24(int) Constant 2 + 33: TypeArray 31 32 + 34(Block): TypeStruct 33 + 35: TypePointer Uniform 34(Block) + 36(block): 35(ptr) Variable Uniform +37(gl_DrawIDARB): 8(ptr) Variable Input + 39: 7(int) Constant 4 + 41: TypePointer Uniform 23(fvec4) + 44: TypePointer Output 23(fvec4) + 47: 7(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 10: 7(int) Load 9(gl_BaseVertexARB) + 12: 6(bool) SGreaterThan 10 11 + 13: 6(bool) LogicalNot 12 + SelectionMerge 15 None + BranchConditional 13 14 15 + 14: Label + 17: 7(int) Load 16(gl_BaseInstanceARB) + 18: 6(bool) SGreaterThan 17 11 + Branch 15 + 15: Label + 19: 6(bool) Phi 12 5 18 14 + SelectionMerge 21 None + BranchConditional 19 20 46 + 20: Label + 38: 7(int) Load 37(gl_DrawIDARB) + 40: 7(int) SMod 38 39 + 42: 41(ptr) AccessChain 36(block) 11 11 40 + 43: 23(fvec4) Load 42 + 45: 44(ptr) AccessChain 29 11 + Store 45 43 + Branch 21 + 46: Label + 48: 7(int) Load 37(gl_DrawIDARB) + 49: 7(int) SMod 48 39 + 50: 41(ptr) AccessChain 36(block) 11 47 49 + 51: 23(fvec4) Load 50 + 52: 44(ptr) AccessChain 29 11 + Store 52 51 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/Test/spv.shaderDrawParams.vert b/Test/spv.shaderDrawParams.vert new file mode 100644 index 00000000..15ae2953 --- /dev/null +++ b/Test/spv.shaderDrawParams.vert @@ -0,0 +1,16 @@ +#version 450 core + +#extension GL_ARB_shader_draw_parameters: enable + +layout(binding = 0) uniform Block +{ + vec4 pos[2][4]; +} block; + +void main() +{ + if ((gl_BaseVertexARB > 0) || (gl_BaseInstanceARB > 0)) + gl_Position = block.pos[0][gl_DrawIDARB % 4]; + else + gl_Position = block.pos[1][gl_DrawIDARB % 4]; +} diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index f109911e..64312a3a 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -237,6 +237,7 @@ INSTANTIATE_TEST_CASE_P( "spv.prepost.frag", "spv.qualifiers.vert", "spv.shaderBallot.comp", + "spv.shaderDrawParams.vert", "spv.shaderGroupVote.comp", "spv.shiftOps.frag", "spv.simpleFunctionCall.frag", From f887785990877e66657ad5d560490520d9c7b4cd Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Tue, 11 Oct 2016 16:16:47 -0300 Subject: [PATCH 186/217] fixup! Address some compiler warnings. --- glslang/Include/InfoSink.h | 1 - 1 file changed, 1 deletion(-) diff --git a/glslang/Include/InfoSink.h b/glslang/Include/InfoSink.h index ee605ab3..0cbd99bd 100644 --- a/glslang/Include/InfoSink.h +++ b/glslang/Include/InfoSink.h @@ -74,7 +74,6 @@ public: TInfoSinkBase& operator<<(const char* s) { append(s); return *this; } TInfoSinkBase& operator<<(int n) { append(String(n)); return *this; } TInfoSinkBase& operator<<(unsigned int n) { append(String(n)); return *this; } - TInfoSinkBase& operator<<(long unsigned int n) { append(String((int)n)); return *this; } TInfoSinkBase& operator<<(float n) { const int size = 40; char buf[size]; snprintf(buf, size, (fabs(n) > 1e-8 && fabs(n) < 1e8) || n == 0.0f ? "%f" : "%g", n); append(buf); From 7208a974aa4912a2323af897ad299facb23ba79a Mon Sep 17 00:00:00 2001 From: Maciej Jesionowski Date: Wed, 12 Oct 2016 15:40:37 +0200 Subject: [PATCH 187/217] SPV: Use SampledImage with OpImageQueryLod Khronos SPIR-V issue #74 --- SPIRV/GlslangToSpv.cpp | 5 +- .../hlsl.calculatelod.dx10.frag.out | 349 ++++++----- Test/baseResults/spv.queryL.frag.out | 551 +++++++++--------- 3 files changed, 442 insertions(+), 463 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 9c8b8b93..245715fc 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2745,9 +2745,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // Check for queries if (cracked.query) { - // a sampled image needs to have the image extracted first - if (builder.isSampledImage(params.sampler)) + // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first + if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler)) params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); + switch (node->getOp()) { case glslang::EOpImageQuerySize: case glslang::EOpTextureQuerySize: diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 9d061d29..ff18441c 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -345,7 +345,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 141 Capability Shader Capability Sampled1D @@ -353,51 +353,51 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 145 + EntryPoint Fragment 4 "main" 132 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4a" - Name 38 "txval12" - Name 42 "g_tTex1du4a" - Name 51 "txval20" - Name 54 "g_tTex2df4a" - Name 63 "txval21" - Name 66 "g_tTex2di4a" - Name 76 "txval22" - Name 79 "g_tTex2du4a" - Name 90 "txval40" - Name 93 "g_tTexcdf4a" - Name 103 "txval41" - Name 106 "g_tTexcdi4a" - Name 115 "txval42" - Name 118 "g_tTexcdu4a" - Name 131 "PS_OUTPUT" - MemberName 131(PS_OUTPUT) 0 "Color" - MemberName 131(PS_OUTPUT) 1 "Depth" - Name 133 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 149 "g_tTex1df4" + Name 25 "txval11" + Name 28 "g_tTex1di4a" + Name 36 "txval12" + Name 40 "g_tTex1du4a" + Name 48 "txval20" + Name 51 "g_tTex2df4a" + Name 59 "txval21" + Name 62 "g_tTex2di4a" + Name 71 "txval22" + Name 74 "g_tTex2du4a" + Name 84 "txval40" + Name 87 "g_tTexcdf4a" + Name 96 "txval41" + Name 99 "g_tTexcdi4a" + Name 107 "txval42" + Name 110 "g_tTexcdu4a" + Name 122 "PS_OUTPUT" + MemberName 122(PS_OUTPUT) 0 "Color" + MemberName 122(PS_OUTPUT) 1 "Depth" + Name 124 "psout" + Name 132 "Color" + Name 136 "Depth" + Name 140 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4a) DescriptorSet 0 - Decorate 42(g_tTex1du4a) DescriptorSet 0 - Decorate 54(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2di4a) DescriptorSet 0 - Decorate 79(g_tTex2du4a) DescriptorSet 0 - Decorate 93(g_tTexcdf4a) DescriptorSet 0 - Decorate 106(g_tTexcdi4a) DescriptorSet 0 - Decorate 118(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 149(g_tTex1df4) DescriptorSet 0 - Decorate 149(g_tTex1df4) Binding 0 + Decorate 28(g_tTex1di4a) DescriptorSet 0 + Decorate 40(g_tTex1du4a) DescriptorSet 0 + Decorate 51(g_tTex2df4a) DescriptorSet 0 + Decorate 62(g_tTex2di4a) DescriptorSet 0 + Decorate 74(g_tTex2du4a) DescriptorSet 0 + Decorate 87(g_tTexcdf4a) DescriptorSet 0 + Decorate 99(g_tTexcdi4a) DescriptorSet 0 + Decorate 110(g_tTexcdu4a) DescriptorSet 0 + Decorate 132(Color) Location 0 + Decorate 136(Depth) BuiltIn FragDepth + Decorate 140(g_tTex1df4) DescriptorSet 0 + Decorate 140(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -410,153 +410,144 @@ gl_FragCoord origin is upper left 15(g_sSamp): 14(ptr) Variable UniformConstant 17: TypeSampledImage 9 19: 6(float) Constant 1036831949 - 21: TypeVector 6(float) 2 - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 27: TypeImage 23(int) 1D array sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4a): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 39: TypeInt 32 0 - 40: TypeImage 39(int) 1D array sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4a): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 52: TypeImage 6(float) 2D array sampled format:Unknown - 53: TypePointer UniformConstant 52 - 54(g_tTex2df4a): 53(ptr) Variable UniformConstant - 57: TypeSampledImage 52 - 59: 21(fvec2) ConstantComposite 19 34 - 64: TypeImage 23(int) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4a): 65(ptr) Variable UniformConstant - 69: TypeSampledImage 64 - 71: 6(float) Constant 1053609165 - 72: 21(fvec2) ConstantComposite 47 71 - 77: TypeImage 39(int) 2D array sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4a): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: 6(float) Constant 1056964608 - 85: 6(float) Constant 1058642330 - 86: 21(fvec2) ConstantComposite 84 85 - 91: TypeImage 6(float) Cube array sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTexcdf4a): 92(ptr) Variable UniformConstant - 96: TypeSampledImage 91 - 98: TypeVector 6(float) 3 - 99: 98(fvec3) ConstantComposite 19 34 47 - 104: TypeImage 23(int) Cube array sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTexcdi4a): 105(ptr) Variable UniformConstant - 109: TypeSampledImage 104 - 111: 98(fvec3) ConstantComposite 71 84 85 - 116: TypeImage 39(int) Cube array sampled format:Unknown - 117: TypePointer UniformConstant 116 -118(g_tTexcdu4a): 117(ptr) Variable UniformConstant - 121: TypeSampledImage 116 - 123: 6(float) Constant 1060320051 - 124: 6(float) Constant 1061997773 - 125: 6(float) Constant 1063675494 - 126: 98(fvec3) ConstantComposite 123 124 125 - 130: TypeVector 6(float) 4 - 131(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) - 132: TypePointer Function 131(PS_OUTPUT) - 134: 6(float) Constant 1065353216 - 135: 130(fvec4) ConstantComposite 134 134 134 134 - 136: TypePointer Function 130(fvec4) - 138: 23(int) Constant 1 - 140: TypePointer Output 130(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output - 149(g_tTex1df4): 10(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 26: TypeImage 22(int) 1D array sampled format:Unknown + 27: TypePointer UniformConstant 26 + 28(g_tTex1di4a): 27(ptr) Variable UniformConstant + 31: TypeSampledImage 26 + 33: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeImage 37(int) 1D array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4a): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 45: 6(float) Constant 1050253722 + 49: TypeImage 6(float) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 20(fvec2) ConstantComposite 19 33 + 60: TypeImage 22(int) 2D array sampled format:Unknown + 61: TypePointer UniformConstant 60 + 62(g_tTex2di4a): 61(ptr) Variable UniformConstant + 65: TypeSampledImage 60 + 67: 6(float) Constant 1053609165 + 68: 20(fvec2) ConstantComposite 45 67 + 72: TypeImage 37(int) 2D array sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4a): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 20(fvec2) ConstantComposite 79 80 + 85: TypeImage 6(float) Cube array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTexcdf4a): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 92: TypeVector 6(float) 3 + 93: 92(fvec3) ConstantComposite 19 33 45 + 97: TypeImage 22(int) Cube array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdi4a): 98(ptr) Variable UniformConstant + 102: TypeSampledImage 97 + 104: 92(fvec3) ConstantComposite 67 79 80 + 108: TypeImage 37(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdu4a): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1060320051 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 92(fvec3) ConstantComposite 115 116 117 + 121: TypeVector 6(float) 4 + 122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float) + 123: TypePointer Function 122(PS_OUTPUT) + 125: 6(float) Constant 1065353216 + 126: 121(fvec4) ConstantComposite 125 125 125 125 + 127: TypePointer Function 121(fvec4) + 129: 22(int) Constant 1 + 131: TypePointer Output 121(fvec4) + 132(Color): 131(ptr) Variable Output + 135: TypePointer Output 6(float) + 136(Depth): 135(ptr) Variable Output + 140(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function - 26(txval11): 7(ptr) Variable Function - 38(txval12): 7(ptr) Variable Function - 51(txval20): 7(ptr) Variable Function - 63(txval21): 7(ptr) Variable Function - 76(txval22): 7(ptr) Variable Function - 90(txval40): 7(ptr) Variable Function - 103(txval41): 7(ptr) Variable Function - 115(txval42): 7(ptr) Variable Function - 133(psout): 132(ptr) Variable Function + 25(txval11): 7(ptr) Variable Function + 36(txval12): 7(ptr) Variable Function + 48(txval20): 7(ptr) Variable Function + 59(txval21): 7(ptr) Variable Function + 71(txval22): 7(ptr) Variable Function + 84(txval40): 7(ptr) Variable Function + 96(txval41): 7(ptr) Variable Function + 107(txval42): 7(ptr) Variable Function + 124(psout): 123(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 18: 17 SampledImage 12 16 - 20: 9 Image 18 - 22: 21(fvec2) ImageQueryLod 20 19 - 25: 6(float) CompositeExtract 22 0 - Store 8(txval10) 25 - 30: 27 Load 29(g_tTex1di4a) - 31: 13 Load 15(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 27 Image 33 - 36: 21(fvec2) ImageQueryLod 35 34 - 37: 6(float) CompositeExtract 36 0 - Store 26(txval11) 37 - 43: 40 Load 42(g_tTex1du4a) - 44: 13 Load 15(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 40 Image 46 - 49: 21(fvec2) ImageQueryLod 48 47 - 50: 6(float) CompositeExtract 49 0 - Store 38(txval12) 50 - 55: 52 Load 54(g_tTex2df4a) - 56: 13 Load 15(g_sSamp) - 58: 57 SampledImage 55 56 - 60: 52 Image 58 - 61: 21(fvec2) ImageQueryLod 60 59 - 62: 6(float) CompositeExtract 61 0 - Store 51(txval20) 62 - 67: 64 Load 66(g_tTex2di4a) - 68: 13 Load 15(g_sSamp) - 70: 69 SampledImage 67 68 - 73: 64 Image 70 - 74: 21(fvec2) ImageQueryLod 73 72 - 75: 6(float) CompositeExtract 74 0 - Store 63(txval21) 75 - 80: 77 Load 79(g_tTex2du4a) - 81: 13 Load 15(g_sSamp) - 83: 82 SampledImage 80 81 - 87: 77 Image 83 - 88: 21(fvec2) ImageQueryLod 87 86 - 89: 6(float) CompositeExtract 88 0 - Store 76(txval22) 89 - 94: 91 Load 93(g_tTexcdf4a) - 95: 13 Load 15(g_sSamp) - 97: 96 SampledImage 94 95 - 100: 91 Image 97 - 101: 21(fvec2) ImageQueryLod 100 99 - 102: 6(float) CompositeExtract 101 0 - Store 90(txval40) 102 - 107: 104 Load 106(g_tTexcdi4a) - 108: 13 Load 15(g_sSamp) - 110: 109 SampledImage 107 108 - 112: 104 Image 110 - 113: 21(fvec2) ImageQueryLod 112 111 - 114: 6(float) CompositeExtract 113 0 - Store 103(txval41) 114 - 119: 116 Load 118(g_tTexcdu4a) - 120: 13 Load 15(g_sSamp) - 122: 121 SampledImage 119 120 - 127: 116 Image 122 - 128: 21(fvec2) ImageQueryLod 127 126 - 129: 6(float) CompositeExtract 128 0 - Store 115(txval42) 129 - 137: 136(ptr) AccessChain 133(psout) 24 - Store 137 135 - 139: 7(ptr) AccessChain 133(psout) 138 - Store 139 134 - 142: 136(ptr) AccessChain 133(psout) 24 - 143: 130(fvec4) Load 142 - Store 141(Color) 143 - 146: 7(ptr) AccessChain 133(psout) 138 - 147: 6(float) Load 146 - Store 145(Depth) 147 + 21: 20(fvec2) ImageQueryLod 18 19 + 24: 6(float) CompositeExtract 21 0 + Store 8(txval10) 24 + 29: 26 Load 28(g_tTex1di4a) + 30: 13 Load 15(g_sSamp) + 32: 31 SampledImage 29 30 + 34: 20(fvec2) ImageQueryLod 32 33 + 35: 6(float) CompositeExtract 34 0 + Store 25(txval11) 35 + 41: 38 Load 40(g_tTex1du4a) + 42: 13 Load 15(g_sSamp) + 44: 43 SampledImage 41 42 + 46: 20(fvec2) ImageQueryLod 44 45 + 47: 6(float) CompositeExtract 46 0 + Store 36(txval12) 47 + 52: 49 Load 51(g_tTex2df4a) + 53: 13 Load 15(g_sSamp) + 55: 54 SampledImage 52 53 + 57: 20(fvec2) ImageQueryLod 55 56 + 58: 6(float) CompositeExtract 57 0 + Store 48(txval20) 58 + 63: 60 Load 62(g_tTex2di4a) + 64: 13 Load 15(g_sSamp) + 66: 65 SampledImage 63 64 + 69: 20(fvec2) ImageQueryLod 66 68 + 70: 6(float) CompositeExtract 69 0 + Store 59(txval21) 70 + 75: 72 Load 74(g_tTex2du4a) + 76: 13 Load 15(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 20(fvec2) ImageQueryLod 78 81 + 83: 6(float) CompositeExtract 82 0 + Store 71(txval22) 83 + 88: 85 Load 87(g_tTexcdf4a) + 89: 13 Load 15(g_sSamp) + 91: 90 SampledImage 88 89 + 94: 20(fvec2) ImageQueryLod 91 93 + 95: 6(float) CompositeExtract 94 0 + Store 84(txval40) 95 + 100: 97 Load 99(g_tTexcdi4a) + 101: 13 Load 15(g_sSamp) + 103: 102 SampledImage 100 101 + 105: 20(fvec2) ImageQueryLod 103 104 + 106: 6(float) CompositeExtract 105 0 + Store 96(txval41) 106 + 111: 108 Load 110(g_tTexcdu4a) + 112: 13 Load 15(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 20(fvec2) ImageQueryLod 114 118 + 120: 6(float) CompositeExtract 119 0 + Store 107(txval42) 120 + 128: 127(ptr) AccessChain 124(psout) 23 + Store 128 126 + 130: 7(ptr) AccessChain 124(psout) 129 + Store 130 125 + 133: 127(ptr) AccessChain 124(psout) 23 + 134: 121(fvec4) Load 133 + Store 132(Color) 134 + 137: 7(ptr) AccessChain 124(psout) 129 + 138: 6(float) Load 137 + Store 136(Depth) 138 Return FunctionEnd diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out index 6d2b2b97..2236c66a 100755 --- a/Test/baseResults/spv.queryL.frag.out +++ b/Test/baseResults/spv.queryL.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 237 +// Id's are bound by 224 Capability Shader Capability SampledRect @@ -24,48 +24,48 @@ Linked fragment stage: Name 9 "lod" Name 13 "samp1D" Name 16 "pf" - Name 24 "isamp2D" - Name 26 "pf2" - Name 36 "usamp3D" - Name 40 "pf3" - Name 49 "sampCube" - Name 59 "isamp1DA" - Name 69 "usamp2DA" - Name 79 "isampCubeA" - Name 89 "samp1Ds" - Name 99 "samp2Ds" - Name 109 "sampCubes" - Name 119 "samp1DAs" - Name 129 "samp2DAs" - Name 139 "sampCubeAs" - Name 147 "levels" - Name 154 "usamp2D" - Name 163 "isamp3D" - Name 172 "isampCube" - Name 186 "samp2DA" - Name 195 "usampCubeA" - Name 232 "sampBuf" - Name 236 "sampRect" + Name 23 "isamp2D" + Name 25 "pf2" + Name 34 "usamp3D" + Name 38 "pf3" + Name 46 "sampCube" + Name 55 "isamp1DA" + Name 64 "usamp2DA" + Name 73 "isampCubeA" + Name 82 "samp1Ds" + Name 91 "samp2Ds" + Name 100 "sampCubes" + Name 109 "samp1DAs" + Name 118 "samp2DAs" + Name 127 "sampCubeAs" + Name 134 "levels" + Name 141 "usamp2D" + Name 150 "isamp3D" + Name 159 "isampCube" + Name 173 "samp2DA" + Name 182 "usampCubeA" + Name 219 "sampBuf" + Name 223 "sampRect" Decorate 13(samp1D) DescriptorSet 0 - Decorate 24(isamp2D) DescriptorSet 0 - Decorate 36(usamp3D) DescriptorSet 0 - Decorate 49(sampCube) DescriptorSet 0 - Decorate 59(isamp1DA) DescriptorSet 0 - Decorate 69(usamp2DA) DescriptorSet 0 - Decorate 79(isampCubeA) DescriptorSet 0 - Decorate 89(samp1Ds) DescriptorSet 0 - Decorate 99(samp2Ds) DescriptorSet 0 - Decorate 109(sampCubes) DescriptorSet 0 - Decorate 119(samp1DAs) DescriptorSet 0 - Decorate 129(samp2DAs) DescriptorSet 0 - Decorate 139(sampCubeAs) DescriptorSet 0 - Decorate 154(usamp2D) DescriptorSet 0 - Decorate 163(isamp3D) DescriptorSet 0 - Decorate 172(isampCube) DescriptorSet 0 - Decorate 186(samp2DA) DescriptorSet 0 - Decorate 195(usampCubeA) DescriptorSet 0 - Decorate 232(sampBuf) DescriptorSet 0 - Decorate 236(sampRect) DescriptorSet 0 + Decorate 23(isamp2D) DescriptorSet 0 + Decorate 34(usamp3D) DescriptorSet 0 + Decorate 46(sampCube) DescriptorSet 0 + Decorate 55(isamp1DA) DescriptorSet 0 + Decorate 64(usamp2DA) DescriptorSet 0 + Decorate 73(isampCubeA) DescriptorSet 0 + Decorate 82(samp1Ds) DescriptorSet 0 + Decorate 91(samp2Ds) DescriptorSet 0 + Decorate 100(sampCubes) DescriptorSet 0 + Decorate 109(samp1DAs) DescriptorSet 0 + Decorate 118(samp2DAs) DescriptorSet 0 + Decorate 127(sampCubeAs) DescriptorSet 0 + Decorate 141(usamp2D) DescriptorSet 0 + Decorate 150(isamp3D) DescriptorSet 0 + Decorate 159(isampCube) DescriptorSet 0 + Decorate 173(samp2DA) DescriptorSet 0 + Decorate 182(usampCubeA) DescriptorSet 0 + Decorate 219(sampBuf) DescriptorSet 0 + Decorate 223(sampRect) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -76,256 +76,243 @@ Linked fragment stage: 12: TypePointer UniformConstant 11 13(samp1D): 12(ptr) Variable UniformConstant 15: TypePointer Function 6(float) - 20: TypeInt 32 1 - 21: TypeImage 20(int) 2D sampled format:Unknown - 22: TypeSampledImage 21 - 23: TypePointer UniformConstant 22 - 24(isamp2D): 23(ptr) Variable UniformConstant - 32: TypeInt 32 0 - 33: TypeImage 32(int) 3D sampled format:Unknown - 34: TypeSampledImage 33 - 35: TypePointer UniformConstant 34 - 36(usamp3D): 35(ptr) Variable UniformConstant - 38: TypeVector 6(float) 3 - 39: TypePointer Function 38(fvec3) - 46: TypeImage 6(float) Cube sampled format:Unknown - 47: TypeSampledImage 46 - 48: TypePointer UniformConstant 47 - 49(sampCube): 48(ptr) Variable UniformConstant - 56: TypeImage 20(int) 1D array sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 - 59(isamp1DA): 58(ptr) Variable UniformConstant - 66: TypeImage 32(int) 2D array sampled format:Unknown - 67: TypeSampledImage 66 - 68: TypePointer UniformConstant 67 - 69(usamp2DA): 68(ptr) Variable UniformConstant - 76: TypeImage 20(int) Cube array sampled format:Unknown - 77: TypeSampledImage 76 - 78: TypePointer UniformConstant 77 - 79(isampCubeA): 78(ptr) Variable UniformConstant - 86: TypeImage 6(float) 1D depth sampled format:Unknown - 87: TypeSampledImage 86 - 88: TypePointer UniformConstant 87 - 89(samp1Ds): 88(ptr) Variable UniformConstant - 96: TypeImage 6(float) 2D depth sampled format:Unknown - 97: TypeSampledImage 96 - 98: TypePointer UniformConstant 97 - 99(samp2Ds): 98(ptr) Variable UniformConstant - 106: TypeImage 6(float) Cube depth sampled format:Unknown + 19: TypeInt 32 1 + 20: TypeImage 19(int) 2D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(isamp2D): 22(ptr) Variable UniformConstant + 30: TypeInt 32 0 + 31: TypeImage 30(int) 3D sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(usamp3D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 43: TypeImage 6(float) Cube sampled format:Unknown + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(sampCube): 45(ptr) Variable UniformConstant + 52: TypeImage 19(int) 1D array sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(isamp1DA): 54(ptr) Variable UniformConstant + 61: TypeImage 30(int) 2D array sampled format:Unknown + 62: TypeSampledImage 61 + 63: TypePointer UniformConstant 62 + 64(usamp2DA): 63(ptr) Variable UniformConstant + 70: TypeImage 19(int) Cube array sampled format:Unknown + 71: TypeSampledImage 70 + 72: TypePointer UniformConstant 71 + 73(isampCubeA): 72(ptr) Variable UniformConstant + 79: TypeImage 6(float) 1D depth sampled format:Unknown + 80: TypeSampledImage 79 + 81: TypePointer UniformConstant 80 + 82(samp1Ds): 81(ptr) Variable UniformConstant + 88: TypeImage 6(float) 2D depth sampled format:Unknown + 89: TypeSampledImage 88 + 90: TypePointer UniformConstant 89 + 91(samp2Ds): 90(ptr) Variable UniformConstant + 97: TypeImage 6(float) Cube depth sampled format:Unknown + 98: TypeSampledImage 97 + 99: TypePointer UniformConstant 98 + 100(sampCubes): 99(ptr) Variable UniformConstant + 106: TypeImage 6(float) 1D depth array sampled format:Unknown 107: TypeSampledImage 106 108: TypePointer UniformConstant 107 - 109(sampCubes): 108(ptr) Variable UniformConstant - 116: TypeImage 6(float) 1D depth array sampled format:Unknown - 117: TypeSampledImage 116 - 118: TypePointer UniformConstant 117 - 119(samp1DAs): 118(ptr) Variable UniformConstant - 126: TypeImage 6(float) 2D depth array sampled format:Unknown - 127: TypeSampledImage 126 - 128: TypePointer UniformConstant 127 - 129(samp2DAs): 128(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube depth array sampled format:Unknown - 137: TypeSampledImage 136 - 138: TypePointer UniformConstant 137 - 139(sampCubeAs): 138(ptr) Variable UniformConstant - 146: TypePointer Function 20(int) - 151: TypeImage 32(int) 2D sampled format:Unknown - 152: TypeSampledImage 151 - 153: TypePointer UniformConstant 152 - 154(usamp2D): 153(ptr) Variable UniformConstant - 160: TypeImage 20(int) 3D sampled format:Unknown - 161: TypeSampledImage 160 - 162: TypePointer UniformConstant 161 - 163(isamp3D): 162(ptr) Variable UniformConstant - 169: TypeImage 20(int) Cube sampled format:Unknown - 170: TypeSampledImage 169 - 171: TypePointer UniformConstant 170 - 172(isampCube): 171(ptr) Variable UniformConstant - 183: TypeImage 6(float) 2D array sampled format:Unknown - 184: TypeSampledImage 183 - 185: TypePointer UniformConstant 184 - 186(samp2DA): 185(ptr) Variable UniformConstant - 192: TypeImage 32(int) Cube array sampled format:Unknown - 193: TypeSampledImage 192 - 194: TypePointer UniformConstant 193 - 195(usampCubeA): 194(ptr) Variable UniformConstant - 229: TypeImage 6(float) Buffer sampled format:Unknown - 230: TypeSampledImage 229 - 231: TypePointer UniformConstant 230 - 232(sampBuf): 231(ptr) Variable UniformConstant - 233: TypeImage 6(float) Rect sampled format:Unknown - 234: TypeSampledImage 233 - 235: TypePointer UniformConstant 234 - 236(sampRect): 235(ptr) Variable UniformConstant + 109(samp1DAs): 108(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(samp2DAs): 117(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 126: TypePointer UniformConstant 125 + 127(sampCubeAs): 126(ptr) Variable UniformConstant + 133: TypePointer Function 19(int) + 138: TypeImage 30(int) 2D sampled format:Unknown + 139: TypeSampledImage 138 + 140: TypePointer UniformConstant 139 + 141(usamp2D): 140(ptr) Variable UniformConstant + 147: TypeImage 19(int) 3D sampled format:Unknown + 148: TypeSampledImage 147 + 149: TypePointer UniformConstant 148 + 150(isamp3D): 149(ptr) Variable UniformConstant + 156: TypeImage 19(int) Cube sampled format:Unknown + 157: TypeSampledImage 156 + 158: TypePointer UniformConstant 157 + 159(isampCube): 158(ptr) Variable UniformConstant + 170: TypeImage 6(float) 2D array sampled format:Unknown + 171: TypeSampledImage 170 + 172: TypePointer UniformConstant 171 + 173(samp2DA): 172(ptr) Variable UniformConstant + 179: TypeImage 30(int) Cube array sampled format:Unknown + 180: TypeSampledImage 179 + 181: TypePointer UniformConstant 180 + 182(usampCubeA): 181(ptr) Variable UniformConstant + 216: TypeImage 6(float) Buffer sampled format:Unknown + 217: TypeSampledImage 216 + 218: TypePointer UniformConstant 217 + 219(sampBuf): 218(ptr) Variable UniformConstant + 220: TypeImage 6(float) Rect sampled format:Unknown + 221: TypeSampledImage 220 + 222: TypePointer UniformConstant 221 + 223(sampRect): 222(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(lod): 8(ptr) Variable Function 16(pf): 15(ptr) Variable Function - 26(pf2): 8(ptr) Variable Function - 40(pf3): 39(ptr) Variable Function - 147(levels): 146(ptr) Variable Function + 25(pf2): 8(ptr) Variable Function + 38(pf3): 37(ptr) Variable Function + 134(levels): 133(ptr) Variable Function 14: 11 Load 13(samp1D) 17: 6(float) Load 16(pf) - 18: 10 Image 14 - 19: 7(fvec2) ImageQueryLod 18 17 - Store 9(lod) 19 - 25: 22 Load 24(isamp2D) - 27: 7(fvec2) Load 26(pf2) - 28: 21 Image 25 - 29: 7(fvec2) ImageQueryLod 28 27 - 30: 7(fvec2) Load 9(lod) - 31: 7(fvec2) FAdd 30 29 - Store 9(lod) 31 - 37: 34 Load 36(usamp3D) - 41: 38(fvec3) Load 40(pf3) - 42: 33 Image 37 - 43: 7(fvec2) ImageQueryLod 42 41 - 44: 7(fvec2) Load 9(lod) - 45: 7(fvec2) FAdd 44 43 - Store 9(lod) 45 - 50: 47 Load 49(sampCube) - 51: 38(fvec3) Load 40(pf3) - 52: 46 Image 50 - 53: 7(fvec2) ImageQueryLod 52 51 - 54: 7(fvec2) Load 9(lod) - 55: 7(fvec2) FAdd 54 53 - Store 9(lod) 55 - 60: 57 Load 59(isamp1DA) - 61: 6(float) Load 16(pf) - 62: 56 Image 60 - 63: 7(fvec2) ImageQueryLod 62 61 - 64: 7(fvec2) Load 9(lod) - 65: 7(fvec2) FAdd 64 63 - Store 9(lod) 65 - 70: 67 Load 69(usamp2DA) - 71: 7(fvec2) Load 26(pf2) - 72: 66 Image 70 - 73: 7(fvec2) ImageQueryLod 72 71 - 74: 7(fvec2) Load 9(lod) - 75: 7(fvec2) FAdd 74 73 - Store 9(lod) 75 - 80: 77 Load 79(isampCubeA) - 81: 38(fvec3) Load 40(pf3) - 82: 76 Image 80 - 83: 7(fvec2) ImageQueryLod 82 81 - 84: 7(fvec2) Load 9(lod) - 85: 7(fvec2) FAdd 84 83 - Store 9(lod) 85 - 90: 87 Load 89(samp1Ds) - 91: 6(float) Load 16(pf) - 92: 86 Image 90 - 93: 7(fvec2) ImageQueryLod 92 91 - 94: 7(fvec2) Load 9(lod) - 95: 7(fvec2) FAdd 94 93 - Store 9(lod) 95 - 100: 97 Load 99(samp2Ds) - 101: 7(fvec2) Load 26(pf2) - 102: 96 Image 100 - 103: 7(fvec2) ImageQueryLod 102 101 + 18: 7(fvec2) ImageQueryLod 14 17 + Store 9(lod) 18 + 24: 21 Load 23(isamp2D) + 26: 7(fvec2) Load 25(pf2) + 27: 7(fvec2) ImageQueryLod 24 26 + 28: 7(fvec2) Load 9(lod) + 29: 7(fvec2) FAdd 28 27 + Store 9(lod) 29 + 35: 32 Load 34(usamp3D) + 39: 36(fvec3) Load 38(pf3) + 40: 7(fvec2) ImageQueryLod 35 39 + 41: 7(fvec2) Load 9(lod) + 42: 7(fvec2) FAdd 41 40 + Store 9(lod) 42 + 47: 44 Load 46(sampCube) + 48: 36(fvec3) Load 38(pf3) + 49: 7(fvec2) ImageQueryLod 47 48 + 50: 7(fvec2) Load 9(lod) + 51: 7(fvec2) FAdd 50 49 + Store 9(lod) 51 + 56: 53 Load 55(isamp1DA) + 57: 6(float) Load 16(pf) + 58: 7(fvec2) ImageQueryLod 56 57 + 59: 7(fvec2) Load 9(lod) + 60: 7(fvec2) FAdd 59 58 + Store 9(lod) 60 + 65: 62 Load 64(usamp2DA) + 66: 7(fvec2) Load 25(pf2) + 67: 7(fvec2) ImageQueryLod 65 66 + 68: 7(fvec2) Load 9(lod) + 69: 7(fvec2) FAdd 68 67 + Store 9(lod) 69 + 74: 71 Load 73(isampCubeA) + 75: 36(fvec3) Load 38(pf3) + 76: 7(fvec2) ImageQueryLod 74 75 + 77: 7(fvec2) Load 9(lod) + 78: 7(fvec2) FAdd 77 76 + Store 9(lod) 78 + 83: 80 Load 82(samp1Ds) + 84: 6(float) Load 16(pf) + 85: 7(fvec2) ImageQueryLod 83 84 + 86: 7(fvec2) Load 9(lod) + 87: 7(fvec2) FAdd 86 85 + Store 9(lod) 87 + 92: 89 Load 91(samp2Ds) + 93: 7(fvec2) Load 25(pf2) + 94: 7(fvec2) ImageQueryLod 92 93 + 95: 7(fvec2) Load 9(lod) + 96: 7(fvec2) FAdd 95 94 + Store 9(lod) 96 + 101: 98 Load 100(sampCubes) + 102: 36(fvec3) Load 38(pf3) + 103: 7(fvec2) ImageQueryLod 101 102 104: 7(fvec2) Load 9(lod) 105: 7(fvec2) FAdd 104 103 Store 9(lod) 105 - 110: 107 Load 109(sampCubes) - 111: 38(fvec3) Load 40(pf3) - 112: 106 Image 110 - 113: 7(fvec2) ImageQueryLod 112 111 - 114: 7(fvec2) Load 9(lod) - 115: 7(fvec2) FAdd 114 113 - Store 9(lod) 115 - 120: 117 Load 119(samp1DAs) - 121: 6(float) Load 16(pf) - 122: 116 Image 120 - 123: 7(fvec2) ImageQueryLod 122 121 - 124: 7(fvec2) Load 9(lod) - 125: 7(fvec2) FAdd 124 123 - Store 9(lod) 125 - 130: 127 Load 129(samp2DAs) - 131: 7(fvec2) Load 26(pf2) - 132: 126 Image 130 - 133: 7(fvec2) ImageQueryLod 132 131 - 134: 7(fvec2) Load 9(lod) - 135: 7(fvec2) FAdd 134 133 - Store 9(lod) 135 - 140: 137 Load 139(sampCubeAs) - 141: 38(fvec3) Load 40(pf3) - 142: 136 Image 140 - 143: 7(fvec2) ImageQueryLod 142 141 - 144: 7(fvec2) Load 9(lod) - 145: 7(fvec2) FAdd 144 143 - Store 9(lod) 145 - 148: 11 Load 13(samp1D) - 149: 10 Image 148 - 150: 20(int) ImageQueryLevels 149 - Store 147(levels) 150 - 155: 152 Load 154(usamp2D) - 156: 151 Image 155 - 157: 20(int) ImageQueryLevels 156 - 158: 20(int) Load 147(levels) - 159: 20(int) IAdd 158 157 - Store 147(levels) 159 - 164: 161 Load 163(isamp3D) - 165: 160 Image 164 - 166: 20(int) ImageQueryLevels 165 - 167: 20(int) Load 147(levels) - 168: 20(int) IAdd 167 166 - Store 147(levels) 168 - 173: 170 Load 172(isampCube) - 174: 169 Image 173 - 175: 20(int) ImageQueryLevels 174 - 176: 20(int) Load 147(levels) - 177: 20(int) IAdd 176 175 - Store 147(levels) 177 - 178: 57 Load 59(isamp1DA) - 179: 56 Image 178 - 180: 20(int) ImageQueryLevels 179 - 181: 20(int) Load 147(levels) - 182: 20(int) IAdd 181 180 - Store 147(levels) 182 - 187: 184 Load 186(samp2DA) - 188: 183 Image 187 - 189: 20(int) ImageQueryLevels 188 - 190: 20(int) Load 147(levels) - 191: 20(int) IAdd 190 189 - Store 147(levels) 191 - 196: 193 Load 195(usampCubeA) - 197: 192 Image 196 - 198: 20(int) ImageQueryLevels 197 - 199: 20(int) Load 147(levels) - 200: 20(int) IAdd 199 198 - Store 147(levels) 200 - 201: 87 Load 89(samp1Ds) - 202: 86 Image 201 - 203: 20(int) ImageQueryLevels 202 - Store 147(levels) 203 - 204: 97 Load 99(samp2Ds) - 205: 96 Image 204 - 206: 20(int) ImageQueryLevels 205 - 207: 20(int) Load 147(levels) - 208: 20(int) IAdd 207 206 - Store 147(levels) 208 - 209: 107 Load 109(sampCubes) - 210: 106 Image 209 - 211: 20(int) ImageQueryLevels 210 - 212: 20(int) Load 147(levels) - 213: 20(int) IAdd 212 211 - Store 147(levels) 213 - 214: 117 Load 119(samp1DAs) - 215: 116 Image 214 - 216: 20(int) ImageQueryLevels 215 - 217: 20(int) Load 147(levels) - 218: 20(int) IAdd 217 216 - Store 147(levels) 218 - 219: 127 Load 129(samp2DAs) - 220: 126 Image 219 - 221: 20(int) ImageQueryLevels 220 - 222: 20(int) Load 147(levels) - 223: 20(int) IAdd 222 221 - Store 147(levels) 223 - 224: 137 Load 139(sampCubeAs) - 225: 136 Image 224 - 226: 20(int) ImageQueryLevels 225 - 227: 20(int) Load 147(levels) - 228: 20(int) IAdd 227 226 - Store 147(levels) 228 + 110: 107 Load 109(samp1DAs) + 111: 6(float) Load 16(pf) + 112: 7(fvec2) ImageQueryLod 110 111 + 113: 7(fvec2) Load 9(lod) + 114: 7(fvec2) FAdd 113 112 + Store 9(lod) 114 + 119: 116 Load 118(samp2DAs) + 120: 7(fvec2) Load 25(pf2) + 121: 7(fvec2) ImageQueryLod 119 120 + 122: 7(fvec2) Load 9(lod) + 123: 7(fvec2) FAdd 122 121 + Store 9(lod) 123 + 128: 125 Load 127(sampCubeAs) + 129: 36(fvec3) Load 38(pf3) + 130: 7(fvec2) ImageQueryLod 128 129 + 131: 7(fvec2) Load 9(lod) + 132: 7(fvec2) FAdd 131 130 + Store 9(lod) 132 + 135: 11 Load 13(samp1D) + 136: 10 Image 135 + 137: 19(int) ImageQueryLevels 136 + Store 134(levels) 137 + 142: 139 Load 141(usamp2D) + 143: 138 Image 142 + 144: 19(int) ImageQueryLevels 143 + 145: 19(int) Load 134(levels) + 146: 19(int) IAdd 145 144 + Store 134(levels) 146 + 151: 148 Load 150(isamp3D) + 152: 147 Image 151 + 153: 19(int) ImageQueryLevels 152 + 154: 19(int) Load 134(levels) + 155: 19(int) IAdd 154 153 + Store 134(levels) 155 + 160: 157 Load 159(isampCube) + 161: 156 Image 160 + 162: 19(int) ImageQueryLevels 161 + 163: 19(int) Load 134(levels) + 164: 19(int) IAdd 163 162 + Store 134(levels) 164 + 165: 53 Load 55(isamp1DA) + 166: 52 Image 165 + 167: 19(int) ImageQueryLevels 166 + 168: 19(int) Load 134(levels) + 169: 19(int) IAdd 168 167 + Store 134(levels) 169 + 174: 171 Load 173(samp2DA) + 175: 170 Image 174 + 176: 19(int) ImageQueryLevels 175 + 177: 19(int) Load 134(levels) + 178: 19(int) IAdd 177 176 + Store 134(levels) 178 + 183: 180 Load 182(usampCubeA) + 184: 179 Image 183 + 185: 19(int) ImageQueryLevels 184 + 186: 19(int) Load 134(levels) + 187: 19(int) IAdd 186 185 + Store 134(levels) 187 + 188: 80 Load 82(samp1Ds) + 189: 79 Image 188 + 190: 19(int) ImageQueryLevels 189 + Store 134(levels) 190 + 191: 89 Load 91(samp2Ds) + 192: 88 Image 191 + 193: 19(int) ImageQueryLevels 192 + 194: 19(int) Load 134(levels) + 195: 19(int) IAdd 194 193 + Store 134(levels) 195 + 196: 98 Load 100(sampCubes) + 197: 97 Image 196 + 198: 19(int) ImageQueryLevels 197 + 199: 19(int) Load 134(levels) + 200: 19(int) IAdd 199 198 + Store 134(levels) 200 + 201: 107 Load 109(samp1DAs) + 202: 106 Image 201 + 203: 19(int) ImageQueryLevels 202 + 204: 19(int) Load 134(levels) + 205: 19(int) IAdd 204 203 + Store 134(levels) 205 + 206: 116 Load 118(samp2DAs) + 207: 115 Image 206 + 208: 19(int) ImageQueryLevels 207 + 209: 19(int) Load 134(levels) + 210: 19(int) IAdd 209 208 + Store 134(levels) 210 + 211: 125 Load 127(sampCubeAs) + 212: 124 Image 211 + 213: 19(int) ImageQueryLevels 212 + 214: 19(int) Load 134(levels) + 215: 19(int) IAdd 214 213 + Store 134(levels) 215 Return FunctionEnd From 6b43d274e7899a7bbe80831eab96ef0d387dea91 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 6 Oct 2016 20:12:24 -0600 Subject: [PATCH 188/217] HLSL: phase 2a: add r-value operator[] for RWTexture/RWBuffer This commit adds r-value support for RW textures and buffers. Supported is: - Function in parameter conversions - conversion of rvalue use to imageLoad --- Test/baseResults/hlsl.rw.bracket.frag.out | 719 ++++++++++++++++++++++ Test/hlsl.rw.bracket.frag | 114 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 40 +- hlsl/hlslParseHelper.h | 1 + 5 files changed, 869 insertions(+), 6 deletions(-) create mode 100644 Test/baseResults/hlsl.rw.bracket.frag.out create mode 100644 Test/hlsl.rw.bracket.frag diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out new file mode 100644 index 00000000..7c72e98b --- /dev/null +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -0,0 +1,719 @@ +hlsl.rw.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: Fn2(vi4; (temp void) +0:42 Function Parameters: +0:42 'x' (out 4-component vector of int) +0:? Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'x' (out 4-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:42 0 (const int) +0:42 0 (const int) +0:42 0 (const int) +0:43 Function Definition: Fn2(vu4; (temp void) +0:43 Function Parameters: +0:43 'x' (out 4-component vector of uint) +0:? Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'x' (out 4-component vector of uint) +0:43 Constant: +0:43 0 (const uint) +0:43 0 (const uint) +0:43 0 (const uint) +0:43 0 (const uint) +0:44 Function Definition: Fn2(vf4; (temp void) +0:44 Function Parameters: +0:44 'x' (out 4-component vector of float) +0:? Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'x' (out 4-component vector of float) +0:44 Constant: +0:44 0.000000 +0:44 0.000000 +0:44 0.000000 +0:44 0.000000 +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:47 Function Parameters: +0:? Sequence +0:53 imageLoad (temp 4-component vector of float) +0:53 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'r00' (temp 4-component vector of float) +0:55 imageLoad (temp 4-component vector of float) +0:55 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:55 c1: direct index for structure (layout(offset=0 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 0 (const uint) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'r01' (temp 4-component vector of int) +0:56 imageLoad (temp 4-component vector of int) +0:56 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:56 c1: direct index for structure (layout(offset=0 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 0 (const uint) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'r02' (temp 4-component vector of uint) +0:57 imageLoad (temp 4-component vector of uint) +0:57 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'r10' (temp 4-component vector of float) +0:60 imageLoad (temp 4-component vector of float) +0:60 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:60 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 1 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'r11' (temp 4-component vector of int) +0:61 imageLoad (temp 4-component vector of int) +0:61 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:61 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 1 (const uint) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'r12' (temp 4-component vector of uint) +0:62 imageLoad (temp 4-component vector of uint) +0:62 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'r20' (temp 4-component vector of float) +0:65 imageLoad (temp 4-component vector of float) +0:65 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:65 Constant: +0:65 2 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'r21' (temp 4-component vector of int) +0:66 imageLoad (temp 4-component vector of int) +0:66 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'r22' (temp 4-component vector of uint) +0:67 imageLoad (temp 4-component vector of uint) +0:67 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 2 (const uint) +0:86 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:86 imageLoad (temp 4-component vector of float) +0:86 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:86 c1: direct index for structure (layout(offset=0 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:86 Constant: +0:86 0 (const uint) +0:87 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:87 Constant: +0:87 0 (const uint) +0:88 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:88 imageLoad (temp 4-component vector of uint) +0:88 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 0 (const uint) +0:111 move second child to first child (temp 4-component vector of float) +0:111 Color: direct index for structure (temp 4-component vector of float) +0:111 'psout' (temp structure{temp 4-component vector of float Color}) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1.000000 +0:111 1.000000 +0:111 1.000000 +0:111 1.000000 +0:113 Sequence +0:113 Sequence +0:113 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:113 Color: direct index for structure (temp 4-component vector of float) +0:113 'psout' (temp structure{temp 4-component vector of float Color}) +0:113 Constant: +0:113 0 (const int) +0:113 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: Fn2(vi4; (temp void) +0:42 Function Parameters: +0:42 'x' (out 4-component vector of int) +0:? Sequence +0:42 move second child to first child (temp 4-component vector of int) +0:42 'x' (out 4-component vector of int) +0:42 Constant: +0:42 0 (const int) +0:42 0 (const int) +0:42 0 (const int) +0:42 0 (const int) +0:43 Function Definition: Fn2(vu4; (temp void) +0:43 Function Parameters: +0:43 'x' (out 4-component vector of uint) +0:? Sequence +0:43 move second child to first child (temp 4-component vector of uint) +0:43 'x' (out 4-component vector of uint) +0:43 Constant: +0:43 0 (const uint) +0:43 0 (const uint) +0:43 0 (const uint) +0:43 0 (const uint) +0:44 Function Definition: Fn2(vf4; (temp void) +0:44 Function Parameters: +0:44 'x' (out 4-component vector of float) +0:? Sequence +0:44 move second child to first child (temp 4-component vector of float) +0:44 'x' (out 4-component vector of float) +0:44 Constant: +0:44 0.000000 +0:44 0.000000 +0:44 0.000000 +0:44 0.000000 +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:47 Function Parameters: +0:? Sequence +0:53 imageLoad (temp 4-component vector of float) +0:53 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:55 Sequence +0:55 move second child to first child (temp 4-component vector of float) +0:55 'r00' (temp 4-component vector of float) +0:55 imageLoad (temp 4-component vector of float) +0:55 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:55 c1: direct index for structure (layout(offset=0 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 0 (const uint) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of int) +0:56 'r01' (temp 4-component vector of int) +0:56 imageLoad (temp 4-component vector of int) +0:56 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:56 c1: direct index for structure (layout(offset=0 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 0 (const uint) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of uint) +0:57 'r02' (temp 4-component vector of uint) +0:57 imageLoad (temp 4-component vector of uint) +0:57 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of float) +0:60 'r10' (temp 4-component vector of float) +0:60 imageLoad (temp 4-component vector of float) +0:60 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:60 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 1 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of int) +0:61 'r11' (temp 4-component vector of int) +0:61 imageLoad (temp 4-component vector of int) +0:61 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:61 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 1 (const uint) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of uint) +0:62 'r12' (temp 4-component vector of uint) +0:62 imageLoad (temp 4-component vector of uint) +0:62 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of float) +0:65 'r20' (temp 4-component vector of float) +0:65 imageLoad (temp 4-component vector of float) +0:65 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:65 Constant: +0:65 2 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of int) +0:66 'r21' (temp 4-component vector of int) +0:66 imageLoad (temp 4-component vector of int) +0:66 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 2 (const uint) +0:67 Sequence +0:67 move second child to first child (temp 4-component vector of uint) +0:67 'r22' (temp 4-component vector of uint) +0:67 imageLoad (temp 4-component vector of uint) +0:67 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 2 (const uint) +0:86 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:86 imageLoad (temp 4-component vector of float) +0:86 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:86 c1: direct index for structure (layout(offset=0 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:86 Constant: +0:86 0 (const uint) +0:87 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:87 Constant: +0:87 0 (const uint) +0:88 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:88 imageLoad (temp 4-component vector of uint) +0:88 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 0 (const uint) +0:111 move second child to first child (temp 4-component vector of float) +0:111 Color: direct index for structure (temp 4-component vector of float) +0:111 'psout' (temp structure{temp 4-component vector of float Color}) +0:111 Constant: +0:111 0 (const int) +0:111 Constant: +0:111 1.000000 +0:111 1.000000 +0:111 1.000000 +0:111 1.000000 +0:113 Sequence +0:113 Sequence +0:113 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:113 Color: direct index for structure (temp 4-component vector of float) +0:113 'psout' (temp structure{temp 4-component vector of float Color}) +0:113 Constant: +0:113 0 (const int) +0:113 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 190 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 165 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 29 "Fn2(vi4;" + Name 28 "x" + Name 33 "Fn2(vu4;" + Name 32 "x" + Name 37 "Fn2(vf4;" + Name 36 "x" + Name 56 "g_tTex1df4" + Name 60 "$Global" + MemberName 60($Global) 0 "c1" + MemberName 60($Global) 1 "c2" + MemberName 60($Global) 2 "c3" + MemberName 60($Global) 3 "c4" + MemberName 60($Global) 4 "o1" + MemberName 60($Global) 5 "o2" + MemberName 60($Global) 6 "o3" + MemberName 60($Global) 7 "o4" + Name 62 "" + Name 67 "r00" + Name 72 "r01" + Name 75 "g_tTex1di4" + Name 80 "r02" + Name 83 "g_tTex1du4" + Name 88 "r10" + Name 91 "g_tTex2df4" + Name 98 "r11" + Name 101 "g_tTex2di4" + Name 106 "r12" + Name 109 "g_tTex2du4" + Name 114 "r20" + Name 117 "g_tTex3df4" + Name 124 "r21" + Name 127 "g_tTex3di4" + Name 132 "r22" + Name 135 "g_tTex3du4" + Name 144 "param" + Name 150 "param" + Name 156 "param" + Name 158 "PS_OUTPUT" + MemberName 158(PS_OUTPUT) 0 "Color" + Name 160 "psout" + Name 165 "Color" + Name 171 "g_sSamp" + Name 174 "g_tTex1df4a" + Name 177 "g_tTex1di4a" + Name 180 "g_tTex1du4a" + Name 183 "g_tTex2df4a" + Name 186 "g_tTex2di4a" + Name 189 "g_tTex2du4a" + Decorate 56(g_tTex1df4) DescriptorSet 0 + Decorate 56(g_tTex1df4) Binding 0 + MemberDecorate 60($Global) 0 Offset 0 + MemberDecorate 60($Global) 1 Offset 8 + MemberDecorate 60($Global) 2 Offset 16 + MemberDecorate 60($Global) 3 Offset 32 + MemberDecorate 60($Global) 4 Offset 48 + MemberDecorate 60($Global) 5 Offset 56 + MemberDecorate 60($Global) 6 Offset 64 + MemberDecorate 60($Global) 7 Offset 80 + Decorate 60($Global) Block + Decorate 62 DescriptorSet 0 + Decorate 75(g_tTex1di4) DescriptorSet 0 + Decorate 83(g_tTex1du4) DescriptorSet 0 + Decorate 91(g_tTex2df4) DescriptorSet 0 + Decorate 101(g_tTex2di4) DescriptorSet 0 + Decorate 109(g_tTex2du4) DescriptorSet 0 + Decorate 117(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 135(g_tTex3du4) DescriptorSet 0 + Decorate 165(Color) Location 0 + Decorate 171(g_sSamp) DescriptorSet 0 + Decorate 171(g_sSamp) Binding 0 + Decorate 174(g_tTex1df4a) DescriptorSet 0 + Decorate 177(g_tTex1di4a) DescriptorSet 0 + Decorate 180(g_tTex1du4a) DescriptorSet 0 + Decorate 183(g_tTex2df4a) DescriptorSet 0 + Decorate 186(g_tTex2di4a) DescriptorSet 0 + Decorate 189(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 48: 6(int) Constant 0 + 49: 7(ivec4) ConstantComposite 48 48 48 48 + 50: 13(int) Constant 0 + 51: 14(ivec4) ConstantComposite 50 50 50 50 + 52: 20(float) Constant 0 + 53: 21(fvec4) ConstantComposite 52 52 52 52 + 54: TypeImage 20(float) 1D nonsampled format:Rgba32f + 55: TypePointer UniformConstant 54 + 56(g_tTex1df4): 55(ptr) Variable UniformConstant + 58: TypeVector 6(int) 2 + 59: TypeVector 6(int) 3 + 60($Global): TypeStruct 6(int) 58(ivec2) 59(ivec3) 7(ivec4) 6(int) 58(ivec2) 59(ivec3) 7(ivec4) + 61: TypePointer Uniform 60($Global) + 62: 61(ptr) Variable Uniform + 63: TypePointer Uniform 6(int) + 73: TypeImage 6(int) 1D nonsampled format:Rgba32i + 74: TypePointer UniformConstant 73 + 75(g_tTex1di4): 74(ptr) Variable UniformConstant + 81: TypeImage 13(int) 1D nonsampled format:Rgba32ui + 82: TypePointer UniformConstant 81 + 83(g_tTex1du4): 82(ptr) Variable UniformConstant + 89: TypeImage 20(float) 2D nonsampled format:Rgba32f + 90: TypePointer UniformConstant 89 + 91(g_tTex2df4): 90(ptr) Variable UniformConstant + 93: 6(int) Constant 1 + 94: TypePointer Uniform 58(ivec2) + 99: TypeImage 6(int) 2D nonsampled format:Rgba32i + 100: TypePointer UniformConstant 99 + 101(g_tTex2di4): 100(ptr) Variable UniformConstant + 107: TypeImage 13(int) 2D nonsampled format:Rgba32ui + 108: TypePointer UniformConstant 107 + 109(g_tTex2du4): 108(ptr) Variable UniformConstant + 115: TypeImage 20(float) 3D nonsampled format:Rgba32f + 116: TypePointer UniformConstant 115 + 117(g_tTex3df4): 116(ptr) Variable UniformConstant + 119: 6(int) Constant 2 + 120: TypePointer Uniform 59(ivec3) + 125: TypeImage 6(int) 3D nonsampled format:Rgba32i + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 133: TypeImage 13(int) 3D nonsampled format:Rgba32ui + 134: TypePointer UniformConstant 133 + 135(g_tTex3du4): 134(ptr) Variable UniformConstant + 158(PS_OUTPUT): TypeStruct 21(fvec4) + 159: TypePointer Function 158(PS_OUTPUT) + 161: 20(float) Constant 1065353216 + 162: 21(fvec4) ConstantComposite 161 161 161 161 + 164: TypePointer Output 21(fvec4) + 165(Color): 164(ptr) Variable Output + 169: TypeSampler + 170: TypePointer UniformConstant 169 + 171(g_sSamp): 170(ptr) Variable UniformConstant + 172: TypeImage 20(float) 1D array nonsampled format:Rgba32f + 173: TypePointer UniformConstant 172 +174(g_tTex1df4a): 173(ptr) Variable UniformConstant + 175: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 176: TypePointer UniformConstant 175 +177(g_tTex1di4a): 176(ptr) Variable UniformConstant + 178: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 179: TypePointer UniformConstant 178 +180(g_tTex1du4a): 179(ptr) Variable UniformConstant + 181: TypeImage 20(float) 2D array nonsampled format:Rgba32f + 182: TypePointer UniformConstant 181 +183(g_tTex2df4a): 182(ptr) Variable UniformConstant + 184: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 185: TypePointer UniformConstant 184 +186(g_tTex2di4a): 185(ptr) Variable UniformConstant + 187: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 188: TypePointer UniformConstant 187 +189(g_tTex2du4a): 188(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 67(r00): 22(ptr) Variable Function + 72(r01): 8(ptr) Variable Function + 80(r02): 15(ptr) Variable Function + 88(r10): 22(ptr) Variable Function + 98(r11): 8(ptr) Variable Function + 106(r12): 15(ptr) Variable Function + 114(r20): 22(ptr) Variable Function + 124(r21): 8(ptr) Variable Function + 132(r22): 15(ptr) Variable Function + 144(param): 22(ptr) Variable Function + 150(param): 8(ptr) Variable Function + 156(param): 15(ptr) Variable Function + 160(psout): 159(ptr) Variable Function + 57: 54 Load 56(g_tTex1df4) + 64: 63(ptr) AccessChain 62 48 + 65: 6(int) Load 64 + 66: 21(fvec4) ImageRead 57 65 + 68: 54 Load 56(g_tTex1df4) + 69: 63(ptr) AccessChain 62 48 + 70: 6(int) Load 69 + 71: 21(fvec4) ImageRead 68 70 + Store 67(r00) 71 + 76: 73 Load 75(g_tTex1di4) + 77: 63(ptr) AccessChain 62 48 + 78: 6(int) Load 77 + 79: 7(ivec4) ImageRead 76 78 + Store 72(r01) 79 + 84: 81 Load 83(g_tTex1du4) + 85: 63(ptr) AccessChain 62 48 + 86: 6(int) Load 85 + 87: 14(ivec4) ImageRead 84 86 + Store 80(r02) 87 + 92: 89 Load 91(g_tTex2df4) + 95: 94(ptr) AccessChain 62 93 + 96: 58(ivec2) Load 95 + 97: 21(fvec4) ImageRead 92 96 + Store 88(r10) 97 + 102: 99 Load 101(g_tTex2di4) + 103: 94(ptr) AccessChain 62 93 + 104: 58(ivec2) Load 103 + 105: 7(ivec4) ImageRead 102 104 + Store 98(r11) 105 + 110: 107 Load 109(g_tTex2du4) + 111: 94(ptr) AccessChain 62 93 + 112: 58(ivec2) Load 111 + 113: 14(ivec4) ImageRead 110 112 + Store 106(r12) 113 + 118: 115 Load 117(g_tTex3df4) + 121: 120(ptr) AccessChain 62 119 + 122: 59(ivec3) Load 121 + 123: 21(fvec4) ImageRead 118 122 + Store 114(r20) 123 + 128: 125 Load 127(g_tTex3di4) + 129: 120(ptr) AccessChain 62 119 + 130: 59(ivec3) Load 129 + 131: 7(ivec4) ImageRead 128 130 + Store 124(r21) 131 + 136: 133 Load 135(g_tTex3du4) + 137: 120(ptr) AccessChain 62 119 + 138: 59(ivec3) Load 137 + 139: 14(ivec4) ImageRead 136 138 + Store 132(r22) 139 + 140: 54 Load 56(g_tTex1df4) + 141: 63(ptr) AccessChain 62 48 + 142: 6(int) Load 141 + 143: 21(fvec4) ImageRead 140 142 + Store 144(param) 143 + 145: 21(fvec4) FunctionCall 25(Fn1(vf4;) 144(param) + 146: 73 Load 75(g_tTex1di4) + 147: 63(ptr) AccessChain 62 48 + 148: 6(int) Load 147 + 149: 7(ivec4) ImageRead 146 148 + Store 150(param) 149 + 151: 7(ivec4) FunctionCall 11(Fn1(vi4;) 150(param) + 152: 81 Load 83(g_tTex1du4) + 153: 63(ptr) AccessChain 62 48 + 154: 6(int) Load 153 + 155: 14(ivec4) ImageRead 152 154 + Store 156(param) 155 + 157: 14(ivec4) FunctionCall 18(Fn1(vu4;) 156(param) + 163: 22(ptr) AccessChain 160(psout) 48 + Store 163 162 + 166: 22(ptr) AccessChain 160(psout) 48 + 167: 21(fvec4) Load 166 + Store 165(Color) 167 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 39: 7(ivec4) Load 10(x) + ReturnValue 39 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 42: 14(ivec4) Load 17(x) + ReturnValue 42 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 45: 21(fvec4) Load 24(x) + ReturnValue 45 + FunctionEnd + 29(Fn2(vi4;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 49 + Return + FunctionEnd + 33(Fn2(vu4;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 51 + Return + FunctionEnd + 37(Fn2(vf4;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 53 + Return + FunctionEnd diff --git a/Test/hlsl.rw.bracket.frag b/Test/hlsl.rw.bracket.frag new file mode 100644 index 00000000..e435b91d --- /dev/null +++ b/Test/hlsl.rw.bracket.frag @@ -0,0 +1,114 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df4 : register(t0); +RWTexture1D g_tTex1di4; +RWTexture1D g_tTex1du4; + +RWTexture2D g_tTex2df4; +RWTexture2D g_tTex2di4; +RWTexture2D g_tTex2du4; + +RWTexture3D g_tTex3df4; +RWTexture3D g_tTex3di4; +RWTexture3D g_tTex3du4; + +RWTexture1DArray g_tTex1df4a; +RWTexture1DArray g_tTex1di4a; +RWTexture1DArray g_tTex1du4a; + +RWTexture2DArray g_tTex2df4a; +RWTexture2DArray g_tTex2di4a; +RWTexture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +void Fn2(out int4 x) { x = int4(0); } +void Fn2(out uint4 x) { x = uint4(0); } +void Fn2(out float4 x) { x = float4(0); } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Test as R-values + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + // // Test as L-values + // // 1D + // g_tTex1df4[c1] = float4(1,2,3,4); + // g_tTex1di4[c1] = int4(1,2,3,4); + // g_tTex1du4[c1] = uint4(1,2,3,4); + + // // 2D + // g_tTex2df4[c2] = float4(1,2,3,4); + // g_tTex2di4[c2] = int4(1,2,3,4); + // g_tTex2du4[c2] = uint4(1,2,3,4); + + // // 3D + // g_tTex3df4[c3] = float4(1,2,3,4); + // g_tTex3di4[c3] = int4(1,2,3,4); + // g_tTex3du4[c3] = uint4(1,2,3,4); + + // // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + // Fn2(g_tTex1df4[c1]); // out + // Fn2(g_tTex1di4[c1]); // out + // Fn2(g_tTex1du4[c1]); // out + + // // Test increment operators + // g_tTex1df4[c1]++; + // g_tTex1di4[c1]++; + // g_tTex1du4[c1]++; + + // g_tTex1df4[c1]--; + // g_tTex1di4[c1]--; + // g_tTex1du4[c1]--; + + // ++g_tTex1df4[c1]; + // ++g_tTex1di4[c1]; + // ++g_tTex1du4[c1]; + + // --g_tTex1df4[c1]; + // --g_tTex1di4[c1]; + // --g_tTex1du4[c1]; + + psout.Color = 1.0; + + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 7b642171..9a160cf4 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -147,6 +147,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promotions.frag", "main"}, + {"hlsl.rw.bracket.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4eda44d7..204e9f08 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -297,12 +297,40 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s return node; } +// +// Handle operator[] on any objects it applies to. Currently: +// Textures +// Buffers +// +TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) +{ + // handle r-value operator[] on textures and images. l-values will be processed later. + if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { + const TSampler& sampler = base->getType().getSampler(); + if (sampler.isImage() || sampler.isTexture()) { + const int vecSize = 4; // TODO: handle arbitrary sizes (get from qualifier) + TIntermAggregate* load = new TIntermAggregate(EOpImageLoad); + + load->setType(TType(sampler.type, EvqTemporary, vecSize)); + load->setLoc(loc); + load->getSequence().push_back(base); + load->getSequence().push_back(index); + return load; + } + } + + return nullptr; +} + // // Handle seeing a base[index] dereference in the grammar. // TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) { - TIntermTyped* result = nullptr; + TIntermTyped* result = handleBracketOperator(loc, base, index); + + if (result != nullptr) + return result; // it was handled as an operator[] bool flattened = false; int indexValue = 0; @@ -425,10 +453,10 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt field == "SampleLevel") { // If it's not a method on a sampler object, we fall through in case it is a struct member. if (base->getType().getBasicType() == EbtSampler) { - const TSampler& texType = base->getType().getSampler(); - if (! texType.isPureSampler()) { - const int vecSize = texType.isShadow() ? 1 : 4; - return intermediate.addMethod(base, TType(texType.type, EvqTemporary, vecSize), &field, loc); + const TSampler& sampler = base->getType().getSampler(); + if (! sampler.isPureSampler()) { + const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes + return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); } } } @@ -1261,7 +1289,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType case Esd2D: numDims = 2; break; // W, H case Esd3D: numDims = 3; break; // W, H, D case EsdCube: numDims = 2; break; // W, H (cube) - case EsdBuffer: numDims = 1; break; // buffers + case EsdBuffer: numDims = 1; break; // W (buffers) default: assert(0 && "unhandled texture dimension"); } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index c8ebdbe8..78beadb3 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -61,6 +61,7 @@ public: void handlePragma(const TSourceLoc&, const TVector&); TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void checkIndex(const TSourceLoc&, const TType&, int& index); TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); From 90707966eae3622d7d87d67a3cf8f163bd81320d Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 7 Oct 2016 19:35:40 -0600 Subject: [PATCH 189/217] HLSL: phase 2b: add l-value operator[] for RWTexture/RWBuffer This commit adds l-value support for RW texture and buffer objects. Supported are: - pre and post inc/decrement - function out parameters - op-assignments, such as *=, +-, etc. - result values from op-assignments. e.g, val=(MyRwTex[loc] *= 2); Not supported are: - Function inout parameters - multiple post-inc/decrement operators. E.g, MyRWTex[loc]++++; --- Test/baseResults/hlsl.rw.bracket.frag.out | 2997 +++++++++++++++---- Test/hlsl.rw.bracket.frag | 87 +- glslang/MachineIndependent/Intermediate.cpp | 4 + hlsl/hlslGrammar.cpp | 4 + hlsl/hlslParseHelper.cpp | 252 +- hlsl/hlslParseHelper.h | 8 +- 6 files changed, 2766 insertions(+), 586 deletions(-) diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out index 7c72e98b..b0dc68b7 100644 --- a/Test/baseResults/hlsl.rw.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -2,187 +2,836 @@ hlsl.rw.bracket.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) -0:38 Function Parameters: -0:38 'x' (in 4-component vector of int) -0:? Sequence -0:38 Branch: Return with expression -0:38 'x' (in 4-component vector of int) -0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) -0:39 Function Parameters: -0:39 'x' (in 4-component vector of uint) -0:? Sequence -0:39 Branch: Return with expression -0:39 'x' (in 4-component vector of uint) -0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) -0:40 Function Parameters: -0:40 'x' (in 4-component vector of float) -0:? Sequence -0:40 Branch: Return with expression -0:40 'x' (in 4-component vector of float) -0:42 Function Definition: Fn2(vi4; (temp void) +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) 0:42 Function Parameters: -0:42 'x' (out 4-component vector of int) +0:42 'x' (in 4-component vector of int) 0:? Sequence -0:42 move second child to first child (temp 4-component vector of int) -0:42 'x' (out 4-component vector of int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:43 Function Definition: Fn2(vu4; (temp void) +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) 0:43 Function Parameters: -0:43 'x' (out 4-component vector of uint) +0:43 'x' (in 4-component vector of uint) 0:? Sequence -0:43 move second child to first child (temp 4-component vector of uint) -0:43 'x' (out 4-component vector of uint) -0:43 Constant: -0:43 0 (const uint) -0:43 0 (const uint) -0:43 0 (const uint) -0:43 0 (const uint) -0:44 Function Definition: Fn2(vf4; (temp void) +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) 0:44 Function Parameters: -0:44 'x' (out 4-component vector of float) +0:44 'x' (in 4-component vector of float) 0:? Sequence -0:44 move second child to first child (temp 4-component vector of float) -0:44 'x' (out 4-component vector of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:47 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) 0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) 0:? Sequence -0:53 imageLoad (temp 4-component vector of float) -0:53 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:53 c1: direct index for structure (layout(offset=0 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:53 Constant: -0:53 0 (const uint) -0:55 Sequence -0:55 move second child to first child (temp 4-component vector of float) -0:55 'r00' (temp 4-component vector of float) -0:55 imageLoad (temp 4-component vector of float) -0:55 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:55 c1: direct index for structure (layout(offset=0 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:55 Constant: -0:55 0 (const uint) -0:56 Sequence -0:56 move second child to first child (temp 4-component vector of int) -0:56 'r01' (temp 4-component vector of int) -0:56 imageLoad (temp 4-component vector of int) -0:56 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:56 c1: direct index for structure (layout(offset=0 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:56 Constant: -0:56 0 (const uint) -0:57 Sequence -0:57 move second child to first child (temp 4-component vector of uint) -0:57 'r02' (temp 4-component vector of uint) -0:57 imageLoad (temp 4-component vector of uint) -0:57 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:57 Constant: -0:57 0 (const uint) +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) 0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:60 'r10' (temp 4-component vector of float) -0:60 imageLoad (temp 4-component vector of float) -0:60 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:60 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:60 Constant: -0:60 1 (const uint) +0:60 0 (const uint) 0:61 Sequence -0:61 move second child to first child (temp 4-component vector of int) -0:61 'r11' (temp 4-component vector of int) -0:61 imageLoad (temp 4-component vector of int) -0:61 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:61 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:61 Constant: -0:61 1 (const uint) -0:62 Sequence -0:62 move second child to first child (temp 4-component vector of uint) -0:62 'r12' (temp 4-component vector of uint) -0:62 imageLoad (temp 4-component vector of uint) -0:62 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:62 Constant: -0:62 1 (const uint) +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:65 'r20' (temp 4-component vector of float) -0:65 imageLoad (temp 4-component vector of float) -0:65 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:65 Constant: -0:65 2 (const uint) +0:65 1 (const uint) 0:66 Sequence -0:66 move second child to first child (temp 4-component vector of int) -0:66 'r21' (temp 4-component vector of int) -0:66 imageLoad (temp 4-component vector of int) -0:66 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:66 Constant: -0:66 2 (const uint) -0:67 Sequence -0:67 move second child to first child (temp 4-component vector of uint) -0:67 'r22' (temp 4-component vector of uint) -0:67 imageLoad (temp 4-component vector of uint) -0:67 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:67 Constant: -0:67 2 (const uint) -0:86 Function Call: Fn1(vf4; (temp 4-component vector of float) -0:86 imageLoad (temp 4-component vector of float) -0:86 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:86 c1: direct index for structure (layout(offset=0 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:86 Constant: -0:86 0 (const uint) -0:87 Function Call: Fn1(vi4; (temp 4-component vector of int) -0:87 imageLoad (temp 4-component vector of int) -0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) 0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:87 Constant: 0:87 0 (const uint) -0:88 Function Call: Fn1(vu4; (temp 4-component vector of uint) -0:88 imageLoad (temp 4-component vector of uint) -0:88 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) 0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:88 Constant: 0:88 0 (const uint) -0:111 move second child to first child (temp 4-component vector of float) -0:111 Color: direct index for structure (temp 4-component vector of float) -0:111 'psout' (temp structure{temp 4-component vector of float Color}) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1.000000 -0:111 1.000000 -0:111 1.000000 -0:111 1.000000 -0:113 Sequence +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) 0:113 Sequence -0:113 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:113 Color: direct index for structure (temp 4-component vector of float) -0:113 'psout' (temp structure{temp 4-component vector of float Color}) +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:113 Constant: -0:113 0 (const int) -0:113 Branch: Return +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:134 move second child to first child (temp 4-component vector of float) +0:134 Color: direct index for structure (temp 4-component vector of float) +0:134 'psout' (temp structure{temp 4-component vector of float Color}) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 1.000000 +0:134 1.000000 +0:134 1.000000 +0:134 1.000000 +0:136 Sequence +0:136 Sequence +0:136 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:136 Color: direct index for structure (temp 4-component vector of float) +0:136 'psout' (temp structure{temp 4-component vector of float Color}) +0:136 Constant: +0:136 0 (const int) +0:136 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) @@ -200,7 +849,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) @@ -210,187 +859,836 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) -0:38 Function Parameters: -0:38 'x' (in 4-component vector of int) -0:? Sequence -0:38 Branch: Return with expression -0:38 'x' (in 4-component vector of int) -0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) -0:39 Function Parameters: -0:39 'x' (in 4-component vector of uint) -0:? Sequence -0:39 Branch: Return with expression -0:39 'x' (in 4-component vector of uint) -0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) -0:40 Function Parameters: -0:40 'x' (in 4-component vector of float) -0:? Sequence -0:40 Branch: Return with expression -0:40 'x' (in 4-component vector of float) -0:42 Function Definition: Fn2(vi4; (temp void) +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) 0:42 Function Parameters: -0:42 'x' (out 4-component vector of int) +0:42 'x' (in 4-component vector of int) 0:? Sequence -0:42 move second child to first child (temp 4-component vector of int) -0:42 'x' (out 4-component vector of int) -0:42 Constant: -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:42 0 (const int) -0:43 Function Definition: Fn2(vu4; (temp void) +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) 0:43 Function Parameters: -0:43 'x' (out 4-component vector of uint) +0:43 'x' (in 4-component vector of uint) 0:? Sequence -0:43 move second child to first child (temp 4-component vector of uint) -0:43 'x' (out 4-component vector of uint) -0:43 Constant: -0:43 0 (const uint) -0:43 0 (const uint) -0:43 0 (const uint) -0:43 0 (const uint) -0:44 Function Definition: Fn2(vf4; (temp void) +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) 0:44 Function Parameters: -0:44 'x' (out 4-component vector of float) +0:44 'x' (in 4-component vector of float) 0:? Sequence -0:44 move second child to first child (temp 4-component vector of float) -0:44 'x' (out 4-component vector of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:44 0.000000 -0:47 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) 0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) 0:? Sequence -0:53 imageLoad (temp 4-component vector of float) -0:53 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:53 c1: direct index for structure (layout(offset=0 ) uniform int) -0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:53 Constant: -0:53 0 (const uint) -0:55 Sequence -0:55 move second child to first child (temp 4-component vector of float) -0:55 'r00' (temp 4-component vector of float) -0:55 imageLoad (temp 4-component vector of float) -0:55 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:55 c1: direct index for structure (layout(offset=0 ) uniform int) -0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:55 Constant: -0:55 0 (const uint) -0:56 Sequence -0:56 move second child to first child (temp 4-component vector of int) -0:56 'r01' (temp 4-component vector of int) -0:56 imageLoad (temp 4-component vector of int) -0:56 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) -0:56 c1: direct index for structure (layout(offset=0 ) uniform int) -0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:56 Constant: -0:56 0 (const uint) -0:57 Sequence -0:57 move second child to first child (temp 4-component vector of uint) -0:57 'r02' (temp 4-component vector of uint) -0:57 imageLoad (temp 4-component vector of uint) -0:57 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) -0:57 c1: direct index for structure (layout(offset=0 ) uniform int) -0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:57 Constant: -0:57 0 (const uint) +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) 0:60 Sequence -0:60 move second child to first child (temp 4-component vector of float) -0:60 'r10' (temp 4-component vector of float) -0:60 imageLoad (temp 4-component vector of float) -0:60 'g_tTex2df4' (layout(rgba32f ) uniform image2D) -0:60 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:60 Constant: -0:60 1 (const uint) +0:60 0 (const uint) 0:61 Sequence -0:61 move second child to first child (temp 4-component vector of int) -0:61 'r11' (temp 4-component vector of int) -0:61 imageLoad (temp 4-component vector of int) -0:61 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) -0:61 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:61 Constant: -0:61 1 (const uint) -0:62 Sequence -0:62 move second child to first child (temp 4-component vector of uint) -0:62 'r12' (temp 4-component vector of uint) -0:62 imageLoad (temp 4-component vector of uint) -0:62 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) -0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) -0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:62 Constant: -0:62 1 (const uint) +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence -0:65 move second child to first child (temp 4-component vector of float) -0:65 'r20' (temp 4-component vector of float) -0:65 imageLoad (temp 4-component vector of float) -0:65 'g_tTex3df4' (layout(rgba32f ) uniform image3D) -0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:65 Constant: -0:65 2 (const uint) +0:65 1 (const uint) 0:66 Sequence -0:66 move second child to first child (temp 4-component vector of int) -0:66 'r21' (temp 4-component vector of int) -0:66 imageLoad (temp 4-component vector of int) -0:66 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) -0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:66 Constant: -0:66 2 (const uint) -0:67 Sequence -0:67 move second child to first child (temp 4-component vector of uint) -0:67 'r22' (temp 4-component vector of uint) -0:67 imageLoad (temp 4-component vector of uint) -0:67 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) -0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) -0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:67 Constant: -0:67 2 (const uint) -0:86 Function Call: Fn1(vf4; (temp 4-component vector of float) -0:86 imageLoad (temp 4-component vector of float) -0:86 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) -0:86 c1: direct index for structure (layout(offset=0 ) uniform int) -0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:86 Constant: -0:86 0 (const uint) -0:87 Function Call: Fn1(vi4; (temp 4-component vector of int) -0:87 imageLoad (temp 4-component vector of int) -0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) 0:87 c1: direct index for structure (layout(offset=0 ) uniform int) -0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:87 Constant: 0:87 0 (const uint) -0:88 Function Call: Fn1(vu4; (temp 4-component vector of uint) -0:88 imageLoad (temp 4-component vector of uint) -0:88 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) 0:88 c1: direct index for structure (layout(offset=0 ) uniform int) -0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:88 Constant: 0:88 0 (const uint) -0:111 move second child to first child (temp 4-component vector of float) -0:111 Color: direct index for structure (temp 4-component vector of float) -0:111 'psout' (temp structure{temp 4-component vector of float Color}) -0:111 Constant: -0:111 0 (const int) -0:111 Constant: -0:111 1.000000 -0:111 1.000000 -0:111 1.000000 -0:111 1.000000 -0:113 Sequence +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) 0:113 Sequence -0:113 move second child to first child (temp 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:113 Color: direct index for structure (temp 4-component vector of float) -0:113 'psout' (temp structure{temp 4-component vector of float Color}) +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:113 Constant: -0:113 0 (const int) -0:113 Branch: Return +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:134 move second child to first child (temp 4-component vector of float) +0:134 Color: direct index for structure (temp 4-component vector of float) +0:134 'psout' (temp structure{temp 4-component vector of float Color}) +0:134 Constant: +0:134 0 (const int) +0:134 Constant: +0:134 1.000000 +0:134 1.000000 +0:134 1.000000 +0:134 1.000000 +0:136 Sequence +0:136 Sequence +0:136 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:136 Color: direct index for structure (temp 4-component vector of float) +0:136 'psout' (temp structure{temp 4-component vector of float Color}) +0:136 Constant: +0:136 0 (const int) +0:136 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) @@ -408,18 +1706,18 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 190 +// Id's are bound by 596 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 165 + EntryPoint Fragment 4 "main" 571 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn1(vi4;" @@ -434,77 +1732,149 @@ gl_FragCoord origin is upper left Name 32 "x" Name 37 "Fn2(vf4;" Name 36 "x" - Name 56 "g_tTex1df4" - Name 60 "$Global" - MemberName 60($Global) 0 "c1" - MemberName 60($Global) 1 "c2" - MemberName 60($Global) 2 "c3" - MemberName 60($Global) 3 "c4" - MemberName 60($Global) 4 "o1" - MemberName 60($Global) 5 "o2" - MemberName 60($Global) 6 "o3" - MemberName 60($Global) 7 "o4" - Name 62 "" - Name 67 "r00" - Name 72 "r01" - Name 75 "g_tTex1di4" - Name 80 "r02" - Name 83 "g_tTex1du4" - Name 88 "r10" - Name 91 "g_tTex2df4" - Name 98 "r11" - Name 101 "g_tTex2di4" - Name 106 "r12" - Name 109 "g_tTex2du4" - Name 114 "r20" - Name 117 "g_tTex3df4" - Name 124 "r21" - Name 127 "g_tTex3di4" - Name 132 "r22" - Name 135 "g_tTex3du4" - Name 144 "param" - Name 150 "param" - Name 156 "param" - Name 158 "PS_OUTPUT" - MemberName 158(PS_OUTPUT) 0 "Color" - Name 160 "psout" - Name 165 "Color" - Name 171 "g_sSamp" - Name 174 "g_tTex1df4a" - Name 177 "g_tTex1di4a" - Name 180 "g_tTex1du4a" - Name 183 "g_tTex2df4a" - Name 186 "g_tTex2di4a" - Name 189 "g_tTex2du4a" - Decorate 56(g_tTex1df4) DescriptorSet 0 - Decorate 56(g_tTex1df4) Binding 0 - MemberDecorate 60($Global) 0 Offset 0 - MemberDecorate 60($Global) 1 Offset 8 - MemberDecorate 60($Global) 2 Offset 16 - MemberDecorate 60($Global) 3 Offset 32 - MemberDecorate 60($Global) 4 Offset 48 - MemberDecorate 60($Global) 5 Offset 56 - MemberDecorate 60($Global) 6 Offset 64 - MemberDecorate 60($Global) 7 Offset 80 - Decorate 60($Global) Block - Decorate 62 DescriptorSet 0 - Decorate 75(g_tTex1di4) DescriptorSet 0 - Decorate 83(g_tTex1du4) DescriptorSet 0 - Decorate 91(g_tTex2df4) DescriptorSet 0 - Decorate 101(g_tTex2di4) DescriptorSet 0 - Decorate 109(g_tTex2du4) DescriptorSet 0 - Decorate 117(g_tTex3df4) DescriptorSet 0 - Decorate 127(g_tTex3di4) DescriptorSet 0 - Decorate 135(g_tTex3du4) DescriptorSet 0 - Decorate 165(Color) Location 0 - Decorate 171(g_sSamp) DescriptorSet 0 - Decorate 171(g_sSamp) Binding 0 - Decorate 174(g_tTex1df4a) DescriptorSet 0 - Decorate 177(g_tTex1di4a) DescriptorSet 0 - Decorate 180(g_tTex1du4a) DescriptorSet 0 - Decorate 183(g_tTex2df4a) DescriptorSet 0 - Decorate 186(g_tTex2di4a) DescriptorSet 0 - Decorate 189(g_tTex2du4a) DescriptorSet 0 + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf4" + MemberName 59($Global) 9 "ui4" + MemberName 59($Global) 10 "uu4" + Name 61 "" + Name 71 "g_tTex1df4" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di4" + Name 90 "r02" + Name 93 "g_tTex1du4" + Name 98 "r10" + Name 101 "g_tTex2df4" + Name 108 "r11" + Name 111 "g_tTex2di4" + Name 116 "r12" + Name 119 "g_tTex2du4" + Name 124 "r20" + Name 127 "g_tTex3df4" + Name 134 "r21" + Name 137 "g_tTex3di4" + Name 142 "r22" + Name 145 "g_tTex3du4" + Name 150 "lf4" + Name 155 "storeTemp" + Name 165 "storeTemp" + Name 172 "storeTemp" + Name 181 "val1" + Name 183 "coordTemp" + Name 186 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 211 "coordTemp" + Name 214 "storeTemp" + Name 225 "coordTemp" + Name 228 "storeTemp" + Name 238 "coordTemp" + Name 241 "storeTemp" + Name 251 "coordTemp" + Name 254 "storeTemp" + Name 265 "coordTemp" + Name 268 "storeTemp" + Name 279 "coordTemp" + Name 282 "storeTemp" + Name 292 "coordTemp" + Name 295 "storeTemp" + Name 305 "storeTemp" + Name 315 "storeTemp" + Name 322 "storeTemp" + Name 329 "storeTemp" + Name 339 "storeTemp" + Name 347 "storeTemp" + Name 358 "param" + Name 364 "param" + Name 370 "param" + Name 372 "tempArg" + Name 373 "param" + Name 380 "tempArg" + Name 381 "param" + Name 388 "tempArg" + Name 389 "param" + Name 396 "coordTemp" + Name 399 "storeTemp" + Name 410 "coordTemp" + Name 413 "storeTemp" + Name 423 "coordTemp" + Name 426 "storeTemp" + Name 436 "coordTemp" + Name 439 "storeTemp" + Name 449 "coordTemp" + Name 452 "storeTemp" + Name 462 "coordTemp" + Name 465 "storeTemp" + Name 475 "coordTemp" + Name 478 "storeTempPre" + Name 482 "storeTempPost" + Name 490 "coordTemp" + Name 493 "storeTempPre" + Name 497 "storeTempPost" + Name 505 "coordTemp" + Name 508 "storeTempPre" + Name 512 "storeTempPost" + Name 520 "coordTemp" + Name 523 "storeTempPre" + Name 527 "storeTempPost" + Name 535 "coordTemp" + Name 538 "storeTempPre" + Name 542 "storeTempPost" + Name 550 "coordTemp" + Name 553 "storeTempPre" + Name 557 "storeTempPost" + Name 565 "PS_OUTPUT" + MemberName 565(PS_OUTPUT) 0 "Color" + Name 567 "psout" + Name 571 "Color" + Name 577 "g_sSamp" + Name 580 "g_tTex1df4a" + Name 583 "g_tTex1di4a" + Name 586 "g_tTex1du4a" + Name 589 "g_tTex2df4a" + Name 592 "g_tTex2di4a" + Name 595 "g_tTex2du4a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 112 + MemberDecorate 59($Global) 10 Offset 128 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df4) DescriptorSet 0 + Decorate 71(g_tTex1df4) Binding 0 + Decorate 85(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 101(g_tTex2df4) DescriptorSet 0 + Decorate 111(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 137(g_tTex3di4) DescriptorSet 0 + Decorate 145(g_tTex3du4) DescriptorSet 0 + Decorate 571(Color) Location 0 + Decorate 577(g_sSamp) DescriptorSet 0 + Decorate 577(g_sSamp) Binding 0 + Decorate 580(g_tTex1df4a) DescriptorSet 0 + Decorate 583(g_tTex1di4a) DescriptorSet 0 + Decorate 586(g_tTex1du4a) DescriptorSet 0 + Decorate 589(g_tTex2df4a) DescriptorSet 0 + Decorate 592(g_tTex2di4a) DescriptorSet 0 + Decorate 595(g_tTex2du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -522,198 +1892,723 @@ gl_FragCoord origin is upper left 27: TypeFunction 2 8(ptr) 31: TypeFunction 2 15(ptr) 35: TypeFunction 2 22(ptr) - 48: 6(int) Constant 0 - 49: 7(ivec4) ConstantComposite 48 48 48 48 - 50: 13(int) Constant 0 - 51: 14(ivec4) ConstantComposite 50 50 50 50 - 52: 20(float) Constant 0 - 53: 21(fvec4) ConstantComposite 52 52 52 52 - 54: TypeImage 20(float) 1D nonsampled format:Rgba32f - 55: TypePointer UniformConstant 54 - 56(g_tTex1df4): 55(ptr) Variable UniformConstant - 58: TypeVector 6(int) 2 - 59: TypeVector 6(int) 3 - 60($Global): TypeStruct 6(int) 58(ivec2) 59(ivec3) 7(ivec4) 6(int) 58(ivec2) 59(ivec3) 7(ivec4) - 61: TypePointer Uniform 60($Global) - 62: 61(ptr) Variable Uniform - 63: TypePointer Uniform 6(int) - 73: TypeImage 6(int) 1D nonsampled format:Rgba32i - 74: TypePointer UniformConstant 73 - 75(g_tTex1di4): 74(ptr) Variable UniformConstant - 81: TypeImage 13(int) 1D nonsampled format:Rgba32ui - 82: TypePointer UniformConstant 81 - 83(g_tTex1du4): 82(ptr) Variable UniformConstant - 89: TypeImage 20(float) 2D nonsampled format:Rgba32f - 90: TypePointer UniformConstant 89 - 91(g_tTex2df4): 90(ptr) Variable UniformConstant - 93: 6(int) Constant 1 - 94: TypePointer Uniform 58(ivec2) - 99: TypeImage 6(int) 2D nonsampled format:Rgba32i + 39: TypeFunction 21(fvec4) + 51: 6(int) Constant 0 + 52: 7(ivec4) ConstantComposite 51 51 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec4) ConstantComposite 53 53 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec4) ConstantComposite 55 55 55 55 + 57: TypeVector 6(int) 2 + 58: TypeVector 6(int) 3 + 59($Global): TypeStruct 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 3 + 63: TypePointer Uniform 7(ivec4) + 69: TypeImage 20(float) 1D nonsampled format:Rgba32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df4): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rgba32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rgba32f 100: TypePointer UniformConstant 99 - 101(g_tTex2di4): 100(ptr) Variable UniformConstant - 107: TypeImage 13(int) 2D nonsampled format:Rgba32ui - 108: TypePointer UniformConstant 107 - 109(g_tTex2du4): 108(ptr) Variable UniformConstant - 115: TypeImage 20(float) 3D nonsampled format:Rgba32f - 116: TypePointer UniformConstant 115 - 117(g_tTex3df4): 116(ptr) Variable UniformConstant - 119: 6(int) Constant 2 - 120: TypePointer Uniform 59(ivec3) - 125: TypeImage 6(int) 3D nonsampled format:Rgba32i + 101(g_tTex2df4): 100(ptr) Variable UniformConstant + 103: 6(int) Constant 1 + 104: TypePointer Uniform 57(ivec2) + 109: TypeImage 6(int) 2D nonsampled format:Rgba32i + 110: TypePointer UniformConstant 109 + 111(g_tTex2di4): 110(ptr) Variable UniformConstant + 117: TypeImage 13(int) 2D nonsampled format:Rgba32ui + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 125: TypeImage 20(float) 3D nonsampled format:Rgba32f 126: TypePointer UniformConstant 125 - 127(g_tTex3di4): 126(ptr) Variable UniformConstant - 133: TypeImage 13(int) 3D nonsampled format:Rgba32ui - 134: TypePointer UniformConstant 133 - 135(g_tTex3du4): 134(ptr) Variable UniformConstant - 158(PS_OUTPUT): TypeStruct 21(fvec4) - 159: TypePointer Function 158(PS_OUTPUT) - 161: 20(float) Constant 1065353216 - 162: 21(fvec4) ConstantComposite 161 161 161 161 - 164: TypePointer Output 21(fvec4) - 165(Color): 164(ptr) Variable Output - 169: TypeSampler - 170: TypePointer UniformConstant 169 - 171(g_sSamp): 170(ptr) Variable UniformConstant - 172: TypeImage 20(float) 1D array nonsampled format:Rgba32f - 173: TypePointer UniformConstant 172 -174(g_tTex1df4a): 173(ptr) Variable UniformConstant - 175: TypeImage 6(int) 1D array nonsampled format:Rgba32i - 176: TypePointer UniformConstant 175 -177(g_tTex1di4a): 176(ptr) Variable UniformConstant - 178: TypeImage 13(int) 1D array nonsampled format:Rgba32ui - 179: TypePointer UniformConstant 178 -180(g_tTex1du4a): 179(ptr) Variable UniformConstant - 181: TypeImage 20(float) 2D array nonsampled format:Rgba32f - 182: TypePointer UniformConstant 181 -183(g_tTex2df4a): 182(ptr) Variable UniformConstant - 184: TypeImage 6(int) 2D array nonsampled format:Rgba32i - 185: TypePointer UniformConstant 184 -186(g_tTex2di4a): 185(ptr) Variable UniformConstant - 187: TypeImage 13(int) 2D array nonsampled format:Rgba32ui - 188: TypePointer UniformConstant 187 -189(g_tTex2du4a): 188(ptr) Variable UniformConstant + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 129: 6(int) Constant 2 + 130: TypePointer Uniform 58(ivec3) + 135: TypeImage 6(int) 3D nonsampled format:Rgba32i + 136: TypePointer UniformConstant 135 + 137(g_tTex3di4): 136(ptr) Variable UniformConstant + 143: TypeImage 13(int) 3D nonsampled format:Rgba32ui + 144: TypePointer UniformConstant 143 + 145(g_tTex3du4): 144(ptr) Variable UniformConstant + 151: 6(int) Constant 8 + 152: TypePointer Uniform 21(fvec4) + 166: 6(int) Constant 4 + 167: 7(ivec4) ConstantComposite 129 129 62 166 + 173: 13(int) Constant 3 + 174: 13(int) Constant 2 + 175: 13(int) Constant 4 + 176: 14(ivec4) ConstantComposite 173 174 173 175 + 182: TypePointer Function 6(int) + 190: 20(float) Constant 1073741824 + 204: 20(float) Constant 1077936128 + 218: 20(float) Constant 1082130432 + 258: 6(int) Constant 65535 + 272: 6(int) Constant 61680 + 316: 6(int) Constant 5 + 317: 7(ivec4) ConstantComposite 316 129 62 166 + 323: 13(int) Constant 6 + 324: 14(ivec4) ConstantComposite 323 174 173 175 + 340: 6(int) Constant 6 + 341: 6(int) Constant 7 + 342: 7(ivec4) ConstantComposite 151 340 341 151 + 348: 13(int) Constant 9 + 349: 14(ivec4) ConstantComposite 348 174 173 175 + 404: 20(float) Constant 1065353216 + 565(PS_OUTPUT): TypeStruct 21(fvec4) + 566: TypePointer Function 565(PS_OUTPUT) + 568: 21(fvec4) ConstantComposite 404 404 404 404 + 570: TypePointer Output 21(fvec4) + 571(Color): 570(ptr) Variable Output + 575: TypeSampler + 576: TypePointer UniformConstant 575 + 577(g_sSamp): 576(ptr) Variable UniformConstant + 578: TypeImage 20(float) 1D array nonsampled format:Rgba32f + 579: TypePointer UniformConstant 578 +580(g_tTex1df4a): 579(ptr) Variable UniformConstant + 581: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 582: TypePointer UniformConstant 581 +583(g_tTex1di4a): 582(ptr) Variable UniformConstant + 584: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 585: TypePointer UniformConstant 584 +586(g_tTex1du4a): 585(ptr) Variable UniformConstant + 587: TypeImage 20(float) 2D array nonsampled format:Rgba32f + 588: TypePointer UniformConstant 587 +589(g_tTex2df4a): 588(ptr) Variable UniformConstant + 590: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 591: TypePointer UniformConstant 590 +592(g_tTex2di4a): 591(ptr) Variable UniformConstant + 593: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 594: TypePointer UniformConstant 593 +595(g_tTex2du4a): 594(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 67(r00): 22(ptr) Variable Function - 72(r01): 8(ptr) Variable Function - 80(r02): 15(ptr) Variable Function - 88(r10): 22(ptr) Variable Function - 98(r11): 8(ptr) Variable Function - 106(r12): 15(ptr) Variable Function - 114(r20): 22(ptr) Variable Function - 124(r21): 8(ptr) Variable Function - 132(r22): 15(ptr) Variable Function - 144(param): 22(ptr) Variable Function - 150(param): 8(ptr) Variable Function - 156(param): 15(ptr) Variable Function - 160(psout): 159(ptr) Variable Function - 57: 54 Load 56(g_tTex1df4) - 64: 63(ptr) AccessChain 62 48 - 65: 6(int) Load 64 - 66: 21(fvec4) ImageRead 57 65 - 68: 54 Load 56(g_tTex1df4) - 69: 63(ptr) AccessChain 62 48 - 70: 6(int) Load 69 - 71: 21(fvec4) ImageRead 68 70 - Store 67(r00) 71 - 76: 73 Load 75(g_tTex1di4) - 77: 63(ptr) AccessChain 62 48 - 78: 6(int) Load 77 - 79: 7(ivec4) ImageRead 76 78 - Store 72(r01) 79 - 84: 81 Load 83(g_tTex1du4) - 85: 63(ptr) AccessChain 62 48 - 86: 6(int) Load 85 - 87: 14(ivec4) ImageRead 84 86 - Store 80(r02) 87 - 92: 89 Load 91(g_tTex2df4) - 95: 94(ptr) AccessChain 62 93 - 96: 58(ivec2) Load 95 - 97: 21(fvec4) ImageRead 92 96 - Store 88(r10) 97 - 102: 99 Load 101(g_tTex2di4) - 103: 94(ptr) AccessChain 62 93 - 104: 58(ivec2) Load 103 - 105: 7(ivec4) ImageRead 102 104 - Store 98(r11) 105 - 110: 107 Load 109(g_tTex2du4) - 111: 94(ptr) AccessChain 62 93 - 112: 58(ivec2) Load 111 - 113: 14(ivec4) ImageRead 110 112 - Store 106(r12) 113 - 118: 115 Load 117(g_tTex3df4) - 121: 120(ptr) AccessChain 62 119 - 122: 59(ivec3) Load 121 - 123: 21(fvec4) ImageRead 118 122 - Store 114(r20) 123 - 128: 125 Load 127(g_tTex3di4) - 129: 120(ptr) AccessChain 62 119 - 130: 59(ivec3) Load 129 - 131: 7(ivec4) ImageRead 128 130 - Store 124(r21) 131 - 136: 133 Load 135(g_tTex3du4) - 137: 120(ptr) AccessChain 62 119 - 138: 59(ivec3) Load 137 - 139: 14(ivec4) ImageRead 136 138 - Store 132(r22) 139 - 140: 54 Load 56(g_tTex1df4) - 141: 63(ptr) AccessChain 62 48 - 142: 6(int) Load 141 - 143: 21(fvec4) ImageRead 140 142 - Store 144(param) 143 - 145: 21(fvec4) FunctionCall 25(Fn1(vf4;) 144(param) - 146: 73 Load 75(g_tTex1di4) - 147: 63(ptr) AccessChain 62 48 - 148: 6(int) Load 147 - 149: 7(ivec4) ImageRead 146 148 - Store 150(param) 149 - 151: 7(ivec4) FunctionCall 11(Fn1(vi4;) 150(param) - 152: 81 Load 83(g_tTex1du4) - 153: 63(ptr) AccessChain 62 48 - 154: 6(int) Load 153 - 155: 14(ivec4) ImageRead 152 154 - Store 156(param) 155 - 157: 14(ivec4) FunctionCall 18(Fn1(vu4;) 156(param) - 163: 22(ptr) AccessChain 160(psout) 48 - Store 163 162 - 166: 22(ptr) AccessChain 160(psout) 48 - 167: 21(fvec4) Load 166 - Store 165(Color) 167 + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 108(r11): 8(ptr) Variable Function + 116(r12): 15(ptr) Variable Function + 124(r20): 22(ptr) Variable Function + 134(r21): 8(ptr) Variable Function + 142(r22): 15(ptr) Variable Function + 150(lf4): 22(ptr) Variable Function + 155(storeTemp): 22(ptr) Variable Function + 165(storeTemp): 8(ptr) Variable Function + 172(storeTemp): 15(ptr) Variable Function + 181(val1): 22(ptr) Variable Function + 183(coordTemp): 182(ptr) Variable Function + 186(storeTemp): 22(ptr) Variable Function + 197(coordTemp): 182(ptr) Variable Function + 200(storeTemp): 22(ptr) Variable Function + 211(coordTemp): 182(ptr) Variable Function + 214(storeTemp): 22(ptr) Variable Function + 225(coordTemp): 182(ptr) Variable Function + 228(storeTemp): 8(ptr) Variable Function + 238(coordTemp): 182(ptr) Variable Function + 241(storeTemp): 8(ptr) Variable Function + 251(coordTemp): 182(ptr) Variable Function + 254(storeTemp): 8(ptr) Variable Function + 265(coordTemp): 182(ptr) Variable Function + 268(storeTemp): 8(ptr) Variable Function + 279(coordTemp): 182(ptr) Variable Function + 282(storeTemp): 8(ptr) Variable Function + 292(coordTemp): 182(ptr) Variable Function + 295(storeTemp): 8(ptr) Variable Function + 305(storeTemp): 22(ptr) Variable Function + 315(storeTemp): 8(ptr) Variable Function + 322(storeTemp): 15(ptr) Variable Function + 329(storeTemp): 22(ptr) Variable Function + 339(storeTemp): 8(ptr) Variable Function + 347(storeTemp): 15(ptr) Variable Function + 358(param): 22(ptr) Variable Function + 364(param): 8(ptr) Variable Function + 370(param): 15(ptr) Variable Function + 372(tempArg): 22(ptr) Variable Function + 373(param): 22(ptr) Variable Function + 380(tempArg): 8(ptr) Variable Function + 381(param): 8(ptr) Variable Function + 388(tempArg): 15(ptr) Variable Function + 389(param): 15(ptr) Variable Function + 396(coordTemp): 182(ptr) Variable Function + 399(storeTemp): 22(ptr) Variable Function + 410(coordTemp): 182(ptr) Variable Function + 413(storeTemp): 8(ptr) Variable Function + 423(coordTemp): 182(ptr) Variable Function + 426(storeTemp): 15(ptr) Variable Function + 436(coordTemp): 182(ptr) Variable Function + 439(storeTemp): 22(ptr) Variable Function + 449(coordTemp): 182(ptr) Variable Function + 452(storeTemp): 8(ptr) Variable Function + 462(coordTemp): 182(ptr) Variable Function + 465(storeTemp): 15(ptr) Variable Function + 475(coordTemp): 182(ptr) Variable Function +478(storeTempPre): 22(ptr) Variable Function +482(storeTempPost): 22(ptr) Variable Function + 490(coordTemp): 182(ptr) Variable Function +493(storeTempPre): 15(ptr) Variable Function +497(storeTempPost): 15(ptr) Variable Function + 505(coordTemp): 182(ptr) Variable Function +508(storeTempPre): 8(ptr) Variable Function +512(storeTempPost): 8(ptr) Variable Function + 520(coordTemp): 182(ptr) Variable Function +523(storeTempPre): 22(ptr) Variable Function +527(storeTempPost): 22(ptr) Variable Function + 535(coordTemp): 182(ptr) Variable Function +538(storeTempPre): 8(ptr) Variable Function +542(storeTempPost): 8(ptr) Variable Function + 550(coordTemp): 182(ptr) Variable Function +553(storeTempPre): 15(ptr) Variable Function +557(storeTempPost): 15(ptr) Variable Function + 567(psout): 566(ptr) Variable Function + 72: 69 Load 71(g_tTex1df4) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec4) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df4) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec4) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di4) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec4) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du4) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec4) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df4) + 105: 104(ptr) AccessChain 61 103 + 106: 57(ivec2) Load 105 + 107: 21(fvec4) ImageRead 102 106 + Store 98(r10) 107 + 112: 109 Load 111(g_tTex2di4) + 113: 104(ptr) AccessChain 61 103 + 114: 57(ivec2) Load 113 + 115: 7(ivec4) ImageRead 112 114 + Store 108(r11) 115 + 120: 117 Load 119(g_tTex2du4) + 121: 104(ptr) AccessChain 61 103 + 122: 57(ivec2) Load 121 + 123: 14(ivec4) ImageRead 120 122 + Store 116(r12) 123 + 128: 125 Load 127(g_tTex3df4) + 131: 130(ptr) AccessChain 61 129 + 132: 58(ivec3) Load 131 + 133: 21(fvec4) ImageRead 128 132 + Store 124(r20) 133 + 138: 135 Load 137(g_tTex3di4) + 139: 130(ptr) AccessChain 61 129 + 140: 58(ivec3) Load 139 + 141: 7(ivec4) ImageRead 138 140 + Store 134(r21) 141 + 146: 143 Load 145(g_tTex3du4) + 147: 130(ptr) AccessChain 61 129 + 148: 58(ivec3) Load 147 + 149: 14(ivec4) ImageRead 146 148 + Store 142(r22) 149 + 153: 152(ptr) AccessChain 61 151 + 154: 21(fvec4) Load 153 + Store 150(lf4) 154 + 156: 21(fvec4) FunctionCall 40(SomeValue() + Store 155(storeTemp) 156 + 157: 69 Load 71(g_tTex1df4) + 158: 73(ptr) AccessChain 61 51 + 159: 6(int) Load 158 + 160: 21(fvec4) Load 155(storeTemp) + ImageWrite 157 159 160 + 161: 69 Load 71(g_tTex1df4) + 162: 73(ptr) AccessChain 61 51 + 163: 6(int) Load 162 + 164: 21(fvec4) Load 150(lf4) + ImageWrite 161 163 164 + Store 165(storeTemp) 167 + 168: 83 Load 85(g_tTex1di4) + 169: 73(ptr) AccessChain 61 51 + 170: 6(int) Load 169 + 171: 7(ivec4) Load 165(storeTemp) + ImageWrite 168 170 171 + Store 172(storeTemp) 176 + 177: 91 Load 93(g_tTex1du4) + 178: 73(ptr) AccessChain 61 51 + 179: 6(int) Load 178 + 180: 14(ivec4) Load 172(storeTemp) + ImageWrite 177 179 180 + 184: 73(ptr) AccessChain 61 51 + 185: 6(int) Load 184 + Store 183(coordTemp) 185 + 187: 69 Load 71(g_tTex1df4) + 188: 6(int) Load 183(coordTemp) + 189: 21(fvec4) ImageRead 187 188 + Store 186(storeTemp) 189 + 191: 21(fvec4) Load 186(storeTemp) + 192: 21(fvec4) VectorTimesScalar 191 190 + Store 186(storeTemp) 192 + 193: 69 Load 71(g_tTex1df4) + 194: 6(int) Load 183(coordTemp) + 195: 21(fvec4) Load 186(storeTemp) + ImageWrite 193 194 195 + 196: 21(fvec4) Load 186(storeTemp) + Store 181(val1) 196 + 198: 73(ptr) AccessChain 61 51 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 69 Load 71(g_tTex1df4) + 202: 6(int) Load 197(coordTemp) + 203: 21(fvec4) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 21(fvec4) Load 200(storeTemp) + 206: 21(fvec4) CompositeConstruct 204 204 204 204 + 207: 21(fvec4) FSub 205 206 + Store 200(storeTemp) 207 + 208: 69 Load 71(g_tTex1df4) + 209: 6(int) Load 197(coordTemp) + 210: 21(fvec4) Load 200(storeTemp) + ImageWrite 208 209 210 + 212: 73(ptr) AccessChain 61 51 + 213: 6(int) Load 212 + Store 211(coordTemp) 213 + 215: 69 Load 71(g_tTex1df4) + 216: 6(int) Load 211(coordTemp) + 217: 21(fvec4) ImageRead 215 216 + Store 214(storeTemp) 217 + 219: 21(fvec4) Load 214(storeTemp) + 220: 21(fvec4) CompositeConstruct 218 218 218 218 + 221: 21(fvec4) FAdd 219 220 + Store 214(storeTemp) 221 + 222: 69 Load 71(g_tTex1df4) + 223: 6(int) Load 211(coordTemp) + 224: 21(fvec4) Load 214(storeTemp) + ImageWrite 222 223 224 + 226: 73(ptr) AccessChain 61 51 + 227: 6(int) Load 226 + Store 225(coordTemp) 227 + 229: 83 Load 85(g_tTex1di4) + 230: 6(int) Load 225(coordTemp) + 231: 7(ivec4) ImageRead 229 230 + Store 228(storeTemp) 231 + 232: 7(ivec4) Load 228(storeTemp) + 233: 7(ivec4) CompositeConstruct 129 129 129 129 + 234: 7(ivec4) SDiv 232 233 + Store 228(storeTemp) 234 + 235: 83 Load 85(g_tTex1di4) + 236: 6(int) Load 225(coordTemp) + 237: 7(ivec4) Load 228(storeTemp) + ImageWrite 235 236 237 + 239: 73(ptr) AccessChain 61 51 + 240: 6(int) Load 239 + Store 238(coordTemp) 240 + 242: 83 Load 85(g_tTex1di4) + 243: 6(int) Load 238(coordTemp) + 244: 7(ivec4) ImageRead 242 243 + Store 241(storeTemp) 244 + 245: 7(ivec4) Load 241(storeTemp) + 246: 7(ivec4) CompositeConstruct 129 129 129 129 + 247: 7(ivec4) SMod 245 246 + Store 241(storeTemp) 247 + 248: 83 Load 85(g_tTex1di4) + 249: 6(int) Load 238(coordTemp) + 250: 7(ivec4) Load 241(storeTemp) + ImageWrite 248 249 250 + 252: 73(ptr) AccessChain 61 51 + 253: 6(int) Load 252 + Store 251(coordTemp) 253 + 255: 83 Load 85(g_tTex1di4) + 256: 6(int) Load 251(coordTemp) + 257: 7(ivec4) ImageRead 255 256 + Store 254(storeTemp) 257 + 259: 7(ivec4) Load 254(storeTemp) + 260: 7(ivec4) CompositeConstruct 258 258 258 258 + 261: 7(ivec4) BitwiseAnd 259 260 + Store 254(storeTemp) 261 + 262: 83 Load 85(g_tTex1di4) + 263: 6(int) Load 251(coordTemp) + 264: 7(ivec4) Load 254(storeTemp) + ImageWrite 262 263 264 + 266: 73(ptr) AccessChain 61 51 + 267: 6(int) Load 266 + Store 265(coordTemp) 267 + 269: 83 Load 85(g_tTex1di4) + 270: 6(int) Load 265(coordTemp) + 271: 7(ivec4) ImageRead 269 270 + Store 268(storeTemp) 271 + 273: 7(ivec4) Load 268(storeTemp) + 274: 7(ivec4) CompositeConstruct 272 272 272 272 + 275: 7(ivec4) BitwiseOr 273 274 + Store 268(storeTemp) 275 + 276: 83 Load 85(g_tTex1di4) + 277: 6(int) Load 265(coordTemp) + 278: 7(ivec4) Load 268(storeTemp) + ImageWrite 276 277 278 + 280: 73(ptr) AccessChain 61 51 + 281: 6(int) Load 280 + Store 279(coordTemp) 281 + 283: 83 Load 85(g_tTex1di4) + 284: 6(int) Load 279(coordTemp) + 285: 7(ivec4) ImageRead 283 284 + Store 282(storeTemp) 285 + 286: 7(ivec4) Load 282(storeTemp) + 287: 7(ivec4) CompositeConstruct 129 129 129 129 + 288: 7(ivec4) ShiftLeftLogical 286 287 + Store 282(storeTemp) 288 + 289: 83 Load 85(g_tTex1di4) + 290: 6(int) Load 279(coordTemp) + 291: 7(ivec4) Load 282(storeTemp) + ImageWrite 289 290 291 + 293: 73(ptr) AccessChain 61 51 + 294: 6(int) Load 293 + Store 292(coordTemp) 294 + 296: 83 Load 85(g_tTex1di4) + 297: 6(int) Load 292(coordTemp) + 298: 7(ivec4) ImageRead 296 297 + Store 295(storeTemp) 298 + 299: 7(ivec4) Load 295(storeTemp) + 300: 7(ivec4) CompositeConstruct 129 129 129 129 + 301: 7(ivec4) ShiftRightArithmetic 299 300 + Store 295(storeTemp) 301 + 302: 83 Load 85(g_tTex1di4) + 303: 6(int) Load 292(coordTemp) + 304: 7(ivec4) Load 295(storeTemp) + ImageWrite 302 303 304 + 306: 21(fvec4) FunctionCall 40(SomeValue() + Store 305(storeTemp) 306 + 307: 99 Load 101(g_tTex2df4) + 308: 104(ptr) AccessChain 61 103 + 309: 57(ivec2) Load 308 + 310: 21(fvec4) Load 305(storeTemp) + ImageWrite 307 309 310 + 311: 99 Load 101(g_tTex2df4) + 312: 104(ptr) AccessChain 61 103 + 313: 57(ivec2) Load 312 + 314: 21(fvec4) Load 150(lf4) + ImageWrite 311 313 314 + Store 315(storeTemp) 317 + 318: 109 Load 111(g_tTex2di4) + 319: 104(ptr) AccessChain 61 103 + 320: 57(ivec2) Load 319 + 321: 7(ivec4) Load 315(storeTemp) + ImageWrite 318 320 321 + Store 322(storeTemp) 324 + 325: 117 Load 119(g_tTex2du4) + 326: 104(ptr) AccessChain 61 103 + 327: 57(ivec2) Load 326 + 328: 14(ivec4) Load 322(storeTemp) + ImageWrite 325 327 328 + 330: 21(fvec4) FunctionCall 40(SomeValue() + Store 329(storeTemp) 330 + 331: 125 Load 127(g_tTex3df4) + 332: 130(ptr) AccessChain 61 129 + 333: 58(ivec3) Load 332 + 334: 21(fvec4) Load 329(storeTemp) + ImageWrite 331 333 334 + 335: 125 Load 127(g_tTex3df4) + 336: 130(ptr) AccessChain 61 129 + 337: 58(ivec3) Load 336 + 338: 21(fvec4) Load 150(lf4) + ImageWrite 335 337 338 + Store 339(storeTemp) 342 + 343: 135 Load 137(g_tTex3di4) + 344: 130(ptr) AccessChain 61 129 + 345: 58(ivec3) Load 344 + 346: 7(ivec4) Load 339(storeTemp) + ImageWrite 343 345 346 + Store 347(storeTemp) 349 + 350: 143 Load 145(g_tTex3du4) + 351: 130(ptr) AccessChain 61 129 + 352: 58(ivec3) Load 351 + 353: 14(ivec4) Load 347(storeTemp) + ImageWrite 350 352 353 + 354: 69 Load 71(g_tTex1df4) + 355: 73(ptr) AccessChain 61 51 + 356: 6(int) Load 355 + 357: 21(fvec4) ImageRead 354 356 + Store 358(param) 357 + 359: 21(fvec4) FunctionCall 25(Fn1(vf4;) 358(param) + 360: 83 Load 85(g_tTex1di4) + 361: 73(ptr) AccessChain 61 51 + 362: 6(int) Load 361 + 363: 7(ivec4) ImageRead 360 362 + Store 364(param) 363 + 365: 7(ivec4) FunctionCall 11(Fn1(vi4;) 364(param) + 366: 91 Load 93(g_tTex1du4) + 367: 73(ptr) AccessChain 61 51 + 368: 6(int) Load 367 + 369: 14(ivec4) ImageRead 366 368 + Store 370(param) 369 + 371: 14(ivec4) FunctionCall 18(Fn1(vu4;) 370(param) + 374: 2 FunctionCall 37(Fn2(vf4;) 373(param) + 375: 21(fvec4) Load 373(param) + Store 372(tempArg) 375 + 376: 69 Load 71(g_tTex1df4) + 377: 73(ptr) AccessChain 61 51 + 378: 6(int) Load 377 + 379: 21(fvec4) Load 372(tempArg) + ImageWrite 376 378 379 + 382: 2 FunctionCall 29(Fn2(vi4;) 381(param) + 383: 7(ivec4) Load 381(param) + Store 380(tempArg) 383 + 384: 83 Load 85(g_tTex1di4) + 385: 73(ptr) AccessChain 61 51 + 386: 6(int) Load 385 + 387: 7(ivec4) Load 380(tempArg) + ImageWrite 384 386 387 + 390: 2 FunctionCall 33(Fn2(vu4;) 389(param) + 391: 14(ivec4) Load 389(param) + Store 388(tempArg) 391 + 392: 91 Load 93(g_tTex1du4) + 393: 73(ptr) AccessChain 61 51 + 394: 6(int) Load 393 + 395: 14(ivec4) Load 388(tempArg) + ImageWrite 392 394 395 + 397: 73(ptr) AccessChain 61 51 + 398: 6(int) Load 397 + Store 396(coordTemp) 398 + 400: 69 Load 71(g_tTex1df4) + 401: 6(int) Load 396(coordTemp) + 402: 21(fvec4) ImageRead 400 401 + Store 399(storeTemp) 402 + 403: 21(fvec4) Load 399(storeTemp) + 405: 21(fvec4) CompositeConstruct 404 404 404 404 + 406: 21(fvec4) FAdd 403 405 + Store 399(storeTemp) 406 + 407: 69 Load 71(g_tTex1df4) + 408: 6(int) Load 396(coordTemp) + 409: 21(fvec4) Load 399(storeTemp) + ImageWrite 407 408 409 + 411: 73(ptr) AccessChain 61 51 + 412: 6(int) Load 411 + Store 410(coordTemp) 412 + 414: 83 Load 85(g_tTex1di4) + 415: 6(int) Load 410(coordTemp) + 416: 7(ivec4) ImageRead 414 415 + Store 413(storeTemp) 416 + 417: 7(ivec4) Load 413(storeTemp) + 418: 7(ivec4) CompositeConstruct 103 103 103 103 + 419: 7(ivec4) IAdd 417 418 + Store 413(storeTemp) 419 + 420: 83 Load 85(g_tTex1di4) + 421: 6(int) Load 410(coordTemp) + 422: 7(ivec4) Load 413(storeTemp) + ImageWrite 420 421 422 + 424: 73(ptr) AccessChain 61 51 + 425: 6(int) Load 424 + Store 423(coordTemp) 425 + 427: 91 Load 93(g_tTex1du4) + 428: 6(int) Load 423(coordTemp) + 429: 14(ivec4) ImageRead 427 428 + Store 426(storeTemp) 429 + 430: 14(ivec4) Load 426(storeTemp) + 431: 7(ivec4) CompositeConstruct 103 103 103 103 + 432: 14(ivec4) IAdd 430 431 + Store 426(storeTemp) 432 + 433: 91 Load 93(g_tTex1du4) + 434: 6(int) Load 423(coordTemp) + 435: 14(ivec4) Load 426(storeTemp) + ImageWrite 433 434 435 + 437: 73(ptr) AccessChain 61 51 + 438: 6(int) Load 437 + Store 436(coordTemp) 438 + 440: 69 Load 71(g_tTex1df4) + 441: 6(int) Load 436(coordTemp) + 442: 21(fvec4) ImageRead 440 441 + Store 439(storeTemp) 442 + 443: 21(fvec4) Load 439(storeTemp) + 444: 21(fvec4) CompositeConstruct 404 404 404 404 + 445: 21(fvec4) FSub 443 444 + Store 439(storeTemp) 445 + 446: 69 Load 71(g_tTex1df4) + 447: 6(int) Load 436(coordTemp) + 448: 21(fvec4) Load 439(storeTemp) + ImageWrite 446 447 448 + 450: 73(ptr) AccessChain 61 51 + 451: 6(int) Load 450 + Store 449(coordTemp) 451 + 453: 83 Load 85(g_tTex1di4) + 454: 6(int) Load 449(coordTemp) + 455: 7(ivec4) ImageRead 453 454 + Store 452(storeTemp) 455 + 456: 7(ivec4) Load 452(storeTemp) + 457: 7(ivec4) CompositeConstruct 103 103 103 103 + 458: 7(ivec4) ISub 456 457 + Store 452(storeTemp) 458 + 459: 83 Load 85(g_tTex1di4) + 460: 6(int) Load 449(coordTemp) + 461: 7(ivec4) Load 452(storeTemp) + ImageWrite 459 460 461 + 463: 73(ptr) AccessChain 61 51 + 464: 6(int) Load 463 + Store 462(coordTemp) 464 + 466: 91 Load 93(g_tTex1du4) + 467: 6(int) Load 462(coordTemp) + 468: 14(ivec4) ImageRead 466 467 + Store 465(storeTemp) 468 + 469: 14(ivec4) Load 465(storeTemp) + 470: 7(ivec4) CompositeConstruct 103 103 103 103 + 471: 14(ivec4) ISub 469 470 + Store 465(storeTemp) 471 + 472: 91 Load 93(g_tTex1du4) + 473: 6(int) Load 462(coordTemp) + 474: 14(ivec4) Load 465(storeTemp) + ImageWrite 472 473 474 + 476: 73(ptr) AccessChain 61 51 + 477: 6(int) Load 476 + Store 475(coordTemp) 477 + 479: 69 Load 71(g_tTex1df4) + 480: 6(int) Load 475(coordTemp) + 481: 21(fvec4) ImageRead 479 480 + Store 478(storeTempPre) 481 + 483: 21(fvec4) Load 478(storeTempPre) + Store 482(storeTempPost) 483 + 484: 21(fvec4) Load 482(storeTempPost) + 485: 21(fvec4) CompositeConstruct 404 404 404 404 + 486: 21(fvec4) FAdd 484 485 + Store 482(storeTempPost) 486 + 487: 69 Load 71(g_tTex1df4) + 488: 6(int) Load 475(coordTemp) + 489: 21(fvec4) Load 482(storeTempPost) + ImageWrite 487 488 489 + 491: 73(ptr) AccessChain 61 51 + 492: 6(int) Load 491 + Store 490(coordTemp) 492 + 494: 91 Load 93(g_tTex1du4) + 495: 6(int) Load 490(coordTemp) + 496: 14(ivec4) ImageRead 494 495 + Store 493(storeTempPre) 496 + 498: 14(ivec4) Load 493(storeTempPre) + Store 497(storeTempPost) 498 + 499: 14(ivec4) Load 497(storeTempPost) + 500: 7(ivec4) CompositeConstruct 103 103 103 103 + 501: 14(ivec4) ISub 499 500 + Store 497(storeTempPost) 501 + 502: 91 Load 93(g_tTex1du4) + 503: 6(int) Load 490(coordTemp) + 504: 14(ivec4) Load 497(storeTempPost) + ImageWrite 502 503 504 + 506: 73(ptr) AccessChain 61 51 + 507: 6(int) Load 506 + Store 505(coordTemp) 507 + 509: 83 Load 85(g_tTex1di4) + 510: 6(int) Load 505(coordTemp) + 511: 7(ivec4) ImageRead 509 510 + Store 508(storeTempPre) 511 + 513: 7(ivec4) Load 508(storeTempPre) + Store 512(storeTempPost) 513 + 514: 7(ivec4) Load 512(storeTempPost) + 515: 7(ivec4) CompositeConstruct 103 103 103 103 + 516: 7(ivec4) IAdd 514 515 + Store 512(storeTempPost) 516 + 517: 83 Load 85(g_tTex1di4) + 518: 6(int) Load 505(coordTemp) + 519: 7(ivec4) Load 512(storeTempPost) + ImageWrite 517 518 519 + 521: 73(ptr) AccessChain 61 51 + 522: 6(int) Load 521 + Store 520(coordTemp) 522 + 524: 69 Load 71(g_tTex1df4) + 525: 6(int) Load 520(coordTemp) + 526: 21(fvec4) ImageRead 524 525 + Store 523(storeTempPre) 526 + 528: 21(fvec4) Load 523(storeTempPre) + Store 527(storeTempPost) 528 + 529: 21(fvec4) Load 527(storeTempPost) + 530: 21(fvec4) CompositeConstruct 404 404 404 404 + 531: 21(fvec4) FSub 529 530 + Store 527(storeTempPost) 531 + 532: 69 Load 71(g_tTex1df4) + 533: 6(int) Load 520(coordTemp) + 534: 21(fvec4) Load 527(storeTempPost) + ImageWrite 532 533 534 + 536: 73(ptr) AccessChain 61 51 + 537: 6(int) Load 536 + Store 535(coordTemp) 537 + 539: 83 Load 85(g_tTex1di4) + 540: 6(int) Load 535(coordTemp) + 541: 7(ivec4) ImageRead 539 540 + Store 538(storeTempPre) 541 + 543: 7(ivec4) Load 538(storeTempPre) + Store 542(storeTempPost) 543 + 544: 7(ivec4) Load 542(storeTempPost) + 545: 7(ivec4) CompositeConstruct 103 103 103 103 + 546: 7(ivec4) IAdd 544 545 + Store 542(storeTempPost) 546 + 547: 83 Load 85(g_tTex1di4) + 548: 6(int) Load 535(coordTemp) + 549: 7(ivec4) Load 542(storeTempPost) + ImageWrite 547 548 549 + 551: 73(ptr) AccessChain 61 51 + 552: 6(int) Load 551 + Store 550(coordTemp) 552 + 554: 91 Load 93(g_tTex1du4) + 555: 6(int) Load 550(coordTemp) + 556: 14(ivec4) ImageRead 554 555 + Store 553(storeTempPre) 556 + 558: 14(ivec4) Load 553(storeTempPre) + Store 557(storeTempPost) 558 + 559: 14(ivec4) Load 557(storeTempPost) + 560: 7(ivec4) CompositeConstruct 103 103 103 103 + 561: 14(ivec4) ISub 559 560 + Store 557(storeTempPost) 561 + 562: 91 Load 93(g_tTex1du4) + 563: 6(int) Load 550(coordTemp) + 564: 14(ivec4) Load 557(storeTempPost) + ImageWrite 562 563 564 + 569: 22(ptr) AccessChain 567(psout) 51 + Store 569 568 + 572: 22(ptr) AccessChain 567(psout) 51 + 573: 21(fvec4) Load 572 + Store 571(Color) 573 Return FunctionEnd 11(Fn1(vi4;): 7(ivec4) Function None 9 10(x): 8(ptr) FunctionParameter 12: Label - 39: 7(ivec4) Load 10(x) - ReturnValue 39 + 42: 7(ivec4) Load 10(x) + ReturnValue 42 FunctionEnd 18(Fn1(vu4;): 14(ivec4) Function None 16 17(x): 15(ptr) FunctionParameter 19: Label - 42: 14(ivec4) Load 17(x) - ReturnValue 42 + 45: 14(ivec4) Load 17(x) + ReturnValue 45 FunctionEnd 25(Fn1(vf4;): 21(fvec4) Function None 23 24(x): 22(ptr) FunctionParameter 26: Label - 45: 21(fvec4) Load 24(x) - ReturnValue 45 + 48: 21(fvec4) Load 24(x) + ReturnValue 48 FunctionEnd 29(Fn2(vi4;): 2 Function None 27 28(x): 8(ptr) FunctionParameter 30: Label - Store 28(x) 49 + Store 28(x) 52 Return FunctionEnd 33(Fn2(vu4;): 2 Function None 31 32(x): 15(ptr) FunctionParameter 34: Label - Store 32(x) 51 + Store 32(x) 54 Return FunctionEnd 37(Fn2(vf4;): 2 Function None 35 36(x): 22(ptr) FunctionParameter 38: Label - Store 36(x) 53 + Store 36(x) 56 Return FunctionEnd + 40(SomeValue(): 21(fvec4) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec4) Load 64 + 66: 21(fvec4) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/Test/hlsl.rw.bracket.frag b/Test/hlsl.rw.bracket.frag index e435b91d..650b5674 100644 --- a/Test/hlsl.rw.bracket.frag +++ b/Test/hlsl.rw.bracket.frag @@ -35,6 +35,10 @@ uniform int2 o2; uniform int3 o3; uniform int4 o4; +uniform float4 uf4; +uniform int4 ui4; +uniform uint4 uu4; + int4 Fn1(in int4 x) { return x; } uint4 Fn1(in uint4 x) { return x; } float4 Fn1(in float4 x) { return x; } @@ -43,19 +47,19 @@ void Fn2(out int4 x) { x = int4(0); } void Fn2(out uint4 x) { x = uint4(0); } void Fn2(out float4 x) { x = float4(0); } +float4 SomeValue() { return c4; } + PS_OUTPUT main() { PS_OUTPUT psout; - // Test as R-values - // 1D g_tTex1df4[c1]; float4 r00 = g_tTex1df4[c1]; int4 r01 = g_tTex1di4[c1]; uint4 r02 = g_tTex1du4[c1]; - + // 2D float4 r10 = g_tTex2df4[c2]; int4 r11 = g_tTex2di4[c2]; @@ -66,47 +70,66 @@ PS_OUTPUT main() int4 r21 = g_tTex3di4[c3]; uint4 r22 = g_tTex3du4[c3]; - // // Test as L-values - // // 1D - // g_tTex1df4[c1] = float4(1,2,3,4); - // g_tTex1di4[c1] = int4(1,2,3,4); - // g_tTex1du4[c1] = uint4(1,2,3,4); + float4 lf4 = uf4; + + // Test as L-values + // 1D + g_tTex1df4[c1] = SomeValue(); // complex L-value + g_tTex1df4[c1] = lf4; + g_tTex1di4[c1] = int4(2,2,3,4); + g_tTex1du4[c1] = uint4(3,2,3,4); + + // Test some operator= things, which need to do both a load and a store. + float4 val1 = (g_tTex1df4[c1] *= 2.0); + g_tTex1df4[c1] -= 3.0; + g_tTex1df4[c1] += 4.0; - // // 2D - // g_tTex2df4[c2] = float4(1,2,3,4); - // g_tTex2di4[c2] = int4(1,2,3,4); - // g_tTex2du4[c2] = uint4(1,2,3,4); + g_tTex1di4[c1] /= 2; + g_tTex1di4[c1] %= 2; + g_tTex1di4[c1] &= 0xffff; + g_tTex1di4[c1] |= 0xf0f0; + g_tTex1di4[c1] <<= 2; + g_tTex1di4[c1] >>= 2; + + // 2D + g_tTex2df4[c2] = SomeValue(); // complex L-value + g_tTex2df4[c2] = lf4; + g_tTex2di4[c2] = int4(5,2,3,4); + g_tTex2du4[c2] = uint4(6,2,3,4); - // // 3D - // g_tTex3df4[c3] = float4(1,2,3,4); - // g_tTex3di4[c3] = int4(1,2,3,4); - // g_tTex3du4[c3] = uint4(1,2,3,4); + // 3D + g_tTex3df4[c3] = SomeValue(); // complex L-value + g_tTex3df4[c3] = lf4; + g_tTex3di4[c3] = int4(8,6,7,8); + g_tTex3du4[c3] = uint4(9,2,3,4); // // Test function calling Fn1(g_tTex1df4[c1]); // in Fn1(g_tTex1di4[c1]); // in Fn1(g_tTex1du4[c1]); // in - // Fn2(g_tTex1df4[c1]); // out - // Fn2(g_tTex1di4[c1]); // out - // Fn2(g_tTex1du4[c1]); // out + Fn2(g_tTex1df4[c1]); // out + Fn2(g_tTex1di4[c1]); // out + Fn2(g_tTex1du4[c1]); // out - // // Test increment operators - // g_tTex1df4[c1]++; - // g_tTex1di4[c1]++; - // g_tTex1du4[c1]++; + // Test increment operators + // pre-ops + ++g_tTex1df4[c1]; + ++g_tTex1di4[c1]; + ++g_tTex1du4[c1]; - // g_tTex1df4[c1]--; - // g_tTex1di4[c1]--; - // g_tTex1du4[c1]--; + --g_tTex1df4[c1]; + --g_tTex1di4[c1]; + --g_tTex1du4[c1]; - // ++g_tTex1df4[c1]; - // ++g_tTex1di4[c1]; - // ++g_tTex1du4[c1]; + // post-ops + g_tTex1df4[c1]++; + g_tTex1du4[c1]--; + g_tTex1di4[c1]++; - // --g_tTex1df4[c1]; - // --g_tTex1di4[c1]; - // --g_tTex1du4[c1]; + g_tTex1df4[c1]--; + g_tTex1di4[c1]++; + g_tTex1du4[c1]--; psout.Color = 1.0; diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 58bc8a5b..96e5c348 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -2045,6 +2045,10 @@ bool TIntermBinary::promote() } break; + case EOpVectorTimesScalarAssign: + if (left->isVector() && right->isScalar()) + return true; + default: return false; } diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 626d2991..5dc25fc5 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1783,6 +1783,8 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) } node = parseContext.handleAssign(loc, assignOp, node, rightNode); + node = parseContext.handleLvalue(loc, "assign", node); + if (node == nullptr) { parseContext.error(loc, "could not create assignment", "", ""); return false; @@ -1946,6 +1948,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) return true; node = intermediate.addUnaryMath(unaryOp, node, loc); + node = parseContext.handleLvalue(loc, "", node); return node != nullptr; } @@ -2061,6 +2064,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpPostDecrement: // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); + node = parseContext.handleLvalue(loc, "", node); break; default: assert(0); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 204e9f08..5eccf61c 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -130,6 +130,249 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& return numErrors == 0; } +bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const +{ + if (node == nullptr) + return false; + + const TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad) + return true; + + return false; +} + + +// +// This function handles l-value conversions and verifications. It uses, but is not synonymous +// with lValueErrorCheck. That function accepts an l-value directly, while this one must be +// given the surrounding tree - e.g, with an assignment, so we can convert the assign into a +// series of other image operations. +// +// Most things are passed through unmodified, except for error checking. +// +TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + TIntermBinary* nodeAsBinary = node->getAsBinaryNode(); + TIntermUnary* nodeAsUnary = node->getAsUnaryNode(); + TIntermAggregate* sequence = nullptr; + + TIntermTyped* lhs = nodeAsUnary ? nodeAsUnary->getOperand() : + nodeAsBinary ? nodeAsBinary->getLeft() : + nullptr; + + + // Early bail out if there is no conversion to apply + if (!shouldConvertLValue(lhs)) { + // TODO: >.. + // if (lhs != nullptr) + // if (lValueErrorCheck(loc, op, lhs)) + // return nullptr; + return node; + } + + // *** If we get here, we're going to apply some conversion to an l-value. + + // Helper to create a load. + const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) { + TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad); + loadOp->setLoc(loc); + loadOp->getSequence().push_back(object); + loadOp->getSequence().push_back(intermediate.addSymbol(*coord->getAsSymbolNode())); + loadOp->setType(derefType); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, rhsTmp, loadOp, loc), + loc); + }; + + // Helper to create a store. + const auto makeStore = [&](TIntermTyped* object, TIntermTyped* coord, TIntermSymbol* rhsTmp) { + TIntermAggregate* storeOp = new TIntermAggregate(EOpImageStore); + storeOp->getSequence().push_back(object); + storeOp->getSequence().push_back(coord); + storeOp->getSequence().push_back(intermediate.addSymbol(*rhsTmp)); + storeOp->setLoc(loc); + storeOp->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, storeOp); + }; + + // Helper to create an assign. + const auto makeAssign = [&](TOperator assignOp, TIntermTyped* lhs, TIntermTyped* rhs) { + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(assignOp, lhs, rhs, loc), + loc); + }; + + // Helper to complete sequence by adding trailing variable, so we evaluate to the right value. + const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) { + // Add a trailing use of the temp, so the sequence returns the proper value. + sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp)); + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(derefType); + + return sequence; + }; + + // Helper to add unary op + const auto addUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { + sequence = intermediate.growAggregate(sequence, + intermediate.addUnaryMath(op, intermediate.addSymbol(*rhsTmp), loc), + loc); + }; + + // helper to create a temporary variable + const auto addTmpVar = [&](const char* name, const TType& derefType) { + TVariable* tmpVar = makeInternalVariable(name, derefType); + tmpVar->getWritableType().getQualifier().makeTemporary(); + return intermediate.addSymbol(*tmpVar, loc); + }; + + TIntermAggregate* lhsAsAggregate = lhs->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); + + const TLayoutFormat fmt = object->getType().getQualifier().layoutFormat; + // We only handle 4 component formats at the moment. + + assert(fmt == ElfRgba32f || fmt == ElfRgba32i || fmt == ElfRgba32ui); + const TType objDerefType(object->getType().getSampler().type, EvqTemporary, 4); + + if (nodeAsBinary) { + TIntermTyped* rhs = nodeAsBinary->getRight(); + const TOperator assignOp = nodeAsBinary->getOp(); + + bool isModifyOp = false; + + switch (assignOp) { + case EOpAddAssign: + case EOpSubAssign: + case EOpMulAssign: + case EOpVectorTimesMatrixAssign: + case EOpVectorTimesScalarAssign: + case EOpMatrixTimesScalarAssign: + case EOpMatrixTimesMatrixAssign: + case EOpDivAssign: + case EOpModAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpLeftShiftAssign: + case EOpRightShiftAssign: + isModifyOp = true; + // fall through... + case EOpAssign: + { + // Since this is an lvalue, we'll convert an image load to a sequence like this (to still provide the value): + // OpSequence + // OpImageStore(object, lhs, rhs) + // rhs + // But if it's not a simple symbol RHS (say, a fn call), we don't want to duplicate the RHS, so we'll convert + // instead to this: + // OpSequence + // rhsTmp = rhs + // OpImageStore(object, coord, rhsTmp) + // rhsTmp + // If this is a read-modify-write op, like +=, we issue: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op= rhs + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = rhs->getAsSymbolNode(); + TIntermTyped* coordTmp = coord; + + if (rhsTmp == nullptr || isModifyOp) { + rhsTmp = addTmpVar("storeTemp", objDerefType); + + // Assign storeTemp = rhs + if (isModifyOp) { + // We have to make a temp var for the coordinate, to avoid evaluating it twice. + coordTmp = addTmpVar("coordTemp", coord->getType()); + makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + } + + // rhsTmp op= rhs. + makeAssign(assignOp, intermediate.addSymbol(*rhsTmp), rhs); + } + + makeStore(object, coordTmp, rhsTmp); // add a store + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (nodeAsUnary) { + const TOperator assignOp = nodeAsUnary->getOp(); + + switch (assignOp) { + case EOpPreIncrement: + case EOpPreDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + addUnary(assignOp, rhsTmp); // op rhsTmp + makeStore(object, coordTmp, rhsTmp); // OpImageStore(object, coordTmp, rhsTmp) + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + case EOpPostIncrement: + case EOpPostDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp1 = OpImageLoad(object, coordTmp) + // rhsTmp2 = rhsTmp1 + // rhsTmp2 op + // OpImageStore(object, coordTmp, rhsTmp2) + // rhsTmp1 (pre-op value) + TIntermSymbol* rhsTmp1 = addTmpVar("storeTempPre", objDerefType); + TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp) + makeAssign(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 + addUnary(assignOp, rhsTmp2); // rhsTmp op + makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) + return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence + + break; + } + + default: + break; + } + } + + // TODO: + // if (lhs) + // if (lValueErrorCheck(loc, op, lhs)) + // return nullptr; + + return node; +} + void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector& tokens) { if (pragmaCallback) @@ -965,6 +1208,9 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* // to intermediate.addAssign(). TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const { + if (left == nullptr || right == nullptr) + return nullptr; + const auto mustFlatten = [&](const TIntermTyped& node) { return shouldFlatten(node.getType()) && node.getAsSymbolNode() && flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); @@ -2288,12 +2534,13 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // // Returns a node of a subtree that evaluates to the return value of the function. // -TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const +TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) { TIntermSequence& arguments = intermNode.getSequence(); const auto needsConversion = [&](int argNum) { return function[argNum].type->getQualifier().isParamOutput() && (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() || + shouldConvertLValue(arguments[argNum]) || shouldFlatten(arguments[argNum]->getAsTyped()->getType())); }; @@ -2341,7 +2588,8 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); // This makes the deepest level, the member-wise copy - TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode)->getAsAggregate(); + TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode); + tempAssign = handleLvalue(arguments[i]->getLoc(), "assign", tempAssign); conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); // replace the argument with another node for the same tempArg variable diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 78beadb3..8dcfe840 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -81,7 +81,7 @@ public: void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; - TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; + TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&); void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); @@ -152,6 +152,9 @@ public: void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } void popSwitchSequence() { switchSequenceStack.pop_back(); } + // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. + TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node); + protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; @@ -161,6 +164,9 @@ protected: TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); + // Return true if this node requires L-value conversion (e.g, to an imageStore). + bool shouldConvertLValue(const TIntermNode*) const; + // Array and struct flattening bool shouldFlatten(const TType& type) const { return shouldFlattenIO(type) || shouldFlattenUniform(type); } TIntermTyped* flattenAccess(TIntermTyped* base, int member); From 0de16da2c065501862c24b881d259a2479bc3f50 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 8 Oct 2016 10:54:52 -0600 Subject: [PATCH 190/217] HLSL: phase 2c: use lValueErrorCheck in HLSL FE This commit splits lValueErrorCheck into machine dependent and independent parts. The GLSL form in TParseContext inherits from and invokes the machine dependent part in TParseContextBase. The base form checks language independent things. This split does not change the set of errors tested for: the test results are identical. The new base class interface is now used from the HLSL FE to test lvalues. There was one test diff due to this, where the test was writing to a uniform. It still does the same indirections, but does not attempt a uniform write. --- Test/baseResults/hlsl.struct.frag.out | 120 +++++++++--------- Test/hlsl.struct.frag | 4 +- .../MachineIndependent/ParseContextBase.cpp | 108 ++++++++++++++++ glslang/MachineIndependent/ParseHelper.cpp | 71 +++-------- glslang/MachineIndependent/ParseHelper.h | 7 +- hlsl/hlslParseHelper.cpp | 41 ++++-- hlsl/hlslParseHelper.h | 1 + 7 files changed, 222 insertions(+), 130 deletions(-) diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 04117d73..7605543f 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -14,15 +14,14 @@ gl_FragCoord origin is upper left 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) -0:40 Constant: -0:40 1 (const uint) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -56,15 +55,14 @@ gl_FragCoord origin is upper left 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 move second child to first child (temp 4-component vector of float) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) -0:40 Constant: -0:40 1 (const uint) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:40 1 (const uint) +0:40 Constant: +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -85,12 +83,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 49 +// Id's are bound by 46 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 29 34 35 38 40 42 45 46 47 48 + EntryPoint Fragment 4 "PixelShaderFunction" 29 31 32 35 37 39 42 43 44 45 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -110,15 +108,15 @@ gl_FragCoord origin is upper left MemberName 22($Global) 3 "ff6" Name 24 "" Name 29 "ff4" - Name 34 "@entryPointOutput" - Name 35 "input" - Name 38 "a" - Name 40 "b" - Name 42 "c" - Name 45 "d" - Name 46 "ff1" - Name 47 "ff2" - Name 48 "ff3" + Name 31 "@entryPointOutput" + Name 32 "input" + Name 35 "a" + Name 37 "b" + Name 39 "c" + Name 42 "d" + Name 43 "ff1" + Name 44 "ff2" + Name 45 "ff3" MemberDecorate 20(myS) 0 Offset 0 MemberDecorate 20(myS) 1 Offset 4 MemberDecorate 20(myS) 2 Offset 16 @@ -133,22 +131,22 @@ gl_FragCoord origin is upper left Decorate 29(ff4) Offset 4 Decorate 29(ff4) Location 7 Decorate 29(ff4) Binding 0 - Decorate 34(@entryPointOutput) Location 0 - Decorate 35(input) Location 0 - Decorate 38(a) Location 1 - Decorate 40(b) Flat - Decorate 40(b) Location 2 - Decorate 42(c) NoPerspective - Decorate 42(c) Centroid - Decorate 42(c) Location 3 - Decorate 45(d) Centroid - Decorate 45(d) Location 4 - Decorate 46(ff1) BuiltIn FrontFacing - Decorate 47(ff2) Offset 4 - Decorate 47(ff2) Location 5 - Decorate 48(ff3) Offset 4 - Decorate 48(ff3) Location 6 - Decorate 48(ff3) Binding 0 + Decorate 31(@entryPointOutput) Location 0 + Decorate 32(input) Location 0 + Decorate 35(a) Location 1 + Decorate 37(b) Flat + Decorate 37(b) Location 2 + Decorate 39(c) NoPerspective + Decorate 39(c) Centroid + Decorate 39(c) Location 3 + Decorate 42(d) Centroid + Decorate 42(d) Location 4 + Decorate 43(ff1) BuiltIn FrontFacing + Decorate 44(ff2) Offset 4 + Decorate 44(ff2) Location 5 + Decorate 45(ff3) Offset 4 + Decorate 45(ff3) Location 6 + Decorate 45(ff3) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -168,21 +166,20 @@ gl_FragCoord origin is upper left 27: 25(int) Constant 0 28: TypePointer Input 19(fvec4) 29(ff4): 28(ptr) Variable Input - 31: TypePointer Uniform 19(fvec4) - 33: TypePointer Output 19(fvec4) -34(@entryPointOutput): 33(ptr) Variable Output - 35(input): 28(ptr) Variable Input - 38(a): 28(ptr) Variable Input - 39: TypePointer Input 6(bool) - 40(b): 39(ptr) Variable Input - 41: TypePointer Input 18(float) - 42(c): 41(ptr) Variable Input - 43: TypeVector 18(float) 2 - 44: TypePointer Input 43(fvec2) - 45(d): 44(ptr) Variable Input - 46(ff1): 39(ptr) Variable Input - 47(ff2): 39(ptr) Variable Input - 48(ff3): 39(ptr) Variable Input + 30: TypePointer Output 19(fvec4) +31(@entryPointOutput): 30(ptr) Variable Output + 32(input): 28(ptr) Variable Input + 35(a): 28(ptr) Variable Input + 36: TypePointer Input 6(bool) + 37(b): 36(ptr) Variable Input + 38: TypePointer Input 18(float) + 39(c): 38(ptr) Variable Input + 40: TypeVector 18(float) 2 + 41: TypePointer Input 40(fvec2) + 42(d): 41(ptr) Variable Input + 43(ff1): 36(ptr) Variable Input + 44(ff2): 36(ptr) Variable Input + 45(ff3): 36(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -192,10 +189,7 @@ gl_FragCoord origin is upper left 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - 30: 19(fvec4) Load 29(ff4) - 32: 31(ptr) AccessChain 24 26 27 - Store 32 30 - 36: 19(fvec4) Load 35(input) - Store 34(@entryPointOutput) 36 + 33: 19(fvec4) Load 32(input) + Store 31(@entryPointOutput) 33 Return FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 2c511a6e..456c9ef7 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -37,7 +37,7 @@ float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 } s3; s3 == s3; - s2.i = s.ff4; + s2.i; s.ff4; // no assignments to uniforms, but preserve indirections. return input; -} \ No newline at end of file +} diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index fe2b8e6b..45bb1689 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -113,6 +113,114 @@ void C_DECL TParseContextBase::ppWarn(const TSourceLoc& loc, const char* szReaso va_end(args); } +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + TIntermBinary* binaryNode = node->getAsBinaryNode(); + + if (binaryNode) { + switch(binaryNode->getOp()) { + case EOpIndexDirect: + case EOpIndexIndirect: // fall through + case EOpIndexDirectStruct: // fall through + case EOpVectorSwizzle: + return lValueErrorCheck(loc, op, binaryNode->getLeft()); + default: + break; + } + error(loc, " l-value required", op, "", ""); + + return true; + } + + const char* symbol = nullptr; + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (symNode != nullptr) + symbol = symNode->getName().c_str(); + + const char* message = nullptr; + switch (node->getQualifier().storage) { + case EvqConst: message = "can't modify a const"; break; + case EvqConstReadOnly: message = "can't modify a const"; break; + case EvqUniform: message = "can't modify a uniform"; break; + case EvqBuffer: + if (node->getQualifier().readonly) + message = "can't modify a readonly buffer"; + break; + + default: + // + // Type that can't be written to? + // + switch (node->getBasicType()) { + case EbtSampler: + message = "can't modify a sampler"; + break; + case EbtAtomicUint: + message = "can't modify an atomic_uint"; + break; + case EbtVoid: + message = "can't modify void"; + break; + default: + break; + } + } + + if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { + error(loc, " l-value required", op, "", ""); + + return true; + } + + // + // Everything else is okay, no error. + // + if (message == nullptr) + return false; + + // + // If we get here, we have an error and a message. + // + if (symNode) + error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message); + else + error(loc, " l-value required", op, "(%s)", message); + + return true; +} + +// Test for and give an error if the node can't be read from. +void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (! node) + return; + + TIntermBinary* binaryNode = node->getAsBinaryNode(); + if (binaryNode) { + switch(binaryNode->getOp()) { + case EOpIndexDirect: + case EOpIndexIndirect: + case EOpIndexDirectStruct: + case EOpVectorSwizzle: + rValueErrorCheck(loc, op, binaryNode->getLeft()); + default: + break; + } + + return; + } + + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (symNode && symNode->getQualifier().writeonly) + error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); +} + // Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will // effect all nodes sharing it. diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 949ba007..de1e8ca7 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1902,14 +1902,14 @@ void TParseContext::variableCheck(TIntermTyped*& nodePtr) // Both test and if necessary, spit out an error, to see if the node is really // an l-value that can be operated on this way. // -// Returns true if the was an error. +// Returns true if there was an error. // bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) { TIntermBinary* binaryNode = node->getAsBinaryNode(); if (binaryNode) { - bool errorReturn; + bool errorReturn = false; switch(binaryNode->getOp()) { case EOpIndexDirect: @@ -1928,9 +1928,9 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt } } - // fall through + break; // left node is checked by base class case EOpIndexDirectStruct: - return lValueErrorCheck(loc, op, binaryNode->getLeft()); + break; // left node is checked by base class case EOpVectorSwizzle: errorReturn = lValueErrorCheck(loc, op, binaryNode->getLeft()); if (!errorReturn) { @@ -1955,12 +1955,18 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt default: break; } - error(loc, " l-value required", op, "", ""); - return true; + if (errorReturn) { + error(loc, " l-value required", op, "", ""); + return true; + } } + // Let the base class check errors + if (TParseContextBase::lValueErrorCheck(loc, op, node)) + return true; + // GLSL specific const char* symbol = nullptr; TIntermSymbol* symNode = node->getAsSymbolNode(); if (symNode != nullptr) @@ -1968,19 +1974,12 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt const char* message = nullptr; switch (node->getQualifier().storage) { - case EvqConst: message = "can't modify a const"; break; - case EvqConstReadOnly: message = "can't modify a const"; break; case EvqVaryingIn: message = "can't modify shader input"; break; case EvqInstanceId: message = "can't modify gl_InstanceID"; break; case EvqVertexId: message = "can't modify gl_VertexID"; break; case EvqFace: message = "can't modify gl_FrontFace"; break; case EvqFragCoord: message = "can't modify gl_FragCoord"; break; case EvqPointCoord: message = "can't modify gl_PointCoord"; break; - case EvqUniform: message = "can't modify a uniform"; break; - case EvqBuffer: - if (node->getQualifier().readonly) - message = "can't modify a readonly buffer"; - break; case EvqFragDepth: intermediate.setDepthReplacing(); // "In addition, it is an error to statically write to gl_FragDepth in the fragment shader." @@ -1989,22 +1988,7 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt break; default: - // - // Type that can't be written to? - // - switch (node->getBasicType()) { - case EbtSampler: - message = "can't modify a sampler"; - break; - case EbtAtomicUint: - message = "can't modify an atomic_uint"; - break; - case EbtVoid: - message = "can't modify void"; - break; - default: - break; - } + break; } if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { @@ -2013,7 +1997,6 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt return true; } - // // Everything else is okay, no error. // @@ -2034,30 +2017,14 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt // Test for and give an error if the node can't be read from. void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) { - if (! node) - return; + // Let the base class check errors + TParseContextBase::rValueErrorCheck(loc, op, node); - TIntermBinary* binaryNode = node->getAsBinaryNode(); - if (binaryNode) { - switch(binaryNode->getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - rValueErrorCheck(loc, op, binaryNode->getLeft()); - default: - break; - } - - return; - } - - TIntermSymbol* symNode = node->getAsSymbolNode(); - if (symNode && symNode->getQualifier().writeonly) - error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); #ifdef AMD_EXTENSIONS - else if (symNode && symNode->getQualifier().explicitInterp) - error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (!(symNode && symNode->getQualifier().writeonly)) // base class checks + if (symNode && symNode->getQualifier().explicitInterp) + error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); #endif } diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index eab78359..0f60ff7f 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -143,6 +143,9 @@ public: virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName); virtual bool insertGlobalUniformBlock(); + virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); @@ -278,8 +281,8 @@ public: void unaryOpError(const TSourceLoc&, const char* op, TString operand); void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right); void variableCheck(TIntermTyped*& nodePtr); - bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); - void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; void constantValueCheck(TIntermTyped* node, const char* token); void integerCheck(const TIntermTyped* node, const char* token); void globalCheck(const TSourceLoc&, const char* token); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5eccf61c..5c1fd059 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -136,12 +136,36 @@ bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const return false; const TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad) return true; return false; } +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (shouldConvertLValue(node)) { + // if we're writing to a texture, it must be an RW form. + + TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + + if (!object->getType().getSampler().isImage()) { + error(loc, "operator[] on a non-RW texture must be an r-value", "", ""); + return true; + } + } + + // Let the base class check errors + return TParseContextBase::lValueErrorCheck(loc, op, node); +} // // This function handles l-value conversions and verifications. It uses, but is not synonymous @@ -161,13 +185,11 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* nodeAsBinary ? nodeAsBinary->getLeft() : nullptr; - // Early bail out if there is no conversion to apply if (!shouldConvertLValue(lhs)) { - // TODO: >.. - // if (lhs != nullptr) - // if (lValueErrorCheck(loc, op, lhs)) - // return nullptr; + if (lhs != nullptr) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; return node; } @@ -356,8 +378,6 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* addUnary(assignOp, rhsTmp2); // rhsTmp op makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence - - break; } default: @@ -365,10 +385,9 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* } } - // TODO: - // if (lhs) - // if (lValueErrorCheck(loc, op, lhs)) - // return nullptr; + if (lhs) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; return node; } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 8dcfe840..d8e75466 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -154,6 +154,7 @@ public: // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; protected: void inheritGlobalDefaults(TQualifier& dst) const; From 07830e805b6c4c65ce9bf275c186e84ab2335200 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Mon, 10 Oct 2016 10:00:14 -0600 Subject: [PATCH 191/217] HLSL: phase 2d: minor cleanup, & allow operator[] on non-rw textures Improve comments. A few tweaked lines allow [] on non-rw tx. Add test case for this. Improve VectorTimesScalar handling. --- Test/baseResults/hlsl.rw.bracket.frag.out | 207 +++--- Test/baseResults/hlsl.tx.bracket.frag.out | 702 ++++++++++++++++++++ Test/hlsl.rw.bracket.frag | 7 +- Test/hlsl.tx.bracket.frag | 73 ++ glslang/MachineIndependent/Intermediate.cpp | 6 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 4 +- hlsl/hlslParseHelper.cpp | 15 +- 8 files changed, 923 insertions(+), 92 deletions(-) create mode 100644 Test/baseResults/hlsl.tx.bracket.frag.out create mode 100644 Test/hlsl.tx.bracket.frag diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out index b0dc68b7..c6e3c89e 100644 --- a/Test/baseResults/hlsl.rw.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -813,25 +813,39 @@ gl_FragCoord origin is upper left 0:132 'coordTemp' (temp int) 0:132 'storeTempPost' (temp 4-component vector of uint) 0:132 'storeTempPre' (temp 4-component vector of uint) -0:134 move second child to first child (temp 4-component vector of float) -0:134 Color: direct index for structure (temp 4-component vector of float) -0:134 'psout' (temp structure{temp 4-component vector of float Color}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 1.000000 -0:134 1.000000 -0:134 1.000000 -0:134 1.000000 -0:136 Sequence -0:136 Sequence -0:136 move second child to first child (temp 4-component vector of float) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:136 Color: direct index for structure (temp 4-component vector of float) -0:136 'psout' (temp structure{temp 4-component vector of float Color}) -0:136 Constant: -0:136 0 (const int) -0:136 Branch: Return +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) @@ -1670,25 +1684,39 @@ gl_FragCoord origin is upper left 0:132 'coordTemp' (temp int) 0:132 'storeTempPost' (temp 4-component vector of uint) 0:132 'storeTempPre' (temp 4-component vector of uint) -0:134 move second child to first child (temp 4-component vector of float) -0:134 Color: direct index for structure (temp 4-component vector of float) -0:134 'psout' (temp structure{temp 4-component vector of float Color}) -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 1.000000 -0:134 1.000000 -0:134 1.000000 -0:134 1.000000 -0:136 Sequence -0:136 Sequence -0:136 move second child to first child (temp 4-component vector of float) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:136 Color: direct index for structure (temp 4-component vector of float) -0:136 'psout' (temp structure{temp 4-component vector of float Color}) -0:136 Constant: -0:136 0 (const int) -0:136 Branch: Return +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return 0:? Linker Objects 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) @@ -1711,13 +1739,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 596 +// Id's are bound by 602 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 571 + EntryPoint Fragment 4 "main" 577 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn1(vi4;" @@ -1832,17 +1860,18 @@ gl_FragCoord origin is upper left Name 550 "coordTemp" Name 553 "storeTempPre" Name 557 "storeTempPost" - Name 565 "PS_OUTPUT" - MemberName 565(PS_OUTPUT) 0 "Color" - Name 567 "psout" - Name 571 "Color" - Name 577 "g_sSamp" - Name 580 "g_tTex1df4a" - Name 583 "g_tTex1di4a" - Name 586 "g_tTex1du4a" - Name 589 "g_tTex2df4a" - Name 592 "g_tTex2di4a" - Name 595 "g_tTex2du4a" + Name 565 "storeTemp" + Name 571 "PS_OUTPUT" + MemberName 571(PS_OUTPUT) 0 "Color" + Name 573 "psout" + Name 577 "Color" + Name 583 "g_sSamp" + Name 586 "g_tTex1df4a" + Name 589 "g_tTex1di4a" + Name 592 "g_tTex1du4a" + Name 595 "g_tTex2df4a" + Name 598 "g_tTex2di4a" + Name 601 "g_tTex2du4a" MemberDecorate 59($Global) 0 Offset 0 MemberDecorate 59($Global) 1 Offset 8 MemberDecorate 59($Global) 2 Offset 16 @@ -1866,15 +1895,15 @@ gl_FragCoord origin is upper left Decorate 127(g_tTex3df4) DescriptorSet 0 Decorate 137(g_tTex3di4) DescriptorSet 0 Decorate 145(g_tTex3du4) DescriptorSet 0 - Decorate 571(Color) Location 0 - Decorate 577(g_sSamp) DescriptorSet 0 - Decorate 577(g_sSamp) Binding 0 - Decorate 580(g_tTex1df4a) DescriptorSet 0 - Decorate 583(g_tTex1di4a) DescriptorSet 0 - Decorate 586(g_tTex1du4a) DescriptorSet 0 - Decorate 589(g_tTex2df4a) DescriptorSet 0 - Decorate 592(g_tTex2di4a) DescriptorSet 0 - Decorate 595(g_tTex2du4a) DescriptorSet 0 + Decorate 577(Color) Location 0 + Decorate 583(g_sSamp) DescriptorSet 0 + Decorate 583(g_sSamp) Binding 0 + Decorate 586(g_tTex1df4a) DescriptorSet 0 + Decorate 589(g_tTex1di4a) DescriptorSet 0 + Decorate 592(g_tTex1du4a) DescriptorSet 0 + Decorate 595(g_tTex2df4a) DescriptorSet 0 + Decorate 598(g_tTex2di4a) DescriptorSet 0 + Decorate 601(g_tTex2du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -1962,32 +1991,33 @@ gl_FragCoord origin is upper left 348: 13(int) Constant 9 349: 14(ivec4) ConstantComposite 348 174 173 175 404: 20(float) Constant 1065353216 - 565(PS_OUTPUT): TypeStruct 21(fvec4) - 566: TypePointer Function 565(PS_OUTPUT) - 568: 21(fvec4) ConstantComposite 404 404 404 404 - 570: TypePointer Output 21(fvec4) - 571(Color): 570(ptr) Variable Output - 575: TypeSampler - 576: TypePointer UniformConstant 575 - 577(g_sSamp): 576(ptr) Variable UniformConstant - 578: TypeImage 20(float) 1D array nonsampled format:Rgba32f - 579: TypePointer UniformConstant 578 -580(g_tTex1df4a): 579(ptr) Variable UniformConstant - 581: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 567: 57(ivec2) ConstantComposite 129 62 + 571(PS_OUTPUT): TypeStruct 21(fvec4) + 572: TypePointer Function 571(PS_OUTPUT) + 574: 21(fvec4) ConstantComposite 404 404 404 404 + 576: TypePointer Output 21(fvec4) + 577(Color): 576(ptr) Variable Output + 581: TypeSampler 582: TypePointer UniformConstant 581 -583(g_tTex1di4a): 582(ptr) Variable UniformConstant - 584: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 583(g_sSamp): 582(ptr) Variable UniformConstant + 584: TypeImage 20(float) 1D array nonsampled format:Rgba32f 585: TypePointer UniformConstant 584 -586(g_tTex1du4a): 585(ptr) Variable UniformConstant - 587: TypeImage 20(float) 2D array nonsampled format:Rgba32f +586(g_tTex1df4a): 585(ptr) Variable UniformConstant + 587: TypeImage 6(int) 1D array nonsampled format:Rgba32i 588: TypePointer UniformConstant 587 -589(g_tTex2df4a): 588(ptr) Variable UniformConstant - 590: TypeImage 6(int) 2D array nonsampled format:Rgba32i +589(g_tTex1di4a): 588(ptr) Variable UniformConstant + 590: TypeImage 13(int) 1D array nonsampled format:Rgba32ui 591: TypePointer UniformConstant 590 -592(g_tTex2di4a): 591(ptr) Variable UniformConstant - 593: TypeImage 13(int) 2D array nonsampled format:Rgba32ui +592(g_tTex1du4a): 591(ptr) Variable UniformConstant + 593: TypeImage 20(float) 2D array nonsampled format:Rgba32f 594: TypePointer UniformConstant 593 -595(g_tTex2du4a): 594(ptr) Variable UniformConstant +595(g_tTex2df4a): 594(ptr) Variable UniformConstant + 596: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 597: TypePointer UniformConstant 596 +598(g_tTex2di4a): 597(ptr) Variable UniformConstant + 599: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 600: TypePointer UniformConstant 599 +601(g_tTex2du4a): 600(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 77(r00): 22(ptr) Variable Function @@ -2067,7 +2097,8 @@ gl_FragCoord origin is upper left 550(coordTemp): 182(ptr) Variable Function 553(storeTempPre): 15(ptr) Variable Function 557(storeTempPost): 15(ptr) Variable Function - 567(psout): 566(ptr) Variable Function + 565(storeTemp): 22(ptr) Variable Function + 573(psout): 572(ptr) Variable Function 72: 69 Load 71(g_tTex1df4) 74: 73(ptr) AccessChain 61 51 75: 6(int) Load 74 @@ -2562,11 +2593,17 @@ gl_FragCoord origin is upper left 563: 6(int) Load 550(coordTemp) 564: 14(ivec4) Load 557(storeTempPost) ImageWrite 562 563 564 - 569: 22(ptr) AccessChain 567(psout) 51 - Store 569 568 - 572: 22(ptr) AccessChain 567(psout) 51 - 573: 21(fvec4) Load 572 - Store 571(Color) 573 + 566: 99 Load 101(g_tTex2df4) + 568: 21(fvec4) ImageRead 566 567 + Store 565(storeTemp) 568 + 569: 69 Load 71(g_tTex1df4) + 570: 21(fvec4) Load 565(storeTemp) + ImageWrite 569 103 570 + 575: 22(ptr) AccessChain 573(psout) 51 + Store 575 574 + 578: 22(ptr) AccessChain 573(psout) 51 + 579: 21(fvec4) Load 578 + Store 577(Color) 579 Return FunctionEnd 11(Fn1(vi4;): 7(ivec4) Function None 9 diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out new file mode 100644 index 00000000..0769cde4 --- /dev/null +++ b/Test/baseResults/hlsl.tx.bracket.frag.out @@ -0,0 +1,702 @@ +hlsl.tx.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 183 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 158 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 28 "SomeValue(" + Name 41 "$Global" + MemberName 41($Global) 0 "c1" + MemberName 41($Global) 1 "c2" + MemberName 41($Global) 2 "c3" + MemberName 41($Global) 3 "c4" + MemberName 41($Global) 4 "o1" + MemberName 41($Global) 5 "o2" + MemberName 41($Global) 6 "o3" + MemberName 41($Global) 7 "o4" + Name 43 "" + Name 53 "g_tTex1df4" + Name 60 "r00" + Name 65 "r01" + Name 68 "g_tTex1di4" + Name 73 "r02" + Name 76 "g_tTex1du4" + Name 81 "r10" + Name 84 "g_tTex2df4" + Name 91 "r11" + Name 94 "g_tTex2di4" + Name 99 "r12" + Name 102 "g_tTex2du4" + Name 107 "r20" + Name 110 "g_tTex3df4" + Name 117 "r21" + Name 120 "g_tTex3di4" + Name 125 "r22" + Name 128 "g_tTex3du4" + Name 137 "param" + Name 143 "param" + Name 149 "param" + Name 151 "PS_OUTPUT" + MemberName 151(PS_OUTPUT) 0 "Color" + Name 153 "psout" + Name 158 "Color" + Name 164 "g_sSamp" + Name 167 "g_tTex1df4a" + Name 170 "g_tTex1di4a" + Name 173 "g_tTex1du4a" + Name 176 "g_tTex2df4a" + Name 179 "g_tTex2di4a" + Name 182 "g_tTex2du4a" + MemberDecorate 41($Global) 0 Offset 0 + MemberDecorate 41($Global) 1 Offset 8 + MemberDecorate 41($Global) 2 Offset 16 + MemberDecorate 41($Global) 3 Offset 32 + MemberDecorate 41($Global) 4 Offset 48 + MemberDecorate 41($Global) 5 Offset 56 + MemberDecorate 41($Global) 6 Offset 64 + MemberDecorate 41($Global) 7 Offset 80 + Decorate 41($Global) Block + Decorate 43 DescriptorSet 0 + Decorate 53(g_tTex1df4) DescriptorSet 0 + Decorate 53(g_tTex1df4) Binding 0 + Decorate 68(g_tTex1di4) DescriptorSet 0 + Decorate 76(g_tTex1du4) DescriptorSet 0 + Decorate 84(g_tTex2df4) DescriptorSet 0 + Decorate 94(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 110(g_tTex3df4) DescriptorSet 0 + Decorate 120(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 158(Color) Location 0 + Decorate 164(g_sSamp) DescriptorSet 0 + Decorate 164(g_sSamp) Binding 0 + Decorate 167(g_tTex1df4a) DescriptorSet 0 + Decorate 170(g_tTex1di4a) DescriptorSet 0 + Decorate 173(g_tTex1du4a) DescriptorSet 0 + Decorate 176(g_tTex2df4a) DescriptorSet 0 + Decorate 179(g_tTex2di4a) DescriptorSet 0 + Decorate 182(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 21(fvec4) + 39: TypeVector 6(int) 2 + 40: TypeVector 6(int) 3 + 41($Global): TypeStruct 6(int) 39(ivec2) 40(ivec3) 7(ivec4) 6(int) 39(ivec2) 40(ivec3) 7(ivec4) + 42: TypePointer Uniform 41($Global) + 43: 42(ptr) Variable Uniform + 44: 6(int) Constant 3 + 45: TypePointer Uniform 7(ivec4) + 51: TypeImage 20(float) 1D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex1df4): 52(ptr) Variable UniformConstant + 55: 6(int) Constant 0 + 56: TypePointer Uniform 6(int) + 66: TypeImage 6(int) 1D sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex1di4): 67(ptr) Variable UniformConstant + 74: TypeImage 13(int) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1du4): 75(ptr) Variable UniformConstant + 82: TypeImage 20(float) 2D sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2df4): 83(ptr) Variable UniformConstant + 86: 6(int) Constant 1 + 87: TypePointer Uniform 39(ivec2) + 92: TypeImage 6(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex2di4): 93(ptr) Variable UniformConstant + 100: TypeImage 13(int) 2D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 108: TypeImage 20(float) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3df4): 109(ptr) Variable UniformConstant + 112: 6(int) Constant 2 + 113: TypePointer Uniform 40(ivec3) + 118: TypeImage 6(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3di4): 119(ptr) Variable UniformConstant + 126: TypeImage 13(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 151(PS_OUTPUT): TypeStruct 21(fvec4) + 152: TypePointer Function 151(PS_OUTPUT) + 154: 20(float) Constant 1065353216 + 155: 21(fvec4) ConstantComposite 154 154 154 154 + 157: TypePointer Output 21(fvec4) + 158(Color): 157(ptr) Variable Output + 162: TypeSampler + 163: TypePointer UniformConstant 162 + 164(g_sSamp): 163(ptr) Variable UniformConstant + 165: TypeImage 20(float) 1D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex1df4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(int) 1D array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTex1di4a): 169(ptr) Variable UniformConstant + 171: TypeImage 13(int) 1D array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTex1du4a): 172(ptr) Variable UniformConstant + 174: TypeImage 20(float) 2D array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTex2df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 6(int) 2D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex2di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 13(int) 2D array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTex2du4a): 181(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 60(r00): 22(ptr) Variable Function + 65(r01): 8(ptr) Variable Function + 73(r02): 15(ptr) Variable Function + 81(r10): 22(ptr) Variable Function + 91(r11): 8(ptr) Variable Function + 99(r12): 15(ptr) Variable Function + 107(r20): 22(ptr) Variable Function + 117(r21): 8(ptr) Variable Function + 125(r22): 15(ptr) Variable Function + 137(param): 22(ptr) Variable Function + 143(param): 8(ptr) Variable Function + 149(param): 15(ptr) Variable Function + 153(psout): 152(ptr) Variable Function + 54: 51 Load 53(g_tTex1df4) + 57: 56(ptr) AccessChain 43 55 + 58: 6(int) Load 57 + 59: 21(fvec4) ImageFetch 54 58 Lod 55 + 61: 51 Load 53(g_tTex1df4) + 62: 56(ptr) AccessChain 43 55 + 63: 6(int) Load 62 + 64: 21(fvec4) ImageFetch 61 63 Lod 55 + Store 60(r00) 64 + 69: 66 Load 68(g_tTex1di4) + 70: 56(ptr) AccessChain 43 55 + 71: 6(int) Load 70 + 72: 7(ivec4) ImageFetch 69 71 Lod 55 + Store 65(r01) 72 + 77: 74 Load 76(g_tTex1du4) + 78: 56(ptr) AccessChain 43 55 + 79: 6(int) Load 78 + 80: 14(ivec4) ImageFetch 77 79 Lod 55 + Store 73(r02) 80 + 85: 82 Load 84(g_tTex2df4) + 88: 87(ptr) AccessChain 43 86 + 89: 39(ivec2) Load 88 + 90: 21(fvec4) ImageFetch 85 89 Lod 55 + Store 81(r10) 90 + 95: 92 Load 94(g_tTex2di4) + 96: 87(ptr) AccessChain 43 86 + 97: 39(ivec2) Load 96 + 98: 7(ivec4) ImageFetch 95 97 Lod 55 + Store 91(r11) 98 + 103: 100 Load 102(g_tTex2du4) + 104: 87(ptr) AccessChain 43 86 + 105: 39(ivec2) Load 104 + 106: 14(ivec4) ImageFetch 103 105 Lod 55 + Store 99(r12) 106 + 111: 108 Load 110(g_tTex3df4) + 114: 113(ptr) AccessChain 43 112 + 115: 40(ivec3) Load 114 + 116: 21(fvec4) ImageFetch 111 115 Lod 55 + Store 107(r20) 116 + 121: 118 Load 120(g_tTex3di4) + 122: 113(ptr) AccessChain 43 112 + 123: 40(ivec3) Load 122 + 124: 7(ivec4) ImageFetch 121 123 Lod 55 + Store 117(r21) 124 + 129: 126 Load 128(g_tTex3du4) + 130: 113(ptr) AccessChain 43 112 + 131: 40(ivec3) Load 130 + 132: 14(ivec4) ImageFetch 129 131 Lod 55 + Store 125(r22) 132 + 133: 51 Load 53(g_tTex1df4) + 134: 56(ptr) AccessChain 43 55 + 135: 6(int) Load 134 + 136: 21(fvec4) ImageFetch 133 135 Lod 55 + Store 137(param) 136 + 138: 21(fvec4) FunctionCall 25(Fn1(vf4;) 137(param) + 139: 66 Load 68(g_tTex1di4) + 140: 56(ptr) AccessChain 43 55 + 141: 6(int) Load 140 + 142: 7(ivec4) ImageFetch 139 141 Lod 55 + Store 143(param) 142 + 144: 7(ivec4) FunctionCall 11(Fn1(vi4;) 143(param) + 145: 74 Load 76(g_tTex1du4) + 146: 56(ptr) AccessChain 43 55 + 147: 6(int) Load 146 + 148: 14(ivec4) ImageFetch 145 147 Lod 55 + Store 149(param) 148 + 150: 14(ivec4) FunctionCall 18(Fn1(vu4;) 149(param) + 156: 22(ptr) AccessChain 153(psout) 55 + Store 156 155 + 159: 22(ptr) AccessChain 153(psout) 55 + 160: 21(fvec4) Load 159 + Store 158(Color) 160 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 30: 7(ivec4) Load 10(x) + ReturnValue 30 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 33: 14(ivec4) Load 17(x) + ReturnValue 33 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 36: 21(fvec4) Load 24(x) + ReturnValue 36 + FunctionEnd + 28(SomeValue(): 21(fvec4) Function None 27 + 29: Label + 46: 45(ptr) AccessChain 43 44 + 47: 7(ivec4) Load 46 + 48: 21(fvec4) ConvertSToF 47 + ReturnValue 48 + FunctionEnd diff --git a/Test/hlsl.rw.bracket.frag b/Test/hlsl.rw.bracket.frag index 650b5674..9390e8de 100644 --- a/Test/hlsl.rw.bracket.frag +++ b/Test/hlsl.rw.bracket.frag @@ -74,7 +74,7 @@ PS_OUTPUT main() // Test as L-values // 1D - g_tTex1df4[c1] = SomeValue(); // complex L-value + g_tTex1df4[c1] = SomeValue(); // complex R-value g_tTex1df4[c1] = lf4; g_tTex1di4[c1] = int4(2,2,3,4); g_tTex1du4[c1] = uint4(3,2,3,4); @@ -103,7 +103,7 @@ PS_OUTPUT main() g_tTex3di4[c3] = int4(8,6,7,8); g_tTex3du4[c3] = uint4(9,2,3,4); - // // Test function calling + // Test function calling Fn1(g_tTex1df4[c1]); // in Fn1(g_tTex1di4[c1]); // in Fn1(g_tTex1du4[c1]); // in @@ -131,6 +131,9 @@ PS_OUTPUT main() g_tTex1di4[c1]++; g_tTex1du4[c1]--; + // read and write + g_tTex1df4[1] = g_tTex2df4[int2(2,3)]; + psout.Color = 1.0; return psout; diff --git a/Test/hlsl.tx.bracket.frag b/Test/hlsl.tx.bracket.frag new file mode 100644 index 00000000..0d3d81f8 --- /dev/null +++ b/Test/hlsl.tx.bracket.frag @@ -0,0 +1,73 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df4 : register(t0); +Texture1D g_tTex1di4; +Texture1D g_tTex1du4; + +Texture2D g_tTex2df4; +Texture2D g_tTex2di4; +Texture2D g_tTex2du4; + +Texture3D g_tTex3df4; +Texture3D g_tTex3di4; +Texture3D g_tTex3du4; + +Texture1DArray g_tTex1df4a; +Texture1DArray g_tTex1di4a; +Texture1DArray g_tTex1du4a; + +Texture2DArray g_tTex2df4a; +Texture2DArray g_tTex2di4a; +Texture2DArray g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +float4 SomeValue() { return c4; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + psout.Color = 1.0; + + return psout; +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 96e5c348..81fdedba 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -2046,8 +2046,9 @@ bool TIntermBinary::promote() break; case EOpVectorTimesScalarAssign: - if (left->isVector() && right->isScalar()) - return true; + if (!left->isVector() || !right->isScalar()) + return false; + break; default: return false; @@ -2069,6 +2070,7 @@ bool TIntermBinary::promote() case EOpExclusiveOrAssign: case EOpLeftShiftAssign: case EOpRightShiftAssign: + case EOpVectorTimesScalarAssign: if (getType() != left->getType()) return false; break; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 9a160cf4..354a5dfe 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -191,6 +191,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.switch.frag", "PixelShaderFunction"}, {"hlsl.swizzle.frag", "PixelShaderFunction"}, {"hlsl.templatetypes.frag", "PixelShaderFunction"}, + {"hlsl.tx.bracket.frag", "main"}, {"hlsl.typedef.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 5dc25fc5..5f9ec267 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1948,7 +1948,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) return true; node = intermediate.addUnaryMath(unaryOp, node, loc); - node = parseContext.handleLvalue(loc, "", node); + node = parseContext.handleLvalue(loc, "unary operator", node); return node != nullptr; } @@ -2064,7 +2064,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpPostDecrement: // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); - node = parseContext.handleLvalue(loc, "", node); + node = parseContext.handleLvalue(loc, "unary operator", node); break; default: assert(0); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 5c1fd059..8d841592 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -130,6 +130,10 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& return numErrors == 0; } +// +// Return true if this l-value node should be converted in some manner. +// For instance: turning a load aggregate into a store in an l-value. +// bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const { if (node == nullptr) @@ -177,6 +181,9 @@ bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, T // TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped* node) { + if (node == nullptr) + return nullptr; + TIntermBinary* nodeAsBinary = node->getAsBinaryNode(); TIntermUnary* nodeAsUnary = node->getAsUnaryNode(); TIntermAggregate* sequence = nullptr; @@ -571,12 +578,18 @@ TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIn const TSampler& sampler = base->getType().getSampler(); if (sampler.isImage() || sampler.isTexture()) { const int vecSize = 4; // TODO: handle arbitrary sizes (get from qualifier) - TIntermAggregate* load = new TIntermAggregate(EOpImageLoad); + TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); load->setType(TType(sampler.type, EvqTemporary, vecSize)); load->setLoc(loc); load->getSequence().push_back(base); load->getSequence().push_back(index); + + // Textures need a MIP. First indirection is always to mip 0. If there's another, we'll add it + // later. + if (sampler.isTexture()) + load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true)); + return load; } } From b3da8a9cb30bee73e4646e50ff2ce6c21bef8ec1 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 12 Oct 2016 12:38:12 -0600 Subject: [PATCH 192/217] 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 --- Test/baseResults/hlsl.struct.frag.out | 193 +++++++++--------- Test/hlsl.struct.frag | 4 +- glslang/MachineIndependent/Intermediate.cpp | 98 +++++---- glslang/MachineIndependent/ParseHelper.cpp | 1 - .../MachineIndependent/localintermediate.h | 7 + hlsl/hlslParseHelper.cpp | 23 ++- 6 files changed, 170 insertions(+), 156 deletions(-) diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 7605543f..5fef9599 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -14,22 +14,21 @@ gl_FragCoord origin is upper left 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: -0:40 1 (const uint) -0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects +0:? 's2' (global structure{temp 4-component vector of float i}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -55,22 +54,21 @@ gl_FragCoord origin is upper left 0:39 Compare Equal (temp bool) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) 0:39 's3' (temp structure{temp 3-component vector of bool b3}) -0:40 i: direct index for structure (temp 4-component vector of float) -0:40 s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i}) -0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:40 move second child to first child (temp 4-component vector of float) +0:40 i: direct index for structure (temp 4-component vector of float) +0:40 's2' (global structure{temp 4-component vector of float i}) 0:40 Constant: -0:40 1 (const uint) -0:40 Constant: -0:40 0 (const int) -0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:40 0 (const int) +0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects +0:? 's2' (global structure{temp 4-component vector of float i}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -83,103 +81,95 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 49 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 29 31 32 35 37 39 42 43 44 45 + EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 38 40 42 45 46 47 48 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" MemberName 8(FS) 0 "b3" Name 10 "s3" - Name 20 "myS" - MemberName 20(myS) 0 "b" - MemberName 20(myS) 1 "c" - MemberName 20(myS) 2 "a" - MemberName 20(myS) 3 "d" - Name 21 "" - MemberName 21 0 "i" - Name 22 "$Global" - MemberName 22($Global) 0 "s1" - MemberName 22($Global) 1 "s2" - MemberName 22($Global) 2 "ff5" - MemberName 22($Global) 3 "ff6" - Name 24 "" - Name 29 "ff4" - Name 31 "@entryPointOutput" - Name 32 "input" - Name 35 "a" - Name 37 "b" - Name 39 "c" - Name 42 "d" - Name 43 "ff1" - Name 44 "ff2" - Name 45 "ff3" - MemberDecorate 20(myS) 0 Offset 0 - MemberDecorate 20(myS) 1 Offset 4 - MemberDecorate 20(myS) 2 Offset 16 - MemberDecorate 20(myS) 3 Offset 32 - MemberDecorate 21 0 Offset 0 - MemberDecorate 22($Global) 0 Offset 0 - MemberDecorate 22($Global) 1 Offset 48 - MemberDecorate 22($Global) 2 Offset 1620 - MemberDecorate 22($Global) 3 Offset 1636 - Decorate 22($Global) Block - Decorate 24 DescriptorSet 0 - Decorate 29(ff4) Offset 4 - Decorate 29(ff4) Location 7 - Decorate 29(ff4) Binding 0 - Decorate 31(@entryPointOutput) Location 0 - Decorate 32(input) Location 0 - Decorate 35(a) Location 1 - Decorate 37(b) Flat - Decorate 37(b) Location 2 - Decorate 39(c) NoPerspective - Decorate 39(c) Centroid - Decorate 39(c) Location 3 - Decorate 42(d) Centroid - Decorate 42(d) Location 4 - Decorate 43(ff1) BuiltIn FrontFacing - Decorate 44(ff2) Offset 4 - Decorate 44(ff2) Location 5 - Decorate 45(ff3) Offset 4 - Decorate 45(ff3) Location 6 - Decorate 45(ff3) Binding 0 + Name 19 "" + MemberName 19 0 "i" + Name 21 "s2" + Name 25 "ff4" + Name 30 "@entryPointOutput" + Name 31 "input" + Name 34 "myS" + MemberName 34(myS) 0 "b" + MemberName 34(myS) 1 "c" + MemberName 34(myS) 2 "a" + MemberName 34(myS) 3 "d" + Name 35 "$Global" + MemberName 35($Global) 0 "s1" + MemberName 35($Global) 1 "ff5" + MemberName 35($Global) 2 "ff6" + Name 37 "" + Name 38 "a" + Name 40 "b" + Name 42 "c" + Name 45 "d" + Name 46 "ff1" + Name 47 "ff2" + Name 48 "ff3" + Decorate 25(ff4) Offset 4 + Decorate 25(ff4) Location 7 + Decorate 25(ff4) Binding 0 + Decorate 30(@entryPointOutput) Location 0 + Decorate 31(input) Location 0 + Decorate 35($Global) Block + Decorate 37 DescriptorSet 0 + Decorate 38(a) Location 1 + Decorate 40(b) Flat + Decorate 40(b) Location 2 + Decorate 42(c) NoPerspective + Decorate 42(c) Centroid + Decorate 42(c) Location 3 + Decorate 45(d) Centroid + Decorate 45(d) Location 4 + Decorate 46(ff1) BuiltIn FrontFacing + Decorate 47(ff2) Offset 4 + Decorate 47(ff2) Location 5 + Decorate 48(ff3) Offset 4 + Decorate 48(ff3) Location 6 + Decorate 48(ff3) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool 7: TypeVector 6(bool) 3 8(FS): TypeStruct 7(bvec3) 9: TypePointer Function 8(FS) - 17: TypeInt 32 0 - 18: TypeFloat 32 - 19: TypeVector 18(float) 4 - 20(myS): TypeStruct 17(int) 17(int) 19(fvec4) 19(fvec4) - 21: TypeStruct 19(fvec4) - 22($Global): TypeStruct 20(myS) 21(struct) 18(float) 18(float) - 23: TypePointer Uniform 22($Global) - 24: 23(ptr) Variable Uniform - 25: TypeInt 32 1 - 26: 25(int) Constant 1 - 27: 25(int) Constant 0 - 28: TypePointer Input 19(fvec4) - 29(ff4): 28(ptr) Variable Input - 30: TypePointer Output 19(fvec4) -31(@entryPointOutput): 30(ptr) Variable Output - 32(input): 28(ptr) Variable Input - 35(a): 28(ptr) Variable Input - 36: TypePointer Input 6(bool) - 37(b): 36(ptr) Variable Input - 38: TypePointer Input 18(float) - 39(c): 38(ptr) Variable Input - 40: TypeVector 18(float) 2 - 41: TypePointer Input 40(fvec2) - 42(d): 41(ptr) Variable Input - 43(ff1): 36(ptr) Variable Input - 44(ff2): 36(ptr) Variable Input - 45(ff3): 36(ptr) Variable Input + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeStruct 18(fvec4) + 20: TypePointer Private 19(struct) + 21(s2): 20(ptr) Variable Private + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypePointer Input 18(fvec4) + 25(ff4): 24(ptr) Variable Input + 27: TypePointer Private 18(fvec4) + 29: TypePointer Output 18(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31(input): 24(ptr) Variable Input + 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 35($Global): TypeStruct 34(myS) 17(float) 17(float) + 36: TypePointer Uniform 35($Global) + 37: 36(ptr) Variable Uniform + 38(a): 24(ptr) Variable Input + 39: TypePointer Input 6(bool) + 40(b): 39(ptr) Variable Input + 41: TypePointer Input 17(float) + 42(c): 41(ptr) Variable Input + 43: TypeVector 17(float) 2 + 44: TypePointer Input 43(fvec2) + 45(d): 44(ptr) Variable Input + 46(ff1): 39(ptr) Variable Input + 47(ff2): 39(ptr) Variable Input + 48(ff3): 39(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function @@ -189,7 +179,10 @@ gl_FragCoord origin is upper left 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - 33: 19(fvec4) Load 32(input) - Store 31(@entryPointOutput) 33 + 26: 18(fvec4) Load 25(ff4) + 28: 27(ptr) AccessChain 21(s2) 23 + Store 28 26 + 32: 18(fvec4) Load 31(input) + Store 30(@entryPointOutput) 32 Return FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 456c9ef7..e602c9ed 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -12,7 +12,7 @@ struct myS { myS s1; -struct { +static struct { float4 i; } s2; @@ -37,7 +37,7 @@ float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 } s3; s3 == s3; - s2.i; s.ff4; // no assignments to uniforms, but preserve indirections. + s2.i = s.ff4; return input; } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 81fdedba..8e80bbd2 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -136,13 +136,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // Need a new node holding things together. Make // one and promote it to the right type. // - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = right->getLoc(); - node->setLoc(loc); - - node->setLeft(left); - node->setRight(right); + TIntermBinary* node = addBinaryNode(op, left, right, loc); if (! node->promote()) return 0; @@ -172,6 +166,56 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn return node; } +// +// Low level: add binary node (no promotions or other argument modifications) +// +TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) const +{ + // build the node + TIntermBinary* node = new TIntermBinary(op); + if (loc.line == 0) + loc = left->getLoc(); + node->setLoc(loc); + node->setLeft(left); + node->setRight(right); + + return node; +} + +// +// like non-type form, but sets node's type. +// +TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc, const TType& type) const +{ + TIntermBinary* node = addBinaryNode(op, left, right, loc); + node->setType(type); + return node; +} + +// +// Low level: add unary node (no promotions or other argument modifications) +// +TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc) const +{ + TIntermUnary* node = new TIntermUnary(op); + if (loc.line == 0) + loc = child->getLoc(); + node->setLoc(loc); + node->setOperand(child); + + return node; +} + +// +// like non-type form, but sets node's type. +// +TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc, const TType& type) const +{ + TIntermUnary* node = addUnaryNode(op, child, loc); + node->setType(type); + return node; +} + // // Connect two nodes through an assignment. // @@ -200,12 +244,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm right = addShapeConversion(op, left->getType(), right); // build the node - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = left->getLoc(); - node->setLoc(loc); - node->setLeft(left); - node->setRight(right); + TIntermBinary* node = addBinaryNode(op, left, right, loc); if (! node->promote()) return nullptr; @@ -224,16 +263,8 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc loc) { - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = index->getLoc(); - node->setLoc(loc); - node->setLeft(base); - node->setRight(index); - // caller should set the type - - return node; + return addBinaryNode(op, base, index, loc); } // @@ -316,11 +347,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // // Make a new node for the operator. // - TIntermUnary* node = new TIntermUnary(op); - if (loc.line == 0) - loc = child->getLoc(); - node->setLoc(loc); - node->setOperand(child); + TIntermUnary* node = addUnaryNode(op, child, loc); if (! node->promote()) return 0; @@ -357,12 +384,7 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper return folded; } - TIntermUnary* node = new TIntermUnary(op); - node->setLoc(child->getLoc()); - node->setOperand(child); - node->setType(returnType); - - return node; + return addUnaryNode(op, child, child->getLoc(), returnType); } else { // setAggregateOperater() calls fold() for constant folding TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc); @@ -725,9 +747,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt } TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); - newNode = new TIntermUnary(newOp, newType); - newNode->setLoc(node->getLoc()); - newNode->setOperand(node); + newNode = addUnaryNode(newOp, node, node->getLoc(), newType); // TODO: it seems that some unary folding operations should occur here, but are not @@ -2045,11 +2065,6 @@ bool TIntermBinary::promote() } break; - case EOpVectorTimesScalarAssign: - if (!left->isVector() || !right->isScalar()) - return false; - break; - default: return false; } @@ -2070,7 +2085,6 @@ bool TIntermBinary::promote() case EOpExclusiveOrAssign: case EOpLeftShiftAssign: case EOpRightShiftAssign: - case EOpVectorTimesScalarAssign: if (getType() != left->getType()) return false; break; diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index de1e8ca7..3187ffcc 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1966,7 +1966,6 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt if (TParseContextBase::lValueErrorCheck(loc, op, node)) return true; - // GLSL specific const char* symbol = nullptr; TIntermSymbol* symNode = node->getAsSymbolNode(); if (symNode != nullptr) diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index acfafb1e..348b78e0 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -236,6 +236,13 @@ public: TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&); + // Low level functions to add nodes (no conversions or other higher level transformations) + // If a type is provided, the node's type will be set to it. + TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc) const; + TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc, const TType&) const; + TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; + TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; + // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 8d841592..3137bedb 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -228,9 +228,9 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* }; // Helper to create an assign. - const auto makeAssign = [&](TOperator assignOp, TIntermTyped* lhs, TIntermTyped* rhs) { + const auto makeBinary = [&](TOperator op, TIntermTyped* lhs, TIntermTyped* rhs) { sequence = intermediate.growAggregate(sequence, - intermediate.addAssign(assignOp, lhs, rhs, loc), + intermediate.addBinaryNode(op, lhs, rhs, loc, lhs->getType()), loc); }; @@ -246,9 +246,10 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* }; // Helper to add unary op - const auto addUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { + const auto makeUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { sequence = intermediate.growAggregate(sequence, - intermediate.addUnaryMath(op, intermediate.addSymbol(*rhsTmp), loc), + intermediate.addUnaryNode(op, intermediate.addSymbol(*rhsTmp), loc, + rhsTmp->getType()), loc); }; @@ -322,12 +323,12 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* if (isModifyOp) { // We have to make a temp var for the coordinate, to avoid evaluating it twice. coordTmp = addTmpVar("coordTemp", coord->getType()); - makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) } // rhsTmp op= rhs. - makeAssign(assignOp, intermediate.addSymbol(*rhsTmp), rhs); + makeBinary(assignOp, intermediate.addSymbol(*rhsTmp), rhs); } makeStore(object, coordTmp, rhsTmp); // add a store @@ -357,9 +358,9 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType); TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); - makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) - addUnary(assignOp, rhsTmp); // op rhsTmp + makeUnary(assignOp, rhsTmp); // op rhsTmp makeStore(object, coordTmp, rhsTmp); // OpImageStore(object, coordTmp, rhsTmp) return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence } @@ -379,10 +380,10 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType); TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); - makeAssign(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp) - makeAssign(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 - addUnary(assignOp, rhsTmp2); // rhsTmp op + makeBinary(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 + makeUnary(assignOp, rhsTmp2); // rhsTmp op makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence } From 54a28de4a97322fc5c9cc403e870f5f9b8df83ef Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:23:39 +0200 Subject: [PATCH 193/217] Give all complex lambdas an explicit return type --- glslang/MachineIndependent/ParseContextBase.cpp | 2 +- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- hlsl/hlslParseHelper.cpp | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index fe2b8e6b..e46684fe 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -253,7 +253,7 @@ const TFunction* TParseContextBase::selectFunction( return viableCandidates.front(); // 4. find best... - auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2){ + auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { // is call -> can2 better than call -> can1 for any parameter bool hasBetterParam = false; for (int param = 0; param < call.getParamCount(); ++param) { diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 949ba007..2dfb9c72 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4907,7 +4907,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // can 'from' convert to 'to'? - const auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [this](const TType& from, const TType& to) -> bool { if (from == to) return true; if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) @@ -4918,7 +4918,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - const auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { // 1. exact match if (from == to2) return from != to1; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4eda44d7..ca23ca39 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1001,7 +1001,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op const auto getMember = [&](bool flatten, TIntermTyped* node, const TVector& memberVariables, int member, - TOperator op, const TType& memberType) { + TOperator op, const TType& memberType) -> TIntermTyped * { TIntermTyped* subTree; if (flatten) subTree = intermediate.addSymbol(*memberVariables[member]); @@ -2693,7 +2693,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi // space unsigned int setNumber; - const auto crackSpace = [&]() { + const auto crackSpace = [&]() -> bool { const int spaceLen = 5; if (spaceDesc->size() < spaceLen + 1) return false; @@ -3889,7 +3889,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // can 'from' convert to 'to'? - const auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [this](const TType& from, const TType& to) -> bool { if (from == to) return true; @@ -3916,7 +3916,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - const auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { // exact match is always better than mismatch if (from == to2) return from != to1; @@ -3943,7 +3943,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // - 32 vs. 64 bit (or width in general) // - bool vs. non bool // - signed vs. not signed - const auto linearize = [](const TBasicType& basicType) { + const auto linearize = [](const TBasicType& basicType) -> int { switch (basicType) { case EbtBool: return 1; case EbtInt: return 10; From 75c3bf68e907d0f6d4ca279724e193addfcdb5f3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:24:23 +0200 Subject: [PATCH 194/217] Add strtoull wrapper for VS2010, pointing to MS implementation --- glslang/Include/Common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 636645e7..e082356c 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -68,6 +68,10 @@ inline long long int strtoll (const char* str, char** endptr, int base) { return _strtoi64(str, endptr, base); } +inline unsigned long long int strtoull (const char* str, char** endptr, int base) +{ + return _strtoui64(str, endptr, base); +} inline long long int atoll (const char* str) { return strtoll(str, NULL, 10); From ff160f15ef26c3727bc53e240454ee32061232e3 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:24:42 +0200 Subject: [PATCH 195/217] Add #include for std::uint32_t usage --- SPIRV/SPVRemapper.h | 1 + 1 file changed, 1 insertion(+) diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index 43ec1ae7..b3c686aa 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -75,6 +75,7 @@ public: #if !defined (use_cpp11) #include +#include namespace spv { class spirvbin_t : public spirvbin_base_t From 31d5d488125f784d0c7a64fb0af6e66e60033935 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:25:52 +0200 Subject: [PATCH 196/217] Change constructor to use ()s instead of {}s --- StandAlone/StandAlone.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 5d30ac2b..cc38f2c8 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -666,11 +666,11 @@ void CompileAndLinkShaderFiles() // they are all getting linked together.) glslang::TWorkItem* workItem; while (Worklist.remove(workItem)) { - ShaderCompUnit compUnit = { + ShaderCompUnit compUnit( FindLanguage(workItem->name), workItem->name, ReadFileData(workItem->name.c_str()) - }; + ); if (! compUnit.text) { usage(); From 033d3ef22ce3b53545098a1904db580d61d41367 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:28:20 +0200 Subject: [PATCH 197/217] Change enum class to plain enum --- SPIRV/SpvBuilder.cpp | 2 +- SPIRV/hex_float.h | 25 ++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index c19f3683..4703edc3 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -797,7 +797,7 @@ Id Builder::makeFloat16Constant(float f16, bool specConstant) spvutils::HexFloat> fVal(f16); spvutils::HexFloat> f16Val(0); - fVal.castTo(f16Val, spvutils::round_direction::kToZero); + fVal.castTo(f16Val, spvutils::kRoundToZero); unsigned value = f16Val.value().getAsFloat().get_value(); diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index ac7e0027..ea403a77 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -226,12 +226,11 @@ struct HexFloatTraits> { static const uint_type exponent_bias = 15; }; -enum class round_direction { - kToZero, - kToNearestEven, - kToPositiveInfinity, - kToNegativeInfinity, - max = kToNegativeInfinity +enum round_direction { + kRoundToZero, + kRoundToNearestEven, + kRoundToPositiveInfinity, + kRoundToNegativeInfinity }; // Template class that houses a floating pointer number. @@ -520,15 +519,15 @@ class HexFloat { // We actually have to narrow the significand here, so we have to follow the // rounding rules. switch (dir) { - case round_direction::kToZero: + case kRoundToZero: break; - case round_direction::kToPositiveInfinity: + case kRoundToPositiveInfinity: round_away_from_zero = !isNegative(); break; - case round_direction::kToNegativeInfinity: + case kRoundToNegativeInfinity: round_away_from_zero = isNegative(); break; - case round_direction::kToNearestEven: + case kRoundToNearestEven: // Have to round down, round bit is 0 if ((first_rounded_bit & significand) == 0) { break; @@ -623,8 +622,8 @@ class HexFloat { } bool round_underflow_up = - isNegative() ? round_dir == round_direction::kToNegativeInfinity - : round_dir == round_direction::kToPositiveInfinity; + isNegative() ? round_dir == kRoundToNegativeInfinity + : round_dir == kRoundToPositiveInfinity; using other_int_type = typename other_T::int_type; // setFromSignUnbiasedExponentAndNormalizedSignificand will // zero out any underflowing value (but retain the sign). @@ -812,7 +811,7 @@ ParseNormalFloat, HexFloatTraits>>( // Then convert to 16-bit float, saturating at infinities, and // rounding toward zero. - float_val.castTo(value, round_direction::kToZero); + float_val.castTo(value, kRoundToZero); // Overflow on 16-bit behaves the same as for 32- and 64-bit: set the // fail bit and set the lowest or highest value. From 1a65fc269c4b50f01400e64140b96377d6b11d95 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:28:54 +0200 Subject: [PATCH 198/217] Add std::isnan and std::isinf wrappers for VS2010 that doesn't have them --- SPIRV/hex_float.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index ea403a77..24a26079 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -23,6 +23,19 @@ #include #include +#if defined(_MSC_VER) && _MSC_VER < 1700 +namespace std { +bool isnan(double f) +{ + return ::_isnan(f) != 0; +} +bool isinf(double f) +{ + return ::_finite(f) == 0; +} +} +#endif + #include "bitutils.h" namespace spvutils { From a227d27227e003007fc67b40e9f3c17598dc2846 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:30:27 +0200 Subject: [PATCH 199/217] Explicitly implement default constructors --- SPIRV/hex_float.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index 24a26079..3849eeff 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -43,7 +43,7 @@ namespace spvutils { class Float16 { public: Float16(uint16_t v) : val(v) {} - Float16() = default; + Float16() {} static bool isNan(const Float16& val) { return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) != 0); } @@ -118,7 +118,7 @@ class FloatProxy { // Since this is to act similar to the normal floats, // do not initialize the data by default. - FloatProxy() = default; + FloatProxy() {} // Intentionally non-explicit. This is a proxy type so // implicit conversions allow us to use it more transparently. From 7cac9e7245c6ce5cdc36f7a9473b994d239a2094 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:31:15 +0200 Subject: [PATCH 200/217] Change "using x = y;" to "typedef y x;" statements --- SPIRV/hex_float.h | 60 +++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index 3849eeff..4a26ad8c 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -69,12 +69,12 @@ class Float16 { // a value is Nan. template struct FloatProxyTraits { - using uint_type = void; + typedef void uint_type; }; template <> struct FloatProxyTraits { - using uint_type = uint32_t; + typedef uint32_t uint_type; static bool isNan(float f) { return std::isnan(f); } // Returns true if the given value is any kind of infinity. static bool isInfinity(float f) { return std::isinf(f); } @@ -86,7 +86,7 @@ struct FloatProxyTraits { template <> struct FloatProxyTraits { - using uint_type = uint64_t; + typedef uint64_t uint_type; static bool isNan(double f) { return std::isnan(f); } // Returns true if the given value is any kind of infinity. static bool isInfinity(double f) { return std::isinf(f); } @@ -98,7 +98,7 @@ struct FloatProxyTraits { template <> struct FloatProxyTraits { - using uint_type = uint16_t; + typedef uint16_t uint_type; static bool isNan(Float16 f) { return Float16::isNan(f); } // Returns true if the given value is any kind of infinity. static bool isInfinity(Float16 f) { return Float16::isInfinity(f); } @@ -114,7 +114,7 @@ struct FloatProxyTraits { template class FloatProxy { public: - using uint_type = typename FloatProxyTraits::uint_type; + typedef typename FloatProxyTraits::uint_type uint_type; // Since this is to act similar to the normal floats, // do not initialize the data by default. @@ -177,13 +177,13 @@ std::istream& operator>>(std::istream& is, FloatProxy& value) { template struct HexFloatTraits { // Integer type that can store this hex-float. - using uint_type = void; + typedef void uint_type; // Signed integer type that can store this hex-float. - using int_type = void; + typedef void int_type; // The numerical type that this HexFloat represents. - using underlying_type = void; + typedef void underlying_type; // The type needed to construct the underlying type. - using native_type = void; + typedef void native_type; // The number of bits that are actually relevant in the uint_type. // This allows us to deal with, for example, 24-bit values in a 32-bit // integer. @@ -201,10 +201,10 @@ struct HexFloatTraits { // 1 sign bit, 8 exponent bits, 23 fractional bits. template <> struct HexFloatTraits> { - using uint_type = uint32_t; - using int_type = int32_t; - using underlying_type = FloatProxy; - using native_type = float; + typedef uint32_t uint_type; + typedef int32_t int_type; + typedef FloatProxy underlying_type; + typedef float native_type; static const uint_type num_used_bits = 32; static const uint_type num_exponent_bits = 8; static const uint_type num_fraction_bits = 23; @@ -215,10 +215,10 @@ struct HexFloatTraits> { // 1 sign bit, 11 exponent bits, 52 fractional bits. template <> struct HexFloatTraits> { - using uint_type = uint64_t; - using int_type = int64_t; - using underlying_type = FloatProxy; - using native_type = double; + typedef uint64_t uint_type; + typedef int64_t int_type; + typedef FloatProxy underlying_type; + typedef double native_type; static const uint_type num_used_bits = 64; static const uint_type num_exponent_bits = 11; static const uint_type num_fraction_bits = 52; @@ -229,10 +229,10 @@ struct HexFloatTraits> { // 1 sign bit, 5 exponent bits, 10 fractional bits. template <> struct HexFloatTraits> { - using uint_type = uint16_t; - using int_type = int16_t; - using underlying_type = uint16_t; - using native_type = uint16_t; + typedef uint16_t uint_type; + typedef int16_t int_type; + typedef uint16_t underlying_type; + typedef uint16_t native_type; static const uint_type num_used_bits = 16; static const uint_type num_exponent_bits = 5; static const uint_type num_fraction_bits = 10; @@ -252,10 +252,10 @@ enum round_direction { template > class HexFloat { public: - using uint_type = typename Traits::uint_type; - using int_type = typename Traits::int_type; - using underlying_type = typename Traits::underlying_type; - using native_type = typename Traits::native_type; + typedef typename Traits::uint_type uint_type; + typedef typename Traits::int_type int_type; + typedef typename Traits::underlying_type underlying_type; + typedef typename Traits::native_type native_type; explicit HexFloat(T f) : value_(f) {} @@ -491,7 +491,7 @@ class HexFloat { template typename other_T::uint_type getRoundedNormalizedSignificand( round_direction dir, bool* carry_bit) { - using other_uint_type = typename other_T::uint_type; + typedef typename other_T::uint_type other_uint_type; static const int_type num_throwaway_bits = static_cast(num_fraction_bits) - static_cast(other_T::num_fraction_bits); @@ -637,7 +637,7 @@ class HexFloat { bool round_underflow_up = isNegative() ? round_dir == kRoundToNegativeInfinity : round_dir == kRoundToPositiveInfinity; - using other_int_type = typename other_T::int_type; + typedef typename other_T::int_type other_int_type; // setFromSignUnbiasedExponentAndNormalizedSignificand will // zero out any underflowing value (but retain the sign). other.setFromSignUnbiasedExponentAndNormalizedSignificand( @@ -676,9 +676,9 @@ inline uint8_t get_nibble_from_character(int character) { // Outputs the given HexFloat to the stream. template std::ostream& operator<<(std::ostream& os, const HexFloat& value) { - using HF = HexFloat; - using uint_type = typename HF::uint_type; - using int_type = typename HF::int_type; + typedef HexFloat HF; + typedef typename HF::uint_type uint_type; + typedef typename HF::int_type int_type; static_assert(HF::num_used_bits != 0, "num_used_bits must be non-zero for a valid float"); From cabba60abfc8a6d8275d939e41c0cb59e9afd694 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:32:37 +0200 Subject: [PATCH 201/217] Change {} constructor brackets to () --- SPIRV/hex_float.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index 4a26ad8c..a051b2f5 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -757,7 +757,7 @@ inline bool RejectParseDueToLeadingSign(std::istream& is, bool negate_value, if (next_char == '-' || next_char == '+') { // Fail the parse. Emulate standard behaviour by setting the value to // the zero value, and set the fail bit on the stream. - value = HexFloat(typename HexFloat::uint_type{0}); + value = HexFloat(typename HexFloat::uint_type(0)); is.setstate(std::ios_base::failbit); return true; } @@ -789,7 +789,7 @@ inline std::istream& ParseNormalFloat(std::istream& is, bool negate_value, value.set_value(val); // In the failure case, map -0.0 to 0.0. if (is.fail() && value.getUnsignedBits() == 0u) { - value = HexFloat(typename HexFloat::uint_type{0}); + value = HexFloat(typename HexFloat::uint_type(0)); } if (val.isInfinity()) { // Fail the parse. Emulate standard behaviour by setting the value to From 021dbb4cd41d66ec1c36f35139728e4f84b64333 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 19:39:24 +0200 Subject: [PATCH 202/217] Change negatable_left_shift and negatable_right_shift to inline funcs * This avoids an internal compile error on VS2010 possibly related to std::enable_if use. --- SPIRV/hex_float.h | 52 +++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h index a051b2f5..31b9f9ed 100644 --- a/SPIRV/hex_float.h +++ b/SPIRV/hex_float.h @@ -456,33 +456,23 @@ class HexFloat { // constant_number < 0? 0: constant_number // These convert the negative left-shifts into right shifts. - template - struct negatable_left_shift { - static uint_type val(uint_type val) { - return static_cast(val >> -N); - } - }; + template + uint_type negatable_left_shift(int_type N, uint_type val) + { + if(N >= 0) + return val << N; - template - struct negatable_left_shift= 0>::type> { - static uint_type val(uint_type val) { - return static_cast(val << N); - } - }; + return val >> -N; + } - template - struct negatable_right_shift { - static uint_type val(uint_type val) { - return static_cast(val << -N); - } - }; + template + uint_type negatable_right_shift(int_type N, uint_type val) + { + if(N >= 0) + return val >> N; - template - struct negatable_right_shift= 0>::type> { - static uint_type val(uint_type val) { - return static_cast(val >> N); - } - }; + return val << -N; + } // Returns the significand, rounded to fit in a significand in // other_T. This is shifted so that the most significant @@ -499,11 +489,11 @@ class HexFloat { static const uint_type last_significant_bit = (num_throwaway_bits < 0) ? 0 - : negatable_left_shift::val(1u); + : negatable_left_shift(num_throwaway_bits, 1u); static const uint_type first_rounded_bit = (num_throwaway_bits < 1) ? 0 - : negatable_left_shift::val(1u); + : negatable_left_shift(num_throwaway_bits - 1, 1u); static const uint_type throwaway_mask_bits = num_throwaway_bits > 0 ? num_throwaway_bits : 0; @@ -525,7 +515,7 @@ class HexFloat { // do. if ((significand & throwaway_mask) == 0) { return static_cast( - negatable_right_shift::val(significand)); + negatable_right_shift(num_throwaway_bits, significand)); } bool round_away_from_zero = false; @@ -562,11 +552,11 @@ class HexFloat { if (round_away_from_zero) { return static_cast( - negatable_right_shift::val(incrementSignificand( + negatable_right_shift(num_throwaway_bits, incrementSignificand( significand, last_significant_bit, carry_bit))); } else { return static_cast( - negatable_right_shift::val(significand)); + negatable_right_shift(num_throwaway_bits, significand)); } } @@ -620,9 +610,9 @@ class HexFloat { if (is_nan) { typename other_T::uint_type shifted_significand; shifted_significand = static_cast( - negatable_left_shift< + negatable_left_shift( static_cast(other_T::num_fraction_bits) - - static_cast(num_fraction_bits)>::val(significand)); + static_cast(num_fraction_bits), significand)); // We are some sort of Nan. We try to keep the bit-pattern of the Nan // as close as possible. If we had to shift off bits so we are 0, then we From 486d9e44e055c442770dc536a4029bd7e1360dc4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 13 Oct 2016 20:05:13 +0200 Subject: [PATCH 203/217] Update HexFloat tests to use non-enum class enum values --- gtests/HexFloat.cpp | 149 ++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 75 deletions(-) diff --git a/gtests/HexFloat.cpp b/gtests/HexFloat.cpp index 248513c4..ddbee1f4 100644 --- a/gtests/HexFloat.cpp +++ b/gtests/HexFloat.cpp @@ -690,10 +690,10 @@ TEST(HexFloatOperationTests, NonRounding) { bool carry_bit = false; spvutils::round_direction rounding[] = { - spvutils::round_direction::kToZero, - spvutils::round_direction::kToNearestEven, - spvutils::round_direction::kToPositiveInfinity, - spvutils::round_direction::kToNegativeInfinity}; + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; // Everything fits, so this should be straight-forward for (spvutils::round_direction round : rounding) { @@ -725,7 +725,6 @@ TEST(HexFloatOperationTests, NonRounding) { } } -using RD = spvutils::round_direction; struct RoundSignificandCase { float source_float; std::pair expected_results; @@ -751,49 +750,49 @@ TEST_P(HexFloatRoundTest, RoundDownToFP16) { INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest, ::testing::ValuesIn(std::vector( { - {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToZero}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNearestEven}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToPositiveInfinity}, - {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNearestEven}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToZero}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToPositiveInfinity}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToNearestEven}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToPositiveInfinity}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity}, - {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToZero}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, // Carries - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToZero}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToPositiveInfinity}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToNegativeInfinity}, - {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToNearestEven}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven}, // Cases where original number was denorm. Note: this should have no effect // the number is pre-normalized. - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), RD::kToZero}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity}, - {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, })),); // clang-format on @@ -810,10 +809,10 @@ TEST_P(HexFloatRoundUpSignificandTest, Widening) { bool carry_bit = false; spvutils::round_direction rounding[] = { - spvutils::round_direction::kToZero, - spvutils::round_direction::kToNearestEven, - spvutils::round_direction::kToPositiveInfinity, - spvutils::round_direction::kToNegativeInfinity}; + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { @@ -852,10 +851,10 @@ std::string get_round_text(spvutils::round_direction direction) { return #round_direction switch (direction) { - CASE(spvutils::round_direction::kToZero); - CASE(spvutils::round_direction::kToPositiveInfinity); - CASE(spvutils::round_direction::kToNegativeInfinity); - CASE(spvutils::round_direction::kToNearestEven); + CASE(spvutils::kRoundToZero); + CASE(spvutils::kRoundToPositiveInfinity); + CASE(spvutils::kRoundToNegativeInfinity); + CASE(spvutils::kRoundToNearestEven); } #undef CASE return ""; @@ -884,35 +883,35 @@ INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatFP32To16Tests, ::testing::ValuesIn(std::vector( { // Exactly representable as half. - {0.f, 0x0, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {-0.f, 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {1.0f, 0x3C00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {-1.0f, 0xBC00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, - {float_fractions({0, 1, 10}) , 0x3E01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {-float_fractions({0, 1, 10}) , 0xBE01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Underflow - {static_cast(ldexp(1.0f, -25)), 0x0, {RD::kToZero, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(ldexp(1.0f, -25)), 0x1, {RD::kToPositiveInfinity}}, - {static_cast(-ldexp(1.0f, -25)), 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNearestEven}}, - {static_cast(-ldexp(1.0f, -25)), 0x8001, {RD::kToNegativeInfinity}}, - {static_cast(ldexp(1.0f, -24)), 0x1, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}}, + {static_cast(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}}, + {static_cast(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Overflow - {static_cast(ldexp(1.0f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(ldexp(1.0f, 18)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(ldexp(1.3f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(-ldexp(1.0f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(-ldexp(1.0f, 18)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {static_cast(-ldexp(1.3f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {static_cast(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Transfer of Infinities - {std::numeric_limits::infinity(), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, - {-std::numeric_limits::infinity(), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}}, + {std::numeric_limits::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-std::numeric_limits::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Nans are below because we cannot test for equality. })),); @@ -929,10 +928,10 @@ TEST_P(HexFloatFP16To32Tests, WideningCasts) { HF16 f(GetParam().source_half); spvutils::round_direction rounding[] = { - spvutils::round_direction::kToZero, - spvutils::round_direction::kToNearestEven, - spvutils::round_direction::kToPositiveInfinity, - spvutils::round_direction::kToNegativeInfinity}; + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { @@ -972,10 +971,10 @@ TEST(HexFloatOperationTests, NanTests) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; spvutils::round_direction rounding[] = { - spvutils::round_direction::kToZero, - spvutils::round_direction::kToNearestEven, - spvutils::round_direction::kToPositiveInfinity, - spvutils::round_direction::kToNegativeInfinity}; + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { From 7b211a370b69676db64cca7be9391281f928b4d6 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 13 Oct 2016 12:26:18 -0600 Subject: [PATCH 204/217] HLSL: allow multi-dimensional arrays All the underpinnings are there; this just parses multiple array dimensions and passes them through to the existing mechanisms. Also, minor comment fixes, and add a new test for multi-dim arrays. --- Test/baseResults/hlsl.array.multidim.frag.out | 210 ++++++++++++++++++ Test/hlsl.array.implicit-size.frag | 8 +- Test/hlsl.array.multidim.frag | 20 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 47 ++-- 5 files changed, 261 insertions(+), 25 deletions(-) create mode 100644 Test/baseResults/hlsl.array.multidim.frag.out create mode 100644 Test/hlsl.array.multidim.frag diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out new file mode 100644 index 00000000..a2df1a8d --- /dev/null +++ b/Test/baseResults/hlsl.array.multidim.frag.out @@ -0,0 +1,210 @@ +hlsl.array.multidim.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 14 "float4_array_1" + Name 23 "$Global" + MemberName 23($Global) 0 "float_array" + Name 25 "" + Name 36 "float4_array_2" + Name 41 "PS_OUTPUT" + MemberName 41(PS_OUTPUT) 0 "Color" + Name 43 "psout" + Name 48 "Color" + Decorate 18 ArrayStride 16 + Decorate 20 ArrayStride 48 + Decorate 22 ArrayStride 192 + MemberDecorate 23($Global) 0 Offset 0 + Decorate 23($Global) Block + Decorate 25 DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: 8(int) Constant 2 + 12: TypeArray 10 11 + 13: TypePointer Function 12 + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: 15(int) Constant 2 + 18: TypeArray 6(float) 9 + 19: 8(int) Constant 4 + 20: TypeArray 18 19 + 21: 8(int) Constant 5 + 22: TypeArray 20 21 + 23($Global): TypeStruct 22 + 24: TypePointer Uniform 23($Global) + 25: 24(ptr) Variable Uniform + 26: 15(int) Constant 0 + 27: 15(int) Constant 3 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 7(fvec4) + 34: TypeArray 10 21 + 35: TypePointer Function 34 + 37: TypePointer Function 10 + 41(PS_OUTPUT): TypeStruct 7(fvec4) + 42: TypePointer Function 41(PS_OUTPUT) + 47: TypePointer Output 7(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label +14(float4_array_1): 13(ptr) Variable Function +36(float4_array_2): 35(ptr) Variable Function + 43(psout): 42(ptr) Variable Function + 29: 28(ptr) AccessChain 25 26 17 27 16 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 33: 32(ptr) AccessChain 14(float4_array_1) 16 17 + Store 33 31 + 38: 37(ptr) AccessChain 14(float4_array_1) 26 + 39: 10 Load 38 + 40: 37(ptr) AccessChain 36(float4_array_2) 16 + Store 40 39 + 44: 32(ptr) AccessChain 14(float4_array_1) 16 17 + 45: 7(fvec4) Load 44 + 46: 32(ptr) AccessChain 43(psout) 26 + Store 46 45 + 49: 32(ptr) AccessChain 43(psout) 26 + 50: 7(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/Test/hlsl.array.implicit-size.frag b/Test/hlsl.array.implicit-size.frag index 29e2c1ba..78a9283d 100644 --- a/Test/hlsl.array.implicit-size.frag +++ b/Test/hlsl.array.implicit-size.frag @@ -1,11 +1,11 @@ -// implicit sized array +// array size from initializer static float g_array [ ] = { 1, 2, 3, 4, 5 }; -// Unused implicit sized array +// Unused: array size from initializer static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; -// Test implicit size arrayed structs +// Test initializer sizing for arrayed structs static struct mystruct { int i; float f; @@ -24,7 +24,7 @@ struct PS_OUTPUT { float4 color : SV_Target0; }; void main(out PS_OUTPUT ps_output) { - // implicit sized local array + // local array sized from initializers float l_array[] = { 1, 2, 3 }; ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; diff --git a/Test/hlsl.array.multidim.frag b/Test/hlsl.array.multidim.frag new file mode 100644 index 00000000..524a8896 --- /dev/null +++ b/Test/hlsl.array.multidim.frag @@ -0,0 +1,20 @@ + +float float_array[5][4][3]; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float4 float4_array_1[2][3]; + float4 float4_array_2[5][3]; + + float4_array_1[1][2] = float_array[2][3][1]; + float4_array_2[1] = float4_array_1[0]; + + PS_OUTPUT psout; + psout.Color = float4_array_1[1][2]; + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 7b642171..1e45fda2 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -83,6 +83,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.amend.frag", "f1"}, {"hlsl.array.frag", "PixelShaderFunction"}, {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, + {"hlsl.array.multidim.frag", "main"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 626d2991..a53b9f4e 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -2676,35 +2676,40 @@ bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) } // array_specifier -// : LEFT_BRACKET integer_expression RGHT_BRACKET post_decls // optional -// : LEFT_BRACKET RGHT_BRACKET post_decls // optional +// : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional +// : LEFT_BRACKET RGHT_BRACKET // optional // void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) { arraySizes = nullptr; - if (! acceptTokenClass(EHTokLeftBracket)) + // Early-out if there aren't any array dimensions + if (!peekTokenClass(EHTokLeftBracket)) return; - TSourceLoc loc = token.loc; - TIntermTyped* sizeExpr = nullptr; - - // Array sizing expression is optional. If ommitted, array is implicitly sized. - const bool hasArraySize = acceptAssignmentExpression(sizeExpr); - - if (! acceptTokenClass(EHTokRightBracket)) { - expected("]"); - return; - } - + // If we get here, we have at least one array dimension. This will track the sizes we find. arraySizes = new TArraySizes; - - if (hasArraySize) { - TArraySize arraySize; - parseContext.arraySizeCheck(loc, sizeExpr, arraySize); - arraySizes->addInnerSize(arraySize); - } else { - arraySizes->addInnerSize(); // implicitly sized + + // Collect each array dimension. + while (acceptTokenClass(EHTokLeftBracket)) { + TSourceLoc loc = token.loc; + TIntermTyped* sizeExpr = nullptr; + + // Array sizing expression is optional. If ommitted, array will be later sized by initializer list. + const bool hasArraySize = acceptAssignmentExpression(sizeExpr); + + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + + if (hasArraySize) { + TArraySize arraySize; + parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + arraySizes->addInnerSize(arraySize); + } else { + arraySizes->addInnerSize(0); // sized by initializers. + } } } From 17ff343bf4ff05710b1e900023dfcc6cb33b00e8 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Fri, 14 Oct 2016 17:41:45 +0800 Subject: [PATCH 205/217] SPV: Add missing extension declarations for certain AMD extensions. --- SPIRV/GlslangToSpv.cpp | 45 +++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 245715fc..49bb0a17 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -114,6 +114,7 @@ public: void dumpSpv(std::vector& out); protected: + spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier); spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier); spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration); spv::ImageFormat TranslateImageFormat(const glslang::TType& type); @@ -381,7 +382,7 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T // Translate glslang type to SPIR-V interpolation decorations. // Returns spv::DecorationMax when no decoration // should be applied. -spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) +spv::Decoration TGlslangToSpvTraverser::TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) { if (qualifier.smooth) // Smooth decoration doesn't exist in SPIR-V 1.0 @@ -391,8 +392,10 @@ spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qual else if (qualifier.flat) return spv::DecorationFlat; #ifdef AMD_EXTENSIONS - else if (qualifier.explicitInterp) + else if (qualifier.explicitInterp) { + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); return spv::DecorationExplicitInterpAMD; + } #endif else return spv::DecorationMax; @@ -572,13 +575,33 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI return spv::BuiltInSubgroupLtMaskKHR; #ifdef AMD_EXTENSIONS - case glslang::EbvBaryCoordNoPersp: return spv::BuiltInBaryCoordNoPerspAMD; - case glslang::EbvBaryCoordNoPerspCentroid: return spv::BuiltInBaryCoordNoPerspCentroidAMD; - case glslang::EbvBaryCoordNoPerspSample: return spv::BuiltInBaryCoordNoPerspSampleAMD; - case glslang::EbvBaryCoordSmooth: return spv::BuiltInBaryCoordSmoothAMD; - case glslang::EbvBaryCoordSmoothCentroid: return spv::BuiltInBaryCoordSmoothCentroidAMD; - case glslang::EbvBaryCoordSmoothSample: return spv::BuiltInBaryCoordSmoothSampleAMD; - case glslang::EbvBaryCoordPullModel: return spv::BuiltInBaryCoordPullModelAMD; + case glslang::EbvBaryCoordNoPersp: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspAMD; + + case glslang::EbvBaryCoordNoPerspCentroid: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspCentroidAMD; + + case glslang::EbvBaryCoordNoPerspSample: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspSampleAMD; + + case glslang::EbvBaryCoordSmooth: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothAMD; + + case glslang::EbvBaryCoordSmoothCentroid: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothCentroidAMD; + + case glslang::EbvBaryCoordSmoothSample: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothSampleAMD; + + case glslang::EbvBaryCoordPullModel: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordPullModelAMD; #endif default: return spv::BuiltInMax; } @@ -4110,6 +4133,10 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op builder.addCapability(spv::CapabilitySubgroupBallotKHR); } else { builder.addCapability(spv::CapabilityGroups); + if (op == glslang::EOpMinInvocationsNonUniform || + op == glslang::EOpMaxInvocationsNonUniform || + op == glslang::EOpAddInvocationsNonUniform) + builder.addExtension(spv::E_SPV_AMD_shader_ballot); spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS From 4f2da27aec3e862b7d761dc66ea72bbeac980de1 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Mon, 10 Oct 2016 15:24:57 -0600 Subject: [PATCH 206/217] HLSL: phase 3a: Add sub-vec4 rwtexture formats (qualifier.layoutFormat) This PR sets the TQualifier layoutFormat according to the HLSL image type. For instance: RWTexture1D g_tTex1df2; becomes ElfRg32f. Similar on Buffers, e.g, Buffer mybuffer; The return type for image and buffer loads is now taken from the storage format. Also, the qualifier for the return type is now (properly) a temp, not a global. --- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 48 +- .../baseResults/hlsl.load.array.dx10.frag.out | 24 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 36 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 36 +- .../hlsl.load.buffer.dx10.frag.out | 46 +- .../hlsl.load.buffer.float.dx10.frag.out | 280 ++ .../hlsl.load.offset.dx10.frag.out | 36 +- .../hlsl.load.offsetarray.dx10.frag.out | 24 +- .../hlsl.load.rwbuffer.dx10.frag.out | 12 +- .../hlsl.load.rwtexture.array.dx10.frag.out | 24 +- .../hlsl.load.rwtexture.dx10.frag.out | 36 +- Test/baseResults/hlsl.multiEntry.vert.out | 14 +- .../hlsl.rw.scalar.bracket.frag.out | 2560 ++++++++++++++++ .../baseResults/hlsl.rw.vec2.bracket.frag.out | 2613 +++++++++++++++++ Test/hlsl.load.buffer.float.dx10.frag | 38 + Test/hlsl.rw.scalar.bracket.frag | 140 + Test/hlsl.rw.vec2.bracket.frag | 140 + glslang/Include/Types.h | 47 + gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslGrammar.cpp | 28 +- hlsl/hlslParseHelper.cpp | 38 +- hlsl/hlslParseHelper.h | 2 + 22 files changed, 6033 insertions(+), 192 deletions(-) create mode 100644 Test/baseResults/hlsl.load.buffer.float.dx10.frag.out create mode 100644 Test/baseResults/hlsl.rw.scalar.bracket.frag.out create mode 100644 Test/baseResults/hlsl.rw.vec2.bracket.frag.out create mode 100644 Test/hlsl.load.buffer.float.dx10.frag create mode 100644 Test/hlsl.rw.scalar.bracket.frag create mode 100644 Test/hlsl.rw.vec2.bracket.frag diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 77f4fe84..9c1b4ad9 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -5,7 +5,7 @@ gl_FragCoord origin is upper left 0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence -0:32 textureFetch (global 4-component vector of float) +0:32 textureFetch (temp 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) 0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -13,7 +13,7 @@ gl_FragCoord origin is upper left 0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) -0:33 textureFetch (global 4-component vector of int) +0:33 textureFetch (temp 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) 0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) -0:34 textureFetch (global 4-component vector of uint) +0:34 textureFetch (temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) 0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) -0:37 textureFetchOffset (global 4-component vector of float) +0:37 textureFetchOffset (temp 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) 0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:37 Constant: 0:37 5 (const uint) -0:38 textureFetchOffset (global 4-component vector of int) +0:38 textureFetchOffset (temp 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) 0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:38 Constant: 0:38 5 (const uint) -0:39 textureFetchOffset (global 4-component vector of uint) +0:39 textureFetchOffset (temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) 0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:39 Constant: 0:39 5 (const uint) -0:42 textureFetch (global 4-component vector of float) +0:42 textureFetch (temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) -0:43 textureFetch (global 4-component vector of int) +0:43 textureFetch (temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -81,7 +81,7 @@ gl_FragCoord origin is upper left 0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) -0:44 textureFetch (global 4-component vector of uint) +0:44 textureFetch (temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) -0:47 textureFetchOffset (global 4-component vector of float) +0:47 textureFetchOffset (temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:47 Constant: 0:47 5 (const uint) -0:48 textureFetchOffset (global 4-component vector of int) +0:48 textureFetchOffset (temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:48 Constant: 0:48 5 (const uint) -0:49 textureFetchOffset (global 4-component vector of uint) +0:49 textureFetchOffset (temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -179,7 +179,7 @@ gl_FragCoord origin is upper left 0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence -0:32 textureFetch (global 4-component vector of float) +0:32 textureFetch (temp 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) 0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -187,7 +187,7 @@ gl_FragCoord origin is upper left 0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) -0:33 textureFetch (global 4-component vector of int) +0:33 textureFetch (temp 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) 0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) -0:34 textureFetch (global 4-component vector of uint) +0:34 textureFetch (temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) 0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) -0:37 textureFetchOffset (global 4-component vector of float) +0:37 textureFetchOffset (temp 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) 0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:37 Constant: 0:37 5 (const uint) -0:38 textureFetchOffset (global 4-component vector of int) +0:38 textureFetchOffset (temp 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) 0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:38 Constant: 0:38 5 (const uint) -0:39 textureFetchOffset (global 4-component vector of uint) +0:39 textureFetchOffset (temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) 0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:39 Constant: 0:39 5 (const uint) -0:42 textureFetch (global 4-component vector of float) +0:42 textureFetch (temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -247,7 +247,7 @@ gl_FragCoord origin is upper left 0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) -0:43 textureFetch (global 4-component vector of int) +0:43 textureFetch (temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) -0:44 textureFetch (global 4-component vector of uint) +0:44 textureFetch (temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -263,7 +263,7 @@ gl_FragCoord origin is upper left 0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) -0:47 textureFetchOffset (global 4-component vector of float) +0:47 textureFetchOffset (temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -275,7 +275,7 @@ gl_FragCoord origin is upper left 0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:47 Constant: 0:47 5 (const uint) -0:48 textureFetchOffset (global 4-component vector of int) +0:48 textureFetchOffset (temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:48 Constant: 0:48 5 (const uint) -0:49 textureFetchOffset (global 4-component vector of uint) +0:49 textureFetchOffset (temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) 0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 57e479a0..ed2951f7 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -5,7 +5,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) 0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) 0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -43,7 +43,7 @@ gl_FragCoord origin is upper left 0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) 0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) 0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) 0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) 0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -213,7 +213,7 @@ gl_FragCoord origin is upper left 0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) 0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -251,7 +251,7 @@ gl_FragCoord origin is upper left 0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) 0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) 0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -293,7 +293,7 @@ gl_FragCoord origin is upper left 0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) 0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 90f7e496..3a4b3fca 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -5,7 +5,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -39,7 +39,7 @@ gl_FragCoord origin is upper left 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) 0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -75,7 +75,7 @@ gl_FragCoord origin is upper left 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) 0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -113,7 +113,7 @@ gl_FragCoord origin is upper left 0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:62 textureFetch (global 4-component vector of float) +0:62 textureFetch (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of int) +0:63 textureFetch (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -155,7 +155,7 @@ gl_FragCoord origin is upper left 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:64 textureFetch (global 4-component vector of uint) +0:64 textureFetch (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) 0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -262,7 +262,7 @@ gl_FragCoord origin is upper left 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -279,7 +279,7 @@ gl_FragCoord origin is upper left 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) 0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -296,7 +296,7 @@ gl_FragCoord origin is upper left 0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -315,7 +315,7 @@ gl_FragCoord origin is upper left 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) 0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -353,7 +353,7 @@ gl_FragCoord origin is upper left 0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:62 textureFetch (global 4-component vector of float) +0:62 textureFetch (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -374,7 +374,7 @@ gl_FragCoord origin is upper left 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of int) +0:63 textureFetch (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -395,7 +395,7 @@ gl_FragCoord origin is upper left 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:64 textureFetch (global 4-component vector of uint) +0:64 textureFetch (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) 0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 4649f291..9495c602 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -4,7 +4,7 @@ Shader version: 450 0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (global 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) 0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -21,7 +21,7 @@ Shader version: 450 0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) -0:52 textureFetch (global 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -38,7 +38,7 @@ Shader version: 450 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -55,7 +55,7 @@ Shader version: 450 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:56 textureFetch (global 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) 0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -74,7 +74,7 @@ Shader version: 450 0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) -0:57 textureFetch (global 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -93,7 +93,7 @@ Shader version: 450 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -112,7 +112,7 @@ Shader version: 450 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:61 textureFetch (global 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) 0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -133,7 +133,7 @@ Shader version: 450 0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) -0:62 textureFetch (global 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -154,7 +154,7 @@ Shader version: 450 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -229,7 +229,7 @@ Shader version: 450 0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (global 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) 0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -246,7 +246,7 @@ Shader version: 450 0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) -0:52 textureFetch (global 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -263,7 +263,7 @@ Shader version: 450 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -280,7 +280,7 @@ Shader version: 450 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:56 textureFetch (global 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) 0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -299,7 +299,7 @@ Shader version: 450 0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) -0:57 textureFetch (global 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -318,7 +318,7 @@ Shader version: 450 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -337,7 +337,7 @@ Shader version: 450 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:61 textureFetch (global 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) 0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -358,7 +358,7 @@ Shader version: 450 0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) -0:62 textureFetch (global 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -379,7 +379,7 @@ Shader version: 450 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index ded93824..560d8f5d 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -8,8 +8,8 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of float) 0:28 'r00' (temp 4-component vector of float) -0:28 textureFetch (global 4-component vector of float) -0:28 'g_tTexbf4' (uniform samplerBuffer) +0:28 textureFetch (temp 4-component vector of float) +0:28 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) 0:28 c1: direct index for structure (layout(offset=0 ) uniform int) 0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:28 Constant: @@ -17,8 +17,8 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) -0:29 textureFetch (global 4-component vector of int) -0:29 'g_tTexbi4' (uniform isamplerBuffer) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) 0:29 c1: direct index for structure (layout(offset=0 ) uniform int) 0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:29 Constant: @@ -26,8 +26,8 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) -0:30 textureFetch (global 4-component vector of uint) -0:30 'g_tTexbu4' (uniform usamplerBuffer) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) 0:30 c1: direct index for structure (layout(offset=0 ) uniform int) 0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:30 Constant: @@ -65,10 +65,10 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) -0:? 'g_tTexbf4' (uniform samplerBuffer) -0:? 'g_tTexbi4' (uniform isamplerBuffer) -0:? 'g_tTexbu4' (uniform usamplerBuffer) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -86,8 +86,8 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of float) 0:28 'r00' (temp 4-component vector of float) -0:28 textureFetch (global 4-component vector of float) -0:28 'g_tTexbf4' (uniform samplerBuffer) +0:28 textureFetch (temp 4-component vector of float) +0:28 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) 0:28 c1: direct index for structure (layout(offset=0 ) uniform int) 0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:28 Constant: @@ -95,8 +95,8 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) -0:29 textureFetch (global 4-component vector of int) -0:29 'g_tTexbi4' (uniform isamplerBuffer) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) 0:29 c1: direct index for structure (layout(offset=0 ) uniform int) 0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:29 Constant: @@ -104,8 +104,8 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) -0:30 textureFetch (global 4-component vector of uint) -0:30 'g_tTexbu4' (uniform usamplerBuffer) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) 0:30 c1: direct index for structure (layout(offset=0 ) uniform int) 0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:30 Constant: @@ -143,10 +143,10 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) -0:? 'g_tTexbf4' (uniform samplerBuffer) -0:? 'g_tTexbi4' (uniform isamplerBuffer) -0:? 'g_tTexbu4' (uniform usamplerBuffer) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) Buffer sampled format:Unknown + 10: TypeImage 6(float) Buffer sampled format:Rgba32f 11: TypeSampledImage 10 12: TypePointer UniformConstant 11 13(g_tTexbf4): 12(ptr) Variable UniformConstant @@ -221,14 +221,14 @@ gl_FragCoord origin is upper left 22: 15(int) Constant 0 23: TypePointer Uniform 15(int) 28: TypePointer Function 18(ivec4) - 30: TypeImage 15(int) Buffer sampled format:Unknown + 30: TypeImage 15(int) Buffer sampled format:Rgba32i 31: TypeSampledImage 30 32: TypePointer UniformConstant 31 33(g_tTexbi4): 32(ptr) Variable UniformConstant 39: TypeInt 32 0 40: TypeVector 39(int) 4 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) Buffer sampled format:Unknown + 43: TypeImage 39(int) Buffer sampled format:Rgba32ui 44: TypeSampledImage 43 45: TypePointer UniformConstant 44 46(g_tTexbu4): 45(ptr) Variable UniformConstant diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out new file mode 100644 index 00000000..87e96802 --- /dev/null +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -0,0 +1,280 @@ +hlsl.load.buffer.float.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 textureFetch (temp float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 textureFetch (temp int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 textureFetch (temp uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 textureFetch (temp float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 textureFetch (temp int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 textureFetch (temp uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 70 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 61 65 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 12 "g_tTexbfs" + Name 18 "$Global" + MemberName 18($Global) 0 "c1" + MemberName 18($Global) 1 "c2" + MemberName 18($Global) 2 "c3" + MemberName 18($Global) 3 "c4" + MemberName 18($Global) 4 "o1" + MemberName 18($Global) 5 "o2" + MemberName 18($Global) 6 "o3" + MemberName 18($Global) 7 "o4" + Name 20 "" + Name 28 "r01" + Name 32 "g_tTexbis" + Name 40 "r02" + Name 44 "g_tTexbus" + Name 51 "PS_OUTPUT" + MemberName 51(PS_OUTPUT) 0 "Color" + MemberName 51(PS_OUTPUT) 1 "Depth" + Name 53 "psout" + Name 61 "Color" + Name 65 "Depth" + Name 69 "g_tTexbfs_test" + Decorate 12(g_tTexbfs) DescriptorSet 0 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 8 + MemberDecorate 18($Global) 2 Offset 16 + MemberDecorate 18($Global) 3 Offset 32 + MemberDecorate 18($Global) 4 Offset 48 + MemberDecorate 18($Global) 5 Offset 56 + MemberDecorate 18($Global) 6 Offset 64 + MemberDecorate 18($Global) 7 Offset 80 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 32(g_tTexbis) DescriptorSet 0 + Decorate 44(g_tTexbus) DescriptorSet 0 + Decorate 61(Color) Location 0 + Decorate 65(Depth) BuiltIn FragDepth + Decorate 69(g_tTexbfs_test) DescriptorSet 0 + Decorate 69(g_tTexbfs_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) Buffer sampled format:R32f + 10: TypeSampledImage 9 + 11: TypePointer UniformConstant 10 + 12(g_tTexbfs): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16: TypeVector 14(int) 3 + 17: TypeVector 14(int) 4 + 18($Global): TypeStruct 14(int) 15(ivec2) 16(ivec3) 17(ivec4) 14(int) 15(ivec2) 16(ivec3) 17(ivec4) + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: 14(int) Constant 0 + 22: TypePointer Uniform 14(int) + 27: TypePointer Function 14(int) + 29: TypeImage 14(int) Buffer sampled format:R32i + 30: TypeSampledImage 29 + 31: TypePointer UniformConstant 30 + 32(g_tTexbis): 31(ptr) Variable UniformConstant + 38: TypeInt 32 0 + 39: TypePointer Function 38(int) + 41: TypeImage 38(int) Buffer sampled format:R32ui + 42: TypeSampledImage 41 + 43: TypePointer UniformConstant 42 + 44(g_tTexbus): 43(ptr) Variable UniformConstant + 50: TypeVector 6(float) 4 + 51(PS_OUTPUT): TypeStruct 50(fvec4) 6(float) + 52: TypePointer Function 51(PS_OUTPUT) + 54: 6(float) Constant 1065353216 + 55: 50(fvec4) ConstantComposite 54 54 54 54 + 56: TypePointer Function 50(fvec4) + 58: 14(int) Constant 1 + 60: TypePointer Output 50(fvec4) + 61(Color): 60(ptr) Variable Output + 64: TypePointer Output 6(float) + 65(Depth): 64(ptr) Variable Output +69(g_tTexbfs_test): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 28(r01): 27(ptr) Variable Function + 40(r02): 39(ptr) Variable Function + 53(psout): 52(ptr) Variable Function + 13: 10 Load 12(g_tTexbfs) + 23: 22(ptr) AccessChain 20 21 + 24: 14(int) Load 23 + 25: 9 Image 13 + 26: 6(float) ImageFetch 25 24 + Store 8(r00) 26 + 33: 30 Load 32(g_tTexbis) + 34: 22(ptr) AccessChain 20 21 + 35: 14(int) Load 34 + 36: 29 Image 33 + 37: 14(int) ImageFetch 36 35 + Store 28(r01) 37 + 45: 42 Load 44(g_tTexbus) + 46: 22(ptr) AccessChain 20 21 + 47: 14(int) Load 46 + 48: 41 Image 45 + 49: 38(int) ImageFetch 48 47 + Store 40(r02) 49 + 57: 56(ptr) AccessChain 53(psout) 21 + Store 57 55 + 59: 7(ptr) AccessChain 53(psout) 58 + Store 59 54 + 62: 56(ptr) AccessChain 53(psout) 21 + 63: 50(fvec4) Load 62 + Store 61(Color) 63 + 66: 7(ptr) AccessChain 53(psout) 58 + 67: 6(float) Load 66 + Store 65(Depth) 67 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 6eaa6f7d..069e05d0 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -5,7 +5,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) -0:53 textureFetchOffset (global 4-component vector of int) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) -0:54 textureFetchOffset (global 4-component vector of uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) 0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) -0:57 textureFetchOffset (global 4-component vector of float) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) -0:58 textureFetchOffset (global 4-component vector of int) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) -0:59 textureFetchOffset (global 4-component vector of uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) 0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -137,7 +137,7 @@ gl_FragCoord origin is upper left 0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) -0:62 textureFetchOffset (global 4-component vector of float) +0:62 textureFetchOffset (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:62 Constant: 0:62 6 (const uint) -0:63 textureFetchOffset (global 4-component vector of int) +0:63 textureFetchOffset (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -187,7 +187,7 @@ gl_FragCoord origin is upper left 0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:63 Constant: 0:63 6 (const uint) -0:64 textureFetchOffset (global 4-component vector of uint) +0:64 textureFetchOffset (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) 0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -281,7 +281,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) 0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) -0:53 textureFetchOffset (global 4-component vector of int) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) 0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -323,7 +323,7 @@ gl_FragCoord origin is upper left 0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) -0:54 textureFetchOffset (global 4-component vector of uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) 0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) @@ -344,7 +344,7 @@ gl_FragCoord origin is upper left 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) -0:57 textureFetchOffset (global 4-component vector of float) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) 0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -367,7 +367,7 @@ gl_FragCoord origin is upper left 0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) -0:58 textureFetchOffset (global 4-component vector of int) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) 0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -390,7 +390,7 @@ gl_FragCoord origin is upper left 0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) -0:59 textureFetchOffset (global 4-component vector of uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) 0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -413,7 +413,7 @@ gl_FragCoord origin is upper left 0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) -0:62 textureFetchOffset (global 4-component vector of float) +0:62 textureFetchOffset (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) 0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -438,7 +438,7 @@ gl_FragCoord origin is upper left 0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:62 Constant: 0:62 6 (const uint) -0:63 textureFetchOffset (global 4-component vector of int) +0:63 textureFetchOffset (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) 0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -463,7 +463,7 @@ gl_FragCoord origin is upper left 0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:63 Constant: 0:63 6 (const uint) -0:64 textureFetchOffset (global 4-component vector of uint) +0:64 textureFetchOffset (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) 0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index 776cd835..ed89ee8d 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -5,7 +5,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) 0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) -0:53 textureFetchOffset (global 4-component vector of int) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) 0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left 0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) -0:54 textureFetchOffset (global 4-component vector of uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) -0:57 textureFetchOffset (global 4-component vector of float) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) 0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) -0:58 textureFetchOffset (global 4-component vector of int) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) 0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -124,7 +124,7 @@ gl_FragCoord origin is upper left 0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) -0:59 textureFetchOffset (global 4-component vector of uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) 0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) 0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) -0:53 textureFetchOffset (global 4-component vector of int) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) 0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -264,7 +264,7 @@ gl_FragCoord origin is upper left 0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) -0:54 textureFetchOffset (global 4-component vector of uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) -0:57 textureFetchOffset (global 4-component vector of float) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) 0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -312,7 +312,7 @@ gl_FragCoord origin is upper left 0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) -0:58 textureFetchOffset (global 4-component vector of int) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) 0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) -0:59 textureFetchOffset (global 4-component vector of uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) 0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out index 78b48040..7b263727 100644 --- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -5,19 +5,19 @@ gl_FragCoord origin is upper left 0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:22 Function Parameters: 0:? Sequence -0:25 imageLoad (global 4-component vector of float) +0:25 imageLoad (temp 4-component vector of float) 0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:25 c1: direct index for structure (layout(offset=0 ) uniform int) 0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:25 Constant: 0:25 0 (const uint) -0:26 imageLoad (global 4-component vector of uint) +0:26 imageLoad (temp 4-component vector of uint) 0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) 0:26 c1: direct index for structure (layout(offset=0 ) uniform int) 0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:26 Constant: 0:26 0 (const uint) -0:27 imageLoad (global 4-component vector of int) +0:27 imageLoad (temp 4-component vector of int) 0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:27 c1: direct index for structure (layout(offset=0 ) uniform int) 0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -59,19 +59,19 @@ gl_FragCoord origin is upper left 0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:22 Function Parameters: 0:? Sequence -0:25 imageLoad (global 4-component vector of float) +0:25 imageLoad (temp 4-component vector of float) 0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:25 c1: direct index for structure (layout(offset=0 ) uniform int) 0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:25 Constant: 0:25 0 (const uint) -0:26 imageLoad (global 4-component vector of uint) +0:26 imageLoad (temp 4-component vector of uint) 0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) 0:26 c1: direct index for structure (layout(offset=0 ) uniform int) 0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:26 Constant: 0:26 0 (const uint) -0:27 imageLoad (global 4-component vector of int) +0:27 imageLoad (temp 4-component vector of int) 0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:27 c1: direct index for structure (layout(offset=0 ) uniform int) 0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out index 353f769c..8ac94d08 100644 --- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -5,37 +5,37 @@ gl_FragCoord origin is upper left 0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (global 4-component vector of float) +0:44 imageLoad (temp 4-component vector of float) 0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) 0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:44 Constant: 0:44 1 (const uint) -0:45 imageLoad (global 4-component vector of int) +0:45 imageLoad (temp 4-component vector of int) 0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) 0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:45 Constant: 0:45 1 (const uint) -0:46 imageLoad (global 4-component vector of uint) +0:46 imageLoad (temp 4-component vector of uint) 0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) 0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:46 Constant: 0:46 1 (const uint) -0:49 imageLoad (global 4-component vector of float) +0:49 imageLoad (temp 4-component vector of float) 0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:49 Constant: 0:49 2 (const uint) -0:50 imageLoad (global 4-component vector of int) +0:50 imageLoad (temp 4-component vector of int) 0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:50 Constant: 0:50 2 (const uint) -0:51 imageLoad (global 4-component vector of uint) +0:51 imageLoad (temp 4-component vector of uint) 0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) 0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -104,37 +104,37 @@ gl_FragCoord origin is upper left 0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (global 4-component vector of float) +0:44 imageLoad (temp 4-component vector of float) 0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) 0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:44 Constant: 0:44 1 (const uint) -0:45 imageLoad (global 4-component vector of int) +0:45 imageLoad (temp 4-component vector of int) 0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) 0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:45 Constant: 0:45 1 (const uint) -0:46 imageLoad (global 4-component vector of uint) +0:46 imageLoad (temp 4-component vector of uint) 0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) 0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:46 Constant: 0:46 1 (const uint) -0:49 imageLoad (global 4-component vector of float) +0:49 imageLoad (temp 4-component vector of float) 0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:49 Constant: 0:49 2 (const uint) -0:50 imageLoad (global 4-component vector of int) +0:50 imageLoad (temp 4-component vector of int) 0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:50 Constant: 0:50 2 (const uint) -0:51 imageLoad (global 4-component vector of uint) +0:51 imageLoad (temp 4-component vector of uint) 0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) 0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out index 60c54000..ca590157 100644 --- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -5,55 +5,55 @@ gl_FragCoord origin is upper left 0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (global 4-component vector of float) +0:44 imageLoad (temp 4-component vector of float) 0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:44 c1: direct index for structure (layout(offset=0 ) uniform int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:44 Constant: 0:44 0 (const uint) -0:45 imageLoad (global 4-component vector of int) +0:45 imageLoad (temp 4-component vector of int) 0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) 0:45 c1: direct index for structure (layout(offset=0 ) uniform int) 0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:45 Constant: 0:45 0 (const uint) -0:46 imageLoad (global 4-component vector of uint) +0:46 imageLoad (temp 4-component vector of uint) 0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) 0:46 c1: direct index for structure (layout(offset=0 ) uniform int) 0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:46 Constant: 0:46 0 (const uint) -0:49 imageLoad (global 4-component vector of float) +0:49 imageLoad (temp 4-component vector of float) 0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) 0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:49 Constant: 0:49 1 (const uint) -0:50 imageLoad (global 4-component vector of int) +0:50 imageLoad (temp 4-component vector of int) 0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) 0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:50 Constant: 0:50 1 (const uint) -0:51 imageLoad (global 4-component vector of uint) +0:51 imageLoad (temp 4-component vector of uint) 0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) 0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) -0:54 imageLoad (global 4-component vector of float) +0:54 imageLoad (temp 4-component vector of float) 0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) -0:55 imageLoad (global 4-component vector of int) +0:55 imageLoad (temp 4-component vector of int) 0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) 0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:55 Constant: 0:55 2 (const uint) -0:56 imageLoad (global 4-component vector of uint) +0:56 imageLoad (temp 4-component vector of uint) 0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) 0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) @@ -122,55 +122,55 @@ gl_FragCoord origin is upper left 0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:40 Function Parameters: 0:? Sequence -0:44 imageLoad (global 4-component vector of float) +0:44 imageLoad (temp 4-component vector of float) 0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:44 c1: direct index for structure (layout(offset=0 ) uniform int) 0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:44 Constant: 0:44 0 (const uint) -0:45 imageLoad (global 4-component vector of int) +0:45 imageLoad (temp 4-component vector of int) 0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) 0:45 c1: direct index for structure (layout(offset=0 ) uniform int) 0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:45 Constant: 0:45 0 (const uint) -0:46 imageLoad (global 4-component vector of uint) +0:46 imageLoad (temp 4-component vector of uint) 0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) 0:46 c1: direct index for structure (layout(offset=0 ) uniform int) 0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:46 Constant: 0:46 0 (const uint) -0:49 imageLoad (global 4-component vector of float) +0:49 imageLoad (temp 4-component vector of float) 0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) 0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:49 Constant: 0:49 1 (const uint) -0:50 imageLoad (global 4-component vector of int) +0:50 imageLoad (temp 4-component vector of int) 0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) 0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:50 Constant: 0:50 1 (const uint) -0:51 imageLoad (global 4-component vector of uint) +0:51 imageLoad (temp 4-component vector of uint) 0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) 0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) 0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) -0:54 imageLoad (global 4-component vector of float) +0:54 imageLoad (temp 4-component vector of float) 0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) 0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) -0:55 imageLoad (global 4-component vector of int) +0:55 imageLoad (temp 4-component vector of int) 0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) 0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) 0:55 Constant: 0:55 2 (const uint) -0:56 imageLoad (global 4-component vector of uint) +0:56 imageLoad (temp 4-component vector of uint) 0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) 0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) 0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index cec78986..8f8c42ae 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -6,8 +6,8 @@ Shader version: 450 0:4 'Index' (in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 textureFetch (global 4-component vector of float) -0:5 'Position' (uniform samplerBuffer) +0:5 textureFetch (temp 4-component vector of float) +0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) 0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) @@ -21,7 +21,7 @@ Shader version: 450 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (uniform samplerBuffer) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) @@ -36,8 +36,8 @@ Shader version: 450 0:4 'Index' (in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 textureFetch (global 4-component vector of float) -0:5 'Position' (uniform samplerBuffer) +0:5 textureFetch (temp 4-component vector of float) +0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) 0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) @@ -51,7 +51,7 @@ Shader version: 450 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (uniform samplerBuffer) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) @@ -81,7 +81,7 @@ Shader version: 450 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeImage 8(float) Buffer sampled format:Unknown + 14: TypeImage 8(float) Buffer sampled format:Rgba32f 15: TypeSampledImage 14 16: TypePointer UniformConstant 15 17(Position): 16(ptr) Variable UniformConstant diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out new file mode 100644 index 00000000..904c2dab --- /dev/null +++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -0,0 +1,2560 @@ +hlsl.rw.scalar.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 566 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 541 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "Fn1(i1;" + Name 9 "x" + Name 16 "Fn1(u1;" + Name 15 "x" + Name 22 "Fn1(f1;" + Name 21 "x" + Name 26 "Fn2(i1;" + Name 25 "x" + Name 30 "Fn2(u1;" + Name 29 "x" + Name 34 "Fn2(f1;" + Name 33 "x" + Name 37 "SomeValue(" + Name 54 "$Global" + MemberName 54($Global) 0 "c1" + MemberName 54($Global) 1 "c2" + MemberName 54($Global) 2 "c3" + MemberName 54($Global) 3 "c4" + MemberName 54($Global) 4 "o1" + MemberName 54($Global) 5 "o2" + MemberName 54($Global) 6 "o3" + MemberName 54($Global) 7 "o4" + MemberName 54($Global) 8 "uf1" + MemberName 54($Global) 9 "ui1" + MemberName 54($Global) 10 "uu1" + Name 56 "" + Name 65 "g_tTex1df1" + Name 70 "r00" + Name 75 "r01" + Name 78 "g_tTex1di1" + Name 83 "r02" + Name 86 "g_tTex1du1" + Name 91 "r10" + Name 94 "g_tTex2df1" + Name 101 "r11" + Name 104 "g_tTex2di1" + Name 109 "r12" + Name 112 "g_tTex2du1" + Name 117 "r20" + Name 120 "g_tTex3df1" + Name 127 "r21" + Name 130 "g_tTex3di1" + Name 135 "r22" + Name 138 "g_tTex3du1" + Name 143 "lf1" + Name 148 "storeTemp" + Name 158 "storeTemp" + Name 163 "storeTemp" + Name 169 "val1" + Name 170 "coordTemp" + Name 173 "storeTemp" + Name 184 "coordTemp" + Name 187 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 210 "coordTemp" + Name 213 "storeTemp" + Name 222 "coordTemp" + Name 225 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 260 "coordTemp" + Name 263 "storeTemp" + Name 272 "coordTemp" + Name 275 "storeTemp" + Name 284 "storeTemp" + Name 294 "storeTemp" + Name 300 "storeTemp" + Name 306 "storeTemp" + Name 316 "storeTemp" + Name 321 "storeTemp" + Name 331 "param" + Name 337 "param" + Name 343 "param" + Name 345 "tempArg" + Name 346 "param" + Name 353 "tempArg" + Name 354 "param" + Name 361 "tempArg" + Name 362 "param" + Name 369 "coordTemp" + Name 372 "storeTemp" + Name 382 "coordTemp" + Name 385 "storeTemp" + Name 394 "coordTemp" + Name 397 "storeTemp" + Name 406 "coordTemp" + Name 409 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 430 "coordTemp" + Name 433 "storeTemp" + Name 442 "coordTemp" + Name 445 "storeTempPre" + Name 449 "storeTempPost" + Name 456 "coordTemp" + Name 459 "storeTempPre" + Name 463 "storeTempPost" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 484 "coordTemp" + Name 487 "storeTempPre" + Name 491 "storeTempPost" + Name 498 "coordTemp" + Name 501 "storeTempPre" + Name 505 "storeTempPost" + Name 512 "coordTemp" + Name 515 "storeTempPre" + Name 519 "storeTempPost" + Name 526 "storeTemp" + Name 534 "PS_OUTPUT" + MemberName 534(PS_OUTPUT) 0 "Color" + Name 536 "psout" + Name 541 "Color" + Name 547 "g_sSamp" + Name 550 "g_tTex1df1a" + Name 553 "g_tTex1di1a" + Name 556 "g_tTex1du1a" + Name 559 "g_tTex2df1a" + Name 562 "g_tTex2di1a" + Name 565 "g_tTex2du1a" + MemberDecorate 54($Global) 0 Offset 0 + MemberDecorate 54($Global) 1 Offset 8 + MemberDecorate 54($Global) 2 Offset 16 + MemberDecorate 54($Global) 3 Offset 32 + MemberDecorate 54($Global) 4 Offset 48 + MemberDecorate 54($Global) 5 Offset 56 + MemberDecorate 54($Global) 6 Offset 64 + MemberDecorate 54($Global) 7 Offset 80 + MemberDecorate 54($Global) 8 Offset 96 + MemberDecorate 54($Global) 9 Offset 100 + MemberDecorate 54($Global) 10 Offset 104 + Decorate 54($Global) Block + Decorate 56 DescriptorSet 0 + Decorate 65(g_tTex1df1) DescriptorSet 0 + Decorate 78(g_tTex1di1) DescriptorSet 0 + Decorate 86(g_tTex1du1) DescriptorSet 0 + Decorate 94(g_tTex2df1) DescriptorSet 0 + Decorate 104(g_tTex2di1) DescriptorSet 0 + Decorate 112(g_tTex2du1) DescriptorSet 0 + Decorate 120(g_tTex3df1) DescriptorSet 0 + Decorate 130(g_tTex3di1) DescriptorSet 0 + Decorate 138(g_tTex3du1) DescriptorSet 0 + Decorate 541(Color) Location 0 + Decorate 547(g_sSamp) DescriptorSet 0 + Decorate 547(g_sSamp) Binding 0 + Decorate 550(g_tTex1df1a) DescriptorSet 0 + Decorate 553(g_tTex1di1a) DescriptorSet 0 + Decorate 556(g_tTex1du1a) DescriptorSet 0 + Decorate 559(g_tTex2df1a) DescriptorSet 0 + Decorate 562(g_tTex2di1a) DescriptorSet 0 + Decorate 565(g_tTex2du1a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 14: TypeFunction 12(int) 13(ptr) + 18: TypeFloat 32 + 19: TypePointer Function 18(float) + 20: TypeFunction 18(float) 19(ptr) + 24: TypeFunction 2 7(ptr) + 28: TypeFunction 2 13(ptr) + 32: TypeFunction 2 19(ptr) + 36: TypeFunction 18(float) + 48: 6(int) Constant 0 + 49: 12(int) Constant 0 + 50: 18(float) Constant 0 + 51: TypeVector 6(int) 2 + 52: TypeVector 6(int) 3 + 53: TypeVector 6(int) 4 + 54($Global): TypeStruct 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 18(float) 6(int) 12(int) + 55: TypePointer Uniform 54($Global) + 56: 55(ptr) Variable Uniform + 57: TypePointer Uniform 6(int) + 63: TypeImage 18(float) 1D nonsampled format:R32f + 64: TypePointer UniformConstant 63 + 65(g_tTex1df1): 64(ptr) Variable UniformConstant + 76: TypeImage 6(int) 1D nonsampled format:R32i + 77: TypePointer UniformConstant 76 + 78(g_tTex1di1): 77(ptr) Variable UniformConstant + 84: TypeImage 12(int) 1D nonsampled format:R32ui + 85: TypePointer UniformConstant 84 + 86(g_tTex1du1): 85(ptr) Variable UniformConstant + 92: TypeImage 18(float) 2D nonsampled format:R32f + 93: TypePointer UniformConstant 92 + 94(g_tTex2df1): 93(ptr) Variable UniformConstant + 96: 6(int) Constant 1 + 97: TypePointer Uniform 51(ivec2) + 102: TypeImage 6(int) 2D nonsampled format:R32i + 103: TypePointer UniformConstant 102 + 104(g_tTex2di1): 103(ptr) Variable UniformConstant + 110: TypeImage 12(int) 2D nonsampled format:R32ui + 111: TypePointer UniformConstant 110 + 112(g_tTex2du1): 111(ptr) Variable UniformConstant + 118: TypeImage 18(float) 3D nonsampled format:R32f + 119: TypePointer UniformConstant 118 + 120(g_tTex3df1): 119(ptr) Variable UniformConstant + 122: 6(int) Constant 2 + 123: TypePointer Uniform 52(ivec3) + 128: TypeImage 6(int) 3D nonsampled format:R32i + 129: TypePointer UniformConstant 128 + 130(g_tTex3di1): 129(ptr) Variable UniformConstant + 136: TypeImage 12(int) 3D nonsampled format:R32ui + 137: TypePointer UniformConstant 136 + 138(g_tTex3du1): 137(ptr) Variable UniformConstant + 144: 6(int) Constant 8 + 145: TypePointer Uniform 18(float) + 164: 12(int) Constant 3 + 177: 18(float) Constant 1073741824 + 191: 18(float) Constant 1077936128 + 204: 18(float) Constant 1082130432 + 241: 6(int) Constant 65535 + 254: 6(int) Constant 61680 + 295: 6(int) Constant 5 + 301: 12(int) Constant 6 + 322: 12(int) Constant 9 + 377: 18(float) Constant 1065353216 + 528: 6(int) Constant 3 + 529: 51(ivec2) ConstantComposite 122 528 + 533: TypeVector 18(float) 4 + 534(PS_OUTPUT): TypeStruct 533(fvec4) + 535: TypePointer Function 534(PS_OUTPUT) + 537: 533(fvec4) ConstantComposite 377 377 377 377 + 538: TypePointer Function 533(fvec4) + 540: TypePointer Output 533(fvec4) + 541(Color): 540(ptr) Variable Output + 545: TypeSampler + 546: TypePointer UniformConstant 545 + 547(g_sSamp): 546(ptr) Variable UniformConstant + 548: TypeImage 18(float) 1D array nonsampled format:R32f + 549: TypePointer UniformConstant 548 +550(g_tTex1df1a): 549(ptr) Variable UniformConstant + 551: TypeImage 6(int) 1D array nonsampled format:R32i + 552: TypePointer UniformConstant 551 +553(g_tTex1di1a): 552(ptr) Variable UniformConstant + 554: TypeImage 12(int) 1D array nonsampled format:R32ui + 555: TypePointer UniformConstant 554 +556(g_tTex1du1a): 555(ptr) Variable UniformConstant + 557: TypeImage 18(float) 2D array nonsampled format:R32f + 558: TypePointer UniformConstant 557 +559(g_tTex2df1a): 558(ptr) Variable UniformConstant + 560: TypeImage 6(int) 2D array nonsampled format:R32i + 561: TypePointer UniformConstant 560 +562(g_tTex2di1a): 561(ptr) Variable UniformConstant + 563: TypeImage 12(int) 2D array nonsampled format:R32ui + 564: TypePointer UniformConstant 563 +565(g_tTex2du1a): 564(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 70(r00): 19(ptr) Variable Function + 75(r01): 7(ptr) Variable Function + 83(r02): 13(ptr) Variable Function + 91(r10): 19(ptr) Variable Function + 101(r11): 7(ptr) Variable Function + 109(r12): 13(ptr) Variable Function + 117(r20): 19(ptr) Variable Function + 127(r21): 7(ptr) Variable Function + 135(r22): 13(ptr) Variable Function + 143(lf1): 19(ptr) Variable Function + 148(storeTemp): 19(ptr) Variable Function + 158(storeTemp): 7(ptr) Variable Function + 163(storeTemp): 13(ptr) Variable Function + 169(val1): 19(ptr) Variable Function + 170(coordTemp): 7(ptr) Variable Function + 173(storeTemp): 19(ptr) Variable Function + 184(coordTemp): 7(ptr) Variable Function + 187(storeTemp): 19(ptr) Variable Function + 197(coordTemp): 7(ptr) Variable Function + 200(storeTemp): 19(ptr) Variable Function + 210(coordTemp): 7(ptr) Variable Function + 213(storeTemp): 7(ptr) Variable Function + 222(coordTemp): 7(ptr) Variable Function + 225(storeTemp): 7(ptr) Variable Function + 234(coordTemp): 7(ptr) Variable Function + 237(storeTemp): 7(ptr) Variable Function + 247(coordTemp): 7(ptr) Variable Function + 250(storeTemp): 7(ptr) Variable Function + 260(coordTemp): 7(ptr) Variable Function + 263(storeTemp): 7(ptr) Variable Function + 272(coordTemp): 7(ptr) Variable Function + 275(storeTemp): 7(ptr) Variable Function + 284(storeTemp): 19(ptr) Variable Function + 294(storeTemp): 7(ptr) Variable Function + 300(storeTemp): 13(ptr) Variable Function + 306(storeTemp): 19(ptr) Variable Function + 316(storeTemp): 7(ptr) Variable Function + 321(storeTemp): 13(ptr) Variable Function + 331(param): 19(ptr) Variable Function + 337(param): 7(ptr) Variable Function + 343(param): 13(ptr) Variable Function + 345(tempArg): 19(ptr) Variable Function + 346(param): 19(ptr) Variable Function + 353(tempArg): 7(ptr) Variable Function + 354(param): 7(ptr) Variable Function + 361(tempArg): 13(ptr) Variable Function + 362(param): 13(ptr) Variable Function + 369(coordTemp): 7(ptr) Variable Function + 372(storeTemp): 19(ptr) Variable Function + 382(coordTemp): 7(ptr) Variable Function + 385(storeTemp): 7(ptr) Variable Function + 394(coordTemp): 7(ptr) Variable Function + 397(storeTemp): 13(ptr) Variable Function + 406(coordTemp): 7(ptr) Variable Function + 409(storeTemp): 19(ptr) Variable Function + 418(coordTemp): 7(ptr) Variable Function + 421(storeTemp): 7(ptr) Variable Function + 430(coordTemp): 7(ptr) Variable Function + 433(storeTemp): 13(ptr) Variable Function + 442(coordTemp): 7(ptr) Variable Function +445(storeTempPre): 19(ptr) Variable Function +449(storeTempPost): 19(ptr) Variable Function + 456(coordTemp): 7(ptr) Variable Function +459(storeTempPre): 13(ptr) Variable Function +463(storeTempPost): 13(ptr) Variable Function + 470(coordTemp): 7(ptr) Variable Function +473(storeTempPre): 7(ptr) Variable Function +477(storeTempPost): 7(ptr) Variable Function + 484(coordTemp): 7(ptr) Variable Function +487(storeTempPre): 19(ptr) Variable Function +491(storeTempPost): 19(ptr) Variable Function + 498(coordTemp): 7(ptr) Variable Function +501(storeTempPre): 7(ptr) Variable Function +505(storeTempPost): 7(ptr) Variable Function + 512(coordTemp): 7(ptr) Variable Function +515(storeTempPre): 13(ptr) Variable Function +519(storeTempPost): 13(ptr) Variable Function + 526(storeTemp): 19(ptr) Variable Function + 536(psout): 535(ptr) Variable Function + 66: 63 Load 65(g_tTex1df1) + 67: 57(ptr) AccessChain 56 48 + 68: 6(int) Load 67 + 69: 18(float) ImageRead 66 68 + 71: 63 Load 65(g_tTex1df1) + 72: 57(ptr) AccessChain 56 48 + 73: 6(int) Load 72 + 74: 18(float) ImageRead 71 73 + Store 70(r00) 74 + 79: 76 Load 78(g_tTex1di1) + 80: 57(ptr) AccessChain 56 48 + 81: 6(int) Load 80 + 82: 6(int) ImageRead 79 81 + Store 75(r01) 82 + 87: 84 Load 86(g_tTex1du1) + 88: 57(ptr) AccessChain 56 48 + 89: 6(int) Load 88 + 90: 12(int) ImageRead 87 89 + Store 83(r02) 90 + 95: 92 Load 94(g_tTex2df1) + 98: 97(ptr) AccessChain 56 96 + 99: 51(ivec2) Load 98 + 100: 18(float) ImageRead 95 99 + Store 91(r10) 100 + 105: 102 Load 104(g_tTex2di1) + 106: 97(ptr) AccessChain 56 96 + 107: 51(ivec2) Load 106 + 108: 6(int) ImageRead 105 107 + Store 101(r11) 108 + 113: 110 Load 112(g_tTex2du1) + 114: 97(ptr) AccessChain 56 96 + 115: 51(ivec2) Load 114 + 116: 12(int) ImageRead 113 115 + Store 109(r12) 116 + 121: 118 Load 120(g_tTex3df1) + 124: 123(ptr) AccessChain 56 122 + 125: 52(ivec3) Load 124 + 126: 18(float) ImageRead 121 125 + Store 117(r20) 126 + 131: 128 Load 130(g_tTex3di1) + 132: 123(ptr) AccessChain 56 122 + 133: 52(ivec3) Load 132 + 134: 6(int) ImageRead 131 133 + Store 127(r21) 134 + 139: 136 Load 138(g_tTex3du1) + 140: 123(ptr) AccessChain 56 122 + 141: 52(ivec3) Load 140 + 142: 12(int) ImageRead 139 141 + Store 135(r22) 142 + 146: 145(ptr) AccessChain 56 144 + 147: 18(float) Load 146 + Store 143(lf1) 147 + 149: 18(float) FunctionCall 37(SomeValue() + Store 148(storeTemp) 149 + 150: 63 Load 65(g_tTex1df1) + 151: 57(ptr) AccessChain 56 48 + 152: 6(int) Load 151 + 153: 18(float) Load 148(storeTemp) + ImageWrite 150 152 153 + 154: 63 Load 65(g_tTex1df1) + 155: 57(ptr) AccessChain 56 48 + 156: 6(int) Load 155 + 157: 18(float) Load 143(lf1) + ImageWrite 154 156 157 + Store 158(storeTemp) 122 + 159: 76 Load 78(g_tTex1di1) + 160: 57(ptr) AccessChain 56 48 + 161: 6(int) Load 160 + 162: 6(int) Load 158(storeTemp) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 84 Load 86(g_tTex1du1) + 166: 57(ptr) AccessChain 56 48 + 167: 6(int) Load 166 + 168: 12(int) Load 163(storeTemp) + ImageWrite 165 167 168 + 171: 57(ptr) AccessChain 56 48 + 172: 6(int) Load 171 + Store 170(coordTemp) 172 + 174: 63 Load 65(g_tTex1df1) + 175: 6(int) Load 170(coordTemp) + 176: 18(float) ImageRead 174 175 + Store 173(storeTemp) 176 + 178: 18(float) Load 173(storeTemp) + 179: 18(float) FMul 178 177 + Store 173(storeTemp) 179 + 180: 63 Load 65(g_tTex1df1) + 181: 6(int) Load 170(coordTemp) + 182: 18(float) Load 173(storeTemp) + ImageWrite 180 181 182 + 183: 18(float) Load 173(storeTemp) + Store 169(val1) 183 + 185: 57(ptr) AccessChain 56 48 + 186: 6(int) Load 185 + Store 184(coordTemp) 186 + 188: 63 Load 65(g_tTex1df1) + 189: 6(int) Load 184(coordTemp) + 190: 18(float) ImageRead 188 189 + Store 187(storeTemp) 190 + 192: 18(float) Load 187(storeTemp) + 193: 18(float) FSub 192 191 + Store 187(storeTemp) 193 + 194: 63 Load 65(g_tTex1df1) + 195: 6(int) Load 184(coordTemp) + 196: 18(float) Load 187(storeTemp) + ImageWrite 194 195 196 + 198: 57(ptr) AccessChain 56 48 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 63 Load 65(g_tTex1df1) + 202: 6(int) Load 197(coordTemp) + 203: 18(float) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 18(float) Load 200(storeTemp) + 206: 18(float) FAdd 205 204 + Store 200(storeTemp) 206 + 207: 63 Load 65(g_tTex1df1) + 208: 6(int) Load 197(coordTemp) + 209: 18(float) Load 200(storeTemp) + ImageWrite 207 208 209 + 211: 57(ptr) AccessChain 56 48 + 212: 6(int) Load 211 + Store 210(coordTemp) 212 + 214: 76 Load 78(g_tTex1di1) + 215: 6(int) Load 210(coordTemp) + 216: 6(int) ImageRead 214 215 + Store 213(storeTemp) 216 + 217: 6(int) Load 213(storeTemp) + 218: 6(int) SDiv 217 122 + Store 213(storeTemp) 218 + 219: 76 Load 78(g_tTex1di1) + 220: 6(int) Load 210(coordTemp) + 221: 6(int) Load 213(storeTemp) + ImageWrite 219 220 221 + 223: 57(ptr) AccessChain 56 48 + 224: 6(int) Load 223 + Store 222(coordTemp) 224 + 226: 76 Load 78(g_tTex1di1) + 227: 6(int) Load 222(coordTemp) + 228: 6(int) ImageRead 226 227 + Store 225(storeTemp) 228 + 229: 6(int) Load 225(storeTemp) + 230: 6(int) SMod 229 122 + Store 225(storeTemp) 230 + 231: 76 Load 78(g_tTex1di1) + 232: 6(int) Load 222(coordTemp) + 233: 6(int) Load 225(storeTemp) + ImageWrite 231 232 233 + 235: 57(ptr) AccessChain 56 48 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 76 Load 78(g_tTex1di1) + 239: 6(int) Load 234(coordTemp) + 240: 6(int) ImageRead 238 239 + Store 237(storeTemp) 240 + 242: 6(int) Load 237(storeTemp) + 243: 6(int) BitwiseAnd 242 241 + Store 237(storeTemp) 243 + 244: 76 Load 78(g_tTex1di1) + 245: 6(int) Load 234(coordTemp) + 246: 6(int) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 57(ptr) AccessChain 56 48 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 76 Load 78(g_tTex1di1) + 252: 6(int) Load 247(coordTemp) + 253: 6(int) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 6(int) Load 250(storeTemp) + 256: 6(int) BitwiseOr 255 254 + Store 250(storeTemp) 256 + 257: 76 Load 78(g_tTex1di1) + 258: 6(int) Load 247(coordTemp) + 259: 6(int) Load 250(storeTemp) + ImageWrite 257 258 259 + 261: 57(ptr) AccessChain 56 48 + 262: 6(int) Load 261 + Store 260(coordTemp) 262 + 264: 76 Load 78(g_tTex1di1) + 265: 6(int) Load 260(coordTemp) + 266: 6(int) ImageRead 264 265 + Store 263(storeTemp) 266 + 267: 6(int) Load 263(storeTemp) + 268: 6(int) ShiftLeftLogical 267 122 + Store 263(storeTemp) 268 + 269: 76 Load 78(g_tTex1di1) + 270: 6(int) Load 260(coordTemp) + 271: 6(int) Load 263(storeTemp) + ImageWrite 269 270 271 + 273: 57(ptr) AccessChain 56 48 + 274: 6(int) Load 273 + Store 272(coordTemp) 274 + 276: 76 Load 78(g_tTex1di1) + 277: 6(int) Load 272(coordTemp) + 278: 6(int) ImageRead 276 277 + Store 275(storeTemp) 278 + 279: 6(int) Load 275(storeTemp) + 280: 6(int) ShiftRightArithmetic 279 122 + Store 275(storeTemp) 280 + 281: 76 Load 78(g_tTex1di1) + 282: 6(int) Load 272(coordTemp) + 283: 6(int) Load 275(storeTemp) + ImageWrite 281 282 283 + 285: 18(float) FunctionCall 37(SomeValue() + Store 284(storeTemp) 285 + 286: 92 Load 94(g_tTex2df1) + 287: 97(ptr) AccessChain 56 96 + 288: 51(ivec2) Load 287 + 289: 18(float) Load 284(storeTemp) + ImageWrite 286 288 289 + 290: 92 Load 94(g_tTex2df1) + 291: 97(ptr) AccessChain 56 96 + 292: 51(ivec2) Load 291 + 293: 18(float) Load 143(lf1) + ImageWrite 290 292 293 + Store 294(storeTemp) 295 + 296: 102 Load 104(g_tTex2di1) + 297: 97(ptr) AccessChain 56 96 + 298: 51(ivec2) Load 297 + 299: 6(int) Load 294(storeTemp) + ImageWrite 296 298 299 + Store 300(storeTemp) 301 + 302: 110 Load 112(g_tTex2du1) + 303: 97(ptr) AccessChain 56 96 + 304: 51(ivec2) Load 303 + 305: 12(int) Load 300(storeTemp) + ImageWrite 302 304 305 + 307: 18(float) FunctionCall 37(SomeValue() + Store 306(storeTemp) 307 + 308: 118 Load 120(g_tTex3df1) + 309: 123(ptr) AccessChain 56 122 + 310: 52(ivec3) Load 309 + 311: 18(float) Load 306(storeTemp) + ImageWrite 308 310 311 + 312: 118 Load 120(g_tTex3df1) + 313: 123(ptr) AccessChain 56 122 + 314: 52(ivec3) Load 313 + 315: 18(float) Load 143(lf1) + ImageWrite 312 314 315 + Store 316(storeTemp) 144 + 317: 128 Load 130(g_tTex3di1) + 318: 123(ptr) AccessChain 56 122 + 319: 52(ivec3) Load 318 + 320: 6(int) Load 316(storeTemp) + ImageWrite 317 319 320 + Store 321(storeTemp) 322 + 323: 136 Load 138(g_tTex3du1) + 324: 123(ptr) AccessChain 56 122 + 325: 52(ivec3) Load 324 + 326: 12(int) Load 321(storeTemp) + ImageWrite 323 325 326 + 327: 63 Load 65(g_tTex1df1) + 328: 57(ptr) AccessChain 56 48 + 329: 6(int) Load 328 + 330: 18(float) ImageRead 327 329 + Store 331(param) 330 + 332: 18(float) FunctionCall 22(Fn1(f1;) 331(param) + 333: 76 Load 78(g_tTex1di1) + 334: 57(ptr) AccessChain 56 48 + 335: 6(int) Load 334 + 336: 6(int) ImageRead 333 335 + Store 337(param) 336 + 338: 6(int) FunctionCall 10(Fn1(i1;) 337(param) + 339: 84 Load 86(g_tTex1du1) + 340: 57(ptr) AccessChain 56 48 + 341: 6(int) Load 340 + 342: 12(int) ImageRead 339 341 + Store 343(param) 342 + 344: 12(int) FunctionCall 16(Fn1(u1;) 343(param) + 347: 2 FunctionCall 34(Fn2(f1;) 346(param) + 348: 18(float) Load 346(param) + Store 345(tempArg) 348 + 349: 63 Load 65(g_tTex1df1) + 350: 57(ptr) AccessChain 56 48 + 351: 6(int) Load 350 + 352: 18(float) Load 345(tempArg) + ImageWrite 349 351 352 + 355: 2 FunctionCall 26(Fn2(i1;) 354(param) + 356: 6(int) Load 354(param) + Store 353(tempArg) 356 + 357: 76 Load 78(g_tTex1di1) + 358: 57(ptr) AccessChain 56 48 + 359: 6(int) Load 358 + 360: 6(int) Load 353(tempArg) + ImageWrite 357 359 360 + 363: 2 FunctionCall 30(Fn2(u1;) 362(param) + 364: 12(int) Load 362(param) + Store 361(tempArg) 364 + 365: 84 Load 86(g_tTex1du1) + 366: 57(ptr) AccessChain 56 48 + 367: 6(int) Load 366 + 368: 12(int) Load 361(tempArg) + ImageWrite 365 367 368 + 370: 57(ptr) AccessChain 56 48 + 371: 6(int) Load 370 + Store 369(coordTemp) 371 + 373: 63 Load 65(g_tTex1df1) + 374: 6(int) Load 369(coordTemp) + 375: 18(float) ImageRead 373 374 + Store 372(storeTemp) 375 + 376: 18(float) Load 372(storeTemp) + 378: 18(float) FAdd 376 377 + Store 372(storeTemp) 378 + 379: 63 Load 65(g_tTex1df1) + 380: 6(int) Load 369(coordTemp) + 381: 18(float) Load 372(storeTemp) + ImageWrite 379 380 381 + 383: 57(ptr) AccessChain 56 48 + 384: 6(int) Load 383 + Store 382(coordTemp) 384 + 386: 76 Load 78(g_tTex1di1) + 387: 6(int) Load 382(coordTemp) + 388: 6(int) ImageRead 386 387 + Store 385(storeTemp) 388 + 389: 6(int) Load 385(storeTemp) + 390: 6(int) IAdd 389 96 + Store 385(storeTemp) 390 + 391: 76 Load 78(g_tTex1di1) + 392: 6(int) Load 382(coordTemp) + 393: 6(int) Load 385(storeTemp) + ImageWrite 391 392 393 + 395: 57(ptr) AccessChain 56 48 + 396: 6(int) Load 395 + Store 394(coordTemp) 396 + 398: 84 Load 86(g_tTex1du1) + 399: 6(int) Load 394(coordTemp) + 400: 12(int) ImageRead 398 399 + Store 397(storeTemp) 400 + 401: 12(int) Load 397(storeTemp) + 402: 12(int) IAdd 401 96 + Store 397(storeTemp) 402 + 403: 84 Load 86(g_tTex1du1) + 404: 6(int) Load 394(coordTemp) + 405: 12(int) Load 397(storeTemp) + ImageWrite 403 404 405 + 407: 57(ptr) AccessChain 56 48 + 408: 6(int) Load 407 + Store 406(coordTemp) 408 + 410: 63 Load 65(g_tTex1df1) + 411: 6(int) Load 406(coordTemp) + 412: 18(float) ImageRead 410 411 + Store 409(storeTemp) 412 + 413: 18(float) Load 409(storeTemp) + 414: 18(float) FSub 413 377 + Store 409(storeTemp) 414 + 415: 63 Load 65(g_tTex1df1) + 416: 6(int) Load 406(coordTemp) + 417: 18(float) Load 409(storeTemp) + ImageWrite 415 416 417 + 419: 57(ptr) AccessChain 56 48 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 76 Load 78(g_tTex1di1) + 423: 6(int) Load 418(coordTemp) + 424: 6(int) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 6(int) Load 421(storeTemp) + 426: 6(int) ISub 425 96 + Store 421(storeTemp) 426 + 427: 76 Load 78(g_tTex1di1) + 428: 6(int) Load 418(coordTemp) + 429: 6(int) Load 421(storeTemp) + ImageWrite 427 428 429 + 431: 57(ptr) AccessChain 56 48 + 432: 6(int) Load 431 + Store 430(coordTemp) 432 + 434: 84 Load 86(g_tTex1du1) + 435: 6(int) Load 430(coordTemp) + 436: 12(int) ImageRead 434 435 + Store 433(storeTemp) 436 + 437: 12(int) Load 433(storeTemp) + 438: 12(int) ISub 437 96 + Store 433(storeTemp) 438 + 439: 84 Load 86(g_tTex1du1) + 440: 6(int) Load 430(coordTemp) + 441: 12(int) Load 433(storeTemp) + ImageWrite 439 440 441 + 443: 57(ptr) AccessChain 56 48 + 444: 6(int) Load 443 + Store 442(coordTemp) 444 + 446: 63 Load 65(g_tTex1df1) + 447: 6(int) Load 442(coordTemp) + 448: 18(float) ImageRead 446 447 + Store 445(storeTempPre) 448 + 450: 18(float) Load 445(storeTempPre) + Store 449(storeTempPost) 450 + 451: 18(float) Load 449(storeTempPost) + 452: 18(float) FAdd 451 377 + Store 449(storeTempPost) 452 + 453: 63 Load 65(g_tTex1df1) + 454: 6(int) Load 442(coordTemp) + 455: 18(float) Load 449(storeTempPost) + ImageWrite 453 454 455 + 457: 57(ptr) AccessChain 56 48 + 458: 6(int) Load 457 + Store 456(coordTemp) 458 + 460: 84 Load 86(g_tTex1du1) + 461: 6(int) Load 456(coordTemp) + 462: 12(int) ImageRead 460 461 + Store 459(storeTempPre) 462 + 464: 12(int) Load 459(storeTempPre) + Store 463(storeTempPost) 464 + 465: 12(int) Load 463(storeTempPost) + 466: 12(int) ISub 465 96 + Store 463(storeTempPost) 466 + 467: 84 Load 86(g_tTex1du1) + 468: 6(int) Load 456(coordTemp) + 469: 12(int) Load 463(storeTempPost) + ImageWrite 467 468 469 + 471: 57(ptr) AccessChain 56 48 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 76 Load 78(g_tTex1di1) + 475: 6(int) Load 470(coordTemp) + 476: 6(int) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 6(int) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 6(int) Load 477(storeTempPost) + 480: 6(int) IAdd 479 96 + Store 477(storeTempPost) 480 + 481: 76 Load 78(g_tTex1di1) + 482: 6(int) Load 470(coordTemp) + 483: 6(int) Load 477(storeTempPost) + ImageWrite 481 482 483 + 485: 57(ptr) AccessChain 56 48 + 486: 6(int) Load 485 + Store 484(coordTemp) 486 + 488: 63 Load 65(g_tTex1df1) + 489: 6(int) Load 484(coordTemp) + 490: 18(float) ImageRead 488 489 + Store 487(storeTempPre) 490 + 492: 18(float) Load 487(storeTempPre) + Store 491(storeTempPost) 492 + 493: 18(float) Load 491(storeTempPost) + 494: 18(float) FSub 493 377 + Store 491(storeTempPost) 494 + 495: 63 Load 65(g_tTex1df1) + 496: 6(int) Load 484(coordTemp) + 497: 18(float) Load 491(storeTempPost) + ImageWrite 495 496 497 + 499: 57(ptr) AccessChain 56 48 + 500: 6(int) Load 499 + Store 498(coordTemp) 500 + 502: 76 Load 78(g_tTex1di1) + 503: 6(int) Load 498(coordTemp) + 504: 6(int) ImageRead 502 503 + Store 501(storeTempPre) 504 + 506: 6(int) Load 501(storeTempPre) + Store 505(storeTempPost) 506 + 507: 6(int) Load 505(storeTempPost) + 508: 6(int) IAdd 507 96 + Store 505(storeTempPost) 508 + 509: 76 Load 78(g_tTex1di1) + 510: 6(int) Load 498(coordTemp) + 511: 6(int) Load 505(storeTempPost) + ImageWrite 509 510 511 + 513: 57(ptr) AccessChain 56 48 + 514: 6(int) Load 513 + Store 512(coordTemp) 514 + 516: 84 Load 86(g_tTex1du1) + 517: 6(int) Load 512(coordTemp) + 518: 12(int) ImageRead 516 517 + Store 515(storeTempPre) 518 + 520: 12(int) Load 515(storeTempPre) + Store 519(storeTempPost) 520 + 521: 12(int) Load 519(storeTempPost) + 522: 12(int) ISub 521 96 + Store 519(storeTempPost) 522 + 523: 84 Load 86(g_tTex1du1) + 524: 6(int) Load 512(coordTemp) + 525: 12(int) Load 519(storeTempPost) + ImageWrite 523 524 525 + 527: 92 Load 94(g_tTex2df1) + 530: 18(float) ImageRead 527 529 + Store 526(storeTemp) 530 + 531: 63 Load 65(g_tTex1df1) + 532: 18(float) Load 526(storeTemp) + ImageWrite 531 96 532 + 539: 538(ptr) AccessChain 536(psout) 48 + Store 539 537 + 542: 538(ptr) AccessChain 536(psout) 48 + 543: 533(fvec4) Load 542 + Store 541(Color) 543 + Return + FunctionEnd + 10(Fn1(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 39: 6(int) Load 9(x) + ReturnValue 39 + FunctionEnd + 16(Fn1(u1;): 12(int) Function None 14 + 15(x): 13(ptr) FunctionParameter + 17: Label + 42: 12(int) Load 15(x) + ReturnValue 42 + FunctionEnd + 22(Fn1(f1;): 18(float) Function None 20 + 21(x): 19(ptr) FunctionParameter + 23: Label + 45: 18(float) Load 21(x) + ReturnValue 45 + FunctionEnd + 26(Fn2(i1;): 2 Function None 24 + 25(x): 7(ptr) FunctionParameter + 27: Label + Store 25(x) 48 + Return + FunctionEnd + 30(Fn2(u1;): 2 Function None 28 + 29(x): 13(ptr) FunctionParameter + 31: Label + Store 29(x) 49 + Return + FunctionEnd + 34(Fn2(f1;): 2 Function None 32 + 33(x): 19(ptr) FunctionParameter + 35: Label + Store 33(x) 50 + Return + FunctionEnd + 37(SomeValue(): 18(float) Function None 36 + 38: Label + 58: 57(ptr) AccessChain 56 48 + 59: 6(int) Load 58 + 60: 18(float) ConvertSToF 59 + ReturnValue 60 + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out new file mode 100644 index 00000000..b8452c36 --- /dev/null +++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -0,0 +1,2613 @@ +hlsl.rw.vec2.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 600 + + Capability Shader + Capability Sampled1D + Capability StorageImageExtendedFormats + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 575 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi2;" + Name 10 "x" + Name 18 "Fn1(vu2;" + Name 17 "x" + Name 25 "Fn1(vf2;" + Name 24 "x" + Name 29 "Fn2(vi2;" + Name 28 "x" + Name 33 "Fn2(vu2;" + Name 32 "x" + Name 37 "Fn2(vf2;" + Name 36 "x" + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf2" + MemberName 59($Global) 9 "ui2" + MemberName 59($Global) 10 "uu2" + Name 61 "" + Name 71 "g_tTex1df2" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di2" + Name 90 "r02" + Name 93 "g_tTex1du2" + Name 98 "r10" + Name 101 "g_tTex2df2" + Name 106 "r11" + Name 109 "g_tTex2di2" + Name 114 "r12" + Name 117 "g_tTex2du2" + Name 122 "r20" + Name 125 "g_tTex3df2" + Name 132 "r21" + Name 135 "g_tTex3di2" + Name 140 "r22" + Name 143 "g_tTex3du2" + Name 148 "lf2" + Name 153 "storeTemp" + Name 163 "storeTemp" + Name 169 "storeTemp" + Name 177 "val1" + Name 179 "coordTemp" + Name 182 "storeTemp" + Name 193 "coordTemp" + Name 196 "storeTemp" + Name 207 "coordTemp" + Name 210 "storeTemp" + Name 221 "coordTemp" + Name 224 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 261 "coordTemp" + Name 264 "storeTemp" + Name 275 "coordTemp" + Name 278 "storeTemp" + Name 288 "coordTemp" + Name 291 "storeTemp" + Name 301 "storeTemp" + Name 311 "storeTemp" + Name 318 "storeTemp" + Name 325 "storeTemp" + Name 335 "storeTemp" + Name 342 "storeTemp" + Name 353 "param" + Name 359 "param" + Name 365 "param" + Name 367 "tempArg" + Name 368 "param" + Name 375 "tempArg" + Name 376 "param" + Name 383 "tempArg" + Name 384 "param" + Name 391 "coordTemp" + Name 394 "storeTemp" + Name 405 "coordTemp" + Name 408 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 431 "coordTemp" + Name 434 "storeTemp" + Name 444 "coordTemp" + Name 447 "storeTemp" + Name 457 "coordTemp" + Name 460 "storeTemp" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 485 "coordTemp" + Name 488 "storeTempPre" + Name 492 "storeTempPost" + Name 500 "coordTemp" + Name 503 "storeTempPre" + Name 507 "storeTempPost" + Name 515 "coordTemp" + Name 518 "storeTempPre" + Name 522 "storeTempPost" + Name 530 "coordTemp" + Name 533 "storeTempPre" + Name 537 "storeTempPost" + Name 545 "coordTemp" + Name 548 "storeTempPre" + Name 552 "storeTempPost" + Name 560 "storeTemp" + Name 568 "PS_OUTPUT" + MemberName 568(PS_OUTPUT) 0 "Color" + Name 570 "psout" + Name 575 "Color" + Name 581 "g_sSamp" + Name 584 "g_tTex1df2a" + Name 587 "g_tTex1di2a" + Name 590 "g_tTex1du2a" + Name 593 "g_tTex2df2a" + Name 596 "g_tTex2di2a" + Name 599 "g_tTex2du2a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 104 + MemberDecorate 59($Global) 10 Offset 112 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df2) DescriptorSet 0 + Decorate 85(g_tTex1di2) DescriptorSet 0 + Decorate 93(g_tTex1du2) DescriptorSet 0 + Decorate 101(g_tTex2df2) DescriptorSet 0 + Decorate 109(g_tTex2di2) DescriptorSet 0 + Decorate 117(g_tTex2du2) DescriptorSet 0 + Decorate 125(g_tTex3df2) DescriptorSet 0 + Decorate 135(g_tTex3di2) DescriptorSet 0 + Decorate 143(g_tTex3du2) DescriptorSet 0 + Decorate 575(Color) Location 0 + Decorate 581(g_sSamp) DescriptorSet 0 + Decorate 581(g_sSamp) Binding 0 + Decorate 584(g_tTex1df2a) DescriptorSet 0 + Decorate 587(g_tTex1di2a) DescriptorSet 0 + Decorate 590(g_tTex1du2a) DescriptorSet 0 + Decorate 593(g_tTex2df2a) DescriptorSet 0 + Decorate 596(g_tTex2di2a) DescriptorSet 0 + Decorate 599(g_tTex2du2a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 9: TypeFunction 7(ivec2) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 2 + 15: TypePointer Function 14(ivec2) + 16: TypeFunction 14(ivec2) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 2 + 22: TypePointer Function 21(fvec2) + 23: TypeFunction 21(fvec2) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec2) + 51: 6(int) Constant 0 + 52: 7(ivec2) ConstantComposite 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec2) ConstantComposite 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec2) ConstantComposite 55 55 + 57: TypeVector 6(int) 3 + 58: TypeVector 6(int) 4 + 59($Global): TypeStruct 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 21(fvec2) 7(ivec2) 14(ivec2) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 1 + 63: TypePointer Uniform 7(ivec2) + 69: TypeImage 20(float) 1D nonsampled format:Rg32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df2): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rg32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di2): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rg32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du2): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rg32f + 100: TypePointer UniformConstant 99 + 101(g_tTex2df2): 100(ptr) Variable UniformConstant + 107: TypeImage 6(int) 2D nonsampled format:Rg32i + 108: TypePointer UniformConstant 107 + 109(g_tTex2di2): 108(ptr) Variable UniformConstant + 115: TypeImage 13(int) 2D nonsampled format:Rg32ui + 116: TypePointer UniformConstant 115 + 117(g_tTex2du2): 116(ptr) Variable UniformConstant + 123: TypeImage 20(float) 3D nonsampled format:Rg32f + 124: TypePointer UniformConstant 123 + 125(g_tTex3df2): 124(ptr) Variable UniformConstant + 127: 6(int) Constant 2 + 128: TypePointer Uniform 57(ivec3) + 133: TypeImage 6(int) 3D nonsampled format:Rg32i + 134: TypePointer UniformConstant 133 + 135(g_tTex3di2): 134(ptr) Variable UniformConstant + 141: TypeImage 13(int) 3D nonsampled format:Rg32ui + 142: TypePointer UniformConstant 141 + 143(g_tTex3du2): 142(ptr) Variable UniformConstant + 149: 6(int) Constant 8 + 150: TypePointer Uniform 21(fvec2) + 164: 7(ivec2) ConstantComposite 127 127 + 170: 13(int) Constant 3 + 171: 13(int) Constant 2 + 172: 14(ivec2) ConstantComposite 170 171 + 178: TypePointer Function 6(int) + 186: 20(float) Constant 1073741824 + 200: 20(float) Constant 1077936128 + 214: 20(float) Constant 1082130432 + 254: 6(int) Constant 65535 + 268: 6(int) Constant 61680 + 312: 6(int) Constant 5 + 313: 7(ivec2) ConstantComposite 312 127 + 319: 13(int) Constant 6 + 320: 14(ivec2) ConstantComposite 319 171 + 336: 6(int) Constant 6 + 337: 7(ivec2) ConstantComposite 149 336 + 343: 13(int) Constant 9 + 344: 14(ivec2) ConstantComposite 343 171 + 399: 20(float) Constant 1065353216 + 562: 6(int) Constant 3 + 563: 7(ivec2) ConstantComposite 127 562 + 567: TypeVector 20(float) 4 + 568(PS_OUTPUT): TypeStruct 567(fvec4) + 569: TypePointer Function 568(PS_OUTPUT) + 571: 567(fvec4) ConstantComposite 399 399 399 399 + 572: TypePointer Function 567(fvec4) + 574: TypePointer Output 567(fvec4) + 575(Color): 574(ptr) Variable Output + 579: TypeSampler + 580: TypePointer UniformConstant 579 + 581(g_sSamp): 580(ptr) Variable UniformConstant + 582: TypeImage 20(float) 1D array nonsampled format:Rg32f + 583: TypePointer UniformConstant 582 +584(g_tTex1df2a): 583(ptr) Variable UniformConstant + 585: TypeImage 6(int) 1D array nonsampled format:Rg32i + 586: TypePointer UniformConstant 585 +587(g_tTex1di2a): 586(ptr) Variable UniformConstant + 588: TypeImage 13(int) 1D array nonsampled format:Rg32ui + 589: TypePointer UniformConstant 588 +590(g_tTex1du2a): 589(ptr) Variable UniformConstant + 591: TypeImage 20(float) 2D array nonsampled format:Rg32f + 592: TypePointer UniformConstant 591 +593(g_tTex2df2a): 592(ptr) Variable UniformConstant + 594: TypeImage 6(int) 2D array nonsampled format:Rg32i + 595: TypePointer UniformConstant 594 +596(g_tTex2di2a): 595(ptr) Variable UniformConstant + 597: TypeImage 13(int) 2D array nonsampled format:Rg32ui + 598: TypePointer UniformConstant 597 +599(g_tTex2du2a): 598(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 106(r11): 8(ptr) Variable Function + 114(r12): 15(ptr) Variable Function + 122(r20): 22(ptr) Variable Function + 132(r21): 8(ptr) Variable Function + 140(r22): 15(ptr) Variable Function + 148(lf2): 22(ptr) Variable Function + 153(storeTemp): 22(ptr) Variable Function + 163(storeTemp): 8(ptr) Variable Function + 169(storeTemp): 15(ptr) Variable Function + 177(val1): 22(ptr) Variable Function + 179(coordTemp): 178(ptr) Variable Function + 182(storeTemp): 22(ptr) Variable Function + 193(coordTemp): 178(ptr) Variable Function + 196(storeTemp): 22(ptr) Variable Function + 207(coordTemp): 178(ptr) Variable Function + 210(storeTemp): 22(ptr) Variable Function + 221(coordTemp): 178(ptr) Variable Function + 224(storeTemp): 8(ptr) Variable Function + 234(coordTemp): 178(ptr) Variable Function + 237(storeTemp): 8(ptr) Variable Function + 247(coordTemp): 178(ptr) Variable Function + 250(storeTemp): 8(ptr) Variable Function + 261(coordTemp): 178(ptr) Variable Function + 264(storeTemp): 8(ptr) Variable Function + 275(coordTemp): 178(ptr) Variable Function + 278(storeTemp): 8(ptr) Variable Function + 288(coordTemp): 178(ptr) Variable Function + 291(storeTemp): 8(ptr) Variable Function + 301(storeTemp): 22(ptr) Variable Function + 311(storeTemp): 8(ptr) Variable Function + 318(storeTemp): 15(ptr) Variable Function + 325(storeTemp): 22(ptr) Variable Function + 335(storeTemp): 8(ptr) Variable Function + 342(storeTemp): 15(ptr) Variable Function + 353(param): 22(ptr) Variable Function + 359(param): 8(ptr) Variable Function + 365(param): 15(ptr) Variable Function + 367(tempArg): 22(ptr) Variable Function + 368(param): 22(ptr) Variable Function + 375(tempArg): 8(ptr) Variable Function + 376(param): 8(ptr) Variable Function + 383(tempArg): 15(ptr) Variable Function + 384(param): 15(ptr) Variable Function + 391(coordTemp): 178(ptr) Variable Function + 394(storeTemp): 22(ptr) Variable Function + 405(coordTemp): 178(ptr) Variable Function + 408(storeTemp): 8(ptr) Variable Function + 418(coordTemp): 178(ptr) Variable Function + 421(storeTemp): 15(ptr) Variable Function + 431(coordTemp): 178(ptr) Variable Function + 434(storeTemp): 22(ptr) Variable Function + 444(coordTemp): 178(ptr) Variable Function + 447(storeTemp): 8(ptr) Variable Function + 457(coordTemp): 178(ptr) Variable Function + 460(storeTemp): 15(ptr) Variable Function + 470(coordTemp): 178(ptr) Variable Function +473(storeTempPre): 22(ptr) Variable Function +477(storeTempPost): 22(ptr) Variable Function + 485(coordTemp): 178(ptr) Variable Function +488(storeTempPre): 15(ptr) Variable Function +492(storeTempPost): 15(ptr) Variable Function + 500(coordTemp): 178(ptr) Variable Function +503(storeTempPre): 8(ptr) Variable Function +507(storeTempPost): 8(ptr) Variable Function + 515(coordTemp): 178(ptr) Variable Function +518(storeTempPre): 22(ptr) Variable Function +522(storeTempPost): 22(ptr) Variable Function + 530(coordTemp): 178(ptr) Variable Function +533(storeTempPre): 8(ptr) Variable Function +537(storeTempPost): 8(ptr) Variable Function + 545(coordTemp): 178(ptr) Variable Function +548(storeTempPre): 15(ptr) Variable Function +552(storeTempPost): 15(ptr) Variable Function + 560(storeTemp): 22(ptr) Variable Function + 570(psout): 569(ptr) Variable Function + 72: 69 Load 71(g_tTex1df2) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec2) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df2) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec2) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di2) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec2) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du2) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec2) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df2) + 103: 63(ptr) AccessChain 61 62 + 104: 7(ivec2) Load 103 + 105: 21(fvec2) ImageRead 102 104 + Store 98(r10) 105 + 110: 107 Load 109(g_tTex2di2) + 111: 63(ptr) AccessChain 61 62 + 112: 7(ivec2) Load 111 + 113: 7(ivec2) ImageRead 110 112 + Store 106(r11) 113 + 118: 115 Load 117(g_tTex2du2) + 119: 63(ptr) AccessChain 61 62 + 120: 7(ivec2) Load 119 + 121: 14(ivec2) ImageRead 118 120 + Store 114(r12) 121 + 126: 123 Load 125(g_tTex3df2) + 129: 128(ptr) AccessChain 61 127 + 130: 57(ivec3) Load 129 + 131: 21(fvec2) ImageRead 126 130 + Store 122(r20) 131 + 136: 133 Load 135(g_tTex3di2) + 137: 128(ptr) AccessChain 61 127 + 138: 57(ivec3) Load 137 + 139: 7(ivec2) ImageRead 136 138 + Store 132(r21) 139 + 144: 141 Load 143(g_tTex3du2) + 145: 128(ptr) AccessChain 61 127 + 146: 57(ivec3) Load 145 + 147: 14(ivec2) ImageRead 144 146 + Store 140(r22) 147 + 151: 150(ptr) AccessChain 61 149 + 152: 21(fvec2) Load 151 + Store 148(lf2) 152 + 154: 21(fvec2) FunctionCall 40(SomeValue() + Store 153(storeTemp) 154 + 155: 69 Load 71(g_tTex1df2) + 156: 73(ptr) AccessChain 61 51 + 157: 6(int) Load 156 + 158: 21(fvec2) Load 153(storeTemp) + ImageWrite 155 157 158 + 159: 69 Load 71(g_tTex1df2) + 160: 73(ptr) AccessChain 61 51 + 161: 6(int) Load 160 + 162: 21(fvec2) Load 148(lf2) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 83 Load 85(g_tTex1di2) + 166: 73(ptr) AccessChain 61 51 + 167: 6(int) Load 166 + 168: 7(ivec2) Load 163(storeTemp) + ImageWrite 165 167 168 + Store 169(storeTemp) 172 + 173: 91 Load 93(g_tTex1du2) + 174: 73(ptr) AccessChain 61 51 + 175: 6(int) Load 174 + 176: 14(ivec2) Load 169(storeTemp) + ImageWrite 173 175 176 + 180: 73(ptr) AccessChain 61 51 + 181: 6(int) Load 180 + Store 179(coordTemp) 181 + 183: 69 Load 71(g_tTex1df2) + 184: 6(int) Load 179(coordTemp) + 185: 21(fvec2) ImageRead 183 184 + Store 182(storeTemp) 185 + 187: 21(fvec2) Load 182(storeTemp) + 188: 21(fvec2) VectorTimesScalar 187 186 + Store 182(storeTemp) 188 + 189: 69 Load 71(g_tTex1df2) + 190: 6(int) Load 179(coordTemp) + 191: 21(fvec2) Load 182(storeTemp) + ImageWrite 189 190 191 + 192: 21(fvec2) Load 182(storeTemp) + Store 177(val1) 192 + 194: 73(ptr) AccessChain 61 51 + 195: 6(int) Load 194 + Store 193(coordTemp) 195 + 197: 69 Load 71(g_tTex1df2) + 198: 6(int) Load 193(coordTemp) + 199: 21(fvec2) ImageRead 197 198 + Store 196(storeTemp) 199 + 201: 21(fvec2) Load 196(storeTemp) + 202: 21(fvec2) CompositeConstruct 200 200 + 203: 21(fvec2) FSub 201 202 + Store 196(storeTemp) 203 + 204: 69 Load 71(g_tTex1df2) + 205: 6(int) Load 193(coordTemp) + 206: 21(fvec2) Load 196(storeTemp) + ImageWrite 204 205 206 + 208: 73(ptr) AccessChain 61 51 + 209: 6(int) Load 208 + Store 207(coordTemp) 209 + 211: 69 Load 71(g_tTex1df2) + 212: 6(int) Load 207(coordTemp) + 213: 21(fvec2) ImageRead 211 212 + Store 210(storeTemp) 213 + 215: 21(fvec2) Load 210(storeTemp) + 216: 21(fvec2) CompositeConstruct 214 214 + 217: 21(fvec2) FAdd 215 216 + Store 210(storeTemp) 217 + 218: 69 Load 71(g_tTex1df2) + 219: 6(int) Load 207(coordTemp) + 220: 21(fvec2) Load 210(storeTemp) + ImageWrite 218 219 220 + 222: 73(ptr) AccessChain 61 51 + 223: 6(int) Load 222 + Store 221(coordTemp) 223 + 225: 83 Load 85(g_tTex1di2) + 226: 6(int) Load 221(coordTemp) + 227: 7(ivec2) ImageRead 225 226 + Store 224(storeTemp) 227 + 228: 7(ivec2) Load 224(storeTemp) + 229: 7(ivec2) CompositeConstruct 127 127 + 230: 7(ivec2) SDiv 228 229 + Store 224(storeTemp) 230 + 231: 83 Load 85(g_tTex1di2) + 232: 6(int) Load 221(coordTemp) + 233: 7(ivec2) Load 224(storeTemp) + ImageWrite 231 232 233 + 235: 73(ptr) AccessChain 61 51 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 83 Load 85(g_tTex1di2) + 239: 6(int) Load 234(coordTemp) + 240: 7(ivec2) ImageRead 238 239 + Store 237(storeTemp) 240 + 241: 7(ivec2) Load 237(storeTemp) + 242: 7(ivec2) CompositeConstruct 127 127 + 243: 7(ivec2) SMod 241 242 + Store 237(storeTemp) 243 + 244: 83 Load 85(g_tTex1di2) + 245: 6(int) Load 234(coordTemp) + 246: 7(ivec2) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 73(ptr) AccessChain 61 51 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 83 Load 85(g_tTex1di2) + 252: 6(int) Load 247(coordTemp) + 253: 7(ivec2) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 7(ivec2) Load 250(storeTemp) + 256: 7(ivec2) CompositeConstruct 254 254 + 257: 7(ivec2) BitwiseAnd 255 256 + Store 250(storeTemp) 257 + 258: 83 Load 85(g_tTex1di2) + 259: 6(int) Load 247(coordTemp) + 260: 7(ivec2) Load 250(storeTemp) + ImageWrite 258 259 260 + 262: 73(ptr) AccessChain 61 51 + 263: 6(int) Load 262 + Store 261(coordTemp) 263 + 265: 83 Load 85(g_tTex1di2) + 266: 6(int) Load 261(coordTemp) + 267: 7(ivec2) ImageRead 265 266 + Store 264(storeTemp) 267 + 269: 7(ivec2) Load 264(storeTemp) + 270: 7(ivec2) CompositeConstruct 268 268 + 271: 7(ivec2) BitwiseOr 269 270 + Store 264(storeTemp) 271 + 272: 83 Load 85(g_tTex1di2) + 273: 6(int) Load 261(coordTemp) + 274: 7(ivec2) Load 264(storeTemp) + ImageWrite 272 273 274 + 276: 73(ptr) AccessChain 61 51 + 277: 6(int) Load 276 + Store 275(coordTemp) 277 + 279: 83 Load 85(g_tTex1di2) + 280: 6(int) Load 275(coordTemp) + 281: 7(ivec2) ImageRead 279 280 + Store 278(storeTemp) 281 + 282: 7(ivec2) Load 278(storeTemp) + 283: 7(ivec2) CompositeConstruct 127 127 + 284: 7(ivec2) ShiftLeftLogical 282 283 + Store 278(storeTemp) 284 + 285: 83 Load 85(g_tTex1di2) + 286: 6(int) Load 275(coordTemp) + 287: 7(ivec2) Load 278(storeTemp) + ImageWrite 285 286 287 + 289: 73(ptr) AccessChain 61 51 + 290: 6(int) Load 289 + Store 288(coordTemp) 290 + 292: 83 Load 85(g_tTex1di2) + 293: 6(int) Load 288(coordTemp) + 294: 7(ivec2) ImageRead 292 293 + Store 291(storeTemp) 294 + 295: 7(ivec2) Load 291(storeTemp) + 296: 7(ivec2) CompositeConstruct 127 127 + 297: 7(ivec2) ShiftRightArithmetic 295 296 + Store 291(storeTemp) 297 + 298: 83 Load 85(g_tTex1di2) + 299: 6(int) Load 288(coordTemp) + 300: 7(ivec2) Load 291(storeTemp) + ImageWrite 298 299 300 + 302: 21(fvec2) FunctionCall 40(SomeValue() + Store 301(storeTemp) 302 + 303: 99 Load 101(g_tTex2df2) + 304: 63(ptr) AccessChain 61 62 + 305: 7(ivec2) Load 304 + 306: 21(fvec2) Load 301(storeTemp) + ImageWrite 303 305 306 + 307: 99 Load 101(g_tTex2df2) + 308: 63(ptr) AccessChain 61 62 + 309: 7(ivec2) Load 308 + 310: 21(fvec2) Load 148(lf2) + ImageWrite 307 309 310 + Store 311(storeTemp) 313 + 314: 107 Load 109(g_tTex2di2) + 315: 63(ptr) AccessChain 61 62 + 316: 7(ivec2) Load 315 + 317: 7(ivec2) Load 311(storeTemp) + ImageWrite 314 316 317 + Store 318(storeTemp) 320 + 321: 115 Load 117(g_tTex2du2) + 322: 63(ptr) AccessChain 61 62 + 323: 7(ivec2) Load 322 + 324: 14(ivec2) Load 318(storeTemp) + ImageWrite 321 323 324 + 326: 21(fvec2) FunctionCall 40(SomeValue() + Store 325(storeTemp) 326 + 327: 123 Load 125(g_tTex3df2) + 328: 128(ptr) AccessChain 61 127 + 329: 57(ivec3) Load 328 + 330: 21(fvec2) Load 325(storeTemp) + ImageWrite 327 329 330 + 331: 123 Load 125(g_tTex3df2) + 332: 128(ptr) AccessChain 61 127 + 333: 57(ivec3) Load 332 + 334: 21(fvec2) Load 148(lf2) + ImageWrite 331 333 334 + Store 335(storeTemp) 337 + 338: 133 Load 135(g_tTex3di2) + 339: 128(ptr) AccessChain 61 127 + 340: 57(ivec3) Load 339 + 341: 7(ivec2) Load 335(storeTemp) + ImageWrite 338 340 341 + Store 342(storeTemp) 344 + 345: 141 Load 143(g_tTex3du2) + 346: 128(ptr) AccessChain 61 127 + 347: 57(ivec3) Load 346 + 348: 14(ivec2) Load 342(storeTemp) + ImageWrite 345 347 348 + 349: 69 Load 71(g_tTex1df2) + 350: 73(ptr) AccessChain 61 51 + 351: 6(int) Load 350 + 352: 21(fvec2) ImageRead 349 351 + Store 353(param) 352 + 354: 21(fvec2) FunctionCall 25(Fn1(vf2;) 353(param) + 355: 83 Load 85(g_tTex1di2) + 356: 73(ptr) AccessChain 61 51 + 357: 6(int) Load 356 + 358: 7(ivec2) ImageRead 355 357 + Store 359(param) 358 + 360: 7(ivec2) FunctionCall 11(Fn1(vi2;) 359(param) + 361: 91 Load 93(g_tTex1du2) + 362: 73(ptr) AccessChain 61 51 + 363: 6(int) Load 362 + 364: 14(ivec2) ImageRead 361 363 + Store 365(param) 364 + 366: 14(ivec2) FunctionCall 18(Fn1(vu2;) 365(param) + 369: 2 FunctionCall 37(Fn2(vf2;) 368(param) + 370: 21(fvec2) Load 368(param) + Store 367(tempArg) 370 + 371: 69 Load 71(g_tTex1df2) + 372: 73(ptr) AccessChain 61 51 + 373: 6(int) Load 372 + 374: 21(fvec2) Load 367(tempArg) + ImageWrite 371 373 374 + 377: 2 FunctionCall 29(Fn2(vi2;) 376(param) + 378: 7(ivec2) Load 376(param) + Store 375(tempArg) 378 + 379: 83 Load 85(g_tTex1di2) + 380: 73(ptr) AccessChain 61 51 + 381: 6(int) Load 380 + 382: 7(ivec2) Load 375(tempArg) + ImageWrite 379 381 382 + 385: 2 FunctionCall 33(Fn2(vu2;) 384(param) + 386: 14(ivec2) Load 384(param) + Store 383(tempArg) 386 + 387: 91 Load 93(g_tTex1du2) + 388: 73(ptr) AccessChain 61 51 + 389: 6(int) Load 388 + 390: 14(ivec2) Load 383(tempArg) + ImageWrite 387 389 390 + 392: 73(ptr) AccessChain 61 51 + 393: 6(int) Load 392 + Store 391(coordTemp) 393 + 395: 69 Load 71(g_tTex1df2) + 396: 6(int) Load 391(coordTemp) + 397: 21(fvec2) ImageRead 395 396 + Store 394(storeTemp) 397 + 398: 21(fvec2) Load 394(storeTemp) + 400: 21(fvec2) CompositeConstruct 399 399 + 401: 21(fvec2) FAdd 398 400 + Store 394(storeTemp) 401 + 402: 69 Load 71(g_tTex1df2) + 403: 6(int) Load 391(coordTemp) + 404: 21(fvec2) Load 394(storeTemp) + ImageWrite 402 403 404 + 406: 73(ptr) AccessChain 61 51 + 407: 6(int) Load 406 + Store 405(coordTemp) 407 + 409: 83 Load 85(g_tTex1di2) + 410: 6(int) Load 405(coordTemp) + 411: 7(ivec2) ImageRead 409 410 + Store 408(storeTemp) 411 + 412: 7(ivec2) Load 408(storeTemp) + 413: 7(ivec2) CompositeConstruct 62 62 + 414: 7(ivec2) IAdd 412 413 + Store 408(storeTemp) 414 + 415: 83 Load 85(g_tTex1di2) + 416: 6(int) Load 405(coordTemp) + 417: 7(ivec2) Load 408(storeTemp) + ImageWrite 415 416 417 + 419: 73(ptr) AccessChain 61 51 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 91 Load 93(g_tTex1du2) + 423: 6(int) Load 418(coordTemp) + 424: 14(ivec2) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 14(ivec2) Load 421(storeTemp) + 426: 7(ivec2) CompositeConstruct 62 62 + 427: 14(ivec2) IAdd 425 426 + Store 421(storeTemp) 427 + 428: 91 Load 93(g_tTex1du2) + 429: 6(int) Load 418(coordTemp) + 430: 14(ivec2) Load 421(storeTemp) + ImageWrite 428 429 430 + 432: 73(ptr) AccessChain 61 51 + 433: 6(int) Load 432 + Store 431(coordTemp) 433 + 435: 69 Load 71(g_tTex1df2) + 436: 6(int) Load 431(coordTemp) + 437: 21(fvec2) ImageRead 435 436 + Store 434(storeTemp) 437 + 438: 21(fvec2) Load 434(storeTemp) + 439: 21(fvec2) CompositeConstruct 399 399 + 440: 21(fvec2) FSub 438 439 + Store 434(storeTemp) 440 + 441: 69 Load 71(g_tTex1df2) + 442: 6(int) Load 431(coordTemp) + 443: 21(fvec2) Load 434(storeTemp) + ImageWrite 441 442 443 + 445: 73(ptr) AccessChain 61 51 + 446: 6(int) Load 445 + Store 444(coordTemp) 446 + 448: 83 Load 85(g_tTex1di2) + 449: 6(int) Load 444(coordTemp) + 450: 7(ivec2) ImageRead 448 449 + Store 447(storeTemp) 450 + 451: 7(ivec2) Load 447(storeTemp) + 452: 7(ivec2) CompositeConstruct 62 62 + 453: 7(ivec2) ISub 451 452 + Store 447(storeTemp) 453 + 454: 83 Load 85(g_tTex1di2) + 455: 6(int) Load 444(coordTemp) + 456: 7(ivec2) Load 447(storeTemp) + ImageWrite 454 455 456 + 458: 73(ptr) AccessChain 61 51 + 459: 6(int) Load 458 + Store 457(coordTemp) 459 + 461: 91 Load 93(g_tTex1du2) + 462: 6(int) Load 457(coordTemp) + 463: 14(ivec2) ImageRead 461 462 + Store 460(storeTemp) 463 + 464: 14(ivec2) Load 460(storeTemp) + 465: 7(ivec2) CompositeConstruct 62 62 + 466: 14(ivec2) ISub 464 465 + Store 460(storeTemp) 466 + 467: 91 Load 93(g_tTex1du2) + 468: 6(int) Load 457(coordTemp) + 469: 14(ivec2) Load 460(storeTemp) + ImageWrite 467 468 469 + 471: 73(ptr) AccessChain 61 51 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 69 Load 71(g_tTex1df2) + 475: 6(int) Load 470(coordTemp) + 476: 21(fvec2) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 21(fvec2) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 21(fvec2) Load 477(storeTempPost) + 480: 21(fvec2) CompositeConstruct 399 399 + 481: 21(fvec2) FAdd 479 480 + Store 477(storeTempPost) 481 + 482: 69 Load 71(g_tTex1df2) + 483: 6(int) Load 470(coordTemp) + 484: 21(fvec2) Load 477(storeTempPost) + ImageWrite 482 483 484 + 486: 73(ptr) AccessChain 61 51 + 487: 6(int) Load 486 + Store 485(coordTemp) 487 + 489: 91 Load 93(g_tTex1du2) + 490: 6(int) Load 485(coordTemp) + 491: 14(ivec2) ImageRead 489 490 + Store 488(storeTempPre) 491 + 493: 14(ivec2) Load 488(storeTempPre) + Store 492(storeTempPost) 493 + 494: 14(ivec2) Load 492(storeTempPost) + 495: 7(ivec2) CompositeConstruct 62 62 + 496: 14(ivec2) ISub 494 495 + Store 492(storeTempPost) 496 + 497: 91 Load 93(g_tTex1du2) + 498: 6(int) Load 485(coordTemp) + 499: 14(ivec2) Load 492(storeTempPost) + ImageWrite 497 498 499 + 501: 73(ptr) AccessChain 61 51 + 502: 6(int) Load 501 + Store 500(coordTemp) 502 + 504: 83 Load 85(g_tTex1di2) + 505: 6(int) Load 500(coordTemp) + 506: 7(ivec2) ImageRead 504 505 + Store 503(storeTempPre) 506 + 508: 7(ivec2) Load 503(storeTempPre) + Store 507(storeTempPost) 508 + 509: 7(ivec2) Load 507(storeTempPost) + 510: 7(ivec2) CompositeConstruct 62 62 + 511: 7(ivec2) IAdd 509 510 + Store 507(storeTempPost) 511 + 512: 83 Load 85(g_tTex1di2) + 513: 6(int) Load 500(coordTemp) + 514: 7(ivec2) Load 507(storeTempPost) + ImageWrite 512 513 514 + 516: 73(ptr) AccessChain 61 51 + 517: 6(int) Load 516 + Store 515(coordTemp) 517 + 519: 69 Load 71(g_tTex1df2) + 520: 6(int) Load 515(coordTemp) + 521: 21(fvec2) ImageRead 519 520 + Store 518(storeTempPre) 521 + 523: 21(fvec2) Load 518(storeTempPre) + Store 522(storeTempPost) 523 + 524: 21(fvec2) Load 522(storeTempPost) + 525: 21(fvec2) CompositeConstruct 399 399 + 526: 21(fvec2) FSub 524 525 + Store 522(storeTempPost) 526 + 527: 69 Load 71(g_tTex1df2) + 528: 6(int) Load 515(coordTemp) + 529: 21(fvec2) Load 522(storeTempPost) + ImageWrite 527 528 529 + 531: 73(ptr) AccessChain 61 51 + 532: 6(int) Load 531 + Store 530(coordTemp) 532 + 534: 83 Load 85(g_tTex1di2) + 535: 6(int) Load 530(coordTemp) + 536: 7(ivec2) ImageRead 534 535 + Store 533(storeTempPre) 536 + 538: 7(ivec2) Load 533(storeTempPre) + Store 537(storeTempPost) 538 + 539: 7(ivec2) Load 537(storeTempPost) + 540: 7(ivec2) CompositeConstruct 62 62 + 541: 7(ivec2) IAdd 539 540 + Store 537(storeTempPost) 541 + 542: 83 Load 85(g_tTex1di2) + 543: 6(int) Load 530(coordTemp) + 544: 7(ivec2) Load 537(storeTempPost) + ImageWrite 542 543 544 + 546: 73(ptr) AccessChain 61 51 + 547: 6(int) Load 546 + Store 545(coordTemp) 547 + 549: 91 Load 93(g_tTex1du2) + 550: 6(int) Load 545(coordTemp) + 551: 14(ivec2) ImageRead 549 550 + Store 548(storeTempPre) 551 + 553: 14(ivec2) Load 548(storeTempPre) + Store 552(storeTempPost) 553 + 554: 14(ivec2) Load 552(storeTempPost) + 555: 7(ivec2) CompositeConstruct 62 62 + 556: 14(ivec2) ISub 554 555 + Store 552(storeTempPost) 556 + 557: 91 Load 93(g_tTex1du2) + 558: 6(int) Load 545(coordTemp) + 559: 14(ivec2) Load 552(storeTempPost) + ImageWrite 557 558 559 + 561: 99 Load 101(g_tTex2df2) + 564: 21(fvec2) ImageRead 561 563 + Store 560(storeTemp) 564 + 565: 69 Load 71(g_tTex1df2) + 566: 21(fvec2) Load 560(storeTemp) + ImageWrite 565 62 566 + 573: 572(ptr) AccessChain 570(psout) 51 + Store 573 571 + 576: 572(ptr) AccessChain 570(psout) 51 + 577: 567(fvec4) Load 576 + Store 575(Color) 577 + Return + FunctionEnd + 11(Fn1(vi2;): 7(ivec2) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 42: 7(ivec2) Load 10(x) + ReturnValue 42 + FunctionEnd + 18(Fn1(vu2;): 14(ivec2) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 45: 14(ivec2) Load 17(x) + ReturnValue 45 + FunctionEnd + 25(Fn1(vf2;): 21(fvec2) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 48: 21(fvec2) Load 24(x) + ReturnValue 48 + FunctionEnd + 29(Fn2(vi2;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 52 + Return + FunctionEnd + 33(Fn2(vu2;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 54 + Return + FunctionEnd + 37(Fn2(vf2;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 56 + Return + FunctionEnd + 40(SomeValue(): 21(fvec2) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec2) Load 64 + 66: 21(fvec2) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/Test/hlsl.load.buffer.float.dx10.frag b/Test/hlsl.load.buffer.float.dx10.frag new file mode 100644 index 00000000..eeea9a63 --- /dev/null +++ b/Test/hlsl.load.buffer.float.dx10.frag @@ -0,0 +1,38 @@ +uniform Buffer g_tTexbfs_test : register(t0); + +Buffer g_tTexbfs; +Buffer g_tTexbis; +Buffer g_tTexbus; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Buffer + float r00 = g_tTexbfs.Load(c1); + int r01 = g_tTexbis.Load(c1); + uint r02 = g_tTexbus.Load(c1); + + // TODO: other types that can be put in sampler buffers, like float2x2, and float3. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.rw.scalar.bracket.frag b/Test/hlsl.rw.scalar.bracket.frag new file mode 100644 index 00000000..e185f05d --- /dev/null +++ b/Test/hlsl.rw.scalar.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df1; +RWTexture1D g_tTex1di1; +RWTexture1D g_tTex1du1; + +RWTexture2D g_tTex2df1; +RWTexture2D g_tTex2di1; +RWTexture2D g_tTex2du1; + +RWTexture3D g_tTex3df1; +RWTexture3D g_tTex3di1; +RWTexture3D g_tTex3du1; + +RWTexture1DArray g_tTex1df1a; +RWTexture1DArray g_tTex1di1a; +RWTexture1DArray g_tTex1du1a; + +RWTexture2DArray g_tTex2df1a; +RWTexture2DArray g_tTex2di1a; +RWTexture2DArray g_tTex2du1a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float uf1; +uniform int ui1; +uniform uint uu1; + +int Fn1(in int x) { return x; } +uint Fn1(in uint x) { return x; } +float Fn1(in float x) { return x; } + +void Fn2(out int x) { x = int(0); } +void Fn2(out uint x) { x = uint(0); } +void Fn2(out float x) { x = float(0); } + +float SomeValue() { return c1; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df1[c1]; + + float r00 = g_tTex1df1[c1]; + int r01 = g_tTex1di1[c1]; + uint r02 = g_tTex1du1[c1]; + + // 2D + float r10 = g_tTex2df1[c2]; + int r11 = g_tTex2di1[c2]; + uint r12 = g_tTex2du1[c2]; + + // 3D + float r20 = g_tTex3df1[c3]; + int r21 = g_tTex3di1[c3]; + uint r22 = g_tTex3du1[c3]; + + float lf1 = uf1; + + // Test as L-values + // 1D + g_tTex1df1[c1] = SomeValue(); // complex R-value + g_tTex1df1[c1] = lf1; + g_tTex1di1[c1] = int(2); + g_tTex1du1[c1] = uint(3); + + // Test some operator= things, which need to do both a load and a store. + float val1 = (g_tTex1df1[c1] *= 2.0); + g_tTex1df1[c1] -= 3.0; + g_tTex1df1[c1] += 4.0; + + g_tTex1di1[c1] /= 2; + g_tTex1di1[c1] %= 2; + g_tTex1di1[c1] &= 0xffff; + g_tTex1di1[c1] |= 0xf0f0; + g_tTex1di1[c1] <<= 2; + g_tTex1di1[c1] >>= 2; + + // 2D + g_tTex2df1[c2] = SomeValue(); // complex L-value + g_tTex2df1[c2] = lf1; + g_tTex2di1[c2] = int(5); + g_tTex2du1[c2] = uint(6); + + // 3D + g_tTex3df1[c3] = SomeValue(); // complex L-value + g_tTex3df1[c3] = lf1; + g_tTex3di1[c3] = int(8); + g_tTex3du1[c3] = uint(9); + + // Test function calling + Fn1(g_tTex1df1[c1]); // in + Fn1(g_tTex1di1[c1]); // in + Fn1(g_tTex1du1[c1]); // in + + Fn2(g_tTex1df1[c1]); // out + Fn2(g_tTex1di1[c1]); // out + Fn2(g_tTex1du1[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df1[c1]; + ++g_tTex1di1[c1]; + ++g_tTex1du1[c1]; + + --g_tTex1df1[c1]; + --g_tTex1di1[c1]; + --g_tTex1du1[c1]; + + // post-ops + g_tTex1df1[c1]++; + g_tTex1du1[c1]--; + g_tTex1di1[c1]++; + + g_tTex1df1[c1]--; + g_tTex1di1[c1]++; + g_tTex1du1[c1]--; + + // read and write + g_tTex1df1[1] = g_tTex2df1[int2(2, 3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.rw.vec2.bracket.frag b/Test/hlsl.rw.vec2.bracket.frag new file mode 100644 index 00000000..7b4a10a8 --- /dev/null +++ b/Test/hlsl.rw.vec2.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D g_tTex1df2; +RWTexture1D g_tTex1di2; +RWTexture1D g_tTex1du2; + +RWTexture2D g_tTex2df2; +RWTexture2D g_tTex2di2; +RWTexture2D g_tTex2du2; + +RWTexture3D g_tTex3df2; +RWTexture3D g_tTex3di2; +RWTexture3D g_tTex3du2; + +RWTexture1DArray g_tTex1df2a; +RWTexture1DArray g_tTex1di2a; +RWTexture1DArray g_tTex1du2a; + +RWTexture2DArray g_tTex2df2a; +RWTexture2DArray g_tTex2di2a; +RWTexture2DArray g_tTex2du2a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float2 uf2; +uniform int2 ui2; +uniform uint2 uu2; + +int2 Fn1(in int2 x) { return x; } +uint2 Fn1(in uint2 x) { return x; } +float2 Fn1(in float2 x) { return x; } + +void Fn2(out int2 x) { x = int2(0,0); } +void Fn2(out uint2 x) { x = uint2(0,0); } +void Fn2(out float2 x) { x = float2(0,0); } + +float2 SomeValue() { return c2; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df2[c1]; + + float2 r00 = g_tTex1df2[c1]; + int2 r01 = g_tTex1di2[c1]; + uint2 r02 = g_tTex1du2[c1]; + + // 2D + float2 r10 = g_tTex2df2[c2]; + int2 r11 = g_tTex2di2[c2]; + uint2 r12 = g_tTex2du2[c2]; + + // 3D + float2 r20 = g_tTex3df2[c3]; + int2 r21 = g_tTex3di2[c3]; + uint2 r22 = g_tTex3du2[c3]; + + float2 lf2 = uf2; + + // Test as L-values + // 1D + g_tTex1df2[c1] = SomeValue(); // complex R-value + g_tTex1df2[c1] = lf2; + g_tTex1di2[c1] = int2(2,2); + g_tTex1du2[c1] = uint2(3,2); + + // Test some operator= things, which need to do both a load and a store. + float2 val1 = (g_tTex1df2[c1] *= 2.0); + g_tTex1df2[c1] -= 3.0; + g_tTex1df2[c1] += 4.0; + + g_tTex1di2[c1] /= 2; + g_tTex1di2[c1] %= 2; + g_tTex1di2[c1] &= 0xffff; + g_tTex1di2[c1] |= 0xf0f0; + g_tTex1di2[c1] <<= 2; + g_tTex1di2[c1] >>= 2; + + // 2D + g_tTex2df2[c2] = SomeValue(); // complex L-value + g_tTex2df2[c2] = lf2; + g_tTex2di2[c2] = int2(5,2); + g_tTex2du2[c2] = uint2(6,2); + + // 3D + g_tTex3df2[c3] = SomeValue(); // complex L-value + g_tTex3df2[c3] = lf2; + g_tTex3di2[c3] = int2(8,6); + g_tTex3du2[c3] = uint2(9,2); + + // Test function calling + Fn1(g_tTex1df2[c1]); // in + Fn1(g_tTex1di2[c1]); // in + Fn1(g_tTex1du2[c1]); // in + + Fn2(g_tTex1df2[c1]); // out + Fn2(g_tTex1di2[c1]); // out + Fn2(g_tTex1du2[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df2[c1]; + ++g_tTex1di2[c1]; + ++g_tTex1du2[c1]; + + --g_tTex1df2[c1]; + --g_tTex1di2[c1]; + --g_tTex1du2[c1]; + + // post-ops + g_tTex1df2[c1]++; + g_tTex1du2[c1]--; + g_tTex1di2[c1]++; + + g_tTex1df2[c1]--; + g_tTex1di2[c1]++; + g_tTex1du2[c1]--; + + // read and write + g_tTex1df2[1] = g_tTex2df2[int2(2,3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 35b48312..fb3fb92f 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -823,6 +823,53 @@ public: default: return "none"; } } + static int getLayoutComponentCount(TLayoutFormat f) + { + switch (f) { + case ElfRgba32f: return 4; + case ElfRgba16f: return 4; + case ElfRg32f: return 2; + case ElfRg16f: return 2; + case ElfR11fG11fB10f: return 3; + case ElfR32f: return 1; + case ElfR16f: return 1; + case ElfRgba16: return 4; + case ElfRgb10A2: return 4; + case ElfRgba8: return 4; + case ElfRg16: return 2; + case ElfRg8: return 2; + case ElfR16: return 1; + case ElfR8: return 1; + case ElfRgba16Snorm: return 4; + case ElfRgba8Snorm: return 4; + case ElfRg16Snorm: return 2; + case ElfRg8Snorm: return 2; + case ElfR16Snorm: return 1; + case ElfR8Snorm: return 1; + + case ElfRgba32i: return 4; + case ElfRgba16i: return 4; + case ElfRgba8i: return 4; + case ElfRg32i: return 2; + case ElfRg16i: return 2; + case ElfRg8i: return 2; + case ElfR32i: return 1; + case ElfR16i: return 1; + case ElfR8i: return 1; + + case ElfRgba32ui: return 4; + case ElfRgba16ui: return 4; + case ElfRgba8ui: return 4; + case ElfRg32ui: return 2; + case ElfRg16ui: return 2; + case ElfRgb10a2ui: return 4; + case ElfRg8ui: return 2; + case ElfR32ui: return 1; + case ElfR16ui: return 1; + case ElfR8ui: return 1; + default: return 4; + } + } static const char* getLayoutDepthString(TLayoutDepth d) { switch (d) { diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 354a5dfe..cfca4b98 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -134,6 +134,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.buffer.dx10.frag", "main"}, + {"hlsl.load.buffer.float.dx10.frag", "main"}, {"hlsl.load.rwbuffer.dx10.frag", "main"}, {"hlsl.load.rwtexture.dx10.frag", "main"}, {"hlsl.load.rwtexture.array.dx10.frag", "main"}, @@ -148,6 +149,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.precise.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, + {"hlsl.rw.scalar.bracket.frag", "main"}, + {"hlsl.rw.vec2.bracket.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 5f9ec267..c9c4716e 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -907,11 +907,11 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } - if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4) { - // TODO: handle vec2/3 types - expected("vector size not yet supported in texture type"); - return false; - } + // if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4 && !image) { + // // TODO: handle vec2/3 types + // expected("vector size not yet supported in texture type"); + // return false; + // } if (ms && acceptTokenClass(EHTokComma)) { // read sample count for multisample types, if given @@ -937,24 +937,14 @@ bool HlslGrammar::acceptTextureType(TType& type) } TArraySizes* arraySizes = nullptr; - const bool shadow = !image && (txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1)); + const bool shadow = false; // declared on the sampler TSampler sampler; TLayoutFormat format = ElfNone; - // RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. - if (image) { - if (txType.getVectorSize() != 4) - expected("4 component image"); - - switch (txType.getBasicType()) { - case EbtFloat: format = ElfRgba32f; break; - case EbtInt: format = ElfRgba32i; break; - case EbtUint: format = ElfRgba32ui; break; - default: - expected("unknown basic type in image format"); - } - } + // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. + if (image || dim == EsdBuffer) + format = parseContext.getLayoutFromTxType(token.loc, txType); // Non-image Buffers are combined if (dim == EsdBuffer && !image) { diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 3137bedb..1ba7d08a 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -147,6 +147,28 @@ bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const return false; } +// +// Return a TLayoutFormat corresponding to the given texture type. +// +TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const TType& txType) +{ + const int components = txType.getVectorSize(); + + const auto select = [&](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { + return components == 1 ? v1 : + components == 2 ? v2 : v4; + }; + + switch (txType.getBasicType()) { + case EbtFloat: return select(ElfR32f, ElfRg32f, ElfRgba32f); + case EbtInt: return select(ElfR32i, ElfRg32i, ElfRgba32i); + case EbtUint: return select(ElfR32ui, ElfRg32ui, ElfRgba32ui); + default: + error(loc, "unknown basic type in image format", "", ""); + return ElfNone; + } +} + // // Both test and if necessary, spit out an error, to see if the node is really // an l-value that can be operated on this way. @@ -265,10 +287,14 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); const TLayoutFormat fmt = object->getType().getQualifier().layoutFormat; - // We only handle 4 component formats at the moment. - assert(fmt == ElfRgba32f || fmt == ElfRgba32i || fmt == ElfRgba32ui); - const TType objDerefType(object->getType().getSampler().type, EvqTemporary, 4); + // We only handle this subset of the possible formats. + assert(fmt == ElfRgba32f || fmt == ElfRgba32i || fmt == ElfRgba32ui || + fmt == ElfRg32f || fmt == ElfRg32i || fmt == ElfRg32ui || + fmt == ElfR32f || fmt == ElfR32i || fmt == ElfR32ui); + + const TType objDerefType(object->getType().getSampler().type, EvqTemporary, + TQualifier::getLayoutComponentCount(fmt)); if (nodeAsBinary) { TIntermTyped* rhs = nodeAsBinary->getRight(); @@ -578,7 +604,7 @@ TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIn if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { const TSampler& sampler = base->getType().getSampler(); if (sampler.isImage() || sampler.isTexture()) { - const int vecSize = 4; // TODO: handle arbitrary sizes (get from qualifier) + const int vecSize = TQualifier::getLayoutComponentCount(base->getType().getQualifier().layoutFormat); TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); load->setType(TType(sampler.type, EvqTemporary, vecSize)); @@ -1781,7 +1807,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argOffset); } - txfetch->setType(node->getType()); + int vecSize = TQualifier::getLayoutComponentCount(argTex->getType().getQualifier().layoutFormat); + + txfetch->setType(TType(node->getType().getBasicType(), EvqTemporary, vecSize)); txfetch->setLoc(loc); node = txfetch; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index d8e75466..2eeba5ac 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -156,6 +156,8 @@ public: TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node); bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); + protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; From 8b0227ced9c46b2f28f8871df959cfa6b77dd289 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 14 Oct 2016 16:40:32 -0600 Subject: [PATCH 207/217] HLSL: phase 3b: Texture methods remember and return vector size. Also makes a (correct) test change for global -> temp vars. --- Test/baseResults/hlsl.array.flatten.frag.out | 8 +- .../hlsl.load.buffer.float.dx10.frag.out | 220 +++++++-------- .../hlsl.sample.array.dx10.frag.out | 36 +-- .../hlsl.sample.basic.dx10.frag.out | 48 ++-- .../hlsl.sample.offset.dx10.frag.out | 36 +-- .../hlsl.sample.offsetarray.dx10.frag.out | 24 +- .../hlsl.sample.sub-vec4.dx10.frag.out | 252 ++++++++++++++++++ .../hlsl.samplebias.array.dx10.frag.out | 36 +-- .../hlsl.samplebias.basic.dx10.frag.out | 48 ++-- .../hlsl.samplebias.offset.dx10.frag.out | 36 +-- .../hlsl.samplebias.offsetarray.dx10.frag.out | 24 +- .../hlsl.samplegrad.array.dx10.frag.out | 36 +-- .../hlsl.samplegrad.basic.dx10.frag.out | 48 ++-- .../hlsl.samplegrad.basic.dx10.vert.out | 48 ++-- .../hlsl.samplegrad.offset.dx10.frag.out | 36 +-- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 24 +- .../hlsl.samplelevel.array.dx10.frag.out | 36 +-- .../hlsl.samplelevel.basic.dx10.frag.out | 48 ++-- .../hlsl.samplelevel.basic.dx10.vert.out | 48 ++-- .../hlsl.samplelevel.offset.dx10.frag.out | 36 +-- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 24 +- Test/hlsl.sample.sub-vec4.dx10.frag | 24 ++ glslang/Include/Types.h | 52 +--- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 9 +- hlsl/hlslParseHelper.cpp | 97 ++++--- hlsl/hlslParseables.cpp | 6 +- 27 files changed, 800 insertions(+), 541 deletions(-) create mode 100644 Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out create mode 100644 Test/hlsl.sample.sub-vec4.dx10.frag diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index 185c2cc6..cbfb0ef9 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -6,7 +6,7 @@ gl_FragCoord origin is upper left 0:17 Function Parameters: 0:? Sequence 0:18 Branch: Return with expression -0:18 texture (global 4-component vector of float) +0:18 texture (temp 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) 0:? 'g_tex[1]' (uniform texture1D) 0:? 'g_samp[1]' (uniform sampler) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:22 'l_samp' (in 3-element array of sampler) 0:? Sequence 0:23 Branch: Return with expression -0:23 texture (global 4-component vector of float) +0:23 texture (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1D) 0:23 direct index (temp texture1D) 0:23 'l_tex' (in 3-element array of texture1D) @@ -165,7 +165,7 @@ gl_FragCoord origin is upper left 0:17 Function Parameters: 0:? Sequence 0:18 Branch: Return with expression -0:18 texture (global 4-component vector of float) +0:18 texture (temp 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) 0:? 'g_tex[1]' (uniform texture1D) 0:? 'g_samp[1]' (uniform sampler) @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:22 'l_samp' (in 3-element array of sampler) 0:? Sequence 0:23 Branch: Return with expression -0:23 texture (global 4-component vector of float) +0:23 texture (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1D) 0:23 direct index (temp texture1D) 0:23 'l_tex' (in 3-element array of texture1D) diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index 87e96802..6d64b94c 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -8,30 +8,33 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp float) 0:28 'r00' (temp float) -0:28 textureFetch (temp float) -0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:28 Constant: -0:28 0 (const uint) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp int) 0:29 'r01' (temp int) -0:29 textureFetch (temp int) -0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:29 Constant: -0:29 0 (const uint) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp uint) 0:30 'r02' (temp uint) -0:30 textureFetch (temp uint) -0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:30 Constant: -0:30 0 (const uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -86,30 +89,33 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp float) 0:28 'r00' (temp float) -0:28 textureFetch (temp float) -0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) -0:28 c1: direct index for structure (layout(offset=0 ) uniform int) -0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:28 Constant: -0:28 0 (const uint) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp int) 0:29 'r01' (temp int) -0:29 textureFetch (temp int) -0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) -0:29 c1: direct index for structure (layout(offset=0 ) uniform int) -0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:29 Constant: -0:29 0 (const uint) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp uint) 0:30 'r02' (temp uint) -0:30 textureFetch (temp uint) -0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:30 c1: direct index for structure (layout(offset=0 ) uniform int) -0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:30 Constant: -0:30 0 (const uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -153,13 +159,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 70 +// Id's are bound by 74 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 61 65 + EntryPoint Fragment 4 "main" 65 69 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" @@ -174,17 +180,17 @@ gl_FragCoord origin is upper left MemberName 18($Global) 6 "o3" MemberName 18($Global) 7 "o4" Name 20 "" - Name 28 "r01" - Name 32 "g_tTexbis" - Name 40 "r02" - Name 44 "g_tTexbus" - Name 51 "PS_OUTPUT" - MemberName 51(PS_OUTPUT) 0 "Color" - MemberName 51(PS_OUTPUT) 1 "Depth" - Name 53 "psout" - Name 61 "Color" - Name 65 "Depth" - Name 69 "g_tTexbfs_test" + Name 30 "r01" + Name 34 "g_tTexbis" + Name 43 "r02" + Name 47 "g_tTexbus" + Name 55 "PS_OUTPUT" + MemberName 55(PS_OUTPUT) 0 "Color" + MemberName 55(PS_OUTPUT) 1 "Depth" + Name 57 "psout" + Name 65 "Color" + Name 69 "Depth" + Name 73 "g_tTexbfs_test" Decorate 12(g_tTexbfs) DescriptorSet 0 MemberDecorate 18($Global) 0 Offset 0 MemberDecorate 18($Global) 1 Offset 8 @@ -196,12 +202,12 @@ gl_FragCoord origin is upper left MemberDecorate 18($Global) 7 Offset 80 Decorate 18($Global) Block Decorate 20 DescriptorSet 0 - Decorate 32(g_tTexbis) DescriptorSet 0 - Decorate 44(g_tTexbus) DescriptorSet 0 - Decorate 61(Color) Location 0 - Decorate 65(Depth) BuiltIn FragDepth - Decorate 69(g_tTexbfs_test) DescriptorSet 0 - Decorate 69(g_tTexbfs_test) Binding 0 + Decorate 34(g_tTexbis) DescriptorSet 0 + Decorate 47(g_tTexbus) DescriptorSet 0 + Decorate 65(Color) Location 0 + Decorate 69(Depth) BuiltIn FragDepth + Decorate 73(g_tTexbfs_test) DescriptorSet 0 + Decorate 73(g_tTexbfs_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -219,62 +225,66 @@ gl_FragCoord origin is upper left 20: 19(ptr) Variable Uniform 21: 14(int) Constant 0 22: TypePointer Uniform 14(int) - 27: TypePointer Function 14(int) - 29: TypeImage 14(int) Buffer sampled format:R32i - 30: TypeSampledImage 29 - 31: TypePointer UniformConstant 30 - 32(g_tTexbis): 31(ptr) Variable UniformConstant - 38: TypeInt 32 0 - 39: TypePointer Function 38(int) - 41: TypeImage 38(int) Buffer sampled format:R32ui - 42: TypeSampledImage 41 - 43: TypePointer UniformConstant 42 - 44(g_tTexbus): 43(ptr) Variable UniformConstant - 50: TypeVector 6(float) 4 - 51(PS_OUTPUT): TypeStruct 50(fvec4) 6(float) - 52: TypePointer Function 51(PS_OUTPUT) - 54: 6(float) Constant 1065353216 - 55: 50(fvec4) ConstantComposite 54 54 54 54 - 56: TypePointer Function 50(fvec4) - 58: 14(int) Constant 1 - 60: TypePointer Output 50(fvec4) - 61(Color): 60(ptr) Variable Output - 64: TypePointer Output 6(float) - 65(Depth): 64(ptr) Variable Output -69(g_tTexbfs_test): 11(ptr) Variable UniformConstant + 26: TypeVector 6(float) 4 + 29: TypePointer Function 14(int) + 31: TypeImage 14(int) Buffer sampled format:R32i + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(g_tTexbis): 33(ptr) Variable UniformConstant + 41: TypeInt 32 0 + 42: TypePointer Function 41(int) + 44: TypeImage 41(int) Buffer sampled format:R32ui + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(g_tTexbus): 46(ptr) Variable UniformConstant + 52: TypeVector 41(int) 4 + 55(PS_OUTPUT): TypeStruct 26(fvec4) 6(float) + 56: TypePointer Function 55(PS_OUTPUT) + 58: 6(float) Constant 1065353216 + 59: 26(fvec4) ConstantComposite 58 58 58 58 + 60: TypePointer Function 26(fvec4) + 62: 14(int) Constant 1 + 64: TypePointer Output 26(fvec4) + 65(Color): 64(ptr) Variable Output + 68: TypePointer Output 6(float) + 69(Depth): 68(ptr) Variable Output +73(g_tTexbfs_test): 11(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 28(r01): 27(ptr) Variable Function - 40(r02): 39(ptr) Variable Function - 53(psout): 52(ptr) Variable Function + 30(r01): 29(ptr) Variable Function + 43(r02): 42(ptr) Variable Function + 57(psout): 56(ptr) Variable Function 13: 10 Load 12(g_tTexbfs) 23: 22(ptr) AccessChain 20 21 24: 14(int) Load 23 25: 9 Image 13 - 26: 6(float) ImageFetch 25 24 - Store 8(r00) 26 - 33: 30 Load 32(g_tTexbis) - 34: 22(ptr) AccessChain 20 21 - 35: 14(int) Load 34 - 36: 29 Image 33 - 37: 14(int) ImageFetch 36 35 - Store 28(r01) 37 - 45: 42 Load 44(g_tTexbus) - 46: 22(ptr) AccessChain 20 21 - 47: 14(int) Load 46 - 48: 41 Image 45 - 49: 38(int) ImageFetch 48 47 - Store 40(r02) 49 - 57: 56(ptr) AccessChain 53(psout) 21 - Store 57 55 - 59: 7(ptr) AccessChain 53(psout) 58 - Store 59 54 - 62: 56(ptr) AccessChain 53(psout) 21 - 63: 50(fvec4) Load 62 - Store 61(Color) 63 - 66: 7(ptr) AccessChain 53(psout) 58 - 67: 6(float) Load 66 - Store 65(Depth) 67 + 27: 26(fvec4) ImageFetch 25 24 + 28: 6(float) CompositeExtract 27 0 + Store 8(r00) 28 + 35: 32 Load 34(g_tTexbis) + 36: 22(ptr) AccessChain 20 21 + 37: 14(int) Load 36 + 38: 31 Image 35 + 39: 17(ivec4) ImageFetch 38 37 + 40: 14(int) CompositeExtract 39 0 + Store 30(r01) 40 + 48: 45 Load 47(g_tTexbus) + 49: 22(ptr) AccessChain 20 21 + 50: 14(int) Load 49 + 51: 44 Image 48 + 53: 52(ivec4) ImageFetch 51 50 + 54: 41(int) CompositeExtract 53 0 + Store 43(r02) 54 + 61: 60(ptr) AccessChain 57(psout) 21 + Store 61 59 + 63: 7(ptr) AccessChain 57(psout) 62 + Store 63 58 + 66: 60(ptr) AccessChain 57(psout) 21 + 67: 26(fvec4) Load 66 + Store 65(Color) 67 + 70: 7(ptr) AccessChain 57(psout) 62 + 71: 6(float) Load 70 + Store 69(Depth) 71 Return FunctionEnd diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index bb2962d9..6c6f187b 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -71,7 +71,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -174,7 +174,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -251,7 +251,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index b6cc8c6d..de9a4f4b 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:70 'txval10' (temp 4-component vector of float) -0:70 texture (global 4-component vector of float) +0:70 texture (temp 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) 0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of int) 0:71 'txval11' (temp 4-component vector of int) -0:71 texture (global 4-component vector of int) +0:71 texture (temp 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of uint) 0:72 'txval12' (temp 4-component vector of uint) -0:72 texture (global 4-component vector of uint) +0:72 texture (temp 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of float) 0:74 'txval20' (temp 4-component vector of float) -0:74 texture (global 4-component vector of float) +0:74 texture (temp 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -131,7 +131,7 @@ gl_FragCoord origin is upper left 0:75 Sequence 0:75 move second child to first child (temp 4-component vector of int) 0:75 'txval21' (temp 4-component vector of int) -0:75 texture (global 4-component vector of int) +0:75 texture (temp 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) 0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of uint) 0:76 'txval22' (temp 4-component vector of uint) -0:76 texture (global 4-component vector of uint) +0:76 texture (temp 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval30' (temp 4-component vector of float) -0:78 texture (global 4-component vector of float) +0:78 texture (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval31' (temp 4-component vector of int) -0:79 texture (global 4-component vector of int) +0:79 texture (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval32' (temp 4-component vector of uint) -0:80 texture (global 4-component vector of uint) +0:80 texture (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval40' (temp 4-component vector of float) -0:82 texture (global 4-component vector of float) +0:82 texture (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval41' (temp 4-component vector of int) -0:83 texture (global 4-component vector of int) +0:83 texture (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval42' (temp 4-component vector of uint) -0:84 texture (global 4-component vector of uint) +0:84 texture (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -363,7 +363,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:70 'txval10' (temp 4-component vector of float) -0:70 texture (global 4-component vector of float) +0:70 texture (temp 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) 0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -372,7 +372,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of int) 0:71 'txval11' (temp 4-component vector of int) -0:71 texture (global 4-component vector of int) +0:71 texture (temp 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -381,7 +381,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of uint) 0:72 'txval12' (temp 4-component vector of uint) -0:72 texture (global 4-component vector of uint) +0:72 texture (temp 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -390,7 +390,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of float) 0:74 'txval20' (temp 4-component vector of float) -0:74 texture (global 4-component vector of float) +0:74 texture (temp 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -400,7 +400,7 @@ gl_FragCoord origin is upper left 0:75 Sequence 0:75 move second child to first child (temp 4-component vector of int) 0:75 'txval21' (temp 4-component vector of int) -0:75 texture (global 4-component vector of int) +0:75 texture (temp 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) 0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -410,7 +410,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of uint) 0:76 'txval22' (temp 4-component vector of uint) -0:76 texture (global 4-component vector of uint) +0:76 texture (temp 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -420,7 +420,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval30' (temp 4-component vector of float) -0:78 texture (global 4-component vector of float) +0:78 texture (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -431,7 +431,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval31' (temp 4-component vector of int) -0:79 texture (global 4-component vector of int) +0:79 texture (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -442,7 +442,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval32' (temp 4-component vector of uint) -0:80 texture (global 4-component vector of uint) +0:80 texture (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -453,7 +453,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval40' (temp 4-component vector of float) -0:82 texture (global 4-component vector of float) +0:82 texture (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -464,7 +464,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval41' (temp 4-component vector of int) -0:83 texture (global 4-component vector of int) +0:83 texture (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -475,7 +475,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval42' (temp 4-component vector of uint) -0:84 texture (global 4-component vector of uint) +0:84 texture (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 9de5f49b..67bf043f 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -67,7 +67,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -185,7 +185,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -196,7 +196,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index f4646d44..83a0e8b7 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -58,7 +58,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -140,7 +140,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out new file mode 100644 index 00000000..abe1cb5a --- /dev/null +++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -0,0 +1,252 @@ +hlsl.sample.sub-vec4.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct float (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct float (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct float (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct float (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 67 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "txval10" + Name 11 "g_tTex1df1" + Name 15 "g_sSamp" + Name 25 "txval11" + Name 26 "g_tTex1df2" + Name 37 "txval12" + Name 38 "g_tTex1df3" + Name 48 "txval13" + Name 49 "g_tTex1df4" + Name 54 "PS_OUTPUT" + MemberName 54(PS_OUTPUT) 0 "Color" + Name 56 "psout" + Name 63 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 26(g_tTex1df2) DescriptorSet 0 + Decorate 38(g_tTex1df3) DescriptorSet 0 + Decorate 49(g_tTex1df4) DescriptorSet 0 + Decorate 63(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeSampledImage 9 + 19: 6(float) Constant 1036831949 + 20: TypeVector 6(float) 4 + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 26(g_tTex1df2): 10(ptr) Variable UniformConstant + 30: 6(float) Constant 1045220557 + 35: TypeVector 6(float) 3 + 36: TypePointer Function 35(fvec3) + 38(g_tTex1df3): 10(ptr) Variable UniformConstant + 47: TypePointer Function 20(fvec4) + 49(g_tTex1df4): 10(ptr) Variable UniformConstant + 54(PS_OUTPUT): TypeStruct 20(fvec4) + 55: TypePointer Function 54(PS_OUTPUT) + 57: TypeInt 32 1 + 58: 57(int) Constant 0 + 59: 6(float) Constant 1065353216 + 60: 20(fvec4) ConstantComposite 59 59 59 59 + 62: TypePointer Output 20(fvec4) + 63(Color): 62(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(txval10): 7(ptr) Variable Function + 25(txval11): 24(ptr) Variable Function + 37(txval12): 36(ptr) Variable Function + 48(txval13): 47(ptr) Variable Function + 56(psout): 55(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 16: 13 Load 15(g_sSamp) + 18: 17 SampledImage 12 16 + 21: 20(fvec4) ImageSampleImplicitLod 18 19 + 22: 6(float) CompositeExtract 21 0 + Store 8(txval10) 22 + 27: 9 Load 26(g_tTex1df2) + 28: 13 Load 15(g_sSamp) + 29: 17 SampledImage 27 28 + 31: 20(fvec4) ImageSampleImplicitLod 29 30 + 32: 6(float) CompositeExtract 31 0 + 33: 6(float) CompositeExtract 31 1 + 34: 23(fvec2) CompositeConstruct 32 33 + Store 25(txval11) 34 + 39: 9 Load 38(g_tTex1df3) + 40: 13 Load 15(g_sSamp) + 41: 17 SampledImage 39 40 + 42: 20(fvec4) ImageSampleImplicitLod 41 30 + 43: 6(float) CompositeExtract 42 0 + 44: 6(float) CompositeExtract 42 1 + 45: 6(float) CompositeExtract 42 2 + 46: 35(fvec3) CompositeConstruct 43 44 45 + Store 37(txval12) 46 + 50: 9 Load 49(g_tTex1df4) + 51: 13 Load 15(g_sSamp) + 52: 17 SampledImage 50 51 + 53: 20(fvec4) ImageSampleImplicitLod 52 30 + Store 48(txval13) 53 + 61: 47(ptr) AccessChain 56(psout) 58 + Store 61 60 + 64: 47(ptr) AccessChain 56(psout) 58 + 65: 20(fvec4) Load 64 + Store 63(Color) 65 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 539855e0..b2b38b65 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index 9fb8b1a0..c7949146 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 texture (global 4-component vector of float) +0:39 texture (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 texture (global 4-component vector of int) +0:40 texture (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 texture (global 4-component vector of uint) +0:41 texture (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 texture (global 4-component vector of float) +0:43 texture (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 texture (global 4-component vector of int) +0:44 texture (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 texture (global 4-component vector of uint) +0:45 texture (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 texture (global 4-component vector of float) +0:39 texture (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -297,7 +297,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 texture (global 4-component vector of int) +0:40 texture (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -310,7 +310,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 texture (global 4-component vector of uint) +0:41 texture (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -323,7 +323,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 texture (global 4-component vector of float) +0:43 texture (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 texture (global 4-component vector of int) +0:44 texture (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -349,7 +349,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 texture (global 4-component vector of uint) +0:45 texture (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 643e0039..900eb4b0 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -304,7 +304,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index 3ab84b9a..bd216222 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -180,7 +180,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 1513492a..46a6bbc1 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGrad (global 4-component vector of float) +0:27 textureGrad (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGrad (global 4-component vector of int) +0:28 textureGrad (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGrad (global 4-component vector of uint) +0:29 textureGrad (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -67,7 +67,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGrad (global 4-component vector of float) +0:27 textureGrad (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGrad (global 4-component vector of int) +0:28 textureGrad (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGrad (global 4-component vector of uint) +0:29 textureGrad (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -277,7 +277,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -311,7 +311,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -331,7 +331,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -351,7 +351,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 92c0c342..395efc26 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGrad (global 4-component vector of float) +0:39 textureGrad (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGrad (global 4-component vector of int) +0:40 textureGrad (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGrad (global 4-component vector of uint) +0:41 textureGrad (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 textureGrad (global 4-component vector of float) +0:43 textureGrad (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 textureGrad (global 4-component vector of int) +0:44 textureGrad (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 textureGrad (global 4-component vector of uint) +0:45 textureGrad (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -295,7 +295,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -308,7 +308,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -340,7 +340,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -356,7 +356,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGrad (global 4-component vector of float) +0:39 textureGrad (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -375,7 +375,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGrad (global 4-component vector of int) +0:40 textureGrad (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -394,7 +394,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGrad (global 4-component vector of uint) +0:41 textureGrad (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -413,7 +413,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 textureGrad (global 4-component vector of float) +0:43 textureGrad (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -432,7 +432,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 textureGrad (global 4-component vector of int) +0:44 textureGrad (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -451,7 +451,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 textureGrad (global 4-component vector of uint) +0:45 textureGrad (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index e8909345..2e79be32 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -7,7 +7,7 @@ Shader version: 450 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (global 4-component vector of float) +0:30 textureGrad (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureGrad (global 4-component vector of int) +0:31 textureGrad (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -33,7 +33,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureGrad (global 4-component vector of uint) +0:32 textureGrad (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -46,7 +46,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGrad (global 4-component vector of float) +0:34 textureGrad (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGrad (global 4-component vector of int) +0:35 textureGrad (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -78,7 +78,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGrad (global 4-component vector of uint) +0:36 textureGrad (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -94,7 +94,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureGrad (global 4-component vector of float) +0:38 textureGrad (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -113,7 +113,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureGrad (global 4-component vector of int) +0:39 textureGrad (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -132,7 +132,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureGrad (global 4-component vector of uint) +0:40 textureGrad (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureGrad (global 4-component vector of float) +0:42 textureGrad (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -170,7 +170,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureGrad (global 4-component vector of int) +0:43 textureGrad (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -189,7 +189,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureGrad (global 4-component vector of uint) +0:44 textureGrad (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -253,7 +253,7 @@ Shader version: 450 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (global 4-component vector of float) +0:30 textureGrad (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -266,7 +266,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureGrad (global 4-component vector of int) +0:31 textureGrad (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -279,7 +279,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureGrad (global 4-component vector of uint) +0:32 textureGrad (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -292,7 +292,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGrad (global 4-component vector of float) +0:34 textureGrad (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -308,7 +308,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGrad (global 4-component vector of int) +0:35 textureGrad (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGrad (global 4-component vector of uint) +0:36 textureGrad (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -340,7 +340,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureGrad (global 4-component vector of float) +0:38 textureGrad (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -359,7 +359,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureGrad (global 4-component vector of int) +0:39 textureGrad (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -378,7 +378,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureGrad (global 4-component vector of uint) +0:40 textureGrad (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -397,7 +397,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureGrad (global 4-component vector of float) +0:42 textureGrad (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -416,7 +416,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureGrad (global 4-component vector of int) +0:43 textureGrad (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -435,7 +435,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureGrad (global 4-component vector of uint) +0:44 textureGrad (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 9145aa4d..7ef5e077 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGradOffset (global 4-component vector of float) +0:35 textureGradOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGradOffset (global 4-component vector of int) +0:36 textureGradOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGradOffset (global 4-component vector of uint) +0:37 textureGradOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGradOffset (global 4-component vector of float) +0:39 textureGradOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGradOffset (global 4-component vector of int) +0:40 textureGradOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGradOffset (global 4-component vector of uint) +0:41 textureGradOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGradOffset (global 4-component vector of float) +0:35 textureGradOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -303,7 +303,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGradOffset (global 4-component vector of int) +0:36 textureGradOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -322,7 +322,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGradOffset (global 4-component vector of uint) +0:37 textureGradOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,7 +341,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGradOffset (global 4-component vector of float) +0:39 textureGradOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -364,7 +364,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGradOffset (global 4-component vector of int) +0:40 textureGradOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -387,7 +387,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGradOffset (global 4-component vector of uint) +0:41 textureGradOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index e964ff93..2043f38a 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGradOffset (global 4-component vector of float) +0:27 textureGradOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGradOffset (global 4-component vector of int) +0:28 textureGradOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGradOffset (global 4-component vector of uint) +0:29 textureGradOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -96,7 +96,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGradOffset (global 4-component vector of float) +0:27 textureGradOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -189,7 +189,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGradOffset (global 4-component vector of int) +0:28 textureGradOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGradOffset (global 4-component vector of uint) +0:29 textureGradOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index d031665f..351e2ed1 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureLod (global 4-component vector of float) +0:27 textureLod (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureLod (global 4-component vector of int) +0:28 textureLod (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureLod (global 4-component vector of uint) +0:29 textureLod (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureLod (global 4-component vector of float) +0:31 textureLod (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureLod (global 4-component vector of int) +0:32 textureLod (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureLod (global 4-component vector of uint) +0:33 textureLod (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureLod (global 4-component vector of float) +0:35 textureLod (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureLod (global 4-component vector of int) +0:36 textureLod (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureLod (global 4-component vector of uint) +0:37 textureLod (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureLod (global 4-component vector of float) +0:27 textureLod (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureLod (global 4-component vector of int) +0:28 textureLod (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureLod (global 4-component vector of uint) +0:29 textureLod (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureLod (global 4-component vector of float) +0:31 textureLod (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureLod (global 4-component vector of int) +0:32 textureLod (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureLod (global 4-component vector of uint) +0:33 textureLod (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureLod (global 4-component vector of float) +0:35 textureLod (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureLod (global 4-component vector of int) +0:36 textureLod (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureLod (global 4-component vector of uint) +0:37 textureLod (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index 4a937502..d37090fa 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:32 'txval10' (temp 4-component vector of float) -0:32 textureLod (global 4-component vector of float) +0:32 textureLod (temp 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) 0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of int) 0:33 'txval11' (temp 4-component vector of int) -0:33 textureLod (global 4-component vector of int) +0:33 textureLod (temp 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of uint) 0:34 'txval12' (temp 4-component vector of uint) -0:34 textureLod (global 4-component vector of uint) +0:34 textureLod (temp 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:36 'txval20' (temp 4-component vector of float) -0:36 textureLod (global 4-component vector of float) +0:36 textureLod (temp 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of int) 0:37 'txval21' (temp 4-component vector of int) -0:37 textureLod (global 4-component vector of int) +0:37 textureLod (temp 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of uint) 0:38 'txval22' (temp 4-component vector of uint) -0:38 textureLod (global 4-component vector of uint) +0:38 textureLod (temp 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval30' (temp 4-component vector of float) -0:40 textureLod (global 4-component vector of float) +0:40 textureLod (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval31' (temp 4-component vector of int) -0:41 textureLod (global 4-component vector of int) +0:41 textureLod (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval32' (temp 4-component vector of uint) -0:42 textureLod (global 4-component vector of uint) +0:42 textureLod (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval40' (temp 4-component vector of float) -0:44 textureLod (global 4-component vector of float) +0:44 textureLod (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval41' (temp 4-component vector of int) -0:45 textureLod (global 4-component vector of int) +0:45 textureLod (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval42' (temp 4-component vector of uint) -0:46 textureLod (global 4-component vector of uint) +0:46 textureLod (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:32 'txval10' (temp 4-component vector of float) -0:32 textureLod (global 4-component vector of float) +0:32 textureLod (temp 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) 0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of int) 0:33 'txval11' (temp 4-component vector of int) -0:33 textureLod (global 4-component vector of int) +0:33 textureLod (temp 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -238,7 +238,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of uint) 0:34 'txval12' (temp 4-component vector of uint) -0:34 textureLod (global 4-component vector of uint) +0:34 textureLod (temp 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -249,7 +249,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:36 'txval20' (temp 4-component vector of float) -0:36 textureLod (global 4-component vector of float) +0:36 textureLod (temp 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of int) 0:37 'txval21' (temp 4-component vector of int) -0:37 textureLod (global 4-component vector of int) +0:37 textureLod (temp 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of uint) 0:38 'txval22' (temp 4-component vector of uint) -0:38 textureLod (global 4-component vector of uint) +0:38 textureLod (temp 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval30' (temp 4-component vector of float) -0:40 textureLod (global 4-component vector of float) +0:40 textureLod (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval31' (temp 4-component vector of int) -0:41 textureLod (global 4-component vector of int) +0:41 textureLod (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -311,7 +311,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval32' (temp 4-component vector of uint) -0:42 textureLod (global 4-component vector of uint) +0:42 textureLod (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval40' (temp 4-component vector of float) -0:44 textureLod (global 4-component vector of float) +0:44 textureLod (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval41' (temp 4-component vector of int) -0:45 textureLod (global 4-component vector of int) +0:45 textureLod (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -350,7 +350,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval42' (temp 4-component vector of uint) -0:46 textureLod (global 4-component vector of uint) +0:46 textureLod (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index c18fa89b..04382997 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -7,7 +7,7 @@ Shader version: 450 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (global 4-component vector of float) +0:30 textureLod (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureLod (global 4-component vector of int) +0:31 textureLod (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -29,7 +29,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureLod (global 4-component vector of uint) +0:32 textureLod (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -40,7 +40,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureLod (global 4-component vector of float) +0:34 textureLod (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -52,7 +52,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureLod (global 4-component vector of int) +0:35 textureLod (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -64,7 +64,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureLod (global 4-component vector of uint) +0:36 textureLod (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -76,7 +76,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureLod (global 4-component vector of float) +0:38 textureLod (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureLod (global 4-component vector of int) +0:39 textureLod (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -102,7 +102,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureLod (global 4-component vector of uint) +0:40 textureLod (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -115,7 +115,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureLod (global 4-component vector of float) +0:42 textureLod (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -128,7 +128,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureLod (global 4-component vector of int) +0:43 textureLod (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureLod (global 4-component vector of uint) +0:44 textureLod (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -199,7 +199,7 @@ Shader version: 450 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (global 4-component vector of float) +0:30 textureLod (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureLod (global 4-component vector of int) +0:31 textureLod (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureLod (global 4-component vector of uint) +0:32 textureLod (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -232,7 +232,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureLod (global 4-component vector of float) +0:34 textureLod (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureLod (global 4-component vector of int) +0:35 textureLod (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -256,7 +256,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureLod (global 4-component vector of uint) +0:36 textureLod (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureLod (global 4-component vector of float) +0:38 textureLod (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -281,7 +281,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureLod (global 4-component vector of int) +0:39 textureLod (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureLod (global 4-component vector of uint) +0:40 textureLod (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureLod (global 4-component vector of float) +0:42 textureLod (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -320,7 +320,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureLod (global 4-component vector of int) +0:43 textureLod (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -333,7 +333,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureLod (global 4-component vector of uint) +0:44 textureLod (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 4d816499..0f0f9681 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureLodOffset (global 4-component vector of float) +0:31 textureLodOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureLodOffset (global 4-component vector of int) +0:32 textureLodOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureLodOffset (global 4-component vector of uint) +0:33 textureLodOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureLodOffset (global 4-component vector of float) +0:35 textureLodOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureLodOffset (global 4-component vector of int) +0:36 textureLodOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureLodOffset (global 4-component vector of uint) +0:37 textureLodOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureLodOffset (global 4-component vector of float) +0:39 textureLodOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureLodOffset (global 4-component vector of int) +0:40 textureLodOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureLodOffset (global 4-component vector of uint) +0:41 textureLodOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureLodOffset (global 4-component vector of float) +0:31 textureLodOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureLodOffset (global 4-component vector of int) +0:32 textureLodOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureLodOffset (global 4-component vector of uint) +0:33 textureLodOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureLodOffset (global 4-component vector of float) +0:35 textureLodOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureLodOffset (global 4-component vector of int) +0:36 textureLodOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureLodOffset (global 4-component vector of uint) +0:37 textureLodOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureLodOffset (global 4-component vector of float) +0:39 textureLodOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -304,7 +304,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureLodOffset (global 4-component vector of int) +0:40 textureLodOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureLodOffset (global 4-component vector of uint) +0:41 textureLodOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index ef3dcf19..8eb74cd0 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureLodOffset (global 4-component vector of float) +0:23 textureLodOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureLodOffset (global 4-component vector of int) +0:24 textureLodOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureLodOffset (global 4-component vector of uint) +0:25 textureLodOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureLodOffset (global 4-component vector of float) +0:27 textureLodOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureLodOffset (global 4-component vector of int) +0:28 textureLodOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureLodOffset (global 4-component vector of uint) +0:29 textureLodOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureLodOffset (global 4-component vector of float) +0:23 textureLodOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureLodOffset (global 4-component vector of int) +0:24 textureLodOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -180,7 +180,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureLodOffset (global 4-component vector of uint) +0:25 textureLodOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureLodOffset (global 4-component vector of float) +0:27 textureLodOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureLodOffset (global 4-component vector of int) +0:28 textureLodOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureLodOffset (global 4-component vector of uint) +0:29 textureLodOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/hlsl.sample.sub-vec4.dx10.frag b/Test/hlsl.sample.sub-vec4.dx10.frag new file mode 100644 index 00000000..991d976a --- /dev/null +++ b/Test/hlsl.sample.sub-vec4.dx10.frag @@ -0,0 +1,24 @@ +SamplerState g_sSamp : register(s0); + +Texture1D g_tTex1df1; +Texture1D g_tTex1df2; +Texture1D g_tTex1df3; +Texture1D g_tTex1df4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float txval10 = g_tTex1df1 . Sample(g_sSamp, 0.1); + float2 txval11 = g_tTex1df2 . Sample(g_sSamp, 0.2); + float3 txval12 = g_tTex1df3 . Sample(g_sSamp, 0.2); + float4 txval13 = g_tTex1df4 . Sample(g_sSamp, 0.2); + + psout.Color = 1.0; + return psout; +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index fb3fb92f..6c8cb825 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -78,6 +78,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler bool sampler : 1; // true means a pure sampler, other fields should be clear() bool external : 1; // GL_OES_EGL_image_external + unsigned int vectorSize : 3; // return vector size. TODO: support arbitrary types. bool isImage() const { return image && dim != EsdSubpass; } bool isSubpass() const { return dim == EsdSubpass; } @@ -99,6 +100,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, combined = false; sampler = false; external = false; + vectorSize = 4; } // make a combined sampler and texture @@ -164,7 +166,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler, image == right.image && combined == right.combined && sampler == right.sampler && - external == right.external; + external == right.external && + vectorSize == right.vectorSize; } bool operator!=(const TSampler& right) const @@ -823,53 +826,6 @@ public: default: return "none"; } } - static int getLayoutComponentCount(TLayoutFormat f) - { - switch (f) { - case ElfRgba32f: return 4; - case ElfRgba16f: return 4; - case ElfRg32f: return 2; - case ElfRg16f: return 2; - case ElfR11fG11fB10f: return 3; - case ElfR32f: return 1; - case ElfR16f: return 1; - case ElfRgba16: return 4; - case ElfRgb10A2: return 4; - case ElfRgba8: return 4; - case ElfRg16: return 2; - case ElfRg8: return 2; - case ElfR16: return 1; - case ElfR8: return 1; - case ElfRgba16Snorm: return 4; - case ElfRgba8Snorm: return 4; - case ElfRg16Snorm: return 2; - case ElfRg8Snorm: return 2; - case ElfR16Snorm: return 1; - case ElfR8Snorm: return 1; - - case ElfRgba32i: return 4; - case ElfRgba16i: return 4; - case ElfRgba8i: return 4; - case ElfRg32i: return 2; - case ElfRg16i: return 2; - case ElfRg8i: return 2; - case ElfR32i: return 1; - case ElfR16i: return 1; - case ElfR8i: return 1; - - case ElfRgba32ui: return 4; - case ElfRgba16ui: return 4; - case ElfRgba8ui: return 4; - case ElfRg32ui: return 2; - case ElfRg16ui: return 2; - case ElfRgb10a2ui: return 4; - case ElfRg8ui: return 2; - case ElfR32ui: return 1; - case ElfR16ui: return 1; - case ElfR8ui: return 1; - default: return 4; - } - } static const char* getLayoutDepthString(TLayoutDepth d) { switch (d) { diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index cfca4b98..04e2d170 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -177,6 +177,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, + { "hlsl.sample.sub-vec4.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.shapeConvRet.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c9c4716e..f064f1fa 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -907,12 +907,6 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } - // if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4 && !image) { - // // TODO: handle vec2/3 types - // expected("vector size not yet supported in texture type"); - // return false; - // } - if (ms && acceptTokenClass(EHTokComma)) { // read sample count for multisample types, if given if (! peekTokenClass(EHTokIntConstant)) { @@ -957,6 +951,9 @@ bool HlslGrammar::acceptTextureType(TType& type) sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); } } + + // Remember the declared vector size. + sampler.vectorSize = txType.getVectorSize(); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); type.getQualifier().layoutFormat = format; diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 1ba7d08a..97999d0e 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -154,15 +154,15 @@ TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const { const int components = txType.getVectorSize(); - const auto select = [&](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { + const auto selectFormat = [&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { return components == 1 ? v1 : components == 2 ? v2 : v4; }; switch (txType.getBasicType()) { - case EbtFloat: return select(ElfR32f, ElfRg32f, ElfRgba32f); - case EbtInt: return select(ElfR32i, ElfRg32i, ElfRgba32i); - case EbtUint: return select(ElfR32ui, ElfRg32ui, ElfRgba32ui); + case EbtFloat: return selectFormat(ElfR32f, ElfRg32f, ElfRgba32f); + case EbtInt: return selectFormat(ElfR32i, ElfRg32i, ElfRgba32i); + case EbtUint: return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui); default: error(loc, "unknown basic type in image format", "", ""); return ElfNone; @@ -286,6 +286,8 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); + const TSampler& texSampler = object->getType().getSampler(); + const TLayoutFormat fmt = object->getType().getQualifier().layoutFormat; // We only handle this subset of the possible formats. @@ -293,8 +295,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* fmt == ElfRg32f || fmt == ElfRg32i || fmt == ElfRg32ui || fmt == ElfR32f || fmt == ElfR32i || fmt == ElfR32ui); - const TType objDerefType(object->getType().getSampler().type, EvqTemporary, - TQualifier::getLayoutComponentCount(fmt)); + const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize); if (nodeAsBinary) { TIntermTyped* rhs = nodeAsBinary->getRight(); @@ -604,10 +605,9 @@ TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIn if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { const TSampler& sampler = base->getType().getSampler(); if (sampler.isImage() || sampler.isTexture()) { - const int vecSize = TQualifier::getLayoutComponentCount(base->getType().getQualifier().layoutFormat); TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); - load->setType(TType(sampler.type, EvqTemporary, vecSize)); + load->setType(TType(sampler.type, EvqTemporary, sampler.vectorSize)); load->setLoc(loc); load->getSequence().push_back(base); load->getSequence().push_back(index); @@ -1444,6 +1444,31 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (!node || !node->getAsOperator()) return; + const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) { + // Sampler return must always be a vec4, but we can construct a shorter vector + result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); + + if (sampler.vectorSize < node->getVectorSize()) { + // Too many components. Construct shorter vector from it. + const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); + + TOperator op; + + switch (sampler.type) { + case EbtInt: op = EOpConstructInt; break; + case EbtUint: op = EOpConstructUint; break; + case EbtFloat: op = EOpConstructFloat; break; + default: + error(loc, "unknown basic type in texture op", "", ""); + } + + result = constructBuiltIn(clampedType, op, result, loc, false); + } + + result->setLoc(loc); + return result; + }; + const TOperator op = node->getAsOperator()->getOp(); const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; @@ -1452,10 +1477,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType case EOpTexture: { // Texture with ddx & ddy is really gradient form in HLSL - if (argAggregate->getSequence().size() == 4) { + if (argAggregate->getSequence().size() == 4) node->getAsAggregate()->setOperator(EOpTextureGrad); - break; - } break; } @@ -1471,14 +1494,16 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* bias = intermediate.addIndex(EOpIndexDirect, arg1, w, loc); TOperator constructOp = EOpNull; - switch (arg0->getType().getSampler().dim) { + const TSampler& sampler = arg0->getType().getSampler(); + + switch (sampler.dim) { case Esd1D: constructOp = EOpConstructFloat; break; // 1D case Esd2D: constructOp = EOpConstructVec2; break; // 2D case Esd3D: constructOp = EOpConstructVec3; break; // 3D case EsdCube: constructOp = EOpConstructVec3; break; // also 3D default: break; } - + TIntermAggregate* constructCoord = new TIntermAggregate(constructOp); constructCoord->getSequence().push_back(arg1); constructCoord->setLoc(loc); @@ -1487,8 +1512,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate tex->getSequence().push_back(bias); // bias - tex->setLoc(loc); - node = tex; + + node = clampReturn(tex, sampler); break; } @@ -1502,6 +1527,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argBias = nullptr; TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); int nextArg = 3; @@ -1527,9 +1553,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } @@ -1542,6 +1566,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); TOperator textureOp = EOpTextureGrad; @@ -1561,9 +1586,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } @@ -1582,9 +1605,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType assert(texType.getBasicType() == EbtSampler); - const TSampler& texSampler = texType.getSampler(); - const TSamplerDim dim = texSampler.dim; - const bool isImage = texSampler.isImage(); + const TSampler& sampler = texType.getSampler(); + const TSamplerDim dim = sampler.dim; + const bool isImage = sampler.isImage(); const int numArgs = (int)argAggregate->getSequence().size(); int numDims = 0; @@ -1600,11 +1623,11 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } // Arrayed adds another dimension for the number of array elements - if (texSampler.isArrayed()) + if (sampler.isArrayed()) ++numDims; // Establish whether we're querying mip levels - const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample()); + const bool mipQuery = (numArgs > (numDims + 1)) && (!sampler.isMultiSample()); // AST assumes integer return. Will be converted to float if required. TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize); @@ -1662,7 +1685,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } // 2DMS formats query # samples, which needs a different query op - if (texSampler.isMultiSample()) { + if (sampler.isMultiSample()) { TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); @@ -1751,9 +1774,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* lodComponent = nullptr; TIntermTyped* coordSwizzle = nullptr; - const bool isMS = argTex->getType().getSampler().isMultiSample(); - const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer; - const bool isImage = argTex->getType().getSampler().isImage(); + const TSampler& sampler = argTex->getType().getSampler(); + const bool isMS = sampler.isMultiSample(); + const bool isBuffer = sampler.dim == EsdBuffer; + const bool isImage = sampler.isImage(); const TBasicType coordBaseType = argCoord->getType().getBasicType(); // Last component of coordinate is the mip level, for non-MS. we separate them here: @@ -1807,11 +1831,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argOffset); } - int vecSize = TQualifier::getLayoutComponentCount(argTex->getType().getQualifier().layoutFormat); - - txfetch->setType(TType(node->getType().getBasicType(), EvqTemporary, vecSize)); - txfetch->setLoc(loc); - node = txfetch; + node = clampReturn(txfetch, sampler); break; } @@ -1823,7 +1843,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; - + const TSampler& sampler = argTex->getType().getSampler(); + const int numArgs = (int)argAggregate->getSequence().size(); if (numArgs == 5) // offset, if present @@ -1841,9 +1862,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index a2d500f2..d33cfb89 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -708,15 +708,15 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll }, { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, - { "Load", /*!O*/ "V4", nullptr, "%@*,V", "FIU,I", EShLangAll }, + { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, // RWTexture loads { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll }, - // RWBuffer loads - { "Load", "V4", nullptr, "~1,V", "FIU,I", EShLangAll }, + // (RW)Buffer loads + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, From cce8d48bcc9a0794845cf284f2caccf3458c8bf4 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 14 Oct 2016 18:36:42 -0600 Subject: [PATCH 208/217] HLSL: phase 3c: add option to use Unknown storage format This uses the Unknown storage format, instead of deducing the format from the texture declaration type. --- StandAlone/StandAlone.cpp | 8 +++++++ .../hlsl.sample.sub-vec4.dx10.frag.out | 8 +++---- glslang/MachineIndependent/ShaderLang.cpp | 1 + .../MachineIndependent/localintermediate.h | 8 +++++-- glslang/Public/ShaderLang.h | 1 + hlsl/hlslParseHelper.cpp | 22 +++++-------------- 6 files changed, 25 insertions(+), 23 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index f0a4f93c..7ffd2324 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -82,6 +82,7 @@ enum TOptions { EOptionCascadingErrors = (1 << 18), EOptionAutoMapBindings = (1 << 19), EOptionFlattenUniformArrays = (1 << 20), + EOptionNoStorageFormat = (1 << 21), }; // @@ -290,6 +291,9 @@ void ProcessArguments(int argc, char* argv[]) lowerword == "flatten-uniform-array" || lowerword == "fua") { Options |= EOptionFlattenUniformArrays; + } else if (lowerword == "no-storage-format" || // synonyms + lowerword == "nsf") { + Options |= EOptionNoStorageFormat; } else { usage(); } @@ -542,6 +546,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); + shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); if (Options & EOptionAutoMapBindings) shader->setAutoMapBindings(true); @@ -945,6 +950,9 @@ void usage() "\n" " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n" " --fua synonym for --flatten-uniform-arrays\n" + "\n" + " --no-storage-format use Unknown image format\n" + " --nsf synonym for --no-storage-format\n" ); exit(EFailUsage); diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out index abe1cb5a..5a97ed96 100644 --- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:18 Sequence 0:18 move second child to first child (temp 2-component vector of float) 0:18 'txval11' (temp 2-component vector of float) -0:18 Construct float (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) 0:? texture (temp 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) 0:18 'g_tTex1df2' (uniform texture1D) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:19 Sequence 0:19 move second child to first child (temp 3-component vector of float) 0:19 'txval12' (temp 3-component vector of float) -0:19 Construct float (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) 0:? texture (temp 4-component vector of float) 0:19 Construct combined texture-sampler (temp sampler1D) 0:19 'g_tTex1df3' (uniform texture1D) @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:18 Sequence 0:18 move second child to first child (temp 2-component vector of float) 0:18 'txval11' (temp 2-component vector of float) -0:18 Construct float (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) 0:? texture (temp 4-component vector of float) 0:18 Construct combined texture-sampler (temp sampler1D) 0:18 'g_tTex1df2' (uniform texture1D) @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:19 Sequence 0:19 move second child to first child (temp 3-component vector of float) 0:19 'txval12' (temp 3-component vector of float) -0:19 Construct float (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) 0:? texture (temp 4-component vector of float) 0:19 Construct combined texture-sampler (temp sampler1D) 0:19 'g_tTex1df3' (uniform texture1D) diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 5333af45..6d044452 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1497,6 +1497,7 @@ void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShift void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } +void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); } // // Turn the shader strings into a parse tree in the TIntermediate. diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 348b78e0..aae22ecc 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -146,7 +146,8 @@ public: shiftTextureBinding(0), shiftUboBinding(0), autoMapBindings(false), - flattenUniformArrays(false) + flattenUniformArrays(false), + useUnknownFormat(false) { localSize[0] = 1; localSize[1] = 1; @@ -179,7 +180,9 @@ public: bool getAutoMapBindings() const { return autoMapBindings; } void setFlattenUniformArrays(bool flatten) { flattenUniformArrays = flatten; } bool getFlattenUniformArrays() const { return flattenUniformArrays; } - + void setNoStorageFormat(bool b) { useUnknownFormat = b; } + bool getNoStorageFormat() const { return useUnknownFormat; } + void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } @@ -397,6 +400,7 @@ protected: unsigned int shiftUboBinding; bool autoMapBindings; bool flattenUniformArrays; + bool useUnknownFormat; EProfile profile; int version; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 6b894c19..e5e8b4d7 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -309,6 +309,7 @@ public: void setShiftUboBinding(unsigned int base); void setAutoMapBindings(bool map); void setFlattenUniformArrays(bool flatten); + void setNoStorageFormat(bool useUnknownFormat); // Interface to #include handlers. // diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 97999d0e..aa415452 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -154,7 +154,10 @@ TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const { const int components = txType.getVectorSize(); - const auto selectFormat = [&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { + const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { + if (intermediate.getNoStorageFormat()) + return ElfNone; + return components == 1 ? v1 : components == 2 ? v2 : v4; }; @@ -288,13 +291,6 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* const TSampler& texSampler = object->getType().getSampler(); - const TLayoutFormat fmt = object->getType().getQualifier().layoutFormat; - - // We only handle this subset of the possible formats. - assert(fmt == ElfRgba32f || fmt == ElfRgba32i || fmt == ElfRgba32ui || - fmt == ElfRg32f || fmt == ElfRg32i || fmt == ElfRg32ui || - fmt == ElfR32f || fmt == ElfR32i || fmt == ElfR32ui); - const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize); if (nodeAsBinary) { @@ -1452,15 +1448,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // Too many components. Construct shorter vector from it. const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); - TOperator op; - - switch (sampler.type) { - case EbtInt: op = EOpConstructInt; break; - case EbtUint: op = EOpConstructUint; break; - case EbtFloat: op = EOpConstructFloat; break; - default: - error(loc, "unknown basic type in texture op", "", ""); - } + const TOperator op = intermediate.mapTypeToConstructorOp(clampedType); result = constructBuiltIn(clampedType, op, result, loc, false); } From 425af5f6b03b66ff14283d4ba9e8c045d453514f Mon Sep 17 00:00:00 2001 From: Josh Gargus Date: Sat, 15 Oct 2016 15:19:59 -0700 Subject: [PATCH 209/217] Use a recursive mutex. --- glslang/OSDependent/Unix/ossource.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp index 0e6d7307..7e84d4eb 100644 --- a/glslang/OSDependent/Unix/ossource.cpp +++ b/glslang/OSDependent/Unix/ossource.cpp @@ -165,10 +165,27 @@ bool OS_FreeTLSIndex(OS_TLSIndex nIndex) return false; } -static pthread_mutex_t gMutex; -void InitGlobalLock() { pthread_mutex_init(&gMutex, NULL); } -void GetGlobalLock() { pthread_mutex_lock(&gMutex); } -void ReleaseGlobalLock() { pthread_mutex_unlock(&gMutex); } +namespace { +pthread_mutex_t gMutex; +} + +void InitGlobalLock() +{ + pthread_mutexattr_t mutexattr; + pthread_mutexattr_init(&mutexattr); + pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&gMutex, &mutexattr); +} + +void GetGlobalLock() +{ + pthread_mutex_lock(&gMutex); +} + +void ReleaseGlobalLock() +{ + pthread_mutex_unlock(&gMutex); +} // TODO: non-windows: if we need these on linux, flesh them out void* OS_CreateThread(TThreadEntrypoint /*entry*/) From 4a3467933e1ca6e184aba29a3a12db40b1833a77 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 16 Oct 2016 11:50:46 -0600 Subject: [PATCH 210/217] Build: Fix unsigned/signed warning. --- glslang/Include/revision.h | 4 ++-- hlsl/hlslParseHelper.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 0521e2e8..3cdfdb01 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1560" -#define GLSLANG_DATE "07-Oct-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1601" +#define GLSLANG_DATE "16-Oct-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b7ee7f40..78f18b67 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1444,7 +1444,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // Sampler return must always be a vec4, but we can construct a shorter vector result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); - if (sampler.vectorSize < node->getVectorSize()) { + if (sampler.vectorSize < (unsigned)node->getVectorSize()) { // Too many components. Construct shorter vector from it. const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); From b50fd17acbddc53d0d4d9f7ad84b990ad0e71774 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 16 Oct 2016 12:12:11 -0600 Subject: [PATCH 211/217] HLSL: Support SV_Coverage and SV_DispatchThreadId; catch SV_GroupIndex. --- Test/baseResults/hlsl.basic.comp.out | 59 +++++++++++++++++++++++ Test/baseResults/hlsl.inoutquals.frag.out | 17 +++++-- Test/hlsl.basic.comp | 6 +++ Test/hlsl.inoutquals.frag | 2 +- glslang/Include/revision.h | 2 +- gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 10 ++-- 7 files changed, 88 insertions(+), 9 deletions(-) create mode 100755 Test/baseResults/hlsl.basic.comp.out create mode 100644 Test/hlsl.basic.comp diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out new file mode 100755 index 00000000..1948ec3c --- /dev/null +++ b/Test/baseResults/hlsl.basic.comp.out @@ -0,0 +1,59 @@ +hlsl.basic.comp +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main( (temp void) +0:4 Function Parameters: +0:? Sequence +0:5 dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID) +0:5 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) +0:5 Constant: +0:5 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main( (temp void) +0:4 Function Parameters: +0:? Sequence +0:5 dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID) +0:5 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) +0:5 Constant: +0:5 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 11 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Name 4 "main" + Name 7 "$Global" + MemberName 7($Global) 0 "dti" + Name 9 "" + MemberDecorate 7($Global) 0 Offset 0 + MemberDecorate 7($Global) 0 BuiltIn LocalInvocationId + Decorate 7($Global) Block + Decorate 9 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7($Global): TypeStruct 6(int) + 8: TypePointer Uniform 7($Global) + 9: 8(ptr) Variable Uniform + 10: 6(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 83fe24bd..b2716a4c 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -18,9 +18,10 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) 0:? Sequence 0:18 Sequence 0:18 move second child to first child (temp float) @@ -74,6 +75,7 @@ gl_FragCoord origin is upper left 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) Linked fragment stage: @@ -98,9 +100,10 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) 0:? Sequence 0:18 Sequence 0:18 move second child to first child (temp float) @@ -154,15 +157,17 @@ gl_FragCoord origin is upper left 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 61 +// Id's are bound by 63 Capability Shader + Capability SampleRateShading 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 57 + EntryPoint Fragment 4 "main" 45 53 57 62 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -182,10 +187,12 @@ gl_FragCoord origin is upper left Name 45 "inpos" Name 53 "Color" Name 57 "Depth" + Name 62 "sampleMask" Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord Decorate 53(Color) Location 0 Decorate 57(Depth) BuiltIn FragDepth + Decorate 62(sampleMask) BuiltIn SampleMask 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -211,6 +218,8 @@ gl_FragCoord origin is upper left 53(Color): 52(ptr) Variable Output 56: TypePointer Output 6(float) 57(Depth): 56(ptr) Variable Output + 61: TypePointer Output 34(int) + 62(sampleMask): 61(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp new file mode 100644 index 00000000..5e435105 --- /dev/null +++ b/Test/hlsl.basic.comp @@ -0,0 +1,6 @@ +int dti : SV_DispatchThreadID; + +void main() +{ + dti; +} diff --git a/Test/hlsl.inoutquals.frag b/Test/hlsl.inoutquals.frag index 91798d57..32346882 100644 --- a/Test/hlsl.inoutquals.frag +++ b/Test/hlsl.inoutquals.frag @@ -11,7 +11,7 @@ void MyFunc(in float x, out float y, inout float z) x = -1; // no effect since x = in param } -PS_OUTPUT main(noperspective in float4 inpos : SV_Position) +PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage) { PS_OUTPUT psout; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 3cdfdb01..882a2d0c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1601" +#define GLSLANG_REVISION "Overload400-PrecQual.1602" #define GLSLANG_DATE "16-Oct-2016" diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index f50c749c..b50816a1 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -86,6 +86,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.array.multidim.frag", "main"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, + {"hlsl.basic.comp", "main"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.calculatelod.dx10.frag", "main"}, {"hlsl.calculatelodunclamped.dx10.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 78f18b67..b4c417d9 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -2935,6 +2935,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con qualifier.builtIn = EbvTessLevelInner; else if (semanticUpperCase == "SV_GSINSTANCEID") qualifier.builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_DISPATCHTHREADID") + qualifier.builtIn = EbvLocalInvocationId; else if (semanticUpperCase == "SV_GROUPTHREADID") qualifier.builtIn = EbvLocalInvocationId; else if (semanticUpperCase == "SV_GROUPID") @@ -2943,6 +2945,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con qualifier.builtIn = EbvTessCoord; else if (semanticUpperCase == "SV_DEPTH") qualifier.builtIn = EbvFragDepth; + else if( semanticUpperCase == "SV_COVERAGE") + qualifier.builtIn = EbvSampleMask; //TODO, these need to get refined to be more specific else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") @@ -2950,9 +2954,9 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") qualifier.builtIn = EbvFragDepthLesser; else if( semanticUpperCase == "SV_STENCILREF") - error(loc, "unimplemented", "SV_STENCILREF", ""); - else if( semanticUpperCase == "SV_COVERAGE") - error(loc, "unimplemented", "SV_COVERAGE", ""); + error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); + else if( semanticUpperCase == "SV_GROUPINDEX") + error(loc, "unimplemented", "SV_GROUPINDEX", ""); } // From 5d45eadedc37141d27100ce312af7125ec7058ab Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 16 Oct 2016 12:22:20 -0600 Subject: [PATCH 212/217] HLSL: Turn on tests for groupshared. --- Test/baseResults/hlsl.basic.comp.out | 49 +- Test/baseResults/hlsl.intrinsics.comp.out | 544 +++++++++++----------- Test/baseResults/hlsl.intrinsics.frag.out | 80 ++-- Test/hlsl.basic.comp | 4 +- Test/hlsl.intrinsics.comp | 26 +- Test/hlsl.intrinsics.frag | 26 +- glslang/Include/revision.h | 2 +- 7 files changed, 365 insertions(+), 366 deletions(-) diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out index 1948ec3c..c6dc3e5c 100755 --- a/Test/baseResults/hlsl.basic.comp.out +++ b/Test/baseResults/hlsl.basic.comp.out @@ -2,15 +2,14 @@ hlsl.basic.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:4 Function Definition: main( (temp void) +0:4 Function Definition: main(i1; (temp void) 0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) 0:? Sequence -0:5 dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID) -0:5 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) -0:5 Constant: -0:5 0 (const uint) +0:5 'dti' (in int LocalInvocationID) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) +0:? 'a' (shared 100-element array of 4-component vector of float) +0:? 'dti' (in int LocalInvocationID) Linked compute stage: @@ -19,40 +18,40 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:4 Function Definition: main( (temp void) +0:4 Function Definition: main(i1; (temp void) 0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) 0:? Sequence -0:5 dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID) -0:5 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) -0:5 Constant: -0:5 0 (const uint) +0:5 'dti' (in int LocalInvocationID) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti}) +0:? 'a' (shared 100-element array of 4-component vector of float) +0:? 'dti' (in int LocalInvocationID) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 11 +// Id's are bound by 16 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" + EntryPoint GLCompute 4 "main" 8 ExecutionMode 4 LocalSize 1 1 1 Name 4 "main" - Name 7 "$Global" - MemberName 7($Global) 0 "dti" - Name 9 "" - MemberDecorate 7($Global) 0 Offset 0 - MemberDecorate 7($Global) 0 BuiltIn LocalInvocationId - Decorate 7($Global) Block - Decorate 9 DescriptorSet 0 + Name 8 "dti" + Name 15 "a" + Decorate 8(dti) BuiltIn LocalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 - 7($Global): TypeStruct 6(int) - 8: TypePointer Uniform 7($Global) - 9: 8(ptr) Variable Uniform - 10: 6(int) Constant 0 + 7: TypePointer Input 6(int) + 8(dti): 7(ptr) Variable Input + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11: TypeInt 32 0 + 12: 11(int) Constant 100 + 13: TypeArray 10(fvec4) 12 + 14: TypePointer Workgroup 13 + 15(a): 14(ptr) Variable Workgroup 4(main): 2 Function None 3 5: Label Return diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index f7339755..cd366fcb 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -13,64 +13,64 @@ local_size = (1, 1, 1) 0:21 all (global bool) 0:21 'inF0' (in float) 0:24 AtomicAdd (global void) -0:24 'gs_ua' (global uint) -0:24 'gs_ub' (global uint) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared uint) 0:25 move second child to first child (temp uint) 0:25 'out_u1' (temp uint) 0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (global uint) -0:25 'gs_ub' (global uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) 0:26 AtomicAnd (global void) -0:26 'gs_ua' (global uint) -0:26 'gs_ub' (global uint) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared uint) 0:27 move second child to first child (temp uint) 0:27 'out_u1' (temp uint) 0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (global uint) -0:27 'gs_ub' (global uint) +0:27 'gs_ua' (shared uint) +0:27 'gs_ub' (shared uint) 0:28 move second child to first child (temp uint) 0:28 'out_u1' (temp uint) 0:28 AtomicCompSwap (temp uint) -0:28 'gs_ua' (global uint) -0:28 'gs_ub' (global uint) -0:28 'gs_uc' (global uint) +0:28 'gs_ua' (shared uint) +0:28 'gs_ub' (shared uint) +0:28 'gs_uc' (shared uint) 0:29 move second child to first child (temp uint) 0:29 'out_u1' (temp uint) 0:29 AtomicExchange (temp uint) -0:29 'gs_ua' (global uint) -0:29 'gs_ub' (global uint) +0:29 'gs_ua' (shared uint) +0:29 'gs_ub' (shared uint) 0:30 AtomicMax (global void) -0:30 'gs_ua' (global uint) -0:30 'gs_ub' (global uint) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared uint) 0:31 move second child to first child (temp uint) 0:31 'out_u1' (temp uint) 0:31 AtomicMax (temp uint) -0:31 'gs_ua' (global uint) -0:31 'gs_ub' (global uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) 0:32 AtomicMin (global void) -0:32 'gs_ua' (global uint) -0:32 'gs_ub' (global uint) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared uint) 0:33 move second child to first child (temp uint) 0:33 'out_u1' (temp uint) 0:33 AtomicMin (temp uint) -0:33 'gs_ua' (global uint) -0:33 'gs_ub' (global uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) 0:34 AtomicOr (global void) -0:34 'gs_ua' (global uint) -0:34 'gs_ub' (global uint) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared uint) 0:35 move second child to first child (temp uint) 0:35 'out_u1' (temp uint) 0:35 AtomicOr (temp uint) -0:35 'gs_ua' (global uint) -0:35 'gs_ub' (global uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) 0:36 AtomicXor (global void) -0:36 'gs_ua' (global uint) -0:36 'gs_ub' (global uint) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared uint) 0:37 move second child to first child (temp uint) 0:37 'out_u1' (temp uint) 0:37 AtomicXor (temp uint) -0:37 'gs_ua' (global uint) -0:37 'gs_ub' (global uint) +0:37 'gs_ua' (shared uint) +0:37 'gs_ub' (shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 @@ -94,64 +94,64 @@ local_size = (1, 1, 1) 0:55 all (global bool) 0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) -0:58 'gs_ua2' (global 2-component vector of uint) -0:58 'gs_ub2' (global 2-component vector of uint) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) 0:59 'out_u2' (temp 2-component vector of uint) 0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (global 2-component vector of uint) -0:59 'gs_ub2' (global 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) 0:60 AtomicAnd (global void) -0:60 'gs_ua2' (global 2-component vector of uint) -0:60 'gs_ub2' (global 2-component vector of uint) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) 0:61 'out_u2' (temp 2-component vector of uint) 0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (global 2-component vector of uint) -0:61 'gs_ub2' (global 2-component vector of uint) +0:61 'gs_ua2' (shared 2-component vector of uint) +0:61 'gs_ub2' (shared 2-component vector of uint) 0:62 move second child to first child (temp 2-component vector of uint) 0:62 'out_u2' (temp 2-component vector of uint) 0:62 AtomicCompSwap (temp 2-component vector of uint) -0:62 'gs_ua2' (global 2-component vector of uint) -0:62 'gs_ub2' (global 2-component vector of uint) -0:62 'gs_uc2' (global 2-component vector of uint) +0:62 'gs_ua2' (shared 2-component vector of uint) +0:62 'gs_ub2' (shared 2-component vector of uint) +0:62 'gs_uc2' (shared 2-component vector of uint) 0:63 move second child to first child (temp 2-component vector of uint) 0:63 'out_u2' (temp 2-component vector of uint) 0:63 AtomicExchange (temp 2-component vector of uint) -0:63 'gs_ua2' (global 2-component vector of uint) -0:63 'gs_ub2' (global 2-component vector of uint) +0:63 'gs_ua2' (shared 2-component vector of uint) +0:63 'gs_ub2' (shared 2-component vector of uint) 0:64 AtomicMax (global void) -0:64 'gs_ua2' (global 2-component vector of uint) -0:64 'gs_ub2' (global 2-component vector of uint) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) 0:65 'out_u2' (temp 2-component vector of uint) 0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (global 2-component vector of uint) -0:65 'gs_ub2' (global 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) 0:66 AtomicMin (global void) -0:66 'gs_ua2' (global 2-component vector of uint) -0:66 'gs_ub2' (global 2-component vector of uint) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) 0:67 'out_u2' (temp 2-component vector of uint) 0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (global 2-component vector of uint) -0:67 'gs_ub2' (global 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) 0:68 AtomicOr (global void) -0:68 'gs_ua2' (global 2-component vector of uint) -0:68 'gs_ub2' (global 2-component vector of uint) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) 0:69 'out_u2' (temp 2-component vector of uint) 0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (global 2-component vector of uint) -0:69 'gs_ub2' (global 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) 0:70 AtomicXor (global void) -0:70 'gs_ua2' (global 2-component vector of uint) -0:70 'gs_ub2' (global 2-component vector of uint) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) 0:71 'out_u2' (temp 2-component vector of uint) 0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (global 2-component vector of uint) -0:71 'gs_ub2' (global 2-component vector of uint) +0:71 'gs_ua2' (shared 2-component vector of uint) +0:71 'gs_ub2' (shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -167,64 +167,64 @@ local_size = (1, 1, 1) 0:82 all (global bool) 0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) -0:85 'gs_ua3' (global 3-component vector of uint) -0:85 'gs_ub3' (global 3-component vector of uint) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) 0:86 'out_u3' (temp 3-component vector of uint) 0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (global 3-component vector of uint) -0:86 'gs_ub3' (global 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) 0:87 AtomicAnd (global void) -0:87 'gs_ua3' (global 3-component vector of uint) -0:87 'gs_ub3' (global 3-component vector of uint) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) 0:88 'out_u3' (temp 3-component vector of uint) 0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (global 3-component vector of uint) -0:88 'gs_ub3' (global 3-component vector of uint) +0:88 'gs_ua3' (shared 3-component vector of uint) +0:88 'gs_ub3' (shared 3-component vector of uint) 0:89 move second child to first child (temp 3-component vector of uint) 0:89 'out_u3' (temp 3-component vector of uint) 0:89 AtomicCompSwap (temp 3-component vector of uint) -0:89 'gs_ua3' (global 3-component vector of uint) -0:89 'gs_ub3' (global 3-component vector of uint) -0:89 'gs_uc3' (global 3-component vector of uint) +0:89 'gs_ua3' (shared 3-component vector of uint) +0:89 'gs_ub3' (shared 3-component vector of uint) +0:89 'gs_uc3' (shared 3-component vector of uint) 0:90 move second child to first child (temp 3-component vector of uint) 0:90 'out_u3' (temp 3-component vector of uint) 0:90 AtomicExchange (temp 3-component vector of uint) -0:90 'gs_ua3' (global 3-component vector of uint) -0:90 'gs_ub3' (global 3-component vector of uint) +0:90 'gs_ua3' (shared 3-component vector of uint) +0:90 'gs_ub3' (shared 3-component vector of uint) 0:91 AtomicMax (global void) -0:91 'gs_ua3' (global 3-component vector of uint) -0:91 'gs_ub3' (global 3-component vector of uint) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) 0:92 'out_u3' (temp 3-component vector of uint) 0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (global 3-component vector of uint) -0:92 'gs_ub3' (global 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) 0:93 AtomicMin (global void) -0:93 'gs_ua3' (global 3-component vector of uint) -0:93 'gs_ub3' (global 3-component vector of uint) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) 0:94 'out_u3' (temp 3-component vector of uint) 0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (global 3-component vector of uint) -0:94 'gs_ub3' (global 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) 0:95 AtomicOr (global void) -0:95 'gs_ua3' (global 3-component vector of uint) -0:95 'gs_ub3' (global 3-component vector of uint) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) 0:96 'out_u3' (temp 3-component vector of uint) 0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (global 3-component vector of uint) -0:96 'gs_ub3' (global 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) 0:97 AtomicXor (global void) -0:97 'gs_ua3' (global 3-component vector of uint) -0:97 'gs_ub3' (global 3-component vector of uint) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) 0:98 'out_u3' (temp 3-component vector of uint) 0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (global 3-component vector of uint) -0:98 'gs_ub3' (global 3-component vector of uint) +0:98 'gs_ua3' (shared 3-component vector of uint) +0:98 'gs_ub3' (shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -241,64 +241,64 @@ local_size = (1, 1, 1) 0:109 all (global bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) 0:112 AtomicAdd (global void) -0:112 'gs_ua4' (global 4-component vector of uint) -0:112 'gs_ub4' (global 4-component vector of uint) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) 0:113 'out_u4' (temp 4-component vector of uint) 0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (global 4-component vector of uint) -0:113 'gs_ub4' (global 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) 0:114 AtomicAnd (global void) -0:114 'gs_ua4' (global 4-component vector of uint) -0:114 'gs_ub4' (global 4-component vector of uint) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) 0:115 'out_u4' (temp 4-component vector of uint) 0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (global 4-component vector of uint) -0:115 'gs_ub4' (global 4-component vector of uint) +0:115 'gs_ua4' (shared 4-component vector of uint) +0:115 'gs_ub4' (shared 4-component vector of uint) 0:116 move second child to first child (temp 4-component vector of uint) 0:116 'out_u4' (temp 4-component vector of uint) 0:116 AtomicCompSwap (temp 4-component vector of uint) -0:116 'gs_ua4' (global 4-component vector of uint) -0:116 'gs_ub4' (global 4-component vector of uint) -0:116 'gs_uc4' (global 4-component vector of uint) +0:116 'gs_ua4' (shared 4-component vector of uint) +0:116 'gs_ub4' (shared 4-component vector of uint) +0:116 'gs_uc4' (shared 4-component vector of uint) 0:117 move second child to first child (temp 4-component vector of uint) 0:117 'out_u4' (temp 4-component vector of uint) 0:117 AtomicExchange (temp 4-component vector of uint) -0:117 'gs_ua4' (global 4-component vector of uint) -0:117 'gs_ub4' (global 4-component vector of uint) +0:117 'gs_ua4' (shared 4-component vector of uint) +0:117 'gs_ub4' (shared 4-component vector of uint) 0:118 AtomicMax (global void) -0:118 'gs_ua4' (global 4-component vector of uint) -0:118 'gs_ub4' (global 4-component vector of uint) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) 0:119 'out_u4' (temp 4-component vector of uint) 0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (global 4-component vector of uint) -0:119 'gs_ub4' (global 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) 0:120 AtomicMin (global void) -0:120 'gs_ua4' (global 4-component vector of uint) -0:120 'gs_ub4' (global 4-component vector of uint) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) 0:121 'out_u4' (temp 4-component vector of uint) 0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (global 4-component vector of uint) -0:121 'gs_ub4' (global 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) 0:122 AtomicOr (global void) -0:122 'gs_ua4' (global 4-component vector of uint) -0:122 'gs_ub4' (global 4-component vector of uint) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) 0:123 'out_u4' (temp 4-component vector of uint) 0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (global 4-component vector of uint) -0:123 'gs_ub4' (global 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) 0:124 AtomicXor (global void) -0:124 'gs_ua4' (global 4-component vector of uint) -0:124 'gs_ub4' (global 4-component vector of uint) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) 0:125 'out_u4' (temp 4-component vector of uint) 0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (global 4-component vector of uint) -0:125 'gs_ub4' (global 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -309,18 +309,18 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -346,64 +346,64 @@ local_size = (1, 1, 1) 0:21 all (global bool) 0:21 'inF0' (in float) 0:24 AtomicAdd (global void) -0:24 'gs_ua' (global uint) -0:24 'gs_ub' (global uint) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared uint) 0:25 move second child to first child (temp uint) 0:25 'out_u1' (temp uint) 0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (global uint) -0:25 'gs_ub' (global uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) 0:26 AtomicAnd (global void) -0:26 'gs_ua' (global uint) -0:26 'gs_ub' (global uint) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared uint) 0:27 move second child to first child (temp uint) 0:27 'out_u1' (temp uint) 0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (global uint) -0:27 'gs_ub' (global uint) +0:27 'gs_ua' (shared uint) +0:27 'gs_ub' (shared uint) 0:28 move second child to first child (temp uint) 0:28 'out_u1' (temp uint) 0:28 AtomicCompSwap (temp uint) -0:28 'gs_ua' (global uint) -0:28 'gs_ub' (global uint) -0:28 'gs_uc' (global uint) +0:28 'gs_ua' (shared uint) +0:28 'gs_ub' (shared uint) +0:28 'gs_uc' (shared uint) 0:29 move second child to first child (temp uint) 0:29 'out_u1' (temp uint) 0:29 AtomicExchange (temp uint) -0:29 'gs_ua' (global uint) -0:29 'gs_ub' (global uint) +0:29 'gs_ua' (shared uint) +0:29 'gs_ub' (shared uint) 0:30 AtomicMax (global void) -0:30 'gs_ua' (global uint) -0:30 'gs_ub' (global uint) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared uint) 0:31 move second child to first child (temp uint) 0:31 'out_u1' (temp uint) 0:31 AtomicMax (temp uint) -0:31 'gs_ua' (global uint) -0:31 'gs_ub' (global uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) 0:32 AtomicMin (global void) -0:32 'gs_ua' (global uint) -0:32 'gs_ub' (global uint) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared uint) 0:33 move second child to first child (temp uint) 0:33 'out_u1' (temp uint) 0:33 AtomicMin (temp uint) -0:33 'gs_ua' (global uint) -0:33 'gs_ub' (global uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) 0:34 AtomicOr (global void) -0:34 'gs_ua' (global uint) -0:34 'gs_ub' (global uint) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared uint) 0:35 move second child to first child (temp uint) 0:35 'out_u1' (temp uint) 0:35 AtomicOr (temp uint) -0:35 'gs_ua' (global uint) -0:35 'gs_ub' (global uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) 0:36 AtomicXor (global void) -0:36 'gs_ua' (global uint) -0:36 'gs_ub' (global uint) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared uint) 0:37 move second child to first child (temp uint) 0:37 'out_u1' (temp uint) 0:37 AtomicXor (temp uint) -0:37 'gs_ua' (global uint) -0:37 'gs_ub' (global uint) +0:37 'gs_ua' (shared uint) +0:37 'gs_ub' (shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 @@ -427,64 +427,64 @@ local_size = (1, 1, 1) 0:55 all (global bool) 0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) -0:58 'gs_ua2' (global 2-component vector of uint) -0:58 'gs_ub2' (global 2-component vector of uint) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) 0:59 'out_u2' (temp 2-component vector of uint) 0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (global 2-component vector of uint) -0:59 'gs_ub2' (global 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) 0:60 AtomicAnd (global void) -0:60 'gs_ua2' (global 2-component vector of uint) -0:60 'gs_ub2' (global 2-component vector of uint) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) 0:61 'out_u2' (temp 2-component vector of uint) 0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (global 2-component vector of uint) -0:61 'gs_ub2' (global 2-component vector of uint) +0:61 'gs_ua2' (shared 2-component vector of uint) +0:61 'gs_ub2' (shared 2-component vector of uint) 0:62 move second child to first child (temp 2-component vector of uint) 0:62 'out_u2' (temp 2-component vector of uint) 0:62 AtomicCompSwap (temp 2-component vector of uint) -0:62 'gs_ua2' (global 2-component vector of uint) -0:62 'gs_ub2' (global 2-component vector of uint) -0:62 'gs_uc2' (global 2-component vector of uint) +0:62 'gs_ua2' (shared 2-component vector of uint) +0:62 'gs_ub2' (shared 2-component vector of uint) +0:62 'gs_uc2' (shared 2-component vector of uint) 0:63 move second child to first child (temp 2-component vector of uint) 0:63 'out_u2' (temp 2-component vector of uint) 0:63 AtomicExchange (temp 2-component vector of uint) -0:63 'gs_ua2' (global 2-component vector of uint) -0:63 'gs_ub2' (global 2-component vector of uint) +0:63 'gs_ua2' (shared 2-component vector of uint) +0:63 'gs_ub2' (shared 2-component vector of uint) 0:64 AtomicMax (global void) -0:64 'gs_ua2' (global 2-component vector of uint) -0:64 'gs_ub2' (global 2-component vector of uint) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) 0:65 'out_u2' (temp 2-component vector of uint) 0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (global 2-component vector of uint) -0:65 'gs_ub2' (global 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) 0:66 AtomicMin (global void) -0:66 'gs_ua2' (global 2-component vector of uint) -0:66 'gs_ub2' (global 2-component vector of uint) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) 0:67 'out_u2' (temp 2-component vector of uint) 0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (global 2-component vector of uint) -0:67 'gs_ub2' (global 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) 0:68 AtomicOr (global void) -0:68 'gs_ua2' (global 2-component vector of uint) -0:68 'gs_ub2' (global 2-component vector of uint) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) 0:69 'out_u2' (temp 2-component vector of uint) 0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (global 2-component vector of uint) -0:69 'gs_ub2' (global 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) 0:70 AtomicXor (global void) -0:70 'gs_ua2' (global 2-component vector of uint) -0:70 'gs_ub2' (global 2-component vector of uint) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) 0:71 'out_u2' (temp 2-component vector of uint) 0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (global 2-component vector of uint) -0:71 'gs_ub2' (global 2-component vector of uint) +0:71 'gs_ua2' (shared 2-component vector of uint) +0:71 'gs_ub2' (shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -500,64 +500,64 @@ local_size = (1, 1, 1) 0:82 all (global bool) 0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) -0:85 'gs_ua3' (global 3-component vector of uint) -0:85 'gs_ub3' (global 3-component vector of uint) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) 0:86 'out_u3' (temp 3-component vector of uint) 0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (global 3-component vector of uint) -0:86 'gs_ub3' (global 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) 0:87 AtomicAnd (global void) -0:87 'gs_ua3' (global 3-component vector of uint) -0:87 'gs_ub3' (global 3-component vector of uint) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) 0:88 'out_u3' (temp 3-component vector of uint) 0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (global 3-component vector of uint) -0:88 'gs_ub3' (global 3-component vector of uint) +0:88 'gs_ua3' (shared 3-component vector of uint) +0:88 'gs_ub3' (shared 3-component vector of uint) 0:89 move second child to first child (temp 3-component vector of uint) 0:89 'out_u3' (temp 3-component vector of uint) 0:89 AtomicCompSwap (temp 3-component vector of uint) -0:89 'gs_ua3' (global 3-component vector of uint) -0:89 'gs_ub3' (global 3-component vector of uint) -0:89 'gs_uc3' (global 3-component vector of uint) +0:89 'gs_ua3' (shared 3-component vector of uint) +0:89 'gs_ub3' (shared 3-component vector of uint) +0:89 'gs_uc3' (shared 3-component vector of uint) 0:90 move second child to first child (temp 3-component vector of uint) 0:90 'out_u3' (temp 3-component vector of uint) 0:90 AtomicExchange (temp 3-component vector of uint) -0:90 'gs_ua3' (global 3-component vector of uint) -0:90 'gs_ub3' (global 3-component vector of uint) +0:90 'gs_ua3' (shared 3-component vector of uint) +0:90 'gs_ub3' (shared 3-component vector of uint) 0:91 AtomicMax (global void) -0:91 'gs_ua3' (global 3-component vector of uint) -0:91 'gs_ub3' (global 3-component vector of uint) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) 0:92 'out_u3' (temp 3-component vector of uint) 0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (global 3-component vector of uint) -0:92 'gs_ub3' (global 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) 0:93 AtomicMin (global void) -0:93 'gs_ua3' (global 3-component vector of uint) -0:93 'gs_ub3' (global 3-component vector of uint) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) 0:94 'out_u3' (temp 3-component vector of uint) 0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (global 3-component vector of uint) -0:94 'gs_ub3' (global 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) 0:95 AtomicOr (global void) -0:95 'gs_ua3' (global 3-component vector of uint) -0:95 'gs_ub3' (global 3-component vector of uint) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) 0:96 'out_u3' (temp 3-component vector of uint) 0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (global 3-component vector of uint) -0:96 'gs_ub3' (global 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) 0:97 AtomicXor (global void) -0:97 'gs_ua3' (global 3-component vector of uint) -0:97 'gs_ub3' (global 3-component vector of uint) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) 0:98 'out_u3' (temp 3-component vector of uint) 0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (global 3-component vector of uint) -0:98 'gs_ub3' (global 3-component vector of uint) +0:98 'gs_ua3' (shared 3-component vector of uint) +0:98 'gs_ub3' (shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -574,64 +574,64 @@ local_size = (1, 1, 1) 0:109 all (global bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) 0:112 AtomicAdd (global void) -0:112 'gs_ua4' (global 4-component vector of uint) -0:112 'gs_ub4' (global 4-component vector of uint) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) 0:113 'out_u4' (temp 4-component vector of uint) 0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (global 4-component vector of uint) -0:113 'gs_ub4' (global 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) 0:114 AtomicAnd (global void) -0:114 'gs_ua4' (global 4-component vector of uint) -0:114 'gs_ub4' (global 4-component vector of uint) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) 0:115 'out_u4' (temp 4-component vector of uint) 0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (global 4-component vector of uint) -0:115 'gs_ub4' (global 4-component vector of uint) +0:115 'gs_ua4' (shared 4-component vector of uint) +0:115 'gs_ub4' (shared 4-component vector of uint) 0:116 move second child to first child (temp 4-component vector of uint) 0:116 'out_u4' (temp 4-component vector of uint) 0:116 AtomicCompSwap (temp 4-component vector of uint) -0:116 'gs_ua4' (global 4-component vector of uint) -0:116 'gs_ub4' (global 4-component vector of uint) -0:116 'gs_uc4' (global 4-component vector of uint) +0:116 'gs_ua4' (shared 4-component vector of uint) +0:116 'gs_ub4' (shared 4-component vector of uint) +0:116 'gs_uc4' (shared 4-component vector of uint) 0:117 move second child to first child (temp 4-component vector of uint) 0:117 'out_u4' (temp 4-component vector of uint) 0:117 AtomicExchange (temp 4-component vector of uint) -0:117 'gs_ua4' (global 4-component vector of uint) -0:117 'gs_ub4' (global 4-component vector of uint) +0:117 'gs_ua4' (shared 4-component vector of uint) +0:117 'gs_ub4' (shared 4-component vector of uint) 0:118 AtomicMax (global void) -0:118 'gs_ua4' (global 4-component vector of uint) -0:118 'gs_ub4' (global 4-component vector of uint) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) 0:119 'out_u4' (temp 4-component vector of uint) 0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (global 4-component vector of uint) -0:119 'gs_ub4' (global 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) 0:120 AtomicMin (global void) -0:120 'gs_ua4' (global 4-component vector of uint) -0:120 'gs_ub4' (global 4-component vector of uint) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) 0:121 'out_u4' (temp 4-component vector of uint) 0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (global 4-component vector of uint) -0:121 'gs_ub4' (global 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) 0:122 AtomicOr (global void) -0:122 'gs_ua4' (global 4-component vector of uint) -0:122 'gs_ub4' (global 4-component vector of uint) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) 0:123 'out_u4' (temp 4-component vector of uint) 0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (global 4-component vector of uint) -0:123 'gs_ub4' (global 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) 0:124 AtomicXor (global void) -0:124 'gs_ua4' (global 4-component vector of uint) -0:124 'gs_ub4' (global 4-component vector of uint) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) 0:125 'out_u4' (temp 4-component vector of uint) 0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (global 4-component vector of uint) -0:125 'gs_ub4' (global 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -642,18 +642,18 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -740,35 +740,35 @@ local_size = (1, 1, 1) 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) 49: TypeBool - 51: TypePointer Private 8(int) - 52(gs_ua): 51(ptr) Variable Private - 53(gs_ub): 51(ptr) Variable Private + 51: TypePointer Workgroup 8(int) + 52(gs_ua): 51(ptr) Variable Workgroup + 53(gs_ub): 51(ptr) Variable Workgroup 55: 8(int) Constant 1 56: 8(int) Constant 0 - 66(gs_uc): 51(ptr) Variable Private + 66(gs_uc): 51(ptr) Variable Workgroup 87: 6(float) Constant 0 - 94: TypePointer Private 26(ivec2) - 95(gs_ua2): 94(ptr) Variable Private - 96(gs_ub2): 94(ptr) Variable Private - 107(gs_uc2): 94(ptr) Variable Private + 94: TypePointer Workgroup 26(ivec2) + 95(gs_ua2): 94(ptr) Variable Workgroup + 96(gs_ub2): 94(ptr) Variable Workgroup + 107(gs_uc2): 94(ptr) Variable Workgroup 128: 6(float) Constant 1065353216 129: 6(float) Constant 1073741824 130: 24(fvec2) ConstantComposite 128 129 - 135: TypePointer Private 38(ivec3) - 136(gs_ua3): 135(ptr) Variable Private - 137(gs_ub3): 135(ptr) Variable Private - 148(gs_uc3): 135(ptr) Variable Private + 135: TypePointer Workgroup 38(ivec3) + 136(gs_ua3): 135(ptr) Variable Workgroup + 137(gs_ub3): 135(ptr) Variable Workgroup + 148(gs_uc3): 135(ptr) Variable Workgroup 169: 6(float) Constant 1077936128 170: 36(fvec3) ConstantComposite 128 129 169 173: TypeVector 6(float) 4 174: TypePointer Input 173(fvec4) 175(inF0): 174(ptr) Variable Input 178: TypeVector 8(int) 4 - 179: TypePointer Private 178(ivec4) - 180(gs_ua4): 179(ptr) Variable Private - 181(gs_ub4): 179(ptr) Variable Private + 179: TypePointer Workgroup 178(ivec4) + 180(gs_ua4): 179(ptr) Variable Workgroup + 181(gs_ub4): 179(ptr) Variable Workgroup 184: TypePointer Function 178(ivec4) - 193(gs_uc4): 179(ptr) Variable Private + 193(gs_uc4): 179(ptr) Variable Workgroup 214: TypePointer Output 173(fvec4) 215(@entryPointOutput): 214(ptr) Variable Output 216: 6(float) Constant 1082130432 diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 4009d8da..d5a0f998 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2782,18 +2782,18 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) 0:? 'color' (layout(location=0 ) out 4-component vector of float) @@ -5583,18 +5583,18 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) 0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 @@ -6250,22 +6250,22 @@ gl_FragCoord origin is upper left 1802: 48(fvec4) ConstantComposite 284 284 284 284 1804: TypePointer Output 48(fvec4) 1805(color): 1804(ptr) Variable Output - 1809: TypePointer Private 8(int) - 1810(gs_ua): 1809(ptr) Variable Private - 1811(gs_ub): 1809(ptr) Variable Private - 1812(gs_uc): 1809(ptr) Variable Private - 1813: TypePointer Private 26(ivec2) - 1814(gs_ua2): 1813(ptr) Variable Private - 1815(gs_ub2): 1813(ptr) Variable Private - 1816(gs_uc2): 1813(ptr) Variable Private - 1817: TypePointer Private 38(ivec3) - 1818(gs_ua3): 1817(ptr) Variable Private - 1819(gs_ub3): 1817(ptr) Variable Private - 1820(gs_uc3): 1817(ptr) Variable Private - 1821: TypePointer Private 50(ivec4) - 1822(gs_ua4): 1821(ptr) Variable Private - 1823(gs_ub4): 1821(ptr) Variable Private - 1824(gs_uc4): 1821(ptr) Variable Private + 1809: TypePointer Workgroup 8(int) + 1810(gs_ua): 1809(ptr) Variable Workgroup + 1811(gs_ub): 1809(ptr) Variable Workgroup + 1812(gs_uc): 1809(ptr) Variable Workgroup + 1813: TypePointer Workgroup 26(ivec2) + 1814(gs_ua2): 1813(ptr) Variable Workgroup + 1815(gs_ub2): 1813(ptr) Variable Workgroup + 1816(gs_uc2): 1813(ptr) Variable Workgroup + 1817: TypePointer Workgroup 38(ivec3) + 1818(gs_ua3): 1817(ptr) Variable Workgroup + 1819(gs_ub3): 1817(ptr) Variable Workgroup + 1820(gs_uc3): 1817(ptr) Variable Workgroup + 1821: TypePointer Workgroup 50(ivec4) + 1822(gs_ua4): 1821(ptr) Variable Workgroup + 1823(gs_ub4): 1821(ptr) Variable Workgroup + 1824(gs_uc4): 1821(ptr) Variable Workgroup 4(main): 2 Function None 3 5: Label 1800(ps_output): 1799(ptr) Variable Function diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp index 5e435105..8a65a596 100644 --- a/Test/hlsl.basic.comp +++ b/Test/hlsl.basic.comp @@ -1,6 +1,6 @@ -int dti : SV_DispatchThreadID; +groupshared float4 a[100]; -void main() +void main(int dti : SV_DispatchThreadID) { dti; } diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp index 12b7caab..bce2d27d 100644 --- a/Test/hlsl.intrinsics.comp +++ b/Test/hlsl.intrinsics.comp @@ -1,17 +1,17 @@ -#define gs static // TODO: define as groupshared when available in the grammar -gs uint gs_ua; -gs uint gs_ub; -gs uint gs_uc; -gs uint2 gs_ua2; -gs uint2 gs_ub2; -gs uint2 gs_uc2; -gs uint3 gs_ua3; -gs uint3 gs_ub3; -gs uint3 gs_uc3; -gs uint4 gs_ua4; -gs uint4 gs_ub4; -gs uint4 gs_uc4; + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index 90387ccc..03e7ed38 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -1,17 +1,17 @@ -#define gs static // TODO: define as groupshared when available in the grammar -gs uint gs_ua; -gs uint gs_ub; -gs uint gs_uc; -gs uint2 gs_ua2; -gs uint2 gs_ub2; -gs uint2 gs_uc2; -gs uint3 gs_ua3; -gs uint3 gs_ub3; -gs uint3 gs_uc3; -gs uint4 gs_ua4; -gs uint4 gs_ub4; -gs uint4 gs_uc4; + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 882a2d0c..c8b1b10a 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1602" +#define GLSLANG_REVISION "Overload400-PrecQual.1603" #define GLSLANG_DATE "16-Oct-2016" From e5921f1309230cb7dea5d9d53bd3bc38c07da037 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 15 Oct 2016 10:29:58 -0600 Subject: [PATCH 213/217] HLSL: Fix unary and binary operator type conversion issues This fixes defects as follows: 1. handleLvalue could be called on a non-L-value, and it shouldn't be. 2. HLSL allows unary negation on non-bool values. TUnaryOperator::promote can now promote other types (e.g, int, float) to bool for this op. 3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar (2). 4. HLSL allows mod operation on arbitrary types, which will be promoted. E.g, int % float -> float % float. --- Test/baseResults/hlsl.logical.binary.frag.out | 220 +++++++++++++ Test/baseResults/hlsl.logical.unary.frag.out | 292 ++++++++++++++++++ Test/baseResults/hlsl.promote.binary.frag.out | 280 +++++++++++++++++ Test/hlsl.logical.binary.frag | 21 ++ Test/hlsl.logical.unary.frag | 29 ++ Test/hlsl.promote.binary.frag | 28 ++ glslang/Include/intermediate.h | 8 +- glslang/MachineIndependent/Intermediate.cpp | 66 +++- .../MachineIndependent/localintermediate.h | 5 +- gtests/Hlsl.FromFile.cpp | 5 +- hlsl/hlslGrammar.cpp | 5 +- hlsl/hlslParseables.cpp | 3 - 12 files changed, 946 insertions(+), 16 deletions(-) create mode 100644 Test/baseResults/hlsl.logical.binary.frag.out create mode 100644 Test/baseResults/hlsl.logical.unary.frag.out create mode 100644 Test/baseResults/hlsl.promote.binary.frag.out create mode 100644 Test/hlsl.logical.binary.frag create mode 100644 Test/hlsl.logical.unary.frag create mode 100644 Test/hlsl.promote.binary.frag diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out new file mode 100644 index 00000000..9e6593ee --- /dev/null +++ b/Test/baseResults/hlsl.logical.binary.frag.out @@ -0,0 +1,220 @@ +hlsl.logical.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "$Global" + MemberName 11($Global) 0 "ival" + MemberName 11($Global) 1 "ival4" + MemberName 11($Global) 2 "fval" + MemberName 11($Global) 3 "fval4" + Name 13 "" + Name 45 "PS_OUTPUT" + MemberName 45(PS_OUTPUT) 0 "Color" + Name 47 "psout" + Name 53 "Color" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 53(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypeVector 7(int) 4 + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: 7(int) Constant 0 + 15: TypePointer Uniform 7(int) + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 23: 7(int) Constant 2 + 24: TypePointer Uniform 9(float) + 45(PS_OUTPUT): TypeStruct 10(fvec4) + 46: TypePointer Function 45(PS_OUTPUT) + 48: 9(float) Constant 1065353216 + 49: 10(fvec4) ConstantComposite 48 48 48 48 + 50: TypePointer Function 10(fvec4) + 52: TypePointer Output 10(fvec4) + 53(Color): 52(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 47(psout): 46(ptr) Variable Function + 16: 15(ptr) AccessChain 13 14 + 17: 7(int) Load 16 + 20: 6(bool) INotEqual 17 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + 25: 24(ptr) AccessChain 13 23 + 26: 9(float) Load 25 + 27: 7(int) ConvertFToS 26 + 28: 6(bool) INotEqual 27 19 + Branch 22 + 22: Label + 29: 6(bool) Phi 20 5 28 21 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + Branch 31 + 31: Label + 32: 15(ptr) AccessChain 13 14 + 33: 7(int) Load 32 + 34: 6(bool) INotEqual 33 19 + 35: 6(bool) LogicalNot 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + 38: 24(ptr) AccessChain 13 23 + 39: 9(float) Load 38 + 40: 7(int) ConvertFToS 39 + 41: 6(bool) INotEqual 40 19 + Branch 37 + 37: Label + 42: 6(bool) Phi 34 31 41 36 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + Branch 44 + 44: Label + 51: 50(ptr) AccessChain 47(psout) 14 + Store 51 49 + 54: 50(ptr) AccessChain 47(psout) 14 + 55: 10(fvec4) Load 54 + Store 53(Color) 55 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out new file mode 100644 index 00000000..e3def3c0 --- /dev/null +++ b/Test/baseResults/hlsl.logical.unary.frag.out @@ -0,0 +1,292 @@ +hlsl.logical.unary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 73 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "$Global" + MemberName 10($Global) 0 "ival" + MemberName 10($Global) 1 "ival4" + MemberName 10($Global) 2 "fval" + MemberName 10($Global) 3 "fval4" + Name 12 "" + Name 65 "PS_OUTPUT" + MemberName 65(PS_OUTPUT) 0 "Color" + Name 67 "psout" + Name 73 "Color" + MemberDecorate 10($Global) 0 Offset 0 + MemberDecorate 10($Global) 1 Offset 16 + MemberDecorate 10($Global) 2 Offset 32 + MemberDecorate 10($Global) 3 Offset 48 + Decorate 10($Global) Block + Decorate 12 DescriptorSet 0 + Decorate 73(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4) + 11: TypePointer Uniform 10($Global) + 12: 11(ptr) Variable Uniform + 13: 6(int) Constant 0 + 14: TypePointer Uniform 6(int) + 17: TypeBool + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 22: 6(int) Constant 1 + 23: TypePointer Uniform 7(ivec4) + 26: TypeVector 17(bool) 4 + 27: TypeVector 18(int) 4 + 28: 27(ivec4) ConstantComposite 19 19 19 19 + 31: 6(int) Constant 2 + 32: TypePointer Uniform 8(float) + 35: 8(float) Constant 0 + 38: 6(int) Constant 3 + 39: TypePointer Uniform 9(fvec4) + 42: 9(fvec4) ConstantComposite 35 35 35 35 + 65(PS_OUTPUT): TypeStruct 9(fvec4) + 66: TypePointer Function 65(PS_OUTPUT) + 68: 8(float) Constant 1065353216 + 69: 9(fvec4) ConstantComposite 68 68 68 68 + 70: TypePointer Function 9(fvec4) + 72: TypePointer Output 9(fvec4) + 73(Color): 72(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 67(psout): 66(ptr) Variable Function + 15: 14(ptr) AccessChain 12 13 + 16: 6(int) Load 15 + 20: 17(bool) INotEqual 16 19 + 21: 17(bool) LogicalNot 20 + 24: 23(ptr) AccessChain 12 22 + 25: 7(ivec4) Load 24 + 29: 26(bvec4) INotEqual 25 28 + 30: 26(bvec4) LogicalNot 29 + 33: 32(ptr) AccessChain 12 31 + 34: 8(float) Load 33 + 36: 17(bool) FOrdNotEqual 34 35 + 37: 17(bool) LogicalNot 36 + 40: 39(ptr) AccessChain 12 38 + 41: 9(fvec4) Load 40 + 43: 26(bvec4) FOrdNotEqual 41 42 + 44: 26(bvec4) LogicalNot 43 + 45: 14(ptr) AccessChain 12 13 + 46: 6(int) Load 45 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + Branch 48 + 48: Label + 49: 32(ptr) AccessChain 12 31 + 50: 8(float) Load 49 + SelectionMerge 52 None + BranchConditional 50 51 52 + 51: Label + Branch 52 + 52: Label + 53: 14(ptr) AccessChain 12 13 + 54: 6(int) Load 53 + 55: 17(bool) INotEqual 54 19 + 56: 17(bool) LogicalNot 55 + SelectionMerge 58 None + BranchConditional 56 57 58 + 57: Label + Branch 58 + 58: Label + 59: 32(ptr) AccessChain 12 31 + 60: 8(float) Load 59 + 61: 17(bool) FOrdNotEqual 60 35 + 62: 17(bool) LogicalNot 61 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + Branch 64 + 64: Label + 71: 70(ptr) AccessChain 67(psout) 13 + Store 71 69 + 74: 70(ptr) AccessChain 67(psout) 13 + 75: 9(fvec4) Load 74 + Store 73(Color) 75 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out new file mode 100644 index 00000000..a2e7176c --- /dev/null +++ b/Test/baseResults/hlsl.promote.binary.frag.out @@ -0,0 +1,280 @@ +hlsl.promote.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "bval" + MemberName 12($Global) 1 "bval4" + MemberName 12($Global) 2 "ival" + MemberName 12($Global) 3 "ival4" + MemberName 12($Global) 4 "fval" + MemberName 12($Global) 5 "fval4" + Name 14 "" + Name 62 "l_int" + Name 68 "PS_OUTPUT" + MemberName 68(PS_OUTPUT) 0 "Color" + Name 70 "psout" + Name 74 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 48 + MemberDecorate 12($Global) 4 Offset 64 + MemberDecorate 12($Global) 5 Offset 80 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 74(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 4 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 8(int) Constant 2 + 16: TypePointer Uniform 8(int) + 20: 8(int) Constant 4 + 21: TypePointer Uniform 10(float) + 25: 8(int) Constant 3 + 26: TypePointer Uniform 9(ivec4) + 30: 8(int) Constant 5 + 31: TypePointer Uniform 11(fvec4) + 35: 8(int) Constant 0 + 36: TypePointer Uniform 6(int) + 39: TypeBool + 40: 6(int) Constant 0 + 42: 10(float) Constant 0 + 43: 10(float) Constant 1065353216 + 48: 8(int) Constant 1 + 49: TypePointer Uniform 7(ivec4) + 52: TypeVector 39(bool) 4 + 53: 7(ivec4) ConstantComposite 40 40 40 40 + 55: 11(fvec4) ConstantComposite 42 42 42 42 + 56: 11(fvec4) ConstantComposite 43 43 43 43 + 61: TypePointer Function 8(int) + 68(PS_OUTPUT): TypeStruct 11(fvec4) + 69: TypePointer Function 68(PS_OUTPUT) + 71: TypePointer Function 11(fvec4) + 73: TypePointer Output 11(fvec4) + 74(Color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 62(l_int): 61(ptr) Variable Function + 70(psout): 69(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(int) Load 17 + 19: 10(float) ConvertSToF 18 + 22: 21(ptr) AccessChain 14 20 + 23: 10(float) Load 22 + 24: 10(float) FMod 19 23 + 27: 26(ptr) AccessChain 14 25 + 28: 9(ivec4) Load 27 + 29: 11(fvec4) ConvertSToF 28 + 32: 31(ptr) AccessChain 14 30 + 33: 11(fvec4) Load 32 + 34: 11(fvec4) FMod 29 33 + 37: 36(ptr) AccessChain 14 35 + 38: 6(int) Load 37 + 41: 39(bool) INotEqual 38 40 + 44: 10(float) Select 41 43 42 + 45: 21(ptr) AccessChain 14 20 + 46: 10(float) Load 45 + 47: 10(float) FMod 44 46 + 50: 49(ptr) AccessChain 14 48 + 51: 7(ivec4) Load 50 + 54: 52(bvec4) INotEqual 51 53 + 57: 11(fvec4) Select 54 56 55 + 58: 31(ptr) AccessChain 14 30 + 59: 11(fvec4) Load 58 + 60: 11(fvec4) FMod 57 59 + Store 62(l_int) 48 + 63: 21(ptr) AccessChain 14 20 + 64: 10(float) Load 63 + 65: 8(int) ConvertFToS 64 + 66: 8(int) Load 62(l_int) + 67: 8(int) SMod 66 65 + Store 62(l_int) 67 + 72: 71(ptr) AccessChain 70(psout) 35 + Store 72 55 + 75: 71(ptr) AccessChain 70(psout) 35 + 76: 11(fvec4) Load 75 + Store 74(Color) 76 + Return + FunctionEnd diff --git a/Test/hlsl.logical.binary.frag b/Test/hlsl.logical.binary.frag new file mode 100644 index 00000000..06bc9f2f --- /dev/null +++ b/Test/hlsl.logical.binary.frag @@ -0,0 +1,21 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + if (ival && fval); + if (ival || fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.logical.unary.frag b/Test/hlsl.logical.unary.frag new file mode 100644 index 00000000..cbcb3bfc --- /dev/null +++ b/Test/hlsl.logical.unary.frag @@ -0,0 +1,29 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + !ival; // scalar int + !ival4; // vector int + + !fval; // scalar float + !fval4; // vector float + + if (ival); + if (fval); + if (!ival); + if (!fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.promote.binary.frag b/Test/hlsl.promote.binary.frag new file mode 100644 index 00000000..0203bed9 --- /dev/null +++ b/Test/hlsl.promote.binary.frag @@ -0,0 +1,28 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool bval; +uniform bool4 bval4; +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + ival % fval; + ival4 % fval4; + + bval % fval; + bval4 % fval4; + + int l_int = 1; + l_int %= fval; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} + diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 27c798d1..fc267543 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -52,6 +52,8 @@ namespace glslang { +class TIntermediate; + // // Operators used by the high-level (parse tree) representation. // @@ -845,7 +847,7 @@ public: virtual TIntermOperator* getAsOperator() { return this; } virtual const TIntermOperator* getAsOperator() const { return this; } TOperator getOp() const { return op; } - virtual bool promote() { return true; } + virtual bool promote(TIntermediate&) { return true; } bool modifiesState() const; bool isConstructor() const; bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } @@ -1024,7 +1026,7 @@ public: virtual TIntermTyped* getRight() const { return right; } virtual TIntermBinary* getAsBinaryNode() { return this; } virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual bool promote(); + virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* left; @@ -1044,7 +1046,7 @@ public: virtual const TIntermTyped* getOperand() const { return operand; } virtual TIntermUnary* getAsUnaryNode() { return this; } virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual bool promote(); + virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* operand; diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 8e80bbd2..1441c55b 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -137,7 +137,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // one and promote it to the right type. // TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote()) + if (! node->promote(*this)) return 0; node->updatePrecision(); @@ -246,7 +246,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote()) + if (! node->promote(*this)) return nullptr; node->updatePrecision(); @@ -282,6 +282,10 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo switch (op) { case EOpLogicalNot: + if (source == EShSourceHlsl) { + break; // HLSL can promote logical not + } + if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { return 0; } @@ -349,7 +353,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TIntermUnary* node = addUnaryNode(op, child, loc); - if (! node->promote()) + if (! node->promote(*this)) return 0; node->updatePrecision(); @@ -555,6 +559,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: case EOpFunctionCall: case EOpReturn: @@ -841,6 +849,10 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions case EOpFunctionCall: // conversion of a calling parameter + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: return true; default: break; @@ -873,6 +885,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtFloat16: #endif return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -1716,13 +1730,20 @@ bool TIntermOperator::isConstructor() const // // Returns false in nothing makes sense. // -bool TIntermUnary::promote() +bool TIntermUnary::promote(TIntermediate& intermediate) { switch (op) { case EOpLogicalNot: - if (operand->getBasicType() != EbtBool) + // Convert operand to a boolean type + if (operand->getBasicType() != EbtBool) { + // Add constructor to boolean type. If that fails, we can't do it, so return false. + TIntermTyped* converted = intermediate.convertToBasicType(op, EbtBool, operand); + if (converted == nullptr) + return false; - return false; + // Use the result of converting the node to a bool. + operand = converted; + } break; case EOpBitwiseNot: if (operand->getBasicType() != EbtInt && @@ -1774,13 +1795,31 @@ void TIntermUnary::updatePrecision() } } +// If it is not already, convert this node to the given basic type. +TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const +{ + if (node == nullptr) + return nullptr; + + // It's already this basic type: nothing needs to be done, so use the node directly. + if (node->getBasicType() == basicType) + return node; + + const TType& type = node->getType(); + const TType newType(basicType, type.getQualifier().storage, + type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector()); + + // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr. + return addConversion(op, newType, node); +} + // // Establishes the type of the resultant operation, as well as // makes the operator the correct one for the operands. // // Returns false if operator can't work on operands. // -bool TIntermBinary::promote() +bool TIntermBinary::promote(TIntermediate& intermediate) { // Arrays and structures have to be exact matches. if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) @@ -1843,6 +1882,15 @@ bool TIntermBinary::promote() case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: + if (intermediate.getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = intermediate.convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = intermediate.convertToBasicType(op, EbtBool, right); + if (convertedL == nullptr || convertedR == nullptr) + return false; + left = convertedL; + right = convertedR; + } + // logical ops operate only on scalar Booleans and will promote to scalar Boolean. if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) return false; @@ -1864,6 +1912,9 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if (intermediate.getSource() == EShSourceHlsl) + break; + // Check for integer-only operands. if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint && left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) || @@ -2051,6 +2102,7 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if ((left->isMatrix() && right->isVector()) || (left->isVector() && right->isMatrix()) || left->getBasicType() != right->getBasicType()) diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index aae22ecc..c8742cb4 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -246,6 +246,9 @@ public: TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; + // Add conversion from node's type to given basic type. + TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const; + // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); @@ -390,7 +393,7 @@ protected: bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; - + const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later std::string entryPointName; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b50816a1..9c1a3eed 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -142,6 +142,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.logical.unary.frag", "main"}, + {"hlsl.logical.binary.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, @@ -149,6 +151,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, + {"hlsl.promote.binary.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, @@ -179,7 +182,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, - { "hlsl.sample.sub-vec4.dx10.frag", "main"}, + {"hlsl.sample.sub-vec4.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.shapeConvRet.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 7766f857..89465bff 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1935,7 +1935,10 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) return true; node = intermediate.addUnaryMath(unaryOp, node, loc); - node = parseContext.handleLvalue(loc, "unary operator", node); + + // These unary ops require lvalues + if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) + node = parseContext.handleLvalue(loc, "unary operator", node); return node != nullptr; } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index d33cfb89..7ab159dc 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -245,7 +245,6 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons char order = *argOrder; if (UseHlslTypes) { - // TODO: handle sub-vec4 returns switch (type) { case '-': s += "void"; break; case 'F': s += "float"; break; @@ -832,8 +831,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, - // TODO: Cmp forms - // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; From bb5c02fd23768adc51fe0ae72035e43120bc8200 Mon Sep 17 00:00:00 2001 From: David Neto Date: Wed, 19 Oct 2016 10:16:29 -0400 Subject: [PATCH 214/217] Add missing guard to code that uses AMD extensions Otherwise compilation fails when ENABLED_AMD_EXTENSIONS is off. --- SPIRV/GlslangToSpv.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 49bb0a17..3e0ad4f1 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -4133,10 +4133,12 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op builder.addCapability(spv::CapabilitySubgroupBallotKHR); } else { builder.addCapability(spv::CapabilityGroups); +#ifdef AMD_EXTENSIONS if (op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) builder.addExtension(spv::E_SPV_AMD_shader_ballot); +#endif spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS From 22322361d69d08034eea769a2761038670918124 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 19 Oct 2016 10:15:25 -0600 Subject: [PATCH 215/217] HLSL: phase 4 of rwtexture support: add image atomics This PR will turn Interlocked* intrinsics using rwtexture or rwbuffer object as the first parameter into the proper OpImageAtomic* operations. --- Test/baseResults/hlsl.rw.atomics.frag.out | 5261 +++++++++++++++++++++ Test/hlsl.rw.atomics.frag | 244 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 94 +- 4 files changed, 5574 insertions(+), 26 deletions(-) create mode 100644 Test/baseResults/hlsl.rw.atomics.frag.out create mode 100644 Test/hlsl.rw.atomics.frag diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out new file mode 100644 index 00000000..22716ef1 --- /dev/null +++ b/Test/baseResults/hlsl.rw.atomics.frag.out @@ -0,0 +1,5261 @@ +hlsl.rw.atomics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1142 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1di1" + Name 15 "$Global" + MemberName 15($Global) 0 "u1" + MemberName 15($Global) 1 "u2" + MemberName 15($Global) 2 "u3" + MemberName 15($Global) 3 "u1b" + MemberName 15($Global) 4 "u1c" + MemberName 15($Global) 5 "i1" + MemberName 15($Global) 6 "i2" + MemberName 15($Global) 7 "i3" + MemberName 15($Global) 8 "i1b" + MemberName 15($Global) 9 "i1c" + Name 17 "" + Name 31 "out_i1" + Name 115 "g_tTex1du1" + Name 126 "out_u1" + Name 211 "g_tTex2di1" + Name 302 "g_tTex2du1" + Name 393 "g_tTex3di1" + Name 484 "g_tTex3du1" + Name 575 "g_tTex1di1a" + Name 664 "g_tTex1du1a" + Name 925 "g_tBuffI" + Name 1014 "g_tBuffU" + Name 1103 "PS_OUTPUT" + MemberName 1103(PS_OUTPUT) 0 "Color" + Name 1105 "psout" + Name 1111 "Color" + Name 1117 "g_sSamp" + Name 1120 "g_tTex1df1" + Name 1123 "g_tTex2df1" + Name 1126 "g_tTex3df1" + Name 1129 "g_tTex1df1a" + Name 1132 "g_tTex2df1a" + Name 1135 "g_tTex2di1a" + Name 1138 "g_tTex2du1a" + Name 1141 "g_tBuffF" + Decorate 9(g_tTex1di1) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 28 + MemberDecorate 15($Global) 4 Offset 32 + MemberDecorate 15($Global) 5 Offset 36 + MemberDecorate 15($Global) 6 Offset 40 + MemberDecorate 15($Global) 7 Offset 48 + MemberDecorate 15($Global) 8 Offset 60 + MemberDecorate 15($Global) 9 Offset 64 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 115(g_tTex1du1) DescriptorSet 0 + Decorate 211(g_tTex2di1) DescriptorSet 0 + Decorate 302(g_tTex2du1) DescriptorSet 0 + Decorate 393(g_tTex3di1) DescriptorSet 0 + Decorate 484(g_tTex3du1) DescriptorSet 0 + Decorate 575(g_tTex1di1a) DescriptorSet 0 + Decorate 664(g_tTex1du1a) DescriptorSet 0 + Decorate 925(g_tBuffI) DescriptorSet 0 + Decorate 1014(g_tBuffU) DescriptorSet 0 + Decorate 1111(Color) Location 0 + Decorate 1117(g_sSamp) DescriptorSet 0 + Decorate 1120(g_tTex1df1) DescriptorSet 0 + Decorate 1123(g_tTex2df1) DescriptorSet 0 + Decorate 1126(g_tTex3df1) DescriptorSet 0 + Decorate 1129(g_tTex1df1a) DescriptorSet 0 + Decorate 1132(g_tTex2df1a) DescriptorSet 0 + Decorate 1135(g_tTex2di1a) DescriptorSet 0 + Decorate 1138(g_tTex2du1a) DescriptorSet 0 + Decorate 1141(g_tBuffF) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeImage 6(int) 1D nonsampled format:R32i + 8: TypePointer UniformConstant 7 + 9(g_tTex1di1): 8(ptr) Variable UniformConstant + 10: TypeInt 32 0 + 11: TypeVector 10(int) 2 + 12: TypeVector 10(int) 3 + 13: TypeVector 6(int) 2 + 14: TypeVector 6(int) 3 + 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 6(int) Constant 5 + 19: TypePointer Uniform 6(int) + 22: 6(int) Constant 8 + 25: 10(int) Constant 0 + 26: TypePointer Image 6(int) + 28: 10(int) Constant 1 + 30: TypePointer Function 6(int) + 54: 6(int) Constant 9 + 113: TypeImage 10(int) 1D nonsampled format:R32ui + 114: TypePointer UniformConstant 113 + 115(g_tTex1du1): 114(ptr) Variable UniformConstant + 116: 6(int) Constant 0 + 117: TypePointer Uniform 10(int) + 122: TypePointer Image 10(int) + 125: TypePointer Function 10(int) + 147: 6(int) Constant 3 + 150: 6(int) Constant 4 + 209: TypeImage 6(int) 2D nonsampled format:R32i + 210: TypePointer UniformConstant 209 + 211(g_tTex2di1): 210(ptr) Variable UniformConstant + 212: 6(int) Constant 6 + 213: TypePointer Uniform 13(ivec2) + 300: TypeImage 10(int) 2D nonsampled format:R32ui + 301: TypePointer UniformConstant 300 + 302(g_tTex2du1): 301(ptr) Variable UniformConstant + 303: 6(int) Constant 1 + 304: TypePointer Uniform 11(ivec2) + 391: TypeImage 6(int) 3D nonsampled format:R32i + 392: TypePointer UniformConstant 391 + 393(g_tTex3di1): 392(ptr) Variable UniformConstant + 394: 6(int) Constant 7 + 395: TypePointer Uniform 14(ivec3) + 482: TypeImage 10(int) 3D nonsampled format:R32ui + 483: TypePointer UniformConstant 482 + 484(g_tTex3du1): 483(ptr) Variable UniformConstant + 485: 6(int) Constant 2 + 486: TypePointer Uniform 12(ivec3) + 573: TypeImage 6(int) 1D array nonsampled format:R32i + 574: TypePointer UniformConstant 573 +575(g_tTex1di1a): 574(ptr) Variable UniformConstant + 662: TypeImage 10(int) 1D array nonsampled format:R32ui + 663: TypePointer UniformConstant 662 +664(g_tTex1du1a): 663(ptr) Variable UniformConstant + 923: TypeImage 6(int) Buffer nonsampled format:R32i + 924: TypePointer UniformConstant 923 + 925(g_tBuffI): 924(ptr) Variable UniformConstant + 1012: TypeImage 10(int) Buffer nonsampled format:R32ui + 1013: TypePointer UniformConstant 1012 + 1014(g_tBuffU): 1013(ptr) Variable UniformConstant + 1101: TypeFloat 32 + 1102: TypeVector 1101(float) 4 + 1103(PS_OUTPUT): TypeStruct 1102(fvec4) + 1104: TypePointer Function 1103(PS_OUTPUT) + 1106: 1101(float) Constant 1065353216 + 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106 + 1108: TypePointer Function 1102(fvec4) + 1110: TypePointer Output 1102(fvec4) + 1111(Color): 1110(ptr) Variable Output + 1115: TypeSampler + 1116: TypePointer UniformConstant 1115 + 1117(g_sSamp): 1116(ptr) Variable UniformConstant + 1118: TypeImage 1101(float) 1D nonsampled format:R32f + 1119: TypePointer UniformConstant 1118 +1120(g_tTex1df1): 1119(ptr) Variable UniformConstant + 1121: TypeImage 1101(float) 2D nonsampled format:R32f + 1122: TypePointer UniformConstant 1121 +1123(g_tTex2df1): 1122(ptr) Variable UniformConstant + 1124: TypeImage 1101(float) 3D nonsampled format:R32f + 1125: TypePointer UniformConstant 1124 +1126(g_tTex3df1): 1125(ptr) Variable UniformConstant + 1127: TypeImage 1101(float) 1D array nonsampled format:R32f + 1128: TypePointer UniformConstant 1127 +1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant + 1130: TypeImage 1101(float) 2D array nonsampled format:R32f + 1131: TypePointer UniformConstant 1130 +1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant + 1133: TypeImage 6(int) 2D array nonsampled format:R32i + 1134: TypePointer UniformConstant 1133 +1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant + 1136: TypeImage 10(int) 2D array nonsampled format:R32ui + 1137: TypePointer UniformConstant 1136 +1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant + 1139: TypeImage 1101(float) Buffer nonsampled format:R32f + 1140: TypePointer UniformConstant 1139 + 1141(g_tBuffF): 1140(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31(out_i1): 30(ptr) Variable Function + 126(out_u1): 125(ptr) Variable Function + 1105(psout): 1104(ptr) Variable Function + 20: 19(ptr) AccessChain 17 18 + 21: 6(int) Load 20 + 23: 19(ptr) AccessChain 17 22 + 24: 6(int) Load 23 + 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25 + 29: 6(int) AtomicIAdd 27 28 25 24 + 32: 19(ptr) AccessChain 17 18 + 33: 6(int) Load 32 + 34: 19(ptr) AccessChain 17 18 + 35: 6(int) Load 34 + 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25 + 37: 6(int) AtomicIAdd 36 28 25 35 + Store 31(out_i1) 37 + 38: 19(ptr) AccessChain 17 18 + 39: 6(int) Load 38 + 40: 19(ptr) AccessChain 17 22 + 41: 6(int) Load 40 + 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25 + 43: 6(int) AtomicAnd 42 28 25 41 + 44: 19(ptr) AccessChain 17 18 + 45: 6(int) Load 44 + 46: 19(ptr) AccessChain 17 18 + 47: 6(int) Load 46 + 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25 + 49: 6(int) AtomicAnd 48 28 25 47 + Store 31(out_i1) 49 + 50: 19(ptr) AccessChain 17 18 + 51: 6(int) Load 50 + 52: 19(ptr) AccessChain 17 22 + 53: 6(int) Load 52 + 55: 19(ptr) AccessChain 17 54 + 56: 6(int) Load 55 + 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25 + 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53 + Store 31(out_i1) 58 + 59: 19(ptr) AccessChain 17 18 + 60: 6(int) Load 59 + 61: 19(ptr) AccessChain 17 18 + 62: 6(int) Load 61 + 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25 + 64: 6(int) AtomicExchange 63 28 25 62 + Store 31(out_i1) 64 + 65: 19(ptr) AccessChain 17 18 + 66: 6(int) Load 65 + 67: 19(ptr) AccessChain 17 22 + 68: 6(int) Load 67 + 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25 + 70: 6(int) AtomicSMax 69 28 25 68 + 71: 19(ptr) AccessChain 17 18 + 72: 6(int) Load 71 + 73: 19(ptr) AccessChain 17 18 + 74: 6(int) Load 73 + 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25 + 76: 6(int) AtomicSMax 75 28 25 74 + Store 31(out_i1) 76 + 77: 19(ptr) AccessChain 17 18 + 78: 6(int) Load 77 + 79: 19(ptr) AccessChain 17 22 + 80: 6(int) Load 79 + 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25 + 82: 6(int) AtomicSMin 81 28 25 80 + 83: 19(ptr) AccessChain 17 18 + 84: 6(int) Load 83 + 85: 19(ptr) AccessChain 17 18 + 86: 6(int) Load 85 + 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25 + 88: 6(int) AtomicSMin 87 28 25 86 + Store 31(out_i1) 88 + 89: 19(ptr) AccessChain 17 18 + 90: 6(int) Load 89 + 91: 19(ptr) AccessChain 17 22 + 92: 6(int) Load 91 + 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25 + 94: 6(int) AtomicOr 93 28 25 92 + 95: 19(ptr) AccessChain 17 18 + 96: 6(int) Load 95 + 97: 19(ptr) AccessChain 17 18 + 98: 6(int) Load 97 + 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25 + 100: 6(int) AtomicOr 99 28 25 98 + Store 31(out_i1) 100 + 101: 19(ptr) AccessChain 17 18 + 102: 6(int) Load 101 + 103: 19(ptr) AccessChain 17 22 + 104: 6(int) Load 103 + 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25 + 106: 6(int) AtomicXor 105 28 25 104 + 107: 19(ptr) AccessChain 17 18 + 108: 6(int) Load 107 + 109: 19(ptr) AccessChain 17 18 + 110: 6(int) Load 109 + 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25 + 112: 6(int) AtomicXor 111 28 25 110 + Store 31(out_i1) 112 + 118: 117(ptr) AccessChain 17 116 + 119: 10(int) Load 118 + 120: 117(ptr) AccessChain 17 116 + 121: 10(int) Load 120 + 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25 + 124: 10(int) AtomicIAdd 123 28 25 121 + 127: 117(ptr) AccessChain 17 116 + 128: 10(int) Load 127 + 129: 117(ptr) AccessChain 17 116 + 130: 10(int) Load 129 + 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25 + 132: 10(int) AtomicIAdd 131 28 25 130 + Store 126(out_u1) 132 + 133: 117(ptr) AccessChain 17 116 + 134: 10(int) Load 133 + 135: 117(ptr) AccessChain 17 116 + 136: 10(int) Load 135 + 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25 + 138: 10(int) AtomicAnd 137 28 25 136 + 139: 117(ptr) AccessChain 17 116 + 140: 10(int) Load 139 + 141: 117(ptr) AccessChain 17 116 + 142: 10(int) Load 141 + 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25 + 144: 10(int) AtomicAnd 143 28 25 142 + Store 126(out_u1) 144 + 145: 117(ptr) AccessChain 17 116 + 146: 10(int) Load 145 + 148: 117(ptr) AccessChain 17 147 + 149: 10(int) Load 148 + 151: 117(ptr) AccessChain 17 150 + 152: 10(int) Load 151 + 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25 + 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149 + Store 126(out_u1) 154 + 155: 117(ptr) AccessChain 17 116 + 156: 10(int) Load 155 + 157: 117(ptr) AccessChain 17 116 + 158: 10(int) Load 157 + 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25 + 160: 10(int) AtomicExchange 159 28 25 158 + Store 126(out_u1) 160 + 161: 117(ptr) AccessChain 17 116 + 162: 10(int) Load 161 + 163: 117(ptr) AccessChain 17 116 + 164: 10(int) Load 163 + 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25 + 166: 10(int) AtomicUMax 165 28 25 164 + 167: 117(ptr) AccessChain 17 116 + 168: 10(int) Load 167 + 169: 117(ptr) AccessChain 17 116 + 170: 10(int) Load 169 + 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25 + 172: 10(int) AtomicUMax 171 28 25 170 + Store 126(out_u1) 172 + 173: 117(ptr) AccessChain 17 116 + 174: 10(int) Load 173 + 175: 117(ptr) AccessChain 17 116 + 176: 10(int) Load 175 + 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25 + 178: 10(int) AtomicUMin 177 28 25 176 + 179: 117(ptr) AccessChain 17 116 + 180: 10(int) Load 179 + 181: 117(ptr) AccessChain 17 116 + 182: 10(int) Load 181 + 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25 + 184: 10(int) AtomicUMin 183 28 25 182 + Store 126(out_u1) 184 + 185: 117(ptr) AccessChain 17 116 + 186: 10(int) Load 185 + 187: 117(ptr) AccessChain 17 116 + 188: 10(int) Load 187 + 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25 + 190: 10(int) AtomicOr 189 28 25 188 + 191: 117(ptr) AccessChain 17 116 + 192: 10(int) Load 191 + 193: 117(ptr) AccessChain 17 116 + 194: 10(int) Load 193 + 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25 + 196: 10(int) AtomicOr 195 28 25 194 + Store 126(out_u1) 196 + 197: 117(ptr) AccessChain 17 116 + 198: 10(int) Load 197 + 199: 117(ptr) AccessChain 17 116 + 200: 10(int) Load 199 + 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25 + 202: 10(int) AtomicXor 201 28 25 200 + 203: 117(ptr) AccessChain 17 116 + 204: 10(int) Load 203 + 205: 117(ptr) AccessChain 17 116 + 206: 10(int) Load 205 + 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25 + 208: 10(int) AtomicXor 207 28 25 206 + Store 126(out_u1) 208 + 214: 213(ptr) AccessChain 17 212 + 215: 13(ivec2) Load 214 + 216: 19(ptr) AccessChain 17 22 + 217: 6(int) Load 216 + 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25 + 219: 6(int) AtomicIAdd 218 28 25 217 + 220: 213(ptr) AccessChain 17 212 + 221: 13(ivec2) Load 220 + 222: 19(ptr) AccessChain 17 18 + 223: 6(int) Load 222 + 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25 + 225: 6(int) AtomicIAdd 224 28 25 223 + Store 31(out_i1) 225 + 226: 213(ptr) AccessChain 17 212 + 227: 13(ivec2) Load 226 + 228: 19(ptr) AccessChain 17 22 + 229: 6(int) Load 228 + 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25 + 231: 6(int) AtomicAnd 230 28 25 229 + 232: 213(ptr) AccessChain 17 212 + 233: 13(ivec2) Load 232 + 234: 19(ptr) AccessChain 17 18 + 235: 6(int) Load 234 + 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25 + 237: 6(int) AtomicAnd 236 28 25 235 + Store 31(out_i1) 237 + 238: 213(ptr) AccessChain 17 212 + 239: 13(ivec2) Load 238 + 240: 19(ptr) AccessChain 17 22 + 241: 6(int) Load 240 + 242: 19(ptr) AccessChain 17 54 + 243: 6(int) Load 242 + 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25 + 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241 + Store 31(out_i1) 245 + 246: 213(ptr) AccessChain 17 212 + 247: 13(ivec2) Load 246 + 248: 19(ptr) AccessChain 17 18 + 249: 6(int) Load 248 + 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25 + 251: 6(int) AtomicExchange 250 28 25 249 + Store 31(out_i1) 251 + 252: 213(ptr) AccessChain 17 212 + 253: 13(ivec2) Load 252 + 254: 19(ptr) AccessChain 17 22 + 255: 6(int) Load 254 + 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25 + 257: 6(int) AtomicSMax 256 28 25 255 + 258: 213(ptr) AccessChain 17 212 + 259: 13(ivec2) Load 258 + 260: 19(ptr) AccessChain 17 18 + 261: 6(int) Load 260 + 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25 + 263: 6(int) AtomicSMax 262 28 25 261 + Store 31(out_i1) 263 + 264: 213(ptr) AccessChain 17 212 + 265: 13(ivec2) Load 264 + 266: 19(ptr) AccessChain 17 22 + 267: 6(int) Load 266 + 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25 + 269: 6(int) AtomicSMin 268 28 25 267 + 270: 213(ptr) AccessChain 17 212 + 271: 13(ivec2) Load 270 + 272: 19(ptr) AccessChain 17 18 + 273: 6(int) Load 272 + 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25 + 275: 6(int) AtomicSMin 274 28 25 273 + Store 31(out_i1) 275 + 276: 213(ptr) AccessChain 17 212 + 277: 13(ivec2) Load 276 + 278: 19(ptr) AccessChain 17 22 + 279: 6(int) Load 278 + 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25 + 281: 6(int) AtomicOr 280 28 25 279 + 282: 213(ptr) AccessChain 17 212 + 283: 13(ivec2) Load 282 + 284: 19(ptr) AccessChain 17 18 + 285: 6(int) Load 284 + 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25 + 287: 6(int) AtomicOr 286 28 25 285 + Store 31(out_i1) 287 + 288: 213(ptr) AccessChain 17 212 + 289: 13(ivec2) Load 288 + 290: 19(ptr) AccessChain 17 22 + 291: 6(int) Load 290 + 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25 + 293: 6(int) AtomicXor 292 28 25 291 + 294: 213(ptr) AccessChain 17 212 + 295: 13(ivec2) Load 294 + 296: 19(ptr) AccessChain 17 18 + 297: 6(int) Load 296 + 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25 + 299: 6(int) AtomicXor 298 28 25 297 + Store 31(out_i1) 299 + 305: 304(ptr) AccessChain 17 303 + 306: 11(ivec2) Load 305 + 307: 117(ptr) AccessChain 17 116 + 308: 10(int) Load 307 + 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25 + 310: 10(int) AtomicIAdd 309 28 25 308 + 311: 304(ptr) AccessChain 17 303 + 312: 11(ivec2) Load 311 + 313: 117(ptr) AccessChain 17 116 + 314: 10(int) Load 313 + 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25 + 316: 10(int) AtomicIAdd 315 28 25 314 + Store 126(out_u1) 316 + 317: 304(ptr) AccessChain 17 303 + 318: 11(ivec2) Load 317 + 319: 117(ptr) AccessChain 17 116 + 320: 10(int) Load 319 + 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25 + 322: 10(int) AtomicAnd 321 28 25 320 + 323: 304(ptr) AccessChain 17 303 + 324: 11(ivec2) Load 323 + 325: 117(ptr) AccessChain 17 116 + 326: 10(int) Load 325 + 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25 + 328: 10(int) AtomicAnd 327 28 25 326 + Store 126(out_u1) 328 + 329: 304(ptr) AccessChain 17 303 + 330: 11(ivec2) Load 329 + 331: 117(ptr) AccessChain 17 147 + 332: 10(int) Load 331 + 333: 117(ptr) AccessChain 17 150 + 334: 10(int) Load 333 + 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25 + 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332 + Store 126(out_u1) 336 + 337: 304(ptr) AccessChain 17 303 + 338: 11(ivec2) Load 337 + 339: 117(ptr) AccessChain 17 116 + 340: 10(int) Load 339 + 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25 + 342: 10(int) AtomicExchange 341 28 25 340 + Store 126(out_u1) 342 + 343: 304(ptr) AccessChain 17 303 + 344: 11(ivec2) Load 343 + 345: 117(ptr) AccessChain 17 116 + 346: 10(int) Load 345 + 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25 + 348: 10(int) AtomicUMax 347 28 25 346 + 349: 304(ptr) AccessChain 17 303 + 350: 11(ivec2) Load 349 + 351: 117(ptr) AccessChain 17 116 + 352: 10(int) Load 351 + 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25 + 354: 10(int) AtomicUMax 353 28 25 352 + Store 126(out_u1) 354 + 355: 304(ptr) AccessChain 17 303 + 356: 11(ivec2) Load 355 + 357: 117(ptr) AccessChain 17 116 + 358: 10(int) Load 357 + 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25 + 360: 10(int) AtomicUMin 359 28 25 358 + 361: 304(ptr) AccessChain 17 303 + 362: 11(ivec2) Load 361 + 363: 117(ptr) AccessChain 17 116 + 364: 10(int) Load 363 + 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25 + 366: 10(int) AtomicUMin 365 28 25 364 + Store 126(out_u1) 366 + 367: 304(ptr) AccessChain 17 303 + 368: 11(ivec2) Load 367 + 369: 117(ptr) AccessChain 17 116 + 370: 10(int) Load 369 + 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25 + 372: 10(int) AtomicOr 371 28 25 370 + 373: 304(ptr) AccessChain 17 303 + 374: 11(ivec2) Load 373 + 375: 117(ptr) AccessChain 17 116 + 376: 10(int) Load 375 + 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25 + 378: 10(int) AtomicOr 377 28 25 376 + Store 126(out_u1) 378 + 379: 304(ptr) AccessChain 17 303 + 380: 11(ivec2) Load 379 + 381: 117(ptr) AccessChain 17 116 + 382: 10(int) Load 381 + 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25 + 384: 10(int) AtomicXor 383 28 25 382 + 385: 304(ptr) AccessChain 17 303 + 386: 11(ivec2) Load 385 + 387: 117(ptr) AccessChain 17 116 + 388: 10(int) Load 387 + 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25 + 390: 10(int) AtomicXor 389 28 25 388 + Store 126(out_u1) 390 + 396: 395(ptr) AccessChain 17 394 + 397: 14(ivec3) Load 396 + 398: 19(ptr) AccessChain 17 22 + 399: 6(int) Load 398 + 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25 + 401: 6(int) AtomicIAdd 400 28 25 399 + 402: 395(ptr) AccessChain 17 394 + 403: 14(ivec3) Load 402 + 404: 19(ptr) AccessChain 17 18 + 405: 6(int) Load 404 + 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25 + 407: 6(int) AtomicIAdd 406 28 25 405 + Store 31(out_i1) 407 + 408: 395(ptr) AccessChain 17 394 + 409: 14(ivec3) Load 408 + 410: 19(ptr) AccessChain 17 22 + 411: 6(int) Load 410 + 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25 + 413: 6(int) AtomicAnd 412 28 25 411 + 414: 395(ptr) AccessChain 17 394 + 415: 14(ivec3) Load 414 + 416: 19(ptr) AccessChain 17 18 + 417: 6(int) Load 416 + 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25 + 419: 6(int) AtomicAnd 418 28 25 417 + Store 31(out_i1) 419 + 420: 395(ptr) AccessChain 17 394 + 421: 14(ivec3) Load 420 + 422: 19(ptr) AccessChain 17 22 + 423: 6(int) Load 422 + 424: 19(ptr) AccessChain 17 54 + 425: 6(int) Load 424 + 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25 + 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423 + Store 31(out_i1) 427 + 428: 395(ptr) AccessChain 17 394 + 429: 14(ivec3) Load 428 + 430: 19(ptr) AccessChain 17 18 + 431: 6(int) Load 430 + 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25 + 433: 6(int) AtomicExchange 432 28 25 431 + Store 31(out_i1) 433 + 434: 395(ptr) AccessChain 17 394 + 435: 14(ivec3) Load 434 + 436: 19(ptr) AccessChain 17 22 + 437: 6(int) Load 436 + 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25 + 439: 6(int) AtomicSMax 438 28 25 437 + 440: 395(ptr) AccessChain 17 394 + 441: 14(ivec3) Load 440 + 442: 19(ptr) AccessChain 17 18 + 443: 6(int) Load 442 + 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25 + 445: 6(int) AtomicSMax 444 28 25 443 + Store 31(out_i1) 445 + 446: 395(ptr) AccessChain 17 394 + 447: 14(ivec3) Load 446 + 448: 19(ptr) AccessChain 17 22 + 449: 6(int) Load 448 + 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25 + 451: 6(int) AtomicSMin 450 28 25 449 + 452: 395(ptr) AccessChain 17 394 + 453: 14(ivec3) Load 452 + 454: 19(ptr) AccessChain 17 18 + 455: 6(int) Load 454 + 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25 + 457: 6(int) AtomicSMin 456 28 25 455 + Store 31(out_i1) 457 + 458: 395(ptr) AccessChain 17 394 + 459: 14(ivec3) Load 458 + 460: 19(ptr) AccessChain 17 22 + 461: 6(int) Load 460 + 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25 + 463: 6(int) AtomicOr 462 28 25 461 + 464: 395(ptr) AccessChain 17 394 + 465: 14(ivec3) Load 464 + 466: 19(ptr) AccessChain 17 18 + 467: 6(int) Load 466 + 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25 + 469: 6(int) AtomicOr 468 28 25 467 + Store 31(out_i1) 469 + 470: 395(ptr) AccessChain 17 394 + 471: 14(ivec3) Load 470 + 472: 19(ptr) AccessChain 17 22 + 473: 6(int) Load 472 + 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25 + 475: 6(int) AtomicXor 474 28 25 473 + 476: 395(ptr) AccessChain 17 394 + 477: 14(ivec3) Load 476 + 478: 19(ptr) AccessChain 17 18 + 479: 6(int) Load 478 + 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25 + 481: 6(int) AtomicXor 480 28 25 479 + Store 31(out_i1) 481 + 487: 486(ptr) AccessChain 17 485 + 488: 12(ivec3) Load 487 + 489: 117(ptr) AccessChain 17 116 + 490: 10(int) Load 489 + 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25 + 492: 10(int) AtomicIAdd 491 28 25 490 + 493: 486(ptr) AccessChain 17 485 + 494: 12(ivec3) Load 493 + 495: 117(ptr) AccessChain 17 116 + 496: 10(int) Load 495 + 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25 + 498: 10(int) AtomicIAdd 497 28 25 496 + Store 126(out_u1) 498 + 499: 486(ptr) AccessChain 17 485 + 500: 12(ivec3) Load 499 + 501: 117(ptr) AccessChain 17 116 + 502: 10(int) Load 501 + 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25 + 504: 10(int) AtomicAnd 503 28 25 502 + 505: 486(ptr) AccessChain 17 485 + 506: 12(ivec3) Load 505 + 507: 117(ptr) AccessChain 17 116 + 508: 10(int) Load 507 + 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25 + 510: 10(int) AtomicAnd 509 28 25 508 + Store 126(out_u1) 510 + 511: 486(ptr) AccessChain 17 485 + 512: 12(ivec3) Load 511 + 513: 117(ptr) AccessChain 17 147 + 514: 10(int) Load 513 + 515: 117(ptr) AccessChain 17 150 + 516: 10(int) Load 515 + 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25 + 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514 + Store 126(out_u1) 518 + 519: 486(ptr) AccessChain 17 485 + 520: 12(ivec3) Load 519 + 521: 117(ptr) AccessChain 17 116 + 522: 10(int) Load 521 + 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25 + 524: 10(int) AtomicExchange 523 28 25 522 + Store 126(out_u1) 524 + 525: 486(ptr) AccessChain 17 485 + 526: 12(ivec3) Load 525 + 527: 117(ptr) AccessChain 17 116 + 528: 10(int) Load 527 + 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25 + 530: 10(int) AtomicUMax 529 28 25 528 + 531: 486(ptr) AccessChain 17 485 + 532: 12(ivec3) Load 531 + 533: 117(ptr) AccessChain 17 116 + 534: 10(int) Load 533 + 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25 + 536: 10(int) AtomicUMax 535 28 25 534 + Store 126(out_u1) 536 + 537: 486(ptr) AccessChain 17 485 + 538: 12(ivec3) Load 537 + 539: 117(ptr) AccessChain 17 116 + 540: 10(int) Load 539 + 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25 + 542: 10(int) AtomicUMin 541 28 25 540 + 543: 486(ptr) AccessChain 17 485 + 544: 12(ivec3) Load 543 + 545: 117(ptr) AccessChain 17 116 + 546: 10(int) Load 545 + 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25 + 548: 10(int) AtomicUMin 547 28 25 546 + Store 126(out_u1) 548 + 549: 486(ptr) AccessChain 17 485 + 550: 12(ivec3) Load 549 + 551: 117(ptr) AccessChain 17 116 + 552: 10(int) Load 551 + 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25 + 554: 10(int) AtomicOr 553 28 25 552 + 555: 486(ptr) AccessChain 17 485 + 556: 12(ivec3) Load 555 + 557: 117(ptr) AccessChain 17 116 + 558: 10(int) Load 557 + 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25 + 560: 10(int) AtomicOr 559 28 25 558 + Store 126(out_u1) 560 + 561: 486(ptr) AccessChain 17 485 + 562: 12(ivec3) Load 561 + 563: 117(ptr) AccessChain 17 116 + 564: 10(int) Load 563 + 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25 + 566: 10(int) AtomicXor 565 28 25 564 + 567: 486(ptr) AccessChain 17 485 + 568: 12(ivec3) Load 567 + 569: 117(ptr) AccessChain 17 116 + 570: 10(int) Load 569 + 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25 + 572: 10(int) AtomicXor 571 28 25 570 + Store 126(out_u1) 572 + 576: 213(ptr) AccessChain 17 212 + 577: 13(ivec2) Load 576 + 578: 19(ptr) AccessChain 17 22 + 579: 6(int) Load 578 + 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25 + 581: 6(int) AtomicIAdd 580 28 25 579 + 582: 213(ptr) AccessChain 17 212 + 583: 13(ivec2) Load 582 + 584: 19(ptr) AccessChain 17 18 + 585: 6(int) Load 584 + 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25 + 587: 6(int) AtomicIAdd 586 28 25 585 + Store 31(out_i1) 587 + 588: 213(ptr) AccessChain 17 212 + 589: 13(ivec2) Load 588 + 590: 19(ptr) AccessChain 17 22 + 591: 6(int) Load 590 + 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25 + 593: 6(int) AtomicAnd 592 28 25 591 + 594: 213(ptr) AccessChain 17 212 + 595: 13(ivec2) Load 594 + 596: 19(ptr) AccessChain 17 18 + 597: 6(int) Load 596 + 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25 + 599: 6(int) AtomicAnd 598 28 25 597 + Store 31(out_i1) 599 + 600: 213(ptr) AccessChain 17 212 + 601: 13(ivec2) Load 600 + 602: 19(ptr) AccessChain 17 22 + 603: 6(int) Load 602 + 604: 19(ptr) AccessChain 17 54 + 605: 6(int) Load 604 + 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25 + 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603 + Store 31(out_i1) 607 + 608: 213(ptr) AccessChain 17 212 + 609: 13(ivec2) Load 608 + 610: 19(ptr) AccessChain 17 18 + 611: 6(int) Load 610 + 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25 + 613: 6(int) AtomicExchange 612 28 25 611 + Store 31(out_i1) 613 + 614: 213(ptr) AccessChain 17 212 + 615: 13(ivec2) Load 614 + 616: 19(ptr) AccessChain 17 22 + 617: 6(int) Load 616 + 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25 + 619: 6(int) AtomicSMax 618 28 25 617 + 620: 213(ptr) AccessChain 17 212 + 621: 13(ivec2) Load 620 + 622: 19(ptr) AccessChain 17 18 + 623: 6(int) Load 622 + 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25 + 625: 6(int) AtomicSMax 624 28 25 623 + Store 31(out_i1) 625 + 626: 213(ptr) AccessChain 17 212 + 627: 13(ivec2) Load 626 + 628: 19(ptr) AccessChain 17 22 + 629: 6(int) Load 628 + 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25 + 631: 6(int) AtomicSMin 630 28 25 629 + 632: 213(ptr) AccessChain 17 212 + 633: 13(ivec2) Load 632 + 634: 19(ptr) AccessChain 17 18 + 635: 6(int) Load 634 + 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25 + 637: 6(int) AtomicSMin 636 28 25 635 + Store 31(out_i1) 637 + 638: 213(ptr) AccessChain 17 212 + 639: 13(ivec2) Load 638 + 640: 19(ptr) AccessChain 17 22 + 641: 6(int) Load 640 + 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25 + 643: 6(int) AtomicOr 642 28 25 641 + 644: 213(ptr) AccessChain 17 212 + 645: 13(ivec2) Load 644 + 646: 19(ptr) AccessChain 17 18 + 647: 6(int) Load 646 + 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25 + 649: 6(int) AtomicOr 648 28 25 647 + Store 31(out_i1) 649 + 650: 213(ptr) AccessChain 17 212 + 651: 13(ivec2) Load 650 + 652: 19(ptr) AccessChain 17 22 + 653: 6(int) Load 652 + 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25 + 655: 6(int) AtomicXor 654 28 25 653 + 656: 213(ptr) AccessChain 17 212 + 657: 13(ivec2) Load 656 + 658: 19(ptr) AccessChain 17 18 + 659: 6(int) Load 658 + 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25 + 661: 6(int) AtomicXor 660 28 25 659 + Store 31(out_i1) 661 + 665: 304(ptr) AccessChain 17 303 + 666: 11(ivec2) Load 665 + 667: 117(ptr) AccessChain 17 116 + 668: 10(int) Load 667 + 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25 + 670: 10(int) AtomicIAdd 669 28 25 668 + 671: 304(ptr) AccessChain 17 303 + 672: 11(ivec2) Load 671 + 673: 117(ptr) AccessChain 17 116 + 674: 10(int) Load 673 + 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25 + 676: 10(int) AtomicIAdd 675 28 25 674 + Store 126(out_u1) 676 + 677: 304(ptr) AccessChain 17 303 + 678: 11(ivec2) Load 677 + 679: 117(ptr) AccessChain 17 116 + 680: 10(int) Load 679 + 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25 + 682: 10(int) AtomicAnd 681 28 25 680 + 683: 304(ptr) AccessChain 17 303 + 684: 11(ivec2) Load 683 + 685: 117(ptr) AccessChain 17 116 + 686: 10(int) Load 685 + 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25 + 688: 10(int) AtomicAnd 687 28 25 686 + Store 126(out_u1) 688 + 689: 304(ptr) AccessChain 17 303 + 690: 11(ivec2) Load 689 + 691: 117(ptr) AccessChain 17 147 + 692: 10(int) Load 691 + 693: 117(ptr) AccessChain 17 150 + 694: 10(int) Load 693 + 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25 + 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692 + Store 126(out_u1) 696 + 697: 304(ptr) AccessChain 17 303 + 698: 11(ivec2) Load 697 + 699: 117(ptr) AccessChain 17 116 + 700: 10(int) Load 699 + 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25 + 702: 10(int) AtomicExchange 701 28 25 700 + Store 126(out_u1) 702 + 703: 304(ptr) AccessChain 17 303 + 704: 11(ivec2) Load 703 + 705: 117(ptr) AccessChain 17 116 + 706: 10(int) Load 705 + 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25 + 708: 10(int) AtomicUMax 707 28 25 706 + 709: 304(ptr) AccessChain 17 303 + 710: 11(ivec2) Load 709 + 711: 117(ptr) AccessChain 17 116 + 712: 10(int) Load 711 + 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25 + 714: 10(int) AtomicUMax 713 28 25 712 + Store 126(out_u1) 714 + 715: 304(ptr) AccessChain 17 303 + 716: 11(ivec2) Load 715 + 717: 117(ptr) AccessChain 17 116 + 718: 10(int) Load 717 + 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25 + 720: 10(int) AtomicUMin 719 28 25 718 + 721: 304(ptr) AccessChain 17 303 + 722: 11(ivec2) Load 721 + 723: 117(ptr) AccessChain 17 116 + 724: 10(int) Load 723 + 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25 + 726: 10(int) AtomicUMin 725 28 25 724 + Store 126(out_u1) 726 + 727: 304(ptr) AccessChain 17 303 + 728: 11(ivec2) Load 727 + 729: 117(ptr) AccessChain 17 116 + 730: 10(int) Load 729 + 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25 + 732: 10(int) AtomicOr 731 28 25 730 + 733: 304(ptr) AccessChain 17 303 + 734: 11(ivec2) Load 733 + 735: 117(ptr) AccessChain 17 116 + 736: 10(int) Load 735 + 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25 + 738: 10(int) AtomicOr 737 28 25 736 + Store 126(out_u1) 738 + 739: 304(ptr) AccessChain 17 303 + 740: 11(ivec2) Load 739 + 741: 117(ptr) AccessChain 17 116 + 742: 10(int) Load 741 + 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25 + 744: 10(int) AtomicXor 743 28 25 742 + 745: 304(ptr) AccessChain 17 303 + 746: 11(ivec2) Load 745 + 747: 117(ptr) AccessChain 17 116 + 748: 10(int) Load 747 + 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25 + 750: 10(int) AtomicXor 749 28 25 748 + Store 126(out_u1) 750 + 751: 213(ptr) AccessChain 17 212 + 752: 13(ivec2) Load 751 + 753: 19(ptr) AccessChain 17 22 + 754: 6(int) Load 753 + 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25 + 756: 6(int) AtomicIAdd 755 28 25 754 + 757: 213(ptr) AccessChain 17 212 + 758: 13(ivec2) Load 757 + 759: 19(ptr) AccessChain 17 18 + 760: 6(int) Load 759 + 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25 + 762: 6(int) AtomicIAdd 761 28 25 760 + Store 31(out_i1) 762 + 763: 213(ptr) AccessChain 17 212 + 764: 13(ivec2) Load 763 + 765: 19(ptr) AccessChain 17 22 + 766: 6(int) Load 765 + 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25 + 768: 6(int) AtomicAnd 767 28 25 766 + 769: 213(ptr) AccessChain 17 212 + 770: 13(ivec2) Load 769 + 771: 19(ptr) AccessChain 17 18 + 772: 6(int) Load 771 + 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25 + 774: 6(int) AtomicAnd 773 28 25 772 + Store 31(out_i1) 774 + 775: 213(ptr) AccessChain 17 212 + 776: 13(ivec2) Load 775 + 777: 19(ptr) AccessChain 17 22 + 778: 6(int) Load 777 + 779: 19(ptr) AccessChain 17 54 + 780: 6(int) Load 779 + 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25 + 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778 + Store 31(out_i1) 782 + 783: 213(ptr) AccessChain 17 212 + 784: 13(ivec2) Load 783 + 785: 19(ptr) AccessChain 17 18 + 786: 6(int) Load 785 + 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25 + 788: 6(int) AtomicExchange 787 28 25 786 + Store 31(out_i1) 788 + 789: 213(ptr) AccessChain 17 212 + 790: 13(ivec2) Load 789 + 791: 19(ptr) AccessChain 17 22 + 792: 6(int) Load 791 + 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25 + 794: 6(int) AtomicSMax 793 28 25 792 + 795: 213(ptr) AccessChain 17 212 + 796: 13(ivec2) Load 795 + 797: 19(ptr) AccessChain 17 18 + 798: 6(int) Load 797 + 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25 + 800: 6(int) AtomicSMax 799 28 25 798 + Store 31(out_i1) 800 + 801: 213(ptr) AccessChain 17 212 + 802: 13(ivec2) Load 801 + 803: 19(ptr) AccessChain 17 22 + 804: 6(int) Load 803 + 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25 + 806: 6(int) AtomicSMin 805 28 25 804 + 807: 213(ptr) AccessChain 17 212 + 808: 13(ivec2) Load 807 + 809: 19(ptr) AccessChain 17 18 + 810: 6(int) Load 809 + 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25 + 812: 6(int) AtomicSMin 811 28 25 810 + Store 31(out_i1) 812 + 813: 213(ptr) AccessChain 17 212 + 814: 13(ivec2) Load 813 + 815: 19(ptr) AccessChain 17 22 + 816: 6(int) Load 815 + 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25 + 818: 6(int) AtomicOr 817 28 25 816 + 819: 213(ptr) AccessChain 17 212 + 820: 13(ivec2) Load 819 + 821: 19(ptr) AccessChain 17 18 + 822: 6(int) Load 821 + 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25 + 824: 6(int) AtomicOr 823 28 25 822 + Store 31(out_i1) 824 + 825: 213(ptr) AccessChain 17 212 + 826: 13(ivec2) Load 825 + 827: 19(ptr) AccessChain 17 22 + 828: 6(int) Load 827 + 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25 + 830: 6(int) AtomicXor 829 28 25 828 + 831: 213(ptr) AccessChain 17 212 + 832: 13(ivec2) Load 831 + 833: 19(ptr) AccessChain 17 18 + 834: 6(int) Load 833 + 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25 + 836: 6(int) AtomicXor 835 28 25 834 + Store 31(out_i1) 836 + 837: 304(ptr) AccessChain 17 303 + 838: 11(ivec2) Load 837 + 839: 117(ptr) AccessChain 17 116 + 840: 10(int) Load 839 + 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25 + 842: 10(int) AtomicIAdd 841 28 25 840 + 843: 304(ptr) AccessChain 17 303 + 844: 11(ivec2) Load 843 + 845: 117(ptr) AccessChain 17 116 + 846: 10(int) Load 845 + 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25 + 848: 10(int) AtomicIAdd 847 28 25 846 + Store 126(out_u1) 848 + 849: 304(ptr) AccessChain 17 303 + 850: 11(ivec2) Load 849 + 851: 117(ptr) AccessChain 17 116 + 852: 10(int) Load 851 + 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25 + 854: 10(int) AtomicAnd 853 28 25 852 + 855: 304(ptr) AccessChain 17 303 + 856: 11(ivec2) Load 855 + 857: 117(ptr) AccessChain 17 116 + 858: 10(int) Load 857 + 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25 + 860: 10(int) AtomicAnd 859 28 25 858 + Store 126(out_u1) 860 + 861: 304(ptr) AccessChain 17 303 + 862: 11(ivec2) Load 861 + 863: 117(ptr) AccessChain 17 147 + 864: 10(int) Load 863 + 865: 117(ptr) AccessChain 17 150 + 866: 10(int) Load 865 + 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25 + 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864 + Store 126(out_u1) 868 + 869: 304(ptr) AccessChain 17 303 + 870: 11(ivec2) Load 869 + 871: 117(ptr) AccessChain 17 116 + 872: 10(int) Load 871 + 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25 + 874: 10(int) AtomicExchange 873 28 25 872 + Store 126(out_u1) 874 + 875: 304(ptr) AccessChain 17 303 + 876: 11(ivec2) Load 875 + 877: 117(ptr) AccessChain 17 116 + 878: 10(int) Load 877 + 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25 + 880: 10(int) AtomicUMax 879 28 25 878 + 881: 304(ptr) AccessChain 17 303 + 882: 11(ivec2) Load 881 + 883: 117(ptr) AccessChain 17 116 + 884: 10(int) Load 883 + 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25 + 886: 10(int) AtomicUMax 885 28 25 884 + Store 126(out_u1) 886 + 887: 304(ptr) AccessChain 17 303 + 888: 11(ivec2) Load 887 + 889: 117(ptr) AccessChain 17 116 + 890: 10(int) Load 889 + 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25 + 892: 10(int) AtomicUMin 891 28 25 890 + 893: 304(ptr) AccessChain 17 303 + 894: 11(ivec2) Load 893 + 895: 117(ptr) AccessChain 17 116 + 896: 10(int) Load 895 + 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25 + 898: 10(int) AtomicUMin 897 28 25 896 + Store 126(out_u1) 898 + 899: 304(ptr) AccessChain 17 303 + 900: 11(ivec2) Load 899 + 901: 117(ptr) AccessChain 17 116 + 902: 10(int) Load 901 + 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25 + 904: 10(int) AtomicOr 903 28 25 902 + 905: 304(ptr) AccessChain 17 303 + 906: 11(ivec2) Load 905 + 907: 117(ptr) AccessChain 17 116 + 908: 10(int) Load 907 + 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25 + 910: 10(int) AtomicOr 909 28 25 908 + Store 126(out_u1) 910 + 911: 304(ptr) AccessChain 17 303 + 912: 11(ivec2) Load 911 + 913: 117(ptr) AccessChain 17 116 + 914: 10(int) Load 913 + 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25 + 916: 10(int) AtomicXor 915 28 25 914 + 917: 304(ptr) AccessChain 17 303 + 918: 11(ivec2) Load 917 + 919: 117(ptr) AccessChain 17 116 + 920: 10(int) Load 919 + 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25 + 922: 10(int) AtomicXor 921 28 25 920 + Store 126(out_u1) 922 + 926: 19(ptr) AccessChain 17 18 + 927: 6(int) Load 926 + 928: 19(ptr) AccessChain 17 22 + 929: 6(int) Load 928 + 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25 + 931: 6(int) AtomicIAdd 930 28 25 929 + 932: 19(ptr) AccessChain 17 18 + 933: 6(int) Load 932 + 934: 19(ptr) AccessChain 17 18 + 935: 6(int) Load 934 + 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25 + 937: 6(int) AtomicIAdd 936 28 25 935 + Store 31(out_i1) 937 + 938: 19(ptr) AccessChain 17 18 + 939: 6(int) Load 938 + 940: 19(ptr) AccessChain 17 22 + 941: 6(int) Load 940 + 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25 + 943: 6(int) AtomicAnd 942 28 25 941 + 944: 19(ptr) AccessChain 17 18 + 945: 6(int) Load 944 + 946: 19(ptr) AccessChain 17 18 + 947: 6(int) Load 946 + 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25 + 949: 6(int) AtomicAnd 948 28 25 947 + Store 31(out_i1) 949 + 950: 19(ptr) AccessChain 17 18 + 951: 6(int) Load 950 + 952: 19(ptr) AccessChain 17 22 + 953: 6(int) Load 952 + 954: 19(ptr) AccessChain 17 54 + 955: 6(int) Load 954 + 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25 + 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953 + Store 31(out_i1) 957 + 958: 19(ptr) AccessChain 17 18 + 959: 6(int) Load 958 + 960: 19(ptr) AccessChain 17 18 + 961: 6(int) Load 960 + 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25 + 963: 6(int) AtomicExchange 962 28 25 961 + Store 31(out_i1) 963 + 964: 19(ptr) AccessChain 17 18 + 965: 6(int) Load 964 + 966: 19(ptr) AccessChain 17 22 + 967: 6(int) Load 966 + 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25 + 969: 6(int) AtomicSMax 968 28 25 967 + 970: 19(ptr) AccessChain 17 18 + 971: 6(int) Load 970 + 972: 19(ptr) AccessChain 17 18 + 973: 6(int) Load 972 + 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25 + 975: 6(int) AtomicSMax 974 28 25 973 + Store 31(out_i1) 975 + 976: 19(ptr) AccessChain 17 18 + 977: 6(int) Load 976 + 978: 19(ptr) AccessChain 17 22 + 979: 6(int) Load 978 + 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25 + 981: 6(int) AtomicSMin 980 28 25 979 + 982: 19(ptr) AccessChain 17 18 + 983: 6(int) Load 982 + 984: 19(ptr) AccessChain 17 18 + 985: 6(int) Load 984 + 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25 + 987: 6(int) AtomicSMin 986 28 25 985 + Store 31(out_i1) 987 + 988: 19(ptr) AccessChain 17 18 + 989: 6(int) Load 988 + 990: 19(ptr) AccessChain 17 22 + 991: 6(int) Load 990 + 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25 + 993: 6(int) AtomicOr 992 28 25 991 + 994: 19(ptr) AccessChain 17 18 + 995: 6(int) Load 994 + 996: 19(ptr) AccessChain 17 18 + 997: 6(int) Load 996 + 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25 + 999: 6(int) AtomicOr 998 28 25 997 + Store 31(out_i1) 999 + 1000: 19(ptr) AccessChain 17 18 + 1001: 6(int) Load 1000 + 1002: 19(ptr) AccessChain 17 22 + 1003: 6(int) Load 1002 + 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25 + 1005: 6(int) AtomicXor 1004 28 25 1003 + 1006: 19(ptr) AccessChain 17 18 + 1007: 6(int) Load 1006 + 1008: 19(ptr) AccessChain 17 18 + 1009: 6(int) Load 1008 + 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25 + 1011: 6(int) AtomicXor 1010 28 25 1009 + Store 31(out_i1) 1011 + 1015: 117(ptr) AccessChain 17 116 + 1016: 10(int) Load 1015 + 1017: 117(ptr) AccessChain 17 116 + 1018: 10(int) Load 1017 + 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25 + 1020: 10(int) AtomicIAdd 1019 28 25 1018 + 1021: 117(ptr) AccessChain 17 116 + 1022: 10(int) Load 1021 + 1023: 117(ptr) AccessChain 17 116 + 1024: 10(int) Load 1023 + 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25 + 1026: 10(int) AtomicIAdd 1025 28 25 1024 + Store 126(out_u1) 1026 + 1027: 117(ptr) AccessChain 17 116 + 1028: 10(int) Load 1027 + 1029: 117(ptr) AccessChain 17 116 + 1030: 10(int) Load 1029 + 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25 + 1032: 10(int) AtomicAnd 1031 28 25 1030 + 1033: 117(ptr) AccessChain 17 116 + 1034: 10(int) Load 1033 + 1035: 117(ptr) AccessChain 17 116 + 1036: 10(int) Load 1035 + 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25 + 1038: 10(int) AtomicAnd 1037 28 25 1036 + Store 126(out_u1) 1038 + 1039: 117(ptr) AccessChain 17 116 + 1040: 10(int) Load 1039 + 1041: 117(ptr) AccessChain 17 147 + 1042: 10(int) Load 1041 + 1043: 117(ptr) AccessChain 17 150 + 1044: 10(int) Load 1043 + 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25 + 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042 + Store 126(out_u1) 1046 + 1047: 117(ptr) AccessChain 17 116 + 1048: 10(int) Load 1047 + 1049: 117(ptr) AccessChain 17 116 + 1050: 10(int) Load 1049 + 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25 + 1052: 10(int) AtomicExchange 1051 28 25 1050 + Store 126(out_u1) 1052 + 1053: 117(ptr) AccessChain 17 116 + 1054: 10(int) Load 1053 + 1055: 117(ptr) AccessChain 17 116 + 1056: 10(int) Load 1055 + 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25 + 1058: 10(int) AtomicUMax 1057 28 25 1056 + 1059: 117(ptr) AccessChain 17 116 + 1060: 10(int) Load 1059 + 1061: 117(ptr) AccessChain 17 116 + 1062: 10(int) Load 1061 + 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25 + 1064: 10(int) AtomicUMax 1063 28 25 1062 + Store 126(out_u1) 1064 + 1065: 117(ptr) AccessChain 17 116 + 1066: 10(int) Load 1065 + 1067: 117(ptr) AccessChain 17 116 + 1068: 10(int) Load 1067 + 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25 + 1070: 10(int) AtomicUMin 1069 28 25 1068 + 1071: 117(ptr) AccessChain 17 116 + 1072: 10(int) Load 1071 + 1073: 117(ptr) AccessChain 17 116 + 1074: 10(int) Load 1073 + 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25 + 1076: 10(int) AtomicUMin 1075 28 25 1074 + Store 126(out_u1) 1076 + 1077: 117(ptr) AccessChain 17 116 + 1078: 10(int) Load 1077 + 1079: 117(ptr) AccessChain 17 116 + 1080: 10(int) Load 1079 + 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25 + 1082: 10(int) AtomicOr 1081 28 25 1080 + 1083: 117(ptr) AccessChain 17 116 + 1084: 10(int) Load 1083 + 1085: 117(ptr) AccessChain 17 116 + 1086: 10(int) Load 1085 + 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25 + 1088: 10(int) AtomicOr 1087 28 25 1086 + Store 126(out_u1) 1088 + 1089: 117(ptr) AccessChain 17 116 + 1090: 10(int) Load 1089 + 1091: 117(ptr) AccessChain 17 116 + 1092: 10(int) Load 1091 + 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25 + 1094: 10(int) AtomicXor 1093 28 25 1092 + 1095: 117(ptr) AccessChain 17 116 + 1096: 10(int) Load 1095 + 1097: 117(ptr) AccessChain 17 116 + 1098: 10(int) Load 1097 + 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25 + 1100: 10(int) AtomicXor 1099 28 25 1098 + Store 126(out_u1) 1100 + 1109: 1108(ptr) AccessChain 1105(psout) 116 + Store 1109 1107 + 1112: 1108(ptr) AccessChain 1105(psout) 116 + 1113: 1102(fvec4) Load 1112 + Store 1111(Color) 1113 + Return + FunctionEnd diff --git a/Test/hlsl.rw.atomics.frag b/Test/hlsl.rw.atomics.frag new file mode 100644 index 00000000..930d6501 --- /dev/null +++ b/Test/hlsl.rw.atomics.frag @@ -0,0 +1,244 @@ +SamplerState g_sSamp; + +RWTexture1D g_tTex1df1; +RWTexture1D g_tTex1di1; +RWTexture1D g_tTex1du1; + +RWTexture2D g_tTex2df1; +RWTexture2D g_tTex2di1; +RWTexture2D g_tTex2du1; + +RWTexture3D g_tTex3df1; +RWTexture3D g_tTex3di1; +RWTexture3D g_tTex3du1; + +RWTexture1DArray g_tTex1df1a; +RWTexture1DArray g_tTex1di1a; +RWTexture1DArray g_tTex1du1a; + +RWTexture2DArray g_tTex2df1a; +RWTexture2DArray g_tTex2di1a; +RWTexture2DArray g_tTex2du1a; + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform uint u1; +uniform uint2 u2; +uniform uint3 u3; +uniform uint u1b; +uniform uint u1c; + +uniform int i1; +uniform int2 i2; +uniform int3 i3; +uniform int i1b; +uniform int i1c; + +PS_OUTPUT main() +{ + uint out_u1; + int out_i1; + + // 1D int + InterlockedAdd(g_tTex1di1[i1], i1b); + InterlockedAdd(g_tTex1di1[i1], i1, out_i1); + InterlockedAnd(g_tTex1di1[i1], i1b); + InterlockedAnd(g_tTex1di1[i1], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1[i1], i1, out_i1); + InterlockedMax(g_tTex1di1[i1], i1b); + InterlockedMax(g_tTex1di1[i1], i1, out_i1); + InterlockedMin(g_tTex1di1[i1], i1b); + InterlockedMin(g_tTex1di1[i1], i1, out_i1); + InterlockedOr(g_tTex1di1[i1], i1b); + InterlockedOr(g_tTex1di1[i1], i1, out_i1); + InterlockedXor(g_tTex1di1[i1], i1b); + InterlockedXor(g_tTex1di1[i1], i1, out_i1); + + // 1D uint + InterlockedAdd(g_tTex1du1[u1], u1); + InterlockedAdd(g_tTex1du1[u1], u1, out_u1); + InterlockedAnd(g_tTex1du1[u1], u1); + InterlockedAnd(g_tTex1du1[u1], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1[u1], u1, out_u1); + InterlockedMax(g_tTex1du1[u1], u1); + InterlockedMax(g_tTex1du1[u1], u1, out_u1); + InterlockedMin(g_tTex1du1[u1], u1); + InterlockedMin(g_tTex1du1[u1], u1, out_u1); + InterlockedOr(g_tTex1du1[u1], u1); + InterlockedOr(g_tTex1du1[u1], u1, out_u1); + InterlockedXor(g_tTex1du1[u1], u1); + InterlockedXor(g_tTex1du1[u1], u1, out_u1); + + // 2D int + InterlockedAdd(g_tTex2di1[i2], i1b); + InterlockedAdd(g_tTex2di1[i2], i1, out_i1); + InterlockedAnd(g_tTex2di1[i2], i1b); + InterlockedAnd(g_tTex2di1[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex2di1[i2], i1, out_i1); + InterlockedMax(g_tTex2di1[i2], i1b); + InterlockedMax(g_tTex2di1[i2], i1, out_i1); + InterlockedMin(g_tTex2di1[i2], i1b); + InterlockedMin(g_tTex2di1[i2], i1, out_i1); + InterlockedOr(g_tTex2di1[i2], i1b); + InterlockedOr(g_tTex2di1[i2], i1, out_i1); + InterlockedXor(g_tTex2di1[i2], i1b); + InterlockedXor(g_tTex2di1[i2], i1, out_i1); + + // 2D uint + InterlockedAdd(g_tTex2du1[u2], u1); + InterlockedAdd(g_tTex2du1[u2], u1, out_u1); + InterlockedAnd(g_tTex2du1[u2], u1); + InterlockedAnd(g_tTex2du1[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex2du1[u2], u1, out_u1); + InterlockedMax(g_tTex2du1[u2], u1); + InterlockedMax(g_tTex2du1[u2], u1, out_u1); + InterlockedMin(g_tTex2du1[u2], u1); + InterlockedMin(g_tTex2du1[u2], u1, out_u1); + InterlockedOr(g_tTex2du1[u2], u1); + InterlockedOr(g_tTex2du1[u2], u1, out_u1); + InterlockedXor(g_tTex2du1[u2], u1); + InterlockedXor(g_tTex2du1[u2], u1, out_u1); + + // 3D int + InterlockedAdd(g_tTex3di1[i3], i1b); + InterlockedAdd(g_tTex3di1[i3], i1, out_i1); + InterlockedAnd(g_tTex3di1[i3], i1b); + InterlockedAnd(g_tTex3di1[i3], i1, out_i1); + InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1); + InterlockedExchange(g_tTex3di1[i3], i1, out_i1); + InterlockedMax(g_tTex3di1[i3], i1b); + InterlockedMax(g_tTex3di1[i3], i1, out_i1); + InterlockedMin(g_tTex3di1[i3], i1b); + InterlockedMin(g_tTex3di1[i3], i1, out_i1); + InterlockedOr(g_tTex3di1[i3], i1b); + InterlockedOr(g_tTex3di1[i3], i1, out_i1); + InterlockedXor(g_tTex3di1[i3], i1b); + InterlockedXor(g_tTex3di1[i3], i1, out_i1); + + // 3D uint + InterlockedAdd(g_tTex3du1[u3], u1); + InterlockedAdd(g_tTex3du1[u3], u1, out_u1); + InterlockedAnd(g_tTex3du1[u3], u1); + InterlockedAnd(g_tTex3du1[u3], u1, out_u1); + InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1); + InterlockedExchange(g_tTex3du1[u3], u1, out_u1); + InterlockedMax(g_tTex3du1[u3], u1); + InterlockedMax(g_tTex3du1[u3], u1, out_u1); + InterlockedMin(g_tTex3du1[u3], u1); + InterlockedMin(g_tTex3du1[u3], u1, out_u1); + InterlockedOr(g_tTex3du1[u3], u1); + InterlockedOr(g_tTex3du1[u3], u1, out_u1); + InterlockedXor(g_tTex3du1[u3], u1); + InterlockedXor(g_tTex3du1[u3], u1, out_u1); + + // 1D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 1D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // 2D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 2D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // buffer int + InterlockedAdd(g_tBuffI[i1], i1b); + InterlockedAdd(g_tBuffI[i1], i1, out_i1); + InterlockedAnd(g_tBuffI[i1], i1b); + InterlockedAnd(g_tBuffI[i1], i1, out_i1); + InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tBuffI[i1], i1, out_i1); + InterlockedMax(g_tBuffI[i1], i1b); + InterlockedMax(g_tBuffI[i1], i1, out_i1); + InterlockedMin(g_tBuffI[i1], i1b); + InterlockedMin(g_tBuffI[i1], i1, out_i1); + InterlockedOr(g_tBuffI[i1], i1b); + InterlockedOr(g_tBuffI[i1], i1, out_i1); + InterlockedXor(g_tBuffI[i1], i1b); + InterlockedXor(g_tBuffI[i1], i1, out_i1); + + // buffer uint + InterlockedAdd(g_tBuffU[u1], u1); + InterlockedAdd(g_tBuffU[u1], u1, out_u1); + InterlockedAnd(g_tBuffU[u1], u1); + InterlockedAnd(g_tBuffU[u1], u1, out_u1); + InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tBuffU[u1], u1, out_u1); + InterlockedMax(g_tBuffU[u1], u1); + InterlockedMax(g_tBuffU[u1], u1, out_u1); + InterlockedMin(g_tBuffU[u1], u1); + InterlockedMin(g_tBuffU[u1], u1, out_u1); + InterlockedOr(g_tBuffU[u1], u1); + InterlockedOr(g_tBuffU[u1], u1, out_u1); + InterlockedXor(g_tBuffU[u1], u1); + InterlockedXor(g_tBuffU[u1], u1, out_u1); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b50816a1..7891342a 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -150,6 +150,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promotions.frag", "main"}, + {"hlsl.rw.atomics.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, {"hlsl.rw.vec2.bracket.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b4c417d9..21c916b0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1397,13 +1397,13 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage) { switch (op) { - case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; - case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; + case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; + case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap; - case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; - case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; - case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; - case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; + case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; + case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; + case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; + case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; case EOpInterlockedCompareStore: // TODO: ... default: @@ -2052,6 +2052,27 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { + // Helper to find image data for image atomics: + // OpImageLoad(image[idx]) + // We take the image load apart and add its params to the atomic op aggregate node + const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) { + TIntermAggregate* loadOp = load->getAsAggregate(); + if (loadOp == nullptr) { + error(loc, "unknown image type in atomic operation", "", ""); + node = nullptr; + return; + } + + atomic->getSequence().push_back(loadOp->getSequence()[0]); + atomic->getSequence().push_back(loadOp->getSequence()[1]); + }; + + // Return true if this is an imageLoad, which we will change to an image atomic. + const auto isImageParam = [](TIntermTyped* image) { + TIntermAggregate* imageAggregate = image->getAsAggregate(); + return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; + }; + // HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST // opcodes for compatibility with existing software stacks. static const bool decomposeHlslIntrinsics = true; @@ -2232,27 +2253,43 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& case EOpInterlockedXor: // ... case EOpInterlockedExchange: // always has output arg { - TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // value + TIntermTyped* arg2 = nullptr; - const bool isImage = arg0->getType().isImage(); + if (argAggregate->getSequence().size() > 2) + arg2 = argAggregate->getSequence()[2]->getAsTyped(); + + const bool isImage = isImageParam(arg0); const TOperator atomicOp = mapAtomicOp(loc, op, isImage); - - if (argAggregate->getSequence().size() > 2) { - // optional output param is present. return value goes to arg2. - TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); - - TIntermAggregate* atomic = new TIntermAggregate(atomicOp); - atomic->getSequence().push_back(arg0); + TIntermAggregate* atomic = new TIntermAggregate(atomicOp); + atomic->setType(arg0->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + atomic->setLoc(loc); + + if (isImage) { + // orig_value = imageAtomicOp(image, loc, data) + imageAtomicParams(atomic, arg0); atomic->getSequence().push_back(arg1); - atomic->setLoc(loc); - atomic->setType(arg0->getType()); - atomic->getWritableType().getQualifier().makeTemporary(); - node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + if (argAggregate->getSequence().size() > 2) { + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + node = atomic; // no assignment needed, as there was no out var. + } } else { - // Set the matching operator. Since output is absent, this is all we need to do. - node->getAsAggregate()->setOperator(atomicOp); + // Normal memory variable: + // arg0 = mem, arg1 = data, arg2(optional,out) = orig_value + if (argAggregate->getSequence().size() > 2) { + // optional output param is present. return value goes to arg2. + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + // Set the matching operator. Since output is absent, this is all we need to do. + node->getAsAggregate()->setOperator(atomicOp); + } } break; @@ -2265,15 +2302,20 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig - const bool isImage = arg0->getType().isImage(); + const bool isImage = isImageParam(arg0); TIntermAggregate* atomic = new TIntermAggregate(mapAtomicOp(loc, op, isImage)); - atomic->getSequence().push_back(arg0); - atomic->getSequence().push_back(arg1); - atomic->getSequence().push_back(arg2); atomic->setLoc(loc); atomic->setType(arg2->getType()); atomic->getWritableType().getQualifier().makeTemporary(); + if (isImage) { + imageAtomicParams(atomic, arg0); + } else { + atomic->getSequence().push_back(arg0); + } + + atomic->getSequence().push_back(arg1); + atomic->getSequence().push_back(arg2); node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); break; From 6cb1637f37d3907dc9e7eacb71065e3bacabff55 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 19 Oct 2016 12:57:22 -0600 Subject: [PATCH 216/217] Move promote methods to TIntermediate class A need arose to use capabilities from TIntermediate during node promotion. These methods have been moved from virtual methods on the TIntermUnary and TIntermBinary nodes to methods on TIntermediate, so it is easy for them construct new nodes and so on. This is done as a separate commit to verify that no test results are changed as a result. --- glslang/Include/intermediate.h | 4 +- glslang/MachineIndependent/Intermediate.cpp | 118 +++++++++++------- .../MachineIndependent/localintermediate.h | 3 + 3 files changed, 74 insertions(+), 51 deletions(-) diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index fc267543..f5a5a7b4 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -847,7 +847,7 @@ public: virtual TIntermOperator* getAsOperator() { return this; } virtual const TIntermOperator* getAsOperator() const { return this; } TOperator getOp() const { return op; } - virtual bool promote(TIntermediate&) { return true; } + void setOp(TOperator newOp) { op = newOp; } bool modifiesState() const; bool isConstructor() const; bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } @@ -1026,7 +1026,6 @@ public: virtual TIntermTyped* getRight() const { return right; } virtual TIntermBinary* getAsBinaryNode() { return this; } virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* left; @@ -1046,7 +1045,6 @@ public: virtual const TIntermTyped* getOperand() const { return operand; } virtual TIntermUnary* getAsUnaryNode() { return this; } virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* operand; diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 1441c55b..758ae4f2 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -137,8 +137,8 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // one and promote it to the right type. // TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote(*this)) - return 0; + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -246,7 +246,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote(*this)) + if (! promote(node)) return nullptr; node->updatePrecision(); @@ -353,8 +353,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TIntermUnary* node = addUnaryNode(op, child, loc); - if (! node->promote(*this)) - return 0; + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -1725,24 +1725,45 @@ bool TIntermOperator::isConstructor() const } // -// Make sure the type of a unary operator is appropriate for its -// combination of operation and operand type. +// Make sure the type of an operator is appropriate for its +// combination of operation and operand type. This will invoke +// promoteUnary, promoteBinary, etc as needed. // -// Returns false in nothing makes sense. +// Returns false if nothing makes sense. // -bool TIntermUnary::promote(TIntermediate& intermediate) +bool TIntermediate::promote(TIntermOperator* node) { + if (node == nullptr) + return false; + + if (node->getAsUnaryNode()) + return promoteUnary(*node->getAsUnaryNode()); + + if (node->getAsBinaryNode()) + return promoteBinary(*node->getAsBinaryNode()); + + return false; +} + +// +// See TIntermediate::promote +// +bool TIntermediate::promoteUnary(TIntermUnary& node) +{ + const TOperator op = node.getOp(); + TIntermTyped* operand = node.getOperand(); + switch (op) { case EOpLogicalNot: // Convert operand to a boolean type if (operand->getBasicType() != EbtBool) { // Add constructor to boolean type. If that fails, we can't do it, so return false. - TIntermTyped* converted = intermediate.convertToBasicType(op, EbtBool, operand); + TIntermTyped* converted = convertToBasicType(op, EbtBool, operand); if (converted == nullptr) return false; // Use the result of converting the node to a bool. - operand = converted; + node.setOperand(operand = converted); // also updates stack variable } break; case EOpBitwiseNot: @@ -1777,8 +1798,8 @@ bool TIntermUnary::promote(TIntermediate& intermediate) return false; } - setType(operand->getType()); - getWritableType().getQualifier().makeTemporary(); + node.setType(operand->getType()); + node.getWritableType().getQualifier().makeTemporary(); return true; } @@ -1814,13 +1835,14 @@ TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicTy } // -// Establishes the type of the resultant operation, as well as -// makes the operator the correct one for the operands. +// See TIntermediate::promote // -// Returns false if operator can't work on operands. -// -bool TIntermBinary::promote(TIntermediate& intermediate) +bool TIntermediate::promoteBinary(TIntermBinary& node) { + TOperator op = node.getOp(); + TIntermTyped* left = node.getLeft(); + TIntermTyped* right = node.getRight(); + // Arrays and structures have to be exact matches. if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) && left->getType() != right->getType()) @@ -1828,8 +1850,8 @@ bool TIntermBinary::promote(TIntermediate& intermediate) // Base assumption: just make the type the same as the left // operand. Only deviations from this will be coded. - setType(left->getType()); - type.getQualifier().clear(); + node.setType(left->getType()); + node.getWritableType().getQualifier().clear(); // Composite and opaque types don't having pending operator changes, e.g., // array, structure, and samplers. Just establish final type and correctness. @@ -1842,7 +1864,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) return false; } else { // Promote to conditional - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); } return true; @@ -1870,32 +1892,32 @@ bool TIntermBinary::promote(TIntermediate& intermediate) // Relational comparisons need numeric types and will promote to scalar Boolean. if (left->getBasicType() == EbtBool) return false; - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpEqual: case EOpNotEqual: // All the above comparisons result in a bool (but not the vector compares) - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: - if (intermediate.getSource() == EShSourceHlsl) { - TIntermTyped* convertedL = intermediate.convertToBasicType(op, EbtBool, left); - TIntermTyped* convertedR = intermediate.convertToBasicType(op, EbtBool, right); + if (getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right); if (convertedL == nullptr || convertedR == nullptr) return false; - left = convertedL; - right = convertedR; + node.setLeft(left = convertedL); // also updates stack variable + node.setRight(right = convertedR); // also updates stack variable } // logical ops operate only on scalar Booleans and will promote to scalar Boolean. if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) return false; - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpRightShift: @@ -1912,7 +1934,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: - if (intermediate.getSource() == EShSourceHlsl) + if (getSource() == EShSourceHlsl) break; // Check for integer-only operands. @@ -2011,33 +2033,33 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows()) return false; - op = EOpVectorTimesMatrix; - setType(TType(basicType, EvqTemporary, right->getMatrixCols())); + node.setOp(op = EOpVectorTimesMatrix); + node.setType(TType(basicType, EvqTemporary, right->getMatrixCols())); } else { - op = EOpMatrixTimesScalar; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); + node.setOp(op = EOpMatrixTimesScalar); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); } } else if (left->isMatrix() && !right->isMatrix()) { if (right->isVector()) { if (left->getMatrixCols() != right->getVectorSize()) return false; - op = EOpMatrixTimesVector; - setType(TType(basicType, EvqTemporary, left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesVector); + node.setType(TType(basicType, EvqTemporary, left->getMatrixRows())); } else { - op = EOpMatrixTimesScalar; + node.setOp(op = EOpMatrixTimesScalar); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrix; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesMatrix); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); } else if (! left->isMatrix() && ! right->isMatrix()) { if (left->isVector() && right->isVector()) { ; // leave as component product } else if (left->isVector() || right->isVector()) { - op = EOpVectorTimesScalar; + node.setOp(op = EOpVectorTimesScalar); if (right->isVector()) - setType(TType(basicType, EvqTemporary, right->getVectorSize())); + node.setType(TType(basicType, EvqTemporary, right->getVectorSize())); } } else { return false; @@ -2048,7 +2070,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows() || left->getVectorSize() != right->getMatrixCols()) return false; - op = EOpVectorTimesMatrixAssign; + node.setOp(op = EOpVectorTimesMatrixAssign); } else { return false; } @@ -2056,19 +2078,19 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (right->isVector()) { return false; } else { - op = EOpMatrixTimesScalarAssign; + node.setOp(op = EOpMatrixTimesScalarAssign); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrixAssign; + node.setOp(op = EOpMatrixTimesMatrixAssign); } else if (!left->isMatrix() && !right->isMatrix()) { if (left->isVector() && right->isVector()) { // leave as component product } else if (left->isVector() || right->isVector()) { if (! left->isVector()) return false; - op = EOpVectorTimesScalarAssign; + node.setOp(op = EOpVectorTimesScalarAssign); } } else { return false; @@ -2112,8 +2134,8 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) return false; if (right->isVector() || right->isMatrix()) { - type.shallowCopy(right->getType()); - type.getQualifier().makeTemporary(); + node.getWritableType().shallowCopy(right->getType()); + node.getWritableType().getQualifier().makeTemporary(); } break; @@ -2137,7 +2159,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) case EOpExclusiveOrAssign: case EOpLeftShiftAssign: case EOpRightShiftAssign: - if (getType() != left->getType()) + if (node.getType() != left->getType()) return false; break; default: diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index c8742cb4..1dd14403 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -393,6 +393,9 @@ protected: bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; + bool promote(TIntermOperator*); + bool promoteUnary(TIntermUnary&); + bool promoteBinary(TIntermBinary&); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later From 6b596682c9687333aed894c9fbcb56591e5536c4 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 20 Oct 2016 14:50:12 -0600 Subject: [PATCH 217/217] HLSL: fix defect in EOpMethodSampleCmp* texture decomposition HLSL holds the compare value in a separate intrinsic arg, but the AST wants a vector including the cmp val, except in the 4-dim coord case, where it doesn't fit and is in fact a separate AST parameter. This is awkward but necessary, given AST semantics. In the process, a new vector is constructed for the combined result, but this vector was not being given the correct TType, so was causing some downstream troubles. Now it is. A similar defect existed in OpTextureBias, and has also been fixed. --- .../hlsl.samplecmp.array.dx10.frag.out | 517 ++++++++--------- .../hlsl.samplecmp.basic.dx10.frag.out | 502 +++++++++-------- .../hlsl.samplecmp.offset.dx10.frag.out | 430 ++++++++------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 423 +++++++------- ...lsl.samplecmplevelzero.array.dx10.frag.out | 519 +++++++++--------- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 504 +++++++++-------- ...sl.samplecmplevelzero.offset.dx10.frag.out | 432 ++++++++------- ...mplecmplevelzero.offsetarray.dx10.frag.out | 425 +++++++------- hlsl/hlslParseHelper.cpp | 5 + 9 files changed, 1951 insertions(+), 1806 deletions(-) diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 05f53c70..b05595d5 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -219,7 +219,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -317,7 +317,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -385,79 +385,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 211 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 144 + EntryPoint Fragment 4 "main" 167 171 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 28 "r12" - Name 32 "g_tTex1di4a" - Name 41 "r14" - Name 45 "g_tTex1du4a" - Name 54 "r30" - Name 57 "g_tTex2df4a" - Name 69 "r32" - Name 72 "g_tTex2di4a" - Name 81 "r34" - Name 84 "g_tTex2du4a" - Name 93 "r60" - Name 96 "g_tTexcdf4a" - Name 107 "r62" - Name 110 "g_tTexcdi4a" - Name 118 "r64" - Name 121 "g_tTexcdu4a" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "psout" - Name 140 "Color" - Name 144 "Depth" - Name 150 "g_tTex1df4" - Name 153 "g_tTex1di4" - Name 156 "g_tTex1du4" - Name 159 "g_tTex2df4" - Name 162 "g_tTex2di4" - Name 165 "g_tTex2du4" - Name 168 "g_tTex3df4" - Name 171 "g_tTex3di4" - Name 174 "g_tTex3du4" - Name 177 "g_tTexcdf4" - Name 180 "g_tTexcdi4" - Name 183 "g_tTexcdu4" + Name 31 "r12" + Name 35 "g_tTex1di4a" + Name 46 "r14" + Name 50 "g_tTex1du4a" + Name 61 "r30" + Name 64 "g_tTex2df4a" + Name 79 "r32" + Name 82 "g_tTex2di4a" + Name 94 "r34" + Name 97 "g_tTex2du4a" + Name 109 "r60" + Name 112 "g_tTexcdf4a" + Name 126 "r62" + Name 129 "g_tTexcdi4a" + Name 141 "r64" + Name 144 "g_tTexcdu4a" + Name 156 "PS_OUTPUT" + MemberName 156(PS_OUTPUT) 0 "Color" + MemberName 156(PS_OUTPUT) 1 "Depth" + Name 158 "psout" + Name 167 "Color" + Name 171 "Depth" + Name 177 "g_tTex1df4" + Name 180 "g_tTex1di4" + Name 183 "g_tTex1du4" + Name 186 "g_tTex2df4" + Name 189 "g_tTex2di4" + Name 192 "g_tTex2du4" + Name 195 "g_tTex3df4" + Name 198 "g_tTex3di4" + Name 201 "g_tTex3du4" + Name 204 "g_tTexcdf4" + Name 207 "g_tTexcdi4" + Name 210 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4a) DescriptorSet 0 - Decorate 45(g_tTex1du4a) DescriptorSet 0 - Decorate 57(g_tTex2df4a) DescriptorSet 0 - Decorate 72(g_tTex2di4a) DescriptorSet 0 - Decorate 84(g_tTex2du4a) DescriptorSet 0 - Decorate 96(g_tTexcdf4a) DescriptorSet 0 - Decorate 110(g_tTexcdi4a) DescriptorSet 0 - Decorate 121(g_tTexcdu4a) DescriptorSet 0 - Decorate 140(Color) Location 0 - Decorate 144(Depth) BuiltIn FragDepth - Decorate 150(g_tTex1df4) DescriptorSet 0 - Decorate 150(g_tTex1df4) Binding 0 - Decorate 153(g_tTex1di4) DescriptorSet 0 - Decorate 156(g_tTex1du4) DescriptorSet 0 - Decorate 159(g_tTex2df4) DescriptorSet 0 - Decorate 162(g_tTex2di4) DescriptorSet 0 - Decorate 165(g_tTex2du4) DescriptorSet 0 - Decorate 168(g_tTex3df4) DescriptorSet 0 - Decorate 171(g_tTex3di4) DescriptorSet 0 - Decorate 174(g_tTex3du4) DescriptorSet 0 - Decorate 177(g_tTexcdf4) DescriptorSet 0 - Decorate 180(g_tTexcdi4) DescriptorSet 0 - Decorate 183(g_tTexcdu4) DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 50(g_tTex1du4a) DescriptorSet 0 + Decorate 64(g_tTex2df4a) DescriptorSet 0 + Decorate 82(g_tTex2di4a) DescriptorSet 0 + Decorate 97(g_tTex2du4a) DescriptorSet 0 + Decorate 112(g_tTexcdf4a) DescriptorSet 0 + Decorate 129(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 167(Color) Location 0 + Decorate 171(Depth) BuiltIn FragDepth + Decorate 177(g_tTex1df4) DescriptorSet 0 + Decorate 177(g_tTex1df4) Binding 0 + Decorate 180(g_tTex1di4) DescriptorSet 0 + Decorate 183(g_tTex1du4) DescriptorSet 0 + Decorate 186(g_tTex2df4) DescriptorSet 0 + Decorate 189(g_tTex2di4) DescriptorSet 0 + Decorate 192(g_tTex2du4) DescriptorSet 0 + Decorate 195(g_tTex3df4) DescriptorSet 0 + Decorate 198(g_tTex3di4) DescriptorSet 0 + Decorate 201(g_tTex3du4) DescriptorSet 0 + Decorate 204(g_tTexcdf4) DescriptorSet 0 + Decorate 207(g_tTexcdi4) DescriptorSet 0 + Decorate 210(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -475,182 +475,209 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 29: TypeInt 32 1 - 30: TypeImage 29(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4a): 31(ptr) Variable UniformConstant - 35: TypeImage 29(int) 1D depth array sampled format:Unknown - 36: TypeSampledImage 35 - 42: TypeInt 32 0 - 43: TypeImage 42(int) 1D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4a): 44(ptr) Variable UniformConstant - 48: TypeImage 42(int) 1D depth array sampled format:Unknown - 49: TypeSampledImage 48 - 55: TypeImage 6(float) 2D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4a): 56(ptr) Variable UniformConstant - 60: TypeImage 6(float) 2D depth array sampled format:Unknown - 61: TypeSampledImage 60 - 63: TypeVector 6(float) 3 - 64: 6(float) Constant 1050253722 - 65: 63(fvec3) ConstantComposite 21 22 64 - 70: TypeImage 29(int) 2D array sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2di4a): 71(ptr) Variable UniformConstant - 75: TypeImage 29(int) 2D depth array sampled format:Unknown - 76: TypeSampledImage 75 - 82: TypeImage 42(int) 2D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex2du4a): 83(ptr) Variable UniformConstant - 87: TypeImage 42(int) 2D depth array sampled format:Unknown - 88: TypeSampledImage 87 - 94: TypeImage 6(float) Cube array sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant - 99: TypeImage 6(float) Cube depth array sampled format:Unknown - 100: TypeSampledImage 99 - 102: TypeVector 6(float) 4 - 103: 6(float) Constant 1053609165 - 104: 102(fvec4) ConstantComposite 21 22 64 103 - 108: TypeImage 29(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 -110(g_tTexcdi4a): 109(ptr) Variable UniformConstant - 113: TypeImage 29(int) Cube depth array sampled format:Unknown - 114: TypeSampledImage 113 - 119: TypeImage 42(int) Cube array sampled format:Unknown - 120: TypePointer UniformConstant 119 -121(g_tTexcdu4a): 120(ptr) Variable UniformConstant - 124: TypeImage 42(int) Cube depth array sampled format:Unknown - 125: TypeSampledImage 124 - 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) - 130: TypePointer Function 129(PS_OUTPUT) - 132: 29(int) Constant 0 - 133: 6(float) Constant 1065353216 - 134: 102(fvec4) ConstantComposite 133 133 133 133 - 135: TypePointer Function 102(fvec4) - 137: 29(int) Constant 1 - 139: TypePointer Output 102(fvec4) - 140(Color): 139(ptr) Variable Output - 143: TypePointer Output 6(float) - 144(Depth): 143(ptr) Variable Output - 148: TypeImage 6(float) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1df4): 149(ptr) Variable UniformConstant - 151: TypeImage 29(int) 1D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex1di4): 152(ptr) Variable UniformConstant - 154: TypeImage 42(int) 1D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex1du4): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2df4): 158(ptr) Variable UniformConstant - 160: TypeImage 29(int) 2D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex2di4): 161(ptr) Variable UniformConstant - 163: TypeImage 42(int) 2D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex2du4): 164(ptr) Variable UniformConstant - 166: TypeImage 6(float) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3df4): 167(ptr) Variable UniformConstant - 169: TypeImage 29(int) 3D sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTex3di4): 170(ptr) Variable UniformConstant - 172: TypeImage 42(int) 3D sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTex3du4): 173(ptr) Variable UniformConstant - 175: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 32: TypeInt 32 1 + 33: TypeImage 32(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 38: TypeImage 32(int) 1D depth array sampled format:Unknown + 39: TypeSampledImage 38 + 47: TypeInt 32 0 + 48: TypeImage 47(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4a): 49(ptr) Variable UniformConstant + 53: TypeImage 47(int) 1D depth array sampled format:Unknown + 54: TypeSampledImage 53 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4a): 63(ptr) Variable UniformConstant + 67: TypeImage 6(float) 2D depth array sampled format:Unknown + 68: TypeSampledImage 67 + 70: 6(float) Constant 1050253722 + 71: 25(fvec3) ConstantComposite 21 22 70 + 72: TypeVector 6(float) 4 + 80: TypeImage 32(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2di4a): 81(ptr) Variable UniformConstant + 85: TypeImage 32(int) 2D depth array sampled format:Unknown + 86: TypeSampledImage 85 + 95: TypeImage 47(int) 2D array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex2du4a): 96(ptr) Variable UniformConstant + 100: TypeImage 47(int) 2D depth array sampled format:Unknown + 101: TypeSampledImage 100 + 110: TypeImage 6(float) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTexcdf4a): 111(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 118: 6(float) Constant 1053609165 + 119: 72(fvec4) ConstantComposite 21 22 70 118 + 127: TypeImage 32(int) Cube array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTexcdi4a): 128(ptr) Variable UniformConstant + 132: TypeImage 32(int) Cube depth array sampled format:Unknown + 133: TypeSampledImage 132 + 142: TypeImage 47(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 147: TypeImage 47(int) Cube depth array sampled format:Unknown + 148: TypeSampledImage 147 + 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float) + 157: TypePointer Function 156(PS_OUTPUT) + 159: 32(int) Constant 0 + 160: 6(float) Constant 1065353216 + 161: 72(fvec4) ConstantComposite 160 160 160 160 + 162: TypePointer Function 72(fvec4) + 164: 32(int) Constant 1 + 166: TypePointer Output 72(fvec4) + 167(Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) + 171(Depth): 170(ptr) Variable Output + 175: TypeImage 6(float) 1D sampled format:Unknown 176: TypePointer UniformConstant 175 - 177(g_tTexcdf4): 176(ptr) Variable UniformConstant - 178: TypeImage 29(int) Cube sampled format:Unknown + 177(g_tTex1df4): 176(ptr) Variable UniformConstant + 178: TypeImage 32(int) 1D sampled format:Unknown 179: TypePointer UniformConstant 178 - 180(g_tTexcdi4): 179(ptr) Variable UniformConstant - 181: TypeImage 42(int) Cube sampled format:Unknown + 180(g_tTex1di4): 179(ptr) Variable UniformConstant + 181: TypeImage 47(int) 1D sampled format:Unknown 182: TypePointer UniformConstant 181 - 183(g_tTexcdu4): 182(ptr) Variable UniformConstant + 183(g_tTex1du4): 182(ptr) Variable UniformConstant + 184: TypeImage 6(float) 2D sampled format:Unknown + 185: TypePointer UniformConstant 184 + 186(g_tTex2df4): 185(ptr) Variable UniformConstant + 187: TypeImage 32(int) 2D sampled format:Unknown + 188: TypePointer UniformConstant 187 + 189(g_tTex2di4): 188(ptr) Variable UniformConstant + 190: TypeImage 47(int) 2D sampled format:Unknown + 191: TypePointer UniformConstant 190 + 192(g_tTex2du4): 191(ptr) Variable UniformConstant + 193: TypeImage 6(float) 3D sampled format:Unknown + 194: TypePointer UniformConstant 193 + 195(g_tTex3df4): 194(ptr) Variable UniformConstant + 196: TypeImage 32(int) 3D sampled format:Unknown + 197: TypePointer UniformConstant 196 + 198(g_tTex3di4): 197(ptr) Variable UniformConstant + 199: TypeImage 47(int) 3D sampled format:Unknown + 200: TypePointer UniformConstant 199 + 201(g_tTex3du4): 200(ptr) Variable UniformConstant + 202: TypeImage 6(float) Cube sampled format:Unknown + 203: TypePointer UniformConstant 202 + 204(g_tTexcdf4): 203(ptr) Variable UniformConstant + 205: TypeImage 32(int) Cube sampled format:Unknown + 206: TypePointer UniformConstant 205 + 207(g_tTexcdi4): 206(ptr) Variable UniformConstant + 208: TypeImage 47(int) Cube sampled format:Unknown + 209: TypePointer UniformConstant 208 + 210(g_tTexcdu4): 209(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 28(r12): 7(ptr) Variable Function - 41(r14): 7(ptr) Variable Function - 54(r30): 7(ptr) Variable Function - 69(r32): 7(ptr) Variable Function - 81(r34): 7(ptr) Variable Function - 93(r60): 7(ptr) Variable Function - 107(r62): 7(ptr) Variable Function - 118(r64): 7(ptr) Variable Function - 131(psout): 130(ptr) Variable Function + 31(r12): 7(ptr) Variable Function + 46(r14): 7(ptr) Variable Function + 61(r30): 7(ptr) Variable Function + 79(r32): 7(ptr) Variable Function + 94(r34): 7(ptr) Variable Function + 109(r60): 7(ptr) Variable Function + 126(r62): 7(ptr) Variable Function + 141(r64): 7(ptr) Variable Function + 158(psout): 157(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 26: 6(float) CompositeExtract 25 0 - 27: 6(float) ImageSampleDrefImplicitLod 19 25 26 - Store 8(r10) 27 - 33: 30 Load 32(g_tTex1di4a) - 34: 13 Load 15(g_sSamp) - 37: 36 SampledImage 33 34 - 38: 6(float) CompositeExtract 23 0 - 39: 6(float) CompositeExtract 38 0 - 40: 6(float) ImageSampleDrefImplicitLod 37 38 39 - Store 28(r12) 40 - 46: 43 Load 45(g_tTex1du4a) - 47: 13 Load 15(g_sSamp) - 50: 49 SampledImage 46 47 - 51: 6(float) CompositeExtract 23 0 - 52: 6(float) CompositeExtract 51 0 - 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 - Store 41(r14) 53 - 58: 55 Load 57(g_tTex2df4a) - 59: 13 Load 15(g_sSamp) - 62: 61 SampledImage 58 59 - 66: 6(float) CompositeExtract 65 0 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) ImageSampleDrefImplicitLod 62 66 67 - Store 54(r30) 68 - 73: 70 Load 72(g_tTex2di4a) - 74: 13 Load 15(g_sSamp) - 77: 76 SampledImage 73 74 - 78: 6(float) CompositeExtract 65 0 - 79: 6(float) CompositeExtract 78 0 - 80: 6(float) ImageSampleDrefImplicitLod 77 78 79 - Store 69(r32) 80 - 85: 82 Load 84(g_tTex2du4a) - 86: 13 Load 15(g_sSamp) - 89: 88 SampledImage 85 86 - 90: 6(float) CompositeExtract 65 0 - 91: 6(float) CompositeExtract 90 0 - 92: 6(float) ImageSampleDrefImplicitLod 89 90 91 - Store 81(r34) 92 - 97: 94 Load 96(g_tTexcdf4a) - 98: 13 Load 15(g_sSamp) - 101: 100 SampledImage 97 98 - 105: 6(float) CompositeExtract 104 0 - 106: 6(float) ImageSampleDrefImplicitLod 101 105 24 - Store 93(r60) 106 - 111: 108 Load 110(g_tTexcdi4a) - 112: 13 Load 15(g_sSamp) - 115: 114 SampledImage 111 112 - 116: 6(float) CompositeExtract 104 0 - 117: 6(float) ImageSampleDrefImplicitLod 115 116 24 - Store 107(r62) 117 - 122: 119 Load 121(g_tTexcdu4a) - 123: 13 Load 15(g_sSamp) - 126: 125 SampledImage 122 123 - 127: 6(float) CompositeExtract 104 0 - 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 - Store 118(r64) 128 - 136: 135(ptr) AccessChain 131(psout) 132 - Store 136 134 - 138: 7(ptr) AccessChain 131(psout) 137 - Store 138 133 - 141: 135(ptr) AccessChain 131(psout) 132 - 142: 102(fvec4) Load 141 - Store 140(Color) 142 - 145: 7(ptr) AccessChain 131(psout) 137 - 146: 6(float) Load 145 - Store 144(Depth) 146 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 29: 6(float) CompositeExtract 28 2 + 30: 6(float) ImageSampleDrefImplicitLod 19 28 29 + Store 8(r10) 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 13 Load 15(g_sSamp) + 40: 39 SampledImage 36 37 + 41: 6(float) CompositeExtract 23 0 + 42: 6(float) CompositeExtract 23 1 + 43: 25(fvec3) CompositeConstruct 41 42 24 + 44: 6(float) CompositeExtract 43 2 + 45: 6(float) ImageSampleDrefImplicitLod 40 43 44 + Store 31(r12) 45 + 51: 48 Load 50(g_tTex1du4a) + 52: 13 Load 15(g_sSamp) + 55: 54 SampledImage 51 52 + 56: 6(float) CompositeExtract 23 0 + 57: 6(float) CompositeExtract 23 1 + 58: 25(fvec3) CompositeConstruct 56 57 24 + 59: 6(float) CompositeExtract 58 2 + 60: 6(float) ImageSampleDrefImplicitLod 55 58 59 + Store 46(r14) 60 + 65: 62 Load 64(g_tTex2df4a) + 66: 13 Load 15(g_sSamp) + 69: 68 SampledImage 65 66 + 73: 6(float) CompositeExtract 71 0 + 74: 6(float) CompositeExtract 71 1 + 75: 6(float) CompositeExtract 71 2 + 76: 72(fvec4) CompositeConstruct 73 74 75 24 + 77: 6(float) CompositeExtract 76 3 + 78: 6(float) ImageSampleDrefImplicitLod 69 76 77 + Store 61(r30) 78 + 83: 80 Load 82(g_tTex2di4a) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 71 0 + 89: 6(float) CompositeExtract 71 1 + 90: 6(float) CompositeExtract 71 2 + 91: 72(fvec4) CompositeConstruct 88 89 90 24 + 92: 6(float) CompositeExtract 91 3 + 93: 6(float) ImageSampleDrefImplicitLod 87 91 92 + Store 79(r32) 93 + 98: 95 Load 97(g_tTex2du4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 103: 6(float) CompositeExtract 71 0 + 104: 6(float) CompositeExtract 71 1 + 105: 6(float) CompositeExtract 71 2 + 106: 72(fvec4) CompositeConstruct 103 104 105 24 + 107: 6(float) CompositeExtract 106 3 + 108: 6(float) ImageSampleDrefImplicitLod 102 106 107 + Store 94(r34) 108 + 113: 110 Load 112(g_tTexcdf4a) + 114: 13 Load 15(g_sSamp) + 117: 116 SampledImage 113 114 + 120: 6(float) CompositeExtract 119 0 + 121: 6(float) CompositeExtract 119 1 + 122: 6(float) CompositeExtract 119 2 + 123: 6(float) CompositeExtract 119 3 + 124: 72(fvec4) CompositeConstruct 120 121 122 123 + 125: 6(float) ImageSampleDrefImplicitLod 117 124 24 + Store 109(r60) 125 + 130: 127 Load 129(g_tTexcdi4a) + 131: 13 Load 15(g_sSamp) + 134: 133 SampledImage 130 131 + 135: 6(float) CompositeExtract 119 0 + 136: 6(float) CompositeExtract 119 1 + 137: 6(float) CompositeExtract 119 2 + 138: 6(float) CompositeExtract 119 3 + 139: 72(fvec4) CompositeConstruct 135 136 137 138 + 140: 6(float) ImageSampleDrefImplicitLod 134 139 24 + Store 126(r62) 140 + 145: 142 Load 144(g_tTexcdu4a) + 146: 13 Load 15(g_sSamp) + 149: 148 SampledImage 145 146 + 150: 6(float) CompositeExtract 119 0 + 151: 6(float) CompositeExtract 119 1 + 152: 6(float) CompositeExtract 119 2 + 153: 6(float) CompositeExtract 119 3 + 154: 72(fvec4) CompositeConstruct 150 151 152 153 + 155: 6(float) ImageSampleDrefImplicitLod 149 154 24 + Store 141(r64) 155 + 163: 162(ptr) AccessChain 158(psout) 159 + Store 163 161 + 165: 7(ptr) AccessChain 158(psout) 164 + Store 165 160 + 168: 162(ptr) AccessChain 158(psout) 159 + 169: 72(fvec4) Load 168 + Store 167(Color) 169 + 172: 7(ptr) AccessChain 158(psout) 164 + 173: 6(float) Load 172 + Store 171(Depth) 173 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index d7a6b2f3..aa9b3795 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -197,7 +197,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -209,7 +209,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -286,7 +286,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -300,7 +300,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -367,79 +367,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 200 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 142 + EntryPoint Fragment 4 "main" 156 160 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 24 "r02" - Name 28 "g_tTex1di4" - Name 36 "r04" - Name 40 "g_tTex1du4" - Name 48 "r20" - Name 51 "g_tTex2df4" - Name 63 "r22" - Name 66 "g_tTex2di4" - Name 75 "r24" - Name 78 "g_tTex2du4" - Name 87 "r50" - Name 90 "g_tTexcdf4" - Name 102 "r52" - Name 105 "g_tTexcdi4" - Name 114 "r54" - Name 117 "g_tTexcdu4" - Name 127 "PS_OUTPUT" - MemberName 127(PS_OUTPUT) 0 "Color" - MemberName 127(PS_OUTPUT) 1 "Depth" - Name 129 "psout" - Name 138 "Color" - Name 142 "Depth" - Name 148 "g_tTex3df4" - Name 151 "g_tTex3di4" - Name 154 "g_tTex3du4" - Name 157 "g_tTex1df4a" - Name 160 "g_tTex1di4a" - Name 163 "g_tTex1du4a" - Name 166 "g_tTex2df4a" - Name 169 "g_tTex2di4a" - Name 172 "g_tTex2du4a" - Name 175 "g_tTexcdf4a" - Name 178 "g_tTexcdi4a" - Name 181 "g_tTexcdu4a" + Name 26 "r02" + Name 30 "g_tTex1di4" + Name 39 "r04" + Name 43 "g_tTex1du4" + Name 52 "r20" + Name 55 "g_tTex2df4" + Name 69 "r22" + Name 72 "g_tTex2di4" + Name 83 "r24" + Name 86 "g_tTex2du4" + Name 97 "r50" + Name 100 "g_tTexcdf4" + Name 115 "r52" + Name 118 "g_tTexcdi4" + Name 130 "r54" + Name 133 "g_tTexcdu4" + Name 145 "PS_OUTPUT" + MemberName 145(PS_OUTPUT) 0 "Color" + MemberName 145(PS_OUTPUT) 1 "Depth" + Name 147 "psout" + Name 156 "Color" + Name 160 "Depth" + Name 166 "g_tTex3df4" + Name 169 "g_tTex3di4" + Name 172 "g_tTex3du4" + Name 175 "g_tTex1df4a" + Name 178 "g_tTex1di4a" + Name 181 "g_tTex1du4a" + Name 184 "g_tTex2df4a" + Name 187 "g_tTex2di4a" + Name 190 "g_tTex2du4a" + Name 193 "g_tTexcdf4a" + Name 196 "g_tTexcdi4a" + Name 199 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 28(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 90(g_tTexcdf4) DescriptorSet 0 - Decorate 105(g_tTexcdi4) DescriptorSet 0 - Decorate 117(g_tTexcdu4) DescriptorSet 0 - Decorate 138(Color) Location 0 - Decorate 142(Depth) BuiltIn FragDepth - Decorate 148(g_tTex3df4) DescriptorSet 0 - Decorate 151(g_tTex3di4) DescriptorSet 0 - Decorate 154(g_tTex3du4) DescriptorSet 0 - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1di4a) DescriptorSet 0 - Decorate 163(g_tTex1du4a) DescriptorSet 0 - Decorate 166(g_tTex2df4a) DescriptorSet 0 - Decorate 169(g_tTex2di4a) DescriptorSet 0 - Decorate 172(g_tTex2du4a) DescriptorSet 0 - Decorate 175(g_tTexcdf4a) DescriptorSet 0 - Decorate 178(g_tTexcdi4a) DescriptorSet 0 - Decorate 181(g_tTexcdu4a) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 118(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 156(Color) Location 0 + Decorate 160(Depth) BuiltIn FragDepth + Decorate 166(g_tTex3df4) DescriptorSet 0 + Decorate 169(g_tTex3di4) DescriptorSet 0 + Decorate 172(g_tTex3du4) DescriptorSet 0 + Decorate 175(g_tTex1df4a) DescriptorSet 0 + Decorate 178(g_tTex1di4a) DescriptorSet 0 + Decorate 181(g_tTex1du4a) DescriptorSet 0 + Decorate 184(g_tTex2df4a) DescriptorSet 0 + Decorate 187(g_tTex2di4a) DescriptorSet 0 + Decorate 190(g_tTex2du4a) DescriptorSet 0 + Decorate 193(g_tTexcdf4a) DescriptorSet 0 + Decorate 196(g_tTexcdi4a) DescriptorSet 0 + Decorate 199(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -454,183 +454,201 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 25: TypeInt 32 1 - 26: TypeImage 25(int) 1D sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(g_tTex1di4): 27(ptr) Variable UniformConstant - 31: TypeImage 25(int) 1D depth sampled format:Unknown - 32: TypeSampledImage 31 - 37: TypeInt 32 0 - 38: TypeImage 37(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 43: TypeImage 37(int) 1D depth sampled format:Unknown - 44: TypeSampledImage 43 - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 54: TypeImage 6(float) 2D depth sampled format:Unknown - 55: TypeSampledImage 54 - 57: TypeVector 6(float) 2 - 58: 6(float) Constant 1045220557 - 59: 57(fvec2) ConstantComposite 20 58 - 64: TypeImage 25(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 69: TypeImage 25(int) 2D depth sampled format:Unknown - 70: TypeSampledImage 69 - 76: TypeImage 37(int) 2D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex2du4): 77(ptr) Variable UniformConstant - 81: TypeImage 37(int) 2D depth sampled format:Unknown - 82: TypeSampledImage 81 - 88: TypeImage 6(float) Cube sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTexcdf4): 89(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube depth sampled format:Unknown - 94: TypeSampledImage 93 - 96: TypeVector 6(float) 3 - 97: 6(float) Constant 1050253722 - 98: 96(fvec3) ConstantComposite 20 58 97 - 103: TypeImage 25(int) Cube sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdi4): 104(ptr) Variable UniformConstant - 108: TypeImage 25(int) Cube depth sampled format:Unknown - 109: TypeSampledImage 108 - 115: TypeImage 37(int) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdu4): 116(ptr) Variable UniformConstant - 120: TypeImage 37(int) Cube depth sampled format:Unknown - 121: TypeSampledImage 120 - 126: TypeVector 6(float) 4 - 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) - 128: TypePointer Function 127(PS_OUTPUT) - 130: 25(int) Constant 0 - 131: 6(float) Constant 1065353216 - 132: 126(fvec4) ConstantComposite 131 131 131 131 - 133: TypePointer Function 126(fvec4) - 135: 25(int) Constant 1 - 137: TypePointer Output 126(fvec4) - 138(Color): 137(ptr) Variable Output - 141: TypePointer Output 6(float) - 142(Depth): 141(ptr) Variable Output - 146: TypeImage 6(float) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3df4): 147(ptr) Variable UniformConstant - 149: TypeImage 25(int) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3di4): 150(ptr) Variable UniformConstant - 152: TypeImage 37(int) 3D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex3du4): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1df4a): 156(ptr) Variable UniformConstant - 158: TypeImage 25(int) 1D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex1di4a): 159(ptr) Variable UniformConstant - 161: TypeImage 37(int) 1D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex1du4a): 162(ptr) Variable UniformConstant - 164: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 27: TypeInt 32 1 + 28: TypeImage 27(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 27(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 40: TypeInt 32 0 + 41: TypeImage 40(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeImage 40(int) 1D depth sampled format:Unknown + 47: TypeSampledImage 46 + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeImage 6(float) 2D depth sampled format:Unknown + 59: TypeSampledImage 58 + 61: 6(float) Constant 1045220557 + 62: 22(fvec2) ConstantComposite 20 61 + 63: TypeVector 6(float) 3 + 70: TypeImage 27(int) 2D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeImage 27(int) 2D depth sampled format:Unknown + 76: TypeSampledImage 75 + 84: TypeImage 40(int) 2D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 89: TypeImage 40(int) 2D depth sampled format:Unknown + 90: TypeSampledImage 89 + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 103: TypeImage 6(float) Cube depth sampled format:Unknown + 104: TypeSampledImage 103 + 106: 6(float) Constant 1050253722 + 107: 63(fvec3) ConstantComposite 20 61 106 + 108: TypeVector 6(float) 4 + 116: TypeImage 27(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdi4): 117(ptr) Variable UniformConstant + 121: TypeImage 27(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 131: TypeImage 40(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 136: TypeImage 40(int) Cube depth sampled format:Unknown + 137: TypeSampledImage 136 + 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float) + 146: TypePointer Function 145(PS_OUTPUT) + 148: 27(int) Constant 0 + 149: 6(float) Constant 1065353216 + 150: 108(fvec4) ConstantComposite 149 149 149 149 + 151: TypePointer Function 108(fvec4) + 153: 27(int) Constant 1 + 155: TypePointer Output 108(fvec4) + 156(Color): 155(ptr) Variable Output + 159: TypePointer Output 6(float) + 160(Depth): 159(ptr) Variable Output + 164: TypeImage 6(float) 3D sampled format:Unknown 165: TypePointer UniformConstant 164 -166(g_tTex2df4a): 165(ptr) Variable UniformConstant - 167: TypeImage 25(int) 2D array sampled format:Unknown + 166(g_tTex3df4): 165(ptr) Variable UniformConstant + 167: TypeImage 27(int) 3D sampled format:Unknown 168: TypePointer UniformConstant 167 -169(g_tTex2di4a): 168(ptr) Variable UniformConstant - 170: TypeImage 37(int) 2D array sampled format:Unknown + 169(g_tTex3di4): 168(ptr) Variable UniformConstant + 170: TypeImage 40(int) 3D sampled format:Unknown 171: TypePointer UniformConstant 170 -172(g_tTex2du4a): 171(ptr) Variable UniformConstant - 173: TypeImage 6(float) Cube array sampled format:Unknown + 172(g_tTex3du4): 171(ptr) Variable UniformConstant + 173: TypeImage 6(float) 1D array sampled format:Unknown 174: TypePointer UniformConstant 173 -175(g_tTexcdf4a): 174(ptr) Variable UniformConstant - 176: TypeImage 25(int) Cube array sampled format:Unknown +175(g_tTex1df4a): 174(ptr) Variable UniformConstant + 176: TypeImage 27(int) 1D array sampled format:Unknown 177: TypePointer UniformConstant 176 -178(g_tTexcdi4a): 177(ptr) Variable UniformConstant - 179: TypeImage 37(int) Cube array sampled format:Unknown +178(g_tTex1di4a): 177(ptr) Variable UniformConstant + 179: TypeImage 40(int) 1D array sampled format:Unknown 180: TypePointer UniformConstant 179 -181(g_tTexcdu4a): 180(ptr) Variable UniformConstant +181(g_tTex1du4a): 180(ptr) Variable UniformConstant + 182: TypeImage 6(float) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2df4a): 183(ptr) Variable UniformConstant + 185: TypeImage 27(int) 2D array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTex2di4a): 186(ptr) Variable UniformConstant + 188: TypeImage 40(int) 2D array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTex2du4a): 189(ptr) Variable UniformConstant + 191: TypeImage 6(float) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdf4a): 192(ptr) Variable UniformConstant + 194: TypeImage 27(int) Cube array sampled format:Unknown + 195: TypePointer UniformConstant 194 +196(g_tTexcdi4a): 195(ptr) Variable UniformConstant + 197: TypeImage 40(int) Cube array sampled format:Unknown + 198: TypePointer UniformConstant 197 +199(g_tTexcdu4a): 198(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 24(r02): 7(ptr) Variable Function - 36(r04): 7(ptr) Variable Function - 48(r20): 7(ptr) Variable Function - 63(r22): 7(ptr) Variable Function - 75(r24): 7(ptr) Variable Function - 87(r50): 7(ptr) Variable Function - 102(r52): 7(ptr) Variable Function - 114(r54): 7(ptr) Variable Function - 129(psout): 128(ptr) Variable Function + 26(r02): 7(ptr) Variable Function + 39(r04): 7(ptr) Variable Function + 52(r20): 7(ptr) Variable Function + 69(r22): 7(ptr) Variable Function + 83(r24): 7(ptr) Variable Function + 97(r50): 7(ptr) Variable Function + 115(r52): 7(ptr) Variable Function + 130(r54): 7(ptr) Variable Function + 147(psout): 146(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 22: 6(float) CompositeExtract 20 0 - 23: 6(float) ImageSampleDrefImplicitLod 19 20 22 - Store 8(r00) 23 - 29: 26 Load 28(g_tTex1di4) - 30: 13 Load 15(g_sSamp) - 33: 32 SampledImage 29 30 - 34: 6(float) CompositeExtract 20 0 - 35: 6(float) ImageSampleDrefImplicitLod 33 20 34 - Store 24(r02) 35 - 41: 38 Load 40(g_tTex1du4) - 42: 13 Load 15(g_sSamp) - 45: 44 SampledImage 41 42 - 46: 6(float) CompositeExtract 20 0 - 47: 6(float) ImageSampleDrefImplicitLod 45 20 46 - Store 36(r04) 47 - 52: 49 Load 51(g_tTex2df4) - 53: 13 Load 15(g_sSamp) - 56: 55 SampledImage 52 53 - 60: 6(float) CompositeExtract 59 0 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) ImageSampleDrefImplicitLod 56 60 61 - Store 48(r20) 62 - 67: 64 Load 66(g_tTex2di4) - 68: 13 Load 15(g_sSamp) - 71: 70 SampledImage 67 68 - 72: 6(float) CompositeExtract 59 0 - 73: 6(float) CompositeExtract 72 0 - 74: 6(float) ImageSampleDrefImplicitLod 71 72 73 - Store 63(r22) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 13 Load 15(g_sSamp) - 83: 82 SampledImage 79 80 - 84: 6(float) CompositeExtract 59 0 - 85: 6(float) CompositeExtract 84 0 - 86: 6(float) ImageSampleDrefImplicitLod 83 84 85 - Store 75(r24) 86 - 91: 88 Load 90(g_tTexcdf4) - 92: 13 Load 15(g_sSamp) - 95: 94 SampledImage 91 92 - 99: 6(float) CompositeExtract 98 0 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) ImageSampleDrefImplicitLod 95 99 100 - Store 87(r50) 101 - 106: 103 Load 105(g_tTexcdi4) - 107: 13 Load 15(g_sSamp) - 110: 109 SampledImage 106 107 - 111: 6(float) CompositeExtract 98 0 - 112: 6(float) CompositeExtract 111 0 - 113: 6(float) ImageSampleDrefImplicitLod 110 111 112 - Store 102(r52) 113 - 118: 115 Load 117(g_tTexcdu4) - 119: 13 Load 15(g_sSamp) - 122: 121 SampledImage 118 119 - 123: 6(float) CompositeExtract 98 0 - 124: 6(float) CompositeExtract 123 0 - 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 - Store 114(r54) 125 - 134: 133(ptr) AccessChain 129(psout) 130 - Store 134 132 - 136: 7(ptr) AccessChain 129(psout) 135 - Store 136 131 - 139: 133(ptr) AccessChain 129(psout) 130 - 140: 126(fvec4) Load 139 - Store 138(Color) 140 - 143: 7(ptr) AccessChain 129(psout) 135 - 144: 6(float) Load 143 - Store 142(Depth) 144 + 23: 22(fvec2) CompositeConstruct 20 21 + 24: 6(float) CompositeExtract 23 1 + 25: 6(float) ImageSampleDrefImplicitLod 19 23 24 + Store 8(r00) 25 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 22(fvec2) CompositeConstruct 20 21 + 37: 6(float) CompositeExtract 36 1 + 38: 6(float) ImageSampleDrefImplicitLod 35 36 37 + Store 26(r02) 38 + 44: 41 Load 43(g_tTex1du4) + 45: 13 Load 15(g_sSamp) + 48: 47 SampledImage 44 45 + 49: 22(fvec2) CompositeConstruct 20 21 + 50: 6(float) CompositeExtract 49 1 + 51: 6(float) ImageSampleDrefImplicitLod 48 49 50 + Store 39(r04) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 13 Load 15(g_sSamp) + 60: 59 SampledImage 56 57 + 64: 6(float) CompositeExtract 62 0 + 65: 6(float) CompositeExtract 62 1 + 66: 63(fvec3) CompositeConstruct 64 65 21 + 67: 6(float) CompositeExtract 66 2 + 68: 6(float) ImageSampleDrefImplicitLod 60 66 67 + Store 52(r20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 62 0 + 79: 6(float) CompositeExtract 62 1 + 80: 63(fvec3) CompositeConstruct 78 79 21 + 81: 6(float) CompositeExtract 80 2 + 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 + Store 69(r22) 82 + 87: 84 Load 86(g_tTex2du4) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 62 0 + 93: 6(float) CompositeExtract 62 1 + 94: 63(fvec3) CompositeConstruct 92 93 21 + 95: 6(float) CompositeExtract 94 2 + 96: 6(float) ImageSampleDrefImplicitLod 91 94 95 + Store 83(r24) 96 + 101: 98 Load 100(g_tTexcdf4) + 102: 13 Load 15(g_sSamp) + 105: 104 SampledImage 101 102 + 109: 6(float) CompositeExtract 107 0 + 110: 6(float) CompositeExtract 107 1 + 111: 6(float) CompositeExtract 107 2 + 112: 108(fvec4) CompositeConstruct 109 110 111 21 + 113: 6(float) CompositeExtract 112 3 + 114: 6(float) ImageSampleDrefImplicitLod 105 112 113 + Store 97(r50) 114 + 119: 116 Load 118(g_tTexcdi4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 107 0 + 125: 6(float) CompositeExtract 107 1 + 126: 6(float) CompositeExtract 107 2 + 127: 108(fvec4) CompositeConstruct 124 125 126 21 + 128: 6(float) CompositeExtract 127 3 + 129: 6(float) ImageSampleDrefImplicitLod 123 127 128 + Store 115(r52) 129 + 134: 131 Load 133(g_tTexcdu4) + 135: 13 Load 15(g_sSamp) + 138: 137 SampledImage 134 135 + 139: 6(float) CompositeExtract 107 0 + 140: 6(float) CompositeExtract 107 1 + 141: 6(float) CompositeExtract 107 2 + 142: 108(fvec4) CompositeConstruct 139 140 141 21 + 143: 6(float) CompositeExtract 142 3 + 144: 6(float) ImageSampleDrefImplicitLod 138 142 143 + Store 130(r54) 144 + 152: 151(ptr) AccessChain 147(psout) 148 + Store 152 150 + 154: 7(ptr) AccessChain 147(psout) 153 + Store 154 149 + 157: 151(ptr) AccessChain 147(psout) 148 + 158: 108(fvec4) Load 157 + Store 156(Color) 158 + 161: 7(ptr) AccessChain 147(psout) 153 + 162: 6(float) Load 161 + Store 160(Depth) 162 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 021e08f6..fd3250f5 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -170,7 +170,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -212,7 +212,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -228,7 +228,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -313,76 +313,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 107 + EntryPoint Fragment 4 "main" 113 117 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 26 "r03" - Name 29 "g_tTex1di4" - Name 37 "r05" - Name 41 "g_tTex1du4" - Name 49 "r21" - Name 52 "g_tTex2df4" - Name 67 "r23" - Name 70 "g_tTex2di4" - Name 79 "r25" - Name 82 "g_tTex2du4" - Name 92 "PS_OUTPUT" - MemberName 92(PS_OUTPUT) 0 "Color" - MemberName 92(PS_OUTPUT) 1 "Depth" - Name 94 "psout" - Name 103 "Color" - Name 107 "Depth" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 122 "g_tTexcdf4" - Name 125 "g_tTexcdi4" - Name 128 "g_tTexcdu4" - Name 131 "g_tTex1df4a" - Name 134 "g_tTex1di4a" - Name 137 "g_tTex1du4a" - Name 140 "g_tTex2df4a" - Name 143 "g_tTex2di4a" - Name 146 "g_tTex2du4a" - Name 149 "g_tTexcdf4a" - Name 152 "g_tTexcdi4a" - Name 155 "g_tTexcdu4a" + Name 28 "r03" + Name 31 "g_tTex1di4" + Name 40 "r05" + Name 44 "g_tTex1du4" + Name 53 "r21" + Name 56 "g_tTex2df4" + Name 73 "r23" + Name 76 "g_tTex2di4" + Name 87 "r25" + Name 90 "g_tTex2du4" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "psout" + Name 113 "Color" + Name 117 "Depth" + Name 123 "g_tTex3df4" + Name 126 "g_tTex3di4" + Name 129 "g_tTex3du4" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 70(g_tTex2di4) DescriptorSet 0 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 103(Color) Location 0 - Decorate 107(Depth) BuiltIn FragDepth - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 122(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 128(g_tTexcdu4) DescriptorSet 0 - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 134(g_tTex1di4a) DescriptorSet 0 - Decorate 137(g_tTex1du4a) DescriptorSet 0 - Decorate 140(g_tTex2df4a) DescriptorSet 0 - Decorate 143(g_tTex2di4a) DescriptorSet 0 - Decorate 146(g_tTex2du4a) DescriptorSet 0 - Decorate 149(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 76(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 113(Color) Location 0 + Decorate 117(Depth) BuiltIn FragDepth + Decorate 123(g_tTex3df4) DescriptorSet 0 + Decorate 126(g_tTex3di4) DescriptorSet 0 + Decorate 129(g_tTex3du4) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -397,154 +397,164 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 27: TypeImage 22(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 22(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 62: TypeVector 22(int) 2 - 63: 22(int) Constant 3 - 64: 62(ivec2) ConstantComposite 23 63 - 68: TypeImage 22(int) 2D sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTex2di4): 69(ptr) Variable UniformConstant - 73: TypeImage 22(int) 2D depth sampled format:Unknown - 74: TypeSampledImage 73 - 80: TypeImage 38(int) 2D sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex2du4): 81(ptr) Variable UniformConstant - 85: TypeImage 38(int) 2D depth sampled format:Unknown - 86: TypeSampledImage 85 - 91: TypeVector 6(float) 4 - 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) - 93: TypePointer Function 92(PS_OUTPUT) - 95: 22(int) Constant 0 - 96: 6(float) Constant 1065353216 - 97: 91(fvec4) ConstantComposite 96 96 96 96 - 98: TypePointer Function 91(fvec4) - 100: 22(int) Constant 1 - 102: TypePointer Output 91(fvec4) - 103(Color): 102(ptr) Variable Output - 106: TypePointer Output 6(float) - 107(Depth): 106(ptr) Variable Output - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 22(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 38(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdf4): 121(ptr) Variable UniformConstant - 123: TypeImage 22(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 126: TypeImage 38(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdu4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1df4a): 130(ptr) Variable UniformConstant - 132: TypeImage 22(int) 1D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex1di4a): 133(ptr) Variable UniformConstant - 135: TypeImage 38(int) 1D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex1du4a): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2df4a): 139(ptr) Variable UniformConstant - 141: TypeImage 22(int) 2D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex2di4a): 142(ptr) Variable UniformConstant - 144: TypeImage 38(int) 2D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex2du4a): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdf4a): 148(ptr) Variable UniformConstant - 150: TypeImage 22(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdi4a): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdu4a): 154(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 29: TypeImage 24(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 24(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 68: TypeVector 24(int) 2 + 69: 24(int) Constant 3 + 70: 68(ivec2) ConstantComposite 25 69 + 74: TypeImage 24(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4): 75(ptr) Variable UniformConstant + 79: TypeImage 24(int) 2D depth sampled format:Unknown + 80: TypeSampledImage 79 + 88: TypeImage 41(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 93: TypeImage 41(int) 2D depth sampled format:Unknown + 94: TypeSampledImage 93 + 101: TypeVector 6(float) 4 + 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float) + 103: TypePointer Function 102(PS_OUTPUT) + 105: 24(int) Constant 0 + 106: 6(float) Constant 1065353216 + 107: 101(fvec4) ConstantComposite 106 106 106 106 + 108: TypePointer Function 101(fvec4) + 110: 24(int) Constant 1 + 112: TypePointer Output 101(fvec4) + 113(Color): 112(ptr) Variable Output + 116: TypePointer Output 6(float) + 117(Depth): 116(ptr) Variable Output + 121: TypeImage 6(float) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3df4): 122(ptr) Variable UniformConstant + 124: TypeImage 24(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3di4): 125(ptr) Variable UniformConstant + 127: TypeImage 41(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 24(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 41(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 24(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 41(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 24(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 41(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 24(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 41(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 26(r03): 7(ptr) Variable Function - 37(r05): 7(ptr) Variable Function - 49(r21): 7(ptr) Variable Function - 67(r23): 7(ptr) Variable Function - 79(r25): 7(ptr) Variable Function - 94(psout): 93(ptr) Variable Function + 28(r03): 7(ptr) Variable Function + 40(r05): 7(ptr) Variable Function + 53(r21): 7(ptr) Variable Function + 73(r23): 7(ptr) Variable Function + 87(r25): 7(ptr) Variable Function + 104(psout): 103(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 24: 6(float) CompositeExtract 20 0 - 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23 - Store 8(r01) 25 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23 - Store 26(r03) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23 - Store 37(r05) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 65: 6(float) CompositeExtract 61 0 - 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64 - Store 49(r21) 66 - 71: 68 Load 70(g_tTex2di4) - 72: 13 Load 15(g_sSamp) - 75: 74 SampledImage 71 72 - 76: 6(float) CompositeExtract 60 0 - 77: 6(float) CompositeExtract 76 0 - 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64 - Store 67(r23) 78 - 83: 80 Load 82(g_tTex2du4) - 84: 13 Load 15(g_sSamp) - 87: 86 SampledImage 83 84 - 88: 6(float) CompositeExtract 60 0 - 89: 6(float) CompositeExtract 88 0 - 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 - Store 79(r25) 90 - 99: 98(ptr) AccessChain 94(psout) 95 - Store 99 97 - 101: 7(ptr) AccessChain 94(psout) 100 - Store 101 96 - 104: 98(ptr) AccessChain 94(psout) 95 - 105: 91(fvec4) Load 104 - Store 103(Color) 105 - 108: 7(ptr) AccessChain 94(psout) 100 - 109: 6(float) Load 108 - Store 107(Depth) 109 + 23: 22(fvec2) CompositeConstruct 20 21 + 26: 6(float) CompositeExtract 23 1 + 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25 + Store 8(r01) 27 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25 + Store 28(r03) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25 + Store 40(r05) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 71: 6(float) CompositeExtract 67 2 + 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70 + Store 53(r21) 72 + 77: 74 Load 76(g_tTex2di4) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 63 0 + 83: 6(float) CompositeExtract 63 1 + 84: 64(fvec3) CompositeConstruct 82 83 21 + 85: 6(float) CompositeExtract 84 2 + 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70 + Store 73(r23) 86 + 91: 88 Load 90(g_tTex2du4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 96: 6(float) CompositeExtract 63 0 + 97: 6(float) CompositeExtract 63 1 + 98: 64(fvec3) CompositeConstruct 96 97 21 + 99: 6(float) CompositeExtract 98 2 + 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70 + Store 87(r25) 100 + 109: 108(ptr) AccessChain 104(psout) 105 + Store 109 107 + 111: 7(ptr) AccessChain 104(psout) 110 + Store 111 106 + 114: 108(ptr) AccessChain 104(psout) 105 + 115: 101(fvec4) Load 114 + Store 113(Color) 115 + 118: 7(ptr) AccessChain 104(psout) 110 + 119: 6(float) Load 118 + Store 117(Depth) 119 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 73a2a89b..05695ed4 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -191,7 +191,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -238,7 +238,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -325,76 +325,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 113 + EntryPoint Fragment 4 "main" 124 128 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 30 "r13" - Name 33 "g_tTex1di4a" - Name 42 "r15" - Name 46 "g_tTex1du4a" - Name 55 "r31" - Name 58 "g_tTex2df4a" - Name 73 "r33" - Name 76 "g_tTex2di4a" - Name 85 "r35" - Name 88 "g_tTex2du4a" - Name 98 "PS_OUTPUT" - MemberName 98(PS_OUTPUT) 0 "Color" - MemberName 98(PS_OUTPUT) 1 "Depth" - Name 100 "psout" - Name 109 "Color" - Name 113 "Depth" - Name 119 "g_tTex1df4" - Name 122 "g_tTex1di4" - Name 125 "g_tTex1du4" - Name 128 "g_tTex2df4" - Name 131 "g_tTex2di4" - Name 134 "g_tTex2du4" - Name 137 "g_tTex3df4" - Name 140 "g_tTex3di4" - Name 143 "g_tTex3du4" - Name 146 "g_tTexcdf4" - Name 149 "g_tTexcdi4" - Name 152 "g_tTexcdu4" - Name 155 "g_tTexcdf4a" - Name 158 "g_tTexcdi4a" - Name 161 "g_tTexcdu4a" + Name 33 "r13" + Name 36 "g_tTex1di4a" + Name 47 "r15" + Name 51 "g_tTex1du4a" + Name 62 "r31" + Name 65 "g_tTex2df4a" + Name 83 "r33" + Name 86 "g_tTex2di4a" + Name 98 "r35" + Name 101 "g_tTex2du4a" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 124 "Color" + Name 128 "Depth" + Name 134 "g_tTex1df4" + Name 137 "g_tTex1di4" + Name 140 "g_tTex1du4" + Name 143 "g_tTex2df4" + Name 146 "g_tTex2di4" + Name 149 "g_tTex2du4" + Name 152 "g_tTex3df4" + Name 155 "g_tTex3di4" + Name 158 "g_tTex3du4" + Name 161 "g_tTexcdf4" + Name 164 "g_tTexcdi4" + Name 167 "g_tTexcdu4" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 76(g_tTex2di4a) DescriptorSet 0 - Decorate 88(g_tTex2du4a) DescriptorSet 0 - Decorate 109(Color) Location 0 - Decorate 113(Depth) BuiltIn FragDepth - Decorate 119(g_tTex1df4) DescriptorSet 0 - Decorate 119(g_tTex1df4) Binding 0 - Decorate 122(g_tTex1di4) DescriptorSet 0 - Decorate 125(g_tTex1du4) DescriptorSet 0 - Decorate 128(g_tTex2df4) DescriptorSet 0 - Decorate 131(g_tTex2di4) DescriptorSet 0 - Decorate 134(g_tTex2du4) DescriptorSet 0 - Decorate 137(g_tTex3df4) DescriptorSet 0 - Decorate 140(g_tTex3di4) DescriptorSet 0 - Decorate 143(g_tTex3du4) DescriptorSet 0 - Decorate 146(g_tTexcdf4) DescriptorSet 0 - Decorate 149(g_tTexcdi4) DescriptorSet 0 - Decorate 152(g_tTexcdu4) DescriptorSet 0 - Decorate 155(g_tTexcdf4a) DescriptorSet 0 - Decorate 158(g_tTexcdi4a) DescriptorSet 0 - Decorate 161(g_tTexcdu4a) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 86(g_tTex2di4a) DescriptorSet 0 + Decorate 101(g_tTex2du4a) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 + Decorate 137(g_tTex1di4) DescriptorSet 0 + Decorate 140(g_tTex1du4) DescriptorSet 0 + Decorate 143(g_tTex2df4) DescriptorSet 0 + Decorate 146(g_tTex2di4) DescriptorSet 0 + Decorate 149(g_tTex2du4) DescriptorSet 0 + Decorate 152(g_tTex3df4) DescriptorSet 0 + Decorate 155(g_tTex3di4) DescriptorSet 0 + Decorate 158(g_tTex3du4) DescriptorSet 0 + Decorate 161(g_tTexcdf4) DescriptorSet 0 + Decorate 164(g_tTexcdi4) DescriptorSet 0 + Decorate 167(g_tTexcdu4) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -412,157 +412,172 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: TypeInt 32 1 - 27: 26(int) Constant 2 - 31: TypeImage 26(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 26(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 68: TypeVector 26(int) 2 - 69: 26(int) Constant 3 - 70: 68(ivec2) ConstantComposite 27 69 - 74: TypeImage 26(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2di4a): 75(ptr) Variable UniformConstant - 79: TypeImage 26(int) 2D depth array sampled format:Unknown - 80: TypeSampledImage 79 - 86: TypeImage 43(int) 2D array sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex2du4a): 87(ptr) Variable UniformConstant - 91: TypeImage 43(int) 2D depth array sampled format:Unknown - 92: TypeSampledImage 91 - 97: TypeVector 6(float) 4 - 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) - 99: TypePointer Function 98(PS_OUTPUT) - 101: 26(int) Constant 0 - 102: 6(float) Constant 1065353216 - 103: 97(fvec4) ConstantComposite 102 102 102 102 - 104: TypePointer Function 97(fvec4) - 106: 26(int) Constant 1 - 108: TypePointer Output 97(fvec4) - 109(Color): 108(ptr) Variable Output - 112: TypePointer Output 6(float) - 113(Depth): 112(ptr) Variable Output - 117: TypeImage 6(float) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1df4): 118(ptr) Variable UniformConstant - 120: TypeImage 26(int) 1D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex1di4): 121(ptr) Variable UniformConstant - 123: TypeImage 43(int) 1D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex1du4): 124(ptr) Variable UniformConstant - 126: TypeImage 6(float) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2df4): 127(ptr) Variable UniformConstant - 129: TypeImage 26(int) 2D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex2di4): 130(ptr) Variable UniformConstant - 132: TypeImage 43(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 34: TypeImage 29(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 29(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 78: TypeVector 29(int) 2 + 79: 29(int) Constant 3 + 80: 78(ivec2) ConstantComposite 30 79 + 84: TypeImage 29(int) 2D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2di4a): 85(ptr) Variable UniformConstant + 89: TypeImage 29(int) 2D depth array sampled format:Unknown + 90: TypeSampledImage 89 + 99: TypeImage 48(int) 2D array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex2du4a): 100(ptr) Variable UniformConstant + 104: TypeImage 48(int) 2D depth array sampled format:Unknown + 105: TypeSampledImage 104 + 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 29(int) Constant 0 + 117: 6(float) Constant 1065353216 + 118: 73(fvec4) ConstantComposite 117 117 117 117 + 119: TypePointer Function 73(fvec4) + 121: 29(int) Constant 1 + 123: TypePointer Output 73(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output + 132: TypeImage 6(float) 1D sampled format:Unknown 133: TypePointer UniformConstant 132 - 134(g_tTex2du4): 133(ptr) Variable UniformConstant - 135: TypeImage 6(float) 3D sampled format:Unknown + 134(g_tTex1df4): 133(ptr) Variable UniformConstant + 135: TypeImage 29(int) 1D sampled format:Unknown 136: TypePointer UniformConstant 135 - 137(g_tTex3df4): 136(ptr) Variable UniformConstant - 138: TypeImage 26(int) 3D sampled format:Unknown + 137(g_tTex1di4): 136(ptr) Variable UniformConstant + 138: TypeImage 48(int) 1D sampled format:Unknown 139: TypePointer UniformConstant 138 - 140(g_tTex3di4): 139(ptr) Variable UniformConstant - 141: TypeImage 43(int) 3D sampled format:Unknown + 140(g_tTex1du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) 2D sampled format:Unknown 142: TypePointer UniformConstant 141 - 143(g_tTex3du4): 142(ptr) Variable UniformConstant - 144: TypeImage 6(float) Cube sampled format:Unknown + 143(g_tTex2df4): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 2D sampled format:Unknown 145: TypePointer UniformConstant 144 - 146(g_tTexcdf4): 145(ptr) Variable UniformConstant - 147: TypeImage 26(int) Cube sampled format:Unknown + 146(g_tTex2di4): 145(ptr) Variable UniformConstant + 147: TypeImage 48(int) 2D sampled format:Unknown 148: TypePointer UniformConstant 147 - 149(g_tTexcdi4): 148(ptr) Variable UniformConstant - 150: TypeImage 43(int) Cube sampled format:Unknown + 149(g_tTex2du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 3D sampled format:Unknown 151: TypePointer UniformConstant 150 - 152(g_tTexcdu4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) Cube array sampled format:Unknown + 152(g_tTex3df4): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 3D sampled format:Unknown 154: TypePointer UniformConstant 153 -155(g_tTexcdf4a): 154(ptr) Variable UniformConstant - 156: TypeImage 26(int) Cube array sampled format:Unknown + 155(g_tTex3di4): 154(ptr) Variable UniformConstant + 156: TypeImage 48(int) 3D sampled format:Unknown 157: TypePointer UniformConstant 156 -158(g_tTexcdi4a): 157(ptr) Variable UniformConstant - 159: TypeImage 43(int) Cube array sampled format:Unknown + 158(g_tTex3du4): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) Cube sampled format:Unknown 160: TypePointer UniformConstant 159 -161(g_tTexcdu4a): 160(ptr) Variable UniformConstant + 161(g_tTexcdf4): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) Cube sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTexcdi4): 163(ptr) Variable UniformConstant + 165: TypeImage 48(int) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdu4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 29(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 48(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 30(r13): 7(ptr) Variable Function - 42(r15): 7(ptr) Variable Function - 55(r31): 7(ptr) Variable Function - 73(r33): 7(ptr) Variable Function - 85(r35): 7(ptr) Variable Function - 100(psout): 99(ptr) Variable Function + 33(r13): 7(ptr) Variable Function + 47(r15): 7(ptr) Variable Function + 62(r31): 7(ptr) Variable Function + 83(r33): 7(ptr) Variable Function + 98(r35): 7(ptr) Variable Function + 115(psout): 114(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 28: 6(float) CompositeExtract 25 0 - 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27 - Store 8(r11) 29 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27 - Store 30(r13) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27 - Store 42(r15) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 71: 6(float) CompositeExtract 67 0 - 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70 - Store 55(r31) 72 - 77: 74 Load 76(g_tTex2di4a) - 78: 13 Load 15(g_sSamp) - 81: 80 SampledImage 77 78 - 82: 6(float) CompositeExtract 66 0 - 83: 6(float) CompositeExtract 82 0 - 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70 - Store 73(r33) 84 - 89: 86 Load 88(g_tTex2du4a) - 90: 13 Load 15(g_sSamp) - 93: 92 SampledImage 89 90 - 94: 6(float) CompositeExtract 66 0 - 95: 6(float) CompositeExtract 94 0 - 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 - Store 85(r35) 96 - 105: 104(ptr) AccessChain 100(psout) 101 - Store 105 103 - 107: 7(ptr) AccessChain 100(psout) 106 - Store 107 102 - 110: 104(ptr) AccessChain 100(psout) 101 - 111: 97(fvec4) Load 110 - Store 109(Color) 111 - 114: 7(ptr) AccessChain 100(psout) 106 - 115: 6(float) Load 114 - Store 113(Depth) 115 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 31: 6(float) CompositeExtract 28 2 + 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30 + Store 8(r11) 32 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30 + Store 33(r13) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30 + Store 47(r15) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 81: 6(float) CompositeExtract 77 3 + 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80 + Store 62(r31) 82 + 87: 84 Load 86(g_tTex2di4a) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 72 0 + 93: 6(float) CompositeExtract 72 1 + 94: 6(float) CompositeExtract 72 2 + 95: 73(fvec4) CompositeConstruct 92 93 94 24 + 96: 6(float) CompositeExtract 95 3 + 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80 + Store 83(r33) 97 + 102: 99 Load 101(g_tTex2du4a) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 107: 6(float) CompositeExtract 72 0 + 108: 6(float) CompositeExtract 72 1 + 109: 6(float) CompositeExtract 72 2 + 110: 73(fvec4) CompositeConstruct 107 108 109 24 + 111: 6(float) CompositeExtract 110 3 + 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80 + Store 98(r35) 112 + 120: 119(ptr) AccessChain 115(psout) 116 + Store 120 118 + 122: 7(ptr) AccessChain 115(psout) 121 + Store 122 117 + 125: 119(ptr) AccessChain 115(psout) 116 + 126: 73(fvec4) Load 125 + Store 124(Color) 126 + 129: 7(ptr) AccessChain 115(psout) 121 + 130: 6(float) Load 129 + Store 128(Depth) 130 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index c5009ff3..40546103 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -105,7 +105,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -122,7 +122,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -139,7 +139,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -224,7 +224,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -301,7 +301,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -317,7 +317,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -351,7 +351,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -421,79 +421,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 212 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 145 + EntryPoint Fragment 4 "main" 168 172 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 29 "r12" - Name 33 "g_tTex1di4a" - Name 42 "r14" - Name 46 "g_tTex1du4a" - Name 55 "r30" - Name 58 "g_tTex2df4a" - Name 70 "r32" - Name 73 "g_tTex2di4a" - Name 82 "r34" - Name 85 "g_tTex2du4a" - Name 94 "r60" - Name 97 "g_tTexcdf4a" - Name 108 "r62" - Name 111 "g_tTexcdi4a" - Name 119 "r64" - Name 122 "g_tTexcdu4a" - Name 130 "PS_OUTPUT" - MemberName 130(PS_OUTPUT) 0 "Color" - MemberName 130(PS_OUTPUT) 1 "Depth" - Name 132 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 151 "g_tTex1df4" - Name 154 "g_tTex1di4" - Name 157 "g_tTex1du4" - Name 160 "g_tTex2df4" - Name 163 "g_tTex2di4" - Name 166 "g_tTex2du4" - Name 169 "g_tTex3df4" - Name 172 "g_tTex3di4" - Name 175 "g_tTex3du4" - Name 178 "g_tTexcdf4" - Name 181 "g_tTexcdi4" - Name 184 "g_tTexcdu4" + Name 32 "r12" + Name 36 "g_tTex1di4a" + Name 47 "r14" + Name 51 "g_tTex1du4a" + Name 62 "r30" + Name 65 "g_tTex2df4a" + Name 80 "r32" + Name 83 "g_tTex2di4a" + Name 95 "r34" + Name 98 "g_tTex2du4a" + Name 110 "r60" + Name 113 "g_tTexcdf4a" + Name 127 "r62" + Name 130 "g_tTexcdi4a" + Name 142 "r64" + Name 145 "g_tTexcdu4a" + Name 157 "PS_OUTPUT" + MemberName 157(PS_OUTPUT) 0 "Color" + MemberName 157(PS_OUTPUT) 1 "Depth" + Name 159 "psout" + Name 168 "Color" + Name 172 "Depth" + Name 178 "g_tTex1df4" + Name 181 "g_tTex1di4" + Name 184 "g_tTex1du4" + Name 187 "g_tTex2df4" + Name 190 "g_tTex2di4" + Name 193 "g_tTex2du4" + Name 196 "g_tTex3df4" + Name 199 "g_tTex3di4" + Name 202 "g_tTex3du4" + Name 205 "g_tTexcdf4" + Name 208 "g_tTexcdi4" + Name 211 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 73(g_tTex2di4a) DescriptorSet 0 - Decorate 85(g_tTex2du4a) DescriptorSet 0 - Decorate 97(g_tTexcdf4a) DescriptorSet 0 - Decorate 111(g_tTexcdi4a) DescriptorSet 0 - Decorate 122(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 151(g_tTex1df4) DescriptorSet 0 - Decorate 151(g_tTex1df4) Binding 0 - Decorate 154(g_tTex1di4) DescriptorSet 0 - Decorate 157(g_tTex1du4) DescriptorSet 0 - Decorate 160(g_tTex2df4) DescriptorSet 0 - Decorate 163(g_tTex2di4) DescriptorSet 0 - Decorate 166(g_tTex2du4) DescriptorSet 0 - Decorate 169(g_tTex3df4) DescriptorSet 0 - Decorate 172(g_tTex3di4) DescriptorSet 0 - Decorate 175(g_tTex3du4) DescriptorSet 0 - Decorate 178(g_tTexcdf4) DescriptorSet 0 - Decorate 181(g_tTexcdi4) DescriptorSet 0 - Decorate 184(g_tTexcdu4) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 83(g_tTex2di4a) DescriptorSet 0 + Decorate 98(g_tTex2du4a) DescriptorSet 0 + Decorate 113(g_tTexcdf4a) DescriptorSet 0 + Decorate 130(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + Decorate 168(Color) Location 0 + Decorate 172(Depth) BuiltIn FragDepth + Decorate 178(g_tTex1df4) DescriptorSet 0 + Decorate 178(g_tTex1df4) Binding 0 + Decorate 181(g_tTex1di4) DescriptorSet 0 + Decorate 184(g_tTex1du4) DescriptorSet 0 + Decorate 187(g_tTex2df4) DescriptorSet 0 + Decorate 190(g_tTex2di4) DescriptorSet 0 + Decorate 193(g_tTex2du4) DescriptorSet 0 + Decorate 196(g_tTex3df4) DescriptorSet 0 + Decorate 199(g_tTex3di4) DescriptorSet 0 + Decorate 202(g_tTex3du4) DescriptorSet 0 + Decorate 205(g_tTexcdf4) DescriptorSet 0 + Decorate 208(g_tTexcdi4) DescriptorSet 0 + Decorate 211(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -511,183 +511,210 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 30: TypeInt 32 1 - 31: TypeImage 30(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 30(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 71: TypeImage 30(int) 2D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4a): 72(ptr) Variable UniformConstant - 76: TypeImage 30(int) 2D depth array sampled format:Unknown - 77: TypeSampledImage 76 - 83: TypeImage 43(int) 2D array sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex2du4a): 84(ptr) Variable UniformConstant - 88: TypeImage 43(int) 2D depth array sampled format:Unknown - 89: TypeSampledImage 88 - 95: TypeImage 6(float) Cube array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant - 100: TypeImage 6(float) Cube depth array sampled format:Unknown - 101: TypeSampledImage 100 - 103: TypeVector 6(float) 4 - 104: 6(float) Constant 1053609165 - 105: 103(fvec4) ConstantComposite 21 22 65 104 - 109: TypeImage 30(int) Cube array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTexcdi4a): 110(ptr) Variable UniformConstant - 114: TypeImage 30(int) Cube depth array sampled format:Unknown - 115: TypeSampledImage 114 - 120: TypeImage 43(int) Cube array sampled format:Unknown - 121: TypePointer UniformConstant 120 -122(g_tTexcdu4a): 121(ptr) Variable UniformConstant - 125: TypeImage 43(int) Cube depth array sampled format:Unknown - 126: TypeSampledImage 125 - 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) - 131: TypePointer Function 130(PS_OUTPUT) - 133: 30(int) Constant 0 - 134: 6(float) Constant 1065353216 - 135: 103(fvec4) ConstantComposite 134 134 134 134 - 136: TypePointer Function 103(fvec4) - 138: 30(int) Constant 1 - 140: TypePointer Output 103(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output - 149: TypeImage 6(float) 1D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex1df4): 150(ptr) Variable UniformConstant - 152: TypeImage 30(int) 1D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex1di4): 153(ptr) Variable UniformConstant - 155: TypeImage 43(int) 1D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex1du4): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) 2D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex2df4): 159(ptr) Variable UniformConstant - 161: TypeImage 30(int) 2D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex2di4): 162(ptr) Variable UniformConstant - 164: TypeImage 43(int) 2D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex2du4): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3df4): 168(ptr) Variable UniformConstant - 170: TypeImage 30(int) 3D sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTex3di4): 171(ptr) Variable UniformConstant - 173: TypeImage 43(int) 3D sampled format:Unknown - 174: TypePointer UniformConstant 173 - 175(g_tTex3du4): 174(ptr) Variable UniformConstant - 176: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 33: TypeInt 32 1 + 34: TypeImage 33(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 33(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 81: TypeImage 33(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2di4a): 82(ptr) Variable UniformConstant + 86: TypeImage 33(int) 2D depth array sampled format:Unknown + 87: TypeSampledImage 86 + 96: TypeImage 48(int) 2D array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2du4a): 97(ptr) Variable UniformConstant + 101: TypeImage 48(int) 2D depth array sampled format:Unknown + 102: TypeSampledImage 101 + 111: TypeImage 6(float) Cube array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTexcdf4a): 112(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube depth array sampled format:Unknown + 117: TypeSampledImage 116 + 119: 6(float) Constant 1053609165 + 120: 73(fvec4) ConstantComposite 21 22 71 119 + 128: TypeImage 33(int) Cube array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTexcdi4a): 129(ptr) Variable UniformConstant + 133: TypeImage 33(int) Cube depth array sampled format:Unknown + 134: TypeSampledImage 133 + 143: TypeImage 48(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 148: TypeImage 48(int) Cube depth array sampled format:Unknown + 149: TypeSampledImage 148 + 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 158: TypePointer Function 157(PS_OUTPUT) + 160: 33(int) Constant 0 + 161: 6(float) Constant 1065353216 + 162: 73(fvec4) ConstantComposite 161 161 161 161 + 163: TypePointer Function 73(fvec4) + 165: 33(int) Constant 1 + 167: TypePointer Output 73(fvec4) + 168(Color): 167(ptr) Variable Output + 171: TypePointer Output 6(float) + 172(Depth): 171(ptr) Variable Output + 176: TypeImage 6(float) 1D sampled format:Unknown 177: TypePointer UniformConstant 176 - 178(g_tTexcdf4): 177(ptr) Variable UniformConstant - 179: TypeImage 30(int) Cube sampled format:Unknown + 178(g_tTex1df4): 177(ptr) Variable UniformConstant + 179: TypeImage 33(int) 1D sampled format:Unknown 180: TypePointer UniformConstant 179 - 181(g_tTexcdi4): 180(ptr) Variable UniformConstant - 182: TypeImage 43(int) Cube sampled format:Unknown + 181(g_tTex1di4): 180(ptr) Variable UniformConstant + 182: TypeImage 48(int) 1D sampled format:Unknown 183: TypePointer UniformConstant 182 - 184(g_tTexcdu4): 183(ptr) Variable UniformConstant + 184(g_tTex1du4): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) 2D sampled format:Unknown + 186: TypePointer UniformConstant 185 + 187(g_tTex2df4): 186(ptr) Variable UniformConstant + 188: TypeImage 33(int) 2D sampled format:Unknown + 189: TypePointer UniformConstant 188 + 190(g_tTex2di4): 189(ptr) Variable UniformConstant + 191: TypeImage 48(int) 2D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(g_tTex2du4): 192(ptr) Variable UniformConstant + 194: TypeImage 6(float) 3D sampled format:Unknown + 195: TypePointer UniformConstant 194 + 196(g_tTex3df4): 195(ptr) Variable UniformConstant + 197: TypeImage 33(int) 3D sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(g_tTex3di4): 198(ptr) Variable UniformConstant + 200: TypeImage 48(int) 3D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex3du4): 201(ptr) Variable UniformConstant + 203: TypeImage 6(float) Cube sampled format:Unknown + 204: TypePointer UniformConstant 203 + 205(g_tTexcdf4): 204(ptr) Variable UniformConstant + 206: TypeImage 33(int) Cube sampled format:Unknown + 207: TypePointer UniformConstant 206 + 208(g_tTexcdi4): 207(ptr) Variable UniformConstant + 209: TypeImage 48(int) Cube sampled format:Unknown + 210: TypePointer UniformConstant 209 + 211(g_tTexcdu4): 210(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 29(r12): 7(ptr) Variable Function - 42(r14): 7(ptr) Variable Function - 55(r30): 7(ptr) Variable Function - 70(r32): 7(ptr) Variable Function - 82(r34): 7(ptr) Variable Function - 94(r60): 7(ptr) Variable Function - 108(r62): 7(ptr) Variable Function - 119(r64): 7(ptr) Variable Function - 132(psout): 131(ptr) Variable Function + 32(r12): 7(ptr) Variable Function + 47(r14): 7(ptr) Variable Function + 62(r30): 7(ptr) Variable Function + 80(r32): 7(ptr) Variable Function + 95(r34): 7(ptr) Variable Function + 110(r60): 7(ptr) Variable Function + 127(r62): 7(ptr) Variable Function + 142(r64): 7(ptr) Variable Function + 159(psout): 158(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 25 0 - 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26 - Store 8(r10) 28 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26 - Store 29(r12) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26 - Store 42(r14) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) CompositeExtract 67 0 - 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26 - Store 55(r30) 69 - 74: 71 Load 73(g_tTex2di4a) - 75: 13 Load 15(g_sSamp) - 78: 77 SampledImage 74 75 - 79: 6(float) CompositeExtract 66 0 - 80: 6(float) CompositeExtract 79 0 - 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26 - Store 70(r32) 81 - 86: 83 Load 85(g_tTex2du4a) - 87: 13 Load 15(g_sSamp) - 90: 89 SampledImage 86 87 - 91: 6(float) CompositeExtract 66 0 - 92: 6(float) CompositeExtract 91 0 - 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26 - Store 82(r34) 93 - 98: 95 Load 97(g_tTexcdf4a) - 99: 13 Load 15(g_sSamp) - 102: 101 SampledImage 98 99 - 106: 6(float) CompositeExtract 105 0 - 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24 - Store 94(r60) 107 - 112: 109 Load 111(g_tTexcdi4a) - 113: 13 Load 15(g_sSamp) - 116: 115 SampledImage 112 113 - 117: 6(float) CompositeExtract 105 0 - 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24 - Store 108(r62) 118 - 123: 120 Load 122(g_tTexcdu4a) - 124: 13 Load 15(g_sSamp) - 127: 126 SampledImage 123 124 - 128: 6(float) CompositeExtract 105 0 - 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 - Store 119(r64) 129 - 137: 136(ptr) AccessChain 132(psout) 133 - Store 137 135 - 139: 7(ptr) AccessChain 132(psout) 138 - Store 139 134 - 142: 136(ptr) AccessChain 132(psout) 133 - 143: 103(fvec4) Load 142 - Store 141(Color) 143 - 146: 7(ptr) AccessChain 132(psout) 138 - 147: 6(float) Load 146 - Store 145(Depth) 147 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 30: 6(float) CompositeExtract 28 2 + 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29 + Store 8(r10) 31 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29 + Store 32(r12) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29 + Store 47(r14) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 78: 6(float) CompositeExtract 77 3 + 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29 + Store 62(r30) 79 + 84: 81 Load 83(g_tTex2di4a) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 72 0 + 90: 6(float) CompositeExtract 72 1 + 91: 6(float) CompositeExtract 72 2 + 92: 73(fvec4) CompositeConstruct 89 90 91 24 + 93: 6(float) CompositeExtract 92 3 + 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29 + Store 80(r32) 94 + 99: 96 Load 98(g_tTex2du4a) + 100: 13 Load 15(g_sSamp) + 103: 102 SampledImage 99 100 + 104: 6(float) CompositeExtract 72 0 + 105: 6(float) CompositeExtract 72 1 + 106: 6(float) CompositeExtract 72 2 + 107: 73(fvec4) CompositeConstruct 104 105 106 24 + 108: 6(float) CompositeExtract 107 3 + 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29 + Store 95(r34) 109 + 114: 111 Load 113(g_tTexcdf4a) + 115: 13 Load 15(g_sSamp) + 118: 117 SampledImage 114 115 + 121: 6(float) CompositeExtract 120 0 + 122: 6(float) CompositeExtract 120 1 + 123: 6(float) CompositeExtract 120 2 + 124: 6(float) CompositeExtract 120 3 + 125: 73(fvec4) CompositeConstruct 121 122 123 124 + 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24 + Store 110(r60) 126 + 131: 128 Load 130(g_tTexcdi4a) + 132: 13 Load 15(g_sSamp) + 135: 134 SampledImage 131 132 + 136: 6(float) CompositeExtract 120 0 + 137: 6(float) CompositeExtract 120 1 + 138: 6(float) CompositeExtract 120 2 + 139: 6(float) CompositeExtract 120 3 + 140: 73(fvec4) CompositeConstruct 136 137 138 139 + 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24 + Store 127(r62) 141 + 146: 143 Load 145(g_tTexcdu4a) + 147: 13 Load 15(g_sSamp) + 150: 149 SampledImage 146 147 + 151: 6(float) CompositeExtract 120 0 + 152: 6(float) CompositeExtract 120 1 + 153: 6(float) CompositeExtract 120 2 + 154: 6(float) CompositeExtract 120 3 + 155: 73(fvec4) CompositeConstruct 151 152 153 154 + 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24 + Store 142(r64) 156 + 164: 163(ptr) AccessChain 159(psout) 160 + Store 164 162 + 166: 7(ptr) AccessChain 159(psout) 165 + Store 166 161 + 169: 163(ptr) AccessChain 159(psout) 160 + 170: 73(fvec4) Load 169 + Store 168(Color) 170 + 173: 7(ptr) AccessChain 159(psout) 165 + 174: 6(float) Load 173 + Store 172(Depth) 174 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index b8f55b8e..a5923367 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -131,7 +131,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -243,7 +243,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -318,7 +318,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -403,79 +403,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 201 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 143 + EntryPoint Fragment 4 "main" 157 161 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 25 "r02" - Name 29 "g_tTex1di4" - Name 37 "r04" - Name 41 "g_tTex1du4" - Name 49 "r20" - Name 52 "g_tTex2df4" - Name 64 "r22" - Name 67 "g_tTex2di4" - Name 76 "r24" - Name 79 "g_tTex2du4" - Name 88 "r50" - Name 91 "g_tTexcdf4" - Name 103 "r52" - Name 106 "g_tTexcdi4" - Name 115 "r54" - Name 118 "g_tTexcdu4" - Name 128 "PS_OUTPUT" - MemberName 128(PS_OUTPUT) 0 "Color" - MemberName 128(PS_OUTPUT) 1 "Depth" - Name 130 "psout" - Name 139 "Color" - Name 143 "Depth" - Name 149 "g_tTex3df4" - Name 152 "g_tTex3di4" - Name 155 "g_tTex3du4" - Name 158 "g_tTex1df4a" - Name 161 "g_tTex1di4a" - Name 164 "g_tTex1du4a" - Name 167 "g_tTex2df4a" - Name 170 "g_tTex2di4a" - Name 173 "g_tTex2du4a" - Name 176 "g_tTexcdf4a" - Name 179 "g_tTexcdi4a" - Name 182 "g_tTexcdu4a" + Name 27 "r02" + Name 31 "g_tTex1di4" + Name 40 "r04" + Name 44 "g_tTex1du4" + Name 53 "r20" + Name 56 "g_tTex2df4" + Name 70 "r22" + Name 73 "g_tTex2di4" + Name 84 "r24" + Name 87 "g_tTex2du4" + Name 98 "r50" + Name 101 "g_tTexcdf4" + Name 116 "r52" + Name 119 "g_tTexcdi4" + Name 131 "r54" + Name 134 "g_tTexcdu4" + Name 146 "PS_OUTPUT" + MemberName 146(PS_OUTPUT) 0 "Color" + MemberName 146(PS_OUTPUT) 1 "Depth" + Name 148 "psout" + Name 157 "Color" + Name 161 "Depth" + Name 167 "g_tTex3df4" + Name 170 "g_tTex3di4" + Name 173 "g_tTex3du4" + Name 176 "g_tTex1df4a" + Name 179 "g_tTex1di4a" + Name 182 "g_tTex1du4a" + Name 185 "g_tTex2df4a" + Name 188 "g_tTex2di4a" + Name 191 "g_tTex2du4a" + Name 194 "g_tTexcdf4a" + Name 197 "g_tTexcdi4a" + Name 200 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 91(g_tTexcdf4) DescriptorSet 0 - Decorate 106(g_tTexcdi4) DescriptorSet 0 - Decorate 118(g_tTexcdu4) DescriptorSet 0 - Decorate 139(Color) Location 0 - Decorate 143(Depth) BuiltIn FragDepth - Decorate 149(g_tTex3df4) DescriptorSet 0 - Decorate 152(g_tTex3di4) DescriptorSet 0 - Decorate 155(g_tTex3du4) DescriptorSet 0 - Decorate 158(g_tTex1df4a) DescriptorSet 0 - Decorate 161(g_tTex1di4a) DescriptorSet 0 - Decorate 164(g_tTex1du4a) DescriptorSet 0 - Decorate 167(g_tTex2df4a) DescriptorSet 0 - Decorate 170(g_tTex2di4a) DescriptorSet 0 - Decorate 173(g_tTex2du4a) DescriptorSet 0 - Decorate 176(g_tTexcdf4a) DescriptorSet 0 - Decorate 179(g_tTexcdi4a) DescriptorSet 0 - Decorate 182(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 134(g_tTexcdu4) DescriptorSet 0 + Decorate 157(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth + Decorate 167(g_tTex3df4) DescriptorSet 0 + Decorate 170(g_tTex3di4) DescriptorSet 0 + Decorate 173(g_tTex3du4) DescriptorSet 0 + Decorate 176(g_tTex1df4a) DescriptorSet 0 + Decorate 179(g_tTex1di4a) DescriptorSet 0 + Decorate 182(g_tTex1du4a) DescriptorSet 0 + Decorate 185(g_tTex2df4a) DescriptorSet 0 + Decorate 188(g_tTex2di4a) DescriptorSet 0 + Decorate 191(g_tTex2du4a) DescriptorSet 0 + Decorate 194(g_tTexcdf4a) DescriptorSet 0 + Decorate 197(g_tTexcdi4a) DescriptorSet 0 + Decorate 200(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -490,184 +490,202 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 26: TypeInt 32 1 - 27: TypeImage 26(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 26(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 65: TypeImage 26(int) 2D sampled format:Unknown - 66: TypePointer UniformConstant 65 - 67(g_tTex2di4): 66(ptr) Variable UniformConstant - 70: TypeImage 26(int) 2D depth sampled format:Unknown - 71: TypeSampledImage 70 - 77: TypeImage 38(int) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant - 82: TypeImage 38(int) 2D depth sampled format:Unknown - 83: TypeSampledImage 82 - 89: TypeImage 6(float) Cube sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4): 90(ptr) Variable UniformConstant - 94: TypeImage 6(float) Cube depth sampled format:Unknown - 95: TypeSampledImage 94 - 97: TypeVector 6(float) 3 - 98: 6(float) Constant 1050253722 - 99: 97(fvec3) ConstantComposite 20 59 98 - 104: TypeImage 26(int) Cube sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTexcdi4): 105(ptr) Variable UniformConstant - 109: TypeImage 26(int) Cube depth sampled format:Unknown - 110: TypeSampledImage 109 - 116: TypeImage 38(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdu4): 117(ptr) Variable UniformConstant - 121: TypeImage 38(int) Cube depth sampled format:Unknown - 122: TypeSampledImage 121 - 127: TypeVector 6(float) 4 - 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) - 129: TypePointer Function 128(PS_OUTPUT) - 131: 26(int) Constant 0 - 132: 6(float) Constant 1065353216 - 133: 127(fvec4) ConstantComposite 132 132 132 132 - 134: TypePointer Function 127(fvec4) - 136: 26(int) Constant 1 - 138: TypePointer Output 127(fvec4) - 139(Color): 138(ptr) Variable Output - 142: TypePointer Output 6(float) - 143(Depth): 142(ptr) Variable Output - 147: TypeImage 6(float) 3D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex3df4): 148(ptr) Variable UniformConstant - 150: TypeImage 26(int) 3D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex3di4): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) 3D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex3du4): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1df4a): 157(ptr) Variable UniformConstant - 159: TypeImage 26(int) 1D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex1di4a): 160(ptr) Variable UniformConstant - 162: TypeImage 38(int) 1D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex1du4a): 163(ptr) Variable UniformConstant - 165: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 28: TypeInt 32 1 + 29: TypeImage 28(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 28(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 71: TypeImage 28(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeImage 28(int) 2D depth sampled format:Unknown + 77: TypeSampledImage 76 + 85: TypeImage 41(int) 2D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeImage 41(int) 2D depth sampled format:Unknown + 91: TypeSampledImage 90 + 99: TypeImage 6(float) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube depth sampled format:Unknown + 105: TypeSampledImage 104 + 107: 6(float) Constant 1050253722 + 108: 64(fvec3) ConstantComposite 20 62 107 + 109: TypeVector 6(float) 4 + 117: TypeImage 28(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 122: TypeImage 28(int) Cube depth sampled format:Unknown + 123: TypeSampledImage 122 + 132: TypeImage 41(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdu4): 133(ptr) Variable UniformConstant + 137: TypeImage 41(int) Cube depth sampled format:Unknown + 138: TypeSampledImage 137 + 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float) + 147: TypePointer Function 146(PS_OUTPUT) + 149: 28(int) Constant 0 + 150: 6(float) Constant 1065353216 + 151: 109(fvec4) ConstantComposite 150 150 150 150 + 152: TypePointer Function 109(fvec4) + 154: 28(int) Constant 1 + 156: TypePointer Output 109(fvec4) + 157(Color): 156(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output + 165: TypeImage 6(float) 3D sampled format:Unknown 166: TypePointer UniformConstant 165 -167(g_tTex2df4a): 166(ptr) Variable UniformConstant - 168: TypeImage 26(int) 2D array sampled format:Unknown + 167(g_tTex3df4): 166(ptr) Variable UniformConstant + 168: TypeImage 28(int) 3D sampled format:Unknown 169: TypePointer UniformConstant 168 -170(g_tTex2di4a): 169(ptr) Variable UniformConstant - 171: TypeImage 38(int) 2D array sampled format:Unknown + 170(g_tTex3di4): 169(ptr) Variable UniformConstant + 171: TypeImage 41(int) 3D sampled format:Unknown 172: TypePointer UniformConstant 171 -173(g_tTex2du4a): 172(ptr) Variable UniformConstant - 174: TypeImage 6(float) Cube array sampled format:Unknown + 173(g_tTex3du4): 172(ptr) Variable UniformConstant + 174: TypeImage 6(float) 1D array sampled format:Unknown 175: TypePointer UniformConstant 174 -176(g_tTexcdf4a): 175(ptr) Variable UniformConstant - 177: TypeImage 26(int) Cube array sampled format:Unknown +176(g_tTex1df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 28(int) 1D array sampled format:Unknown 178: TypePointer UniformConstant 177 -179(g_tTexcdi4a): 178(ptr) Variable UniformConstant - 180: TypeImage 38(int) Cube array sampled format:Unknown +179(g_tTex1di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 41(int) 1D array sampled format:Unknown 181: TypePointer UniformConstant 180 -182(g_tTexcdu4a): 181(ptr) Variable UniformConstant +182(g_tTex1du4a): 181(ptr) Variable UniformConstant + 183: TypeImage 6(float) 2D array sampled format:Unknown + 184: TypePointer UniformConstant 183 +185(g_tTex2df4a): 184(ptr) Variable UniformConstant + 186: TypeImage 28(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2di4a): 187(ptr) Variable UniformConstant + 189: TypeImage 41(int) 2D array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTex2du4a): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdf4a): 193(ptr) Variable UniformConstant + 195: TypeImage 28(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdi4a): 196(ptr) Variable UniformConstant + 198: TypeImage 41(int) Cube array sampled format:Unknown + 199: TypePointer UniformConstant 198 +200(g_tTexcdu4a): 199(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 25(r02): 7(ptr) Variable Function - 37(r04): 7(ptr) Variable Function - 49(r20): 7(ptr) Variable Function - 64(r22): 7(ptr) Variable Function - 76(r24): 7(ptr) Variable Function - 88(r50): 7(ptr) Variable Function - 103(r52): 7(ptr) Variable Function - 115(r54): 7(ptr) Variable Function - 130(psout): 129(ptr) Variable Function + 27(r02): 7(ptr) Variable Function + 40(r04): 7(ptr) Variable Function + 53(r20): 7(ptr) Variable Function + 70(r22): 7(ptr) Variable Function + 84(r24): 7(ptr) Variable Function + 98(r50): 7(ptr) Variable Function + 116(r52): 7(ptr) Variable Function + 131(r54): 7(ptr) Variable Function + 148(psout): 147(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 23: 6(float) CompositeExtract 20 0 - 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22 - Store 8(r00) 24 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22 - Store 25(r02) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22 - Store 37(r04) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) CompositeExtract 61 0 - 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22 - Store 49(r20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 13 Load 15(g_sSamp) - 72: 71 SampledImage 68 69 - 73: 6(float) CompositeExtract 60 0 - 74: 6(float) CompositeExtract 73 0 - 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22 - Store 64(r22) 75 - 80: 77 Load 79(g_tTex2du4) - 81: 13 Load 15(g_sSamp) - 84: 83 SampledImage 80 81 - 85: 6(float) CompositeExtract 60 0 - 86: 6(float) CompositeExtract 85 0 - 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22 - Store 76(r24) 87 - 92: 89 Load 91(g_tTexcdf4) - 93: 13 Load 15(g_sSamp) - 96: 95 SampledImage 92 93 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) CompositeExtract 100 0 - 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22 - Store 88(r50) 102 - 107: 104 Load 106(g_tTexcdi4) - 108: 13 Load 15(g_sSamp) - 111: 110 SampledImage 107 108 - 112: 6(float) CompositeExtract 99 0 - 113: 6(float) CompositeExtract 112 0 - 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22 - Store 103(r52) 114 - 119: 116 Load 118(g_tTexcdu4) - 120: 13 Load 15(g_sSamp) - 123: 122 SampledImage 119 120 - 124: 6(float) CompositeExtract 99 0 - 125: 6(float) CompositeExtract 124 0 - 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 - Store 115(r54) 126 - 135: 134(ptr) AccessChain 130(psout) 131 - Store 135 133 - 137: 7(ptr) AccessChain 130(psout) 136 - Store 137 132 - 140: 134(ptr) AccessChain 130(psout) 131 - 141: 127(fvec4) Load 140 - Store 139(Color) 141 - 144: 7(ptr) AccessChain 130(psout) 136 - 145: 6(float) Load 144 - Store 143(Depth) 145 + 23: 22(fvec2) CompositeConstruct 20 21 + 25: 6(float) CompositeExtract 23 1 + 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24 + Store 8(r00) 26 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24 + Store 27(r02) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24 + Store 40(r04) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 68: 6(float) CompositeExtract 67 2 + 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24 + Store 53(r20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 63 0 + 80: 6(float) CompositeExtract 63 1 + 81: 64(fvec3) CompositeConstruct 79 80 21 + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24 + Store 70(r22) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 63 0 + 94: 6(float) CompositeExtract 63 1 + 95: 64(fvec3) CompositeConstruct 93 94 21 + 96: 6(float) CompositeExtract 95 2 + 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24 + Store 84(r24) 97 + 102: 99 Load 101(g_tTexcdf4) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 110: 6(float) CompositeExtract 108 0 + 111: 6(float) CompositeExtract 108 1 + 112: 6(float) CompositeExtract 108 2 + 113: 109(fvec4) CompositeConstruct 110 111 112 21 + 114: 6(float) CompositeExtract 113 3 + 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24 + Store 98(r50) 115 + 120: 117 Load 119(g_tTexcdi4) + 121: 13 Load 15(g_sSamp) + 124: 123 SampledImage 120 121 + 125: 6(float) CompositeExtract 108 0 + 126: 6(float) CompositeExtract 108 1 + 127: 6(float) CompositeExtract 108 2 + 128: 109(fvec4) CompositeConstruct 125 126 127 21 + 129: 6(float) CompositeExtract 128 3 + 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24 + Store 116(r52) 130 + 135: 132 Load 134(g_tTexcdu4) + 136: 13 Load 15(g_sSamp) + 139: 138 SampledImage 135 136 + 140: 6(float) CompositeExtract 108 0 + 141: 6(float) CompositeExtract 108 1 + 142: 6(float) CompositeExtract 108 2 + 143: 109(fvec4) CompositeConstruct 140 141 142 21 + 144: 6(float) CompositeExtract 143 3 + 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24 + Store 131(r54) 145 + 153: 152(ptr) AccessChain 148(psout) 149 + Store 153 151 + 155: 7(ptr) AccessChain 148(psout) 154 + Store 155 150 + 158: 152(ptr) AccessChain 148(psout) 149 + 159: 109(fvec4) Load 158 + Store 157(Color) 159 + 162: 7(ptr) AccessChain 148(psout) 154 + 163: 6(float) Load 162 + Store 161(Depth) 163 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index b30a252e..bfbfbb29 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -96,7 +96,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -266,7 +266,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -337,76 +337,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 167 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 108 + EntryPoint Fragment 4 "main" 114 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 27 "r03" - Name 30 "g_tTex1di4" - Name 38 "r05" - Name 42 "g_tTex1du4" - Name 50 "r21" - Name 53 "g_tTex2df4" - Name 68 "r23" - Name 71 "g_tTex2di4" - Name 80 "r25" - Name 83 "g_tTex2du4" - Name 93 "PS_OUTPUT" - MemberName 93(PS_OUTPUT) 0 "Color" - MemberName 93(PS_OUTPUT) 1 "Depth" - Name 95 "psout" - Name 104 "Color" - Name 108 "Depth" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTex1df4a" - Name 135 "g_tTex1di4a" - Name 138 "g_tTex1du4a" - Name 141 "g_tTex2df4a" - Name 144 "g_tTex2di4a" - Name 147 "g_tTex2du4a" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" + Name 29 "r03" + Name 32 "g_tTex1di4" + Name 41 "r05" + Name 45 "g_tTex1du4" + Name 54 "r21" + Name 57 "g_tTex2df4" + Name 74 "r23" + Name 77 "g_tTex2di4" + Name 88 "r25" + Name 91 "g_tTex2du4" + Name 103 "PS_OUTPUT" + MemberName 103(PS_OUTPUT) 0 "Color" + MemberName 103(PS_OUTPUT) 1 "Depth" + Name 105 "psout" + Name 114 "Color" + Name 118 "Depth" + Name 124 "g_tTex3df4" + Name 127 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 133 "g_tTexcdf4" + Name 136 "g_tTexcdi4" + Name 139 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTex1di4a" + Name 148 "g_tTex1du4a" + Name 151 "g_tTex2df4a" + Name 154 "g_tTex2di4a" + Name 157 "g_tTex2du4a" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 104(Color) Location 0 - Decorate 108(Depth) BuiltIn FragDepth - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 135(g_tTex1di4a) DescriptorSet 0 - Decorate 138(g_tTex1du4a) DescriptorSet 0 - Decorate 141(g_tTex2df4a) DescriptorSet 0 - Decorate 144(g_tTex2di4a) DescriptorSet 0 - Decorate 147(g_tTex2du4a) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 91(g_tTex2du4) DescriptorSet 0 + Decorate 114(Color) Location 0 + Decorate 118(Depth) BuiltIn FragDepth + Decorate 124(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 133(g_tTexcdf4) DescriptorSet 0 + Decorate 136(g_tTexcdi4) DescriptorSet 0 + Decorate 139(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1di4a) DescriptorSet 0 + Decorate 148(g_tTex1du4a) DescriptorSet 0 + Decorate 151(g_tTex2df4a) DescriptorSet 0 + Decorate 154(g_tTex2di4a) DescriptorSet 0 + Decorate 157(g_tTex2du4a) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,155 +421,165 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 23: TypeInt 32 1 - 24: 23(int) Constant 2 - 28: TypeImage 23(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeImage 23(int) 1D depth sampled format:Unknown - 34: TypeSampledImage 33 - 39: TypeInt 32 0 - 40: TypeImage 39(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeImage 39(int) 1D depth sampled format:Unknown - 46: TypeSampledImage 45 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeImage 6(float) 2D depth sampled format:Unknown - 57: TypeSampledImage 56 - 59: TypeVector 6(float) 2 - 60: 6(float) Constant 1045220557 - 61: 59(fvec2) ConstantComposite 20 60 - 63: TypeVector 23(int) 2 - 64: 23(int) Constant 3 - 65: 63(ivec2) ConstantComposite 24 64 - 69: TypeImage 23(int) 2D sampled format:Unknown - 70: TypePointer UniformConstant 69 - 71(g_tTex2di4): 70(ptr) Variable UniformConstant - 74: TypeImage 23(int) 2D depth sampled format:Unknown - 75: TypeSampledImage 74 - 81: TypeImage 39(int) 2D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex2du4): 82(ptr) Variable UniformConstant - 86: TypeImage 39(int) 2D depth sampled format:Unknown - 87: TypeSampledImage 86 - 92: TypeVector 6(float) 4 - 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) - 94: TypePointer Function 93(PS_OUTPUT) - 96: 23(int) Constant 0 - 97: 6(float) Constant 1065353216 - 98: 92(fvec4) ConstantComposite 97 97 97 97 - 99: TypePointer Function 92(fvec4) - 101: 23(int) Constant 1 - 103: TypePointer Output 92(fvec4) - 104(Color): 103(ptr) Variable Output - 107: TypePointer Output 6(float) - 108(Depth): 107(ptr) Variable Output - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 23(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 39(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 23(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 39(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1df4a): 131(ptr) Variable UniformConstant - 133: TypeImage 23(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1di4a): 134(ptr) Variable UniformConstant - 136: TypeImage 39(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1du4a): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 23(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 39(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 23(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 39(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 30: TypeImage 25(int) 1D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeImage 25(int) 1D depth sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth sampled format:Unknown + 61: TypeSampledImage 60 + 63: 6(float) Constant 1045220557 + 64: 22(fvec2) ConstantComposite 20 63 + 65: TypeVector 6(float) 3 + 69: TypeVector 25(int) 2 + 70: 25(int) Constant 3 + 71: 69(ivec2) ConstantComposite 26 70 + 75: TypeImage 25(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeImage 25(int) 2D depth sampled format:Unknown + 81: TypeSampledImage 80 + 89: TypeImage 42(int) 2D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex2du4): 90(ptr) Variable UniformConstant + 94: TypeImage 42(int) 2D depth sampled format:Unknown + 95: TypeSampledImage 94 + 102: TypeVector 6(float) 4 + 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 104: TypePointer Function 103(PS_OUTPUT) + 106: 25(int) Constant 0 + 107: 6(float) Constant 1065353216 + 108: 102(fvec4) ConstantComposite 107 107 107 107 + 109: TypePointer Function 102(fvec4) + 111: 25(int) Constant 1 + 113: TypePointer Output 102(fvec4) + 114(Color): 113(ptr) Variable Output + 117: TypePointer Output 6(float) + 118(Depth): 117(ptr) Variable Output + 122: TypeImage 6(float) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3df4): 123(ptr) Variable UniformConstant + 125: TypeImage 25(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 128: TypeImage 42(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdf4): 132(ptr) Variable UniformConstant + 134: TypeImage 25(int) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdi4): 135(ptr) Variable UniformConstant + 137: TypeImage 42(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdu4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 25(int) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 42(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 25(int) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 42(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 25(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 42(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 27(r03): 7(ptr) Variable Function - 38(r05): 7(ptr) Variable Function - 50(r21): 7(ptr) Variable Function - 68(r23): 7(ptr) Variable Function - 80(r25): 7(ptr) Variable Function - 95(psout): 94(ptr) Variable Function + 29(r03): 7(ptr) Variable Function + 41(r05): 7(ptr) Variable Function + 54(r21): 7(ptr) Variable Function + 74(r23): 7(ptr) Variable Function + 88(r25): 7(ptr) Variable Function + 105(psout): 104(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 20 0 - 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24 - Store 8(r01) 26 - 31: 28 Load 30(g_tTex1di4) - 32: 13 Load 15(g_sSamp) - 35: 34 SampledImage 31 32 - 36: 6(float) CompositeExtract 20 0 - 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24 - Store 27(r03) 37 - 43: 40 Load 42(g_tTex1du4) - 44: 13 Load 15(g_sSamp) - 47: 46 SampledImage 43 44 - 48: 6(float) CompositeExtract 20 0 - 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24 - Store 38(r05) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 13 Load 15(g_sSamp) - 58: 57 SampledImage 54 55 - 62: 6(float) CompositeExtract 61 0 - 66: 6(float) CompositeExtract 62 0 - 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65 - Store 50(r21) 67 - 72: 69 Load 71(g_tTex2di4) - 73: 13 Load 15(g_sSamp) - 76: 75 SampledImage 72 73 - 77: 6(float) CompositeExtract 61 0 - 78: 6(float) CompositeExtract 77 0 - 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65 - Store 68(r23) 79 - 84: 81 Load 83(g_tTex2du4) - 85: 13 Load 15(g_sSamp) - 88: 87 SampledImage 84 85 - 89: 6(float) CompositeExtract 61 0 - 90: 6(float) CompositeExtract 89 0 - 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 - Store 80(r25) 91 - 100: 99(ptr) AccessChain 95(psout) 96 - Store 100 98 - 102: 7(ptr) AccessChain 95(psout) 101 - Store 102 97 - 105: 99(ptr) AccessChain 95(psout) 96 - 106: 92(fvec4) Load 105 - Store 104(Color) 106 - 109: 7(ptr) AccessChain 95(psout) 101 - 110: 6(float) Load 109 - Store 108(Depth) 110 + 23: 22(fvec2) CompositeConstruct 20 21 + 27: 6(float) CompositeExtract 23 1 + 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26 + Store 8(r01) 28 + 33: 30 Load 32(g_tTex1di4) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 22(fvec2) CompositeConstruct 20 21 + 39: 6(float) CompositeExtract 38 1 + 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26 + Store 29(r03) 40 + 46: 43 Load 45(g_tTex1du4) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 22(fvec2) CompositeConstruct 20 21 + 52: 6(float) CompositeExtract 51 1 + 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26 + Store 41(r05) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 21 + 72: 6(float) CompositeExtract 68 2 + 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71 + Store 54(r21) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 64 0 + 84: 6(float) CompositeExtract 64 1 + 85: 65(fvec3) CompositeConstruct 83 84 21 + 86: 6(float) CompositeExtract 85 2 + 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71 + Store 74(r23) 87 + 92: 89 Load 91(g_tTex2du4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 97: 6(float) CompositeExtract 64 0 + 98: 6(float) CompositeExtract 64 1 + 99: 65(fvec3) CompositeConstruct 97 98 21 + 100: 6(float) CompositeExtract 99 2 + 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71 + Store 88(r25) 101 + 110: 109(ptr) AccessChain 105(psout) 106 + Store 110 108 + 112: 7(ptr) AccessChain 105(psout) 111 + Store 112 107 + 115: 109(ptr) AccessChain 105(psout) 106 + 116: 102(fvec4) Load 115 + Store 114(Color) 116 + 119: 7(ptr) AccessChain 105(psout) 111 + 120: 6(float) Load 119 + Store 118(Depth) 120 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 19d262ad..0e38a7d6 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -188,7 +188,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -222,7 +222,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -258,7 +258,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -277,7 +277,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -349,76 +349,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 114 + EntryPoint Fragment 4 "main" 125 129 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 31 "r13" - Name 34 "g_tTex1di4a" - Name 43 "r15" - Name 47 "g_tTex1du4a" - Name 56 "r31" - Name 59 "g_tTex2df4a" - Name 74 "r33" - Name 77 "g_tTex2di4a" - Name 86 "r35" - Name 89 "g_tTex2du4a" - Name 99 "PS_OUTPUT" - MemberName 99(PS_OUTPUT) 0 "Color" - MemberName 99(PS_OUTPUT) 1 "Depth" - Name 101 "psout" - Name 110 "Color" - Name 114 "Depth" - Name 120 "g_tTex1df4" - Name 123 "g_tTex1di4" - Name 126 "g_tTex1du4" - Name 129 "g_tTex2df4" - Name 132 "g_tTex2di4" - Name 135 "g_tTex2du4" - Name 138 "g_tTex3df4" - Name 141 "g_tTex3di4" - Name 144 "g_tTex3du4" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Name 156 "g_tTexcdf4a" - Name 159 "g_tTexcdi4a" - Name 162 "g_tTexcdu4a" + Name 34 "r13" + Name 37 "g_tTex1di4a" + Name 48 "r15" + Name 52 "g_tTex1du4a" + Name 63 "r31" + Name 66 "g_tTex2df4a" + Name 84 "r33" + Name 87 "g_tTex2di4a" + Name 99 "r35" + Name 102 "g_tTex2du4a" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_tTex1df4" + Name 138 "g_tTex1di4" + Name 141 "g_tTex1du4" + Name 144 "g_tTex2df4" + Name 147 "g_tTex2di4" + Name 150 "g_tTex2du4" + Name 153 "g_tTex3df4" + Name 156 "g_tTex3di4" + Name 159 "g_tTex3du4" + Name 162 "g_tTexcdf4" + Name 165 "g_tTexcdi4" + Name 168 "g_tTexcdu4" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 34(g_tTex1di4a) DescriptorSet 0 - Decorate 47(g_tTex1du4a) DescriptorSet 0 - Decorate 59(g_tTex2df4a) DescriptorSet 0 - Decorate 77(g_tTex2di4a) DescriptorSet 0 - Decorate 89(g_tTex2du4a) DescriptorSet 0 - Decorate 110(Color) Location 0 - Decorate 114(Depth) BuiltIn FragDepth - Decorate 120(g_tTex1df4) DescriptorSet 0 - Decorate 120(g_tTex1df4) Binding 0 - Decorate 123(g_tTex1di4) DescriptorSet 0 - Decorate 126(g_tTex1du4) DescriptorSet 0 - Decorate 129(g_tTex2df4) DescriptorSet 0 - Decorate 132(g_tTex2di4) DescriptorSet 0 - Decorate 135(g_tTex2du4) DescriptorSet 0 - Decorate 138(g_tTex3df4) DescriptorSet 0 - Decorate 141(g_tTex3di4) DescriptorSet 0 - Decorate 144(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 - Decorate 156(g_tTexcdf4a) DescriptorSet 0 - Decorate 159(g_tTexcdi4a) DescriptorSet 0 - Decorate 162(g_tTexcdu4a) DescriptorSet 0 + Decorate 37(g_tTex1di4a) DescriptorSet 0 + Decorate 52(g_tTex1du4a) DescriptorSet 0 + Decorate 66(g_tTex2df4a) DescriptorSet 0 + Decorate 87(g_tTex2di4a) DescriptorSet 0 + Decorate 102(g_tTex2du4a) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 + Decorate 138(g_tTex1di4) DescriptorSet 0 + Decorate 141(g_tTex1du4) DescriptorSet 0 + Decorate 144(g_tTex2df4) DescriptorSet 0 + Decorate 147(g_tTex2di4) DescriptorSet 0 + Decorate 150(g_tTex2du4) DescriptorSet 0 + Decorate 153(g_tTex3df4) DescriptorSet 0 + Decorate 156(g_tTex3di4) DescriptorSet 0 + Decorate 159(g_tTex3du4) DescriptorSet 0 + Decorate 162(g_tTexcdf4) DescriptorSet 0 + Decorate 165(g_tTexcdi4) DescriptorSet 0 + Decorate 168(g_tTexcdu4) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -436,158 +436,173 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 27: TypeInt 32 1 - 28: 27(int) Constant 2 - 32: TypeImage 27(int) 1D array sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(g_tTex1di4a): 33(ptr) Variable UniformConstant - 37: TypeImage 27(int) 1D depth array sampled format:Unknown - 38: TypeSampledImage 37 - 44: TypeInt 32 0 - 45: TypeImage 44(int) 1D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex1du4a): 46(ptr) Variable UniformConstant - 50: TypeImage 44(int) 1D depth array sampled format:Unknown - 51: TypeSampledImage 50 - 57: TypeImage 6(float) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2df4a): 58(ptr) Variable UniformConstant - 62: TypeImage 6(float) 2D depth array sampled format:Unknown - 63: TypeSampledImage 62 - 65: TypeVector 6(float) 3 - 66: 6(float) Constant 1050253722 - 67: 65(fvec3) ConstantComposite 21 22 66 - 69: TypeVector 27(int) 2 - 70: 27(int) Constant 3 - 71: 69(ivec2) ConstantComposite 28 70 - 75: TypeImage 27(int) 2D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex2di4a): 76(ptr) Variable UniformConstant - 80: TypeImage 27(int) 2D depth array sampled format:Unknown - 81: TypeSampledImage 80 - 87: TypeImage 44(int) 2D array sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex2du4a): 88(ptr) Variable UniformConstant - 92: TypeImage 44(int) 2D depth array sampled format:Unknown - 93: TypeSampledImage 92 - 98: TypeVector 6(float) 4 - 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) - 100: TypePointer Function 99(PS_OUTPUT) - 102: 27(int) Constant 0 - 103: 6(float) Constant 1065353216 - 104: 98(fvec4) ConstantComposite 103 103 103 103 - 105: TypePointer Function 98(fvec4) - 107: 27(int) Constant 1 - 109: TypePointer Output 98(fvec4) - 110(Color): 109(ptr) Variable Output - 113: TypePointer Output 6(float) - 114(Depth): 113(ptr) Variable Output - 118: TypeImage 6(float) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex1df4): 119(ptr) Variable UniformConstant - 121: TypeImage 27(int) 1D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex1di4): 122(ptr) Variable UniformConstant - 124: TypeImage 44(int) 1D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex1du4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) 2D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex2df4): 128(ptr) Variable UniformConstant - 130: TypeImage 27(int) 2D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex2di4): 131(ptr) Variable UniformConstant - 133: TypeImage 44(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: 30(int) Constant 2 + 35: TypeImage 30(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4a): 36(ptr) Variable UniformConstant + 40: TypeImage 30(int) 1D depth array sampled format:Unknown + 41: TypeSampledImage 40 + 49: TypeInt 32 0 + 50: TypeImage 49(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4a): 51(ptr) Variable UniformConstant + 55: TypeImage 49(int) 1D depth array sampled format:Unknown + 56: TypeSampledImage 55 + 64: TypeImage 6(float) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2df4a): 65(ptr) Variable UniformConstant + 69: TypeImage 6(float) 2D depth array sampled format:Unknown + 70: TypeSampledImage 69 + 72: 6(float) Constant 1050253722 + 73: 25(fvec3) ConstantComposite 21 22 72 + 74: TypeVector 6(float) 4 + 79: TypeVector 30(int) 2 + 80: 30(int) Constant 3 + 81: 79(ivec2) ConstantComposite 31 80 + 85: TypeImage 30(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2di4a): 86(ptr) Variable UniformConstant + 90: TypeImage 30(int) 2D depth array sampled format:Unknown + 91: TypeSampledImage 90 + 100: TypeImage 49(int) 2D array sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex2du4a): 101(ptr) Variable UniformConstant + 105: TypeImage 49(int) 2D depth array sampled format:Unknown + 106: TypeSampledImage 105 + 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 30(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 74(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 74(fvec4) + 122: 30(int) Constant 1 + 124: TypePointer Output 74(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeImage 6(float) 1D sampled format:Unknown 134: TypePointer UniformConstant 133 - 135(g_tTex2du4): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) 3D sampled format:Unknown + 135(g_tTex1df4): 134(ptr) Variable UniformConstant + 136: TypeImage 30(int) 1D sampled format:Unknown 137: TypePointer UniformConstant 136 - 138(g_tTex3df4): 137(ptr) Variable UniformConstant - 139: TypeImage 27(int) 3D sampled format:Unknown + 138(g_tTex1di4): 137(ptr) Variable UniformConstant + 139: TypeImage 49(int) 1D sampled format:Unknown 140: TypePointer UniformConstant 139 - 141(g_tTex3di4): 140(ptr) Variable UniformConstant - 142: TypeImage 44(int) 3D sampled format:Unknown + 141(g_tTex1du4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D sampled format:Unknown 143: TypePointer UniformConstant 142 - 144(g_tTex3du4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown + 144(g_tTex2df4): 143(ptr) Variable UniformConstant + 145: TypeImage 30(int) 2D sampled format:Unknown 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 27(int) Cube sampled format:Unknown + 147(g_tTex2di4): 146(ptr) Variable UniformConstant + 148: TypeImage 49(int) 2D sampled format:Unknown 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 44(int) Cube sampled format:Unknown + 150(g_tTex2du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 3D sampled format:Unknown 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) Cube array sampled format:Unknown + 153(g_tTex3df4): 152(ptr) Variable UniformConstant + 154: TypeImage 30(int) 3D sampled format:Unknown 155: TypePointer UniformConstant 154 -156(g_tTexcdf4a): 155(ptr) Variable UniformConstant - 157: TypeImage 27(int) Cube array sampled format:Unknown + 156(g_tTex3di4): 155(ptr) Variable UniformConstant + 157: TypeImage 49(int) 3D sampled format:Unknown 158: TypePointer UniformConstant 157 -159(g_tTexcdi4a): 158(ptr) Variable UniformConstant - 160: TypeImage 44(int) Cube array sampled format:Unknown + 159(g_tTex3du4): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) Cube sampled format:Unknown 161: TypePointer UniformConstant 160 -162(g_tTexcdu4a): 161(ptr) Variable UniformConstant + 162(g_tTexcdf4): 161(ptr) Variable UniformConstant + 163: TypeImage 30(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdi4): 164(ptr) Variable UniformConstant + 166: TypeImage 49(int) Cube sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTexcdu4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 30(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 49(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 31(r13): 7(ptr) Variable Function - 43(r15): 7(ptr) Variable Function - 56(r31): 7(ptr) Variable Function - 74(r33): 7(ptr) Variable Function - 86(r35): 7(ptr) Variable Function - 101(psout): 100(ptr) Variable Function + 34(r13): 7(ptr) Variable Function + 48(r15): 7(ptr) Variable Function + 63(r31): 7(ptr) Variable Function + 84(r33): 7(ptr) Variable Function + 99(r35): 7(ptr) Variable Function + 116(psout): 115(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 29: 6(float) CompositeExtract 25 0 - 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28 - Store 8(r11) 30 - 35: 32 Load 34(g_tTex1di4a) - 36: 13 Load 15(g_sSamp) - 39: 38 SampledImage 35 36 - 40: 6(float) CompositeExtract 23 0 - 41: 6(float) CompositeExtract 40 0 - 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28 - Store 31(r13) 42 - 48: 45 Load 47(g_tTex1du4a) - 49: 13 Load 15(g_sSamp) - 52: 51 SampledImage 48 49 - 53: 6(float) CompositeExtract 23 0 - 54: 6(float) CompositeExtract 53 0 - 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28 - Store 43(r15) 55 - 60: 57 Load 59(g_tTex2df4a) - 61: 13 Load 15(g_sSamp) - 64: 63 SampledImage 60 61 - 68: 6(float) CompositeExtract 67 0 - 72: 6(float) CompositeExtract 68 0 - 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71 - Store 56(r31) 73 - 78: 75 Load 77(g_tTex2di4a) - 79: 13 Load 15(g_sSamp) - 82: 81 SampledImage 78 79 - 83: 6(float) CompositeExtract 67 0 - 84: 6(float) CompositeExtract 83 0 - 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71 - Store 74(r33) 85 - 90: 87 Load 89(g_tTex2du4a) - 91: 13 Load 15(g_sSamp) - 94: 93 SampledImage 90 91 - 95: 6(float) CompositeExtract 67 0 - 96: 6(float) CompositeExtract 95 0 - 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 - Store 86(r35) 97 - 106: 105(ptr) AccessChain 101(psout) 102 - Store 106 104 - 108: 7(ptr) AccessChain 101(psout) 107 - Store 108 103 - 111: 105(ptr) AccessChain 101(psout) 102 - 112: 98(fvec4) Load 111 - Store 110(Color) 112 - 115: 7(ptr) AccessChain 101(psout) 107 - 116: 6(float) Load 115 - Store 114(Depth) 116 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 32: 6(float) CompositeExtract 28 2 + 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31 + Store 8(r11) 33 + 38: 35 Load 37(g_tTex1di4a) + 39: 13 Load 15(g_sSamp) + 42: 41 SampledImage 38 39 + 43: 6(float) CompositeExtract 23 0 + 44: 6(float) CompositeExtract 23 1 + 45: 25(fvec3) CompositeConstruct 43 44 24 + 46: 6(float) CompositeExtract 45 2 + 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31 + Store 34(r13) 47 + 53: 50 Load 52(g_tTex1du4a) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 58: 6(float) CompositeExtract 23 0 + 59: 6(float) CompositeExtract 23 1 + 60: 25(fvec3) CompositeConstruct 58 59 24 + 61: 6(float) CompositeExtract 60 2 + 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31 + Store 48(r15) 62 + 67: 64 Load 66(g_tTex2df4a) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 75: 6(float) CompositeExtract 73 0 + 76: 6(float) CompositeExtract 73 1 + 77: 6(float) CompositeExtract 73 2 + 78: 74(fvec4) CompositeConstruct 75 76 77 24 + 82: 6(float) CompositeExtract 78 3 + 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81 + Store 63(r31) 83 + 88: 85 Load 87(g_tTex2di4a) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 73 0 + 94: 6(float) CompositeExtract 73 1 + 95: 6(float) CompositeExtract 73 2 + 96: 74(fvec4) CompositeConstruct 93 94 95 24 + 97: 6(float) CompositeExtract 96 3 + 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81 + Store 84(r33) 98 + 103: 100 Load 102(g_tTex2du4a) + 104: 13 Load 15(g_sSamp) + 107: 106 SampledImage 103 104 + 108: 6(float) CompositeExtract 73 0 + 109: 6(float) CompositeExtract 73 1 + 110: 6(float) CompositeExtract 73 2 + 111: 74(fvec4) CompositeConstruct 108 109 110 24 + 112: 6(float) CompositeExtract 111 3 + 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81 + Store 99(r35) 113 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 7(ptr) AccessChain 116(psout) 122 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 74(fvec4) Load 126 + Store 125(Color) 127 + 130: 7(ptr) AccessChain 116(psout) 122 + 131: 6(float) Load 130 + Store 129(Depth) 131 Return FunctionEnd diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b4c417d9..e6bf43d9 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1496,6 +1496,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType constructCoord->getSequence().push_back(arg1); constructCoord->setLoc(loc); + // The input vector should never be less than 2, since there's always a bias. + // The max is for safety, and should be a no-op. + constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0))); + TIntermAggregate* tex = new TIntermAggregate(EOpTexture); tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate @@ -1725,6 +1729,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (coordDimWithCmpVal != 5) // cube array shadow is special. coordWithCmp->getSequence().push_back(argCmpVal); coordWithCmp->setLoc(loc); + coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4))); TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); if (argOffset != nullptr)